@next-core/runtime 1.1.0 → 1.1.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/internal/CustomTemplates/expandCustomTemplate.js +3 -0
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/cjs/internal/compute/computeRealValue.js +5 -2
- package/dist/cjs/internal/compute/computeRealValue.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +1 -0
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/compute/getNextStateOfUseBrick.js +12 -8
- package/dist/cjs/internal/compute/getNextStateOfUseBrick.js.map +1 -1
- package/dist/cjs/internal/interfaces.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +7 -3
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +3 -0
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/esm/internal/compute/computeRealValue.js +7 -4
- package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +3 -2
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js +12 -8
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js.map +1 -1
- package/dist/esm/internal/interfaces.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +7 -3
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/types/internal/compute/getNextStateOfUseBrick.d.ts +9 -8
- package/dist/types/internal/interfaces.d.ts +1 -0
- package/package.json +2 -2
|
@@ -22,6 +22,9 @@ function expandCustomTemplate(tplTagName, brickConf, hostBrick, asyncHostPropert
|
|
|
22
22
|
delete runtimeContext.forEachItem;
|
|
23
23
|
const tplStateStore = new _DataStore.DataStore("STATE", hostBrick);
|
|
24
24
|
runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);
|
|
25
|
+
if (runtimeContext.tplStateStoreScope) {
|
|
26
|
+
runtimeContext.tplStateStoreScope.push(tplStateStore);
|
|
27
|
+
}
|
|
25
28
|
const {
|
|
26
29
|
bricks,
|
|
27
30
|
proxy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandCustomTemplate.js","names":["_lodash","require","_CustomTemplates","_DataStore","_setupTemplateProxy","_setupUseBrickInTemplate","_Renderer","_CollectContracts","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostProperties","tplStateStoreId","uniqueId","runtimeContext","forEachItem","tplStateStore","DataStore","tplStateStoreMap","set","bricks","proxy","state","contracts","customTemplates","get","collectWidgetContract","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","
|
|
1
|
+
{"version":3,"file":"expandCustomTemplate.js","names":["_lodash","require","_CustomTemplates","_DataStore","_setupTemplateProxy","_setupUseBrickInTemplate","_Renderer","_CollectContracts","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostProperties","tplStateStoreId","uniqueId","runtimeContext","forEachItem","tplStateStore","DataStore","tplStateStoreMap","set","tplStateStoreScope","push","bricks","proxy","state","contracts","customTemplates","get","collectWidgetContract","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","hostContext","externalSlots","childrenToSlots","type","map","item","expandBrickInTemplate","brickConfInTemplate","if","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","transpiledSlots","fromEntries","slotName","slotConf","_slotConf$bricks","setupUseBrickInTemplate","setupTemplateProxy"],"sources":["../../../../src/internal/CustomTemplates/expandCustomTemplate.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n SlotsConfInTemplate,\n SlotsConfOfBricks,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { uniqueId } from \"lodash\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport { RuntimeBrickConfWithTplSymbols } from \"./constants.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n TemplateHostBrick,\n TemplateHostContext,\n} from \"../interfaces.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { collectWidgetContract } from \"../data/CollectContracts.js\";\n\nexport function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(\n tplTagName: string,\n brickConf: T,\n hostBrick: RuntimeBrick,\n asyncHostProperties: AsyncProperties | undefined\n): T {\n const tplStateStoreId = uniqueId(\"tpl-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n tplStateStoreId,\n };\n\n // There is a boundary for `forEachItem` between template internals and externals.\n delete runtimeContext.forEachItem;\n\n const tplStateStore = new DataStore(\"STATE\", hostBrick);\n runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);\n if (runtimeContext.tplStateStoreScope) {\n runtimeContext.tplStateStoreScope.push(tplStateStore);\n }\n\n const { bricks, proxy, state, contracts } = customTemplates.get(tplTagName)!;\n collectWidgetContract(contracts);\n tplStateStore.define(state, runtimeContext, asyncHostProperties);\n\n const {\n slots: originalExternalSlots,\n children: externalChildren,\n ...restBrickConf\n } = brickConf;\n\n const newBrickConf = {\n ...restBrickConf,\n brick: tplTagName,\n } as T;\n\n hostBrick.tplHostMetadata = {\n internalBricksByRef: new Map(),\n tplStateStoreId,\n proxy,\n };\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies: TemplateHostContext[\"reversedProxies\"] = {\n properties: new Map(),\n slots: new Map(),\n // mergeBases: new Map(),\n };\n\n if (proxy?.properties) {\n for (const [from, to] of Object.entries(proxy.properties)) {\n let proxies = reversedProxies.properties.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.properties.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n if (proxy?.slots) {\n for (const [from, to] of Object.entries(proxy.slots)) {\n let proxies = reversedProxies.slots.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.slots.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n const hostContext: TemplateHostContext = {\n reversedProxies,\n asyncHostProperties,\n externalSlots: childrenToSlots(externalChildren, originalExternalSlots) as\n | SlotsConfOfBricks\n | undefined,\n tplStateStoreId,\n hostBrick: hostBrick as TemplateHostBrick,\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.map((item) => expandBrickInTemplate(item, hostContext)),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConfInTemplate,\n hostContext: TemplateHostContext\n): RuntimeBrickConfWithTplSymbols {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n const {\n properties,\n slots: slotsInTemplate,\n children: childrenInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate;\n\n const transpiledSlots = childrenToSlots(\n childrenInTemplate,\n slotsInTemplate\n ) as SlotsConfInTemplate | undefined;\n\n const slots: SlotsConfOfBricks = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map((item) =>\n expandBrickInTemplate(item, hostContext)\n ),\n },\n ])\n );\n\n return {\n ...restBrickConfInTemplate,\n properties: setupUseBrickInTemplate(properties, hostContext),\n slots,\n ...setupTemplateProxy(hostContext, restBrickConfInTemplate.ref, slots),\n };\n}\n"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ async function asyncComputeRealValue(value, runtimeContext, internalOptions = {}
|
|
|
25
25
|
});
|
|
26
26
|
dismissMarkingComputed = (0, _evaluate.shouldDismissMarkingComputed)(value);
|
|
27
27
|
} else {
|
|
28
|
-
result = lazy ? value : (internalOptions.noInject ? _inject.transform : _inject.transformAndInject)(value, runtimeContext);
|
|
28
|
+
result = lazy ? value : ((0, _general.hasOwnProperty)(runtimeContext, "data") ? internalOptions.noInject ? _inject.transform : _inject.transformAndInject : internalOptions.noInject ? identity : _inject.inject)(value, runtimeContext);
|
|
29
29
|
}
|
|
30
30
|
if (!dismissMarkingComputed) {
|
|
31
31
|
(0, _markAsComputed.markAsComputed)(result);
|
|
@@ -53,7 +53,7 @@ function computeRealValue(value, runtimeContext, internalOptions = {}) {
|
|
|
53
53
|
result = (0, _evaluate.evaluate)(value, runtimeContext);
|
|
54
54
|
dismissMarkingComputed = (0, _evaluate.shouldDismissMarkingComputed)(value);
|
|
55
55
|
} else {
|
|
56
|
-
result = lazy ? value : (0, _inject.transformAndInject)(value, runtimeContext);
|
|
56
|
+
result = lazy ? value : ((0, _general.hasOwnProperty)(runtimeContext, "data") ? internalOptions.noInject ? _inject.transform : _inject.transformAndInject : internalOptions.noInject ? identity : _inject.inject)(value, runtimeContext);
|
|
57
57
|
}
|
|
58
58
|
if (!dismissMarkingComputed) {
|
|
59
59
|
(0, _markAsComputed.markAsComputed)(result);
|
|
@@ -75,4 +75,7 @@ function getNextComputeOptions(internalOptions, isArray, key) {
|
|
|
75
75
|
$$stateOfUseBrick: (0, _getNextStateOfUseBrick.getNextStateOfUseBrick)(internalOptions.$$stateOfUseBrick, isArray, key)
|
|
76
76
|
} : internalOptions;
|
|
77
77
|
}
|
|
78
|
+
function identity(value) {
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
78
81
|
//# sourceMappingURL=computeRealValue.js.map
|
|
@@ -1 +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","noInject","transform","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, transform } 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 : (internalOptions.noInject
|
|
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","hasOwnProperty","noInject","transform","transformAndInject","identity","inject","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 { 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 (!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\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 (!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\nfunction identity<T>(value: T): T {\n return value;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","names":["_cook","require","_loader","_supply","_general","_storyboard","_lodash","_CustomProcessors","_StoryboardFunctions","_getGeneralGlobals","_proxyFactories","_devtools","_mediaQuery","_getStorageItem","_Runtime","_utils","_WidgetFunctions","_collectMemberCallUsage","_fetchMenuById","_WidgetI18n","_images","_checkInstalledApps","_isStrictMode","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","shouldAllowRecursiveEvaluations","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","isAsync","pendingPermissionsPreCheck","_1","tplStateStoreMap","_2","passByRuntimeContext","menuUsage","usedArgs","Set","hasAppUsage","precooked","preevaluate","withParent","hooks","beforeVisitGlobal","node","parent","collectAppGetMenuUsage","collectInstalledAppsHasUsage","message","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","hasOwnProperty","Object","keys","length","usedCtx","usedProcessors","usedStates","tplStateStore","strict","isStrictMode","getTplStateStore","devHook","getDevHook","strictCollectMemberUsage","push","ctxStore","waitFor","usedTpls","tpl","add","loadProcessorsImperatively","getBrickPackages","attemptToCheckPermissions","usedFunctions","checkPermissionsUsage","size","usedMenuIds","map","menuId","fetchMenuById","waitForCheckingApps","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","cloneDeep","getMenu","getMenuById","getDynamicReadOnlyProxy","get","target","key","getValue","ownKeys","Array","from","getReadOnlyProxy","hasInstalledApp","console","forEachItem","getItem","getStorageItem","getMedia","getRuntime","getMiscSettings","URLSearchParams","params","pathname","pkg","customProcessors","t","k","fromEntries","getAll","warnAboutStrictMode","widgetFunctions","widgetImagesFactory","widgetI18nFactory","assign","getGeneralGlobals","storyboardFunctions","appendI18nNamespace","result","cook","expression","source","supply"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep } from \"lodash\";\nimport { customProcessors } from \"../../CustomProcessors.js\";\nimport {\n checkPermissionsUsage,\n storyboardFunctions,\n} from \"./StoryboardFunctions.js\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals.js\";\nimport {\n getDynamicReadOnlyProxy,\n getReadOnlyProxy,\n} from \"../proxyFactories.js\";\nimport { getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport { getBrickPackages, getRuntime } from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport {\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"./collectMemberCallUsage.js\";\nimport { fetchMenuById, getMenuById } from \"../menu/fetchMenuById.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { widgetImagesFactory } from \"./images.js\";\nimport { hasInstalledApp, waitForCheckingApps } from \"../checkInstalledApps.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: RuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function getPreEvaluatedRaw(pre: PreEvaluated): string {\n return pre[symbolForRaw];\n}\n\nexport function shouldDismissMarkingComputed(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\nexport async function asyncEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { blockingList, run } = lowLevelEvaluate(\n raw,\n runtimeContext,\n options,\n true\n );\n await Promise.all(blockingList);\n return run();\n}\n\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { run } = lowLevelEvaluate(raw, runtimeContext, options, false);\n return run();\n}\n\nfunction lowLevelEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options: EvaluateOptions = {},\n isAsync?: boolean\n): {\n blockingList: (Promise<unknown> | undefined)[];\n run: Function;\n} {\n const blockingList: (Promise<unknown> | undefined)[] = [];\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n\n const {\n pendingPermissionsPreCheck: _1,\n tplStateStoreMap: _2,\n ...passByRuntimeContext\n } = runtimeContext;\n\n runtimeContext = {\n ...raw[symbolForContext],\n ...passByRuntimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // Collect `APP.getMenu(...)` usage before evaluating.\n const menuUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n const hasAppUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n collectAppGetMenuUsage(menuUsage, node, parent!);\n collectInstalledAppsHasUsage(hasAppUsage, node, parent!);\n },\n },\n });\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: {} },\n // error: message,\n // });\n // return;\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n\n if (menuUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n if (hasAppUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n const globalVariables: Record<string, unknown> = {};\n const { attemptToVisitGlobals } = precooked;\n\n // Ignore evaluating if required `event/DATA` is missing in\n // context. Since they are are provided in different context, whenever\n // missing one of them, memorize the current context for later consuming.\n if (\n options.lazy ||\n (attemptToVisitGlobals.has(\"EVENT\") &&\n !hasOwnProperty(runtimeContext, \"event\")) ||\n (attemptToVisitGlobals.has(\"DATA\") &&\n !hasOwnProperty(runtimeContext, \"data\"))\n ) {\n return {\n blockingList,\n run() {\n return Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n },\n };\n }\n\n let usedCtx: Set<string>;\n let usedProcessors: Set<string>;\n let usedStates: Set<string>;\n let tplStateStore: DataStore<\"STATE\"> | undefined;\n const strict = isStrictMode(runtimeContext);\n\n // For existed TPL usage, treat it as a STATE.\n if (\n attemptToVisitGlobals.has(\"STATE\") ||\n (!strict && attemptToVisitGlobals.has(\"TPL\"))\n ) {\n tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${raw}\"`);\n }\n\n const devHook = getDevHook();\n if (isAsync || devHook) {\n if (attemptToVisitGlobals.has(\"CTX\")) {\n usedCtx = strictCollectMemberUsage(raw, \"CTX\");\n isAsync && blockingList.push(runtimeContext.ctxStore.waitFor(usedCtx));\n }\n\n if (tplStateStore) {\n usedStates = strictCollectMemberUsage(raw, \"STATE\");\n // istanbul ignore if\n if (!strict) {\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\n }\n }\n isAsync && blockingList.push(tplStateStore.waitFor(usedStates));\n }\n\n if (attemptToVisitGlobals.has(\"PROCESSORS\")) {\n usedProcessors = strictCollectMemberUsage(raw, \"PROCESSORS\", 2);\n isAsync &&\n blockingList.push(\n loadProcessorsImperatively(usedProcessors, getBrickPackages())\n );\n }\n }\n\n if (isAsync) {\n let attemptToCheckPermissions = attemptToVisitGlobals.has(\"PERMISSIONS\");\n // There maybe `PERMISSIONS.check()` usage in functions\n if (!attemptToCheckPermissions && attemptToVisitGlobals.has(\"FN\")) {\n const usedFunctions = [...strictCollectMemberUsage(raw, \"FN\")];\n attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);\n }\n\n if (attemptToCheckPermissions) {\n blockingList.push(...runtimeContext.pendingPermissionsPreCheck);\n }\n\n if (menuUsage.usedArgs.size > 0) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) => fetchMenuById(menuId, runtimeContext))\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(waitForCheckingApps([...hasAppUsage.usedArgs]));\n }\n }\n\n return {\n blockingList,\n run() {\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n ctxStore,\n data,\n event,\n } = runtimeContext;\n const app = runtimeContext.overrideApp ?? currentApp;\n\n for (const variableName of attemptToVisitGlobals) {\n switch (variableName) {\n // case \"ALIAS\":\n case \"ANCHOR\":\n globalVariables[variableName] = location.hash\n ? location.hash.substring(1)\n : null;\n break;\n case \"APP\":\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedCtx);\n },\n });\n break;\n case \"DATA\":\n globalVariables[variableName] = data;\n break;\n case \"EVENT\":\n globalVariables[variableName] = event;\n break;\n case \"FLAGS\":\n globalVariables[variableName] = getReadOnlyProxy(flags);\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evaluate.js","names":["_cook","require","_loader","_supply","_general","_storyboard","_lodash","_CustomProcessors","_StoryboardFunctions","_getGeneralGlobals","_proxyFactories","_devtools","_mediaQuery","_getStorageItem","_Runtime","_utils","_WidgetFunctions","_collectMemberCallUsage","_fetchMenuById","_WidgetI18n","_images","_checkInstalledApps","_isStrictMode","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","shouldAllowRecursiveEvaluations","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","isAsync","pendingPermissionsPreCheck","_1","tplStateStoreMap","_2","tplStateStoreScope","_3","passByRuntimeContext","menuUsage","usedArgs","Set","hasAppUsage","precooked","preevaluate","withParent","hooks","beforeVisitGlobal","node","parent","collectAppGetMenuUsage","collectInstalledAppsHasUsage","message","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","hasOwnProperty","Object","keys","length","usedCtx","usedProcessors","usedStates","tplStateStore","strict","isStrictMode","getTplStateStore","devHook","getDevHook","strictCollectMemberUsage","push","ctxStore","waitFor","usedTpls","tpl","add","loadProcessorsImperatively","getBrickPackages","attemptToCheckPermissions","usedFunctions","checkPermissionsUsage","size","usedMenuIds","map","menuId","fetchMenuById","waitForCheckingApps","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","cloneDeep","getMenu","getMenuById","getDynamicReadOnlyProxy","get","target","key","getValue","ownKeys","Array","from","getReadOnlyProxy","hasInstalledApp","console","forEachItem","getItem","getStorageItem","getMedia","getRuntime","getMiscSettings","URLSearchParams","params","pathname","pkg","customProcessors","t","k","fromEntries","getAll","warnAboutStrictMode","widgetFunctions","widgetImagesFactory","widgetI18nFactory","assign","getGeneralGlobals","storyboardFunctions","appendI18nNamespace","result","cook","expression","source","supply"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep } from \"lodash\";\nimport { customProcessors } from \"../../CustomProcessors.js\";\nimport {\n checkPermissionsUsage,\n storyboardFunctions,\n} from \"./StoryboardFunctions.js\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals.js\";\nimport {\n getDynamicReadOnlyProxy,\n getReadOnlyProxy,\n} from \"../proxyFactories.js\";\nimport { getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport { getBrickPackages, getRuntime } from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport {\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"./collectMemberCallUsage.js\";\nimport { fetchMenuById, getMenuById } from \"../menu/fetchMenuById.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { widgetImagesFactory } from \"./images.js\";\nimport { hasInstalledApp, waitForCheckingApps } from \"../checkInstalledApps.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: RuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function getPreEvaluatedRaw(pre: PreEvaluated): string {\n return pre[symbolForRaw];\n}\n\nexport function shouldDismissMarkingComputed(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\nexport async function asyncEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { blockingList, run } = lowLevelEvaluate(\n raw,\n runtimeContext,\n options,\n true\n );\n await Promise.all(blockingList);\n return run();\n}\n\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { run } = lowLevelEvaluate(raw, runtimeContext, options, false);\n return run();\n}\n\nfunction lowLevelEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options: EvaluateOptions = {},\n isAsync?: boolean\n): {\n blockingList: (Promise<unknown> | undefined)[];\n run: Function;\n} {\n const blockingList: (Promise<unknown> | undefined)[] = [];\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n\n const {\n pendingPermissionsPreCheck: _1,\n tplStateStoreMap: _2,\n tplStateStoreScope: _3,\n ...passByRuntimeContext\n } = runtimeContext;\n\n runtimeContext = {\n ...raw[symbolForContext],\n ...passByRuntimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // Collect `APP.getMenu(...)` usage before evaluating.\n const menuUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n const hasAppUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n collectAppGetMenuUsage(menuUsage, node, parent!);\n collectInstalledAppsHasUsage(hasAppUsage, node, parent!);\n },\n },\n });\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: {} },\n // error: message,\n // });\n // return;\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n\n if (menuUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n if (hasAppUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n const globalVariables: Record<string, unknown> = {};\n const { attemptToVisitGlobals } = precooked;\n\n // Ignore evaluating if required `event/DATA` is missing in\n // context. Since they are are provided in different context, whenever\n // missing one of them, memorize the current context for later consuming.\n if (\n options.lazy ||\n (attemptToVisitGlobals.has(\"EVENT\") &&\n !hasOwnProperty(runtimeContext, \"event\")) ||\n (attemptToVisitGlobals.has(\"DATA\") &&\n !hasOwnProperty(runtimeContext, \"data\"))\n ) {\n return {\n blockingList,\n run() {\n return Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n },\n };\n }\n\n let usedCtx: Set<string>;\n let usedProcessors: Set<string>;\n let usedStates: Set<string>;\n let tplStateStore: DataStore<\"STATE\"> | undefined;\n const strict = isStrictMode(runtimeContext);\n\n // For existed TPL usage, treat it as a STATE.\n if (\n attemptToVisitGlobals.has(\"STATE\") ||\n (!strict && attemptToVisitGlobals.has(\"TPL\"))\n ) {\n tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${raw}\"`);\n }\n\n const devHook = getDevHook();\n if (isAsync || devHook) {\n if (attemptToVisitGlobals.has(\"CTX\")) {\n usedCtx = strictCollectMemberUsage(raw, \"CTX\");\n isAsync && blockingList.push(runtimeContext.ctxStore.waitFor(usedCtx));\n }\n\n if (tplStateStore) {\n usedStates = strictCollectMemberUsage(raw, \"STATE\");\n // istanbul ignore if\n if (!strict) {\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\n }\n }\n isAsync && blockingList.push(tplStateStore.waitFor(usedStates));\n }\n\n if (attemptToVisitGlobals.has(\"PROCESSORS\")) {\n usedProcessors = strictCollectMemberUsage(raw, \"PROCESSORS\", 2);\n isAsync &&\n blockingList.push(\n loadProcessorsImperatively(usedProcessors, getBrickPackages())\n );\n }\n }\n\n if (isAsync) {\n let attemptToCheckPermissions = attemptToVisitGlobals.has(\"PERMISSIONS\");\n // There maybe `PERMISSIONS.check()` usage in functions\n if (!attemptToCheckPermissions && attemptToVisitGlobals.has(\"FN\")) {\n const usedFunctions = [...strictCollectMemberUsage(raw, \"FN\")];\n attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);\n }\n\n if (attemptToCheckPermissions) {\n blockingList.push(...runtimeContext.pendingPermissionsPreCheck);\n }\n\n if (menuUsage.usedArgs.size > 0) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) => fetchMenuById(menuId, runtimeContext))\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(waitForCheckingApps([...hasAppUsage.usedArgs]));\n }\n }\n\n return {\n blockingList,\n run() {\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n ctxStore,\n data,\n event,\n } = runtimeContext;\n const app = runtimeContext.overrideApp ?? currentApp;\n\n for (const variableName of attemptToVisitGlobals) {\n switch (variableName) {\n // case \"ALIAS\":\n case \"ANCHOR\":\n globalVariables[variableName] = location.hash\n ? location.hash.substring(1)\n : null;\n break;\n case \"APP\":\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedCtx);\n },\n });\n break;\n case \"DATA\":\n globalVariables[variableName] = data;\n break;\n case \"EVENT\":\n globalVariables[variableName] = event;\n break;\n case \"FLAGS\":\n globalVariables[variableName] = getReadOnlyProxy(flags);\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -13,18 +13,20 @@ exports.StateOfUseBrick = StateOfUseBrick;
|
|
|
13
13
|
StateOfUseBrick[StateOfUseBrick["USE_BRICK"] = 1] = "USE_BRICK";
|
|
14
14
|
StateOfUseBrick[StateOfUseBrick["USE_BRICK_ITEM"] = 2] = "USE_BRICK_ITEM";
|
|
15
15
|
StateOfUseBrick[StateOfUseBrick["USE_BRICK_PROPERTIES"] = 3] = "USE_BRICK_PROPERTIES";
|
|
16
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
17
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
18
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
19
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
20
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
21
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
22
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
23
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
16
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_TRANSFORM"] = 4] = "USE_BRICK_TRANSFORM";
|
|
17
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_EVENTS"] = 5] = "USE_BRICK_EVENTS";
|
|
18
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_IF"] = 6] = "USE_BRICK_IF";
|
|
19
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS"] = 7] = "USE_BRICK_SLOTS";
|
|
20
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS_ITEM"] = 8] = "USE_BRICK_SLOTS_ITEM";
|
|
21
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS_ITEM_BRICKS"] = 9] = "USE_BRICK_SLOTS_ITEM_BRICKS";
|
|
22
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS_ITEM_BRICKS_ITEM"] = 10] = "USE_BRICK_SLOTS_ITEM_BRICKS_ITEM";
|
|
23
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_LIFECYCLE"] = 11] = "USE_BRICK_LIFECYCLE";
|
|
24
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_DATA_SOURCE"] = 12] = "USE_BRICK_DATA_SOURCE";
|
|
24
25
|
})(StateOfUseBrick || (exports.StateOfUseBrick = StateOfUseBrick = {}));
|
|
25
26
|
function isLazyContentInUseBrick(state) {
|
|
26
27
|
switch (state) {
|
|
27
28
|
case StateOfUseBrick.USE_BRICK_PROPERTIES:
|
|
29
|
+
case StateOfUseBrick.USE_BRICK_TRANSFORM:
|
|
28
30
|
case StateOfUseBrick.USE_BRICK_EVENTS:
|
|
29
31
|
case StateOfUseBrick.USE_BRICK_IF:
|
|
30
32
|
case StateOfUseBrick.USE_BRICK_LIFECYCLE:
|
|
@@ -58,6 +60,8 @@ function getNextStateOfUseBrick(state, isArray, key) {
|
|
|
58
60
|
switch (key) {
|
|
59
61
|
case "properties":
|
|
60
62
|
return StateOfUseBrick.USE_BRICK_PROPERTIES;
|
|
63
|
+
case "transform":
|
|
64
|
+
return StateOfUseBrick.USE_BRICK_TRANSFORM;
|
|
61
65
|
case "dataSource":
|
|
62
66
|
return StateOfUseBrick.USE_BRICK_DATA_SOURCE;
|
|
63
67
|
case "events":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNextStateOfUseBrick.js","names":["StateOfUseBrick","exports","isLazyContentInUseBrick","state","USE_BRICK_PROPERTIES","USE_BRICK_EVENTS","USE_BRICK_IF","USE_BRICK_LIFECYCLE","USE_BRICK_DATA_SOURCE","getNextStateOfUseBrick","isArray","key","USE_BRICK","USE_BRICK_ITEM","USE_BRICK_SLOTS_ITEM_BRICKS","USE_BRICK_SLOTS_ITEM_BRICKS_ITEM","INITIAL","USE_BRICK_SLOTS","USE_BRICK_SLOTS_ITEM"],"sources":["../../../../src/internal/compute/getNextStateOfUseBrick.ts"],"sourcesContent":["export enum StateOfUseBrick {\n INITIAL,\n USE_BRICK,\n USE_BRICK_ITEM,\n USE_BRICK_PROPERTIES,\n USE_BRICK_EVENTS,\n USE_BRICK_IF,\n USE_BRICK_SLOTS,\n USE_BRICK_SLOTS_ITEM,\n USE_BRICK_SLOTS_ITEM_BRICKS,\n USE_BRICK_SLOTS_ITEM_BRICKS_ITEM,\n USE_BRICK_LIFECYCLE,\n USE_BRICK_DATA_SOURCE,\n}\n\nexport function isLazyContentInUseBrick(\n state: StateOfUseBrick | undefined\n): boolean {\n switch (state) {\n case StateOfUseBrick.USE_BRICK_PROPERTIES:\n case StateOfUseBrick.USE_BRICK_EVENTS:\n case StateOfUseBrick.USE_BRICK_IF:\n case StateOfUseBrick.USE_BRICK_LIFECYCLE:\n case StateOfUseBrick.USE_BRICK_DATA_SOURCE:\n return true;\n }\n return false;\n}\n\nexport function getNextStateOfUseBrick(\n state: StateOfUseBrick | undefined,\n isArray?: boolean,\n key?: string\n): StateOfUseBrick | undefined {\n if (isLazyContentInUseBrick(state)) {\n return state;\n }\n if (isArray) {\n switch (state) {\n case StateOfUseBrick.USE_BRICK:\n return StateOfUseBrick.USE_BRICK_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM;\n }\n } else {\n switch (state) {\n case StateOfUseBrick.INITIAL:\n if (key === \"useBrick\") {\n return StateOfUseBrick.USE_BRICK;\n }\n break;\n case StateOfUseBrick.USE_BRICK:\n case StateOfUseBrick.USE_BRICK_ITEM:\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM: {\n switch (key) {\n case \"properties\":\n return StateOfUseBrick.USE_BRICK_PROPERTIES;\n case \"dataSource\":\n return StateOfUseBrick.USE_BRICK_DATA_SOURCE;\n case \"events\":\n return StateOfUseBrick.USE_BRICK_EVENTS;\n case \"slots\":\n return StateOfUseBrick.USE_BRICK_SLOTS;\n case \"children\":\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n case \"if\":\n return StateOfUseBrick.USE_BRICK_IF;\n case \"lifeCycle\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE;\n }\n break;\n }\n case StateOfUseBrick.USE_BRICK_SLOTS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM:\n if (key === \"bricks\") {\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n }\n break;\n }\n }\n return StateOfUseBrick.INITIAL;\n}\n"],"mappings":";;;;;;;;IAAYA,eAAe;AAAAC,OAAA,CAAAD,eAAA,GAAAA,eAAA;AAAA,WAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;AAAA,GAAfA,eAAe,KAAAC,OAAA,CAAAD,eAAA,GAAfA,eAAe;
|
|
1
|
+
{"version":3,"file":"getNextStateOfUseBrick.js","names":["StateOfUseBrick","exports","isLazyContentInUseBrick","state","USE_BRICK_PROPERTIES","USE_BRICK_TRANSFORM","USE_BRICK_EVENTS","USE_BRICK_IF","USE_BRICK_LIFECYCLE","USE_BRICK_DATA_SOURCE","getNextStateOfUseBrick","isArray","key","USE_BRICK","USE_BRICK_ITEM","USE_BRICK_SLOTS_ITEM_BRICKS","USE_BRICK_SLOTS_ITEM_BRICKS_ITEM","INITIAL","USE_BRICK_SLOTS","USE_BRICK_SLOTS_ITEM"],"sources":["../../../../src/internal/compute/getNextStateOfUseBrick.ts"],"sourcesContent":["export enum StateOfUseBrick {\n INITIAL,\n USE_BRICK,\n USE_BRICK_ITEM,\n USE_BRICK_PROPERTIES,\n // Compatible mode\n USE_BRICK_TRANSFORM,\n USE_BRICK_EVENTS,\n USE_BRICK_IF,\n USE_BRICK_SLOTS,\n USE_BRICK_SLOTS_ITEM,\n USE_BRICK_SLOTS_ITEM_BRICKS,\n USE_BRICK_SLOTS_ITEM_BRICKS_ITEM,\n USE_BRICK_LIFECYCLE,\n USE_BRICK_DATA_SOURCE,\n}\n\nexport function isLazyContentInUseBrick(\n state: StateOfUseBrick | undefined\n): boolean {\n switch (state) {\n case StateOfUseBrick.USE_BRICK_PROPERTIES:\n case StateOfUseBrick.USE_BRICK_TRANSFORM:\n case StateOfUseBrick.USE_BRICK_EVENTS:\n case StateOfUseBrick.USE_BRICK_IF:\n case StateOfUseBrick.USE_BRICK_LIFECYCLE:\n case StateOfUseBrick.USE_BRICK_DATA_SOURCE:\n return true;\n }\n return false;\n}\n\nexport function getNextStateOfUseBrick(\n state: StateOfUseBrick | undefined,\n isArray?: boolean,\n key?: string\n): StateOfUseBrick | undefined {\n if (isLazyContentInUseBrick(state)) {\n return state;\n }\n if (isArray) {\n switch (state) {\n case StateOfUseBrick.USE_BRICK:\n return StateOfUseBrick.USE_BRICK_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM;\n }\n } else {\n switch (state) {\n case StateOfUseBrick.INITIAL:\n if (key === \"useBrick\") {\n return StateOfUseBrick.USE_BRICK;\n }\n break;\n case StateOfUseBrick.USE_BRICK:\n case StateOfUseBrick.USE_BRICK_ITEM:\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM: {\n switch (key) {\n case \"properties\":\n return StateOfUseBrick.USE_BRICK_PROPERTIES;\n case \"transform\":\n return StateOfUseBrick.USE_BRICK_TRANSFORM;\n case \"dataSource\":\n return StateOfUseBrick.USE_BRICK_DATA_SOURCE;\n case \"events\":\n return StateOfUseBrick.USE_BRICK_EVENTS;\n case \"slots\":\n return StateOfUseBrick.USE_BRICK_SLOTS;\n case \"children\":\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n case \"if\":\n return StateOfUseBrick.USE_BRICK_IF;\n case \"lifeCycle\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE;\n }\n break;\n }\n case StateOfUseBrick.USE_BRICK_SLOTS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM:\n if (key === \"bricks\") {\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n }\n break;\n }\n }\n return StateOfUseBrick.INITIAL;\n}\n"],"mappings":";;;;;;;;IAAYA,eAAe;AAAAC,OAAA,CAAAD,eAAA,GAAAA,eAAA;AAAA,WAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;AAAA,GAAfA,eAAe,KAAAC,OAAA,CAAAD,eAAA,GAAfA,eAAe;AAiBpB,SAASE,uBAAuBA,CACrCC,KAAkC,EACzB;EACT,QAAQA,KAAK;IACX,KAAKH,eAAe,CAACI,oBAAoB;IACzC,KAAKJ,eAAe,CAACK,mBAAmB;IACxC,KAAKL,eAAe,CAACM,gBAAgB;IACrC,KAAKN,eAAe,CAACO,YAAY;IACjC,KAAKP,eAAe,CAACQ,mBAAmB;IACxC,KAAKR,eAAe,CAACS,qBAAqB;MACxC,OAAO,IAAI;EAAC;EAEhB,OAAO,KAAK;AACd;AAEO,SAASC,sBAAsBA,CACpCP,KAAkC,EAClCQ,OAAiB,EACjBC,GAAY,EACiB;EAC7B,IAAIV,uBAAuB,CAACC,KAAK,CAAC,EAAE;IAClC,OAAOA,KAAK;EACd;EACA,IAAIQ,OAAO,EAAE;IACX,QAAQR,KAAK;MACX,KAAKH,eAAe,CAACa,SAAS;QAC5B,OAAOb,eAAe,CAACc,cAAc;MACvC,KAAKd,eAAe,CAACe,2BAA2B;QAC9C,OAAOf,eAAe,CAACgB,gCAAgC;IAAC;EAE9D,CAAC,MAAM;IACL,QAAQb,KAAK;MACX,KAAKH,eAAe,CAACiB,OAAO;QAC1B,IAAIL,GAAG,KAAK,UAAU,EAAE;UACtB,OAAOZ,eAAe,CAACa,SAAS;QAClC;QACA;MACF,KAAKb,eAAe,CAACa,SAAS;MAC9B,KAAKb,eAAe,CAACc,cAAc;MACnC,KAAKd,eAAe,CAACgB,gCAAgC;QAAE;UACrD,QAAQJ,GAAG;YACT,KAAK,YAAY;cACf,OAAOZ,eAAe,CAACI,oBAAoB;YAC7C,KAAK,WAAW;cACd,OAAOJ,eAAe,CAACK,mBAAmB;YAC5C,KAAK,YAAY;cACf,OAAOL,eAAe,CAACS,qBAAqB;YAC9C,KAAK,QAAQ;cACX,OAAOT,eAAe,CAACM,gBAAgB;YACzC,KAAK,OAAO;cACV,OAAON,eAAe,CAACkB,eAAe;YACxC,KAAK,UAAU;cACb,OAAOlB,eAAe,CAACe,2BAA2B;YACpD,KAAK,IAAI;cACP,OAAOf,eAAe,CAACO,YAAY;YACrC,KAAK,WAAW;cACd,OAAOP,eAAe,CAACQ,mBAAmB;UAAC;UAE/C;QACF;MACA,KAAKR,eAAe,CAACkB,eAAe;QAClC,OAAOlB,eAAe,CAACmB,oBAAoB;MAC7C,KAAKnB,eAAe,CAACmB,oBAAoB;QACvC,IAAIP,GAAG,KAAK,QAAQ,EAAE;UACpB,OAAOZ,eAAe,CAACe,2BAA2B;QACpD;QACA;IAAM;EAEZ;EACA,OAAOf,eAAe,CAACiB,OAAO;AAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n forEachItem?: unknown;\n appendI18nNamespace?: string;\n}\n\nexport type AsyncProperties = Promise<Record<string, unknown>>;\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderNode;\n hasTrackingControls?: boolean;\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderBrick;\n sibling?: RenderBrick;\n return?: RenderNode | null;\n childElements?: HTMLElement[];\n}\n\nexport type RenderNode = RenderRoot | RenderBrick;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostProperties?: AsyncProperties;\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n // `useBrick` has a local tpl state store scope\n tplStateStoreScope?: DataStore<\"STATE\">[];\n forEachItem?: unknown;\n appendI18nNamespace?: string;\n}\n\nexport type AsyncProperties = Promise<Record<string, unknown>>;\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderNode;\n hasTrackingControls?: boolean;\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderBrick;\n sibling?: RenderBrick;\n return?: RenderNode | null;\n childElements?: HTMLElement[];\n}\n\nexport type RenderNode = RenderRoot | RenderBrick;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostProperties?: AsyncProperties;\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n"],"mappings":""}
|
|
@@ -20,13 +20,15 @@ var _enums = require("./enums.js");
|
|
|
20
20
|
var _computeRealValue = require("./compute/computeRealValue.js");
|
|
21
21
|
var _isStrictMode = require("../isStrictMode.js");
|
|
22
22
|
async function renderUseBrick(useBrick, data) {
|
|
23
|
-
var _output$node;
|
|
23
|
+
var _runtimeContext$tplSt, _output$node;
|
|
24
|
+
const tplStateStoreScope = [];
|
|
24
25
|
const runtimeContext = {
|
|
25
26
|
...(0, _Runtime._internalApiGetRuntimeContext)(),
|
|
26
27
|
data,
|
|
27
28
|
pendingPermissionsPreCheck: [],
|
|
28
|
-
|
|
29
|
+
tplStateStoreScope
|
|
29
30
|
};
|
|
31
|
+
(_runtimeContext$tplSt = runtimeContext.tplStateStoreMap) !== null && _runtimeContext$tplSt !== void 0 ? _runtimeContext$tplSt : runtimeContext.tplStateStoreMap = new Map();
|
|
30
32
|
const rendererContext = new _RendererContext.RendererContext("useBrick");
|
|
31
33
|
const renderRoot = {
|
|
32
34
|
tag: _enums.RenderTag.ROOT,
|
|
@@ -46,7 +48,9 @@ async function renderUseBrick(useBrick, data) {
|
|
|
46
48
|
}
|
|
47
49
|
}, runtimeContext, rendererContext);
|
|
48
50
|
(0, _loader.flushStableLoadBricks)();
|
|
49
|
-
await Promise.all([...output.blockingList,
|
|
51
|
+
await Promise.all([...output.blockingList,
|
|
52
|
+
// Wait for local tpl state stores belong to current `useBrick` only.
|
|
53
|
+
...tplStateStoreScope.map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
|
|
50
54
|
if ((_output$node = output.node) !== null && _output$node !== void 0 && _output$node.portal) {
|
|
51
55
|
throw new Error("The root brick of useBrick cannot be a portal brick");
|
|
52
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret_internals.js","names":["_loader","require","_Runtime","_Renderer","_RendererContext","_mount","_handleHttpError","_themeAndMode","_enums","_computeRealValue","_isStrictMode","renderUseBrick","useBrick","data","_output$node","runtimeContext","_internalApiGetRuntimeContext","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","RendererContext","renderRoot","tag","RenderTag","ROOT","createPortal","transform","strict","isStrictMode","warnAboutStrictMode","output","renderBrick","properties","flushStableLoadBricks","Promise","all","blockingList","values","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","element","portalRoot","document","querySelector","createElement","appendChild","mountTree","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","mountResult","unmountTree","remove","dispatchOnUnmount","dispose","_rendererContext","initializePreviewBootstrap","bootstrapData","_internalApiSetBootstrapData","renderPreviewBricks","bricks","mountPoints","options","previousRendererContext","container","main","failed","renderBricks","push","error","BRICK","textContent","httpErrorToString","return","menuRequests","sandbox","_options$theme","setTheme","theme","setMode","dispatchBeforePageLoad","applyTheme","applyMode","window","scrollTo","dispatchPageLoad","legacyDoTransform","to","computeRealValue","noInject"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n SiteTheme,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiSetBootstrapData,\n} from \"./Runtime.js\";\nimport { RenderOutput, renderBrick, renderBricks } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n };\n\n const rendererContext = new RendererContext(\"useBrick\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nlet _rendererContext: RendererContext;\n\nexport function initializePreviewBootstrap(\n bootstrapData: Partial<BootstrapData>\n) {\n _internalApiSetBootstrapData(bootstrapData);\n}\n\nexport async function renderPreviewBricks(\n bricks: BrickConf[],\n mountPoints: {\n main: HTMLElement;\n portal: HTMLElement;\n },\n options: {\n sandbox?: boolean;\n theme?: SiteTheme;\n } = {}\n) {\n const runtimeContext = {\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n const previousRendererContext = _rendererContext;\n const rendererContext = (_rendererContext = new RendererContext(\"router\"));\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: mountPoints.main,\n createPortal: mountPoints.portal,\n };\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext\n );\n\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n\n flushStableLoadBricks();\n\n await Promise.all(output.blockingList);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispose();\n unmountTree(mountPoints.main);\n unmountTree(mountPoints.portal);\n\n if (options.sandbox) {\n setTheme(options.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (options.sandbox) {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n }\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secret_internals.js","names":["_loader","require","_Runtime","_Renderer","_RendererContext","_mount","_handleHttpError","_themeAndMode","_enums","_computeRealValue","_isStrictMode","renderUseBrick","useBrick","data","_runtimeContext$tplSt","_output$node","tplStateStoreScope","runtimeContext","_internalApiGetRuntimeContext","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","RendererContext","renderRoot","tag","RenderTag","ROOT","createPortal","transform","strict","isStrictMode","warnAboutStrictMode","output","renderBrick","properties","flushStableLoadBricks","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","element","portalRoot","document","querySelector","createElement","appendChild","mountTree","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","mountResult","unmountTree","remove","dispatchOnUnmount","dispose","_rendererContext","initializePreviewBootstrap","bootstrapData","_internalApiSetBootstrapData","renderPreviewBricks","bricks","mountPoints","options","previousRendererContext","container","main","failed","renderBricks","push","values","error","BRICK","textContent","httpErrorToString","return","menuRequests","sandbox","_options$theme","setTheme","theme","setMode","dispatchBeforePageLoad","applyTheme","applyMode","window","scrollTo","dispatchPageLoad","legacyDoTransform","to","computeRealValue","noInject"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n SiteTheme,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiSetBootstrapData,\n} from \"./Runtime.js\";\nimport { RenderOutput, renderBrick, renderBricks } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"useBrick\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...tplStateStoreScope.map((store) => store.waitForAll()),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nlet _rendererContext: RendererContext;\n\nexport function initializePreviewBootstrap(\n bootstrapData: Partial<BootstrapData>\n) {\n _internalApiSetBootstrapData(bootstrapData);\n}\n\nexport async function renderPreviewBricks(\n bricks: BrickConf[],\n mountPoints: {\n main: HTMLElement;\n portal: HTMLElement;\n },\n options: {\n sandbox?: boolean;\n theme?: SiteTheme;\n } = {}\n) {\n const runtimeContext = {\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n const previousRendererContext = _rendererContext;\n const rendererContext = (_rendererContext = new RendererContext(\"router\"));\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: mountPoints.main,\n createPortal: mountPoints.portal,\n };\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext\n );\n\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n\n flushStableLoadBricks();\n\n await Promise.all(output.blockingList);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispose();\n unmountTree(mountPoints.main);\n unmountTree(mountPoints.portal);\n\n if (options.sandbox) {\n setTheme(options.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (options.sandbox) {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n }\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n"],"mappings":"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"}
|
|
@@ -19,6 +19,9 @@ export function expandCustomTemplate(tplTagName, brickConf, hostBrick, asyncHost
|
|
|
19
19
|
delete runtimeContext.forEachItem;
|
|
20
20
|
var tplStateStore = new DataStore("STATE", hostBrick);
|
|
21
21
|
runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);
|
|
22
|
+
if (runtimeContext.tplStateStoreScope) {
|
|
23
|
+
runtimeContext.tplStateStoreScope.push(tplStateStore);
|
|
24
|
+
}
|
|
22
25
|
var {
|
|
23
26
|
bricks,
|
|
24
27
|
proxy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandCustomTemplate.js","names":["uniqueId","customTemplates","DataStore","setupTemplateProxy","setupUseBrickInTemplate","childrenToSlots","collectWidgetContract","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostProperties","tplStateStoreId","runtimeContext","_objectSpread","forEachItem","tplStateStore","tplStateStoreMap","set","bricks","proxy","state","contracts","get","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","_objectWithoutProperties","_excluded","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","
|
|
1
|
+
{"version":3,"file":"expandCustomTemplate.js","names":["uniqueId","customTemplates","DataStore","setupTemplateProxy","setupUseBrickInTemplate","childrenToSlots","collectWidgetContract","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostProperties","tplStateStoreId","runtimeContext","_objectSpread","forEachItem","tplStateStore","tplStateStoreMap","set","tplStateStoreScope","push","bricks","proxy","state","contracts","get","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","_objectWithoutProperties","_excluded","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","hostContext","externalSlots","type","map","item","expandBrickInTemplate","brickConfInTemplate","if","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","_excluded2","transpiledSlots","fromEntries","_ref","_slotConf$bricks","slotName","slotConf"],"sources":["../../../../src/internal/CustomTemplates/expandCustomTemplate.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n SlotsConfInTemplate,\n SlotsConfOfBricks,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { uniqueId } from \"lodash\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport { RuntimeBrickConfWithTplSymbols } from \"./constants.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n TemplateHostBrick,\n TemplateHostContext,\n} from \"../interfaces.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { collectWidgetContract } from \"../data/CollectContracts.js\";\n\nexport function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(\n tplTagName: string,\n brickConf: T,\n hostBrick: RuntimeBrick,\n asyncHostProperties: AsyncProperties | undefined\n): T {\n const tplStateStoreId = uniqueId(\"tpl-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n tplStateStoreId,\n };\n\n // There is a boundary for `forEachItem` between template internals and externals.\n delete runtimeContext.forEachItem;\n\n const tplStateStore = new DataStore(\"STATE\", hostBrick);\n runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);\n if (runtimeContext.tplStateStoreScope) {\n runtimeContext.tplStateStoreScope.push(tplStateStore);\n }\n\n const { bricks, proxy, state, contracts } = customTemplates.get(tplTagName)!;\n collectWidgetContract(contracts);\n tplStateStore.define(state, runtimeContext, asyncHostProperties);\n\n const {\n slots: originalExternalSlots,\n children: externalChildren,\n ...restBrickConf\n } = brickConf;\n\n const newBrickConf = {\n ...restBrickConf,\n brick: tplTagName,\n } as T;\n\n hostBrick.tplHostMetadata = {\n internalBricksByRef: new Map(),\n tplStateStoreId,\n proxy,\n };\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies: TemplateHostContext[\"reversedProxies\"] = {\n properties: new Map(),\n slots: new Map(),\n // mergeBases: new Map(),\n };\n\n if (proxy?.properties) {\n for (const [from, to] of Object.entries(proxy.properties)) {\n let proxies = reversedProxies.properties.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.properties.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n if (proxy?.slots) {\n for (const [from, to] of Object.entries(proxy.slots)) {\n let proxies = reversedProxies.slots.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.slots.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n const hostContext: TemplateHostContext = {\n reversedProxies,\n asyncHostProperties,\n externalSlots: childrenToSlots(externalChildren, originalExternalSlots) as\n | SlotsConfOfBricks\n | undefined,\n tplStateStoreId,\n hostBrick: hostBrick as TemplateHostBrick,\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.map((item) => expandBrickInTemplate(item, hostContext)),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConfInTemplate,\n hostContext: TemplateHostContext\n): RuntimeBrickConfWithTplSymbols {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n const {\n properties,\n slots: slotsInTemplate,\n children: childrenInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate;\n\n const transpiledSlots = childrenToSlots(\n childrenInTemplate,\n slotsInTemplate\n ) as SlotsConfInTemplate | undefined;\n\n const slots: SlotsConfOfBricks = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map((item) =>\n expandBrickInTemplate(item, hostContext)\n ),\n },\n ])\n );\n\n return {\n ...restBrickConfInTemplate,\n properties: setupUseBrickInTemplate(properties, hostContext),\n slots,\n ...setupTemplateProxy(hostContext, restBrickConfInTemplate.ref, slots),\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
3
|
import { isEvaluable } from "@next-core/cook";
|
|
4
|
-
import { isObject } from "@next-core/utils/general";
|
|
5
|
-
import { transformAndInject, transform } from "@next-core/inject";
|
|
4
|
+
import { hasOwnProperty, isObject } from "@next-core/utils/general";
|
|
5
|
+
import { transformAndInject, transform, inject } from "@next-core/inject";
|
|
6
6
|
import { asyncEvaluate, isPreEvaluated, evaluate, shouldDismissMarkingComputed } from "./evaluate.js";
|
|
7
7
|
import { getNextStateOfUseBrick, isLazyContentInUseBrick } from "./getNextStateOfUseBrick.js";
|
|
8
8
|
import { hasBeenComputed, markAsComputed } from "./markAsComputed.js";
|
|
@@ -25,7 +25,7 @@ function _asyncComputeRealValue() {
|
|
|
25
25
|
});
|
|
26
26
|
dismissMarkingComputed = shouldDismissMarkingComputed(value);
|
|
27
27
|
} else {
|
|
28
|
-
result = lazy ? value : (internalOptions.noInject ? transform : transformAndInject)(value, runtimeContext);
|
|
28
|
+
result = lazy ? value : (hasOwnProperty(runtimeContext, "data") ? internalOptions.noInject ? transform : transformAndInject : internalOptions.noInject ? identity : inject)(value, runtimeContext);
|
|
29
29
|
}
|
|
30
30
|
if (!dismissMarkingComputed) {
|
|
31
31
|
markAsComputed(result);
|
|
@@ -59,7 +59,7 @@ export function computeRealValue(value, runtimeContext) {
|
|
|
59
59
|
result = evaluate(value, runtimeContext);
|
|
60
60
|
dismissMarkingComputed = shouldDismissMarkingComputed(value);
|
|
61
61
|
} else {
|
|
62
|
-
result = lazy ? value : transformAndInject(value, runtimeContext);
|
|
62
|
+
result = lazy ? value : (hasOwnProperty(runtimeContext, "data") ? internalOptions.noInject ? transform : transformAndInject : internalOptions.noInject ? identity : inject)(value, runtimeContext);
|
|
63
63
|
}
|
|
64
64
|
if (!dismissMarkingComputed) {
|
|
65
65
|
markAsComputed(result);
|
|
@@ -83,4 +83,7 @@ function getNextComputeOptions(internalOptions, isArray, key) {
|
|
|
83
83
|
$$stateOfUseBrick: getNextStateOfUseBrick(internalOptions.$$stateOfUseBrick, isArray, key)
|
|
84
84
|
}) : internalOptions;
|
|
85
85
|
}
|
|
86
|
+
function identity(value) {
|
|
87
|
+
return value;
|
|
88
|
+
}
|
|
86
89
|
//# sourceMappingURL=computeRealValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeRealValue.js","names":["isEvaluable","isObject","transformAndInject","transform","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","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 { isObject } from \"@next-core/utils/general\";\nimport { transformAndInject, transform } 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 : (internalOptions.noInject ? transform : transformAndInject)(\n value,\n runtimeContext\n );\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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"}
|
|
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 (!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\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 (!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\nfunction identity<T>(value: T): T {\n return value;\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
-
var _excluded = ["pendingPermissionsPreCheck", "tplStateStoreMap"];
|
|
4
|
+
var _excluded = ["pendingPermissionsPreCheck", "tplStateStoreMap", "tplStateStoreScope"];
|
|
5
5
|
import { cook, preevaluate, shouldAllowRecursiveEvaluations } from "@next-core/cook";
|
|
6
6
|
import { loadProcessorsImperatively } from "@next-core/loader";
|
|
7
7
|
import { supply } from "@next-core/supply";
|
|
@@ -78,7 +78,8 @@ runtimeContext) {
|
|
|
78
78
|
|
|
79
79
|
var {
|
|
80
80
|
pendingPermissionsPreCheck: _1,
|
|
81
|
-
tplStateStoreMap: _2
|
|
81
|
+
tplStateStoreMap: _2,
|
|
82
|
+
tplStateStoreScope: _3
|
|
82
83
|
} = runtimeContext,
|
|
83
84
|
passByRuntimeContext = _objectWithoutProperties(runtimeContext, _excluded);
|
|
84
85
|
runtimeContext = _objectSpread(_objectSpread({}, raw[symbolForContext]), passByRuntimeContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","cloneDeep","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","getDevHook","getMedia","getStorageItem","getBrickPackages","getRuntime","getTplStateStore","widgetFunctions","collectAppGetMenuUsage","collectInstalledAppsHasUsage","fetchMenuById","getMenuById","widgetI18nFactory","widgetImagesFactory","hasInstalledApp","waitForCheckingApps","isStrictMode","warnAboutStrictMode","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","_x","_x2","_x3","_asyncEvaluate","apply","arguments","_asyncToGenerator","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","length","undefined","isAsync","pendingPermissionsPreCheck","_1","tplStateStoreMap","_2","passByRuntimeContext","_objectWithoutProperties","_excluded","_objectSpread","menuUsage","usedArgs","Set","hasAppUsage","precooked","withParent","hooks","beforeVisitGlobal","node","parent","message","concat","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","Object","keys","usedCtx","usedProcessors","usedStates","tplStateStore","strict","devHook","push","ctxStore","waitFor","usedTpls","tpl","add","attemptToCheckPermissions","usedFunctions","size","usedMenuIds","map","menuId","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","getMenu","get","target","key","getValue","ownKeys","Array","from","console","forEachItem","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","t","k","fromEntries","getAll","assign","appendI18nNamespace","result","expression","source"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep } from \"lodash\";\nimport { customProcessors } from \"../../CustomProcessors.js\";\nimport {\n checkPermissionsUsage,\n storyboardFunctions,\n} from \"./StoryboardFunctions.js\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals.js\";\nimport {\n getDynamicReadOnlyProxy,\n getReadOnlyProxy,\n} from \"../proxyFactories.js\";\nimport { getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport { getBrickPackages, getRuntime } from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport {\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"./collectMemberCallUsage.js\";\nimport { fetchMenuById, getMenuById } from \"../menu/fetchMenuById.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { widgetImagesFactory } from \"./images.js\";\nimport { hasInstalledApp, waitForCheckingApps } from \"../checkInstalledApps.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: RuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function getPreEvaluatedRaw(pre: PreEvaluated): string {\n return pre[symbolForRaw];\n}\n\nexport function shouldDismissMarkingComputed(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\nexport async function asyncEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { blockingList, run } = lowLevelEvaluate(\n raw,\n runtimeContext,\n options,\n true\n );\n await Promise.all(blockingList);\n return run();\n}\n\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { run } = lowLevelEvaluate(raw, runtimeContext, options, false);\n return run();\n}\n\nfunction lowLevelEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options: EvaluateOptions = {},\n isAsync?: boolean\n): {\n blockingList: (Promise<unknown> | undefined)[];\n run: Function;\n} {\n const blockingList: (Promise<unknown> | undefined)[] = [];\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n\n const {\n pendingPermissionsPreCheck: _1,\n tplStateStoreMap: _2,\n ...passByRuntimeContext\n } = runtimeContext;\n\n runtimeContext = {\n ...raw[symbolForContext],\n ...passByRuntimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // Collect `APP.getMenu(...)` usage before evaluating.\n const menuUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n const hasAppUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n collectAppGetMenuUsage(menuUsage, node, parent!);\n collectInstalledAppsHasUsage(hasAppUsage, node, parent!);\n },\n },\n });\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: {} },\n // error: message,\n // });\n // return;\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n\n if (menuUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n if (hasAppUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n const globalVariables: Record<string, unknown> = {};\n const { attemptToVisitGlobals } = precooked;\n\n // Ignore evaluating if required `event/DATA` is missing in\n // context. Since they are are provided in different context, whenever\n // missing one of them, memorize the current context for later consuming.\n if (\n options.lazy ||\n (attemptToVisitGlobals.has(\"EVENT\") &&\n !hasOwnProperty(runtimeContext, \"event\")) ||\n (attemptToVisitGlobals.has(\"DATA\") &&\n !hasOwnProperty(runtimeContext, \"data\"))\n ) {\n return {\n blockingList,\n run() {\n return Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n },\n };\n }\n\n let usedCtx: Set<string>;\n let usedProcessors: Set<string>;\n let usedStates: Set<string>;\n let tplStateStore: DataStore<\"STATE\"> | undefined;\n const strict = isStrictMode(runtimeContext);\n\n // For existed TPL usage, treat it as a STATE.\n if (\n attemptToVisitGlobals.has(\"STATE\") ||\n (!strict && attemptToVisitGlobals.has(\"TPL\"))\n ) {\n tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${raw}\"`);\n }\n\n const devHook = getDevHook();\n if (isAsync || devHook) {\n if (attemptToVisitGlobals.has(\"CTX\")) {\n usedCtx = strictCollectMemberUsage(raw, \"CTX\");\n isAsync && blockingList.push(runtimeContext.ctxStore.waitFor(usedCtx));\n }\n\n if (tplStateStore) {\n usedStates = strictCollectMemberUsage(raw, \"STATE\");\n // istanbul ignore if\n if (!strict) {\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\n }\n }\n isAsync && blockingList.push(tplStateStore.waitFor(usedStates));\n }\n\n if (attemptToVisitGlobals.has(\"PROCESSORS\")) {\n usedProcessors = strictCollectMemberUsage(raw, \"PROCESSORS\", 2);\n isAsync &&\n blockingList.push(\n loadProcessorsImperatively(usedProcessors, getBrickPackages())\n );\n }\n }\n\n if (isAsync) {\n let attemptToCheckPermissions = attemptToVisitGlobals.has(\"PERMISSIONS\");\n // There maybe `PERMISSIONS.check()` usage in functions\n if (!attemptToCheckPermissions && attemptToVisitGlobals.has(\"FN\")) {\n const usedFunctions = [...strictCollectMemberUsage(raw, \"FN\")];\n attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);\n }\n\n if (attemptToCheckPermissions) {\n blockingList.push(...runtimeContext.pendingPermissionsPreCheck);\n }\n\n if (menuUsage.usedArgs.size > 0) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) => fetchMenuById(menuId, runtimeContext))\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(waitForCheckingApps([...hasAppUsage.usedArgs]));\n }\n }\n\n return {\n blockingList,\n run() {\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n ctxStore,\n data,\n event,\n } = runtimeContext;\n const app = runtimeContext.overrideApp ?? currentApp;\n\n for (const variableName of attemptToVisitGlobals) {\n switch (variableName) {\n // case \"ALIAS\":\n case \"ANCHOR\":\n globalVariables[variableName] = location.hash\n ? location.hash.substring(1)\n : null;\n break;\n case \"APP\":\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedCtx);\n },\n });\n break;\n case \"DATA\":\n globalVariables[variableName] = data;\n break;\n case \"EVENT\":\n globalVariables[variableName] = event;\n break;\n case \"FLAGS\":\n globalVariables[variableName] = getReadOnlyProxy(flags);\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":";;;;AAAA,SACEA,IAAI,EACJC,WAAW,EAEXC,+BAA+B,QAC1B,iBAAiB;AACxB,SAASC,0BAA0B,QAAQ,mBAAmB;AAC9D,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,wBAAwB,QAAQ,6BAA6B;AAEtE,SAASC,SAAS,QAAQ,QAAQ;AAClC,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,SACEC,qBAAqB,EACrBC,mBAAmB,QACd,0BAA0B;AACjC,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SACEC,uBAAuB,EACvBC,gBAAgB,QACX,sBAAsB;AAC7B,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,QAAQ,QAAQ,kBAAkB;AAC3C,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,eAAe;AAE5D,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SACEC,sBAAsB,EACtBC,4BAA4B,QAEvB,6BAA6B;AACpC,SAASC,aAAa,EAAEC,WAAW,QAAQ,0BAA0B;AACrE,SAASC,iBAAiB,QAAQ,iBAAiB;AACnD,SAASC,mBAAmB,QAAQ,aAAa;AACjD,SAASC,eAAe,EAAEC,mBAAmB,QAAQ,0BAA0B;AAC/E,SAASC,YAAY,EAAEC,mBAAmB,QAAQ,uBAAuB;AAEzE,IAAMC,YAAY,GAAGC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AACpD,IAAMC,gBAAgB,GAAGF,MAAM,CAACC,GAAG,CAAC,uBAAuB,CAAC;AAa5D,OAAO,SAASE,cAAcA,CAACC,GAAY,EAAuB;EAChE,OAAO,CAAC,EAAEA,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAoBL,YAAY,CAAC;AAChD;AAEA,OAAO,SAASM,kBAAkBA,CAACC,GAAiB,EAAU;EAC5D,OAAOA,GAAG,CAACP,YAAY,CAAC;AAC1B;AAEA,OAAO,SAASQ,4BAA4BA,CAC1CH,GAA0B,EACjB;EACT,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAOlC,+BAA+B,CAACkC,GAAG,CAAC;EAC7C;EACA,OAAOlC,+BAA+B,CAACkC,GAAG,CAACL,YAAY,CAAC,CAAC;AAC3D;AAEA,IAAMS,uBAAuB,GAAG,IAAIC,OAAO,CAAmB,CAC5DC,WAAW,EACXC,SAAS,EACTC,cAAc,CACf,CAAC;AAEF,OAAO,SAASC,uBAAuBA,CAACC,KAAU,EAAoB;EACpE,OAAON,uBAAuB,CAACO,GAAG,CAACD,KAAK,CAACE,WAAW,CAAC,GACjDF,KAAK,CAACE,WAAW,GACjBL,SAAS;AACf;AAEA,gBAAsBM,aAAaA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,cAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAalC,SAAAF,eAAA;EAAAA,cAAA,GAAAG,iBAAA,CAbM,WACLpB,GAA0B;EAAE;EAC5BqB,cAA8B,EAC9BC,OAAyB,EACP;IAClB,IAAM;MAAEC,YAAY;MAAEC;IAAI,CAAC,GAAGC,gBAAgB,CAC5CzB,GAAG,EACHqB,cAAc,EACdC,OAAO,EACP,IAAI,CACL;IACD,MAAMI,OAAO,CAACC,GAAG,CAACJ,YAAY,CAAC;IAC/B,OAAOC,GAAG,EAAE;EACd,CAAC;EAAA,OAAAP,cAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,OAAO,SAASS,QAAQA,CACtB5B,GAA0B;AAAE;AAC5BqB,cAA8B,EAC9BC,OAAyB,EACP;EAClB,IAAM;IAAEE;EAAI,CAAC,GAAGC,gBAAgB,CAACzB,GAAG,EAAEqB,cAAc,EAAEC,OAAO,EAAE,KAAK,CAAC;EACrE,OAAOE,GAAG,EAAE;AACd;AAEA,SAASC,gBAAgBA,CACvBzB,GAA0B;AAAE;AAC5BqB,cAA8B,EAM9B;EAAA,IALAC,OAAwB,GAAAH,SAAA,CAAAU,MAAA,QAAAV,SAAA,QAAAW,SAAA,GAAAX,SAAA,MAAG,CAAC,CAAC;EAAA,IAC7BY,OAAiB,GAAAZ,SAAA,CAAAU,MAAA,OAAAV,SAAA,MAAAW,SAAA;EAKjB,IAAMP,YAA8C,GAAG,EAAE;EACzD,IAAI,OAAOvB,GAAG,KAAK,QAAQ,EAAE;IAC3B;IACA;;IAEA,IAAM;QACJgC,0BAA0B,EAAEC,EAAE;QAC9BC,gBAAgB,EAAEC;MAEpB,CAAC,GAAGd,cAAc;MADbe,oBAAoB,GAAAC,wBAAA,CACrBhB,cAAc,EAAAiB,SAAA;IAElBjB,cAAc,GAAAkB,aAAA,CAAAA,aAAA,KACTvC,GAAG,CAACF,gBAAgB,CAAC,GACrBsC,oBAAoB,CACxB;IACDpC,GAAG,GAAGA,GAAG,CAACL,YAAY,CAAC;EACzB;;EAEA;EACA,IAAM6C,SAA0B,GAAG;IACjCC,QAAQ,EAAE,IAAIC,GAAG;EACnB,CAAC;EACD,IAAMC,WAA4B,GAAG;IACnCF,QAAQ,EAAE,IAAIC,GAAG;EACnB,CAAC;;EAED;EACA,IAAIE,SAA4B;EAChC,IAAI;IACFA,SAAS,GAAG/E,WAAW,CAACmC,GAAG,EAAE;MAC3B6C,UAAU,EAAE,IAAI;MAChBC,KAAK,EAAE;QACLC,iBAAiBA,CAACC,IAAI,EAAEC,MAAM,EAAE;UAC9BhE,sBAAsB,CAACuD,SAAS,EAAEQ,IAAI,EAAEC,MAAM,CAAE;UAChD/D,4BAA4B,CAACyD,WAAW,EAAEK,IAAI,EAAEC,MAAM,CAAE;QAC1D;MACF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOvC,KAAU,EAAE;IACnB,IAAMwC,OAAO,MAAAC,MAAA,CAAMzC,KAAK,CAACwC,OAAO,aAAAC,MAAA,CAASnD,GAAG,OAAG;IAC/C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAMoD,gBAAgB,GAAG3C,uBAAuB,CAACC,KAAK,CAAC;IACvD,MAAM,IAAI0C,gBAAgB,CAACF,OAAO,CAAC;IACnC;EACF;;EAEA,IAAIV,SAAS,CAACa,iBAAiB,EAAE;IAC/B,MAAM,IAAIC,KAAK,sFAAAH,MAAA,CACqEnD,GAAG,QACtF;EACH;EAEA,IAAI2C,WAAW,CAACU,iBAAiB,EAAE;IACjC,MAAM,IAAIC,KAAK,6FAAAH,MAAA,CAC4EnD,GAAG,QAC7F;EACH;EAEA,IAAMuD,eAAwC,GAAG,CAAC,CAAC;EACnD,IAAM;IAAEC;EAAsB,CAAC,GAAGZ,SAAS;;EAE3C;EACA;EACA;EACA,IACEtB,OAAO,CAACmC,IAAI,IACXD,qBAAqB,CAAC7C,GAAG,CAAC,OAAO,CAAC,IACjC,CAAC1C,cAAc,CAACoD,cAAc,EAAE,OAAO,CAAE,IAC1CmC,qBAAqB,CAAC7C,GAAG,CAAC,MAAM,CAAC,IAChC,CAAC1C,cAAc,CAACoD,cAAc,EAAE,MAAM,CAAE,EAC1C;IACA,OAAO;MACLE,YAAY;MACZC,GAAGA,CAAA,EAAG;QACJ,OAAOkC,MAAM,CAACC,IAAI,CAACtC,cAAc,CAAC,CAACQ,MAAM,GAAG,CAAC,GACxC;UACC,CAAClC,YAAY,GAAGK,GAAG;UACnB,CAACF,gBAAgB,GAAGuB;QACtB,CAAC,GACDrB,GAAG;MACT;IACF,CAAC;EACH;EAEA,IAAI4D,OAAoB;EACxB,IAAIC,cAA2B;EAC/B,IAAIC,UAAuB;EAC3B,IAAIC,aAA6C;EACjD,IAAMC,MAAM,GAAGvE,YAAY,CAAC4B,cAAc,CAAC;;EAE3C;EACA,IACEmC,qBAAqB,CAAC7C,GAAG,CAAC,OAAO,CAAC,IACjC,CAACqD,MAAM,IAAIR,qBAAqB,CAAC7C,GAAG,CAAC,KAAK,CAAE,EAC7C;IACAoD,aAAa,GAAGhF,gBAAgB,CAACsC,cAAc,EAAE,OAAO,SAAA8B,MAAA,CAAQnD,GAAG,QAAI;EACzE;EAEA,IAAMiE,OAAO,GAAGvF,UAAU,EAAE;EAC5B,IAAIqD,OAAO,IAAIkC,OAAO,EAAE;IACtB,IAAIT,qBAAqB,CAAC7C,GAAG,CAAC,KAAK,CAAC,EAAE;MACpCiD,OAAO,GAAG1F,wBAAwB,CAAC8B,GAAG,EAAE,KAAK,CAAC;MAC9C+B,OAAO,IAAIR,YAAY,CAAC2C,IAAI,CAAC7C,cAAc,CAAC8C,QAAQ,CAACC,OAAO,CAACR,OAAO,CAAC,CAAC;IACxE;IAEA,IAAIG,aAAa,EAAE;MACjBD,UAAU,GAAG5F,wBAAwB,CAAC8B,GAAG,EAAE,OAAO,CAAC;MACnD;MACA,IAAI,CAACgE,MAAM,EAAE;QACX,IAAMK,QAAQ,GAAGnG,wBAAwB,CAAC8B,GAAG,EAAE,KAAK,CAAC;QACrD,KAAK,IAAMsE,GAAG,IAAID,QAAQ,EAAE;UAC1BP,UAAU,CAACS,GAAG,CAACD,GAAG,CAAC;QACrB;MACF;MACAvC,OAAO,IAAIR,YAAY,CAAC2C,IAAI,CAACH,aAAa,CAACK,OAAO,CAACN,UAAU,CAAC,CAAC;IACjE;IAEA,IAAIN,qBAAqB,CAAC7C,GAAG,CAAC,YAAY,CAAC,EAAE;MAC3CkD,cAAc,GAAG3F,wBAAwB,CAAC8B,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;MAC/D+B,OAAO,IACLR,YAAY,CAAC2C,IAAI,CACfnG,0BAA0B,CAAC8F,cAAc,EAAEhF,gBAAgB,EAAE,CAAC,CAC/D;IACL;EACF;EAEA,IAAIkD,OAAO,EAAE;IACX,IAAIyC,yBAAyB,GAAGhB,qBAAqB,CAAC7C,GAAG,CAAC,aAAa,CAAC;IACxE;IACA,IAAI,CAAC6D,yBAAyB,IAAIhB,qBAAqB,CAAC7C,GAAG,CAAC,IAAI,CAAC,EAAE;MACjE,IAAM8D,aAAa,GAAG,CAAC,GAAGvG,wBAAwB,CAAC8B,GAAG,EAAE,IAAI,CAAC,CAAC;MAC9DwE,yBAAyB,GAAGnG,qBAAqB,CAACoG,aAAa,CAAC;IAClE;IAEA,IAAID,yBAAyB,EAAE;MAC7BjD,YAAY,CAAC2C,IAAI,CAAC,GAAG7C,cAAc,CAACW,0BAA0B,CAAC;IACjE;IAEA,IAAIQ,SAAS,CAACC,QAAQ,CAACiC,IAAI,GAAG,CAAC,EAAE;MAC/B;MACA,IAAMC,WAAW,GAAG,CAAC,GAAGnC,SAAS,CAACC,QAAQ,CAAC;MAC3ClB,YAAY,CAAC2C,IAAI,CACfxC,OAAO,CAACC,GAAG,CACTgD,WAAW,CAACC,GAAG,CAAEC,MAAM,IAAK1F,aAAa,CAAC0F,MAAM,EAAExD,cAAc,CAAC,CAAC,CACnE,CACF;IACH;IAEA,IAAIsB,WAAW,CAACF,QAAQ,CAACiC,IAAI,GAAG,CAAC,EAAE;MACjC;MACAnD,YAAY,CAAC2C,IAAI,CAAC1E,mBAAmB,CAAC,CAAC,GAAGmD,WAAW,CAACF,QAAQ,CAAC,CAAC,CAAC;IACnE;EACF;EAEA,OAAO;IACLlB,YAAY;IACZC,GAAGA,CAAA,EAAG;MAAA,IAAAsD,qBAAA,EAAAC,aAAA;MACJ,IAAM;QACJC,GAAG,EAAEC,UAAU;QACfC,QAAQ;QACRC,KAAK;QACLC,KAAK;QACLC,KAAK;QACLC,GAAG;QACHnB,QAAQ;QACRoB,IAAI;QACJC;MACF,CAAC,GAAGnE,cAAc;MAClB,IAAM2D,GAAG,IAAAF,qBAAA,GAAGzD,cAAc,CAACoE,WAAW,cAAAX,qBAAA,cAAAA,qBAAA,GAAIG,UAAU;MAEpD,KAAK,IAAMS,YAAY,IAAIlC,qBAAqB,EAAE;QAChD,QAAQkC,YAAY;UAClB;UACA,KAAK,QAAQ;YACXnC,eAAe,CAACmC,YAAY,CAAC,GAAGR,QAAQ,CAACS,IAAI,GACzCT,QAAQ,CAACS,IAAI,CAACC,SAAS,CAAC,CAAC,CAAC,GAC1B,IAAI;YACR;UACF,KAAK,KAAK;YACRrC,eAAe,CAACmC,YAAY,CAAC,GAAAnD,aAAA,CAAAA,aAAA,KACxBpE,SAAS,CAAC6G,GAAG,CAAC;cACjBa,OAAO,EAAEzG;YAAW,EACrB;YACD;UACF,KAAK,KAAK;YACRmE,eAAe,CAACmC,YAAY,CAAC,GAAGlH,uBAAuB,CAAC;cACtDsH,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAE;gBACf,OAAO7B,QAAQ,CAAC8B,QAAQ,CAACD,GAAG,CAAW;cACzC,CAAC;cACDE,OAAOA,CAAA,EAAG;gBACR,OAAOC,KAAK,CAACC,IAAI,CAACxC,OAAO,CAAC;cAC5B;YACF,CAAC,CAAC;YACF;UACF,KAAK,MAAM;YACTL,eAAe,CAACmC,YAAY,CAAC,GAAGH,IAAI;YACpC;UACF,KAAK,OAAO;YACVhC,eAAe,CAACmC,YAAY,CAAC,GAAGF,KAAK;YACrC;UACF,KAAK,OAAO;YACVjC,eAAe,CAACmC,YAAY,CAAC,GAAGjH,gBAAgB,CAAC4G,KAAK,CAAC;YACvD;UACF,KAAK,MAAM;YACT9B,eAAe,CAACmC,YAAY,CAAC,GAAGR,QAAQ,CAACS,IAAI;YAC7C;UACF,KAAK,gBAAgB;YACnBpC,eAAe,CAACmC,YAAY,CAAC,GAAGjH,gBAAgB,CAAC;cAC/CkC,GAAG,EAAEpB;YACP,CAAC,CAAC;YACF;UACF,KAAK,MAAM;YACT,IAAI,CAACtB,cAAc,CAACoD,cAAc,EAAE,aAAa,CAAC,EAAE;cAClD;cACAgF,OAAO,CAAC3F,KAAK,sEAAAyC,MAAA,CAC6DnD,GAAG,QAC5E;YACH,CAAC,MAAM;cACLuD,eAAe,CAACmC,YAAY,CAAC,GAAGrE,cAAc,CAACiF,WAAW;YAC5D;YACA;UACF,KAAK,eAAe;YAClB/C,eAAe,CAACmC,YAAY,CAAC,GAAGjH,gBAAgB,CAAC;cAC/C8H,OAAO,EAAE3H,cAAc,CAAC,OAAO;YACjC,CAAC,CAAC;YACF;UACF,KAAK,OAAO;YACV2E,eAAe,CAACmC,YAAY,CAAC,GAAGjH,gBAAgB,CAACE,QAAQ,EAAE,CAAC;YAC5D;UACF,KAAK,MAAM;YACT4E,eAAe,CAACmC,YAAY,CAAC,GAAG5G,UAAU,EAAE,CAAC0H,eAAe,EAAE;YAC9D;UACF,KAAK,QAAQ;YACXjD,eAAe,CAACmC,YAAY,CAAC,GAAG,IAAIe,eAAe,CAACtB,KAAK,CAAC;YAC1D;UACF,KAAK,MAAM;YACT5B,eAAe,CAACmC,YAAY,CAAC,GAAGjH,gBAAgB,EAAAsG,aAAA,GAC9CK,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEsB,MAAM,cAAA3B,aAAA,cAAAA,aAAA,GAAI,CAAC,CAAC,CACpB;YACD;UACF,KAAK,WAAW;YACdxB,eAAe,CAACmC,YAAY,CAAC,GAAGR,QAAQ,CAACyB,QAAQ;YACjD;UACF,KAAK,YAAY;YACfpD,eAAe,CAACmC,YAAY,CAAC,GAAGlH,uBAAuB,CAAC;cACtDsH,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAE;gBACf,IAAMY,GAAG,GAAGxI,gBAAgB,CAAC0H,GAAG,CAACE,GAAG,CAAW;gBAC/C,IAAI,CAACY,GAAG,EAAE;kBACR,MAAM,IAAItD,KAAK,gBAAAH,MAAA,CAEX6C,GAAG,yEAEN;gBACH;gBACA,OAAOxH,uBAAuB,CAAC;kBAC7BsH,GAAGA,CAACe,CAAC,EAAEC,CAAC,EAAE;oBACR,OAAOF,GAAG,CAACd,GAAG,CAACgB,CAAC,CAAW;kBAC7B,CAAC;kBACDZ,OAAOA,CAAA,EAAG;oBACR,OAAOC,KAAK,CAACC,IAAI,CAACQ,GAAG,CAACjD,IAAI,EAAE,CAAC;kBAC/B;gBACF,CAAC,CAAC;cACJ,CAAC;cACDuC,OAAOA,CAAA,EAAG;gBACR,OAAOC,KAAK,CAACC,IAAI,CAACvC,cAAc,CAAC;cACnC;YACF,CAAC,CAAC;YACF;UACF,KAAK,OAAO;YACVN,eAAe,CAACmC,YAAY,CAAC,GAAGhC,MAAM,CAACqD,WAAW,CAChDZ,KAAK,CAACC,IAAI,CAACjB,KAAK,CAACxB,IAAI,EAAE,CAAC,CAACiB,GAAG,CAAEoB,GAAG,IAAK,CAACA,GAAG,EAAEb,KAAK,CAACW,GAAG,CAACE,GAAG,CAAC,CAAC,CAAC,CAC7D;YACD;UACF,KAAK,aAAa;YAChBzC,eAAe,CAACmC,YAAY,CAAC,GAAGhC,MAAM,CAACqD,WAAW,CAChDZ,KAAK,CAACC,IAAI,CAACjB,KAAK,CAACxB,IAAI,EAAE,CAAC,CAACiB,GAAG,CAAEoB,GAAG,IAAK,CAACA,GAAG,EAAEb,KAAK,CAAC6B,MAAM,CAAChB,GAAG,CAAC,CAAC,CAAC,CAChE;YACD;YACA;UACF,KAAK,iBAAiB;YACpBzC,eAAe,CAACmC,YAAY,CAAC,GAAGjH,gBAAgB,CAAC;cAC/C8H,OAAO,EAAE3H,cAAc,CAAC,SAAS;YACnC,CAAC,CAAC;YACF;UACF;UACA,KAAK,KAAK;YACRc,mBAAmB,CACjBsE,MAAM,EACN,2BAA2B,8BAAAb,MAAA,CACAnD,GAAG,QAC/B;YACD,IAAIgE,MAAM,EAAE;cACV;YACF;UACF;UACA,KAAK,OAAO;YACVT,eAAe,CAACmC,YAAY,CAAC,GAAGlH,uBAAuB,CAAC;cACtDsH,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAE;gBACf,OAAOjC,aAAa,CAAEkC,QAAQ,CAACD,GAAG,CAAW;cAC/C,CAAC;cACDE,OAAOA,CAAA,EAAG;gBACR,OAAOC,KAAK,CAACC,IAAI,CAACtC,UAAU,CAAC;cAC/B;YACF,CAAC,CAAC;YACF;UACF,KAAK,KAAK;YACRP,eAAe,CAACmC,YAAY,CAAC,GAAGjH,gBAAgB,CAAC6G,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,CAAC,CAAC,CAAC;YAC3D;UACF,KAAK,eAAe;YAClB/B,eAAe,CAACmC,YAAY,CAAC,GAAG1G,eAAe;YAC/C;UACF,KAAK,gBAAgB;YACnBuE,eAAe,CAACmC,YAAY,CAAC,GAAGpG,mBAAmB;YACnD;UACF,KAAK,iBAAiB;YACpBiE,eAAe,CAACmC,YAAY,CAAC,GAAGrG,iBAAiB;YACjD;QAAM;MAEZ;MAEAqE,MAAM,CAACuD,MAAM,CACX1D,eAAe,EACfhF,iBAAiB,CAACqE,SAAS,CAACY,qBAAqB,EAAE;QACjDlF,mBAAmB;QACnB0G,GAAG,EAAE3D,cAAc,CAAC2D,GAAG;QACvBkC,mBAAmB,EAAE7F,cAAc,CAAC6F;MACtC,CAAC,CAAC,CACH;MAED,IAAI;QACF,IAAMC,MAAM,GAAGvJ,IAAI,CAACgF,SAAS,CAACwE,UAAU,EAAExE,SAAS,CAACyE,MAAM,EAAE;UAC1D9D,eAAe,EAAEvF,MAAM,CACrB4E,SAAS,CAACY,qBAAqB,EAC/BD,eAAe;QAEnB,CAAC,CAAC;QACF;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,OAAO4D,MAAM;MACf,CAAC,CAAC,OAAOzG,KAAU,EAAE;QACnB,IAAMwC,QAAO,MAAAC,MAAA,CAAMzC,KAAK,CAACwC,OAAO,aAAAC,MAAA,CAASnD,GAAG,OAAG;QAC/C;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAMoD,iBAAgB,GAAG3C,uBAAuB,CAACC,KAAK,CAAC;QACvD,MAAM,IAAI0C,iBAAgB,CAACF,QAAO,CAAC;QACnC;MACF;IACF;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","cloneDeep","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","getDevHook","getMedia","getStorageItem","getBrickPackages","getRuntime","getTplStateStore","widgetFunctions","collectAppGetMenuUsage","collectInstalledAppsHasUsage","fetchMenuById","getMenuById","widgetI18nFactory","widgetImagesFactory","hasInstalledApp","waitForCheckingApps","isStrictMode","warnAboutStrictMode","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","_x","_x2","_x3","_asyncEvaluate","apply","arguments","_asyncToGenerator","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","length","undefined","isAsync","pendingPermissionsPreCheck","_1","tplStateStoreMap","_2","tplStateStoreScope","_3","passByRuntimeContext","_objectWithoutProperties","_excluded","_objectSpread","menuUsage","usedArgs","Set","hasAppUsage","precooked","withParent","hooks","beforeVisitGlobal","node","parent","message","concat","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","Object","keys","usedCtx","usedProcessors","usedStates","tplStateStore","strict","devHook","push","ctxStore","waitFor","usedTpls","tpl","add","attemptToCheckPermissions","usedFunctions","size","usedMenuIds","map","menuId","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","getMenu","get","target","key","getValue","ownKeys","Array","from","console","forEachItem","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","t","k","fromEntries","getAll","assign","appendI18nNamespace","result","expression","source"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep } from \"lodash\";\nimport { customProcessors } from \"../../CustomProcessors.js\";\nimport {\n checkPermissionsUsage,\n storyboardFunctions,\n} from \"./StoryboardFunctions.js\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals.js\";\nimport {\n getDynamicReadOnlyProxy,\n getReadOnlyProxy,\n} from \"../proxyFactories.js\";\nimport { getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport { getBrickPackages, getRuntime } from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport {\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"./collectMemberCallUsage.js\";\nimport { fetchMenuById, getMenuById } from \"../menu/fetchMenuById.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { widgetImagesFactory } from \"./images.js\";\nimport { hasInstalledApp, waitForCheckingApps } from \"../checkInstalledApps.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: RuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function getPreEvaluatedRaw(pre: PreEvaluated): string {\n return pre[symbolForRaw];\n}\n\nexport function shouldDismissMarkingComputed(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\nexport async function asyncEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { blockingList, run } = lowLevelEvaluate(\n raw,\n runtimeContext,\n options,\n true\n );\n await Promise.all(blockingList);\n return run();\n}\n\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { run } = lowLevelEvaluate(raw, runtimeContext, options, false);\n return run();\n}\n\nfunction lowLevelEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options: EvaluateOptions = {},\n isAsync?: boolean\n): {\n blockingList: (Promise<unknown> | undefined)[];\n run: Function;\n} {\n const blockingList: (Promise<unknown> | undefined)[] = [];\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n\n const {\n pendingPermissionsPreCheck: _1,\n tplStateStoreMap: _2,\n tplStateStoreScope: _3,\n ...passByRuntimeContext\n } = runtimeContext;\n\n runtimeContext = {\n ...raw[symbolForContext],\n ...passByRuntimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // Collect `APP.getMenu(...)` usage before evaluating.\n const menuUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n const hasAppUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n collectAppGetMenuUsage(menuUsage, node, parent!);\n collectInstalledAppsHasUsage(hasAppUsage, node, parent!);\n },\n },\n });\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: {} },\n // error: message,\n // });\n // return;\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n\n if (menuUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n if (hasAppUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n const globalVariables: Record<string, unknown> = {};\n const { attemptToVisitGlobals } = precooked;\n\n // Ignore evaluating if required `event/DATA` is missing in\n // context. Since they are are provided in different context, whenever\n // missing one of them, memorize the current context for later consuming.\n if (\n options.lazy ||\n (attemptToVisitGlobals.has(\"EVENT\") &&\n !hasOwnProperty(runtimeContext, \"event\")) ||\n (attemptToVisitGlobals.has(\"DATA\") &&\n !hasOwnProperty(runtimeContext, \"data\"))\n ) {\n return {\n blockingList,\n run() {\n return Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n },\n };\n }\n\n let usedCtx: Set<string>;\n let usedProcessors: Set<string>;\n let usedStates: Set<string>;\n let tplStateStore: DataStore<\"STATE\"> | undefined;\n const strict = isStrictMode(runtimeContext);\n\n // For existed TPL usage, treat it as a STATE.\n if (\n attemptToVisitGlobals.has(\"STATE\") ||\n (!strict && attemptToVisitGlobals.has(\"TPL\"))\n ) {\n tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${raw}\"`);\n }\n\n const devHook = getDevHook();\n if (isAsync || devHook) {\n if (attemptToVisitGlobals.has(\"CTX\")) {\n usedCtx = strictCollectMemberUsage(raw, \"CTX\");\n isAsync && blockingList.push(runtimeContext.ctxStore.waitFor(usedCtx));\n }\n\n if (tplStateStore) {\n usedStates = strictCollectMemberUsage(raw, \"STATE\");\n // istanbul ignore if\n if (!strict) {\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\n }\n }\n isAsync && blockingList.push(tplStateStore.waitFor(usedStates));\n }\n\n if (attemptToVisitGlobals.has(\"PROCESSORS\")) {\n usedProcessors = strictCollectMemberUsage(raw, \"PROCESSORS\", 2);\n isAsync &&\n blockingList.push(\n loadProcessorsImperatively(usedProcessors, getBrickPackages())\n );\n }\n }\n\n if (isAsync) {\n let attemptToCheckPermissions = attemptToVisitGlobals.has(\"PERMISSIONS\");\n // There maybe `PERMISSIONS.check()` usage in functions\n if (!attemptToCheckPermissions && attemptToVisitGlobals.has(\"FN\")) {\n const usedFunctions = [...strictCollectMemberUsage(raw, \"FN\")];\n attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);\n }\n\n if (attemptToCheckPermissions) {\n blockingList.push(...runtimeContext.pendingPermissionsPreCheck);\n }\n\n if (menuUsage.usedArgs.size > 0) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) => fetchMenuById(menuId, runtimeContext))\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(waitForCheckingApps([...hasAppUsage.usedArgs]));\n }\n }\n\n return {\n blockingList,\n run() {\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n ctxStore,\n data,\n event,\n } = runtimeContext;\n const app = runtimeContext.overrideApp ?? currentApp;\n\n for (const variableName of attemptToVisitGlobals) {\n switch (variableName) {\n // case \"ALIAS\":\n case \"ANCHOR\":\n globalVariables[variableName] = location.hash\n ? location.hash.substring(1)\n : null;\n break;\n case \"APP\":\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedCtx);\n },\n });\n break;\n case \"DATA\":\n globalVariables[variableName] = data;\n break;\n case \"EVENT\":\n globalVariables[variableName] = event;\n break;\n case \"FLAGS\":\n globalVariables[variableName] = getReadOnlyProxy(flags);\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -4,18 +4,20 @@ export var StateOfUseBrick;
|
|
|
4
4
|
StateOfUseBrick[StateOfUseBrick["USE_BRICK"] = 1] = "USE_BRICK";
|
|
5
5
|
StateOfUseBrick[StateOfUseBrick["USE_BRICK_ITEM"] = 2] = "USE_BRICK_ITEM";
|
|
6
6
|
StateOfUseBrick[StateOfUseBrick["USE_BRICK_PROPERTIES"] = 3] = "USE_BRICK_PROPERTIES";
|
|
7
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
8
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
9
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
10
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
11
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
12
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
13
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
14
|
-
StateOfUseBrick[StateOfUseBrick["
|
|
7
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_TRANSFORM"] = 4] = "USE_BRICK_TRANSFORM";
|
|
8
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_EVENTS"] = 5] = "USE_BRICK_EVENTS";
|
|
9
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_IF"] = 6] = "USE_BRICK_IF";
|
|
10
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS"] = 7] = "USE_BRICK_SLOTS";
|
|
11
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS_ITEM"] = 8] = "USE_BRICK_SLOTS_ITEM";
|
|
12
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS_ITEM_BRICKS"] = 9] = "USE_BRICK_SLOTS_ITEM_BRICKS";
|
|
13
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS_ITEM_BRICKS_ITEM"] = 10] = "USE_BRICK_SLOTS_ITEM_BRICKS_ITEM";
|
|
14
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_LIFECYCLE"] = 11] = "USE_BRICK_LIFECYCLE";
|
|
15
|
+
StateOfUseBrick[StateOfUseBrick["USE_BRICK_DATA_SOURCE"] = 12] = "USE_BRICK_DATA_SOURCE";
|
|
15
16
|
})(StateOfUseBrick || (StateOfUseBrick = {}));
|
|
16
17
|
export function isLazyContentInUseBrick(state) {
|
|
17
18
|
switch (state) {
|
|
18
19
|
case StateOfUseBrick.USE_BRICK_PROPERTIES:
|
|
20
|
+
case StateOfUseBrick.USE_BRICK_TRANSFORM:
|
|
19
21
|
case StateOfUseBrick.USE_BRICK_EVENTS:
|
|
20
22
|
case StateOfUseBrick.USE_BRICK_IF:
|
|
21
23
|
case StateOfUseBrick.USE_BRICK_LIFECYCLE:
|
|
@@ -49,6 +51,8 @@ export function getNextStateOfUseBrick(state, isArray, key) {
|
|
|
49
51
|
switch (key) {
|
|
50
52
|
case "properties":
|
|
51
53
|
return StateOfUseBrick.USE_BRICK_PROPERTIES;
|
|
54
|
+
case "transform":
|
|
55
|
+
return StateOfUseBrick.USE_BRICK_TRANSFORM;
|
|
52
56
|
case "dataSource":
|
|
53
57
|
return StateOfUseBrick.USE_BRICK_DATA_SOURCE;
|
|
54
58
|
case "events":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNextStateOfUseBrick.js","names":["StateOfUseBrick","isLazyContentInUseBrick","state","USE_BRICK_PROPERTIES","USE_BRICK_EVENTS","USE_BRICK_IF","USE_BRICK_LIFECYCLE","USE_BRICK_DATA_SOURCE","getNextStateOfUseBrick","isArray","key","USE_BRICK","USE_BRICK_ITEM","USE_BRICK_SLOTS_ITEM_BRICKS","USE_BRICK_SLOTS_ITEM_BRICKS_ITEM","INITIAL","USE_BRICK_SLOTS","USE_BRICK_SLOTS_ITEM"],"sources":["../../../../src/internal/compute/getNextStateOfUseBrick.ts"],"sourcesContent":["export enum StateOfUseBrick {\n INITIAL,\n USE_BRICK,\n USE_BRICK_ITEM,\n USE_BRICK_PROPERTIES,\n USE_BRICK_EVENTS,\n USE_BRICK_IF,\n USE_BRICK_SLOTS,\n USE_BRICK_SLOTS_ITEM,\n USE_BRICK_SLOTS_ITEM_BRICKS,\n USE_BRICK_SLOTS_ITEM_BRICKS_ITEM,\n USE_BRICK_LIFECYCLE,\n USE_BRICK_DATA_SOURCE,\n}\n\nexport function isLazyContentInUseBrick(\n state: StateOfUseBrick | undefined\n): boolean {\n switch (state) {\n case StateOfUseBrick.USE_BRICK_PROPERTIES:\n case StateOfUseBrick.USE_BRICK_EVENTS:\n case StateOfUseBrick.USE_BRICK_IF:\n case StateOfUseBrick.USE_BRICK_LIFECYCLE:\n case StateOfUseBrick.USE_BRICK_DATA_SOURCE:\n return true;\n }\n return false;\n}\n\nexport function getNextStateOfUseBrick(\n state: StateOfUseBrick | undefined,\n isArray?: boolean,\n key?: string\n): StateOfUseBrick | undefined {\n if (isLazyContentInUseBrick(state)) {\n return state;\n }\n if (isArray) {\n switch (state) {\n case StateOfUseBrick.USE_BRICK:\n return StateOfUseBrick.USE_BRICK_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM;\n }\n } else {\n switch (state) {\n case StateOfUseBrick.INITIAL:\n if (key === \"useBrick\") {\n return StateOfUseBrick.USE_BRICK;\n }\n break;\n case StateOfUseBrick.USE_BRICK:\n case StateOfUseBrick.USE_BRICK_ITEM:\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM: {\n switch (key) {\n case \"properties\":\n return StateOfUseBrick.USE_BRICK_PROPERTIES;\n case \"dataSource\":\n return StateOfUseBrick.USE_BRICK_DATA_SOURCE;\n case \"events\":\n return StateOfUseBrick.USE_BRICK_EVENTS;\n case \"slots\":\n return StateOfUseBrick.USE_BRICK_SLOTS;\n case \"children\":\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n case \"if\":\n return StateOfUseBrick.USE_BRICK_IF;\n case \"lifeCycle\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE;\n }\n break;\n }\n case StateOfUseBrick.USE_BRICK_SLOTS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM:\n if (key === \"bricks\") {\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n }\n break;\n }\n }\n return StateOfUseBrick.INITIAL;\n}\n"],"mappings":"AAAA,WAAYA,eAAe;
|
|
1
|
+
{"version":3,"file":"getNextStateOfUseBrick.js","names":["StateOfUseBrick","isLazyContentInUseBrick","state","USE_BRICK_PROPERTIES","USE_BRICK_TRANSFORM","USE_BRICK_EVENTS","USE_BRICK_IF","USE_BRICK_LIFECYCLE","USE_BRICK_DATA_SOURCE","getNextStateOfUseBrick","isArray","key","USE_BRICK","USE_BRICK_ITEM","USE_BRICK_SLOTS_ITEM_BRICKS","USE_BRICK_SLOTS_ITEM_BRICKS_ITEM","INITIAL","USE_BRICK_SLOTS","USE_BRICK_SLOTS_ITEM"],"sources":["../../../../src/internal/compute/getNextStateOfUseBrick.ts"],"sourcesContent":["export enum StateOfUseBrick {\n INITIAL,\n USE_BRICK,\n USE_BRICK_ITEM,\n USE_BRICK_PROPERTIES,\n // Compatible mode\n USE_BRICK_TRANSFORM,\n USE_BRICK_EVENTS,\n USE_BRICK_IF,\n USE_BRICK_SLOTS,\n USE_BRICK_SLOTS_ITEM,\n USE_BRICK_SLOTS_ITEM_BRICKS,\n USE_BRICK_SLOTS_ITEM_BRICKS_ITEM,\n USE_BRICK_LIFECYCLE,\n USE_BRICK_DATA_SOURCE,\n}\n\nexport function isLazyContentInUseBrick(\n state: StateOfUseBrick | undefined\n): boolean {\n switch (state) {\n case StateOfUseBrick.USE_BRICK_PROPERTIES:\n case StateOfUseBrick.USE_BRICK_TRANSFORM:\n case StateOfUseBrick.USE_BRICK_EVENTS:\n case StateOfUseBrick.USE_BRICK_IF:\n case StateOfUseBrick.USE_BRICK_LIFECYCLE:\n case StateOfUseBrick.USE_BRICK_DATA_SOURCE:\n return true;\n }\n return false;\n}\n\nexport function getNextStateOfUseBrick(\n state: StateOfUseBrick | undefined,\n isArray?: boolean,\n key?: string\n): StateOfUseBrick | undefined {\n if (isLazyContentInUseBrick(state)) {\n return state;\n }\n if (isArray) {\n switch (state) {\n case StateOfUseBrick.USE_BRICK:\n return StateOfUseBrick.USE_BRICK_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM;\n }\n } else {\n switch (state) {\n case StateOfUseBrick.INITIAL:\n if (key === \"useBrick\") {\n return StateOfUseBrick.USE_BRICK;\n }\n break;\n case StateOfUseBrick.USE_BRICK:\n case StateOfUseBrick.USE_BRICK_ITEM:\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM: {\n switch (key) {\n case \"properties\":\n return StateOfUseBrick.USE_BRICK_PROPERTIES;\n case \"transform\":\n return StateOfUseBrick.USE_BRICK_TRANSFORM;\n case \"dataSource\":\n return StateOfUseBrick.USE_BRICK_DATA_SOURCE;\n case \"events\":\n return StateOfUseBrick.USE_BRICK_EVENTS;\n case \"slots\":\n return StateOfUseBrick.USE_BRICK_SLOTS;\n case \"children\":\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n case \"if\":\n return StateOfUseBrick.USE_BRICK_IF;\n case \"lifeCycle\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE;\n }\n break;\n }\n case StateOfUseBrick.USE_BRICK_SLOTS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM:\n if (key === \"bricks\") {\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n }\n break;\n }\n }\n return StateOfUseBrick.INITIAL;\n}\n"],"mappings":"AAAA,WAAYA,eAAe;AAe1B,WAfWA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;AAAA,GAAfA,eAAe,KAAfA,eAAe;AAiB3B,OAAO,SAASC,uBAAuBA,CACrCC,KAAkC,EACzB;EACT,QAAQA,KAAK;IACX,KAAKF,eAAe,CAACG,oBAAoB;IACzC,KAAKH,eAAe,CAACI,mBAAmB;IACxC,KAAKJ,eAAe,CAACK,gBAAgB;IACrC,KAAKL,eAAe,CAACM,YAAY;IACjC,KAAKN,eAAe,CAACO,mBAAmB;IACxC,KAAKP,eAAe,CAACQ,qBAAqB;MACxC,OAAO,IAAI;EAAC;EAEhB,OAAO,KAAK;AACd;AAEA,OAAO,SAASC,sBAAsBA,CACpCP,KAAkC,EAClCQ,OAAiB,EACjBC,GAAY,EACiB;EAC7B,IAAIV,uBAAuB,CAACC,KAAK,CAAC,EAAE;IAClC,OAAOA,KAAK;EACd;EACA,IAAIQ,OAAO,EAAE;IACX,QAAQR,KAAK;MACX,KAAKF,eAAe,CAACY,SAAS;QAC5B,OAAOZ,eAAe,CAACa,cAAc;MACvC,KAAKb,eAAe,CAACc,2BAA2B;QAC9C,OAAOd,eAAe,CAACe,gCAAgC;IAAC;EAE9D,CAAC,MAAM;IACL,QAAQb,KAAK;MACX,KAAKF,eAAe,CAACgB,OAAO;QAC1B,IAAIL,GAAG,KAAK,UAAU,EAAE;UACtB,OAAOX,eAAe,CAACY,SAAS;QAClC;QACA;MACF,KAAKZ,eAAe,CAACY,SAAS;MAC9B,KAAKZ,eAAe,CAACa,cAAc;MACnC,KAAKb,eAAe,CAACe,gCAAgC;QAAE;UACrD,QAAQJ,GAAG;YACT,KAAK,YAAY;cACf,OAAOX,eAAe,CAACG,oBAAoB;YAC7C,KAAK,WAAW;cACd,OAAOH,eAAe,CAACI,mBAAmB;YAC5C,KAAK,YAAY;cACf,OAAOJ,eAAe,CAACQ,qBAAqB;YAC9C,KAAK,QAAQ;cACX,OAAOR,eAAe,CAACK,gBAAgB;YACzC,KAAK,OAAO;cACV,OAAOL,eAAe,CAACiB,eAAe;YACxC,KAAK,UAAU;cACb,OAAOjB,eAAe,CAACc,2BAA2B;YACpD,KAAK,IAAI;cACP,OAAOd,eAAe,CAACM,YAAY;YACrC,KAAK,WAAW;cACd,OAAON,eAAe,CAACO,mBAAmB;UAAC;UAE/C;QACF;MACA,KAAKP,eAAe,CAACiB,eAAe;QAClC,OAAOjB,eAAe,CAACkB,oBAAoB;MAC7C,KAAKlB,eAAe,CAACkB,oBAAoB;QACvC,IAAIP,GAAG,KAAK,QAAQ,EAAE;UACpB,OAAOX,eAAe,CAACc,2BAA2B;QACpD;QACA;IAAM;EAEZ;EACA,OAAOd,eAAe,CAACgB,OAAO;AAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n forEachItem?: unknown;\n appendI18nNamespace?: string;\n}\n\nexport type AsyncProperties = Promise<Record<string, unknown>>;\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderNode;\n hasTrackingControls?: boolean;\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderBrick;\n sibling?: RenderBrick;\n return?: RenderNode | null;\n childElements?: HTMLElement[];\n}\n\nexport type RenderNode = RenderRoot | RenderBrick;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostProperties?: AsyncProperties;\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n // `useBrick` has a local tpl state store scope\n tplStateStoreScope?: DataStore<\"STATE\">[];\n forEachItem?: unknown;\n appendI18nNamespace?: string;\n}\n\nexport type AsyncProperties = Promise<Record<string, unknown>>;\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderNode;\n hasTrackingControls?: boolean;\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderBrick;\n sibling?: RenderBrick;\n return?: RenderNode | null;\n childElements?: HTMLElement[];\n}\n\nexport type RenderNode = RenderRoot | RenderBrick;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostProperties?: AsyncProperties;\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n"],"mappings":""}
|
|
@@ -15,12 +15,14 @@ export function renderUseBrick(_x, _x2) {
|
|
|
15
15
|
}
|
|
16
16
|
function _renderUseBrick() {
|
|
17
17
|
_renderUseBrick = _asyncToGenerator(function* (useBrick, data) {
|
|
18
|
-
var _output$node;
|
|
18
|
+
var _runtimeContext$tplSt, _output$node;
|
|
19
|
+
var tplStateStoreScope = [];
|
|
19
20
|
var runtimeContext = _objectSpread(_objectSpread({}, _internalApiGetRuntimeContext()), {}, {
|
|
20
21
|
data,
|
|
21
22
|
pendingPermissionsPreCheck: [],
|
|
22
|
-
|
|
23
|
+
tplStateStoreScope
|
|
23
24
|
});
|
|
25
|
+
(_runtimeContext$tplSt = runtimeContext.tplStateStoreMap) !== null && _runtimeContext$tplSt !== void 0 ? _runtimeContext$tplSt : runtimeContext.tplStateStoreMap = new Map();
|
|
24
26
|
var rendererContext = new RendererContext("useBrick");
|
|
25
27
|
var renderRoot = {
|
|
26
28
|
tag: RenderTag.ROOT,
|
|
@@ -36,7 +38,9 @@ function _renderUseBrick() {
|
|
|
36
38
|
properties: _objectSpread(_objectSpread({}, useBrick.properties), transform)
|
|
37
39
|
}), runtimeContext, rendererContext);
|
|
38
40
|
flushStableLoadBricks();
|
|
39
|
-
yield Promise.all([...output.blockingList,
|
|
41
|
+
yield Promise.all([...output.blockingList,
|
|
42
|
+
// Wait for local tpl state stores belong to current `useBrick` only.
|
|
43
|
+
...tplStateStoreScope.map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
|
|
40
44
|
if ((_output$node = output.node) !== null && _output$node !== void 0 && _output$node.portal) {
|
|
41
45
|
throw new Error("The root brick of useBrick cannot be a portal brick");
|
|
42
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret_internals.js","names":["flushStableLoadBricks","_internalApiGetRuntimeContext","_internalApiSetBootstrapData","renderBrick","renderBricks","RendererContext","mountTree","unmountTree","httpErrorToString","applyMode","applyTheme","setMode","setTheme","RenderTag","computeRealValue","isStrictMode","warnAboutStrictMode","renderUseBrick","_x","_x2","_renderUseBrick","apply","arguments","_asyncToGenerator","useBrick","data","_output$node","runtimeContext","_objectSpread","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","renderRoot","tag","ROOT","createPortal","transform","strict","output","properties","Promise","all","blockingList","values","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","_ref","element","portalRoot","document","querySelector","createElement","appendChild","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","_ref2","mountResult","remove","dispatchOnUnmount","dispose","_rendererContext","initializePreviewBootstrap","bootstrapData","renderPreviewBricks","_x3","_x4","_renderPreviewBricks","bricks","mountPoints","options","length","undefined","previousRendererContext","container","main","failed","push","error","BRICK","textContent","return","menuRequests","sandbox","_options$theme","theme","dispatchBeforePageLoad","window","scrollTo","dispatchPageLoad","legacyDoTransform","to","noInject"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n SiteTheme,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiSetBootstrapData,\n} from \"./Runtime.js\";\nimport { RenderOutput, renderBrick, renderBricks } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n };\n\n const rendererContext = new RendererContext(\"useBrick\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nlet _rendererContext: RendererContext;\n\nexport function initializePreviewBootstrap(\n bootstrapData: Partial<BootstrapData>\n) {\n _internalApiSetBootstrapData(bootstrapData);\n}\n\nexport async function renderPreviewBricks(\n bricks: BrickConf[],\n mountPoints: {\n main: HTMLElement;\n portal: HTMLElement;\n },\n options: {\n sandbox?: boolean;\n theme?: SiteTheme;\n } = {}\n) {\n const runtimeContext = {\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n const previousRendererContext = _rendererContext;\n const rendererContext = (_rendererContext = new RendererContext(\"router\"));\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: mountPoints.main,\n createPortal: mountPoints.portal,\n };\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext\n );\n\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n\n flushStableLoadBricks();\n\n await Promise.all(output.blockingList);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispose();\n unmountTree(mountPoints.main);\n unmountTree(mountPoints.portal);\n\n if (options.sandbox) {\n setTheme(options.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (options.sandbox) {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n }\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secret_internals.js","names":["flushStableLoadBricks","_internalApiGetRuntimeContext","_internalApiSetBootstrapData","renderBrick","renderBricks","RendererContext","mountTree","unmountTree","httpErrorToString","applyMode","applyTheme","setMode","setTheme","RenderTag","computeRealValue","isStrictMode","warnAboutStrictMode","renderUseBrick","_x","_x2","_renderUseBrick","apply","arguments","_asyncToGenerator","useBrick","data","_runtimeContext$tplSt","_output$node","tplStateStoreScope","runtimeContext","_objectSpread","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","renderRoot","tag","ROOT","createPortal","transform","strict","output","properties","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","_ref","element","portalRoot","document","querySelector","createElement","appendChild","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","_ref2","mountResult","remove","dispatchOnUnmount","dispose","_rendererContext","initializePreviewBootstrap","bootstrapData","renderPreviewBricks","_x3","_x4","_renderPreviewBricks","bricks","mountPoints","options","length","undefined","previousRendererContext","container","main","failed","push","values","error","BRICK","textContent","return","menuRequests","sandbox","_options$theme","theme","dispatchBeforePageLoad","window","scrollTo","dispatchPageLoad","legacyDoTransform","to","noInject"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n SiteTheme,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiSetBootstrapData,\n} from \"./Runtime.js\";\nimport { RenderOutput, renderBrick, renderBricks } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"useBrick\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...tplStateStoreScope.map((store) => store.waitForAll()),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nlet _rendererContext: RendererContext;\n\nexport function initializePreviewBootstrap(\n bootstrapData: Partial<BootstrapData>\n) {\n _internalApiSetBootstrapData(bootstrapData);\n}\n\nexport async function renderPreviewBricks(\n bricks: BrickConf[],\n mountPoints: {\n main: HTMLElement;\n portal: HTMLElement;\n },\n options: {\n sandbox?: boolean;\n theme?: SiteTheme;\n } = {}\n) {\n const runtimeContext = {\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n const previousRendererContext = _rendererContext;\n const rendererContext = (_rendererContext = new RendererContext(\"router\"));\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: mountPoints.main,\n createPortal: mountPoints.portal,\n };\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext\n );\n\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n\n flushStableLoadBricks();\n\n await Promise.all(output.blockingList);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispose();\n unmountTree(mountPoints.main);\n unmountTree(mountPoints.portal);\n\n if (options.sandbox) {\n setTheme(options.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (options.sandbox) {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n }\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n"],"mappings":"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"}
|
|
@@ -3,14 +3,15 @@ export declare enum StateOfUseBrick {
|
|
|
3
3
|
USE_BRICK = 1,
|
|
4
4
|
USE_BRICK_ITEM = 2,
|
|
5
5
|
USE_BRICK_PROPERTIES = 3,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
USE_BRICK_TRANSFORM = 4,
|
|
7
|
+
USE_BRICK_EVENTS = 5,
|
|
8
|
+
USE_BRICK_IF = 6,
|
|
9
|
+
USE_BRICK_SLOTS = 7,
|
|
10
|
+
USE_BRICK_SLOTS_ITEM = 8,
|
|
11
|
+
USE_BRICK_SLOTS_ITEM_BRICKS = 9,
|
|
12
|
+
USE_BRICK_SLOTS_ITEM_BRICKS_ITEM = 10,
|
|
13
|
+
USE_BRICK_LIFECYCLE = 11,
|
|
14
|
+
USE_BRICK_DATA_SOURCE = 12
|
|
14
15
|
}
|
|
15
16
|
export declare function isLazyContentInUseBrick(state: StateOfUseBrick | undefined): boolean;
|
|
16
17
|
export declare function getNextStateOfUseBrick(state: StateOfUseBrick | undefined, isArray?: boolean, key?: string): StateOfUseBrick | undefined;
|
|
@@ -7,6 +7,7 @@ export interface RuntimeContext extends LegacyCompatibleRuntimeContext {
|
|
|
7
7
|
tplStateStoreMap: Map<string, DataStore<"STATE">>;
|
|
8
8
|
pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];
|
|
9
9
|
tplStateStoreId?: string;
|
|
10
|
+
tplStateStoreScope?: DataStore<"STATE">[];
|
|
10
11
|
forEachItem?: unknown;
|
|
11
12
|
appendI18nNamespace?: string;
|
|
12
13
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/runtime",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-core/tree/master/packages/runtime",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"repository": {
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"@next-core/build-next-libs": "^1.0.2",
|
|
64
64
|
"@next-core/test-next": "^1.0.2"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "d95e17797d225fedfa2423405ebc24c9871d98c9"
|
|
67
67
|
}
|