@next-core/runtime 1.10.0 → 1.11.0

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 (62) hide show
  1. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +3 -2
  2. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  3. package/dist/cjs/internal/Router.js +5 -7
  4. package/dist/cjs/internal/Router.js.map +1 -1
  5. package/dist/cjs/internal/Runtime.js.map +1 -1
  6. package/dist/cjs/internal/bindListeners.js +5 -4
  7. package/dist/cjs/internal/bindListeners.js.map +1 -1
  8. package/dist/cjs/internal/checkPermissions.js +5 -5
  9. package/dist/cjs/internal/checkPermissions.js.map +1 -1
  10. package/dist/cjs/internal/compute/evaluate.js +6 -6
  11. package/dist/cjs/internal/compute/evaluate.js.map +1 -1
  12. package/dist/cjs/internal/data/getProviderBrick.js +6 -6
  13. package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
  14. package/dist/cjs/internal/data/resolveData.js +3 -2
  15. package/dist/cjs/internal/data/resolveData.js.map +1 -1
  16. package/dist/cjs/internal/hasInstalledApp.js +40 -0
  17. package/dist/cjs/internal/hasInstalledApp.js.map +1 -0
  18. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +3 -2
  19. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  20. package/dist/esm/internal/Router.js +6 -8
  21. package/dist/esm/internal/Router.js.map +1 -1
  22. package/dist/esm/internal/Runtime.js.map +1 -1
  23. package/dist/esm/internal/bindListeners.js +5 -4
  24. package/dist/esm/internal/bindListeners.js.map +1 -1
  25. package/dist/esm/internal/checkPermissions.js +5 -5
  26. package/dist/esm/internal/checkPermissions.js.map +1 -1
  27. package/dist/esm/internal/compute/evaluate.js +5 -5
  28. package/dist/esm/internal/compute/evaluate.js.map +1 -1
  29. package/dist/esm/internal/data/getProviderBrick.js +7 -7
  30. package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
  31. package/dist/esm/internal/data/resolveData.js +3 -2
  32. package/dist/esm/internal/data/resolveData.js.map +1 -1
  33. package/dist/esm/internal/hasInstalledApp.js +34 -0
  34. package/dist/esm/internal/hasInstalledApp.js.map +1 -0
  35. package/dist/types/internal/Runtime.d.ts +19 -2
  36. package/dist/types/internal/hasInstalledApp.d.ts +3 -0
  37. package/package.json +8 -9
  38. package/dist/cjs/internal/checkInstalledApps.js +0 -105
  39. package/dist/cjs/internal/checkInstalledApps.js.map +0 -1
  40. package/dist/cjs/internal/compute/collectMemberCallUsage.js +0 -30
  41. package/dist/cjs/internal/compute/collectMemberCallUsage.js.map +0 -1
  42. package/dist/cjs/internal/data/CollectContracts.js +0 -29
  43. package/dist/cjs/internal/data/CollectContracts.js.map +0 -1
  44. package/dist/cjs/internal/data/FlowApi.js +0 -150
  45. package/dist/cjs/internal/data/FlowApi.js.map +0 -1
  46. package/dist/cjs/internal/data/FlowApiProvider.js +0 -122
  47. package/dist/cjs/internal/data/FlowApiProvider.js.map +0 -1
  48. package/dist/esm/internal/checkInstalledApps.js +0 -100
  49. package/dist/esm/internal/checkInstalledApps.js.map +0 -1
  50. package/dist/esm/internal/compute/collectMemberCallUsage.js +0 -22
  51. package/dist/esm/internal/compute/collectMemberCallUsage.js.map +0 -1
  52. package/dist/esm/internal/data/CollectContracts.js +0 -20
  53. package/dist/esm/internal/data/CollectContracts.js.map +0 -1
  54. package/dist/esm/internal/data/FlowApi.js +0 -156
  55. package/dist/esm/internal/data/FlowApi.js.map +0 -1
  56. package/dist/esm/internal/data/FlowApiProvider.js +0 -122
  57. package/dist/esm/internal/data/FlowApiProvider.js.map +0 -1
  58. package/dist/types/internal/checkInstalledApps.d.ts +0 -6
  59. package/dist/types/internal/compute/collectMemberCallUsage.d.ts +0 -8
  60. package/dist/types/internal/data/CollectContracts.d.ts +0 -5
  61. package/dist/types/internal/data/FlowApi.d.ts +0 -30
  62. package/dist/types/internal/data/FlowApiProvider.d.ts +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"bindListeners.js","names":["isEvaluable","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","httpErrorToString","getArgsOfFlowApi","Notification","getFormStateStore","isObject","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","_ref","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","_handler$batch","_handler$batch2","_objectSpread","else","object","split","handleHistoryAction","args","callback","handleWindowAction","handleLocationAction","handleStorageAction","preventDefault","handleConsoleAction","handleMessageAction","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","theme","console","error","handleUseProviderAction","handleCustomAction","_x","_x2","_x3","_x4","_handleUseProviderAction","apply","arguments","_asyncToGenerator","providerBrick","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","_x5","_x6","_x7","_x8","_x9","_x10","_x11","_brickCallback","options","_poll","task","_ref2","computedArgs","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","isArray","every","ctxStore","tplStateStore","formStateStore","location","assign","storage","localStorage","sessionStorage","setItem","JSON","stringify","removeItem","show","message"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError, httpErrorToString } from \"../handleHttpError.js\";\nimport { getArgsOfFlowApi } from \"./data/FlowApi.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { isObject } from \"@next-core/utils/general\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"message.subscribe\":\n // case \"message.unsubscribe\":\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nasync function handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n try {\n const providerBrick = await getProviderBrick(handler.useProvider);\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n providerBrick,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(httpErrorToString(error));\n }\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n target: HTMLElement,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n if (typeof (target as any)[method] !== \"function\") {\n // eslint-disable-next-line no-console\n console.error(\"target has no method:\", {\n target,\n method: method,\n });\n return;\n }\n\n const task = async (): Promise<unknown> => {\n let computedArgs = argsFactory(\n handler.args,\n runtimeContext,\n event,\n options\n );\n if (isUseProviderHandler(handler)) {\n computedArgs = await getArgsOfFlowApi(\n handler.useProvider,\n computedArgs,\n method\n );\n }\n return (target as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n let poll: ProviderPollOptions | undefined;\n if (isUseProviderHandler(handler)) {\n poll = computeRealValue(handler.poll, { ...runtimeContext, event }) as\n | ProviderPollOptions\n | undefined;\n }\n\n if (poll?.enabled) {\n startPoll(task, pollableCallback, poll);\n } else {\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n batchUpdate(\n args,\n batch,\n \"replace\",\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"bindListeners.js","names":["isEvaluable","isObject","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","httpErrorToString","Notification","getFormStateStore","hooks","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","_ref","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","_handler$batch","_handler$batch2","_objectSpread","else","object","split","handleHistoryAction","args","callback","handleWindowAction","handleLocationAction","handleStorageAction","preventDefault","handleConsoleAction","handleMessageAction","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","theme","console","error","handleUseProviderAction","handleCustomAction","_x","_x2","_x3","_x4","_handleUseProviderAction","apply","arguments","_asyncToGenerator","providerBrick","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","_x5","_x6","_x7","_x8","_x9","_x10","_x11","_brickCallback","options","_poll","task","_ref2","_hooks$flowApi","computedArgs","flowApi","isFlowApiProvider","getArgsOfFlowApi","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","isArray","every","ctxStore","tplStateStore","formStateStore","location","assign","storage","localStorage","sessionStorage","setItem","JSON","stringify","removeItem","show","message"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError, httpErrorToString } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"message.subscribe\":\n // case \"message.unsubscribe\":\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nasync function handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n try {\n const providerBrick = await getProviderBrick(handler.useProvider);\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n providerBrick,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(httpErrorToString(error));\n }\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n target: HTMLElement,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n if (typeof (target as any)[method] !== \"function\") {\n // eslint-disable-next-line no-console\n console.error(\"target has no method:\", {\n target,\n method: method,\n });\n return;\n }\n\n const task = async (): Promise<unknown> => {\n let computedArgs = argsFactory(\n handler.args,\n runtimeContext,\n event,\n options\n );\n if (\n isUseProviderHandler(handler) &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n computedArgs,\n method\n );\n }\n return (target as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n let poll: ProviderPollOptions | undefined;\n if (isUseProviderHandler(handler)) {\n poll = computeRealValue(handler.poll, { ...runtimeContext, event }) as\n | ProviderPollOptions\n | undefined;\n }\n\n if (poll?.enabled) {\n startPoll(task, pollableCallback, poll);\n } else {\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n batchUpdate(\n args,\n batch,\n \"replace\",\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import { difference } from "lodash";
