{
  "schemaVersion": 1,
  "rawCaptureSha256": "10ad34a1c893a9f344a92d32a3188102ba6a13d6353b68c709f977a68bf6d122",
  "publicRecordSha256": "04f83c3ec1865e37487aa2debf1058ceca95a2816a56cb32187d8c0b31b8e5ce",
  "runId": "vue-runtime-impact-heldout-grading-v2-r1-codegraph",
  "identicalCompletedDuplicates": 0,
  "normalization": {
    "rule": "Longest explicit absolute prefixes first, applied to all JSON keys and string values after original payload binding. Uncovered private machine paths fail closed.",
    "prefixes": [
      {
        "prefixSha256": "7cd23dcd8ac05b0966b781f31104905ac940fa899602178fa5bbd8dc5e38652f",
        "replacement": "$PROVIDER_STATE"
      },
      {
        "prefixSha256": "913217d410883e526071342d1a0a0cfe7416c1ebc20ab1699596d8d7216cb70a",
        "replacement": "$WORKSPACE"
      },
      {
        "prefixSha256": "b53d86b076155cc5fa0ab662d7006ab60c1b2f7785d76452de03cb2ecef955b6",
        "replacement": "$STUDY"
      },
      {
        "prefixSha256": "768a63684ee857a90d0c5e1aac2d644942946e9d0e89296a385f90a539686b00",
        "replacement": "$REPOSITORY"
      },
      {
        "prefixSha256": "76d509b275fdc76041a48f4ed3789b73a1588b1b6c472dff3507750705b8256f",
        "replacement": "$TEMP"
      },
      {
        "prefixSha256": "e4693ec98d2762b9a5b34fc9dd8c540384a2a5fb719f88d14d760230b3990fc9",
        "replacement": "$USER_HOME"
      }
    ]
  },
  "actions": [
    {
      "idSha256": "6a9722cdf589a2a068832c955a8253b9df87983501c03dd92e95debae1f409da",
      "type": "mcp_tool_call",
      "status": "completed",
      "originalLine": 6,
      "server": "codegraph",
      "tool": "codegraph_explore",
      "resultSha256": "3e8eae3fce24bd4d8337c310e9ad0c1049f36f6333a8f31db9511d6cada6a0ab",
      "resultBytes": 26351,
      "errorSha256": null,
      "result": {
        "content": [
          {
            "type": "text",
            "text": "**Exploration: normalizeClass**\n\nFound 41 symbols across 4 files.\n\n**Blast radius — what depends on these (update/verify before editing)**\n\n- `normalizeClass` (packages/shared/src/normalizeProp.ts:63) — 16 callers in `packages/runtime-core/src/vnode.ts`, `packages/runtime-core/src/compat/renderHelpers.ts`, `packages/shared/src/normalizeProp.ts`, `packages/runtime-core/src/compat/renderFn.ts` +4 more; tests: `packages/shared/__tests__/normalizeProp.spec.ts`\n- `normalize` (packages/compiler-sfc/src/script/utils.ts:105) — 1 caller in `packages/compiler-sfc/src/script/utils.ts`; tested via callers: `packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts`\n- `normalizeStyle` (packages/shared/src/normalizeProp.ts:5) — 15 callers in `packages/runtime-core/src/vnode.ts`, `packages/server-renderer/src/helpers/ssrRenderAttrs.ts`, `packages/shared/src/normalizeProp.ts`, `packages/runtime-core/src/compat/renderFn.ts` +3 more; tests: `packages/runtime-core/__tests__/hydration.spec.ts`, `packages/shared/__tests__/normalizeProp.spec.ts`\n- `normalizeProps` (packages/shared/src/normalizeProp.ts:84) — 2 callers in `packages/runtime-core/src/index.ts`; tests: `packages/shared/__tests__/normalizeProp.spec.ts`\n- `NormalizedStyle` (packages/shared/src/normalizeProp.ts:3) — 3 callers in `packages/shared/src/normalizeProp.ts`; tested via callers: `packages/runtime-core/__tests__/hydration.spec.ts`, `packages/shared/__tests__/normalizeProp.spec.ts`\n\n**Relationships**\n\n**calls:**\n- normalizeClass → isArray\n- normalizeClass → normalizeClass\n- normalizeClass → isObject\n- normalizeClass → isString\n- mergeProps → normalizeClass\n- legacyBindObjectProps → normalizeClass\n- normalizeProps → normalizeClass\n- convertLegacyProps → normalizeClass\n- ssrRenderClass → normalizeClass\n- stringifyElement → normalizeClass\n- ... and 197 more\n\n**references:**\n- normalizePath → windowsSlashRE\n- resolveWithTS → tsConfigCache\n- resolveWithTS → CachedConfig\n- resolveWithTS → CompilerOptions\n- resolveWithTS → FS\n- resolveGlobalScope → TypeScope\n- resolveGlobalScope → TypeResolveContext\n- importSourceToScope → TypeScope\n- importSourceToScope → TypeResolveContext\n- importSourceToScope → FS\n- ... and 95 more\n\n**Source Code**\n\n> The code below is the **verbatim, current on-disk source** of these files — re-read from disk on this call and line-numbered, byte-for-byte identical to what the Read tool returns. It is NOT a summary, outline, or stale cache. Treat each block as a Read you have already performed: do not Read a file shown here.\n\n**`packages/shared/src/normalizeProp.ts`** — normalizeClass(function), normalizeStyle(function), normalizeProps(function), NormalizedStyle(type_alias), parseStringStyle(function), stringifyStyle(function), propertyDelimiterRE(constant), styleCommentRE(constant), listDelimiterRE(constant)\n\n```typescript\n1\timport { hyphenate, isArray, isObject, isString } from './general'\n2\t\n3\texport type NormalizedStyle = Record<string, string | number>\n4\t\n5\texport function normalizeStyle(\n6\t  value: unknown,\n7\t): NormalizedStyle | string | undefined {\n8\t  if (isArray(value)) {\n9\t    const res: NormalizedStyle = {}\n10\t    for (let i = 0; i < value.length; i++) {\n11\t      const item = value[i]\n12\t      const normalized = isString(item)\n13\t        ? parseStringStyle(item)\n14\t        : (normalizeStyle(item) as NormalizedStyle)\n15\t      if (normalized) {\n16\t        for (const key in normalized) {\n17\t          res[key] = normalized[key]\n18\t        }\n19\t      }\n20\t    }\n21\t    return res\n22\t  } else if (isString(value) || isObject(value)) {\n23\t    return value\n24\t  }\n25\t}\n26\t\n27\tconst listDelimiterRE = /;(?![^(]*\\))/g\n28\tconst propertyDelimiterRE = /:([^]+)/\n29\tconst styleCommentRE = /\\/\\*[^]*?\\*\\//g\n30\t\n31\texport function parseStringStyle(cssText: string): NormalizedStyle {\n32\t  const ret: NormalizedStyle = {}\n33\t  cssText\n34\t    .replace(styleCommentRE, '')\n35\t    .split(listDelimiterRE)\n36\t    .forEach(item => {\n37\t      if (item) {\n38\t        const tmp = item.split(propertyDelimiterRE)\n39\t        tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim())\n40\t      }\n41\t    })\n42\t  return ret\n43\t}\n44\t\n45\texport function stringifyStyle(\n46\t  styles: NormalizedStyle | string | undefined,\n47\t): string {\n48\t  if (!styles) return ''\n49\t  if (isString(styles)) return styles\n50\t\n51\t  let ret = ''\n52\t  for (const key in styles) {\n53\t    const value = styles[key]\n54\t    if (isString(value) || typeof value === 'number') {\n55\t      const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key)\n56\t      // only render valid values\n57\t      ret += `${normalizedKey}:${value};`\n58\t    }\n59\t  }\n60\t  return ret\n61\t}\n62\t\n63\texport function normalizeClass(value: unknown): string {\n64\t  let res = ''\n65\t  if (isString(value)) {\n66\t    res = value\n67\t  } else if (isArray(value)) {\n68\t    for (let i = 0; i < value.length; i++) {\n69\t      const normalized = normalizeClass(value[i])\n70\t      if (normalized) {\n71\t        res += normalized + ' '\n72\t      }\n73\t    }\n74\t  } else if (isObject(value)) {\n75\t    for (const name in value) {\n76\t      if (value[name]) {\n77\t        res += name + ' '\n78\t      }\n79\t    }\n80\t  }\n81\t  return res.trim()\n82\t}\n83\t\n84\texport function normalizeProps(\n85\t  props: Record<string, any> | null,\n86\t): Record<string, any> | null {\n87\t  if (!props) return null\n88\t  let { class: klass, style } = props\n89\t  if (klass && !isString(klass)) {\n90\t    props.class = normalizeClass(klass)\n91\t  }\n92\t  if (style) {\n93\t    props.style = normalizeStyle(style)\n94\t  }\n95\t  return props\n96\t}\n```\n\n**`packages/runtime-core/src/vnode.ts`** — calls(calls), VNodeProps(references), defineLegacyVNodeProperties(calls), convertLegacyVModelProps(calls), convertLegacyVModelProps(imports), renderFn.ts(imports), defineLegacyVNodeProperties(imports), callWithAsyncErrorHandling(imports), Fragment(constant), VNodeProps(type_alias), +49 more\n\n```typescript\n1\timport {\n2\t  EMPTY_ARR,\n3\t  PatchFlags,\n4\t  ShapeFlags,\n5\t  SlotFlags,\n6\t  extend,\n7\t  isArray,\n8\t  isFunction,\n9\t  isObject,\n10\t  isOn,\n11\t  isString,\n12\t  normalizeClass,\n13\t  normalizeStyle,\n14\t} from '@vue/shared'\n15\timport {\n16\t  type ClassComponent,\n17\t  type Component,\n18\t  type ComponentInternalInstance,\n19\t  type ConcreteComponent,\n20\t  type Data,\n21\t  isClassComponent,\n22\t} from './component'\n23\timport type { RawSlots } from './componentSlots'\n24\timport {\n25\t  type ReactiveFlags,\n26\t  type Ref,\n27\t  isProxy,\n28\t  isRef,\n29\t  toRaw,\n30\t} from '@vue/reactivity'\n31\timport type { AppContext } from './apiCreateApp'\n32\timport {\n33\t  type Suspense,\n34\t  type SuspenseBoundary,\n35\t  type SuspenseImpl,\n36\t  isSuspense,\n37\t} from './components/Suspense'\n38\timport type { DirectiveBinding } from './directives'\n39\timport {\n40\t  type TransitionHooks,\n41\t  setTransitionHooks,\n42\t} from './components/BaseTransition'\n43\timport { warn } from './warning'\n44\timport {\n45\t  type Teleport,\n46\t  type TeleportImpl,\n47\t  isTeleport,\n48\t} from './components/Teleport'\n49\timport {\n50\t  currentRenderingInstance,\n51\t  currentScopeId,\n52\t} from './componentRenderContext'\n53\timport type { RendererElement, RendererNode } from './renderer'\n54\timport { NULL_DYNAMIC_COMPONENT } from './helpers/resolveAssets'\n55\timport { hmrDirtyComponents } from './hmr'\n56\timport { convertLegacyComponent } from './compat/component'\n\n... (gap: Fragment (packages/runtime-core/src/vnode.ts:63), Text (packages/runtime-core/src/vnode.ts:69), Comment (packages/runtime-core/src/vnode.ts:70), Static (packages/runtime-core/src/vnode.ts:71)) ...\n\n72\t\n73\texport type VNodeTypes =\n74\t  | string\n75\t  | VNode\n76\t  | Component\n77\t  | typeof Text\n78\t  | typeof Static\n\n... (gap) ...\n\n91\t      refs: Record<string, any>,\n92\t    ) => void)\n93\t\n94\texport type VNodeNormalizedRefAtom = {\n95\t  /**\n96\t   * component instance\n97\t   */\n98\t  i: ComponentInternalInstance\n99\t  /**\n100\t   * Actual ref\n101\t   */\n102\t  r: VNodeRef\n103\t  /**\n104\t   * setup ref key\n105\t   */\n106\t  k?: string\n107\t  /**\n108\t   * refInFor marker\n109\t   */\n110\t  f?: boolean\n111\t}\n112\t\n113\texport type VNodeNormalizedRef =\n114\t  | VNodeNormalizedRefAtom\n\n... (gap) ...\n\n431\t  )\n432\t}\n433\t\n434\tconst normalizeKey = ({ key }: VNodeProps): VNode['key'] =>\n435\t  key != null ? key : null\n436\t\n437\tconst normalizeRef = ({\n438\t  ref,\n439\t  ref_key,\n440\t  ref_for,\n441\t}: VNodeProps): VNodeNormalizedRefAtom | null => {\n442\t  if (typeof ref === 'number') {\n443\t    ref = '' + ref\n444\t  }\n445\t  return (\n446\t    ref != null\n447\t      ? isString(ref) || isRef(ref) || isFunction(ref)\n448\t        ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for }\n449\t        : ref\n450\t      : null\n451\t  ) as any\n452\t}\n453\t\n454\tfunction createBaseVNode(\n455\t  type: VNodeTypes | ClassComponent | typeof NULL_DYNAMIC_COMPONENT,\n456\t  props: (Data & VNodeProps) | null = null,\n457\t  children: unknown = null,\n458\t  patchFlag = 0,\n459\t  dynamicProps: string[] | null = null,\n460\t  shapeFlag: number = type === Fragment ? 0 : ShapeFlags.ELEMENT,\n461\t  isBlockNode = false,\n462\t  needFullChildrenNormalization = false,\n463\t): VNode {\n464\t  const vnode = {\n465\t    __v_isVNode: true,\n466\t    __v_skip: true,\n467\t    type,\n468\t    props,\n469\t    key: props && normalizeKey(props),\n470\t    ref: props && normalizeRef(props),\n471\t    scopeId: currentScopeId,\n472\t    slotScopeIds: null,\n473\t    children,\n474\t    component: null,\n475\t    suspense: null,\n476\t    ssContent: null,\n477\t    ssFallback: null,\n478\t    dirs: null,\n479\t    transition: null,\n480\t    el: null,\n481\t    anchor: null,\n482\t    target: null,\n483\t    targetStart: null,\n484\t    targetAnchor: null,\n485\t    staticCount: 0,\n486\t    shapeFlag,\n487\t    patchFlag,\n488\t    dynamicProps,\n489\t    dynamicChildren: null,\n490\t    appContext: null,\n491\t    ctx: currentRenderingInstance,\n492\t  } as VNode\n493\t\n494\t  if (needFullChildrenNormalization) {\n495\t    normalizeChildren(vnode, children)\n496\t    // normalize suspense children\n497\t    if (__FEATURE_SUSPENSE__ && shapeFlag & ShapeFlags.SUSPENSE) {\n498\t      ;(type as typeof SuspenseImpl).normalize(vnode)\n499\t    }\n500\t  } else if (children) {\n501\t    // compiled element vnode - if children is passed, only possible types are\n502\t    // string or Array.\n503\t    vnode.shapeFlag |= isString(children)\n504\t      ? ShapeFlags.TEXT_CHILDREN\n505\t      : ShapeFlags.ARRAY_CHILDREN\n506\t  }\n507\t\n508\t  // validate key\n509\t  if (__DEV__ && vnode.key !== vnode.key) {\n510\t    warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type)\n511\t  }\n512\t\n513\t  // track vnode for block tree\n514\t  if (\n515\t    isBlockTreeEnabled > 0 &&\n516\t    // avoid a block node from tracking itself\n517\t    !isBlockNode &&\n518\t    // has current parent block\n519\t    currentBlock &&\n520\t    // presence of a patch flag indicates this node needs patching on updates.\n521\t    // component nodes also should always be patched, because even if the\n522\t    // component doesn't need to update, it needs to persist the instance on to\n523\t    // the next vnode so that it can be properly unmounted later.\n524\t    (vnode.patchFlag > 0 || shapeFlag & ShapeFlags.COMPONENT) &&\n525\t    // the EVENTS flag is only for hydration and if it is the only flag, the\n526\t    // vnode should not be considered dynamic due to handler caching.\n527\t    vnode.patchFlag !== PatchFlags.NEED_HYDRATION\n528\t  ) {\n529\t    currentBlock.push(vnode)\n530\t  }\n531\t\n532\t  if (__COMPAT__) {\n533\t    convertLegacyVModelProps(vnode)\n534\t    defineLegacyVNodeProperties(vnode)\n535\t  }\n536\t\n537\t  return vnode\n538\t}\n539\t\n540\texport { createBaseVNode as createElementVNode }\n541\t\n542\texport const createVNode = (\n543\t  __DEV__ ? createVNodeWithArgsTransform : _createVNode\n544\t) as typeof _createVNode\n545\t\n546\tfunction _createVNode(\n547\t  type: VNodeTypes | ClassComponent | typeof NULL_DYNAMIC_COMPONENT,\n548\t  props: (Data & VNodeProps) | null = null,\n549\t  children: unknown = null,\n550\t  patchFlag: number = 0,\n551\t  dynamicProps: string[] | null = null,\n552\t  isBlockNode = false,\n553\t): VNode {\n554\t  if (!type || type === NULL_DYNAMIC_COMPONENT) {\n555\t    if (__DEV__ && !type) {\n556\t      warn(`Invalid vnode type when creating vnode: ${type}.`)\n557\t    }\n558\t    type = Comment\n559\t  }\n560\t\n561\t  if (isVNode(type)) {\n562\t    // createVNode receiving an existing vnode. This happens in cases like\n563\t    // <component :is=\"vnode\"/>\n564\t    // #2078 make sure to merge refs during the clone instead of overwriting it\n565\t    const cloned = cloneVNode(type, props, true /* mergeRef: true */)\n566\t    if (children) {\n567\t      normalizeChildren(cloned, children)\n568\t    }\n569\t    if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n570\t      if (cloned.shapeFlag & ShapeFlags.COMPONENT) {\n571\t        currentBlock[currentBlock.indexOf(type)] = cloned\n572\t      } else {\n573\t        currentBlock.push(cloned)\n574\t      }\n575\t    }\n576\t    cloned.patchFlag = PatchFlags.BAIL\n577\t    return cloned\n578\t  }\n579\t\n580\t  // class component normalization.\n581\t  if (isClassComponent(type)) {\n582\t    type = type.__vccOpts\n583\t  }\n584\t\n585\t  // 2.x async/functional component compat\n586\t  if (__COMPAT__) {\n587\t    type = convertLegacyComponent(type, currentRenderingInstance)\n588\t  }\n589\t\n590\t  // class & style normalization.\n591\t  if (props) {\n592\t    // for reactive or proxy objects, we need to clone it to enable mutation.\n593\t    props = guardReactiveProps(props)!\n594\t    let { class: klass, style } = props\n595\t    if (klass && !isString(klass)) {\n596\t      props.class = normalizeClass(klass)\n597\t    }\n598\t    if (isObject(style)) {\n599\t      // reactive state objects need to be cloned since they are likely to be\n600\t      // mutated\n601\t      if (isProxy(style) && !isArray(style)) {\n602\t        style = extend({}, style)\n603\t      }\n604\t      props.style = normalizeStyle(style)\n605\t    }\n606\t  }\n607\t\n608\t  // encode the vnode type information into a bitmap\n609\t  const shapeFlag = isString(type)\n610\t    ? ShapeFlags.ELEMENT\n611\t    : __FEATURE_SUSPENSE__ && isSuspense(type)\n612\t      ? ShapeFlags.SUSPENSE\n613\t      : isTeleport(type)\n614\t        ? ShapeFlags.TELEPORT\n615\t        : isObject(type)\n616\t          ? ShapeFlags.STATEFUL_COMPONENT\n617\t          : isFunction(type)\n618\t            ? ShapeFlags.FUNCTIONAL_COMPONENT\n619\t            : 0\n620\t\n621\t  if (__DEV__ && shapeFlag & ShapeFlags.STATEFUL_COMPONENT && isProxy(type)) {\n622\t    type = toRaw(type)\n623\t    warn(\n624\t      `Vue received a Component that was made a reactive object. This can ` +\n625\t        `lead to unnecessary performance overhead and should be avoided by ` +\n626\t        `marking the component with \\`markRaw\\` or using \\`shallowRef\\` ` +\n627\t        `instead of \\`ref\\`.`,\n628\t      `\\nComponent that was made reactive: `,\n629\t      type,\n630\t    )\n631\t  }\n632\t\n633\t  return createBaseVNode(\n634\t    type,\n635\t    props,\n636\t    children,\n637\t    patchFlag,\n638\t    dynamicProps,\n639\t    shapeFlag,\n640\t    isBlockNode,\n641\t    true,\n642\t  )\n643\t}\n644\t\n645\texport function guardReactiveProps(\n646\t  props: (Data & VNodeProps) | null,\n647\t): (Data & VNodeProps) | null {\n648\t  if (!props) return null\n649\t  return isProxy(props) || isInternalObject(props) ? extend({}, props) : props\n650\t}\n651\t\n652\texport function cloneVNode<T, U>(\n653\t  vnode: VNode<T, U>,\n654\t  extraProps?: (Data & VNodeProps) | null,\n655\t  mergeRef = false,\n656\t  cloneTransition = false,\n657\t): VNode<T, U> {\n658\t  // This is intentionally NOT using spread or extend to avoid the runtime\n659\t  // key enumeration cost.\n660\t  const { props, ref, patchFlag, children, transition } = vnode\n661\t  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props\n662\t  const cloned: VNode<T, U> = {\n663\t    __v_isVNode: true,\n664\t    __v_skip: true,\n665\t    type: vnode.type,\n666\t    props: mergedProps,\n667\t    key: mergedProps && normalizeKey(mergedProps),\n668\t    ref:\n669\t      extraProps && extraProps.ref\n670\t        ? // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n671\t          // if the vnode itself already has a ref, cloneVNode will need to merge\n672\t          // the refs so the single vnode can be set on multiple refs\n673\t          mergeRef && ref\n674\t          ? isArray(ref)\n675\t            ? ref.concat(normalizeRef(extraProps)!)\n676\t            : [ref, normalizeRef(extraProps)!]\n677\t          : normalizeRef(extraProps)\n678\t        : ref,\n679\t    scopeId: vnode.scopeId,\n680\t    slotScopeIds: vnode.slotScopeIds,\n681\t    children:\n682\t      __DEV__ && patchFlag === PatchFlags.CACHED && isArray(children)\n683\t        ? (children as VNode[]).map(deepCloneVNode)\n684\t        : children,\n685\t    target: vnode.target,\n686\t    targetStart: vnode.targetStart,\n687\t    targetAnchor: vnode.targetAnchor,\n688\t    staticCount: vnode.staticCount,\n689\t    shapeFlag: vnode.shapeFlag,\n690\t    // if the vnode is cloned with extra props, we can no longer assume its\n691\t    // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n692\t    // note: preserve flag for fragments since they use the flag for children\n693\t    // fast paths only.\n694\t    patchFlag:\n695\t      extraProps && vnode.type !== Fragment\n696\t        ? patchFlag === PatchFlags.CACHED // hoisted node\n697\t          ? PatchFlags.FULL_PROPS\n698\t          : patchFlag | PatchFlags.FULL_PROPS\n699\t        : patchFlag,\n700\t    dynamicProps: vnode.dynamicProps,\n701\t    dynamicChildren: vnode.dynamicChildren,\n702\t    appContext: vnode.appContext,\n703\t    dirs: vnode.dirs,\n704\t    transition,\n705\t\n706\t    // These should technically only be non-null on mounted VNodes. However,\n707\t    // they *should* be copied for kept-alive vnodes. So we just always copy\n708\t    // them since them being non-null during a mount doesn't affect the logic as\n709\t    // they will simply be overwritten.\n710\t    component: vnode.component,\n711\t    suspense: vnode.suspense,\n712\t    ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n713\t    ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n714\t    el: vnode.el,\n715\t    anchor: vnode.anchor,\n716\t    ctx: vnode.ctx,\n717\t    ce: vnode.ce,\n718\t  }\n719\t\n720\t  // if the vnode will be replaced by the cloned one, it is necessary\n721\t  // to clone the transition to ensure that the vnode referenced within\n722\t  // the transition hooks is fresh.\n723\t  if (transition && cloneTransition) {\n724\t    setTransitionHooks(\n725\t      cloned as VNode,\n726\t      transition.clone(cloned as VNode) as TransitionHooks,\n727\t    )\n728\t  }\n729\t\n730\t  if (__COMPAT__) {\n731\t    defineLegacyVNodeProperties(cloned as VNode)\n732\t  }\n733\t\n734\t  return cloned\n735\t}\n736\t\n737\t/**\n738\t * Dev only, for HMR of hoisted vnodes reused in v-for\n```\n\n**`packages/shared/src/general.ts`** — calls(calls), hyphenate(constant), isArray(constant), isFunction(function), isObject(function), isString(function)\n\n```typescript\n36\t  key: string | symbol,\n37\t): key is keyof typeof val => hasOwnProperty.call(val, key)\n38\t\n39\texport const isArray: typeof Array.isArray = Array.isArray\n40\texport const isMap = (val: unknown): val is Map<any, any> =>\n41\t  toTypeString(val) === '[object Map]'\n42\texport const isSet = (val: unknown): val is Set<any> =>\n43\t  toTypeString(val) === '[object Set]'\n44\t\n45\texport const isDate = (val: unknown): val is Date =>\n46\t  toTypeString(val) === '[object Date]'\n47\texport const isRegExp = (val: unknown): val is RegExp =>\n48\t  toTypeString(val) === '[object RegExp]'\n49\texport const isFunction = (val: unknown): val is Function =>\n50\t  typeof val === 'function'\n51\texport const isString = (val: unknown): val is string => typeof val === 'string'\n52\texport const isSymbol = (val: unknown): val is symbol => typeof val === 'symbol'\n53\texport const isObject = (val: unknown): val is Record<any, any> =>\n54\t  val !== null && typeof val === 'object'\n55\t\n56\texport const isPromise = <T = any>(val: unknown): val is Promise<T> => {\n57\t  return (\n\n... (gap: objectToString (packages/shared/src/general.ts:64), toTypeString (packages/shared/src/general.ts:66), toRawType (packages/shared/src/general.ts:69), isPlainObject (packages/shared/src/general.ts:74), isIntegerKey (packages/shared/src/general.ts:77), isReservedProp (packages/shared/src/general.ts:83), +5 more) ...\n\n115\t/**\n116\t * @private\n117\t */\n118\texport const hyphenate: (str: string) => string = cacheStringFunction(\n119\t  (str: string) => str.replace(hyphenateRE, '-$1').toLowerCase(),\n120\t)\n121\t\n122\t/**\n123\t * @private\n```\n\n**`packages/runtime-core/src/hmr.ts`** — updateComponentDef(calls), map(constant), updateComponentDef(function), queueJob(calls), queuePostFlushCb(calls), calls(calls), ComponentOptions(references), normalizeClassComponent(calls), references(references), HMRComponent(references), +11 more\n\n```typescript\n10\timport { queueJob, queuePostFlushCb } from './scheduler'\n11\timport { extend, getGlobalThis } from '@vue/shared'\n12\t\n13\ttype HMRComponent = ComponentOptions | ClassComponent\n14\t\n15\texport let isHmrUpdating = false\n16\t\n17\texport const hmrDirtyComponents: Map<\n18\t  ConcreteComponent,\n19\t  Set<ComponentInternalInstance>\n20\t> = new Map<ConcreteComponent, Set<ComponentInternalInstance>>()\n21\t\n22\texport interface HMRRuntime {\n23\t  createRecord: typeof createRecord\n\n... (gap: rerender (packages/runtime-core/src/hmr.ts:24), reload (packages/runtime-core/src/hmr.ts:25), map (packages/runtime-core/src/hmr.ts:41)) ...\n\n44\t    // the initial component definition is recorded on import - this allows us\n45\t    // to apply hot updates to the component even when there are no actively\n46\t    // rendered instance.\n47\t    initialDef: ComponentOptions\n48\t    instances: Set<ComponentInternalInstance>\n49\t  }\n50\t> = new Map()\n51\t\n52\texport function registerHMR(instance: ComponentInternalInstance): void {\n53\t  const id = instance.type.__hmrId!\n54\t  let record = map.get(id)\n55\t  if (!record) {\n56\t    createRecord(id, instance.type as HMRComponent)\n57\t    record = map.get(id)!\n58\t  }\n59\t  record.instances.add(instance)\n60\t}\n61\t\n62\texport function unregisterHMR(instance: ComponentInternalInstance): void {\n63\t  map.get(instance.type.__hmrId!)!.instances.delete(instance)\n64\t}\n65\t\n66\tfunction createRecord(id: string, initialDef: HMRComponent): boolean {\n67\t  if (map.has(id)) {\n68\t    return false\n69\t  }\n70\t  map.set(id, {\n71\t    initialDef: normalizeClassComponent(initialDef),\n72\t    instances: new Set(),\n73\t  })\n74\t  return true\n75\t}\n76\t\n77\tfunction normalizeClassComponent(component: HMRComponent): ComponentOptions {\n78\t  return isClassComponent(component) ? component.__vccOpts : component\n79\t}\n80\t\n81\tfunction rerender(id: string, newRender?: Function): void {\n82\t  const record = map.get(id)\n83\t  if (!record) {\n84\t    return\n85\t  }\n86\t\n87\t  // update initial record (for not-yet-rendered component)\n88\t  record.initialDef.render = newRender\n89\t\n90\t  // Create a snapshot which avoids the set being mutated during updates\n91\t  ;[...record.instances].forEach(instance => {\n92\t    if (newRender) {\n93\t      instance.render = newRender as InternalRenderFunction\n94\t      normalizeClassComponent(instance.type as HMRComponent).render = newRender\n95\t    }\n96\t    instance.renderCache = []\n97\t    // this flag forces child components with slot content to update\n98\t    isHmrUpdating = true\n99\t    instance.update()\n100\t    isHmrUpdating = false\n101\t  })\n102\t}\n103\t\n104\tfunction reload(id: string, newComp: HMRComponent): void {\n105\t  const record = map.get(id)\n106\t  if (!record) return\n107\t\n```\n\n**Not shown above — explore these names for their source**\n\n- packages/compiler-sfc/src/script/utils.ts: normalize:105, normalizePath:107, windowsSlashRE:106, joinPaths:111, createGetCanonicalFileName:97\n- packages/reactivity/src/ref.ts: isRef:44, shallowUnwrapHandlers:250, createRef:98, propertyToRef:462, toRef:446, unref:226, +1 more\n- packages/server-renderer/src/helpers/ssrRenderAttrs.ts: ssrRenderClass:85, ssrRenderStyle:89, ssrRenderAttrs.ts:1\n- packages/runtime-core/src/componentOptions.ts: createWatcher:846, resolveInjections:791, ComponentOptions:239, ComponentOptionsBase:110\n- packages/runtime-core/src/component.ts: ClassComponent:234, Data:99, expose:1125, isClassComponent:1248\n- packages/compiler-sfc/src/script/resolveType.ts: resolveWithTS:986, resolveGlobalScope:808, importSourceToScope:889, invalidateTypeCache:1112, loadTSConfig:1069, tsConfigCache:983, +13 more\n- packages/runtime-core/src/compat/renderHelpers.ts: legacyBindObjectProps:27, isKeyNotMatch:158, renderHelpers.ts:1\n- packages/runtime-core/src/compat/renderFn.ts: convertLegacyProps:179, defineLegacyVNodeProperties:308, renderFn.ts:1\n- ... and 32 more files\n\n---\n> **Verbatim source for 4 files is included above — treat it as already Read.** Trimmed for size: `vnode.ts`, `hmr.ts`; gap markers and file headers name what was elided. For those, or anything under \"Not shown above\", make ANOTHER codegraph_explore with those exact names instead of reading the files — it returns their source with line numbers."
          }
        ],
        "structured_content": null
      },
      "error": null
    },
    {
      "idSha256": "4a317b6972e2f1834050485420bd71fe6fc2d87cd25d572cb4b8b327b37bc030",
      "type": "command_execution",
      "status": "completed",
      "originalLine": 8,
      "outputSha256": "eaa969171313553318779f0d78f1639f3d09b557d876e769d548576924f9769b",
      "outputBytes": 1235,
      "exitCode": 0,
      "stdout": "$WORKSPACE\ntsconfig.build.json\npackage.json\npnpm-lock.yaml\ntsconfig.json\npnpm-workspace.yaml\npackages-private/vite-debug/tsconfig.json\npackages-private/vite-debug/package.json\npackages-private/tsconfig.json\npackages-private/dts-test/package.json\npackages-private/dts-test/tsconfig.test.json\npackages/compiler-ssr/package.json\npackages/shared/package.json\npackages-private/template-explorer/package.json\npackages/compiler-dom/package.json\npackages/vue/jsx-runtime/package.json\npackages-private/sfc-playground/src/download/template/package.json\npackages-private/sfc-playground/package.json\npackages-private/dts-built-test/tsconfig.json\npackages-private/dts-built-test/package.json\npackages/vue/package.json\npackages/vue/server-renderer/package.json\npackages/compiler-sfc/package.json\npackages/runtime-core/package.json\npackages/vue/compiler-sfc/package.json\npackages/runtime-test/package.json\npackages/server-renderer/package.json\npackages/compiler-core/package.json\npackages/reactivity/package.json\npackages/vue-compat/package.json\npackages/runtime-dom/package.json\n"
    },
    {
      "idSha256": "57dbfc296665f072254d15345fb3a2bbf457ae03cbb6ee8f6020e8f11d4b056b",
      "type": "command_execution",
      "status": "completed",
      "originalLine": 10,
      "outputSha256": "094f34f7aff669691fcec16d20ff7bc197c4b4a98ec1bf5e91add7ca87246789",
      "outputBytes": 12025,
      "exitCode": 0,
      "stdout": "{\n  \"compilerOptions\": {\n    \"baseUrl\": \".\",\n    \"outDir\": \"temp\",\n    \"sourceMap\": false,\n    \"target\": \"es2016\",\n    \"newLine\": \"LF\",\n    \"useDefineForClassFields\": false,\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"bundler\",\n    \"allowJs\": false,\n    \"strict\": true,\n    \"noUnusedLocals\": true,\n    \"experimentalDecorators\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"skipLibCheck\": true,\n    \"esModuleInterop\": true,\n    \"removeComments\": false,\n    \"jsx\": \"preserve\",\n    \"lib\": [\"es2016\", \"dom\"],\n    \"types\": [\"vitest/globals\", \"puppeteer\", \"node\"],\n    \"rootDir\": \".\",\n    \"paths\": {\n      \"@vue/compat\": [\"packages/vue-compat/src\"],\n      \"@vue/*\": [\"packages/*/src\"],\n      \"vue\": [\"packages/vue/src\"]\n    },\n    \"isolatedDeclarations\": true,\n    \"composite\": true\n  },\n  \"include\": [\n    \"packages/global.d.ts\",\n    \"packages/*/src\",\n    \"packages/*/__tests__\",\n    \"packages/vue/jsx-runtime\",\n    \"packages/runtime-dom/types/jsx.d.ts\",\n    \"scripts/*\",\n    \"rollup.*.js\"\n  ],\n  \"exclude\": [\"packages-private/sfc-playground/src/vue-dev-proxy*\"]\n}\n{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"types\": [\"node\"],\n    \"declaration\": true,\n    \"emitDeclarationOnly\": true,\n    \"stripInternal\": true,\n    \"composite\": false\n  },\n  \"include\": [\n    \"packages/global.d.ts\",\n    \"packages/vue/src\",\n    \"packages/vue-compat/src\",\n    \"packages/compiler-core/src\",\n    \"packages/compiler-dom/src\",\n    \"packages/runtime-core/src\",\n    \"packages/runtime-dom/src\",\n    \"packages/reactivity/src\",\n    \"packages/shared/src\",\n    \"packages/global.d.ts\",\n    \"packages/compiler-sfc/src\",\n    \"packages/compiler-ssr/src\",\n    \"packages/server-renderer/src\"\n  ]\n}\npackages:\n  - 'packages/*'\n  - 'packages-private/*'\n\ncatalog:\n  '@babel/parser': ^7.25.3\n  '@babel/types': ^7.25.2\n  'estree-walker': ^2.0.2\n  'magic-string': ^0.30.11\n  'source-map-js': ^1.2.0\n  'vite': ^5.4.0\n  '@vitejs/plugin-vue': ^5.1.2\n{\n  \"private\": true,\n  \"version\": \"3.5.13\",\n  \"packageManager\": \"pnpm@9.12.3\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"node scripts/dev.js\",\n    \"build\": \"node scripts/build.js\",\n    \"build-dts\": \"tsc -p tsconfig.build.json --noCheck && rollup -c rollup.dts.config.js\",\n    \"clean\": \"rimraf --glob packages/*/dist temp .eslintcache\",\n    \"size\": \"run-s \\\"size-*\\\" && node scripts/usage-size.js\",\n    \"size-global\": \"node scripts/build.js vue runtime-dom -f global -p --size\",\n    \"size-esm-runtime\": \"node scripts/build.js vue -f esm-bundler-runtime\",\n    \"size-esm\": \"node scripts/build.js runtime-dom runtime-core reactivity shared -f esm-bundler\",\n    \"check\": \"tsc --incremental --noEmit\",\n    \"lint\": \"eslint --cache .\",\n    \"format\": \"prettier --write --cache .\",\n    \"format-check\": \"prettier --check --cache .\",\n    \"test\": \"vitest\",\n    \"test-unit\": \"vitest --project unit\",\n    \"test-e2e\": \"node scripts/build.js vue -f global -d && vitest --project e2e\",\n    \"test-dts\": \"run-s build-dts test-dts-only\",\n    \"test-dts-only\": \"tsc -p packages-private/dts-built-test/tsconfig.json && tsc -p ./packages-private/dts-test/tsconfig.test.json\",\n    \"test-coverage\": \"vitest run --project unit --coverage\",\n    \"prebench\": \"node scripts/build.js -pf esm-browser reactivity\",\n    \"prebench-compare\": \"node scripts/build.js -pf esm-browser reactivity\",\n    \"bench\": \"vitest bench --project=unit --outputJson=temp/bench.json\",\n    \"bench-compare\": \"vitest bench --project=unit --compare=temp/bench.json\",\n    \"release\": \"node scripts/release.js\",\n    \"changelog\": \"conventional-changelog -p angular -i CHANGELOG.md -s\",\n    \"dev-esm\": \"node scripts/dev.js -if esm-bundler-runtime\",\n    \"dev-compiler\": \"run-p \\\"dev template-explorer\\\" serve\",\n    \"dev-sfc\": \"run-s dev-sfc-prepare dev-sfc-run\",\n    \"dev-sfc-prepare\": \"node scripts/pre-dev-sfc.js || npm run build-all-cjs\",\n    \"dev-sfc-serve\": \"vite packages-private/sfc-playground --host\",\n    \"dev-sfc-run\": \"run-p \\\"dev compiler-sfc -f esm-browser\\\" \\\"dev vue -if esm-bundler-runtime\\\" \\\"dev vue -ipf esm-browser-runtime\\\" \\\"dev server-renderer -if esm-bundler\\\" dev-sfc-serve\",\n    \"serve\": \"serve\",\n    \"open\": \"open http://localhost:3000/packages-private/template-explorer/local.html\",\n    \"build-sfc-playground\": \"run-s build-all-cjs build-runtime-esm build-browser-esm build-ssr-esm build-sfc-playground-self\",\n    \"build-all-cjs\": \"node scripts/build.js vue runtime compiler reactivity shared -af cjs\",\n    \"build-runtime-esm\": \"node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler-runtime && node scripts/build.js vue -f esm-browser-runtime\",\n    \"build-browser-esm\": \"node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler && node scripts/build.js vue -f esm-browser\",\n    \"build-ssr-esm\": \"node scripts/build.js compiler-sfc server-renderer -f esm-browser\",\n    \"build-sfc-playground-self\": \"cd packages-private/sfc-playground && npm run build\",\n    \"preinstall\": \"npx only-allow pnpm\",\n    \"postinstall\": \"simple-git-hooks\"\n  },\n  \"simple-git-hooks\": {\n    \"pre-commit\": \"pnpm lint-staged && pnpm check\",\n    \"commit-msg\": \"node scripts/verify-commit.js\"\n  },\n  \"lint-staged\": {\n    \"*.{js,json}\": [\n      \"prettier --write\"\n    ],\n    \"*.ts?(x)\": [\n      \"eslint --fix\",\n      \"prettier --parser=typescript --write\"\n    ]\n  },\n  \"engines\": {\n    \"node\": \">=18.12.0\"\n  },\n  \"devDependencies\": {\n    \"@babel/parser\": \"catalog:\",\n    \"@babel/types\": \"catalog:\",\n    \"@rollup/plugin-alias\": \"^5.1.1\",\n    \"@rollup/plugin-commonjs\": \"^28.0.1\",\n    \"@rollup/plugin-json\": \"^6.1.0\",\n    \"@rollup/plugin-node-resolve\": \"^15.3.0\",\n    \"@rollup/plugin-replace\": \"5.0.4\",\n    \"@swc/core\": \"^1.9.1\",\n    \"@types/hash-sum\": \"^1.0.2\",\n    \"@types/node\": \"^22.8.7\",\n    \"@types/semver\": \"^7.5.8\",\n    \"@types/serve-handler\": \"^6.1.4\",\n    \"@vitest/coverage-v8\": \"^2.1.1\",\n    \"@vue/consolidate\": \"1.0.0\",\n    \"conventional-changelog-cli\": \"^5.0.0\",\n    \"enquirer\": \"^2.4.1\",\n    \"esbuild\": \"^0.24.0\",\n    \"esbuild-plugin-polyfill-node\": \"^0.3.0\",\n    \"eslint\": \"^9.14.0\",\n    \"eslint-plugin-import-x\": \"^4.4.0\",\n    \"@vitest/eslint-plugin\": \"^1.0.1\",\n    \"estree-walker\": \"catalog:\",\n    \"jsdom\": \"^25.0.0\",\n    \"lint-staged\": \"^15.2.10\",\n    \"lodash\": \"^4.17.21\",\n    \"magic-string\": \"^0.30.12\",\n    \"markdown-table\": \"^3.0.4\",\n    \"marked\": \"13.0.3\",\n    \"npm-run-all2\": \"^7.0.1\",\n    \"picocolors\": \"^1.1.1\",\n    \"prettier\": \"^3.3.3\",\n    \"pretty-bytes\": \"^6.1.1\",\n    \"pug\": \"^3.0.3\",\n    \"puppeteer\": \"~23.3.0\",\n    \"rimraf\": \"^6.0.1\",\n    \"rollup\": \"^4.25.0\",\n    \"rollup-plugin-dts\": \"^6.1.1\",\n    \"rollup-plugin-esbuild\": \"^6.1.1\",\n    \"rollup-plugin-polyfill-node\": \"^0.13.0\",\n    \"semver\": \"^7.6.3\",\n    \"serve\": \"^14.2.4\",\n    \"serve-handler\": \"^6.1.6\",\n    \"simple-git-hooks\": \"^2.11.1\",\n    \"todomvc-app-css\": \"^2.4.3\",\n    \"tslib\": \"^2.8.1\",\n    \"typescript\": \"~5.6.2\",\n    \"typescript-eslint\": \"^8.12.2\",\n    \"vite\": \"catalog:\",\n    \"vitest\": \"^2.1.1\"\n  },\n  \"pnpm\": {\n    \"peerDependencyRules\": {\n      \"allowedVersions\": {\n        \"typescript-eslint>eslint\": \"^9.0.0\",\n        \"@typescript-eslint/eslint-plugin>eslint\": \"^9.0.0\",\n        \"@typescript-eslint/parser>eslint\": \"^9.0.0\",\n        \"@typescript-eslint/type-utils>eslint\": \"^9.0.0\",\n        \"@typescript-eslint/utils>eslint\": \"^9.0.0\"\n      }\n    }\n  }\n}\npackages/runtime-core/src/hmr.ts:71:    initialDef: normalizeClassComponent(initialDef),\npackages/runtime-core/src/hmr.ts:77:function normalizeClassComponent(component: HMRComponent): ComponentOptions {\npackages/runtime-core/src/hmr.ts:94:      normalizeClassComponent(instance.type as HMRComponent).render = newRender\npackages/runtime-core/src/hmr.ts:108:  newComp = normalizeClassComponent(newComp)\npackages/runtime-core/src/hmr.ts:117:    const oldComp = normalizeClassComponent(instance.type as HMRComponent)\npackages/runtime-core/src/vnode.ts:12:  normalizeClass,\npackages/runtime-core/src/vnode.ts:596:      props.class = normalizeClass(klass)\npackages/runtime-core/src/vnode.ts:876:          ret.class = normalizeClass([ret.class, toMerge.class])\npackages/runtime-core/src/hydration.ts:30:  normalizeClass,\npackages/runtime-core/src/hydration.ts:803:    expected = normalizeClass(clientValue)\npackages/runtime-core/src/index.ts:381:  normalizeProps,\npackages/runtime-core/src/index.ts:382:  normalizeClass,\npackages/runtime-core/src/compat/renderHelpers.ts:8:  normalizeClass,\npackages/runtime-core/src/compat/renderHelpers.ts:42:        data.class = normalizeClass([data.class, value.class])\npackages/runtime-core/src/compat/renderHelpers.ts:44:        data.style = normalizeClass([data.style, value.style])\npackages/runtime-core/src/componentProps.ts:507:export function normalizePropsOptions(\npackages/runtime-core/src/componentProps.ts:531:      const [props, keys] = normalizePropsOptions(raw, appContext, true)\npackages/runtime-core/src/apiSetupHelpers.ts:403:export function normalizePropsOrEmits(\npackages/runtime-core/src/apiSetupHelpers.ts:423:  const props = normalizePropsOrEmits(raw)\npackages/runtime-core/src/apiSetupHelpers.ts:456:  return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b))\npackages/runtime-core/src/compat/renderFn.ts:9:  normalizeClass,\npackages/runtime-core/src/compat/renderFn.ts:213:    converted.class = normalizeClass([legacyProps.staticClass, converted.class])\npackages/runtime-core/src/componentOptions.ts:86:  normalizePropsOrEmits,\npackages/runtime-core/src/componentOptions.ts:1103:      normalizePropsOrEmits(to),\npackages/runtime-core/src/componentOptions.ts:1104:      normalizePropsOrEmits(from ?? {}),\npackages/shared/src/index.ts:8:export * from './normalizeProp'\npackages/compiler-dom/src/transforms/stringifyStatic.ts:33:  normalizeClass,\npackages/compiler-dom/src/transforms/stringifyStatic.ts:354:            evaluated = normalizeClass(evaluated)\npackages/shared/src/normalizeProp.ts:63:export function normalizeClass(value: unknown): string {\npackages/shared/src/normalizeProp.ts:69:      const normalized = normalizeClass(value[i])\npackages/shared/src/normalizeProp.ts:84:export function normalizeProps(\npackages/shared/src/normalizeProp.ts:90:    props.class = normalizeClass(klass)\npackages/compiler-core/src/runtimeHelpers.ts:49:  __DEV__ ? `normalizeClass` : ``,\npackages/compiler-core/src/runtimeHelpers.ts:55:  __DEV__ ? `normalizeProps` : ``,\npackages/compiler-core/src/runtimeHelpers.ts:110:  [NORMALIZE_CLASS]: `normalizeClass`,\npackages/compiler-core/src/runtimeHelpers.ts:112:  [NORMALIZE_PROPS]: `normalizeProps`,\npackages/server-renderer/src/helpers/ssrRenderAttrs.ts:14:  normalizeClass,\npackages/server-renderer/src/helpers/ssrRenderAttrs.ts:86:  return escapeHtml(normalizeClass(raw))\npackages/compiler-core/src/utils.ts:394:   * 3. normalizeProps(...)\npackages/compiler-core/src/utils.ts:395:   * 4. normalizeProps(guardReactiveProps(...))\npackages/compiler-core/src/utils.ts:449:    // in the case of nested helper call, e.g. `normalizeProps(guardReactiveProps(props))`,\npackages/compiler-core/src/utils.ts:450:    // it will be rewritten as `normalizeProps(mergeProps({ key: 0 }, props))`,\npackages/compiler-core/src/transforms/cacheStatic.ts:396:      // in the case of nested helper call, e.g. `normalizeProps(guardReactiveProps(exp))`\npackages/compiler-core/src/transforms/cacheStatic.ts:425:        // such as the `normalizeProps` generated by the compiler for pre-normalize class,\npackages/runtime-core/src/component.ts:28:  normalizePropsOptions,\npackages/runtime-core/src/component.ts:643:    propsOptions: normalizePropsOptions(type, appContext),\npackages/compiler-core/src/transforms/transformElement.ts:799:          // dynamic key binding, wrap with `normalizeProps`\nLICENSE.txt\nREADME.md\nSECURITY.md\nThirdPartyNoticeText.txt\nbin\nlib\npackage.json\n{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"isolatedDeclarations\": false\n  },\n  \"include\": [\".\"]\n}\n{\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"moduleResolution\": \"bundler\"\n  },\n  \"include\": [\"./*\"]\n}\n"
    },
    {
      "idSha256": "9462965f2002ffb6e5ebf84d633936910b584441932a9dee26f8497eb9d82c75",
      "type": "command_execution",
      "status": "completed",
      "originalLine": 12,
      "outputSha256": "ab5b7c7ac44952a11b3ef656587097006f7fbeb6417bb0884bd24b0c0e95fd48",
      "outputBytes": 6955,
      "exitCode": 0,
      "stdout": "{\n  \"configErrors\": [],\n  \"sourceCount\": 720,\n  \"hits\": [\n    {\n      \"file\": \"packages/compiler-dom/src/transforms/stringifyStatic.ts\",\n      \"refs\": [\n        [\n          \"normalizeClass\",\n          33,\n          \"ImportSpecifier\"\n        ],\n        [\n          \"normalizeClass\",\n          354,\n          \"CallExpression\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/runtime-core/src/hydration.ts\",\n      \"refs\": [\n        [\n          \"normalizeClass\",\n          30,\n          \"ImportSpecifier\"\n        ],\n        [\n          \"normalizeClass\",\n          803,\n          \"CallExpression\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/runtime-core/src/compat/renderFn.ts\",\n      \"refs\": [\n        [\n          \"normalizeClass\",\n          9,\n          \"ImportSpecifier\"\n        ],\n        [\n          \"normalizeClass\",\n          213,\n          \"CallExpression\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/runtime-core/src/compat/renderHelpers.ts\",\n      \"refs\": [\n        [\n          \"normalizeClass\",\n          8,\n          \"ImportSpecifier\"\n        ],\n        [\n          \"normalizeClass\",\n          42,\n          \"CallExpression\"\n        ],\n        [\n          \"normalizeClass\",\n          44,\n          \"CallExpression\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/runtime-core/src/index.ts\",\n      \"refs\": [\n        [\n          \"normalizeClass\",\n          382,\n          \"ExportSpecifier\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/runtime-core/src/vnode.ts\",\n      \"refs\": [\n        [\n          \"normalizeClass\",\n          12,\n          \"ImportSpecifier\"\n        ],\n        [\n          \"normalizeClass\",\n          596,\n          \"CallExpression\"\n        ],\n        [\n          \"normalizeClass\",\n          876,\n          \"CallExpression\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/runtime-dom/src/index.ts\",\n      \"refs\": [\n        [\n          \"*\",\n          306,\n          \"ExportDeclaration\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/runtime-test/src/index.ts\",\n      \"refs\": [\n        [\n          \"*\",\n          29,\n          \"ExportDeclaration\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/vue/src/index.ts\",\n      \"refs\": [\n        [\n          \"*\",\n          107,\n          \"ExportDeclaration\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/server-renderer/src/helpers/ssrRenderAttrs.ts\",\n      \"refs\": [\n        [\n          \"normalizeClass\",\n          14,\n          \"ImportSpecifier\"\n        ],\n        [\n          \"normalizeClass\",\n          86,\n          \"CallExpression\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/vue/src/runtime.ts\",\n      \"refs\": [\n        [\n          \"*\",\n          10,\n          \"ExportDeclaration\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/vue-compat/src/esm-index.ts\",\n      \"refs\": [\n        [\n          \"*\",\n          4,\n          \"ExportDeclaration\"\n        ]\n      ]\n    },\n    {\n      \"file\": \"packages/vue-compat/src/esm-runtime.ts\",\n      \"refs\": [\n        [\n          \"*\",\n          4,\n          \"ExportDeclaration\"\n        ]\n      ]\n    }\n  ]\n}\nPACKAGES\n{\"dir\":\"packages/compiler-core\",\"name\":\"@vue/compiler-core\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@babel/parser\":\"catalog:\",\"@vue/shared\":\"workspace:*\",\"entities\":\"^4.5.0\",\"estree-walker\":\"catalog:\",\"source-map-js\":\"catalog:\"},\"devDependencies\":{\"@babel/types\":\"catalog:\"}}}\n{\"dir\":\"packages/compiler-dom\",\"name\":\"@vue/compiler-dom\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@vue/shared\":\"workspace:*\",\"@vue/compiler-core\":\"workspace:*\"}}}\n{\"dir\":\"packages/compiler-sfc\",\"name\":\"@vue/compiler-sfc\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@babel/parser\":\"catalog:\",\"@vue/compiler-core\":\"workspace:*\",\"@vue/compiler-dom\":\"workspace:*\",\"@vue/compiler-ssr\":\"workspace:*\",\"@vue/shared\":\"workspace:*\",\"estree-walker\":\"catalog:\",\"magic-string\":\"catalog:\",\"postcss\":\"^8.4.48\",\"source-map-js\":\"catalog:\"},\"devDependencies\":{\"@babel/types\":\"catalog:\",\"@vue/consolidate\":\"^1.0.0\",\"hash-sum\":\"^2.0.0\",\"lru-cache\":\"10.1.0\",\"merge-source-map\":\"^1.1.0\",\"minimatch\":\"~9.0.5\",\"postcss-modules\":\"^6.0.0\",\"postcss-selector-parser\":\"^7.0.0\",\"pug\":\"^3.0.3\",\"sass\":\"^1.80.6\"}}}\n{\"dir\":\"packages/compiler-ssr\",\"name\":\"@vue/compiler-ssr\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@vue/shared\":\"workspace:*\",\"@vue/compiler-dom\":\"workspace:*\"}}}\n{\"dir\":\"packages/reactivity\",\"name\":\"@vue/reactivity\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@vue/shared\":\"workspace:*\"}}}\n{\"dir\":\"packages/runtime-core\",\"name\":\"@vue/runtime-core\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@vue/shared\":\"workspace:*\",\"@vue/reactivity\":\"workspace:*\"}}}\n{\"dir\":\"packages/runtime-dom\",\"name\":\"@vue/runtime-dom\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@vue/shared\":\"workspace:*\",\"@vue/runtime-core\":\"workspace:*\",\"@vue/reactivity\":\"workspace:*\",\"csstype\":\"^3.1.3\"},\"devDependencies\":{\"@types/trusted-types\":\"^2.0.7\"}}}\n{\"dir\":\"packages/runtime-test\",\"name\":\"@vue/runtime-test\",\"version\":\"0.0.0\",\"edges\":{\"dependencies\":{\"@vue/shared\":\"workspace:*\",\"@vue/runtime-core\":\"workspace:*\"}}}\n{\"dir\":\"packages/server-renderer\",\"name\":\"@vue/server-renderer\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@vue/shared\":\"workspace:*\",\"@vue/compiler-ssr\":\"workspace:*\"},\"peerDependencies\":{\"vue\":\"workspace:*\"}}}\n{\"dir\":\"packages/shared\",\"name\":\"@vue/shared\",\"version\":\"3.5.13\",\"edges\":{}}\n{\"dir\":\"packages/vue\",\"name\":\"vue\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@vue/shared\":\"workspace:*\",\"@vue/compiler-dom\":\"workspace:*\",\"@vue/runtime-dom\":\"workspace:*\",\"@vue/compiler-sfc\":\"workspace:*\",\"@vue/server-renderer\":\"workspace:*\"},\"peerDependencies\":{\"typescript\":\"*\"}}}\n{\"dir\":\"packages/vue-compat\",\"name\":\"@vue/compat\",\"version\":\"3.5.13\",\"edges\":{\"dependencies\":{\"@babel/parser\":\"catalog:\",\"estree-walker\":\"catalog:\",\"source-map-js\":\"catalog:\"},\"peerDependencies\":{\"vue\":\"workspace:*\"}}}\n{\"dir\":\"packages-private/dts-built-test\",\"name\":\"dts-built-test\",\"version\":\"0.0.0\",\"edges\":{\"dependencies\":{\"@vue/shared\":\"workspace:*\",\"@vue/reactivity\":\"workspace:*\",\"vue\":\"workspace:*\"}}}\n{\"dir\":\"packages-private/dts-test\",\"name\":\"dts-test\",\"version\":\"0.0.0\",\"edges\":{\"dependencies\":{\"vue\":\"workspace:*\",\"dts-built-test\":\"workspace:*\"}}}\n{\"dir\":\"packages-private/sfc-playground\",\"name\":\"@vue/sfc-playground\",\"version\":\"0.0.0\",\"scripts\":{\"dev\":\"vite\",\"build\":\"vite build\",\"serve\":\"vite preview\"},\"edges\":{\"dependencies\":{\"@vue/repl\":\"^4.4.2\",\"file-saver\":\"^2.0.5\",\"jszip\":\"^3.10.1\",\"vue\":\"workspace:*\"},\"devDependencies\":{\"@vitejs/plugin-vue\":\"catalog:\",\"vite\":\"catalog:\"}}}\n{\"dir\":\"packages-private/template-explorer\",\"name\":\"@vue/template-explorer\",\"version\":\"0.0.0\",\"edges\":{\"dependencies\":{\"monaco-editor\":\"^0.52.0\",\"source-map-js\":\"^1.2.1\"}}}\n{\"dir\":\"packages-private/vite-debug\",\"name\":\"vite-debug\",\"scripts\":{\"dev\":\"vite\",\"build\":\"vite build\",\"serve\":\"vite preview\"},\"edges\":{\"devDependencies\":{\"@vitejs/plugin-vue\":\"catalog:\",\"vite\":\"catalog:\",\"vue\":\"workspace:*\"}}}\n"
    },
    {
      "idSha256": "3f21b4ea2fbe67cd553dbcfae108e6632bdb6c655218a1e4ad5a543cc24800f4",
      "type": "command_execution",
      "status": "completed",
      "originalLine": 15,
      "outputSha256": "29700d6ba9e6d70b61bc7155ed9e06a3f6c30cc1c28b4163b8642d349d2cd5b4",
      "outputBytes": 10862,
      "exitCode": 0,
      "stdout": "?? .codegraph\npackages-private/vite-debug/vite.config.ts\npackages-private/vite-debug/tsconfig.json\npackages-private/vite-debug/package.json\npackages-private/vite-debug/README.md\npackages-private/vite-debug/main.ts\npackages-private/vite-debug/index.html\npackages-private/vite-debug/App.vue\npackages-private/tsconfig.json\npackages-private/dts-test/componentTypeExtensions.test-d.tsx\npackages-private/dts-test/watch.test-d.ts\npackages-private/dts-test/componentInstance.test-d.tsx\npackages-private/dts-test/reactivity.test-d.ts\npackages-private/dts-test/built.test-d.ts\npackages-private/dts-test/utils.d.ts\npackages-private/dts-test/package.json\npackages-private/dts-test/tsconfig.test.json\npackages-private/dts-test/compiler.test-d.ts\npackages-private/dts-test/README.md\npackages-private/dts-test/directives.test-d.ts\npackages-private/dts-test/h.test-d.ts\npackages-private/dts-test/extractProps.test-d.ts\npackages-private/dts-test/appUse.test-d.ts\npackages-private/dts-test/appDirective.test-d.ts\npackages-private/dts-test/component.test-d.ts\npackages-private/dts-test/functionalComponent.test-d.tsx\npackages-private/dts-test/tsx.test-d.tsx\npackages-private/dts-test/inject.test-d.ts\npackages-private/dts-test/defineCustomElement.test-d.ts\npackages-private/dts-test/setupHelpers.test-d.ts\npackages-private/dts-test/ref.test-d.ts\npackages-private/dts-test/defineComponent.test-d.tsx\npackages-private/global.d.ts\npackages-private/template-explorer/src/options.ts\npackages-private/template-explorer/src/theme.ts\npackages-private/template-explorer/src/index.ts\npackages-private/template-explorer/style.css\npackages-private/template-explorer/package.json\npackages-private/template-explorer/README.md\npackages-private/template-explorer/_redirects\npackages-private/template-explorer/index.html\npackages-private/template-explorer/local.html\npackages-private/sfc-playground/src/Header.vue\npackages-private/sfc-playground/src/vue-dev-proxy.ts\npackages-private/sfc-playground/src/vue-server-renderer-dev-proxy.ts\npackages-private/sfc-playground/src/icons/Sun.vue\npackages-private/sfc-playground/src/icons/Reload.vue\npackages-private/sfc-playground/src/icons/Copy.vue\npackages-private/sfc-playground/src/icons/Moon.vue\npackages-private/sfc-playground/src/icons/Share.vue\npackages-private/sfc-playground/src/icons/GitHub.vue\npackages-private/sfc-playground/src/icons/Download.vue\npackages-private/sfc-playground/src/download/download.ts\npackages-private/sfc-playground/src/download/template/package.json\npackages-private/sfc-playground/src/download/template/main.js\npackages-private/sfc-playground/src/download/template/README.md\npackages-private/sfc-playground/src/download/template/vite.config.js\npackages-private/sfc-playground/src/download/template/index.html\npackages-private/sfc-playground/src/VersionSelect.vue\npackages-private/sfc-playground/src/main.ts\npackages-private/sfc-playground/src/vue-dev-proxy-prod.ts\nlockfileVersion: '9.0'\n\nsettings:\n  autoInstallPeers: true\n  excludeLinksFromLockfile: false\n\ncatalogs:\n  default:\n    '@babel/parser':\n      specifier: ^7.25.3\n      version: 7.25.3\n    '@babel/types':\n      specifier: ^7.25.2\n      version: 7.25.2\n    '@vitejs/plugin-vue':\n      specifier: ^5.1.2\n      version: 5.1.2\n    estree-walker:\n      specifier: ^2.0.2\n      version: 2.0.2\n    magic-string:\n      specifier: ^0.30.11\n      version: 0.30.11\n    source-map-js:\n      specifier: ^1.2.0\n      version: 1.2.0\n    vite:\n      specifier: ^5.4.0\n      version: 5.4.0\n\nimporters:\n\n  .:\n    devDependencies:\n      '@babel/parser':\n        specifier: 'catalog:'\n        version: 7.25.3\n      '@babel/types':\n        specifier: 'catalog:'\n        version: 7.25.2\n      '@rollup/plugin-alias':\n        specifier: ^5.1.1\n        version: 5.1.1(rollup@4.25.0)\n      '@rollup/plugin-commonjs':\n        specifier: ^28.0.1\n        version: 28.0.1(rollup@4.25.0)\n      '@rollup/plugin-json':\n        specifier: ^6.1.0\n        version: 6.1.0(rollup@4.25.0)\n      '@rollup/plugin-node-resolve':\n        specifier: ^15.3.0\n        version: 15.3.0(rollup@4.25.0)\n      '@rollup/plugin-replace':\n        specifier: 5.0.4\n        version: 5.0.4(rollup@4.25.0)\n      '@swc/core':\n        specifier: ^1.9.1\n        version: 1.9.1\n      '@types/hash-sum':\n        specifier: ^1.0.2\n        version: 1.0.2\n      '@types/node':\n        specifier: ^22.8.7\n        version: 22.8.7\n      '@types/semver':\n        specifier: ^7.5.8\n        version: 7.5.8\n      '@types/serve-handler':\n        specifier: ^6.1.4\n        version: 6.1.4\n      '@vitest/coverage-v8':\n        specifier: ^2.1.1\n        version: 2.1.1(vitest@2.1.1(@types/node@22.8.7)(jsdom@25.0.0)(sass@1.80.6))\n      '@vitest/eslint-plugin':\n        specifier: ^1.0.1\n        version: 1.1.6(@typescript-eslint/utils@8.12.2(eslint@9.14.0)(typescript@5.6.2))(eslint@9.14.0)(typescript@5.6.2)(vitest@2.1.1(@types/node@22.8.7)(jsdom@25.0.0)(sass@1.80.6))\n      '@vue/consolidate':\n        specifier: 1.0.0\n        version: 1.0.0\n      conventional-changelog-cli:\n        specifier: ^5.0.0\n        version: 5.0.0(conventional-commits-filter@5.0.0)\n      enquirer:\n        specifier: ^2.4.1\n        version: 2.4.1\n      esbuild:\n        specifier: ^0.24.0\n        version: 0.24.0\n      esbuild-plugin-polyfill-node:\n        specifier: ^0.3.0\n        version: 0.3.0(esbuild@0.24.0)\n      eslint:\n        specifier: ^9.14.0\n        version: 9.14.0\n      eslint-plugin-import-x:\n        specifier: ^4.4.0\n        version: 4.4.0(eslint@9.14.0)(typescript@5.6.2)\n      estree-walker:\n        specifier: 'catalog:'\n        version: 2.0.2\n      jsdom:\n        specifier: ^25.0.0\n        version: 25.0.0\n      lint-staged:\n        specifier: ^15.2.10\n        version: 15.2.10\n      lodash:\n        specifier: ^4.17.21\n        version: 4.17.21\n      magic-string:\n        specifier: ^0.30.12\n        version: 0.30.12\n      markdown-table:\n        specifier: ^3.0.4\n        version: 3.0.4\n      marked:\n        specifier: 13.0.3\n        version: 13.0.3\n      npm-run-all2:\n        specifier: ^7.0.1\n        version: 7.0.1\n      picocolors:\n        specifier: ^1.1.1\n        version: 1.1.1\n      prettier:\n        specifier: ^3.3.3\n        version: 3.3.3\n      pretty-bytes:\n        specifier: ^6.1.1\n        version: 6.1.1\n      pug:\n        specifier: ^3.0.3\n        version: 3.0.3\n      puppeteer:\n        specifier: ~23.3.0\n        version: 23.3.0(typescript@5.6.2)\n      rimraf:\n        specifier: ^6.0.1\n        version: 6.0.1\n      rollup:\n        specifier: ^4.25.0\n        version: 4.25.0\n      rollup-plugin-dts:\n        specifier: ^6.1.1\n        version: 6.1.1(rollup@4.25.0)(typescript@5.6.2)\n      rollup-plugin-esbuild:\n        specifier: ^6.1.1\n        version: 6.1.1(esbuild@0.24.0)(rollup@4.25.0)\n      rollup-plugin-polyfill-node:\n        specifier: ^0.13.0\n        version: 0.13.0(rollup@4.25.0)\n      semver:\n        specifier: ^7.6.3\n        version: 7.6.3\n      serve:\n        specifier: ^14.2.4\n        version: 14.2.4\n      serve-handler:\n        specifier: ^6.1.6\n        version: 6.1.6\n      simple-git-hooks:\n        specifier: ^2.11.1\n        version: 2.11.1\n      todomvc-app-css:\n        specifier: ^2.4.3\n        version: 2.4.3\n      tslib:\n        specifier: ^2.8.1\n        version: 2.8.1\n      typescript:\n        specifier: ~5.6.2\n        version: 5.6.2\n      typescript-eslint:\n        specifier: ^8.12.2\n        version: 8.12.2(eslint@9.14.0)(typescript@5.6.2)\n      vite:\n        specifier: 'catalog:'\n        version: 5.4.0(@types/node@22.8.7)(sass@1.80.6)\n      vitest:\n        specifier: ^2.1.1\n        version: 2.1.1(@types/node@22.8.7)(jsdom@25.0.0)(sass@1.80.6)\n\n  packages-private/dts-built-test:\n    dependencies:\n      '@vue/reactivity':\n        specifier: workspace:*\n        version: link:../../packages/reactivity\n      '@vue/shared':\n        specifier: workspace:*\n        version: link:../../packages/shared\n      vue:\n        specifier: workspace:*\n        version: link:../../packages/vue\n\n  packages-private/dts-test:\n    dependencies:\n      dts-built-test:\n        specifier: workspace:*\n        version: link:../dts-built-test\n      vue:\n        specifier: workspace:*\n        version: link:../../packages/vue\n\n  packages-private/sfc-playground:\n    dependencies:\n      '@vue/repl':\n        specifier: ^4.4.2\n        version: 4.4.2\n      file-saver:\n        specifier: ^2.0.5\nlrwxr-xr-x@ 1 dima  staff  21 Nov  6 23:16 packages-private/sfc-playground/node_modules/vue -> ../../../packages/vue\nlrwxr-xr-x@ 1 dima  staff  21 Nov  6 23:16 packages-private/vite-debug/node_modules/vue -> ../../../packages/vue\nlrwxr-xr-x@ 1 dima  staff   9 Nov  6 23:16 packages/vue-compat/node_modules/vue -> ../../vue\npackages/vue-compat/src/runtime.ts:1:// This entry exports the runtime only, and is built as\npackages/vue-compat/src/runtime.ts:23:export default Vue\npackages/vue-compat/src/esm-runtime.ts:3:export default Vue\npackages/vue-compat/src/esm-runtime.ts:4:export * from '@vue/runtime-dom'\npackages/vue-compat/src/esm-runtime.ts:7:export { configureCompat }\npackages/vue-compat/src/index.ts:93:  // The wildcard import results in a huge object with every export\npackages/vue-compat/src/index.ts:112:export default Vue\npackages/vue-compat/src/esm-index.ts:3:export default Vue\npackages/vue-compat/src/esm-index.ts:4:export * from '@vue/runtime-dom'\npackages/vue-compat/src/esm-index.ts:7:export { configureCompat }\n)\nexport const RENDER_LIST: unique symbol = Symbol(__DEV__ ? `renderList` : ``)\nexport const RENDER_SLOT: unique symbol = Symbol(__DEV__ ? `renderSlot` : ``)\nexport const CREATE_SLOTS: unique symbol = Symbol(__DEV__ ? `createSlots` : ``)\nexport const TO_DISPLAY_STRING: unique symbol = Symbol(\n  __DEV__ ? `toDisplayString` : ``,\n)\nexport const MERGE_PROPS: unique symbol = Symbol(__DEV__ ? `mergeProps` : ``)\nexport const NORMALIZE_CLASS: unique symbol = Symbol(\n  __DEV__ ? `normalizeClass` : ``,\n)\nexport const NORMALIZE_STYLE: unique symbol = Symbol(\n  __DEV__ ? `normalizeStyle` : ``,\n)\nexport const NORMALIZE_PROPS: unique symbol = Symbol(\n  __DEV__ ? `normalizeProps` : ``,\n)\nexport const GUARD_REACTIVE_PROPS: unique symbol = Symbol(\n  __DEV__ ? `guardReactiveProps` : ``,\n)\nexport const TO_HANDLERS: unique symbol = Symbol(__DEV__ ? `toHandlers` : ``)\n  [RESOLVE_COMPONENT]: `resolveComponent`,\n  [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,\n  [RESOLVE_DIRECTIVE]: `resolveDirective`,\n  [RESOLVE_FILTER]: `resolveFilter`,\n  [WITH_DIRECTIVES]: `withDirectives`,\n  [RENDER_LIST]: `renderList`,\n  [RENDER_SLOT]: `renderSlot`,\n  [CREATE_SLOTS]: `createSlots`,\n  [TO_DISPLAY_STRING]: `toDisplayString`,\n  [MERGE_PROPS]: `mergeProps`,\n  [NORMALIZE_CLASS]: `normalizeClass`,\n  [NORMALIZE_STYLE]: `normalizeStyle`,\n  [NORMALIZE_PROPS]: `normalizeProps`,\n  [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,\n  [TO_HANDLERS]: `toHandlers`,\n  [CAMELIZE]: `camelize`,\n"
    },
    {
      "idSha256": "f4fdd034b54297294baf2c6977028dba2f4e8949c52e921b04118670cad8192e",
      "type": "command_execution",
      "status": "completed",
      "originalLine": 17,
      "outputSha256": "efea91f6f6b21bc534908263eff776de1074dd4c79ff0e725d85cd6f6b158774",
      "outputBytes": 6239,
      "exitCode": 0,
      "stdout": "// This entry is the \"full-build\" that includes both the runtime\n// and the compiler, and supports on-the-fly compilation of the template option.\nimport { createCompatVue } from './createCompatVue'\nimport {\n  type CompilerError,\n  type CompilerOptions,\n  compile,\n} from '@vue/compiler-dom'\nimport {\n  type CompatVue,\n  type RenderFunction,\n  registerRuntimeCompiler,\n  warn,\n} from '@vue/runtime-dom'\nimport {\n  NOOP,\n  extend,\n  genCacheKey,\n  generateCodeFrame,\n  isString,\n} from '@vue/shared'\nimport type { InternalRenderFunction } from 'packages/runtime-core/src/component'\nimport * as runtimeDom from '@vue/runtime-dom'\nimport {\n  DeprecationTypes,\n  warnDeprecation,\n} from '../../runtime-core/src/compat/compatConfig'\n\nconst compileCache: Record<string, RenderFunction> = Object.create(null)\n\nfunction compileToFunction(\n  template: string | HTMLElement,\n  options?: CompilerOptions,\n): RenderFunction {\n  if (!isString(template)) {\n    if (template.nodeType) {\n      template = template.innerHTML\n    } else {\n      __DEV__ && warn(`invalid template option: `, template)\n      return NOOP\n    }\n  }\n\n  const key = genCacheKey(template, options)\n  const cached = compileCache[key]\n  if (cached) {\n    return cached\n  }\n\n  if (template[0] === '#') {\n    const el = document.querySelector(template)\n    if (__DEV__ && !el) {\n      warn(`Template element not found or is empty: ${template}`)\n    }\n    // __UNSAFE__\n    // Reason: potential execution of JS expressions in in-DOM template.\n    // The user must make sure the in-DOM template is trusted. If it's rendered\n    // by the server, the template should not contain any user data.\n    template = el ? el.innerHTML : ``\n  }\n\n  if (__DEV__ && !__TEST__ && (!options || !options.whitespace)) {\n    warnDeprecation(DeprecationTypes.CONFIG_WHITESPACE, null)\n  }\n\n  const { code } = compile(\n    template,\n    extend(\n      {\n        hoistStatic: true,\n        whitespace: 'preserve',\n        onError: __DEV__ ? onError : undefined,\n        onWarn: __DEV__ ? e => onError(e, true) : NOOP,\n      } as CompilerOptions,\n      options,\n    ),\n  )\n\n  function onError(err: CompilerError, asWarning = false) {\n    const message = asWarning\n      ? err.message\n      : `Template compilation error: ${err.message}`\n    const codeFrame =\n      err.loc &&\n      generateCodeFrame(\n        template as string,\n        err.loc.start.offset,\n        err.loc.end.offset,\n      )\n    warn(codeFrame ? `${message}\\n${codeFrame}` : message)\n  }\n\n  // The wildcard import results in a huge object with every export\n  // with keys that cannot be mangled, and can be quite heavy size-wise.\n  // In the global build we know `Vue` is available globally so we can avoid\n  // the wildcard object.\n  const render = (\n    __GLOBAL__ ? new Function(code)() : new Function('Vue', code)(runtimeDom)\n  ) as RenderFunction\n\n  // mark the function as runtime compiled\n  ;(render as InternalRenderFunction)._rc = true\n\n  return (compileCache[key] = render)\n}\n\nregisterRuntimeCompiler(compileToFunction)\n\nconst Vue: CompatVue = createCompatVue()\nVue.compile = compileToFunction\n\nexport default Vue\n// serve vue to the iframe sandbox during dev.\nexport * from 'vue'\n// serve vue to the iframe sandbox during dev.\nexport * from 'vue/dist/vue.runtime.esm-browser.prod.js'\n{\n  \"name\": \"@vue/compat\",\n  \"version\": \"3.5.13\",\n  \"description\": \"Vue 3 compatibility build for Vue 2\",\n  \"main\": \"index.js\",\n  \"module\": \"dist/vue.runtime.esm-bundler.js\",\n  \"unpkg\": \"dist/vue.global.js\",\n  \"jsdelivr\": \"dist/vue.global.js\",\n  \"files\": [\n    \"index.js\",\n    \"dist\"\n  ],\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/vue.d.ts\",\n      \"node\": {\n        \"production\": \"./dist/vue.cjs.prod.js\",\n        \"development\": \"./dist/vue.cjs.js\",\n        \"default\": \"./index.js\"\n      },\n      \"module\": \"./dist/vue.esm-bundler.js\",\n      \"import\": \"./dist/vue.esm-bundler.js\",\n      \"require\": \"./index.js\"\n    },\n    \"./*\": \"./*\"\n  },\n  \"buildOptions\": {\n    \"name\": \"Vue\",\n    \"filename\": \"vue\",\n    \"compat\": true,\n    \"formats\": [\n      \"esm-bundler\",\n      \"esm-bundler-runtime\",\n      \"cjs\",\n      \"global\",\n      \"global-runtime\",\n      \"esm-browser\",\n      \"esm-browser-runtime\"\n    ]\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/vuejs/core.git\"\n  },\n  \"keywords\": [\n    \"vue\"\n  ],\n  \"author\": \"Evan You\",\n  \"license\": \"MIT\",\n  \"bugs\": {\n    \"url\": \"https://github.com/vuejs/core/issues\"\n  },\n  \"homepage\": \"https://github.com/vuejs/core/tree/main/packages/vue-compat#readme\",\n  \"dependencies\": {\n    \"@babel/parser\": \"catalog:\",\n    \"estree-walker\": \"catalog:\",\n    \"source-map-js\": \"catalog:\"\n  },\n  \"peerDependencies\": {\n    \"vue\": \"workspace:*\"\n  }\n}\n187:        version: link:../../packages/reactivity\n190:        version: link:../../packages/shared\n191:      vue:\n193:        version: link:../../packages/vue\n199:        version: link:../dts-built-test\n200:      vue:\n202:        version: link:../../packages/vue\n215:      vue:\n217:        version: link:../../packages/vue\n235:  packages-private/vite-debug:\n243:      vue:\n245:        version: link:../../packages/vue\n254:        version: link:../shared\n273:        version: link:../compiler-core\n276:        version: link:../shared\n285:        version: link:../compiler-core\n288:        version: link:../compiler-dom\n291:        version: link:../compiler-ssr\n294:        version: link:../shared\n343:        version: link:../compiler-dom\n346:        version: link:../shared\n352:        version: link:../shared\n358:        version: link:../reactivity\n361:        version: link:../shared\n367:        version: link:../reactivity\n370:        version: link:../runtime-core\n373:        version: link:../shared\n386:        version: link:../runtime-core\n389:        version: link:../shared\n395:        version: link:../compiler-ssr\n398:        version: link:../shared\n399:      vue:\n401:        version: link:../vue\n405:  packages/vue:\n409:        version: link:../compiler-dom\n412:        version: link:../compiler-sfc\n415:        version: link:../runtime-dom\n418:        version: link:../server-renderer\n421:        version: link:../shared\n437:      vue:\n439:        version: link:../vue\n1390:      vue: ^3.2.25\n4330:      vue: link:packages/vue\n"
    },
    {
      "idSha256": "cfc5c391b5ba915c081c7d09c3edfc599f5369196d03ab00aa96b73369f89b5f",
      "type": "command_execution",
      "status": "completed",
      "originalLine": 19,
      "outputSha256": "ce75b1c94e4d48c24382ce1f3f232a07870eb604073fce2db306dac693c7d23e",
      "outputBytes": 1624,
      "exitCode": 0,
      "stdout": "{\"config\":\"packages-private/tsconfig.json\",\"files\":[],\"hits\":[]}\n{\"config\":\"packages-private/vite-debug/tsconfig.json\",\"files\":[],\"hits\":[]}\n{\"package\":\"@vue/compiler-core\",\"version\":\"3.5.13\",\"edges\":[\"@vue/shared\"]}\n{\"package\":\"@vue/compiler-dom\",\"version\":\"3.5.13\",\"edges\":[\"@vue/shared\",\"@vue/compiler-core\"]}\n{\"package\":\"@vue/compiler-sfc\",\"version\":\"3.5.13\",\"edges\":[\"@vue/compiler-core\",\"@vue/compiler-dom\",\"@vue/compiler-ssr\",\"@vue/shared\"]}\n{\"package\":\"@vue/compiler-ssr\",\"version\":\"3.5.13\",\"edges\":[\"@vue/shared\",\"@vue/compiler-dom\"]}\n{\"package\":\"@vue/reactivity\",\"version\":\"3.5.13\",\"edges\":[\"@vue/shared\"]}\n{\"package\":\"@vue/runtime-core\",\"version\":\"3.5.13\",\"edges\":[\"@vue/shared\",\"@vue/reactivity\"]}\n{\"package\":\"@vue/runtime-dom\",\"version\":\"3.5.13\",\"edges\":[\"@vue/shared\",\"@vue/runtime-core\",\"@vue/reactivity\"]}\n{\"package\":\"@vue/runtime-test\",\"version\":\"0.0.0\",\"edges\":[\"@vue/shared\",\"@vue/runtime-core\"]}\n{\"package\":\"@vue/server-renderer\",\"version\":\"3.5.13\",\"edges\":[\"@vue/shared\",\"@vue/compiler-ssr\",\"vue\"]}\n{\"package\":\"@vue/shared\",\"version\":\"3.5.13\",\"edges\":[]}\n{\"package\":\"vue\",\"version\":\"3.5.13\",\"edges\":[\"@vue/shared\",\"@vue/compiler-dom\",\"@vue/runtime-dom\",\"@vue/compiler-sfc\",\"@vue/server-renderer\"]}\n{\"package\":\"@vue/compat\",\"version\":\"3.5.13\",\"edges\":[\"vue\"]}\n{\"package\":\"dts-built-test\",\"version\":\"0.0.0\",\"edges\":[\"@vue/shared\",\"@vue/reactivity\",\"vue\"]}\n{\"package\":\"dts-test\",\"version\":\"0.0.0\",\"edges\":[\"vue\",\"dts-built-test\"]}\n{\"package\":\"@vue/sfc-playground\",\"version\":\"0.0.0\",\"edges\":[\"vue\"]}\n{\"package\":\"@vue/template-explorer\",\"version\":\"0.0.0\",\"edges\":[]}\n{\"package\":\"vite-debug\",\"edges\":[\"vue\"]}\n"
    },
    {
      "idSha256": "a26c6de8780e4e792e8ad6df3fb6ac31fe229b7b2f8bc2aa29c602e8d647918c",
      "type": "command_execution",
      "status": "completed",
      "originalLine": 21,
      "outputSha256": "096c17e14c77abadb2d65dfec1ac9e7818c15f4fa3c0aed6b0596d6cf7ec2d79",
      "outputBytes": 2308,
      "exitCode": 0,
      "stdout": "{\n  \"direct\": 13,\n  \"packageDependents\": 15,\n  \"validationTargets\": 3,\n  \"dependents\": [\n    {\n      \"package\": \"@vue/compiler-core@3.5.13\",\n      \"chain\": [\n        \"@vue/compiler-core@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/compiler-dom@3.5.13\",\n      \"chain\": [\n        \"@vue/compiler-dom@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/compiler-sfc@3.5.13\",\n      \"chain\": [\n        \"@vue/compiler-sfc@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/compiler-ssr@3.5.13\",\n      \"chain\": [\n        \"@vue/compiler-ssr@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/reactivity@3.5.13\",\n      \"chain\": [\n        \"@vue/reactivity@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/runtime-core@3.5.13\",\n      \"chain\": [\n        \"@vue/runtime-core@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/runtime-dom@3.5.13\",\n      \"chain\": [\n        \"@vue/runtime-dom@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/runtime-test@0.0.0\",\n      \"chain\": [\n        \"@vue/runtime-test@0.0.0\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/server-renderer@3.5.13\",\n      \"chain\": [\n        \"@vue/server-renderer@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"vue@3.5.13\",\n      \"chain\": [\n        \"vue@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/compat@3.5.13\",\n      \"chain\": [\n        \"@vue/compat@3.5.13\",\n        \"vue@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"dts-built-test@0.0.0\",\n      \"chain\": [\n        \"dts-built-test@0.0.0\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"dts-test@0.0.0\",\n      \"chain\": [\n        \"dts-test@0.0.0\",\n        \"vue@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"@vue/sfc-playground@0.0.0\",\n      \"chain\": [\n        \"@vue/sfc-playground@0.0.0\",\n        \"vue@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    },\n    {\n      \"package\": \"vite-debug\",\n      \"chain\": [\n        \"vite-debug\",\n        \"vue@3.5.13\",\n        \"@vue/shared@3.5.13\"\n      ]\n    }\n  ]\n}\n"
    },
    {
      "idSha256": "fcf995ce3ce15e435101e7a49adbafdc79fcf9203eefbab40b5d124cae39b03f",
      "type": "command_execution",
      "status": "completed",
      "originalLine": 24,
      "outputSha256": "7275f74a37fcb6bc1d9431f8532077493723e4c35233d90c98c9a76afddc7caf",
      "outputBytes": 110,
      "exitCode": 0,
      "stdout": "JSON structure, evidence quotes, line ranges and duplicate checks passed.\n?? .codegraph\n?? impact-answer.json\n"
    }
  ],
  "evidenceBoundary": "Only item.completed command_execution stdout and mcp_tool_call result/error payloads. No agent reasoning, assistant messages, command input, unrelated item fields or file edit bodies. Tool-returned message fields remain tool evidence."
}
