@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.
Files changed (44) hide show
  1. package/dist/cjs/CustomTemplates.js +11 -7
  2. package/dist/cjs/CustomTemplates.js.map +1 -1
  3. package/dist/cjs/internal/Renderer.js +13 -5
  4. package/dist/cjs/internal/Renderer.js.map +1 -1
  5. package/dist/cjs/internal/RendererContext.js +1 -1
  6. package/dist/cjs/internal/RendererContext.js.map +1 -1
  7. package/dist/cjs/internal/compute/computeRealValue.js +5 -2
  8. package/dist/cjs/internal/compute/computeRealValue.js.map +1 -1
  9. package/dist/cjs/internal/compute/evaluate.js +19 -25
  10. package/dist/cjs/internal/compute/evaluate.js.map +1 -1
  11. package/dist/cjs/internal/compute/getNextStateOfUseBrick.js +12 -8
  12. package/dist/cjs/internal/compute/getNextStateOfUseBrick.js.map +1 -1
  13. package/dist/cjs/internal/data/FlowApi.js +1 -1
  14. package/dist/cjs/internal/data/FlowApi.js.map +1 -1
  15. package/dist/cjs/internal/data/resolveData.js +1 -1
  16. package/dist/cjs/internal/data/resolveData.js.map +1 -1
  17. package/dist/cjs/internal/secret_internals.js +26 -10
  18. package/dist/cjs/internal/secret_internals.js.map +1 -1
  19. package/dist/cjs/isStrictMode.js +23 -0
  20. package/dist/cjs/isStrictMode.js.map +1 -0
  21. package/dist/esm/CustomTemplates.js +12 -7
  22. package/dist/esm/CustomTemplates.js.map +1 -1
  23. package/dist/esm/internal/Renderer.js +13 -5
  24. package/dist/esm/internal/Renderer.js.map +1 -1
  25. package/dist/esm/internal/RendererContext.js +1 -1
  26. package/dist/esm/internal/RendererContext.js.map +1 -1
  27. package/dist/esm/internal/compute/computeRealValue.js +7 -4
  28. package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
  29. package/dist/esm/internal/compute/evaluate.js +19 -25
  30. package/dist/esm/internal/compute/evaluate.js.map +1 -1
  31. package/dist/esm/internal/compute/getNextStateOfUseBrick.js +12 -8
  32. package/dist/esm/internal/compute/getNextStateOfUseBrick.js.map +1 -1
  33. package/dist/esm/internal/data/FlowApi.js +1 -1
  34. package/dist/esm/internal/data/FlowApi.js.map +1 -1
  35. package/dist/esm/internal/data/resolveData.js +1 -1
  36. package/dist/esm/internal/data/resolveData.js.map +1 -1
  37. package/dist/esm/internal/secret_internals.js +24 -11
  38. package/dist/esm/internal/secret_internals.js.map +1 -1
  39. package/dist/esm/isStrictMode.js +19 -0
  40. package/dist/esm/isStrictMode.js.map +1 -0
  41. package/dist/types/internal/compute/getNextStateOfUseBrick.d.ts +9 -8
  42. package/dist/types/internal/secret_internals.d.ts +1 -0
  43. package/dist/types/isStrictMode.d.ts +3 -0
  44. package/package.json +4 -4
@@ -30,6 +30,7 @@ var _fetchMenuById = require("../menu/fetchMenuById.js");
30
30
  var _WidgetI18n = require("./WidgetI18n.js");
31
31
  var _images = require("./images.js");
32
32
  var _checkInstalledApps = require("../checkInstalledApps.js");
33
+ var _isStrictMode = require("../../isStrictMode.js");
33
34
  const symbolForRaw = Symbol.for("pre.evaluated.raw");
34
35
  const symbolForContext = Symbol.for("pre.evaluated.context");
35
36
  function isPreEvaluated(raw) {
@@ -122,10 +123,10 @@ runtimeContext, options = {}, isAsync) {
122
123
  }
123
124
 
124
125
  if (menuUsage.hasNonStaticUsage) {
125
- throw new Error(`Non-static usage of "APP.getMenu" is not supported in v3, check your expression: "${raw}"`);
126
+ throw new Error(`Non-static usage of "APP.getMenu" is prohibited in v3, check your expression: "${raw}"`);
126
127
  }
127
128
  if (hasAppUsage.hasNonStaticUsage) {
128
- throw new Error(`Non-static usage of "INSTALLED_APPS.has" is not supported in v3, check your expression: "${raw}"`);
129
+ throw new Error(`Non-static usage of "INSTALLED_APPS.has" is prohibited in v3, check your expression: "${raw}"`);
129
130
  }
130
131
  const globalVariables = {};