3
3
  import { scanPermissionActionsInAny, scanPermissionActionsInStoryboard } from "@next-core/utils/storyboard";
4
- import { PermissionApi_validatePermissions } from "@next-api-sdk/micro-app-sdk";
5
4
  import { getAuth, isLoggedIn } from "../auth.js";
6
5
  import { asyncComputeRealValue } from "./compute/computeRealValue.js";
6
+ import { hooks } from "./Runtime.js";
7
7
  var checkedPermissions = [];
8
8
  var permissionMap = new Map();
9
9
  export function preCheckPermissions(storyboard) {
10
- if (isLoggedIn() && !getAuth().isAdmin) {
10
+ if (hooks !== null && hooks !== void 0 && hooks.validatePermissions && isLoggedIn() && !getAuth().isAdmin) {
11
11
  var usedActions = scanPermissionActionsInStoryboard(storyboard);
12
12
  return validatePermissions(usedActions);
13
13
  }
@@ -17,7 +17,7 @@ export function preCheckPermissionsForBrickOrRoute(_x, _x2) {
17
17
  }
18
18
  function _preCheckPermissionsForBrickOrRoute() {
19
19
  _preCheckPermissionsForBrickOrRoute = _asyncToGenerator(function* (container, runtimeContext) {
20
- if (isLoggedIn() && !getAuth().isAdmin && Array.isArray(container.permissionsPreCheck)) {
20
+ if (hooks !== null && hooks !== void 0 && hooks.validatePermissions && isLoggedIn() && !getAuth().isAdmin && Array.isArray(container.permissionsPreCheck)) {
21
21
  var actions = yield asyncComputeRealValue(container.permissionsPreCheck, runtimeContext);
22
22
  return validatePermissions(actions);
23
23
  }
@@ -25,7 +25,7 @@ function _preCheckPermissionsForBrickOrRoute() {
25
25
  return _preCheckPermissionsForBrickOrRoute.apply(this, arguments);
26
26
  }
27
27
  export function preCheckPermissionsForAny(data) {
28
- if (isLoggedIn() && !getAuth().isAdmin) {
28
+ if (hooks !== null && hooks !== void 0 && hooks.validatePermissions && isLoggedIn() && !getAuth().isAdmin) {
29
29
  var usedActions = scanPermissionActionsInAny(data);
30
30
  return validatePermissions(usedActions);
31
31
  }
@@ -49,7 +49,7 @@ function _validatePermissions() {
49
49
  }
50
50
  checkedPermissions.push(...actions);
51
51
  try {
52
- var result = yield PermissionApi_validatePermissions({
52
+ var result = yield hooks.validatePermissions({
53
53
  actions
54
54
  });
55
55
  for (var item of result.actions) {
@@ -1 +1 @@
1
- {"version":3,"file":"checkPermissions.js","names":["difference","scanPermissionActionsInAny","scanPermissionActionsInStoryboard","PermissionApi_validatePermissions","getAuth","isLoggedIn","asyncComputeRealValue","checkedPermissions","permissionMap","Map","preCheckPermissions","storyboard","isAdmin","usedActions","validatePermissions","preCheckPermissionsForBrickOrRoute","_x","_x2","_preCheckPermissionsForBrickOrRoute","apply","arguments","_asyncToGenerator","container","runtimeContext","Array","isArray","permissionsPreCheck","actions","preCheckPermissionsForAny","data","_x3","_validatePermissions","length","push","result","item","set","action","authorizationStatus","console","error","concat","checkPermissions","_len","_key","get","undefined","resetPermissionPreChecks","clear"],"sources":["../../../src/internal/checkPermissions.ts"],"sourcesContent":["import { difference } from \"lodash\";\nimport {\n scanPermissionActionsInAny,\n scanPermissionActionsInStoryboard,\n} from \"@next-core/utils/storyboard\";\nimport type { BrickConf, RouteConf, Storyboard } from \"@next-core/types\";\nimport { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport { getAuth, isLoggedIn } from \"../auth.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\n\ntype PermissionStatus = \"authorized\" | \"unauthorized\" | \"undefined\";\n\nconst checkedPermissions: string[] = [];\nconst permissionMap = new Map<string, PermissionStatus>();\n\nexport function preCheckPermissions(\n storyboard: Storyboard\n): Promise<void> | undefined {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInStoryboard(storyboard);\n return validatePermissions(usedActions);\n }\n}\n\nexport async function preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n runtimeContext: RuntimeContext\n) {\n if (\n isLoggedIn() &&\n !getAuth().isAdmin &&\n Array.isArray(container.permissionsPreCheck)\n ) {\n const actions = (await asyncComputeRealValue(\n container.permissionsPreCheck,\n runtimeContext\n )) as string[];\n return validatePermissions(actions);\n }\n}\n\nexport function preCheckPermissionsForAny(\n data: unknown\n): Promise<void> | undefined {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInAny(data);\n return validatePermissions(usedActions);\n }\n}\n\nexport async function validatePermissions(\n usedActions: string[]\n): Promise<void> {\n // Do not request known actions.\n const actions = difference(usedActions, [...checkedPermissions]);\n if (actions.length === 0) {\n return;\n }\n checkedPermissions.push(...actions);\n try {\n const result = await PermissionApi_validatePermissions({ actions });\n for (const item of result.actions!) {\n permissionMap.set(item.action!, item.authorizationStatus!);\n if (item.authorizationStatus === \"undefined\") {\n // eslint-disable-next-line no-console\n console.error(`Undefined permission action: \"${item.action}\"`);\n }\n }\n } catch (error) {\n // Allow pre-check to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Pre-check permissions failed\", error);\n }\n}\n\n/**\n * Check the current logged-in user whether to have all\n * permissions of actions passed to it.\n *\n * @param actions - Required permission actions.\n */\nexport function checkPermissions(...actions: string[]): boolean {\n if (!isLoggedIn()) {\n return false;\n }\n\n if (getAuth().isAdmin) {\n return true;\n }\n\n for (const action of actions) {\n // Only **exclusively authorized** permissions are ok.\n // Those scenarios below will fail:\n // - unauthorized actions (pre-check results)\n // - undefined actions (pre-check results)\n // - Un-pre-checked or pre-check failed\n switch (permissionMap.get(action)) {\n case \"unauthorized\":\n case \"undefined\":\n return false;\n case undefined:\n // eslint-disable-next-line no-console\n console.error(\n `Un-checked permission action: \"${action}\", please make sure the permission to check is defined in permissionsPreCheck.`\n );\n return false;\n }\n }\n return true;\n}\n\n/**\n * Reset permission pre-checks after logged-out.\n */\nexport function resetPermissionPreChecks(): void {\n checkedPermissions.length = 0;\n permissionMap.clear();\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"checkPermissions.js","names":["difference","scanPermissionActionsInAny","scanPermissionActionsInStoryboard","getAuth","isLoggedIn","asyncComputeRealValue","hooks","checkedPermissions","permissionMap","Map","preCheckPermissions","storyboard","validatePermissions","isAdmin","usedActions","preCheckPermissionsForBrickOrRoute","_x","_x2","_preCheckPermissionsForBrickOrRoute","apply","arguments","_asyncToGenerator","container","runtimeContext","Array","isArray","permissionsPreCheck","actions","preCheckPermissionsForAny","data","_x3","_validatePermissions","length","push","result","item","set","action","authorizationStatus","console","error","concat","checkPermissions","_len","_key","get","undefined","resetPermissionPreChecks","clear"],"sources":["../../../src/internal/checkPermissions.ts"],"sourcesContent":["import { difference } from \"lodash\";\nimport {\n scanPermissionActionsInAny,\n scanPermissionActionsInStoryboard,\n} from \"@next-core/utils/storyboard\";\nimport type { BrickConf, RouteConf, Storyboard } from \"@next-core/types\";\nimport { getAuth, isLoggedIn } from \"../auth.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\nimport { hooks } from \"./Runtime.js\";\n\ntype PermissionStatus = \"authorized\" | \"unauthorized\" | \"undefined\";\n\nconst checkedPermissions: string[] = [];\nconst permissionMap = new Map<string, PermissionStatus>();\n\nexport function preCheckPermissions(\n storyboard: Storyboard\n): Promise<void> | undefined {\n if (hooks?.validatePermissions && isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInStoryboard(storyboard);\n return validatePermissions(usedActions);\n }\n}\n\nexport async function preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n runtimeContext: RuntimeContext\n) {\n if (\n hooks?.validatePermissions &&\n isLoggedIn() &&\n !getAuth().isAdmin &&\n Array.isArray(container.permissionsPreCheck)\n ) {\n const actions = (await asyncComputeRealValue(\n container.permissionsPreCheck,\n runtimeContext\n )) as string[];\n return validatePermissions(actions);\n }\n}\n\nexport function preCheckPermissionsForAny(\n data: unknown\n): Promise<void> | undefined {\n if (hooks?.validatePermissions && isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInAny(data);\n return validatePermissions(usedActions);\n }\n}\n\nexport async function validatePermissions(\n usedActions: string[]\n): Promise<void> {\n // Do not request known actions.\n const actions = difference(usedActions, [...checkedPermissions]);\n if (actions.length === 0) {\n return;\n }\n checkedPermissions.push(...actions);\n try {\n const result = await hooks!.validatePermissions!({ actions });\n for (const item of result.actions!) {\n permissionMap.set(item.action!, item.authorizationStatus!);\n if (item.authorizationStatus === \"undefined\") {\n // eslint-disable-next-line no-console\n console.error(`Undefined permission action: \"${item.action}\"`);\n }\n }\n } catch (error) {\n // Allow pre-check to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Pre-check permissions failed\", error);\n }\n}\n\n/**\n * Check the current logged-in user whether to have all\n * permissions of actions passed to it.\n *\n * @param actions - Required permission actions.\n */\nexport function checkPermissions(...actions: string[]): boolean {\n if (!isLoggedIn()) {\n return false;\n }\n\n if (getAuth().isAdmin) {\n return true;\n }\n\n for (const action of actions) {\n // Only **exclusively authorized** permissions are ok.\n // Those scenarios below will fail:\n // - unauthorized actions (pre-check results)\n // - undefined actions (pre-check results)\n // - Un-pre-checked or pre-check failed\n switch (permissionMap.get(action)) {\n case \"unauthorized\":\n case \"undefined\":\n return false;\n case undefined:\n // eslint-disable-next-line no-console\n console.error(\n `Un-checked permission action: \"${action}\", please make sure the permission to check is defined in permissionsPreCheck.`\n );\n return false;\n }\n }\n return true;\n}\n\n/**\n * Reset permission pre-checks after logged-out.\n */\nexport function resetPermissionPreChecks(): void {\n checkedPermissions.length = 0;\n permissionMap.clear();\n}\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { cook, preevaluate, shouldAllowRecursiveEvaluations } from "@next-core/c
4
4
  import { loadProcessorsImperatively } from "@next-core/loader";
5
5
  import { supply } from "@next-core/supply";
6
6
  import { hasOwnProperty } from "@next-core/utils/general";
7
- import { strictCollectMemberUsage } from "@next-core/utils/storyboard";
7
+ import { strictCollectMemberUsage, collectAppGetMenuUsage, collectInstalledAppsHasUsage } from "@next-core/utils/storyboard";
8
8
  import { cloneDeep, omit } from "lodash";
9
9
  import { customProcessors } from "../../CustomProcessors.js";
10
10
  import { checkPermissionsUsage, storyboardFunctions } from "./StoryboardFunctions.js";
@@ -13,14 +13,13 @@ import { getDynamicReadOnlyProxy, getReadOnlyProxy } from "../proxyFactories.js"
13
13
  import { getDevHook } from "../devtools.js";
14
14
  import { getMedia } from "../mediaQuery.js";
15
15
  import { getStorageItem } from "./getStorageItem.js";
16
- import { getBrickPackages, getRuntime } from "../Runtime.js";
16
+ import { getBrickPackages, getRuntime, hooks } from "../Runtime.js";
17
17
  import { getTplStateStore } from "../CustomTemplates/utils.js";
18
18
  import { widgetFunctions } from "./WidgetFunctions.js";
19
- import { collectAppGetMenuUsage, collectInstalledAppsHasUsage } from "./collectMemberCallUsage.js";
20
19
  import { fetchMenuById, getMenuById } from "../menu/fetchMenuById.js";
21
20
  import { widgetI18nFactory } from "./WidgetI18n.js";
22
21
  import { widgetImagesFactory } from "./images.js";
23
- import { hasInstalledApp, waitForCheckingApps } from "../checkInstalledApps.js";
22
+ import { hasInstalledApp } from "../hasInstalledApp.js";
24
23
  import { isStrictMode, warnAboutStrictMode } from "../../isStrictMode.js";
25
24
  import { getFormStateStore } from "../FormRenderer/utils.js";
26
25
  var symbolForRaw = Symbol.for("pre.evaluated.raw");
@@ -197,8 +196,9 @@ runtimeContext) {
197
196
  blockingList.push(Promise.all(usedMenuIds.map(menuId => fetchMenuById(menuId, runtimeContext))));
198
197
  }
199
198
  if (hasAppUsage.usedArgs.size > 0) {
199
+ var _hooks$checkInstalled;
200
200
  // Only wait for specific apps
201
- blockingList.push(waitForCheckingApps([...hasAppUsage.usedArgs]));
201
+ blockingList.push(hooks === null || hooks === void 0 ? void 0 : (_hooks$checkInstalled = hooks.checkInstalledApps) === null || _hooks$checkInstalled === void 0 ? void 0 : _hooks$checkInstalled.waitForCheckingApps([...hasAppUsage.usedArgs]));
202
202
  }
203
203
  }
204
204
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","cloneDeep","omit","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","getDevHook","getMedia","getStorageItem","getBrickPackages","getRuntime","getTplStateStore","widgetFunctions","collectAppGetMenuUsage","collectInstalledAppsHasUsage","fetchMenuById","getMenuById","widgetI18nFactory","widgetImagesFactory","hasInstalledApp","waitForCheckingApps","isStrictMode","warnAboutStrictMode","getFormStateStore","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","_x","_x2","_x3","_asyncEvaluate","apply","arguments","_asyncToGenerator","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","length","undefined","isAsync","passByRuntimeContext","_objectSpread","menuUsage","usedArgs","Set","hasAppUsage","precooked","withParent","hooks","beforeVisitGlobal","node","parent","message","concat","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","Object","keys","usedCtx","usedProcessors","usedStates","tplStateStore","strict","usedFormStates","formStateStore","devHook","push","ctxStore","waitFor","usedTpls","tpl","add","attemptToCheckPermissions","usedFunctions","pendingPermissionsPreCheck","size","usedMenuIds","map","menuId","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","getMenu","get","target","key","getValue","ownKeys","Array","from","console","forEachItem","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","t","k","fromEntries","getAll","assign","appendI18nNamespace","result","expression","source"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep, omit } 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\";\nimport { getFormStateStore } from \"../FormRenderer/utils.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 passByRuntimeContext = omit(runtimeContext, [\n \"pendingPermissionsPreCheck\",\n \"tplStateStoreMap\",\n \"tplStateStoreScope\",\n \"formStateStoreMap\",\n \"formStateStoreScope\",\n ]);\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 let usedFormStates: Set<string>;\n let formStateStore: DataStore<\"FORM_STATE\"> | undefined;\n if (attemptToVisitGlobals.has(\"FORM_STATE\")) {\n formStateStore = getFormStateStore(\n runtimeContext,\n \"FORM_STATE\",\n `: \"${raw}\"`\n );\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 (formStateStore) {\n usedFormStates = strictCollectMemberUsage(raw, \"FORM_STATE\");\n isAsync && blockingList.push(formStateStore.waitFor(usedFormStates));\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 \"FORM_STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return formStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedFormStates);\n },\n });\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","collectAppGetMenuUsage","collectInstalledAppsHasUsage","cloneDeep","omit","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","getDevHook","getMedia","getStorageItem","getBrickPackages","getRuntime","hooks","getTplStateStore","widgetFunctions","fetchMenuById","getMenuById","widgetI18nFactory","widgetImagesFactory","hasInstalledApp","isStrictMode","warnAboutStrictMode","getFormStateStore","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","_x","_x2","_x3","_asyncEvaluate","apply","arguments","_asyncToGenerator","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","length","undefined","isAsync","passByRuntimeContext","_objectSpread","menuUsage","usedArgs","Set","hasAppUsage","precooked","withParent","beforeVisitGlobal","node","parent","message","concat","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","Object","keys","usedCtx","usedProcessors","usedStates","tplStateStore","strict","usedFormStates","formStateStore","devHook","push","ctxStore","waitFor","usedTpls","tpl","add","attemptToCheckPermissions","usedFunctions","pendingPermissionsPreCheck","size","usedMenuIds","map","menuId","_hooks$checkInstalled","checkInstalledApps","waitForCheckingApps","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","getMenu","get","target","key","getValue","ownKeys","Array","from","console","forEachItem","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","t","k","fromEntries","getAll","assign","appendI18nNamespace","result","expression","source"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport {\n strictCollectMemberUsage,\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep, omit } 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, hooks } from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport { fetchMenuById, getMenuById } from \"../menu/fetchMenuById.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { widgetImagesFactory } from \"./images.js\";\nimport { hasInstalledApp } from \"../hasInstalledApp.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\nimport { getFormStateStore } from \"../FormRenderer/utils.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 passByRuntimeContext = omit(runtimeContext, [\n \"pendingPermissionsPreCheck\",\n \"tplStateStoreMap\",\n \"tplStateStoreScope\",\n \"formStateStoreMap\",\n \"formStateStoreScope\",\n ]);\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 let usedFormStates: Set<string>;\n let formStateStore: DataStore<\"FORM_STATE\"> | undefined;\n if (attemptToVisitGlobals.has(\"FORM_STATE\")) {\n formStateStore = getFormStateStore(\n runtimeContext,\n \"FORM_STATE\",\n `: \"${raw}\"`\n );\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 (formStateStore) {\n usedFormStates = strictCollectMemberUsage(raw, \"FORM_STATE\");\n isAsync && blockingList.push(formStateStore.waitFor(usedFormStates));\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(\n hooks?.checkInstalledApps?.waitForCheckingApps([\n ...hasAppUsage.usedArgs,\n ])\n );\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 \"FORM_STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return formStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedFormStates);\n },\n });\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":"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"}
@@ -1,24 +1,24 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import { loadBricksImperatively } from "@next-core/loader";
3
- import { isFlowApiProvider } from "./FlowApi.js";
4
- import { FLOW_API_PROVIDER, registerFlowApiProvider } from "./FlowApiProvider.js";
5
- import { getBrickPackages } from "../Runtime.js";
3
+ import { getBrickPackages, hooks } from "../Runtime.js";
6
4
  var pool = new Map();
7
5
  export function getProviderBrick(_x) {
8
6
  return _getProviderBrick.apply(this, arguments);
9
7
  }
10
8
  function _getProviderBrick() {
11
9
  _getProviderBrick = _asyncToGenerator(function* (provider) {
12
- if (isFlowApiProvider(provider)) {
13
- provider = FLOW_API_PROVIDER;
10
+ var _hooks$flowApi;
11
+ var isFlowApi = hooks === null || hooks === void 0 ? void 0 : (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0 ? void 0 : _hooks$flowApi.isFlowApiProvider(provider);
12
+ if (isFlowApi) {
13
+ provider = hooks.flowApi.FLOW_API_PROVIDER;
14
14
  }
15
15
  var brick = pool.get(provider);
16
16
  if (brick) {
17
17
  return brick;
18
18
  }
19
19
  if (provider.includes("-") && !customElements.get(provider)) {
20
- if (provider === FLOW_API_PROVIDER) {
21
- registerFlowApiProvider();
20
+ if (isFlowApi) {
21
+ hooks.flowApi.registerFlowApiProvider();
22
22
  } else {
23
23
  yield loadBricksImperatively([provider], getBrickPackages());
24
24
  if (!customElements.get(provider)) {
@@ -1 +1 @@
1
- {"version":3,"file":"getProviderBrick.js","names":["loadBricksImperatively","isFlowApiProvider","FLOW_API_PROVIDER","registerFlowApiProvider","getBrickPackages","pool","Map","getProviderBrick","_x","_getProviderBrick","apply","arguments","_asyncToGenerator","provider","brick","get","includes","customElements","Error","concat","document","createElement","set"],"sources":["../../../../src/internal/data/getProviderBrick.ts"],"sourcesContent":["import { loadBricksImperatively } from \"@next-core/loader\";\nimport { isFlowApiProvider } from \"./FlowApi.js\";\nimport {\n FLOW_API_PROVIDER,\n registerFlowApiProvider,\n} from \"./FlowApiProvider.js\";\nimport { getBrickPackages } from \"../Runtime.js\";\n\nconst pool = new Map<string, HTMLElement>();\nexport async function getProviderBrick(provider: string): Promise<HTMLElement> {\n if (isFlowApiProvider(provider)) {\n provider = FLOW_API_PROVIDER;\n }\n\n let brick = pool.get(provider);\n if (brick) {\n return brick;\n }\n\n if (provider.includes(\"-\") && !customElements.get(provider)) {\n if (provider === FLOW_API_PROVIDER) {\n registerFlowApiProvider();\n } else {\n await loadBricksImperatively([provider], getBrickPackages());\n\n if (!customElements.get(provider)) {\n throw new Error(`Provider not defined: \"${provider}\".`);\n }\n }\n }\n\n brick = document.createElement(provider);\n pool.set(provider, brick);\n return brick;\n}\n"],"mappings":";AAAA,SAASA,sBAAsB,QAAQ,mBAAmB;AAC1D,SAASC,iBAAiB,QAAQ,cAAc;AAChD,SACEC,iBAAiB,EACjBC,uBAAuB,QAClB,sBAAsB;AAC7B,SAASC,gBAAgB,QAAQ,eAAe;AAEhD,IAAMC,IAAI,GAAG,IAAIC,GAAG,EAAuB;AAC3C,gBAAsBC,gBAAgBA,CAAAC,EAAA;EAAA,OAAAC,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAyBrC,SAAAF,kBAAA;EAAAA,iBAAA,GAAAG,iBAAA,CAzBM,WAAgCC,QAAgB,EAAwB;IAC7E,IAAIZ,iBAAiB,CAACY,QAAQ,CAAC,EAAE;MAC/BA,QAAQ,GAAGX,iBAAiB;IAC9B;IAEA,IAAIY,KAAK,GAAGT,IAAI,CAACU,GAAG,CAACF,QAAQ,CAAC;IAC9B,IAAIC,KAAK,EAAE;MACT,OAAOA,KAAK;IACd;IAEA,IAAID,QAAQ,CAACG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAACC,cAAc,CAACF,GAAG,CAACF,QAAQ,CAAC,EAAE;MAC3D,IAAIA,QAAQ,KAAKX,iBAAiB,EAAE;QAClCC,uBAAuB,EAAE;MAC3B,CAAC,MAAM;QACL,MAAMH,sBAAsB,CAAC,CAACa,QAAQ,CAAC,EAAET,gBAAgB,EAAE,CAAC;QAE5D,IAAI,CAACa,cAAc,CAACF,GAAG,CAACF,QAAQ,CAAC,EAAE;UACjC,MAAM,IAAIK,KAAK,4BAAAC,MAAA,CAA2BN,QAAQ,SAAK;QACzD;MACF;IACF;IAEAC,KAAK,GAAGM,QAAQ,CAACC,aAAa,CAACR,QAAQ,CAAC;IACxCR,IAAI,CAACiB,GAAG,CAACT,QAAQ,EAAEC,KAAK,CAAC;IACzB,OAAOA,KAAK;EACd,CAAC;EAAA,OAAAL,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"file":"getProviderBrick.js","names":["loadBricksImperatively","getBrickPackages","hooks","pool","Map","getProviderBrick","_x","_getProviderBrick","apply","arguments","_asyncToGenerator","provider","_hooks$flowApi","isFlowApi","flowApi","isFlowApiProvider","FLOW_API_PROVIDER","brick","get","includes","customElements","registerFlowApiProvider","Error","concat","document","createElement","set"],"sources":["../../../../src/internal/data/getProviderBrick.ts"],"sourcesContent":["import { loadBricksImperatively } from \"@next-core/loader\";\nimport { getBrickPackages, hooks } from \"../Runtime.js\";\n\nconst pool = new Map<string, HTMLElement>();\nexport async function getProviderBrick(provider: string): Promise<HTMLElement> {\n const isFlowApi = hooks?.flowApi?.isFlowApiProvider(provider);\n if (isFlowApi) {\n provider = hooks!.flowApi!.FLOW_API_PROVIDER;\n }\n\n let brick = pool.get(provider);\n if (brick) {\n return brick;\n }\n\n if (provider.includes(\"-\") && !customElements.get(provider)) {\n if (isFlowApi) {\n hooks!.flowApi!.registerFlowApiProvider();\n } else {\n await loadBricksImperatively([provider], getBrickPackages());\n\n if (!customElements.get(provider)) {\n throw new Error(`Provider not defined: \"${provider}\".`);\n }\n }\n }\n\n brick = document.createElement(provider);\n pool.set(provider, brick);\n return brick;\n}\n"],"mappings":";AAAA,SAASA,sBAAsB,QAAQ,mBAAmB;AAC1D,SAASC,gBAAgB,EAAEC,KAAK,QAAQ,eAAe;AAEvD,IAAMC,IAAI,GAAG,IAAIC,GAAG,EAAuB;AAC3C,gBAAsBC,gBAAgBA,CAAAC,EAAA;EAAA,OAAAC,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AA0BrC,SAAAF,kBAAA;EAAAA,iBAAA,GAAAG,iBAAA,CA1BM,WAAgCC,QAAgB,EAAwB;IAAA,IAAAC,cAAA;IAC7E,IAAMC,SAAS,GAAGX,KAAK,aAALA,KAAK,wBAAAU,cAAA,GAALV,KAAK,CAAEY,OAAO,cAAAF,cAAA,uBAAdA,cAAA,CAAgBG,iBAAiB,CAACJ,QAAQ,CAAC;IAC7D,IAAIE,SAAS,EAAE;MACbF,QAAQ,GAAGT,KAAK,CAAEY,OAAO,CAAEE,iBAAiB;IAC9C;IAEA,IAAIC,KAAK,GAAGd,IAAI,CAACe,GAAG,CAACP,QAAQ,CAAC;IAC9B,IAAIM,KAAK,EAAE;MACT,OAAOA,KAAK;IACd;IAEA,IAAIN,QAAQ,CAACQ,QAAQ,CAAC,GAAG,CAAC,IAAI,CAACC,cAAc,CAACF,GAAG,CAACP,QAAQ,CAAC,EAAE;MAC3D,IAAIE,SAAS,EAAE;QACbX,KAAK,CAAEY,OAAO,CAAEO,uBAAuB,EAAE;MAC3C,CAAC,MAAM;QACL,MAAMrB,sBAAsB,CAAC,CAACW,QAAQ,CAAC,EAAEV,gBAAgB,EAAE,CAAC;QAE5D,IAAI,CAACmB,cAAc,CAACF,GAAG,CAACP,QAAQ,CAAC,EAAE;UACjC,MAAM,IAAIW,KAAK,4BAAAC,MAAA,CAA2BZ,QAAQ,SAAK;QACzD;MACF;IACF;IAEAM,KAAK,GAAGO,QAAQ,CAACC,aAAa,CAACd,QAAQ,CAAC;IACxCR,IAAI,CAACuB,GAAG,CAACf,QAAQ,EAAEM,KAAK,CAAC;IACzB,OAAOA,KAAK;EACd,CAAC;EAAA,OAAAV,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
@@ -2,7 +2,7 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
3
  import { asyncComputeRealValue } from "../compute/computeRealValue.js";
4
4
  import { getProviderBrick } from "./getProviderBrick.js";
5
- import { getArgsOfFlowApi } from "./FlowApi.js";
5
+ import { hooks } from "../Runtime.js";
6
6
  var cache = new Map();
7
7
  export function resolveData(_x, _x2, _x3) {
8
8
  return _resolveData.apply(this, arguments);
@@ -86,7 +86,8 @@ function _resolveByProvider() {
86
86
  }
87
87
  if (!promise) {
88
88
  promise = _asyncToGenerator(function* () {
89
- var finalArgs = yield getArgsOfFlowApi(useProvider, args, method);
89
+ var _hooks$flowApi;
90
+ var finalArgs = hooks !== null && hooks !== void 0 && (_hooks$flowApi = hooks.flowApi) !== null && _hooks$flowApi !== void 0 && _hooks$flowApi.isFlowApiProvider(useProvider) ? yield hooks.flowApi.getArgsOfFlowApi(useProvider, args, method) : args;
90
91
  return brick.resolve(...finalArgs);
91
92
  })();
92
93
  cache.set(cacheKey, promise);