@next-core/runtime 1.1.1 → 1.2.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 (31) hide show
  1. package/dist/cjs/index.js +9 -1
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +3 -0
  4. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  5. package/dist/cjs/internal/Router.js +2 -1
  6. package/dist/cjs/internal/Router.js.map +1 -1
  7. package/dist/cjs/internal/compute/evaluate.js +1 -0
  8. package/dist/cjs/internal/compute/evaluate.js.map +1 -1
  9. package/dist/cjs/internal/insertPreviewRoutes.js +34 -0
  10. package/dist/cjs/internal/insertPreviewRoutes.js.map +1 -0
  11. package/dist/cjs/internal/interfaces.js.map +1 -1
  12. package/dist/cjs/internal/secret_internals.js +96 -3
  13. package/dist/cjs/internal/secret_internals.js.map +1 -1
  14. package/dist/esm/index.js +1 -0
  15. package/dist/esm/index.js.map +1 -1
  16. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +3 -0
  17. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  18. package/dist/esm/internal/Router.js +2 -1
  19. package/dist/esm/internal/Router.js.map +1 -1
  20. package/dist/esm/internal/compute/evaluate.js +3 -2
  21. package/dist/esm/internal/compute/evaluate.js.map +1 -1
  22. package/dist/esm/internal/insertPreviewRoutes.js +28 -0
  23. package/dist/esm/internal/insertPreviewRoutes.js.map +1 -0
  24. package/dist/esm/internal/interfaces.js.map +1 -1
  25. package/dist/esm/internal/secret_internals.js +88 -5
  26. package/dist/esm/internal/secret_internals.js.map +1 -1
  27. package/dist/types/index.d.ts +1 -0
  28. package/dist/types/internal/insertPreviewRoutes.d.ts +2 -0
  29. package/dist/types/internal/interfaces.d.ts +1 -0
  30. package/dist/types/internal/secret_internals.d.ts +11 -1
  31. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","cloneDeep","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","getDevHook","getMedia","getStorageItem","getBrickPackages","getRuntime","getTplStateStore","widgetFunctions","collectAppGetMenuUsage","collectInstalledAppsHasUsage","fetchMenuById","getMenuById","widgetI18nFactory","widgetImagesFactory","hasInstalledApp","waitForCheckingApps","isStrictMode","warnAboutStrictMode","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","_x","_x2","_x3","_asyncEvaluate","apply","arguments","_asyncToGenerator","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","length","undefined","isAsync","pendingPermissionsPreCheck","_1","tplStateStoreMap","_2","passByRuntimeContext","_objectWithoutProperties","_excluded","_objectSpread","menuUsage","usedArgs","Set","hasAppUsage","precooked","withParent","hooks","beforeVisitGlobal","node","parent","message","concat","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","Object","keys","usedCtx","usedProcessors","usedStates","tplStateStore","strict","devHook","push","ctxStore","waitFor","usedTpls","tpl","add","attemptToCheckPermissions","usedFunctions","size","usedMenuIds","map","menuId","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","getMenu","get","target","key","getValue","ownKeys","Array","from","console","forEachItem","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","t","k","fromEntries","getAll","assign","appendI18nNamespace","result","expression","source"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep } from \"lodash\";\nimport { customProcessors } from \"../../CustomProcessors.js\";\nimport {\n checkPermissionsUsage,\n storyboardFunctions,\n} from \"./StoryboardFunctions.js\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals.js\";\nimport {\n getDynamicReadOnlyProxy,\n getReadOnlyProxy,\n} from \"../proxyFactories.js\";\nimport { getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport { getBrickPackages, getRuntime } from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport {\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"./collectMemberCallUsage.js\";\nimport { fetchMenuById, getMenuById } from \"../menu/fetchMenuById.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { widgetImagesFactory } from \"./images.js\";\nimport { hasInstalledApp, waitForCheckingApps } from \"../checkInstalledApps.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: RuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function getPreEvaluatedRaw(pre: PreEvaluated): string {\n return pre[symbolForRaw];\n}\n\nexport function shouldDismissMarkingComputed(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\nexport async function asyncEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { blockingList, run } = lowLevelEvaluate(\n raw,\n runtimeContext,\n options,\n true\n );\n await Promise.all(blockingList);\n return run();\n}\n\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { run } = lowLevelEvaluate(raw, runtimeContext, options, false);\n return run();\n}\n\nfunction lowLevelEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options: EvaluateOptions = {},\n isAsync?: boolean\n): {\n blockingList: (Promise<unknown> | undefined)[];\n run: Function;\n} {\n const blockingList: (Promise<unknown> | undefined)[] = [];\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n\n const {\n pendingPermissionsPreCheck: _1,\n tplStateStoreMap: _2,\n ...passByRuntimeContext\n } = runtimeContext;\n\n runtimeContext = {\n ...raw[symbolForContext],\n ...passByRuntimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // Collect `APP.getMenu(...)` usage before evaluating.\n const menuUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n const hasAppUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n collectAppGetMenuUsage(menuUsage, node, parent!);\n collectInstalledAppsHasUsage(hasAppUsage, node, parent!);\n },\n },\n });\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: {} },\n // error: message,\n // });\n // return;\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n\n if (menuUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n if (hasAppUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n const globalVariables: Record<string, unknown> = {};\n const { attemptToVisitGlobals } = precooked;\n\n // Ignore evaluating if required `event/DATA` is missing in\n // context. Since they are are provided in different context, whenever\n // missing one of them, memorize the current context for later consuming.\n if (\n options.lazy ||\n (attemptToVisitGlobals.has(\"EVENT\") &&\n !hasOwnProperty(runtimeContext, \"event\")) ||\n (attemptToVisitGlobals.has(\"DATA\") &&\n !hasOwnProperty(runtimeContext, \"data\"))\n ) {\n return {\n blockingList,\n run() {\n return Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n },\n };\n }\n\n let usedCtx: Set<string>;\n let usedProcessors: Set<string>;\n let usedStates: Set<string>;\n let tplStateStore: DataStore<\"STATE\"> | undefined;\n const strict = isStrictMode(runtimeContext);\n\n // For existed TPL usage, treat it as a STATE.\n if (\n attemptToVisitGlobals.has(\"STATE\") ||\n (!strict && attemptToVisitGlobals.has(\"TPL\"))\n ) {\n tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${raw}\"`);\n }\n\n const devHook = getDevHook();\n if (isAsync || devHook) {\n if (attemptToVisitGlobals.has(\"CTX\")) {\n usedCtx = strictCollectMemberUsage(raw, \"CTX\");\n isAsync && blockingList.push(runtimeContext.ctxStore.waitFor(usedCtx));\n }\n\n if (tplStateStore) {\n usedStates = strictCollectMemberUsage(raw, \"STATE\");\n // istanbul ignore if\n if (!strict) {\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\n }\n }\n isAsync && blockingList.push(tplStateStore.waitFor(usedStates));\n }\n\n if (attemptToVisitGlobals.has(\"PROCESSORS\")) {\n usedProcessors = strictCollectMemberUsage(raw, \"PROCESSORS\", 2);\n isAsync &&\n blockingList.push(\n loadProcessorsImperatively(usedProcessors, getBrickPackages())\n );\n }\n }\n\n if (isAsync) {\n let attemptToCheckPermissions = attemptToVisitGlobals.has(\"PERMISSIONS\");\n // There maybe `PERMISSIONS.check()` usage in functions\n if (!attemptToCheckPermissions && attemptToVisitGlobals.has(\"FN\")) {\n const usedFunctions = [...strictCollectMemberUsage(raw, \"FN\")];\n attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);\n }\n\n if (attemptToCheckPermissions) {\n blockingList.push(...runtimeContext.pendingPermissionsPreCheck);\n }\n\n if (menuUsage.usedArgs.size > 0) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) => fetchMenuById(menuId, runtimeContext))\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(waitForCheckingApps([...hasAppUsage.usedArgs]));\n }\n }\n\n return {\n blockingList,\n run() {\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n ctxStore,\n data,\n event,\n } = runtimeContext;\n const app = runtimeContext.overrideApp ?? currentApp;\n\n for (const variableName of attemptToVisitGlobals) {\n switch (variableName) {\n // case \"ALIAS\":\n case \"ANCHOR\":\n globalVariables[variableName] = location.hash\n ? location.hash.substring(1)\n : null;\n break;\n case \"APP\":\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedCtx);\n },\n });\n break;\n case \"DATA\":\n globalVariables[variableName] = data;\n break;\n case \"EVENT\":\n globalVariables[variableName] = event;\n break;\n case \"FLAGS\":\n globalVariables[variableName] = getReadOnlyProxy(flags);\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","cloneDeep","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","getDevHook","getMedia","getStorageItem","getBrickPackages","getRuntime","getTplStateStore","widgetFunctions","collectAppGetMenuUsage","collectInstalledAppsHasUsage","fetchMenuById","getMenuById","widgetI18nFactory","widgetImagesFactory","hasInstalledApp","waitForCheckingApps","isStrictMode","warnAboutStrictMode","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","_x","_x2","_x3","_asyncEvaluate","apply","arguments","_asyncToGenerator","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","length","undefined","isAsync","pendingPermissionsPreCheck","_1","tplStateStoreMap","_2","tplStateStoreScope","_3","passByRuntimeContext","_objectWithoutProperties","_excluded","_objectSpread","menuUsage","usedArgs","Set","hasAppUsage","precooked","withParent","hooks","beforeVisitGlobal","node","parent","message","concat","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","Object","keys","usedCtx","usedProcessors","usedStates","tplStateStore","strict","devHook","push","ctxStore","waitFor","usedTpls","tpl","add","attemptToCheckPermissions","usedFunctions","size","usedMenuIds","map","menuId","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","getMenu","get","target","key","getValue","ownKeys","Array","from","console","forEachItem","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","t","k","fromEntries","getAll","assign","appendI18nNamespace","result","expression","source"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep } from \"lodash\";\nimport { customProcessors } from \"../../CustomProcessors.js\";\nimport {\n checkPermissionsUsage,\n storyboardFunctions,\n} from \"./StoryboardFunctions.js\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals.js\";\nimport {\n getDynamicReadOnlyProxy,\n getReadOnlyProxy,\n} from \"../proxyFactories.js\";\nimport { getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport { getBrickPackages, getRuntime } from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport {\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"./collectMemberCallUsage.js\";\nimport { fetchMenuById, getMenuById } from \"../menu/fetchMenuById.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { widgetImagesFactory } from \"./images.js\";\nimport { hasInstalledApp, waitForCheckingApps } from \"../checkInstalledApps.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: RuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function getPreEvaluatedRaw(pre: PreEvaluated): string {\n return pre[symbolForRaw];\n}\n\nexport function shouldDismissMarkingComputed(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\nexport async function asyncEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { blockingList, run } = lowLevelEvaluate(\n raw,\n runtimeContext,\n options,\n true\n );\n await Promise.all(blockingList);\n return run();\n}\n\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { run } = lowLevelEvaluate(raw, runtimeContext, options, false);\n return run();\n}\n\nfunction lowLevelEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options: EvaluateOptions = {},\n isAsync?: boolean\n): {\n blockingList: (Promise<unknown> | undefined)[];\n run: Function;\n} {\n const blockingList: (Promise<unknown> | undefined)[] = [];\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n\n const {\n pendingPermissionsPreCheck: _1,\n tplStateStoreMap: _2,\n tplStateStoreScope: _3,\n ...passByRuntimeContext\n } = runtimeContext;\n\n runtimeContext = {\n ...raw[symbolForContext],\n ...passByRuntimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // Collect `APP.getMenu(...)` usage before evaluating.\n const menuUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n const hasAppUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n collectAppGetMenuUsage(menuUsage, node, parent!);\n collectInstalledAppsHasUsage(hasAppUsage, node, parent!);\n },\n },\n });\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: {} },\n // error: message,\n // });\n // return;\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n\n if (menuUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n if (hasAppUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n const globalVariables: Record<string, unknown> = {};\n const { attemptToVisitGlobals } = precooked;\n\n // Ignore evaluating if required `event/DATA` is missing in\n // context. Since they are are provided in different context, whenever\n // missing one of them, memorize the current context for later consuming.\n if (\n options.lazy ||\n (attemptToVisitGlobals.has(\"EVENT\") &&\n !hasOwnProperty(runtimeContext, \"event\")) ||\n (attemptToVisitGlobals.has(\"DATA\") &&\n !hasOwnProperty(runtimeContext, \"data\"))\n ) {\n return {\n blockingList,\n run() {\n return Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n },\n };\n }\n\n let usedCtx: Set<string>;\n let usedProcessors: Set<string>;\n let usedStates: Set<string>;\n let tplStateStore: DataStore<\"STATE\"> | undefined;\n const strict = isStrictMode(runtimeContext);\n\n // For existed TPL usage, treat it as a STATE.\n if (\n attemptToVisitGlobals.has(\"STATE\") ||\n (!strict && attemptToVisitGlobals.has(\"TPL\"))\n ) {\n tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${raw}\"`);\n }\n\n const devHook = getDevHook();\n if (isAsync || devHook) {\n if (attemptToVisitGlobals.has(\"CTX\")) {\n usedCtx = strictCollectMemberUsage(raw, \"CTX\");\n isAsync && blockingList.push(runtimeContext.ctxStore.waitFor(usedCtx));\n }\n\n if (tplStateStore) {\n usedStates = strictCollectMemberUsage(raw, \"STATE\");\n // istanbul ignore if\n if (!strict) {\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\n }\n }\n isAsync && blockingList.push(tplStateStore.waitFor(usedStates));\n }\n\n if (attemptToVisitGlobals.has(\"PROCESSORS\")) {\n usedProcessors = strictCollectMemberUsage(raw, \"PROCESSORS\", 2);\n isAsync &&\n blockingList.push(\n loadProcessorsImperatively(usedProcessors, getBrickPackages())\n );\n }\n }\n\n if (isAsync) {\n let attemptToCheckPermissions = attemptToVisitGlobals.has(\"PERMISSIONS\");\n // There maybe `PERMISSIONS.check()` usage in functions\n if (!attemptToCheckPermissions && attemptToVisitGlobals.has(\"FN\")) {\n const usedFunctions = [...strictCollectMemberUsage(raw, \"FN\")];\n attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);\n }\n\n if (attemptToCheckPermissions) {\n blockingList.push(...runtimeContext.pendingPermissionsPreCheck);\n }\n\n if (menuUsage.usedArgs.size > 0) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) => fetchMenuById(menuId, runtimeContext))\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(waitForCheckingApps([...hasAppUsage.usedArgs]));\n }\n }\n\n return {\n blockingList,\n run() {\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n ctxStore,\n data,\n event,\n } = runtimeContext;\n const app = runtimeContext.overrideApp ?? currentApp;\n\n for (const variableName of attemptToVisitGlobals) {\n switch (variableName) {\n // case \"ALIAS\":\n case \"ANCHOR\":\n globalVariables[variableName] = location.hash\n ? location.hash.substring(1)\n : null;\n break;\n case \"APP\":\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedCtx);\n },\n });\n break;\n case \"DATA\":\n globalVariables[variableName] = data;\n break;\n case \"EVENT\":\n globalVariables[variableName] = event;\n break;\n case \"FLAGS\":\n globalVariables[variableName] = getReadOnlyProxy(flags);\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { findLastIndex } from "lodash";
