@next-core/runtime 1.0.7 → 1.1.1
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/CustomTemplates.js +11 -7
- package/dist/cjs/CustomTemplates.js.map +1 -1
- package/dist/cjs/internal/Renderer.js +13 -5
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/RendererContext.js +1 -1
- package/dist/cjs/internal/RendererContext.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 +19 -25
- 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/data/FlowApi.js +1 -1
- package/dist/cjs/internal/data/FlowApi.js.map +1 -1
- package/dist/cjs/internal/data/resolveData.js +1 -1
- package/dist/cjs/internal/data/resolveData.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +26 -10
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/cjs/isStrictMode.js +23 -0
- package/dist/cjs/isStrictMode.js.map +1 -0
- package/dist/esm/CustomTemplates.js +12 -7
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/internal/Renderer.js +13 -5
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +1 -1
- package/dist/esm/internal/RendererContext.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 +19 -25
- 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/data/FlowApi.js +1 -1
- package/dist/esm/internal/data/FlowApi.js.map +1 -1
- package/dist/esm/internal/data/resolveData.js +1 -1
- package/dist/esm/internal/data/resolveData.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +24 -11
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/esm/isStrictMode.js +19 -0
- package/dist/esm/isStrictMode.js.map +1 -0
- package/dist/types/internal/compute/getNextStateOfUseBrick.d.ts +9 -8
- package/dist/types/internal/secret_internals.d.ts +1 -0
- package/dist/types/isStrictMode.d.ts +3 -0
- package/package.json +4 -4
|
@@ -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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"}
|
|
@@ -23,6 +23,7 @@ import { fetchMenuById, getMenuById } from "../menu/fetchMenuById.js";
|
|
|
23
23
|
import { widgetI18nFactory } from "./WidgetI18n.js";
|
|
24
24
|
import { widgetImagesFactory } from "./images.js";
|
|
25
25
|
import { hasInstalledApp, waitForCheckingApps } from "../checkInstalledApps.js";
|
|
26
|
+
import { isStrictMode, warnAboutStrictMode } from "../../isStrictMode.js";
|
|
26
27
|
var symbolForRaw = Symbol.for("pre.evaluated.raw");
|
|
27
28
|
var symbolForContext = Symbol.for("pre.evaluated.context");
|
|
28
29
|
export function isPreEvaluated(raw) {
|
|
@@ -120,10 +121,10 @@ runtimeContext) {
|
|
|
120
121
|
}
|
|
121
122
|
|
|
122
123
|
if (menuUsage.hasNonStaticUsage) {
|
|
123
|
-
throw new Error("Non-static usage of \"APP.getMenu\" is
|
|
124
|
+
throw new Error("Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"".concat(raw, "\""));
|
|
124
125
|
}
|
|
125
126
|
if (hasAppUsage.hasNonStaticUsage) {
|
|
126
|
-
throw new Error("Non-static usage of \"INSTALLED_APPS.has\" is
|
|
127
|
+
throw new Error("Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"".concat(raw, "\""));
|
|
127
128
|
}
|
|
128
129
|
var globalVariables = {};
|
|
129
130
|
var {
|
|
@@ -148,9 +149,10 @@ runtimeContext) {
|
|
|
148
149
|
var usedProcessors;
|
|
149
150
|
var usedStates;
|
|
150
151
|
var tplStateStore;
|
|
152
|
+
var strict = isStrictMode(runtimeContext);
|
|
151
153
|
|
|
152
154
|
// For existed TPL usage, treat it as a STATE.
|
|
153
|
-
if (attemptToVisitGlobals.has("STATE") || attemptToVisitGlobals.has("TPL")) {
|
|
155
|
+
if (attemptToVisitGlobals.has("STATE") || !strict && attemptToVisitGlobals.has("TPL")) {
|
|
154
156
|
tplStateStore = getTplStateStore(runtimeContext, "STATE", ": \"".concat(raw, "\""));
|
|
155
157
|
}
|
|
156
158
|
var devHook = getDevHook();
|
|
@@ -161,12 +163,12 @@ runtimeContext) {
|
|
|
161
163
|
}
|
|
162
164
|
if (tplStateStore) {
|
|
163
165
|
usedStates = strictCollectMemberUsage(raw, "STATE");
|
|
164
|
-
//
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
166
|
+
// istanbul ignore if
|
|
167
|
+
if (!strict) {
|
|
168
|
+
var usedTpls = strictCollectMemberUsage(raw, "TPL");
|
|
169
|
+
for (var tpl of usedTpls) {
|
|
170
|
+
usedStates.add(tpl);
|
|
171
|
+
}
|
|
170
172
|
}
|
|
171
173
|
isAsync && blockingList.push(tplStateStore.waitFor(usedStates));
|
|
172
174
|
}
|
|
@@ -198,7 +200,7 @@ runtimeContext) {
|
|
|
198
200
|
return {
|
|
199
201
|
blockingList,
|
|
200
202
|
run() {
|
|
201
|
-
var _runtimeContext$overr;
|
|
203
|
+
var _runtimeContext$overr, _match$params;
|
|
202
204
|
var {
|
|
203
205
|
app: currentApp,
|
|
204
206
|
location,
|
|
@@ -225,9 +227,6 @@ runtimeContext) {
|
|
|
225
227
|
case "CTX":
|
|
226
228
|
globalVariables[variableName] = getDynamicReadOnlyProxy({
|
|
227
229
|
get(target, key) {
|
|
228
|
-
if (typeof key !== "string") {
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
230
|
return ctxStore.getValue(key);
|
|
232
231
|
},
|
|
233
232
|
ownKeys() {
|
|
@@ -275,7 +274,7 @@ runtimeContext) {
|
|
|
275
274
|
globalVariables[variableName] = new URLSearchParams(query);
|
|
276
275
|
break;
|
|
277
276
|
case "PATH":
|
|
278
|
-
globalVariables[variableName] = getReadOnlyProxy(match.params);
|
|
277
|
+
globalVariables[variableName] = getReadOnlyProxy((_match$params = match === null || match === void 0 ? void 0 : match.params) !== null && _match$params !== void 0 ? _match$params : {});
|
|
279
278
|
break;
|
|
280
279
|
case "PATH_NAME":
|
|
281
280
|
globalVariables[variableName] = location.pathname;
|
|
@@ -283,18 +282,12 @@ runtimeContext) {
|
|
|
283
282
|
case "PROCESSORS":
|
|
284
283
|
globalVariables[variableName] = getDynamicReadOnlyProxy({
|
|
285
284
|
get(target, key) {
|
|
286
|
-
if (typeof key !== "string") {
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
285
|
var pkg = customProcessors.get(key);
|
|
290
286
|
if (!pkg) {
|
|
291
287
|
throw new Error("'PROCESSORS.".concat(key, "' is not registered! Have you installed the relevant brick package?"));
|
|
292
288
|
}
|
|
293
289
|
return getDynamicReadOnlyProxy({
|
|
294
290
|
get(t, k) {
|
|
295
|
-
if (typeof k !== "string") {
|
|
296
|
-
return;
|
|
297
|
-
}
|
|
298
291
|
return pkg.get(k);
|
|
299
292
|
},
|
|
300
293
|
ownKeys() {
|
|
@@ -319,15 +312,16 @@ runtimeContext) {
|
|
|
319
312
|
getItem: getStorageItem("session")
|
|
320
313
|
});
|
|
321
314
|
break;
|
|
322
|
-
// Todo: remove compatibility support for `TPL`
|
|
323
315
|
// istanbul ignore next
|
|
324
316
|
case "TPL":
|
|
317
|
+
warnAboutStrictMode(strict, 'Using "TPL" in expression', "check your expression: \"".concat(raw, "\""));
|
|
318
|
+
if (strict) {
|
|
319
|
+
break;
|
|
320
|
+
}
|
|
321
|
+
// eslint-disable-next-line no-fallthrough
|
|
325
322
|
case "STATE":
|
|
326
323
|
globalVariables[variableName] = getDynamicReadOnlyProxy({
|
|
327
324
|
get(target, key) {
|
|
328
|
-
if (typeof key !== "string") {
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
325
|
return tplStateStore.getValue(key);
|
|
332
326
|
},
|
|
333
327
|
ownKeys() {
|
|
@@ -336,7 +330,7 @@ runtimeContext) {
|
|
|
336
330
|
});
|
|
337
331
|
break;
|
|
338
332
|
case "SYS":
|
|
339
|
-
globalVariables[variableName] = getReadOnlyProxy(sys);
|
|
333
|
+
globalVariables[variableName] = getReadOnlyProxy(sys !== null && sys !== void 0 ? sys : {});
|
|
340
334
|
break;
|
|
341
335
|
case "__WIDGET_FN__":
|
|
342
336
|
globalVariables[variableName] = widgetFunctions;
|
|
@@ -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","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","devHook","push","ctxStore","waitFor","usedTpls","tpl","add","attemptToCheckPermissions","usedFunctions","size","usedMenuIds","map","menuId","_runtimeContext$overr","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\";\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 not supported 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 not supported 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\n // For existed TPL usage, treat it as a STATE.\n if (attemptToVisitGlobals.has(\"STATE\") || attemptToVisitGlobals.has(\"TPL\")) {\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 // Todo: remove compatibility support for `TPL`\n // istanbul ignore next\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n // istanbul ignore next\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\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 if (typeof key !== \"string\") {\n return;\n }\n return ctxStore.getValue(key);\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(match!.params);\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 if (typeof key !== \"string\") {\n return;\n }\n const pkg = customProcessors.get(key);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${key}' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n if (typeof k !== \"string\") {\n return;\n }\n return pkg.get(k);\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 // Todo: remove compatibility support for `TPL`\n // istanbul ignore next\n case \"TPL\":\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n if (typeof key !== \"string\") {\n return;\n }\n return tplStateStore!.getValue(key);\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","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":"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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"}
|
|
@@ -18,7 +18,7 @@ function _getArgsOfFlowApi() {
|
|
|
18
18
|
return originalArgs;
|
|
19
19
|
}
|
|
20
20
|
if (!provider.includes(":")) {
|
|
21
|
-
throw new Error("You're using legacy Custom API \"".concat(provider, "\" which is
|
|
21
|
+
throw new Error("You're using legacy Custom API \"".concat(provider, "\" which is dropped in v3, please use Flow API instead"));
|
|
22
22
|
}
|
|
23
23
|
var apiDefinition = yield fetchFlowApiDefinition(provider);
|
|
24
24
|
if (!apiDefinition) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowApi.js","names":["yaml","ContractApi_searchSingleContract","getContract","flowApiDefinitionPromiseMap","Map","isFlowApiProvider","provider","includes","getArgsOfFlowApi","_x","_x2","_x3","_getArgsOfFlowApi","apply","arguments","_asyncToGenerator","originalArgs","method","Error","concat","apiDefinition","fetchFlowApiDefinition","apiProfile","getApiProfileFromApiDefinition","getApiArgsFromApiProfile","_ref","uri","apiMethod","ext_fields","name","namespace","serviceName","responseWrapper","version","isFileType","request","isDownload","fileName","shift","url","args","getTransformedUriAndRestArgs","originalUri","prefix","restArgs","slice","transformedUri","replace","api","_contract$endpoint","_contract$response","contract","safeLoad","schema","JSON_SCHEMA","json","endpoint","response","wrapper","toLowerCase","type","promise","get","_fetchFlowApiDefinition","set","_x4","_fetchFlowApiDefinition2","namespaceName","nameWithVersion","split","namespaceId","contractData","contractName","_contractData$namespa","_contractData$namespa2"],"sources":["../../../../src/internal/data/FlowApi.ts"],"sourcesContent":["import yaml from \"js-yaml\";\nimport { ContractApi_searchSingleContract } from \"@next-api-sdk/api-gateway-sdk\";\nimport { ContractRequest, ContractResponse, ExtField } from \"@next-core/types\";\nimport { getContract } from \"./CollectContracts.js\";\n\nconst flowApiDefinitionPromiseMap = new Map<\n string,\n Promise<CustomApiDefinition | undefined>\n>();\n\n// Legacy Custom API: `${namespace}@${name}`\n// Flow API: `${namespace}@${name}:${version}`\nexport function isFlowApiProvider(provider: string): boolean {\n return provider.includes(\"@\");\n}\n\nexport async function getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n): Promise<unknown[]> {\n if (!isFlowApiProvider(provider)) {\n return originalArgs;\n }\n\n if (!provider.includes(\":\")) {\n throw new Error(\n `You're using legacy Custom API \"${provider}\" which is not supported in v3, please use Flow API instead`\n );\n }\n\n const apiDefinition = await fetchFlowApiDefinition(provider);\n\n if (!apiDefinition) {\n throw new Error(`Flow API not found: \"${provider}\"`);\n }\n\n const apiProfile = getApiProfileFromApiDefinition(provider, apiDefinition);\n\n return getApiArgsFromApiProfile(apiProfile, originalArgs, method);\n}\n\nfunction getApiArgsFromApiProfile(\n {\n uri,\n method: apiMethod,\n ext_fields,\n name,\n namespace,\n serviceName,\n responseWrapper,\n version,\n isFileType,\n request,\n }: CustomApiProfile,\n originalArgs: unknown[],\n method?: string\n): unknown[] {\n const isDownload = isFileType && method === \"saveAs\";\n let fileName: string | undefined;\n if (isDownload) {\n fileName = originalArgs.shift() as string;\n }\n\n const { url, args } = getTransformedUriAndRestArgs(\n uri,\n originalArgs,\n name,\n namespace,\n serviceName,\n version\n );\n\n return [\n ...(isDownload ? [fileName] : []),\n {\n url,\n originalUri: uri,\n method: apiMethod,\n ext_fields,\n responseWrapper,\n request,\n isFileType,\n },\n ...args,\n ];\n}\n\nfunction getTransformedUriAndRestArgs(\n uri: string,\n originalArgs: unknown[],\n name: string,\n namespace: string,\n serviceName: string | undefined,\n version?: string\n): { url: string; args: unknown[] } {\n const prefix = version\n ? serviceName\n ? `api/gateway/${serviceName}`\n : `api/gateway/${namespace}.${name}@${version}`\n : `api/gateway/api_service.${namespace}.${name}`;\n const restArgs = originalArgs.slice();\n const transformedUri = uri.replace(\n /:([^/]+)/g,\n () => restArgs.shift() as string\n );\n return {\n url: prefix + transformedUri,\n args: restArgs,\n };\n}\n\nfunction getApiProfileFromApiDefinition(\n provider: string,\n api: CustomApiDefinition\n): CustomApiProfile {\n const contract: CustomApiDefinition[\"contract\"] =\n typeof api.contract === \"string\"\n ? (yaml.safeLoad(api.contract, {\n schema: yaml.JSON_SCHEMA,\n json: true,\n }) as CustomApiDefinition[\"contract\"])\n : api.contract;\n const { uri, method = \"GET\", ext_fields } = contract?.endpoint ?? {};\n const responseWrapper = contract?.response\n ? contract.response.wrapper !== false\n : false;\n if (!uri) {\n throw new Error(\n `Missing endpoint.uri in contract of provider \"${provider}\"`\n );\n }\n return {\n uri,\n method: method.toLowerCase() === \"list\" ? \"get\" : method,\n ext_fields,\n name: api.name,\n namespace: api.namespace,\n serviceName: api.serviceName,\n version: api.version,\n isFileType: contract?.response?.type === \"file\",\n responseWrapper,\n request: contract?.request,\n };\n}\n\nfunction fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition | undefined> {\n let promise = flowApiDefinitionPromiseMap.get(provider);\n if (!promise) {\n promise = _fetchFlowApiDefinition(provider);\n flowApiDefinitionPromiseMap.set(provider, promise);\n }\n return promise;\n}\n\nasync function _fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition | undefined> {\n const [namespaceName, nameWithVersion] = provider.split(\"@\");\n const [name, version] = nameWithVersion.split(\":\");\n\n const contract = getContract(`${namespaceName}.${name}`);\n if (contract) {\n return {\n name: contract.name,\n namespace: contract.namespaceId,\n serviceName: contract.serviceName,\n version: contract.version,\n contract: {\n endpoint: contract.endpoint,\n response: contract.response,\n request: contract.request,\n },\n };\n } else {\n const { contractData } = await ContractApi_searchSingleContract({\n contractName: `${namespaceName}.${name}`,\n version,\n });\n\n // return undefined if don't found contract\n if (contractData) {\n return {\n name: contractData.name,\n namespace: contractData.namespace?.[0]?.name,\n serviceName: contractData.serviceName,\n version: contractData.version,\n contract: {\n endpoint: contractData.endpoint,\n response: contractData.response,\n request: contractData.request,\n },\n };\n }\n }\n}\n\nexport interface CustomApiDefinition {\n name: string;\n namespace: string;\n version?: string;\n serviceName?: string;\n contract?: {\n endpoint: {\n ext_fields?: ExtField[];\n uri: string;\n method:\n | \"POST\"\n | \"post\"\n | \"PUT\"\n | \"put\"\n | \"GET\"\n | \"get\"\n | \"DELETE\"\n | \"delete\"\n | \"LIST\"\n | \"list\"\n | \"PATCH\"\n | \"patch\"\n | \"HEAD\"\n | \"head\";\n };\n request?: ContractRequest;\n response?: ContractResponse;\n };\n}\n\nexport interface CustomApiProfile {\n uri: string;\n method: string;\n name: string;\n namespace: string;\n serviceName?: string;\n responseWrapper: boolean;\n version?: string;\n isFileType?: boolean;\n ext_fields?: ExtField[];\n request?: ContractRequest;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FlowApi.js","names":["yaml","ContractApi_searchSingleContract","getContract","flowApiDefinitionPromiseMap","Map","isFlowApiProvider","provider","includes","getArgsOfFlowApi","_x","_x2","_x3","_getArgsOfFlowApi","apply","arguments","_asyncToGenerator","originalArgs","method","Error","concat","apiDefinition","fetchFlowApiDefinition","apiProfile","getApiProfileFromApiDefinition","getApiArgsFromApiProfile","_ref","uri","apiMethod","ext_fields","name","namespace","serviceName","responseWrapper","version","isFileType","request","isDownload","fileName","shift","url","args","getTransformedUriAndRestArgs","originalUri","prefix","restArgs","slice","transformedUri","replace","api","_contract$endpoint","_contract$response","contract","safeLoad","schema","JSON_SCHEMA","json","endpoint","response","wrapper","toLowerCase","type","promise","get","_fetchFlowApiDefinition","set","_x4","_fetchFlowApiDefinition2","namespaceName","nameWithVersion","split","namespaceId","contractData","contractName","_contractData$namespa","_contractData$namespa2"],"sources":["../../../../src/internal/data/FlowApi.ts"],"sourcesContent":["import yaml from \"js-yaml\";\nimport { ContractApi_searchSingleContract } from \"@next-api-sdk/api-gateway-sdk\";\nimport { ContractRequest, ContractResponse, ExtField } from \"@next-core/types\";\nimport { getContract } from \"./CollectContracts.js\";\n\nconst flowApiDefinitionPromiseMap = new Map<\n string,\n Promise<CustomApiDefinition | undefined>\n>();\n\n// Legacy Custom API: `${namespace}@${name}`\n// Flow API: `${namespace}@${name}:${version}`\nexport function isFlowApiProvider(provider: string): boolean {\n return provider.includes(\"@\");\n}\n\nexport async function getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n): Promise<unknown[]> {\n if (!isFlowApiProvider(provider)) {\n return originalArgs;\n }\n\n if (!provider.includes(\":\")) {\n throw new Error(\n `You're using legacy Custom API \"${provider}\" which is dropped in v3, please use Flow API instead`\n );\n }\n\n const apiDefinition = await fetchFlowApiDefinition(provider);\n\n if (!apiDefinition) {\n throw new Error(`Flow API not found: \"${provider}\"`);\n }\n\n const apiProfile = getApiProfileFromApiDefinition(provider, apiDefinition);\n\n return getApiArgsFromApiProfile(apiProfile, originalArgs, method);\n}\n\nfunction getApiArgsFromApiProfile(\n {\n uri,\n method: apiMethod,\n ext_fields,\n name,\n namespace,\n serviceName,\n responseWrapper,\n version,\n isFileType,\n request,\n }: CustomApiProfile,\n originalArgs: unknown[],\n method?: string\n): unknown[] {\n const isDownload = isFileType && method === \"saveAs\";\n let fileName: string | undefined;\n if (isDownload) {\n fileName = originalArgs.shift() as string;\n }\n\n const { url, args } = getTransformedUriAndRestArgs(\n uri,\n originalArgs,\n name,\n namespace,\n serviceName,\n version\n );\n\n return [\n ...(isDownload ? [fileName] : []),\n {\n url,\n originalUri: uri,\n method: apiMethod,\n ext_fields,\n responseWrapper,\n request,\n isFileType,\n },\n ...args,\n ];\n}\n\nfunction getTransformedUriAndRestArgs(\n uri: string,\n originalArgs: unknown[],\n name: string,\n namespace: string,\n serviceName: string | undefined,\n version?: string\n): { url: string; args: unknown[] } {\n const prefix = version\n ? serviceName\n ? `api/gateway/${serviceName}`\n : `api/gateway/${namespace}.${name}@${version}`\n : `api/gateway/api_service.${namespace}.${name}`;\n const restArgs = originalArgs.slice();\n const transformedUri = uri.replace(\n /:([^/]+)/g,\n () => restArgs.shift() as string\n );\n return {\n url: prefix + transformedUri,\n args: restArgs,\n };\n}\n\nfunction getApiProfileFromApiDefinition(\n provider: string,\n api: CustomApiDefinition\n): CustomApiProfile {\n const contract: CustomApiDefinition[\"contract\"] =\n typeof api.contract === \"string\"\n ? (yaml.safeLoad(api.contract, {\n schema: yaml.JSON_SCHEMA,\n json: true,\n }) as CustomApiDefinition[\"contract\"])\n : api.contract;\n const { uri, method = \"GET\", ext_fields } = contract?.endpoint ?? {};\n const responseWrapper = contract?.response\n ? contract.response.wrapper !== false\n : false;\n if (!uri) {\n throw new Error(\n `Missing endpoint.uri in contract of provider \"${provider}\"`\n );\n }\n return {\n uri,\n method: method.toLowerCase() === \"list\" ? \"get\" : method,\n ext_fields,\n name: api.name,\n namespace: api.namespace,\n serviceName: api.serviceName,\n version: api.version,\n isFileType: contract?.response?.type === \"file\",\n responseWrapper,\n request: contract?.request,\n };\n}\n\nfunction fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition | undefined> {\n let promise = flowApiDefinitionPromiseMap.get(provider);\n if (!promise) {\n promise = _fetchFlowApiDefinition(provider);\n flowApiDefinitionPromiseMap.set(provider, promise);\n }\n return promise;\n}\n\nasync function _fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition | undefined> {\n const [namespaceName, nameWithVersion] = provider.split(\"@\");\n const [name, version] = nameWithVersion.split(\":\");\n\n const contract = getContract(`${namespaceName}.${name}`);\n if (contract) {\n return {\n name: contract.name,\n namespace: contract.namespaceId,\n serviceName: contract.serviceName,\n version: contract.version,\n contract: {\n endpoint: contract.endpoint,\n response: contract.response,\n request: contract.request,\n },\n };\n } else {\n const { contractData } = await ContractApi_searchSingleContract({\n contractName: `${namespaceName}.${name}`,\n version,\n });\n\n // return undefined if don't found contract\n if (contractData) {\n return {\n name: contractData.name,\n namespace: contractData.namespace?.[0]?.name,\n serviceName: contractData.serviceName,\n version: contractData.version,\n contract: {\n endpoint: contractData.endpoint,\n response: contractData.response,\n request: contractData.request,\n },\n };\n }\n }\n}\n\nexport interface CustomApiDefinition {\n name: string;\n namespace: string;\n version?: string;\n serviceName?: string;\n contract?: {\n endpoint: {\n ext_fields?: ExtField[];\n uri: string;\n method:\n | \"POST\"\n | \"post\"\n | \"PUT\"\n | \"put\"\n | \"GET\"\n | \"get\"\n | \"DELETE\"\n | \"delete\"\n | \"LIST\"\n | \"list\"\n | \"PATCH\"\n | \"patch\"\n | \"HEAD\"\n | \"head\";\n };\n request?: ContractRequest;\n response?: ContractResponse;\n };\n}\n\nexport interface CustomApiProfile {\n uri: string;\n method: string;\n name: string;\n namespace: string;\n serviceName?: string;\n responseWrapper: boolean;\n version?: string;\n isFileType?: boolean;\n ext_fields?: ExtField[];\n request?: ContractRequest;\n}\n"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ function _resolveData() {
|
|
|
17
17
|
} = resolveConf;
|
|
18
18
|
var legacyProvider = resolveConf.provider;
|
|
19
19
|
if (legacyProvider && !useProvider) {
|
|
20
|
-
throw new Error("You're using \"provider: ".concat(legacyProvider, "\" which is
|
|
20
|
+
throw new Error("You're using \"provider: ".concat(legacyProvider, "\" which is dropped in v3, please use \"useProvider\" instead"));
|
|
21
21
|
}
|
|
22
22
|
var [providerBrick, actualArgs] = yield Promise.all([getProviderBrick(useProvider), asyncComputeRealValue(args, runtimeContext)]);
|
|
23
23
|
var promise = resolveByProvider(providerBrick, useProvider, method, actualArgs, options, args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveData.js","names":["asyncComputeRealValue","getProviderBrick","getArgsOfFlowApi","cache","Map","resolveData","_x","_x2","_x3","_resolveData","apply","arguments","_asyncToGenerator","resolveConf","runtimeContext","options","useProvider","method","args","onReject","legacyProvider","provider","Error","concat","providerBrick","actualArgs","Promise","all","promise","resolveByProvider","transform","data","error","isHandleRejectByTransform","_objectSpread","clearResolveCache","clear","_x4","_x5","_x6","_x7","_x8","_x9","_resolveByProvider","brick","originalArgs","cacheKey","JSON","stringify","e","get","finalArgs","resolve","set"],"sources":["../../../../src/internal/data/resolveData.ts"],"sourcesContent":["import type {\n HandleReject,\n HandleRejectByTransform,\n ResolveConf,\n} from \"@next-core/types\";\nimport { asyncComputeRealValue } from \"../compute/computeRealValue.js\";\nimport { getProviderBrick } from \"./getProviderBrick.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { getArgsOfFlowApi } from \"./FlowApi.js\";\n\nconst cache = new Map<string, Promise<unknown>>();\n\nexport interface ResolveOptions {\n /**\n * Cache mode of resolve.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/Request/cache\n *\n * - `default`: Looks for a matching cache.\n * - `reload`: Without looking for a matching cache.\n */\n cache?: \"default\" | \"reload\";\n}\n\nexport async function resolveData(\n resolveConf: ResolveConf,\n runtimeContext: RuntimeContext,\n options?: ResolveOptions\n) {\n const { useProvider, method = \"resolve\", args = [], onReject } = resolveConf;\n\n const legacyProvider = (resolveConf as { provider?: string }).provider;\n if (legacyProvider && !useProvider) {\n throw new Error(\n `You're using \"provider: ${legacyProvider}\" which is
|
|
1
|
+
{"version":3,"file":"resolveData.js","names":["asyncComputeRealValue","getProviderBrick","getArgsOfFlowApi","cache","Map","resolveData","_x","_x2","_x3","_resolveData","apply","arguments","_asyncToGenerator","resolveConf","runtimeContext","options","useProvider","method","args","onReject","legacyProvider","provider","Error","concat","providerBrick","actualArgs","Promise","all","promise","resolveByProvider","transform","data","error","isHandleRejectByTransform","_objectSpread","clearResolveCache","clear","_x4","_x5","_x6","_x7","_x8","_x9","_resolveByProvider","brick","originalArgs","cacheKey","JSON","stringify","e","get","finalArgs","resolve","set"],"sources":["../../../../src/internal/data/resolveData.ts"],"sourcesContent":["import type {\n HandleReject,\n HandleRejectByTransform,\n ResolveConf,\n} from \"@next-core/types\";\nimport { asyncComputeRealValue } from \"../compute/computeRealValue.js\";\nimport { getProviderBrick } from \"./getProviderBrick.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { getArgsOfFlowApi } from \"./FlowApi.js\";\n\nconst cache = new Map<string, Promise<unknown>>();\n\nexport interface ResolveOptions {\n /**\n * Cache mode of resolve.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/Request/cache\n *\n * - `default`: Looks for a matching cache.\n * - `reload`: Without looking for a matching cache.\n */\n cache?: \"default\" | \"reload\";\n}\n\nexport async function resolveData(\n resolveConf: ResolveConf,\n runtimeContext: RuntimeContext,\n options?: ResolveOptions\n) {\n const { useProvider, method = \"resolve\", args = [], onReject } = resolveConf;\n\n const legacyProvider = (resolveConf as { provider?: string }).provider;\n if (legacyProvider && !useProvider) {\n throw new Error(\n `You're using \"provider: ${legacyProvider}\" which is dropped in v3, please use \"useProvider\" instead`\n );\n }\n\n const [providerBrick, actualArgs] = await Promise.all([\n getProviderBrick(useProvider) as unknown as Promise<\n Record<string, Function>\n >,\n asyncComputeRealValue(args, runtimeContext) as Promise<unknown[]>,\n ]);\n\n const promise = resolveByProvider(\n providerBrick,\n useProvider,\n method,\n actualArgs,\n options,\n args\n );\n\n let { transform } = resolveConf;\n let data: unknown;\n\n try {\n data = await promise;\n // The fetched data and its inner objects should never be *injected* again.\n // recursiveMarkAsInjected(data);\n } catch (error) {\n if (isHandleRejectByTransform(onReject)) {\n transform = onReject.transform;\n data = error;\n } else {\n throw error;\n }\n }\n\n if (!transform) {\n return data;\n }\n\n // Keep backward compatibility of string transform.\n if (typeof transform === \"string\") {\n return { [transform]: data };\n }\n\n return asyncComputeRealValue(transform, { ...runtimeContext, data });\n}\n\nexport function clearResolveCache() {\n cache.clear();\n}\n\nexport async function resolveByProvider(\n brick: Record<string, Function>,\n useProvider: string,\n method: string,\n args: unknown[],\n options?: ResolveOptions,\n originalArgs?: unknown[]\n) {\n let cacheKey: string;\n try {\n // `args` may contain circular references, which makes\n // JSON stringify failed, thus we fallback to original args.\n cacheKey = JSON.stringify({\n useProvider,\n method,\n args,\n });\n } catch (e) {\n if (!originalArgs) {\n throw e;\n }\n cacheKey = JSON.stringify({\n useProvider,\n method,\n originalArgs,\n });\n }\n\n let promise: Promise<unknown> | undefined;\n if (options?.cache !== \"reload\") {\n promise = cache.get(cacheKey);\n }\n if (!promise) {\n promise = (async () => {\n const finalArgs = await getArgsOfFlowApi(useProvider, args, method);\n return brick.resolve(...finalArgs);\n })();\n\n cache.set(cacheKey, promise);\n }\n\n return promise;\n}\n\nfunction isHandleRejectByTransform(\n onReject: HandleReject | undefined\n): onReject is HandleRejectByTransform {\n return !!(onReject as HandleRejectByTransform)?.transform;\n}\n"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { httpErrorToString } from "../handleHttpError.js";
|
|
|
9
9
|
import { applyMode, applyTheme, setMode, setTheme } from "../themeAndMode.js";
|
|
10
10
|
import { RenderTag } from "./enums.js";
|
|
11
11
|
import { computeRealValue } from "./compute/computeRealValue.js";
|
|
12
|
+
import { isStrictMode, warnAboutStrictMode } from "../isStrictMode.js";
|
|
12
13
|
export function renderUseBrick(_x, _x2) {
|
|
13
14
|
return _renderUseBrick.apply(this, arguments);
|
|
14
15
|
}
|
|
@@ -26,7 +27,14 @@ function _renderUseBrick() {
|
|
|
26
27
|
// Will set during `mountUseBrick`
|
|
27
28
|
createPortal: null
|
|
28
29
|
};
|
|
29
|
-
var
|
|
30
|
+
var transform = useBrick.transform;
|
|
31
|
+
var strict = isStrictMode();
|
|
32
|
+
if (transform) {
|
|
33
|
+
warnAboutStrictMode(strict, "`useBrick.transform`", 'please use "properties" instead, check your useBrick:', useBrick);
|
|
34
|
+
}
|
|
35
|
+
var output = yield renderBrick(renderRoot, strict ? useBrick : _objectSpread(_objectSpread({}, useBrick), {}, {
|
|
36
|
+
properties: _objectSpread(_objectSpread({}, useBrick.properties), transform)
|
|
37
|
+
}), runtimeContext, rendererContext);
|
|
30
38
|
flushStableLoadBricks();
|
|
31
39
|
yield Promise.all([...output.blockingList, ...[...runtimeContext.tplStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
|
|
32
40
|
if ((_output$node = output.node) !== null && _output$node !== void 0 && _output$node.portal) {
|
|
@@ -80,12 +88,12 @@ var _rendererContext;
|
|
|
80
88
|
export function initializePreviewBootstrap(bootstrapData) {
|
|
81
89
|
_internalApiSetBootstrapData(bootstrapData);
|
|
82
90
|
}
|
|
83
|
-
export function renderPreviewBricks(_x3, _x4
|
|
91
|
+
export function renderPreviewBricks(_x3, _x4) {
|
|
84
92
|
return _renderPreviewBricks.apply(this, arguments);
|
|
85
93
|
}
|
|
86
94
|
function _renderPreviewBricks() {
|
|
87
|
-
_renderPreviewBricks = _asyncToGenerator(function* (bricks, mountPoints
|
|
88
|
-
var
|
|
95
|
+
_renderPreviewBricks = _asyncToGenerator(function* (bricks, mountPoints) {
|
|
96
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
89
97
|
var runtimeContext = {
|
|
90
98
|
pendingPermissionsPreCheck: [],
|
|
91
99
|
tplStateStoreMap: new Map()
|
|
@@ -124,15 +132,20 @@ function _renderPreviewBricks() {
|
|
|
124
132
|
previousRendererContext === null || previousRendererContext === void 0 ? void 0 : previousRendererContext.dispose();
|
|
125
133
|
unmountTree(mountPoints.main);
|
|
126
134
|
unmountTree(mountPoints.portal);
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
135
|
+
if (options.sandbox) {
|
|
136
|
+
var _options$theme;
|
|
137
|
+
setTheme((_options$theme = options.theme) !== null && _options$theme !== void 0 ? _options$theme : "light");
|
|
138
|
+
setMode("default");
|
|
139
|
+
if (!failed) {
|
|
140
|
+
rendererContext.dispatchBeforePageLoad();
|
|
141
|
+
}
|
|
142
|
+
applyTheme();
|
|
143
|
+
applyMode();
|
|
131
144
|
}
|
|
132
|
-
applyTheme();
|
|
133
|
-
applyMode();
|
|
134
145
|
mountTree(renderRoot);
|
|
135
|
-
|
|
146
|
+
if (options.sandbox) {
|
|
147
|
+
window.scrollTo(0, 0);
|
|
148
|
+
}
|
|
136
149
|
if (!failed) {
|
|
137
150
|
rendererContext.dispatchPageLoad();
|
|
138
151
|
// rendererContext.dispatchAnchorLoad();
|