131
132
  const {
@@ -150,9 +151,10 @@ runtimeContext, options = {}, isAsync) {
150
151
  let usedProcessors;
151
152
  let usedStates;
152
153
  let tplStateStore;
154
+ const strict = (0, _isStrictMode.isStrictMode)(runtimeContext);
153
155
 
154
156
  // For existed TPL usage, treat it as a STATE.
155
- if (attemptToVisitGlobals.has("STATE") || attemptToVisitGlobals.has("TPL")) {
157
+ if (attemptToVisitGlobals.has("STATE") || !strict && attemptToVisitGlobals.has("TPL")) {
156
158
  tplStateStore = (0, _utils.getTplStateStore)(runtimeContext, "STATE", `: "${raw}"`);
157
159
  }
158
160
  const devHook = (0, _devtools.getDevHook)();
@@ -163,12 +165,12 @@ runtimeContext, options = {}, isAsync) {
163
165
  }
164
166
  if (tplStateStore) {
165
167
  usedStates = (0, _storyboard.strictCollectMemberUsage)(raw, "STATE");
166
- // Todo: remove compatibility support for `TPL`
167
- // istanbul ignore next
168
- const usedTpls = (0, _storyboard.strictCollectMemberUsage)(raw, "TPL");
169
- // istanbul ignore next
170
- for (const tpl of usedTpls) {
171
- usedStates.add(tpl);
168
+ // istanbul ignore if
169
+ if (!strict) {
170
+ const usedTpls = (0, _storyboard.strictCollectMemberUsage)(raw, "TPL");
171
+ for (const tpl of usedTpls) {
172
+ usedStates.add(tpl);
173
+ }
172
174
  }
173
175
  isAsync && blockingList.push(tplStateStore.waitFor(usedStates));
174
176
  }
@@ -200,7 +202,7 @@ runtimeContext, options = {}, isAsync) {
200
202
  return {
201
203
  blockingList,
202
204
  run() {
203
- var _runtimeContext$overr;
205
+ var _runtimeContext$overr, _match$params;
204
206
  const {
205
207
  app: currentApp,
206
208
  location,
@@ -228,9 +230,6 @@ runtimeContext, options = {}, isAsync) {
228
230
  case "CTX":
229
231
  globalVariables[variableName] = (0, _proxyFactories.getDynamicReadOnlyProxy)({
230
232
  get(target, key) {
231
- if (typeof key !== "string") {
232
- return;
233
- }
234
233
  return ctxStore.getValue(key);
235
234
  },
236
235
  ownKeys() {
@@ -278,7 +277,7 @@ runtimeContext, options = {}, isAsync) {
278
277
  globalVariables[variableName] = new URLSearchParams(query);
279
278
  break;
280
279
  case "PATH":
281
- globalVariables[variableName] = (0, _proxyFactories.getReadOnlyProxy)(match.params);
280
+ globalVariables[variableName] = (0, _proxyFactories.getReadOnlyProxy)((_match$params = match === null || match === void 0 ? void 0 : match.params) !== null && _match$params !== void 0 ? _match$params : {});
282
281
  break;
283
282
  case "PATH_NAME":
284
283
  globalVariables[variableName] = location.pathname;
@@ -286,18 +285,12 @@ runtimeContext, options = {}, isAsync) {
286
285
  case "PROCESSORS":
287
286
  globalVariables[variableName] = (0, _proxyFactories.getDynamicReadOnlyProxy)({
288
287
  get(target, key) {
289
- if (typeof key !== "string") {
290
- return;
291
- }
292
288
  const pkg = _CustomProcessors.customProcessors.get(key);
293
289
  if (!pkg) {
294
290
  throw new Error(`'PROCESSORS.${key}' is not registered! Have you installed the relevant brick package?`);
295
291
  }
296
292
  return (0, _proxyFactories.getDynamicReadOnlyProxy)({
297
293
  get(t, k) {
298
- if (typeof k !== "string") {
299
- return;
300
- }
301
294
  return pkg.get(k);
302
295
  },
303
296
  ownKeys() {
@@ -322,15 +315,16 @@ runtimeContext, options = {}, isAsync) {
322
315
  getItem: (0, _getStorageItem.getStorageItem)("session")
323
316
  });
324
317
  break;
325
- // Todo: remove compatibility support for `TPL`
326
318
  // istanbul ignore next
327
319
  case "TPL":
320
+ (0, _isStrictMode.warnAboutStrictMode)(strict, 'Using "TPL" in expression', `check your expression: "${raw}"`);
321
+ if (strict) {
322
+ break;
323
+ }
324
+ // eslint-disable-next-line no-fallthrough
328
325
  case "STATE":
329
326
  globalVariables[variableName] = (0, _proxyFactories.getDynamicReadOnlyProxy)({
330
327
  get(target, key) {
331
- if (typeof key !== "string") {
332
- return;
333
- }
334
328
  return tplStateStore.getValue(key);
335
329
  },
336
330
  ownKeys() {
@@ -339,7 +333,7 @@ runtimeContext, options = {}, isAsync) {
339
333
  });
340
334
  break;
341
335
  case "SYS":
342
- globalVariables[variableName] = (0, _proxyFactories.getReadOnlyProxy)(sys);
336
+ globalVariables[variableName] = (0, _proxyFactories.getReadOnlyProxy)(sys !== null && sys !== void 0 ? sys : {});
343
337
  break;
344
338
  case "__WIDGET_FN__":
345
339
  globalVariables[variableName] = _WidgetFunctions.widgetFunctions;
@@ -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","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","getTplStateStore","devHook","getDevHook","strictCollectMemberUsage","push","ctxStore","waitFor","usedTpls","tpl","add","loadProcessorsImperatively","getBrickPackages","attemptToCheckPermissions","usedFunctions","checkPermissionsUsage","size","usedMenuIds","map","menuId","fetchMenuById","waitForCheckingApps","_runtimeContext$overr","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","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\";\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","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":";;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAMA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AAIA,IAAAQ,kBAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AAIA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,eAAA,GAAAZ,OAAA;AACA,IAAAa,QAAA,GAAAb,OAAA;AAEA,IAAAc,MAAA,GAAAd,OAAA;AACA,IAAAe,gBAAA,GAAAf,OAAA;AACA,IAAAgB,uBAAA,GAAAhB,OAAA;AAKA,IAAAiB,cAAA,GAAAjB,OAAA;AACA,IAAAkB,WAAA,GAAAlB,OAAA;AACA,IAAAmB,OAAA,GAAAnB,OAAA;AACA,IAAAoB,mBAAA,GAAApB,OAAA;AACA,IAAAqB,aAAA,GAAArB,OAAA;AAEA,MAAMsB,YAAY,GAAGC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AACpD,MAAMC,gBAAgB,GAAGF,MAAM,CAACC,GAAG,CAAC,uBAAuB,CAAC;AAarD,SAASE,cAAcA,CAACC,GAAY,EAAuB;EAChE,OAAO,CAAC,EAAEA,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAoBL,YAAY,CAAC;AAChD;AAEO,SAASM,kBAAkBA,CAACC,GAAiB,EAAU;EAC5D,OAAOA,GAAG,CAACP,YAAY,CAAC;AAC1B;AAEO,SAASQ,4BAA4BA,CAC1CH,GAA0B,EACjB;EACT,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAO,IAAAI,qCAA+B,EAACJ,GAAG,CAAC;EAC7C;EACA,OAAO,IAAAI,qCAA+B,EAACJ,GAAG,CAACL,YAAY,CAAC,CAAC;AAC3D;AAEA,MAAMU,uBAAuB,GAAG,IAAIC,OAAO,CAAmB,CAC5DC,WAAW,EACXC,SAAS,EACTC,cAAc,CACf,CAAC;AAEK,SAASC,uBAAuBA,CAACC,KAAU,EAAoB;EACpE,OAAON,uBAAuB,CAACO,GAAG,CAACD,KAAK,CAACE,WAAW,CAAC,GACjDF,KAAK,CAACE,WAAW,GACjBL,SAAS;AACf;AAEO,eAAeM,aAAaA,CACjCd,GAA0B;AAAE;AAC5Be,cAA8B,EAC9BC,OAAyB,EACP;EAClB,MAAM;IAAEC,YAAY;IAAEC;EAAI,CAAC,GAAGC,gBAAgB,CAC5CnB,GAAG,EACHe,cAAc,EACdC,OAAO,EACP,IAAI,CACL;EACD,MAAMI,OAAO,CAACC,GAAG,CAACJ,YAAY,CAAC;EAC/B,OAAOC,GAAG,EAAE;AACd;AAEO,SAASI,QAAQA,CACtBtB,GAA0B;AAAE;AAC5Be,cAA8B,EAC9BC,OAAyB,EACP;EAClB,MAAM;IAAEE;EAAI,CAAC,GAAGC,gBAAgB,CAACnB,GAAG,EAAEe,cAAc,EAAEC,OAAO,EAAE,KAAK,CAAC;EACrE,OAAOE,GAAG,EAAE;AACd;AAEA,SAASC,gBAAgBA,CACvBnB,GAA0B;AAAE;AAC5Be,cAA8B,EAC9BC,OAAwB,GAAG,CAAC,CAAC,EAC7BO,OAAiB,EAIjB;EACA,MAAMN,YAA8C,GAAG,EAAE;EACzD,IAAI,OAAOjB,GAAG,KAAK,QAAQ,EAAE;IAC3B;IACA;;IAEA,MAAM;MACJwB,0BAA0B,EAAEC,EAAE;MAC9BC,gBAAgB,EAAEC,EAAE;MACpB,GAAGC;IACL,CAAC,GAAGb,cAAc;IAElBA,cAAc,GAAG;MACf,GAAGf,GAAG,CAACF,gBAAgB,CAAC;MACxB,GAAG8B;IACL,CAAC;IACD5B,GAAG,GAAGA,GAAG,CAACL,YAAY,CAAC;EACzB;;EAEA;EACA,MAAMkC,SAA0B,GAAG;IACjCC,QAAQ,EAAE,IAAIC,GAAG;EACnB,CAAC;EACD,MAAMC,WAA4B,GAAG;IACnCF,QAAQ,EAAE,IAAIC,GAAG;EACnB,CAAC;;EAED;EACA,IAAIE,SAA4B;EAChC,IAAI;IACFA,SAAS,GAAG,IAAAC,iBAAW,EAAClC,GAAG,EAAE;MAC3BmC,UAAU,EAAE,IAAI;MAChBC,KAAK,EAAE;QACLC,iBAAiBA,CAACC,IAAI,EAAEC,MAAM,EAAE;UAC9B,IAAAC,8CAAsB,EAACX,SAAS,EAAES,IAAI,EAAEC,MAAM,CAAE;UAChD,IAAAE,oDAA4B,EAACT,WAAW,EAAEM,IAAI,EAAEC,MAAM,CAAE;QAC1D;MACF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,OAAO5B,KAAU,EAAE;IACnB,MAAM+B,OAAO,GAAI,GAAE/B,KAAK,CAAC+B,OAAQ,SAAQ1C,GAAI,GAAE;IAC/C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM2C,gBAAgB,GAAGjC,uBAAuB,CAACC,KAAK,CAAC;IACvD,MAAM,IAAIgC,gBAAgB,CAACD,OAAO,CAAC;IACnC;EACF;;EAEA,IAAIb,SAAS,CAACe,iBAAiB,EAAE;IAC/B,MAAM,IAAIC,KAAK,CACZ,kFAAiF7C,GAAI,GAAE,CACzF;EACH;EAEA,IAAIgC,WAAW,CAACY,iBAAiB,EAAE;IACjC,MAAM,IAAIC,KAAK,CACZ,yFAAwF7C,GAAI,GAAE,CAChG;EACH;EAEA,MAAM8C,eAAwC,GAAG,CAAC,CAAC;EACnD,MAAM;IAAEC;EAAsB,CAAC,GAAGd,SAAS;;EAE3C;EACA;EACA;EACA,IACEjB,OAAO,CAACgC,IAAI,IACXD,qBAAqB,CAACnC,GAAG,CAAC,OAAO,CAAC,IACjC,CAAC,IAAAqC,uBAAc,EAAClC,cAAc,EAAE,OAAO,CAAE,IAC1CgC,qBAAqB,CAACnC,GAAG,CAAC,MAAM,CAAC,IAChC,CAAC,IAAAqC,uBAAc,EAAClC,cAAc,EAAE,MAAM,CAAE,EAC1C;IACA,OAAO;MACLE,YAAY;MACZC,GAAGA,CAAA,EAAG;QACJ,OAAOgC,MAAM,CAACC,IAAI,CAACpC,cAAc,CAAC,CAACqC,MAAM,GAAG,CAAC,GACxC;UACC,CAACzD,YAAY,GAAGK,GAAG;UACnB,CAACF,gBAAgB,GAAGiB;QACtB,CAAC,GACDf,GAAG;MACT;IACF,CAAC;EACH;EAEA,IAAIqD,OAAoB;EACxB,IAAIC,cAA2B;EAC/B,IAAIC,UAAuB;EAC3B,IAAIC,aAA6C;EACjD,MAAMC,MAAM,GAAG,IAAAC,0BAAY,EAAC3C,cAAc,CAAC;;EAE3C;EACA,IACEgC,qBAAqB,CAACnC,GAAG,CAAC,OAAO,CAAC,IACjC,CAAC6C,MAAM,IAAIV,qBAAqB,CAACnC,GAAG,CAAC,KAAK,CAAE,EAC7C;IACA4C,aAAa,GAAG,IAAAG,uBAAgB,EAAC5C,cAAc,EAAE,OAAO,EAAG,MAAKf,GAAI,GAAE,CAAC;EACzE;EAEA,MAAM4D,OAAO,GAAG,IAAAC,oBAAU,GAAE;EAC5B,IAAItC,OAAO,IAAIqC,OAAO,EAAE;IACtB,IAAIb,qBAAqB,CAACnC,GAAG,CAAC,KAAK,CAAC,EAAE;MACpCyC,OAAO,GAAG,IAAAS,oCAAwB,EAAC9D,GAAG,EAAE,KAAK,CAAC;MAC9CuB,OAAO,IAAIN,YAAY,CAAC8C,IAAI,CAAChD,cAAc,CAACiD,QAAQ,CAACC,OAAO,CAACZ,OAAO,CAAC,CAAC;IACxE;IAEA,IAAIG,aAAa,EAAE;MACjBD,UAAU,GAAG,IAAAO,oCAAwB,EAAC9D,GAAG,EAAE,OAAO,CAAC;MACnD;MACA,IAAI,CAACyD,MAAM,EAAE;QACX,MAAMS,QAAQ,GAAG,IAAAJ,oCAAwB,EAAC9D,GAAG,EAAE,KAAK,CAAC;QACrD,KAAK,MAAMmE,GAAG,IAAID,QAAQ,EAAE;UAC1BX,UAAU,CAACa,GAAG,CAACD,GAAG,CAAC;QACrB;MACF;MACA5C,OAAO,IAAIN,YAAY,CAAC8C,IAAI,CAACP,aAAa,CAACS,OAAO,CAACV,UAAU,CAAC,CAAC;IACjE;IAEA,IAAIR,qBAAqB,CAACnC,GAAG,CAAC,YAAY,CAAC,EAAE;MAC3C0C,cAAc,GAAG,IAAAQ,oCAAwB,EAAC9D,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;MAC/DuB,OAAO,IACLN,YAAY,CAAC8C,IAAI,CACf,IAAAM,kCAA0B,EAACf,cAAc,EAAE,IAAAgB,yBAAgB,GAAE,CAAC,CAC/D;IACL;EACF;EAEA,IAAI/C,OAAO,EAAE;IACX,IAAIgD,yBAAyB,GAAGxB,qBAAqB,CAACnC,GAAG,CAAC,aAAa,CAAC;IACxE;IACA,IAAI,CAAC2D,yBAAyB,IAAIxB,qBAAqB,CAACnC,GAAG,CAAC,IAAI,CAAC,EAAE;MACjE,MAAM4D,aAAa,GAAG,CAAC,GAAG,IAAAV,oCAAwB,EAAC9D,GAAG,EAAE,IAAI,CAAC,CAAC;MAC9DuE,yBAAyB,GAAG,IAAAE,0CAAqB,EAACD,aAAa,CAAC;IAClE;IAEA,IAAID,yBAAyB,EAAE;MAC7BtD,YAAY,CAAC8C,IAAI,CAAC,GAAGhD,cAAc,CAACS,0BAA0B,CAAC;IACjE;IAEA,IAAIK,SAAS,CAACC,QAAQ,CAAC4C,IAAI,GAAG,CAAC,EAAE;MAC/B;MACA,MAAMC,WAAW,GAAG,CAAC,GAAG9C,SAAS,CAACC,QAAQ,CAAC;MAC3Cb,YAAY,CAAC8C,IAAI,CACf3C,OAAO,CAACC,GAAG,CACTsD,WAAW,CAACC,GAAG,CAAEC,MAAM,IAAK,IAAAC,4BAAa,EAACD,MAAM,EAAE9D,cAAc,CAAC,CAAC,CACnE,CACF;IACH;IAEA,IAAIiB,WAAW,CAACF,QAAQ,CAAC4C,IAAI,GAAG,CAAC,EAAE;MACjC;MACAzD,YAAY,CAAC8C,IAAI,CAAC,IAAAgB,uCAAmB,EAAC,CAAC,GAAG/C,WAAW,CAACF,QAAQ,CAAC,CAAC,CAAC;IACnE;EACF;EAEA,OAAO;IACLb,YAAY;IACZC,GAAGA,CAAA,EAAG;MAAA,IAAA8D,qBAAA,EAAAC,aAAA;MACJ,MAAM;QACJC,GAAG,EAAEC,UAAU;QACfC,QAAQ;QACRC,KAAK;QACLC,KAAK;QACLC,KAAK;QACLC,GAAG;QACHxB,QAAQ;QACRyB,IAAI;QACJC;MACF,CAAC,GAAG3E,cAAc;MAClB,MAAMmE,GAAG,IAAAF,qBAAA,GAAGjE,cAAc,CAAC4E,WAAW,cAAAX,qBAAA,cAAAA,qBAAA,GAAIG,UAAU;MAEpD,KAAK,MAAMS,YAAY,IAAI7C,qBAAqB,EAAE;QAChD,QAAQ6C,YAAY;UAClB;UACA,KAAK,QAAQ;YACX9C,eAAe,CAAC8C,YAAY,CAAC,GAAGR,QAAQ,CAACS,IAAI,GACzCT,QAAQ,CAACS,IAAI,CAACC,SAAS,CAAC,CAAC,CAAC,GAC1B,IAAI;YACR;UACF,KAAK,KAAK;YACRhD,eAAe,CAAC8C,YAAY,CAAC,GAAG;cAC9B,GAAG,IAAAG,iBAAS,EAACb,GAAG,CAAC;cACjBc,OAAO,EAAEC;YACX,CAAC;YACD;UACF,KAAK,KAAK;YACRnD,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAM,uCAAuB,EAAC;cACtDC,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAE;gBACf,OAAOrC,QAAQ,CAACsC,QAAQ,CAACD,GAAG,CAAW;cACzC,CAAC;cACDE,OAAOA,CAAA,EAAG;gBACR,OAAOC,KAAK,CAACC,IAAI,CAACpD,OAAO,CAAC;cAC5B;YACF,CAAC,CAAC;YACF;UACF,KAAK,MAAM;YACTP,eAAe,CAAC8C,YAAY,CAAC,GAAGH,IAAI;YACpC;UACF,KAAK,OAAO;YACV3C,eAAe,CAAC8C,YAAY,CAAC,GAAGF,KAAK;YACrC;UACF,KAAK,OAAO;YACV5C,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAc,gCAAgB,EAACnB,KAAK,CAAC;YACvD;UACF,KAAK,MAAM;YACTzC,eAAe,CAAC8C,YAAY,CAAC,GAAGR,QAAQ,CAACS,IAAI;YAC7C;UACF,KAAK,gBAAgB;YACnB/C,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAc,gCAAgB,EAAC;cAC/C9F,GAAG,EAAE+F;YACP,CAAC,CAAC;YACF;UACF,KAAK,MAAM;YACT,IAAI,CAAC,IAAA1D,uBAAc,EAAClC,cAAc,EAAE,aAAa,CAAC,EAAE;cAClD;cACA6F,OAAO,CAACjG,KAAK,CACV,wEAAuEX,GAAI,GAAE,CAC/E;YACH,CAAC,MAAM;cACL8C,eAAe,CAAC8C,YAAY,CAAC,GAAG7E,cAAc,CAAC8F,WAAW;YAC5D;YACA;UACF,KAAK,eAAe;YAClB/D,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAc,gCAAgB,EAAC;cAC/CI,OAAO,EAAE,IAAAC,8BAAc,EAAC,OAAO;YACjC,CAAC,CAAC;YACF;UACF,KAAK,OAAO;YACVjE,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAc,gCAAgB,EAAC,IAAAM,oBAAQ,GAAE,CAAC;YAC5D;UACF,KAAK,MAAM;YACTlE,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAqB,mBAAU,GAAE,CAACC,eAAe,EAAE;YAC9D;UACF,KAAK,QAAQ;YACXpE,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAIuB,eAAe,CAAC9B,KAAK,CAAC;YAC1D;UACF,KAAK,MAAM;YACTvC,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAc,gCAAgB,GAAAzB,aAAA,GAC9CK,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE8B,MAAM,cAAAnC,aAAA,cAAAA,aAAA,GAAI,CAAC,CAAC,CACpB;YACD;UACF,KAAK,WAAW;YACdnC,eAAe,CAAC8C,YAAY,CAAC,GAAGR,QAAQ,CAACiC,QAAQ;YACjD;UACF,KAAK,YAAY;YACfvE,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAM,uCAAuB,EAAC;cACtDC,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAE;gBACf,MAAMiB,GAAG,GAAGC,kCAAgB,CAACpB,GAAG,CAACE,GAAG,CAAW;gBAC/C,IAAI,CAACiB,GAAG,EAAE;kBACR,MAAM,IAAIzE,KAAK,CACZ,eACCwD,GACD,qEAAoE,CACtE;gBACH;gBACA,OAAO,IAAAH,uCAAuB,EAAC;kBAC7BC,GAAGA,CAACqB,CAAC,EAAEC,CAAC,EAAE;oBACR,OAAOH,GAAG,CAACnB,GAAG,CAACsB,CAAC,CAAW;kBAC7B,CAAC;kBACDlB,OAAOA,CAAA,EAAG;oBACR,OAAOC,KAAK,CAACC,IAAI,CAACa,GAAG,CAACnE,IAAI,EAAE,CAAC;kBAC/B;gBACF,CAAC,CAAC;cACJ,CAAC;cACDoD,OAAOA,CAAA,EAAG;gBACR,OAAOC,KAAK,CAACC,IAAI,CAACnD,cAAc,CAAC;cACnC;YACF,CAAC,CAAC;YACF;UACF,KAAK,OAAO;YACVR,eAAe,CAAC8C,YAAY,CAAC,GAAG1C,MAAM,CAACwE,WAAW,CAChDlB,KAAK,CAACC,IAAI,CAACpB,KAAK,CAAClC,IAAI,EAAE,CAAC,CAACyB,GAAG,CAAEyB,GAAG,IAAK,CAACA,GAAG,EAAEhB,KAAK,CAACc,GAAG,CAACE,GAAG,CAAC,CAAC,CAAC,CAC7D;YACD;UACF,KAAK,aAAa;YAChBvD,eAAe,CAAC8C,YAAY,CAAC,GAAG1C,MAAM,CAACwE,WAAW,CAChDlB,KAAK,CAACC,IAAI,CAACpB,KAAK,CAAClC,IAAI,EAAE,CAAC,CAACyB,GAAG,CAAEyB,GAAG,IAAK,CAACA,GAAG,EAAEhB,KAAK,CAACsC,MAAM,CAACtB,GAAG,CAAC,CAAC,CAAC,CAChE;YACD;YACA;UACF,KAAK,iBAAiB;YACpBvD,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAc,gCAAgB,EAAC;cAC/CI,OAAO,EAAE,IAAAC,8BAAc,EAAC,SAAS;YACnC,CAAC,CAAC;YACF;UACF;UACA,KAAK,KAAK;YACR,IAAAa,iCAAmB,EACjBnE,MAAM,EACN,2BAA2B,EAC1B,2BAA0BzD,GAAI,GAAE,CAClC;YACD,IAAIyD,MAAM,EAAE;cACV;YACF;UACF;UACA,KAAK,OAAO;YACVX,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAM,uCAAuB,EAAC;cACtDC,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAE;gBACf,OAAO7C,aAAa,CAAE8C,QAAQ,CAACD,GAAG,CAAW;cAC/C,CAAC;cACDE,OAAOA,CAAA,EAAG;gBACR,OAAOC,KAAK,CAACC,IAAI,CAAClD,UAAU,CAAC;cAC/B;YACF,CAAC,CAAC;YACF;UACF,KAAK,KAAK;YACRT,eAAe,CAAC8C,YAAY,CAAC,GAAG,IAAAc,gCAAgB,EAAClB,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,CAAC,CAAC,CAAC;YAC3D;UACF,KAAK,eAAe;YAClB1C,eAAe,CAAC8C,YAAY,CAAC,GAAGiC,gCAAe;YAC/C;UACF,KAAK,gBAAgB;YACnB/E,eAAe,CAAC8C,YAAY,CAAC,GAAGkC,2BAAmB;YACnD;UACF,KAAK,iBAAiB;YACpBhF,eAAe,CAAC8C,YAAY,CAAC,GAAGmC,6BAAiB;YACjD;QAAM;MAEZ;MAEA7E,MAAM,CAAC8E,MAAM,CACXlF,eAAe,EACf,IAAAmF,oCAAiB,EAAChG,SAAS,CAACc,qBAAqB,EAAE;QACjDmF,mBAAmB,EAAnBA,wCAAmB;QACnBhD,GAAG,EAAEnE,cAAc,CAACmE,GAAG;QACvBiD,mBAAmB,EAAEpH,cAAc,CAACoH;MACtC,CAAC,CAAC,CACH;MAED,IAAI;QACF,MAAMC,MAAM,GAAG,IAAAC,UAAI,EAACpG,SAAS,CAACqG,UAAU,EAAErG,SAAS,CAACsG,MAAM,EAAE;UAC1DzF,eAAe,EAAE,IAAA0F,cAAM,EACrBvG,SAAS,CAACc,qBAAqB,EAC/BD,eAAe;QAEnB,CAAC,CAAC;QACF;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,OAAOsF,MAAM;MACf,CAAC,CAAC,OAAOzH,KAAU,EAAE;QACnB,MAAM+B,OAAO,GAAI,GAAE/B,KAAK,CAAC+B,OAAQ,SAAQ1C,GAAI,GAAE;QAC/C;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM2C,gBAAgB,GAAGjC,uBAAuB,CAACC,KAAK,CAAC;QACvD,MAAM,IAAIgC,gBAAgB,CAACD,OAAO,CAAC;QACnC;MACF;IACF;EACF,CAAC;AACH"}
@@ -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["USE_BRICK_EVENTS"] = 4] = "USE_BRICK_EVENTS";
17
- StateOfUseBrick[StateOfUseBrick["USE_BRICK_IF"] = 5] = "USE_BRICK_IF";
18
- StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS"] = 6] = "USE_BRICK_SLOTS";
19
- StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS_ITEM"] = 7] = "USE_BRICK_SLOTS_ITEM";
20
- StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS_ITEM_BRICKS"] = 8] = "USE_BRICK_SLOTS_ITEM_BRICKS";
21
- StateOfUseBrick[StateOfUseBrick["USE_BRICK_SLOTS_ITEM_BRICKS_ITEM"] = 9] = "USE_BRICK_SLOTS_ITEM_BRICKS_ITEM";
22
- StateOfUseBrick[StateOfUseBrick["USE_BRICK_LIFECYCLE"] = 10] = "USE_BRICK_LIFECYCLE";
23
- StateOfUseBrick[StateOfUseBrick["USE_BRICK_DATA_SOURCE"] = 11] = "USE_BRICK_DATA_SOURCE";
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;AAepB,SAASE,uBAAuBA,CACrCC,KAAkC,EACzB;EACT,QAAQA,KAAK;IACX,KAAKH,eAAe,CAACI,oBAAoB;IACzC,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;AAEO,SAASC,sBAAsBA,CACpCN,KAAkC,EAClCO,OAAiB,EACjBC,GAAY,EACiB;EAC7B,IAAIT,uBAAuB,CAACC,KAAK,CAAC,EAAE;IAClC,OAAOA,KAAK;EACd;EACA,IAAIO,OAAO,EAAE;IACX,QAAQP,KAAK;MACX,KAAKH,eAAe,CAACY,SAAS;QAC5B,OAAOZ,eAAe,CAACa,cAAc;MACvC,KAAKb,eAAe,CAACc,2BAA2B;QAC9C,OAAOd,eAAe,CAACe,gCAAgC;IAAC;EAE9D,CAAC,MAAM;IACL,QAAQZ,KAAK;MACX,KAAKH,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,CAACI,oBAAoB;YAC7C,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
+ {"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"}
@@ -21,7 +21,7 @@ async function getArgsOfFlowApi(provider, originalArgs, method) {
21
21
  return originalArgs;
22
22
  }
23
23
  if (!provider.includes(":")) {
24
- throw new Error(`You're using legacy Custom API "${provider}" which is not supported in v3, please use Flow API instead`);
24
+ throw new Error(`You're using legacy Custom API "${provider}" which is dropped in v3, please use Flow API instead`);
25
25
  }
26
26
  const apiDefinition = await fetchFlowApiDefinition(provider);
27
27
  if (!apiDefinition) {
@@ -1 +1 @@
1
- {"version":3,"file":"FlowApi.js","names":["_jsYaml","_interopRequireDefault","require","_apiGatewaySdk","_CollectContracts","flowApiDefinitionPromiseMap","Map","isFlowApiProvider","provider","includes","getArgsOfFlowApi","originalArgs","method","Error","apiDefinition","fetchFlowApiDefinition","apiProfile","getApiProfileFromApiDefinition","getApiArgsFromApiProfile","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","yaml","safeLoad","schema","JSON_SCHEMA","json","endpoint","response","wrapper","toLowerCase","type","promise","get","_fetchFlowApiDefinition","set","namespaceName","nameWithVersion","split","getContract","namespaceId","contractData","ContractApi_searchSingleContract","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":["_jsYaml","_interopRequireDefault","require","_apiGatewaySdk","_CollectContracts","flowApiDefinitionPromiseMap","Map","isFlowApiProvider","provider","includes","getArgsOfFlowApi","originalArgs","method","Error","apiDefinition","fetchFlowApiDefinition","apiProfile","getApiProfileFromApiDefinition","getApiArgsFromApiProfile","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","yaml","safeLoad","schema","JSON_SCHEMA","json","endpoint","response","wrapper","toLowerCase","type","promise","get","_fetchFlowApiDefinition","set","namespaceName","nameWithVersion","split","getContract","namespaceId","contractData","ContractApi_searchSingleContract","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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"}
@@ -19,7 +19,7 @@ async function resolveData(resolveConf, runtimeContext, options) {
19
19
  } = resolveConf;
20
20
  const legacyProvider = resolveConf.provider;
21
21
  if (legacyProvider && !useProvider) {
22
- throw new Error(`You're using "provider: ${legacyProvider}" which is not supported in v3, please use "useProvider" instead`);
22
+ throw new Error(`You're using "provider: ${legacyProvider}" which is dropped in v3, please use "useProvider" instead`);
23
23
  }
24
24
  const [providerBrick, actualArgs] = await Promise.all([(0, _getProviderBrick.getProviderBrick)(useProvider), (0, _computeRealValue.asyncComputeRealValue)(args, runtimeContext)]);
25
25
  const promise = resolveByProvider(providerBrick, useProvider, method, actualArgs, options, args);
@@ -1 +1 @@
1
- {"version":3,"file":"resolveData.js","names":["_computeRealValue","require","_getProviderBrick","_FlowApi","cache","Map","resolveData","resolveConf","runtimeContext","options","useProvider","method","args","onReject","legacyProvider","provider","Error","providerBrick","actualArgs","Promise","all","getProviderBrick","asyncComputeRealValue","promise","resolveByProvider","transform","data","error","isHandleRejectByTransform","clearResolveCache","clear","brick","originalArgs","cacheKey","JSON","stringify","e","get","finalArgs","getArgsOfFlowApi","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 not supported 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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"}
1
+ {"version":3,"file":"resolveData.js","names":["_computeRealValue","require","_getProviderBrick","_FlowApi","cache","Map","resolveData","resolveConf","runtimeContext","options","useProvider","method","args","onReject","legacyProvider","provider","Error","providerBrick","actualArgs","Promise","all","getProviderBrick","asyncComputeRealValue","promise","resolveByProvider","transform","data","error","isHandleRejectByTransform","clearResolveCache","clear","brick","originalArgs","cacheKey","JSON","stringify","e","get","finalArgs","getArgsOfFlowApi","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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"}
@@ -18,6 +18,7 @@ var _handleHttpError = require("../handleHttpError.js");
18
18
  var _themeAndMode = require("../themeAndMode.js");
19
19
  var _enums = require("./enums.js");
20
20
  var _computeRealValue = require("./compute/computeRealValue.js");
21
+ var _isStrictMode = require("../isStrictMode.js");
21
22
  async function renderUseBrick(useBrick, data) {
22
23
  var _output$node;
23
24
  const runtimeContext = {
@@ -32,7 +33,18 @@ async function renderUseBrick(useBrick, data) {
32
33
  // Will set during `mountUseBrick`
33
34
  createPortal: null
34
35
  };
35
- const output = await (0, _Renderer.renderBrick)(renderRoot, useBrick, runtimeContext, rendererContext);
36
+ const transform = useBrick.transform;
37
+ const strict = (0, _isStrictMode.isStrictMode)();
38
+ if (transform) {
39
+ (0, _isStrictMode.warnAboutStrictMode)(strict, "`useBrick.transform`", 'please use "properties" instead, check your useBrick:', useBrick);
40
+ }
41
+ const output = await (0, _Renderer.renderBrick)(renderRoot, strict ? useBrick : {
42
+ ...useBrick,
43
+ properties: {
44
+ ...useBrick.properties,
45
+ ...transform
46
+ }
47
+ }, runtimeContext, rendererContext);
36
48
  (0, _loader.flushStableLoadBricks)();
37
49
  await Promise.all([...output.blockingList, ...[...runtimeContext.tplStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
38
50
  if ((_output$node = output.node) !== null && _output$node !== void 0 && _output$node.portal) {
@@ -82,8 +94,7 @@ let _rendererContext;
82
94
  function initializePreviewBootstrap(bootstrapData) {
83
95
  (0, _Runtime._internalApiSetBootstrapData)(bootstrapData);
84
96
  }
85
- async function renderPreviewBricks(bricks, mountPoints, options) {
86
- var _options$theme;
97
+ async function renderPreviewBricks(bricks, mountPoints, options = {}) {
87
98
  const runtimeContext = {
88
99
  pendingPermissionsPreCheck: [],
89
100
  tplStateStoreMap: new Map()
@@ -122,15 +133,20 @@ async function renderPreviewBricks(bricks, mountPoints, options) {
122
133
  previousRendererContext === null || previousRendererContext === void 0 ? void 0 : previousRendererContext.dispose();
123
134
  (0, _mount.unmountTree)(mountPoints.main);
124
135
  (0, _mount.unmountTree)(mountPoints.portal);
125
- (0, _themeAndMode.setTheme)((_options$theme = options === null || options === void 0 ? void 0 : options.theme) !== null && _options$theme !== void 0 ? _options$theme : "light");
126
- (0, _themeAndMode.setMode)("default");
127
- if (!failed) {
128
- rendererContext.dispatchBeforePageLoad();
136
+ if (options.sandbox) {
137
+ var _options$theme;
138
+ (0, _themeAndMode.setTheme)((_options$theme = options.theme) !== null && _options$theme !== void 0 ? _options$theme : "light");
139
+ (0, _themeAndMode.setMode)("default");
140
+ if (!failed) {
141
+ rendererContext.dispatchBeforePageLoad();
142
+ }
143
+ (0, _themeAndMode.applyTheme)();
144
+ (0, _themeAndMode.applyMode)();
129
145
  }
130
- (0, _themeAndMode.applyTheme)();
131
- (0, _themeAndMode.applyMode)();
132
146
  (0, _mount.mountTree)(renderRoot);
133
- window.scrollTo(0, 0);
147
+ if (options.sandbox) {
148
+ window.scrollTo(0, 0);
149
+ }
134
150
  if (!failed) {
135
151
  rendererContext.dispatchPageLoad();
136
152
  // rendererContext.dispatchAnchorLoad();
@@ -1 +1 @@
1
- {"version":3,"file":"secret_internals.js","names":["_loader","require","_Runtime","_Renderer","_RendererContext","_mount","_handleHttpError","_themeAndMode","_enums","_computeRealValue","renderUseBrick","useBrick","data","_output$node","runtimeContext","_internalApiGetRuntimeContext","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","RendererContext","renderRoot","tag","RenderTag","ROOT","createPortal","output","renderBrick","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","_options$theme","previousRendererContext","container","main","failed","renderBricks","push","error","BRICK","properties","textContent","httpErrorToString","return","menuRequests","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\";\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 output = await renderBrick(\n renderRoot,\n useBrick as BrickConf,\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 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 setTheme(options?.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n\n mountTree(renderRoot);\n\n window.scrollTo(0, 0);\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","_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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"}