2
+ export function insertPreviewRoutes(routes) {
3
+ // Insert preview routes for iframe only.
4
+ if (window.parent === window) {
5
+ return routes;
6
+ }
7
+ var mergedRoutes = routes;
8
+ var specificTemplatePreviewIndex = findLastIndex(mergedRoutes, route => route.path.startsWith("${APP.homepage}/_dev_only_/template-preview/"));
9
+ mergedRoutes = [...mergedRoutes.slice(0, specificTemplatePreviewIndex + 1), {
10
+ path: "${APP.homepage}/_dev_only_/template-preview/:templateId",
11
+ bricks: [{
12
+ brick: "span"
13
+ }],
14
+ menu: false,
15
+ exact: true
16
+ }, ...mergedRoutes.slice(specificTemplatePreviewIndex + 1)];
17
+ var specificSnippetPreviewIndex = findLastIndex(mergedRoutes, route => route.path.startsWith("${APP.homepage}/_dev_only_/snippet-preview/"));
18
+ mergedRoutes = [...mergedRoutes.slice(0, specificSnippetPreviewIndex + 1), {
19
+ path: "${APP.homepage}/_dev_only_/snippet-preview/:snippetId",
20
+ bricks: [{
21
+ brick: "span"
22
+ }],
23
+ menu: false,
24
+ exact: true
25
+ }, ...mergedRoutes.slice(specificSnippetPreviewIndex + 1)];
26
+ return mergedRoutes;
27
+ }
28
+ //# sourceMappingURL=insertPreviewRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertPreviewRoutes.js","names":["findLastIndex","insertPreviewRoutes","routes","window","parent","mergedRoutes","specificTemplatePreviewIndex","route","path","startsWith","slice","bricks","brick","menu","exact","specificSnippetPreviewIndex"],"sources":["../../../src/internal/insertPreviewRoutes.ts"],"sourcesContent":["import { findLastIndex } from \"lodash\";\nimport type { RouteConf } from \"@next-core/types\";\n\nexport function insertPreviewRoutes(routes: RouteConf[]): RouteConf[] {\n // Insert preview routes for iframe only.\n if (window.parent === window) {\n return routes;\n }\n\n let mergedRoutes = routes;\n\n const specificTemplatePreviewIndex = findLastIndex(mergedRoutes, (route) =>\n route.path.startsWith(\"${APP.homepage}/_dev_only_/template-preview/\")\n );\n mergedRoutes = [\n ...mergedRoutes.slice(0, specificTemplatePreviewIndex + 1),\n {\n path: \"${APP.homepage}/_dev_only_/template-preview/:templateId\",\n bricks: [{ brick: \"span\" }],\n menu: false,\n exact: true,\n } as RouteConf,\n ...mergedRoutes.slice(specificTemplatePreviewIndex + 1),\n ];\n\n const specificSnippetPreviewIndex = findLastIndex(mergedRoutes, (route) =>\n route.path.startsWith(\"${APP.homepage}/_dev_only_/snippet-preview/\")\n );\n mergedRoutes = [\n ...mergedRoutes.slice(0, specificSnippetPreviewIndex + 1),\n {\n path: \"${APP.homepage}/_dev_only_/snippet-preview/:snippetId\",\n bricks: [{ brick: \"span\" }],\n menu: false,\n exact: true,\n } as RouteConf,\n ...mergedRoutes.slice(specificSnippetPreviewIndex + 1),\n ];\n\n return mergedRoutes;\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,QAAQ;AAGtC,OAAO,SAASC,mBAAmBA,CAACC,MAAmB,EAAe;EACpE;EACA,IAAIC,MAAM,CAACC,MAAM,KAAKD,MAAM,EAAE;IAC5B,OAAOD,MAAM;EACf;EAEA,IAAIG,YAAY,GAAGH,MAAM;EAEzB,IAAMI,4BAA4B,GAAGN,aAAa,CAACK,YAAY,EAAGE,KAAK,IACrEA,KAAK,CAACC,IAAI,CAACC,UAAU,CAAC,8CAA8C,CAAC,CACtE;EACDJ,YAAY,GAAG,CACb,GAAGA,YAAY,CAACK,KAAK,CAAC,CAAC,EAAEJ,4BAA4B,GAAG,CAAC,CAAC,EAC1D;IACEE,IAAI,EAAE,yDAAyD;IAC/DG,MAAM,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAO,CAAC,CAAC;IAC3BC,IAAI,EAAE,KAAK;IACXC,KAAK,EAAE;EACT,CAAC,EACD,GAAGT,YAAY,CAACK,KAAK,CAACJ,4BAA4B,GAAG,CAAC,CAAC,CACxD;EAED,IAAMS,2BAA2B,GAAGf,aAAa,CAACK,YAAY,EAAGE,KAAK,IACpEA,KAAK,CAACC,IAAI,CAACC,UAAU,CAAC,6CAA6C,CAAC,CACrE;EACDJ,YAAY,GAAG,CACb,GAAGA,YAAY,CAACK,KAAK,CAAC,CAAC,EAAEK,2BAA2B,GAAG,CAAC,CAAC,EACzD;IACEP,IAAI,EAAE,uDAAuD;IAC7DG,MAAM,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAO,CAAC,CAAC;IAC3BC,IAAI,EAAE,KAAK;IACXC,KAAK,EAAE;EACT,CAAC,EACD,GAAGT,YAAY,CAACK,KAAK,CAACK,2BAA2B,GAAG,CAAC,CAAC,CACvD;EAED,OAAOV,YAAY;AACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n forEachItem?: unknown;\n appendI18nNamespace?: string;\n}\n\nexport type AsyncProperties = Promise<Record<string, unknown>>;\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderNode;\n hasTrackingControls?: boolean;\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderBrick;\n sibling?: RenderBrick;\n return?: RenderNode | null;\n childElements?: HTMLElement[];\n}\n\nexport type RenderNode = RenderRoot | RenderBrick;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostProperties?: AsyncProperties;\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n // `useBrick` has a local tpl state store scope\n tplStateStoreScope?: DataStore<\"STATE\">[];\n forEachItem?: unknown;\n appendI18nNamespace?: string;\n}\n\nexport type AsyncProperties = Promise<Record<string, unknown>>;\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderNode;\n hasTrackingControls?: boolean;\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderBrick;\n sibling?: RenderBrick;\n return?: RenderNode | null;\n childElements?: HTMLElement[];\n}\n\nexport type RenderNode = RenderRoot | RenderBrick;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostProperties?: AsyncProperties;\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n"],"mappings":""}
@@ -1,7 +1,8 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import { flushStableLoadBricks } from "@next-core/loader";
4
- import { _internalApiGetRuntimeContext, _internalApiSetBootstrapData } from "./Runtime.js";
3
+ import { flushStableLoadBricks, loadBricksImperatively } from "@next-core/loader";
4
+ import { pick } from "lodash";
5
+ import { _internalApiGetRuntimeContext, _internalApiGetStoryboardInBootstrapData, _internalApiSetBootstrapData, getBrickPackages } from "./Runtime.js";
5
6
  import { renderBrick, renderBricks } from "./Renderer.js";
