{"version":3,"file":"runtime-snippet.cjs","names":[],"sources":["../src/runtime-snippet.ts"],"sourcesContent":["import type { ProjectAnalysis } from './core';\n\ninterface RuntimeKeyInfo {\n  key: string;\n  label: string;\n  kind: string;\n  confidence: string;\n}\n\ntype RuntimeMap = Record<string, RuntimeKeyInfo[]>;\n\nfunction toRuntimeMap(result: ProjectAnalysis): RuntimeMap {\n  const runtimeMap: RuntimeMap = {};\n  for (const page of Object.values(result.pages)) {\n    runtimeMap[page.page] = page.keys.map((item) => ({\n      key: item.key,\n      label: item.sourceName || item.generatedName || item.expressionSummary || 'unknown',\n      kind: item.kind,\n      confidence: item.confidence,\n    }));\n  }\n  return runtimeMap;\n}\n\nexport function renderRuntimeSnippet(result: ProjectAnalysis): string {\n  const json = JSON.stringify(toRuntimeMap(result), null, 2);\n  return `(function () {\n  var KEYMAP = ${json};\n  var globalObject = typeof globalThis !== \"undefined\" ? globalThis : typeof wx !== \"undefined\" ? wx : this;\n  var watchTimer = null;\n  var lastSnapshotText = \"\";\n\n  function getPagesSafe() {\n    try {\n      return typeof getCurrentPages === \"function\" ? getCurrentPages() : [];\n    } catch (error) {\n      return [];\n    }\n  }\n\n  function normalizeRoute(route) {\n    return route && route.charAt(0) === \"/\" ? route.slice(1) : route;\n  }\n\n  function findPage(route) {\n    var pages = getPagesSafe();\n    if (!route) return pages[pages.length - 1] || null;\n    var normalized = normalizeRoute(route);\n    for (var index = pages.length - 1; index >= 0; index -= 1) {\n      var page = pages[index];\n      if (normalizeRoute(page.route || page.__route__) === normalized) return page;\n    }\n    return null;\n  }\n\n  function routeOf(page) {\n    return normalizeRoute(page && (page.route || page.__route__)) || \"\";\n  }\n\n  function snapshot(route) {\n    var page = findPage(route);\n    if (!page) return { route: route || \"current\", error: \"No active page found.\" };\n\n    var routeName = routeOf(page);\n    var entries = KEYMAP[routeName] || [];\n    var data = page.data || {};\n    return {\n      route: routeName,\n      values: entries.map(function (item) {\n        return {\n          key: item.key,\n          label: item.label,\n          value: data[item.key],\n          kind: item.kind,\n          confidence: item.confidence\n        };\n      })\n    };\n  }\n\n  function table(route) {\n    var snap = snapshot(route);\n    if (snap.error) {\n      console.warn(\"[uniappx-keymap] \" + snap.error);\n      return snap;\n    }\n    if (typeof console.table === \"function\") console.table(snap.values);\n    else console.log(\"[uniappx-keymap]\", snap.values);\n    return snap;\n  }\n\n  function watch(route, interval) {\n    unwatch();\n    var delay = typeof interval === \"number\" && interval > 0 ? interval : 500;\n    lastSnapshotText = \"\";\n    watchTimer = setInterval(function () {\n      var snap = snapshot(route);\n      var text = JSON.stringify(snap);\n      if (text !== lastSnapshotText) {\n        lastSnapshotText = text;\n        console.log(\"[uniappx-keymap] runtime values changed:\", snap.route);\n        if (!snap.error) table(route);\n        else console.warn(\"[uniappx-keymap] \" + snap.error);\n      }\n    }, delay);\n    console.log(\"[uniappx-keymap] watching runtime values every \" + delay + \"ms. Call __UNIAPPX_KEYMAP__.unwatch() to stop.\");\n  }\n\n  function unwatch() {\n    if (watchTimer) clearInterval(watchTimer);\n    watchTimer = null;\n  }\n\n  globalObject.__UNIAPPX_KEYMAP__ = {\n    keymap: KEYMAP,\n    snapshot: snapshot,\n    table: table,\n    watch: watch,\n    unwatch: unwatch\n  };\n\n  console.log(\"[uniappx-keymap] console snippet ready. Try __UNIAPPX_KEYMAP__.table() or __UNIAPPX_KEYMAP__.watch().\");\n})();\n`;\n}\n"],"mappings":";;AAWA,SAAS,aAAa,QAAqC;CACzD,MAAM,aAAyB,EAAE;AACjC,MAAK,MAAM,QAAQ,OAAO,OAAO,OAAO,MAAM,CAC5C,YAAW,KAAK,QAAQ,KAAK,KAAK,KAAK,UAAU;EAC/C,KAAK,KAAK;EACV,OAAO,KAAK,cAAc,KAAK,iBAAiB,KAAK,qBAAqB;EAC1E,MAAM,KAAK;EACX,YAAY,KAAK;EAClB,EAAE;AAEL,QAAO;;AAGT,SAAgB,qBAAqB,QAAiC;AAEpE,QAAO;iBADM,KAAK,UAAU,aAAa,OAAO,EAAE,MAAM,EAAE,CAEtC"}