6
7
  import { RendererContext } from "./RendererContext.js";
7
8
  import { mountTree, unmountTree } from "./mount.js";
@@ -10,17 +11,21 @@ import { applyMode, applyTheme, setMode, setTheme } from "../themeAndMode.js";
10
11
  import { RenderTag } from "./enums.js";
11
12
  import { computeRealValue } from "./compute/computeRealValue.js";
12
13
  import { isStrictMode, warnAboutStrictMode } from "../isStrictMode.js";
14
+ import { customTemplates } from "../CustomTemplates.js";
15
+ import { registerAppI18n } from "./registerAppI18n.js";
13
16
  export function renderUseBrick(_x, _x2) {
14
17
  return _renderUseBrick.apply(this, arguments);
15
18
  }
16
19
  function _renderUseBrick() {
17
20
  _renderUseBrick = _asyncToGenerator(function* (useBrick, data) {
18
- var _output$node;
21
+ var _runtimeContext$tplSt, _output$node;
22
+ var tplStateStoreScope = [];
19
23
  var runtimeContext = _objectSpread(_objectSpread({}, _internalApiGetRuntimeContext()), {}, {
20
24
  data,
21
25
  pendingPermissionsPreCheck: [],
22
- tplStateStoreMap: new Map()
26
+ tplStateStoreScope
23
27
  });
28
+ (_runtimeContext$tplSt = runtimeContext.tplStateStoreMap) !== null && _runtimeContext$tplSt !== void 0 ? _runtimeContext$tplSt : runtimeContext.tplStateStoreMap = new Map();
24
29
  var rendererContext = new RendererContext("useBrick");
25
30
  var renderRoot = {
26
31
  tag: RenderTag.ROOT,
@@ -36,7 +41,9 @@ function _renderUseBrick() {
36
41
  properties: _objectSpread(_objectSpread({}, useBrick.properties), transform)
37
42
  }), runtimeContext, rendererContext);
38
43
  flushStableLoadBricks();
39
- yield Promise.all([...output.blockingList, ...[...runtimeContext.tplStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
44
+ yield Promise.all([...output.blockingList,
45
+ // Wait for local tpl state stores belong to current `useBrick` only.
46
+ ...tplStateStoreScope.map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
40
47
  if ((_output$node = output.node) !== null && _output$node !== void 0 && _output$node.portal) {
41
48
  throw new Error("The root brick of useBrick cannot be a portal brick");
42
49
  }
@@ -166,4 +173,80 @@ export function legacyDoTransform(data, to, options) {
166
173
  noInject: true
167
174
  });
168
175
  }
176
+
177
+ // istanbul ignore next
178
+ export function loadBricks(bricks) {
179
+ return loadBricksImperatively(bricks, getBrickPackages());
180
+ }
181
+ export function updateStoryboard(appId, storyboardPatch) {
182
+ var storyboard = _internalApiGetStoryboardInBootstrapData(appId);
183
+ Object.assign(storyboard, _objectSpread(_objectSpread({}, storyboardPatch), {}, {
184
+ $$fulfilling: null,
185
+ $$fulfilled: true,
186
+ $$registerCustomTemplateProcessed: false
187
+ }));
188
+ registerAppI18n(storyboard);
189
+ }
190
+ export function updateStoryboardByRoute(appId, newRoute) {
191
+ var storyboard = _internalApiGetStoryboardInBootstrapData(appId);
192
+ var match = false;
193
+ var getKey = route => "".concat(route.path, ".").concat(route.exact);
194
+ var replaceRoute = (routes, key) => {
195
+ return routes.map(route => {
196
+ var routeKey = getKey(route);
197
+ if (route.type === "routes") {
198
+ route.routes = replaceRoute(route.routes, key);
199
+ return route;
200
+ } else if (routeKey === key) {
201
+ match = true;
202
+ return newRoute;
203
+ } else {
204
+ return route;
205
+ }
206
+ });
207
+ };
208
+ storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));
209
+ if (!match) {
210
+ storyboard.routes.unshift(newRoute);
211
+ }
212
+ }
213
+ export function updateStoryboardByTemplate(appId, newTemplate, settings) {
214
+ var tplName = "".concat(appId, ".").concat(newTemplate.name);
215
+ // customTemplateRegistry.delete(tplName);
216
+ customTemplates.define(tplName, {
217
+ bricks: newTemplate.bricks,
218
+ proxy: newTemplate.proxy,
219
+ state: newTemplate.state
220
+ });
221
+ updateTemplatePreviewSettings(appId, newTemplate.name, settings);
222
+ }
223
+ export function updateTemplatePreviewSettings(appId, templateId, settings) {
224
+ _updatePreviewSettings(appId, "${APP.homepage}/_dev_only_/template-preview/".concat(templateId), [_objectSpread({
225
+ brick: templateId
226
+ }, pick(settings, "properties", "events", "lifeCycle", "context"))]);
227
+ }
228
+ export function updateStoryboardBySnippet(appId, snippetData) {
229
+ var _snippetData$bricks;
230
+ _updatePreviewSettings(appId, "${APP.homepage}/_dev_only_/snippet-preview/".concat(snippetData.snippetId), (_snippetData$bricks = snippetData.bricks) !== null && _snippetData$bricks !== void 0 && _snippetData$bricks.length ? snippetData.bricks : [{
231
+ brick: "span"
232
+ }]);
233
+ }
234
+ export var updateSnippetPreviewSettings = updateStoryboardBySnippet;
235
+ function _updatePreviewSettings(appId, path, bricks) {
236
+ var {
237
+ routes
238
+ } = _internalApiGetStoryboardInBootstrapData(appId);
239
+ var previewRouteIndex = routes.findIndex(route => route.path === path);
240
+ var newPreviewRoute = {
241
+ path,
242
+ bricks,
243
+ menu: false,
244
+ exact: true
245
+ };
246
+ if (previewRouteIndex === -1) {
247
+ routes.unshift(newPreviewRoute);
248
+ } else {
249
+ routes.splice(previewRouteIndex, 1, newPreviewRoute);
250
+ }
251
+ }
169
252
  //# sourceMappingURL=secret_internals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"secret_internals.js","names":["flushStableLoadBricks","_internalApiGetRuntimeContext","_internalApiSetBootstrapData","renderBrick","renderBricks","RendererContext","mountTree","unmountTree","httpErrorToString","applyMode","applyTheme","setMode","setTheme","RenderTag","computeRealValue","isStrictMode","warnAboutStrictMode","renderUseBrick","_x","_x2","_renderUseBrick","apply","arguments","_asyncToGenerator","useBrick","data","_output$node","runtimeContext","_objectSpread","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","renderRoot","tag","ROOT","createPortal","transform","strict","output","properties","Promise","all","blockingList","values","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","_ref","element","portalRoot","document","querySelector","createElement","appendChild","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","_ref2","mountResult","remove","dispatchOnUnmount","dispose","_rendererContext","initializePreviewBootstrap","bootstrapData","renderPreviewBricks","_x3","_x4","_renderPreviewBricks","bricks","mountPoints","options","length","undefined","previousRendererContext","container","main","failed","push","error","BRICK","textContent","return","menuRequests","sandbox","_options$theme","theme","dispatchBeforePageLoad","window","scrollTo","dispatchPageLoad","legacyDoTransform","to","noInject"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n SiteTheme,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiSetBootstrapData,\n} from \"./Runtime.js\";\nimport { RenderOutput, renderBrick, renderBricks } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n };\n\n const rendererContext = new RendererContext(\"useBrick\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nlet _rendererContext: RendererContext;\n\nexport function initializePreviewBootstrap(\n bootstrapData: Partial<BootstrapData>\n) {\n _internalApiSetBootstrapData(bootstrapData);\n}\n\nexport async function renderPreviewBricks(\n bricks: BrickConf[],\n mountPoints: {\n main: HTMLElement;\n portal: HTMLElement;\n },\n options: {\n sandbox?: boolean;\n theme?: SiteTheme;\n } = {}\n) {\n const runtimeContext = {\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n const previousRendererContext = _rendererContext;\n const rendererContext = (_rendererContext = new RendererContext(\"router\"));\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: mountPoints.main,\n createPortal: mountPoints.portal,\n };\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext\n );\n\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n\n flushStableLoadBricks();\n\n await Promise.all(output.blockingList);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispose();\n unmountTree(mountPoints.main);\n unmountTree(mountPoints.portal);\n\n if (options.sandbox) {\n setTheme(options.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (options.sandbox) {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n }\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n"],"mappings":";;AAMA,SAASA,qBAAqB,QAAQ,mBAAmB;AACzD,SACEC,6BAA6B,EAC7BC,4BAA4B,QACvB,cAAc;AACrB,SAAuBC,WAAW,EAAEC,YAAY,QAAQ,eAAe;AACvE,SAASC,eAAe,QAAQ,sBAAsB;AAGtD,SAASC,SAAS,EAAEC,WAAW,QAAQ,YAAY;AACnD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,SAAS,EAAEC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AAC7E,SAASC,SAAS,QAAQ,YAAY;AACtC,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,YAAY,EAAEC,mBAAmB,QAAQ,oBAAoB;AAQtE,gBAAsBC,cAAcA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAiEnC,SAAAF,gBAAA;EAAAA,eAAA,GAAAG,iBAAA,CAjEM,WACLC,QAA4B,EAC5BC,IAAa,EACkB;IAAA,IAAAC,YAAA;IAC/B,IAAMC,cAA8B,GAAAC,aAAA,CAAAA,aAAA,KAC/B3B,6BAA6B,EAAE;MAClCwB,IAAI;MACJI,0BAA0B,EAAE,EAAE;MAC9BC,gBAAgB,EAAE,IAAIC,GAAG;IAA8B,EACxD;IAED,IAAMC,eAAe,GAAG,IAAI3B,eAAe,CAAC,UAAU,CAAC;IAEvD,IAAM4B,UAAsB,GAAG;MAC7BC,GAAG,EAAErB,SAAS,CAACsB,IAAI;MACnB;MACAC,YAAY,EAAE;IAChB,CAAC;IAED,IAAMC,SAAS,GAAIb,QAAQ,CACxBa,SAAS;IACZ,IAAMC,MAAM,GAAGvB,YAAY,EAAE;IAC7B,IAAIsB,SAAS,EAAE;MACbrB,mBAAmB,CACjBsB,MAAM,EACN,sBAAsB,EACtB,uDAAuD,EACvDd,QAAQ,CACT;IACH;IAEA,IAAMe,MAAM,SAASpC,WAAW,CAC9B8B,UAAU,EACVK,MAAM,GACFd,QAAQ,GAAAI,aAAA,CAAAA,aAAA,KAEHJ,QAAQ;MACXgB,UAAU,EAAAZ,aAAA,CAAAA,aAAA,KACLJ,QAAQ,CAACgB,UAAU,GACnBH,SAAS;IACb,EACF,EACLV,cAAc,EACdK,eAAe,CAChB;IAEDhC,qBAAqB,EAAE;IAEvB,MAAMyC,OAAO,CAACC,GAAG,CAAC,CAChB,GAAGH,MAAM,CAACI,YAAY,EACtB,GAAG,CAAC,GAAGhB,cAAc,CAACG,gBAAgB,CAACc,MAAM,EAAE,CAAC,CAACC,GAAG,CAAEC,KAAK,IACzDA,KAAK,CAACC,UAAU,EAAE,CACnB,EACD,GAAGpB,cAAc,CAACE,0BAA0B,CAC7C,CAAC;IAEF,KAAAH,YAAA,GAAIa,MAAM,CAACS,IAAI,cAAAtB,YAAA,eAAXA,YAAA,CAAauB,MAAM,EAAE;MACvB,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;IACxE;IAEAjB,UAAU,CAACkB,KAAK,GAAGZ,MAAM,CAACS,IAAI;IAE9B,IAAMI,OAAO,GAAGb,MAAM,CAACS,IAAI,GAAGT,MAAM,CAACS,IAAI,CAACK,IAAI,GAAG,IAAI;IAErD,OAAO;MAAED,OAAO;MAAEnB,UAAU;MAAED;IAAgB,CAAC;EACjD,CAAC;EAAA,OAAAZ,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAMD,OAAO,SAASgC,aAAaA,CAAAC,IAAA,EAE3BC,OAAoB,EACC;EAAA,IAFrB;IAAEvB,UAAU;IAAED;EAAsC,CAAC,GAAAuB,IAAA;EAGrD,IAAIN,MAA+B;EACnChB,UAAU,CAACG,YAAY,GAAG,MAAM;IAC9B,IAAMqB,UAAU,GAAGC,QAAQ,CAACC,aAAa,CACvC,qBAAqB,CACP;IAChBV,MAAM,GAAGS,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;IACtCH,UAAU,CAACI,WAAW,CAACZ,MAAM,CAAC;IAC9B,OAAOA,MAAM;EACf,CAAC;EAED3C,SAAS,CAAC2B,UAAU,EAAEuB,OAAO,CAAC;EAE9BxB,eAAe,CAAC8B,eAAe,EAAE;EACjC9B,eAAe,CAAC+B,wBAAwB,EAAE;EAC1C/B,eAAe,CAACgC,qBAAqB,EAAE;EAEvC,OAAO;IACLf;EACF,CAAC;AACH;AAEA,OAAO,SAASgB,eAAeA,CAAAC,KAAA,EAE7BC,WAAgC,EAC1B;EAAA,IAFN;IAAEnC;EAAsC,CAAC,GAAAkC,KAAA;EAGzC;EACA;EACA;EACA,IAAIC,WAAW,CAAClB,MAAM,EAAE;IACtB1C,WAAW,CAAC4D,WAAW,CAAClB,MAAM,CAAC;IAC/BkB,WAAW,CAAClB,MAAM,CAACmB,MAAM,EAAE;EAC7B;EACApC,eAAe,CAACqC,iBAAiB,EAAE;EACnCrC,eAAe,CAACsC,OAAO,EAAE;AAC3B;AAEA,IAAIC,gBAAiC;AAErC,OAAO,SAASC,0BAA0BA,CACxCC,aAAqC,EACrC;EACAvE,4BAA4B,CAACuE,aAAa,CAAC;AAC7C;AAEA,gBAAsBC,mBAAmBA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,oBAAA,CAAAxD,KAAA,OAAAC,SAAA;AAAA;AA6FxC,SAAAuD,qBAAA;EAAAA,oBAAA,GAAAtD,iBAAA,CA7FM,WACLuD,MAAmB,EACnBC,WAGC,EAKD;IAAA,IAJAC,OAGC,GAAA1D,SAAA,CAAA2D,MAAA,QAAA3D,SAAA,QAAA4D,SAAA,GAAA5D,SAAA,MAAG,CAAC,CAAC;IAEN,IAAMK,cAAc,GAAG;MACrBE,0BAA0B,EAAE,EAAE;MAC9BC,gBAAgB,EAAE,IAAIC,GAAG;IAC3B,CAA8C;IAE9C,IAAMoD,uBAAuB,GAAGZ,gBAAgB;IAChD,IAAMvC,eAAe,GAAIuC,gBAAgB,GAAG,IAAIlE,eAAe,CAAC,QAAQ,CAAE;IAE1E,IAAM4B,UAAsB,GAAG;MAC7BC,GAAG,EAAErB,SAAS,CAACsB,IAAI;MACnBiD,SAAS,EAAEL,WAAW,CAACM,IAAI;MAC3BjD,YAAY,EAAE2C,WAAW,CAAC9B;IAC5B,CAAC;IAED,IAAIqC,MAAM,GAAG,KAAK;IAClB,IAAI/C,MAAoB;IACxB,IAAI;MACFA,MAAM,SAASnC,YAAY,CACzB6B,UAAU,EACV6C,MAAM,EACNnD,cAAc,EACdK,eAAe,CAChB;MAEDO,MAAM,CAACI,YAAY,CAAC4C,IAAI,CACtB,GAAG,CAAC,GAAG5D,cAAc,CAACG,gBAAgB,CAACc,MAAM,EAAE,CAAC,CAACC,GAAG,CAAEC,KAAK,IACzDA,KAAK,CAACC,UAAU,EAAE,CACnB,EACD,GAAGpB,cAAc,CAACE,0BAA0B,CAC7C;MAED7B,qBAAqB,EAAE;MAEvB,MAAMyC,OAAO,CAACC,GAAG,CAACH,MAAM,CAACI,YAAY,CAAC;IACxC,CAAC,CAAC,OAAO6C,KAAK,EAAE;MACdF,MAAM,GAAG,IAAI;MACb/C,MAAM,GAAG;QACPS,IAAI,EAAE;UACJd,GAAG,EAAErB,SAAS,CAAC4E,KAAK;UACpBpC,IAAI,EAAE,KAAK;UACXb,UAAU,EAAE;YACVkD,WAAW,EAAElF,iBAAiB,CAACgF,KAAK;UACtC,CAAC;UACDG,MAAM,EAAE1D,UAAU;UAClBN,cAAc,EAAE;QAClB,CAAC;QACDgB,YAAY,EAAE,EAAE;QAChBiD,YAAY,EAAE;MAChB,CAAC;IACH;IAEA3D,UAAU,CAACkB,KAAK,GAAGZ,MAAM,CAACS,IAAI;IAE9BmC,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEb,OAAO,EAAE;IAClC/D,WAAW,CAACwE,WAAW,CAACM,IAAI,CAAC;IAC7B9E,WAAW,CAACwE,WAAW,CAAC9B,MAAM,CAAC;IAE/B,IAAI+B,OAAO,CAACa,OAAO,EAAE;MAAA,IAAAC,cAAA;MACnBlF,QAAQ,EAAAkF,cAAA,GAACd,OAAO,CAACe,KAAK,cAAAD,cAAA,cAAAA,cAAA,GAAI,OAAO,CAAC;MAClCnF,OAAO,CAAC,SAAS,CAAC;MAElB,IAAI,CAAC2E,MAAM,EAAE;QACXtD,eAAe,CAACgE,sBAAsB,EAAE;MAC1C;MAEAtF,UAAU,EAAE;MACZD,SAAS,EAAE;IACb;IAEAH,SAAS,CAAC2B,UAAU,CAAC;IAErB,IAAI+C,OAAO,CAACa,OAAO,EAAE;MACnBI,MAAM,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACvB;IAEA,IAAI,CAACZ,MAAM,EAAE;MACXtD,eAAe,CAACmE,gBAAgB,EAAE;MAClC;MACAnE,eAAe,CAAC8B,eAAe,EAAE;MACjC9B,eAAe,CAAC+B,wBAAwB,EAAE;MAC1C/B,eAAe,CAACgC,qBAAqB,EAAE;IACzC;EACF,CAAC;EAAA,OAAAa,oBAAA,CAAAxD,KAAA,OAAAC,SAAA;AAAA;AAED,OAAO,SAAS8E,iBAAiBA,CAC/B3E,IAAa,EACb4E,EAAW,EACXrB,OAAiB,EACjB;EACA,IAAIA,OAAO,EAAE;IACX,MAAM,IAAI9B,KAAK,CAAC,mDAAmD,CAAC;EACtE;EACA,OAAOpC,gBAAgB,CACrBuF,EAAE,EAAAzE,aAAA,CAAAA,aAAA,KAEG3B,6BAA6B,EAAE;IAClCwB;EAAI,IAEN;IACE6E,QAAQ,EAAE;EACZ,CAAC,CACF;AACH"}
1
+ {"version":3,"file":"secret_internals.js","names":["flushStableLoadBricks","loadBricksImperatively","pick","_internalApiGetRuntimeContext","_internalApiGetStoryboardInBootstrapData","_internalApiSetBootstrapData","getBrickPackages","renderBrick","renderBricks","RendererContext","mountTree","unmountTree","httpErrorToString","applyMode","applyTheme","setMode","setTheme","RenderTag","computeRealValue","isStrictMode","warnAboutStrictMode","customTemplates","registerAppI18n","renderUseBrick","_x","_x2","_renderUseBrick","apply","arguments","_asyncToGenerator","useBrick","data","_runtimeContext$tplSt","_output$node","tplStateStoreScope","runtimeContext","_objectSpread","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","renderRoot","tag","ROOT","createPortal","transform","strict","output","properties","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","_ref","element","portalRoot","document","querySelector","createElement","appendChild","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","_ref2","mountResult","remove","dispatchOnUnmount","dispose","_rendererContext","initializePreviewBootstrap","bootstrapData","renderPreviewBricks","_x3","_x4","_renderPreviewBricks","bricks","mountPoints","options","length","undefined","previousRendererContext","container","main","failed","push","values","error","BRICK","textContent","return","menuRequests","sandbox","_options$theme","theme","dispatchBeforePageLoad","window","scrollTo","dispatchPageLoad","legacyDoTransform","to","noInject","loadBricks","updateStoryboard","appId","storyboardPatch","storyboard","Object","assign","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","updateStoryboardByRoute","newRoute","match","getKey","route","concat","path","exact","replaceRoute","routes","key","routeKey","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","name","define","proxy","state","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","brick","updateStoryboardBySnippet","snippetData","_snippetData$bricks","snippetId","updateSnippetPreviewSettings","previewRouteIndex","findIndex","newPreviewRoute","menu","splice"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n CustomTemplate,\n RouteConf,\n SiteTheme,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport {\n flushStableLoadBricks,\n loadBricksImperatively,\n} from \"@next-core/loader\";\nimport { pick } from \"lodash\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n _internalApiSetBootstrapData,\n getBrickPackages,\n} from \"./Runtime.js\";\nimport { RenderOutput, renderBrick, renderBricks } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"useBrick\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...tplStateStoreScope.map((store) => store.waitForAll()),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nlet _rendererContext: RendererContext;\n\nexport function initializePreviewBootstrap(\n bootstrapData: Partial<BootstrapData>\n) {\n _internalApiSetBootstrapData(bootstrapData);\n}\n\nexport async function renderPreviewBricks(\n bricks: BrickConf[],\n mountPoints: {\n main: HTMLElement;\n portal: HTMLElement;\n },\n options: {\n sandbox?: boolean;\n theme?: SiteTheme;\n } = {}\n) {\n const runtimeContext = {\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n const previousRendererContext = _rendererContext;\n const rendererContext = (_rendererContext = new RendererContext(\"router\"));\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: mountPoints.main,\n createPortal: mountPoints.portal,\n };\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext\n );\n\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n\n flushStableLoadBricks();\n\n await Promise.all(output.blockingList);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispose();\n unmountTree(mountPoints.main);\n unmountTree(mountPoints.portal);\n\n if (options.sandbox) {\n setTheme(options.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (options.sandbox) {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n }\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n\n// istanbul ignore next\nexport function loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n}\n\nexport function updateStoryboard(\n appId: string,\n storyboardPatch: Partial<Storyboard>\n): void {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n Object.assign(storyboard, {\n ...storyboardPatch,\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false,\n });\n registerAppI18n(storyboard);\n}\n\nexport function updateStoryboardByRoute(appId: string, newRoute: RouteConf) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n let match = false;\n const getKey = (route: RouteConf): string => `${route.path}.${route.exact}`;\n const replaceRoute = (routes: RouteConf[], key: string): RouteConf[] => {\n return routes.map((route) => {\n const routeKey = getKey(route);\n if (route.type === \"routes\") {\n route.routes = replaceRoute(route.routes, key);\n return route;\n } else if (routeKey === key) {\n match = true;\n return newRoute;\n } else {\n return route;\n }\n });\n };\n storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));\n if (!match) {\n storyboard.routes.unshift(newRoute);\n }\n}\n\nexport function updateStoryboardByTemplate(\n appId: string,\n newTemplate: CustomTemplate,\n settings: unknown\n): void {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state,\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\n\nexport function updateTemplatePreviewSettings(\n appId: string,\n templateId: string,\n settings?: unknown\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`,\n [\n {\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\"),\n },\n ]\n );\n}\n\nexport function updateStoryboardBySnippet(\n appId: string,\n snippetData: {\n snippetId: string;\n bricks?: BrickConf[];\n }\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetData.snippetId}`,\n snippetData.bricks?.length ? snippetData.bricks : [{ brick: \"span\" }]\n );\n}\n\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\n\nfunction _updatePreviewSettings(\n appId: string,\n path: string,\n bricks: BrickConf[]\n) {\n const { routes } = _internalApiGetStoryboardInBootstrapData(appId)!;\n const previewRouteIndex = routes.findIndex((route) => route.path === path);\n const newPreviewRoute: RouteConf = {\n path,\n bricks,\n menu: false,\n exact: true,\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\n"],"mappings":"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"}
@@ -13,3 +13,4 @@ export { checkIfOfComputed, checkIfByTransform, } from "./internal/compute/check
13
13
  export { registerWidgetFunctions } from "./internal/compute/WidgetFunctions.js";
14
14
  export { registerWidgetI18n } from "./internal/compute/WidgetI18n.js";
15
15
  export { StoryboardFunctionRegistryFactory } from "./StoryboardFunctionRegistry.js";
16
+ export { matchPath } from "./internal/matchPath.js";
@@ -0,0 +1,2 @@
1
+ import type { RouteConf } from "@next-core/types";
2
+ export declare function insertPreviewRoutes(routes: RouteConf[]): RouteConf[];
@@ -7,6 +7,7 @@ export interface RuntimeContext extends LegacyCompatibleRuntimeContext {
7
7
  tplStateStoreMap: Map<string, DataStore<"STATE">>;
8
8
  pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];
9
9
  tplStateStoreId?: string;
10
+ tplStateStoreScope?: DataStore<"STATE">[];
10
11
  forEachItem?: unknown;
11
12
  appendI18nNamespace?: string;
12
13
  }
@@ -1,4 +1,4 @@
1
- import type { BootstrapData, BrickConf, SiteTheme, UseSingleBrickConf } from "@next-core/types";
1
+ import type { BootstrapData, BrickConf, CustomTemplate, RouteConf, SiteTheme, Storyboard, UseSingleBrickConf } from "@next-core/types";
2
2
  import { RendererContext } from "./RendererContext.js";
3
3
  import type { RenderRoot } from "./interfaces.js";
4
4
  export interface RenderUseBrickResult {
@@ -21,3 +21,13 @@ export declare function renderPreviewBricks(bricks: BrickConf[], mountPoints: {
21
21
  theme?: SiteTheme;
22
22
  }): Promise<void>;
23
23
  export declare function legacyDoTransform(data: unknown, to: unknown, options?: unknown): unknown;
24
+ export declare function loadBricks(bricks: string[] | Set<string>): Promise<void>;
25
+ export declare function updateStoryboard(appId: string, storyboardPatch: Partial<Storyboard>): void;
26
+ export declare function updateStoryboardByRoute(appId: string, newRoute: RouteConf): void;
27
+ export declare function updateStoryboardByTemplate(appId: string, newTemplate: CustomTemplate, settings: unknown): void;
28
+ export declare function updateTemplatePreviewSettings(appId: string, templateId: string, settings?: unknown): void;
29
+ export declare function updateStoryboardBySnippet(appId: string, snippetData: {
30
+ snippetId: string;
31
+ bricks?: BrickConf[];
32
+ }): void;
33
+ export declare const updateSnippetPreviewSettings: typeof updateStoryboardBySnippet;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/runtime",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/master/packages/runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -63,5 +63,5 @@
63
63
  "@next-core/build-next-libs": "^1.0.2",
64
64
  "@next-core/test-next": "^1.0.2"
65
65
  },
66
- "gitHead": "5792a07e9ba1257b5418ad69dbdb6c5a60dd9c91"
66
+ "gitHead": "87e44a7a37a3af1d2746f82d8ef5b766b4807191"
67
67
  }