{"version":3,"file":"index.mjs","sources":["../../src/node/utils/virtual-module/utils/extractStaticData.ts","../../src/node/utils/virtual-module/utils/PendingTaskCounter.ts","../../src/node/utils/virtual-module/utils/File.ts","../../src/node/utils/virtual-module/VirtualModules.ts","../../src/node/utils/virtual-module/VirtualModulesManager.ts","../../src/node/utils/virtual-module/ProxyModulesManager.ts","../../src/node/page-strategy/UpdateBuffer.ts","../../src/node/page-strategy/PagesDataKeeper.ts","../../src/node/page-strategy/index.ts","../../src/node/page-strategy/DefaultPageStrategy/index.ts","../../src/node/page-strategy/pageUtils.ts","../../src/node/virtual-module-plugins/theme.ts","../../src/node/utils/mdastUtils.ts","../../src/node/virtual-module-plugins/demo-modules/mdx-plugin.ts","../../src/node/virtual-module-plugins/demo-modules/index.tsx","../../src/node/virtual-module-plugins/ts-info-module/extract.ts","../../src/node/virtual-module-plugins/ts-info-module/mdx-plugin.ts","../../src/node/virtual-module-plugins/ts-info-module/index.ts","../../src/node/utils/injectHTMLTag.ts","../../src/node/utils/mdx-plugin-file-text.ts","../../src/node/virtual-module-plugins/outline-info-module/extractOutlineInfo.ts","../../src/node/virtual-module-plugins/outline-info-module/index.tsx","../../src/node/index.ts"],"sourcesContent":["import { extract, parse } from 'jest-docblock'\nimport grayMatter from 'gray-matter'\nimport { File } from './File'\n\nexport async function extractStaticData(\n  file: File\n): Promise<{ sourceType: string; [key: string]: any }> {\n  const code = await file.read()\n  switch (file.extname) {\n    case 'md':\n    case 'mdx':\n      const { data: frontmatter } = grayMatter(code)\n      const staticData: any = {\n        ...frontmatter,\n        sourceType: 'md',\n        __sourceFilePath: file.path,\n      }\n      if (staticData.title === undefined) {\n        staticData.title = extractMarkdownTitle(code)\n      }\n      return staticData\n    case 'js':\n    case 'jsx':\n    case 'ts':\n    case 'tsx':\n      return { ...parse(extract(code)), sourceType: 'js' }\n    default:\n      throw new Error(`unexpected extension name \"${file.extname}\"`)\n  }\n}\nfunction extractMarkdownTitle(code: string) {\n  const match = code.match(/^# (.*)$/m)\n  return match?.[1]\n}\n","export class PendingTaskCounter {\n  private count = 0\n  private callbacks: (() => void)[] = []\n\n  public countTask() {\n    this.count++\n    let ended = false\n    return () => {\n      if (ended) return\n      ended = true\n      this.count--\n      if (this.count === 0) {\n        this.callbacks.forEach((cb) => cb())\n        this.callbacks.length = 0\n      }\n    }\n  }\n\n  /**\n   * the callback style is preferred over the promise style\n   * because cb will be called **synchronously** when count turn 0\n   * while promise-then-cb would be called in next microtask (at that time the state may have changed)\n   */\n  public callOnceWhenIdle(cb: () => void) {\n    if (this.count === 0) {\n      cb()\n    } else {\n      this.callbacks.push(cb)\n    }\n  }\n\n  /** track a changeable pending state */\n  public countPendingState(pendingState: PendingState) {\n    let stopCounting: undefined | (() => void)\n    pendingState.onStateChange((isPending) => {\n      if (isPending) {\n        // if this task has already been counted, don't count again\n        if (stopCounting) return\n        stopCounting = this.countTask()\n      } else {\n        stopCounting?.()\n        stopCounting = undefined\n      }\n    })\n  }\n}\n\nexport class PendingState {\n  private _isPending = false\n  get isPending() {\n    return this._isPending\n  }\n  set isPending(value: boolean) {\n    if (this._isPending === value) return\n    this._isPending = value\n    this.cbs.forEach((cb) => cb(value))\n  }\n\n  private cbs: Array<(isPending: boolean) => void> = []\n  onStateChange(cb: (isPending: boolean) => void) {\n    this.cbs.push(cb)\n    return () => {\n      this.cbs = this.cbs.filter((v) => v !== cb)\n    }\n  }\n}\n","import fs from 'fs-extra'\nimport * as path from 'path'\n\nexport class File {\n  content: Promise<string> | null = null\n\n  constructor(readonly path: string, readonly base: string) {}\n\n  get relative() {\n    return path.posix.relative(this.base, this.path)\n  }\n\n  get extname() {\n    return path.posix.extname(this.path).slice(1)\n  }\n\n  read() {\n    return this.content || (this.content = fs.readFile(this.path, 'utf-8'))\n  }\n}\n","import { PendingState } from './utils'\n\nexport class VirtualModuleGraph {\n  /**\n   * the module inside this graph may be virtual module or real fs module\n   */\n  private readonly modules: Map<string, Module> = new Map()\n\n  /**\n   * Serialize the update works (instead of doing them concurrently)\n   * to make the result more predictable.\n   *\n   * If there is already a queuing update with same updaterId,\n   * it won't schedule a new one.\n   *\n   * Before executing an updater, it will automatically cleanup the effects of\n   * previous update with same updaterId.\n   * Example:\n   * When find module1 for the first time:\n   *   the updater set data for module2 and module3 (upstreamModule is module1)\n   * Then, when observe that module1 is updated:\n   *   the updater set data for module2 (upstreamModule is module1)\n   * At this time, the data in module3 should be automatically cleanup!\n   * So the updater(users) don't need to manually delete the old data in module3.\n   */\n  private updateQueue = new UpdateQueue()\n  /** track updateQueue empty state (isPending means not empty) */\n  public updateQueueEmptyState = new PendingState()\n\n  public getModuleIds(filter?: (moduleId: string) => boolean): string[] {\n    const ids = Array.from(this.modules.keys())\n    if (filter) return ids.filter(filter)\n    return ids\n  }\n\n  public getModuleData(moduleId: string): any[] {\n    const module = this.modules.get(moduleId)\n    if (!module) return []\n    return module.getData()\n  }\n\n  public getModules(filter?: (moduleId: string) => boolean) {\n    let entries = Array.from(this.modules.entries())\n    // filter is a performance optimization:\n    // don't call module.getData() for filtered-out modules\n    if (filter) entries = entries.filter(([moduleId]) => filter(moduleId))\n    const modules: { [id: string]: any[] } = {}\n    entries.forEach(([moduleId, module]) => {\n      modules[moduleId] = module.getData()\n    })\n    return modules\n  }\n\n  /**\n   * This is the only way to update virtual modules\n   */\n  public scheduleUpdate(updaterId: string, updater: Update['updater']) {\n    this.updateQueue.push(updaterId, updater)\n    this.updateQueueEmptyState.isPending = true\n    // don't schedule setTimeout if there is already one\n    if (this.updateQueue.size === 1) {\n      setTimeout(() => {\n        this.executeUpdates()\n      }, 0)\n    }\n  }\n\n  public addModuleListener(\n    handler: ModuleListener,\n    filter?: (moduleId: string) => boolean\n  ) {\n    return this._addModuleListener((moduleId, data, prevData) => {\n      if (filter && !filter(moduleId)) return\n      handler(moduleId, data, prevData)\n    })\n  }\n  /**\n   * listen to virtual module updates.\n   * users can scheduleUpdate in these listeners, creating dependency chain of\n   * virtual modules.\n   * (.i.e when a virtual module changes, it will update another virtual module)\n   *\n   * users will retrieve new module data and previous module data,\n   * so users can diff them to decide whether the module has \"really\" changed.\n   * if users think they are the same, they can skip updating other virtual modules.\n   * VirtualModuleGraph works on a very low level. It don't know what module data means. So it send updates event to users very often and let users to interpret module data (and whether the data has \"really\" changed).\n   *\n   * @return unsubscribe function\n   */\n  private _addModuleListener(cb: ModuleListener) {\n    this.moduleUpdateListeners.push(cb)\n    return () => {\n      const index = this.moduleUpdateListeners.indexOf(cb)\n      if (index === -1) return\n      this.moduleUpdateListeners.splice(index, 1)\n    }\n  }\n  private moduleUpdateListeners: ModuleListener[] = []\n  private callModuleUpdateListeners(\n    updatedModules: Map<Module, { prevData: any[] }>\n  ) {\n    updatedModules.forEach(({ prevData }, module) => {\n      const data = module.getData()\n      this.moduleUpdateListeners.forEach((moduleUpdateListener) => {\n        moduleUpdateListener(module.id, data, prevData)\n      })\n    })\n  }\n\n  // executeUpdates_Inner is not reentrant\n  // use a state(lock) to prevent concurrent execution\n  public updateExecutingState = new PendingState()\n  private async executeUpdates() {\n    if (this.updateExecutingState.isPending) return\n    this.updateExecutingState.isPending = true\n    try {\n      await this.executeUpdates_Inner()\n    } finally {\n      this.updateExecutingState.isPending = false\n      if (this.updateQueue.size === 0)\n        this.updateQueueEmptyState.isPending = false\n    }\n  }\n  private async executeUpdates_Inner(depth = 1) {\n    if (this.updateQueue.size === 0) return\n    if (depth > MAX_CASCADE_UPDATE_DEPTH)\n      throw new Error(\n        `Cascaded updates exceed max depth ${MAX_CASCADE_UPDATE_DEPTH}. Probably because the depth of the virtual module tree is too high, or there is a cycle in the virtual module graph.`\n      )\n\n    // record the updatedModules so that we can notify listeners in the end\n    // also store prevData so users can diff it with new data\n    const updatedModules = new Map<Module, { prevData: any[] }>()\n    /** it must be called before updating data so that it can record prevData */\n    const recordAffectedModule = (module: Module) => {\n      if (updatedModules.has(module)) return\n      updatedModules.set(module, { prevData: module.getData() })\n    }\n\n    while (true) {\n      const update = this.updateQueue.pop()\n      if (!update) break\n      // cleanup the effects of previous update with same updaterId\n      cleanupEdgesWithUpdaterId(update.updaterId, recordAffectedModule)\n      const { disableAPIs, ...apis } = this.createUpdateAPIs(\n        update.updaterId,\n        recordAffectedModule\n      )\n      await update.updater(apis)\n      disableAPIs()\n    }\n    this.callModuleUpdateListeners(updatedModules)\n    // if the listeners schedule more updates,\n    // execute them synchronously and recursively\n    await this.executeUpdates_Inner(depth + 1)\n  }\n\n  private createUpdateAPIs(\n    updaterId: string,\n    recordAffectedModule: (module: Module) => void\n  ): VirtualModuleAPIs & { disableAPIs(): void } {\n    let outdated = false\n    const _this = this\n    const OUTDATED_ERROR_MSG = `You should not call update APIs after the updater async function.`\n    return {\n      addModuleData(moduleId: string, data: any, upstreamModuleId: string) {\n        if (outdated) throw new Error(OUTDATED_ERROR_MSG)\n        if (moduleId === upstreamModuleId)\n          throw new Error(\n            `addModuleData param error: source and target modules are the same`\n          )\n        // upstreamModuleId may be real file in fs\n        const fromModule = _this.ensureModule(upstreamModuleId)\n        const toModule = _this.ensureModule(moduleId)\n        recordAffectedModule(toModule)\n        Edge.addEdge(fromModule, toModule, data, updaterId)\n      },\n      getModuleData(moduleId: string) {\n        if (outdated) throw new Error(OUTDATED_ERROR_MSG)\n        return _this.getModuleData(moduleId)\n      },\n      deleteModule(moduleId: string) {\n        if (outdated) throw new Error(OUTDATED_ERROR_MSG)\n        const module = _this.modules.get(moduleId)\n        if (!module) return\n        module.delete(recordAffectedModule)\n        _this.modules.delete(moduleId)\n      },\n      disableAPIs() {\n        outdated = true\n      },\n    }\n  }\n\n  private ensureModule(moduleId: string): Module {\n    let result = this.modules.get(moduleId)\n    if (!result) {\n      result = new Module(moduleId)\n      this.modules.set(moduleId, result)\n    }\n    return result\n  }\n}\n\nexport type ModuleListener = (\n  moduleId: string,\n  data: any[],\n  prevData: any[]\n) => void\n\n/**\n * Modules are nodes in the graph\n */\nclass Module {\n  constructor(public id: string) {}\n\n  public getData() {\n    return Array.from(this.data).map(({ data }) => data)\n  }\n\n  /** unlink this module */\n  public delete(recordAffectedModule: (module: Module) => void) {\n    if (this.data.size > 0) {\n      // there are upstream modules that are \"piping\" data to this module\n      throw new Error(\n        `This module has upstream modules. You should delete modules in topological order. moduleID: ${this.id}`\n      )\n    }\n    recordAffectedModule(this)\n    this.downstream.forEach((edge) => {\n      recordAffectedModule(edge.to)\n      edge.unlink()\n    })\n  }\n\n  /**\n   * incoming edges of the node\n   * indicating the data of this virtual module\n   *\n   * real fs module won't need this\n   */\n  private data: Set<Edge> = new Set()\n\n  /**\n   * outcoming edges of the node\n   * indicating which modules depend on this module\n   *\n   * it is needed because we need to update downstream modules\n   * when a fs module is deleted\n   */\n  private downstream: Set<Edge> = new Set()\n}\ninterface ModuleInternal {\n  data: Set<Edge>\n  downstream: Set<Edge>\n}\n\nclass Edge {\n  static addEdge(from: Module, to: Module, data: any, updaterId: string) {\n    const edge = new Edge(from, to, data, updaterId)\n    // set private fields of modules\n    ;(from as unknown as ModuleInternal).downstream.add(edge)\n    ;(to as unknown as ModuleInternal).data.add(edge)\n    bindEdgeWithUpdaterId(edge)\n  }\n\n  private constructor(\n    public from: Module,\n    public to: Module,\n    public data: any,\n    public updaterId: string\n  ) {}\n\n  private hasUnlinked = false\n  public unlink() {\n    if (this.hasUnlinked) {\n      return\n    }\n    // set private fields of modules\n    ;(this.from as unknown as ModuleInternal).downstream.delete(this)\n    ;(this.to as unknown as ModuleInternal).data.delete(this)\n    unbindEdgeWithUpdaterId(this)\n    this.hasUnlinked = true\n  }\n}\n\nconst mapUpdaterIdToEdges = new Map<string, Set<Edge>>()\nfunction bindEdgeWithUpdaterId(edge: Edge) {\n  const { updaterId } = edge\n  let edges = mapUpdaterIdToEdges.get(updaterId)\n  if (!edges) {\n    edges = new Set()\n    mapUpdaterIdToEdges.set(updaterId, edges)\n  }\n  edges.add(edge)\n}\nfunction unbindEdgeWithUpdaterId(edge: Edge) {\n  const { updaterId } = edge\n  const edges = mapUpdaterIdToEdges.get(updaterId)\n  if (!edges || !edges.has(edge))\n    throw new Error(`assertion fail: unlinkEdgeWithUpdaterId`)\n  edges.delete(edge)\n}\nfunction cleanupEdgesWithUpdaterId(\n  updaterId: string,\n  recordAffectedModule: (module: Module) => void\n) {\n  const edges = mapUpdaterIdToEdges.get(updaterId)\n  if (!edges) return\n  edges.forEach((edge) => {\n    recordAffectedModule(edge.to)\n    edge.unlink()\n  })\n  if (edges.size > 0)\n    throw new Error(\n      `assertion fail: all edges with updaterId should already be unlinked`\n    )\n  edges.clear()\n}\n\nexport interface VirtualModuleAPIs {\n  addModuleData(moduleId: string, data: any, upstreamModuleId: string): void\n  getModuleData(moduleId: string): any[]\n  deleteModule(moduleId: string): void\n}\n\nclass Update {\n  constructor(\n    public updaterId: string,\n    public updater: (apis: VirtualModuleAPIs) => void | Promise<void>\n  ) {}\n}\n\nclass UpdateQueue {\n  private queue: Update[] = []\n  private map = new Map<string, Update>()\n  get size() {\n    return this.queue.length\n  }\n  push(updaterId: string, updater: Update['updater']) {\n    // ignore it if the updaterId already exists in the queue\n    if (this.map.has(updaterId)) return\n    const update = new Update(updaterId, updater)\n    this.queue.push(update)\n    this.map.set(updaterId, update)\n  }\n  pop() {\n    const update = this.queue.shift()\n    if (!update) return null\n    const { updaterId } = update\n    this.map.delete(updaterId)\n    return update\n  }\n}\n\n// it indicates the depth of virtual modules\nconst MAX_CASCADE_UPDATE_DEPTH = 10\n","import * as path from 'path'\nimport chokidar, { FSWatcher } from 'chokidar'\nimport slash from 'slash'\n\nimport {\n  ModuleListener,\n  VirtualModuleAPIs,\n  VirtualModuleGraph,\n} from './VirtualModules'\nimport { PendingTaskCounter } from './utils'\nimport { File } from './utils'\n\nlet nextWatcherId = 0\n\n/**\n * watch fs and update corresponding virtual module when a file changed\n */\nexport class VirtualModulesManager {\n  private watchers = new Set<FSWatcher>()\n  private virtualModules = new VirtualModuleGraph()\n  private fileCache: { [path: string]: File } = {}\n  /**\n   * don't return half-finished data when there are pending tasks\n   */\n  private pendingTaskCounter = new PendingTaskCounter()\n\n  constructor() {\n    this.pendingTaskCounter.countPendingState(\n      this.virtualModules.updateExecutingState\n    )\n    this.pendingTaskCounter.countPendingState(\n      this.virtualModules.updateQueueEmptyState\n    )\n  }\n\n  public addFSWatcher(\n    baseDir: string,\n    globs: string[],\n    fileHandler: FileHandler\n  ) {\n    const watcherId = String(nextWatcherId++)\n\n    // should wait for a complete fs scan\n    // before returning the page data\n    const fsScanFinish = this.pendingTaskCounter.countTask()\n\n    this.watchers.add(\n      chokidar\n        .watch(globs, {\n          cwd: baseDir,\n          ignored: ['**/node_modules/**/*', '**/.git/**'],\n        })\n        .on('add', this.handleFileChange(baseDir, fileHandler, watcherId))\n        .on('change', this.handleFileChange(baseDir, fileHandler, watcherId))\n        .on('unlink', this.handleFileUnLink(baseDir, watcherId))\n        .on('ready', () => {\n          setTimeout(() => {\n            // ready event may be fired too early,\n            // before initial scan callbacks are called\n            // https://github.com/paulmillr/chokidar/issues/1011\n            fsScanFinish()\n          }, 10)\n        })\n    )\n  }\n\n  public getModules(\n    cb: (modules: { [id: string]: any[] }) => void,\n    filter?: (moduleId: string) => boolean\n  ) {\n    this.callOnceWhenIdle(() => {\n      cb(this.virtualModules.getModules(filter))\n    })\n  }\n\n  public getModule(moduleId: string, cb: (moduleData: any[]) => void) {\n    this.callOnceWhenIdle(() => {\n      cb(this.virtualModules.getModuleData(moduleId))\n    })\n  }\n\n  /**\n   * Idle means:\n   * fs watcher is ready\n   * no update is executing\n   * update queue is empty\n   */\n  public callOnceWhenIdle(cb: () => void) {\n    this.pendingTaskCounter.callOnceWhenIdle(cb)\n  }\n\n  /**\n   * return the current state of modules.\n   * it doesn't wait for update task to finish\n   * so it may see intermediate state.\n   * use it carefully.\n   */\n  public _getModulesNow(filter?: (moduleId: string) => boolean) {\n    return this.virtualModules.getModules(filter)\n  }\n  /**\n   * return the current state of module.\n   * it doesn't wait for update task to finish\n   * so it may see intermediate state.\n   * use it carefully.\n   */\n  public _getModuleDataNow(moduleId: string) {\n    return this.virtualModules.getModuleData(moduleId)\n  }\n\n  public addModuleListener(\n    handler: ModuleListener,\n    filter?: (moduleId: string) => boolean\n  ) {\n    return this.virtualModules.addModuleListener(handler, filter)\n  }\n\n  public close() {\n    this.watchers.forEach((w) => w.close())\n  }\n\n  public scheduleUpdate(\n    updaterId: string,\n    updater: (apis: VirtualModuleAPIs) => void | Promise<void>\n  ): void {\n    return this.virtualModules.scheduleUpdate(updaterId, updater)\n  }\n\n  private handleFileChange(\n    baseDir: string,\n    fileHandler: FileHandler,\n    watcherId: string\n  ) {\n    return (filePath: string) => {\n      filePath = slash(path.join(baseDir, filePath))\n\n      const file =\n        this.fileCache[filePath] ||\n        (this.fileCache[filePath] = new File(filePath, baseDir))\n      // update content cache\n      file.content = null\n      file.read()\n\n      this.virtualModules.scheduleUpdate(\n        `${watcherId}-${filePath}`,\n        async (apis) => {\n          const handlerAPI: FileHandlerAPIs = {\n            addModuleData(moduleId: string, data: any) {\n              apis.addModuleData(moduleId, data, filePath)\n            },\n            getModuleData: apis.getModuleData,\n          }\n          await fileHandler(file, handlerAPI)\n        }\n      )\n    }\n  }\n\n  private handleFileUnLink(baseDir: string, watcherId: string) {\n    return (filePath: string) => {\n      filePath = slash(path.join(baseDir, filePath))\n\n      this.virtualModules.scheduleUpdate(\n        `${watcherId}-${filePath}-unlink`,\n        async (apis) => {\n          // delete the node that represent this fs file in the virtual modules graph\n          // also delete all outcome edges\n          apis.deleteModule(filePath)\n        }\n      )\n    }\n  }\n}\n\ntype FileHandler = (file: File, api: FileHandlerAPIs) => void | Promise<void>\n\nexport interface FileHandlerAPIs {\n  addModuleData(moduleId: string, data: any): void\n  getModuleData(moduleId: string): any[]\n}\n","import { File, VirtualModulesManager } from '.'\n\n/**\n * built upon VirtualModulesManager.\n * map each sourceFile into a proxyModule, which is a virtual module.\n * when the sourceFile is updated, it will emit update event for the proxyModule.\n */\nexport class ProxyModulesManager {\n  private vmm = new VirtualModulesManager()\n  private register: Map<string, { loaded: boolean; sourceFilePath: string }> =\n    new Map()\n\n  constructor(public readonly proxyModulePrefix: string) {\n    if (!proxyModulePrefix)\n      throw new Error(`invalid proxyModulePrefix: ${proxyModulePrefix}`)\n  }\n\n  /**\n   * register a source file to watch,\n   * map its data into a proxy module,\n   * return the proxyModuleId\n   *\n   * to create multiple proxy modules for one sourceFilePath,\n   * you can pass in keys to differentiate between them.\n   */\n  registerProxyModule(\n    sourceFilePath: string,\n    getProxyModuleData: (sourceFile: File) => any,\n    key?: string\n  ) {\n    const proxyModuleId = this.getProxyModuleId(sourceFilePath, key)\n    if (this.register.has(proxyModuleId)) return proxyModuleId\n    this.vmm.addFSWatcher('', [sourceFilePath], async (file, api) => {\n      const proxyModuleData = await getProxyModuleData(file)\n      api.addModuleData(proxyModuleId, proxyModuleData)\n    })\n    this.register.set(proxyModuleId, { loaded: false, sourceFilePath })\n    return proxyModuleId\n  }\n\n  /**\n   * get proxy module data by proxyModuleId\n   */\n  async getProxyModuleData(proxyModuleId: string) {\n    return new Promise<any>((res, rej) => {\n      this.vmm.getModule(proxyModuleId, (moduleData) => {\n        if (!Array.isArray(moduleData) || moduleData.length === 0)\n          return rej(\n            new Error(`assertion fail: proxy module is empty: ${proxyModuleId}`)\n          )\n        if (moduleData.length !== 1)\n          return rej(\n            new Error(\n              `assertion fail: proxy module has multiple data: ${proxyModuleId}`\n            )\n          )\n        res(moduleData[0])\n        // set loaded flag after a timeout to avoid some race condition\n        // (onProxyModuleUpdate cb is triggered before this load event)\n        setTimeout(() => {\n          const registerItem = this.register.get(proxyModuleId)\n          if (registerItem && !registerItem.loaded) {\n            this.register.set(proxyModuleId, { ...registerItem, loaded: true })\n          }\n        }, 50)\n      })\n    })\n  }\n\n  /**\n   * emit event when a proxyModule is updated since loaded\n   */\n  onProxyModuleUpdate(\n    cb: (proxyModuleId: string, data: any[], prevData: any[]) => void\n  ) {\n    this.vmm.addModuleListener((proxyModuleId, data, prevData) => {\n      const registerItem = this.register.get(proxyModuleId)\n      const notLoaded = registerItem && !registerItem.loaded\n      // bail out if this is the first-load event\n      if (notLoaded && prevData.length === 0) return\n      cb(proxyModuleId, data, prevData)\n    })\n  }\n\n  close() {\n    this.vmm.close()\n  }\n\n  private getProxyModuleId(sourceFilePath: string, key?: string) {\n    let prefix = this.proxyModulePrefix\n    if (key) prefix += `--${key}--`\n    return prefix + sourceFilePath\n  }\n\n  isProxyModuleId(id: string) {\n    return id.startsWith(this.proxyModulePrefix) && this.register.has(id)\n  }\n\n  getSourceFilePath(id: string) {\n    return this.register.get(id)?.sourceFilePath\n  }\n}\n","import { EventEmitter } from 'events'\nimport { debounce } from 'mini-debounce'\n\n/**\n * Types of page data updates.\n *\n * add:\n *  A new page is added.\n *  The page list module will be updated.\n * update:\n *  A page is updated.\n *  The page list module will be updated if it is static data change\n *  The page data module will be updated if it is runtime data change\n * delete:\n *  A page is deleted.\n *  The page list module will be updated.\n *  Buffered update of the deleted page will be canceled.\n */\ntype Update =\n  | {\n      type: 'add' | 'delete'\n      pageId: string\n    }\n  | {\n      type: 'update'\n      pageId: string\n      dataType: 'runtime' | 'static'\n    }\n\nexport type ScheduleUpdate = (update: Update) => void\n\n/**\n * Buffer page data updates.\n * Can flush a batch of updates together\n * and cancel unnecessary updates\n */\nexport class PageUpdateBuffer extends EventEmitter {\n  /**\n   * which pages should be updated\n   */\n  private pageUpdateBuffer = new Set<string>()\n\n  /**\n   * whether the page list should be updated\n   */\n  private pageListUpdateBuffer = false\n\n  private scheduleFlush: () => void\n\n  constructor() {\n    super()\n    this.scheduleFlush = debounce(() => {\n      let havePageUpdate = false\n      if (this.pageUpdateBuffer.size > 0) {\n        havePageUpdate = true\n        const updates = [...this.pageUpdateBuffer.values()]\n        this.emit('page', updates)\n        this.pageUpdateBuffer.clear()\n      }\n\n      if (this.pageListUpdateBuffer) {\n        // if we have just sent a page update,\n        // we don't need to trigger page list update.\n        // because during the page update hmr, the page list will automatically get updated\n        // (because the whole import chain will get re-imported)\n        if (!havePageUpdate) this.emit('page-list')\n        this.pageListUpdateBuffer = false\n      }\n    }, 100)\n  }\n\n  scheduleUpdate(update: Update) {\n    switch (update.type) {\n      case 'add':\n        this.pageListUpdateBuffer = true\n        break\n      case 'update':\n        if (update.dataType === 'static') this.pageListUpdateBuffer = true\n        else this.pageUpdateBuffer.add(update.pageId)\n        break\n      case 'delete':\n        this.pageListUpdateBuffer = true\n        this.pageUpdateBuffer.delete(update.pageId)\n        break\n      default:\n        throw new Error(`invalid update type ${JSON.stringify(update)}`)\n    }\n    this.scheduleFlush()\n  }\n\n  async batchUpdate(exec: (scheduleUpdate: ScheduleUpdate) => Promise<void>) {\n    let updates: Update[] | null = []\n    const _this = this\n\n    try {\n      await exec(scheduleUpdate)\n    } finally {\n      updates.forEach((update) => {\n        _this.scheduleUpdate(update)\n      })\n      updates = null\n      this.scheduleFlush()\n    }\n\n    function scheduleUpdate(update: Update) {\n      if (!updates) {\n        // the batch lifetime has already expired\n        // add it to buffer directly\n        _this.scheduleUpdate(update)\n        return\n      }\n      // store it, will flush these updates together later\n      updates.push(update)\n    }\n  }\n}\n","import { dequal } from 'dequal'\n\nimport { PageUpdateBuffer } from './UpdateBuffer'\nimport {\n  VirtualModuleAPIs,\n  FileHandlerAPIs,\n  VirtualModulesManager,\n} from '../utils/virtual-module'\nimport type { FileHandler, PageAPIs, DataPiece } from './types.doc'\n\nconst PAGE_MODULE_PREFIX = '/@vp-page'\nconst ensurePageId = (moduleId: string) =>\n  moduleId.startsWith(PAGE_MODULE_PREFIX)\n    ? moduleId.slice(PAGE_MODULE_PREFIX.length)\n    : moduleId\nconst ensureModuleId = (pageId: string) =>\n  pageId.startsWith(PAGE_MODULE_PREFIX) ? pageId : PAGE_MODULE_PREFIX + pageId\n\nconst isPageRelatedModule = (moduleId: string) =>\n  moduleId.startsWith(PAGE_MODULE_PREFIX)\n\n/**\n * building upon VirtualModulesManager,\n * PagesDataKeeper recognize and handle page modules.\n */\nexport class PagesDataKeeper extends PageUpdateBuffer {\n  /**\n   * this.pages is a cache of this.virtualModulesManager.getModules\n   * which is updated in batch (may be outdated for a short time)\n   */\n  private readonly pages: PagesDataInternal = {}\n\n  constructor(private readonly virtualModulesManager: VirtualModulesManager) {\n    super()\n    virtualModulesManager.getModules((modules) => {\n      Object.entries(modules).forEach(([moduleId, data]) => {\n        this.setPageData(moduleId, data)\n      })\n      virtualModulesManager.addModuleListener((moduleId, data) => {\n        this.setPageData(moduleId, data)\n      }, isPageRelatedModule)\n    }, isPageRelatedModule)\n  }\n\n  /** turn PagesDataInternal to PagesData */\n  public getPages(): PagesData {\n    return Object.fromEntries(\n      Object.entries(this.pages).map(([pageId, page]) => [\n        pageId,\n        transformOnePageDataInternal(page),\n      ])\n    )\n  }\n\n  public getPage(pageId: string): OnePageData | null {\n    const page = this.pages[pageId]\n    if (!page) return null\n    return transformOnePageDataInternal(page)\n  }\n\n  /**\n   * when low-level page virtual modules has changed, update this.pages data\n   * and notify listeners\n   */\n  private setPageData(moduleId: string, rawData: any[]) {\n    const pageId = ensurePageId(moduleId)\n    const oldPageData: OnePageDataInternal | undefined = this.pages[pageId]\n    const pageData = this.createPageDataFromRaw(rawData)\n    // Page is deleted\n    if (!pageData) {\n      if (oldPageData) {\n        delete this.pages[pageId]\n        this.scheduleUpdate({\n          type: 'delete',\n          pageId,\n        })\n      }\n      return\n    }\n    // Page is added\n    if (!oldPageData) {\n      this.pages[pageId] = pageData\n      this.scheduleUpdate({\n        type: 'add',\n        pageId,\n      })\n      return\n    }\n    // Page is updated\n    this.pages[pageId] = pageData\n    if (!dequal(pageData.runtimeData, oldPageData.runtimeData)) {\n      this.scheduleUpdate({\n        type: 'update',\n        dataType: 'runtime',\n        pageId,\n      })\n    }\n    if (!dequal(pageData.staticData, oldPageData.staticData)) {\n      this.scheduleUpdate({\n        type: 'update',\n        dataType: 'static',\n        pageId,\n      })\n    }\n  }\n\n  private createPageDataFromRaw(rawData: any[]): OnePageDataInternal | null {\n    const pageData: OnePageDataInternal = {\n      runtimeData: {},\n      staticData: {},\n    }\n    const { runtimeData: dataMap, staticData: staticDataMap } = pageData\n    rawData.forEach((data: DataPiece) => {\n      if (!data) return\n      const { dataPath, staticData } = data\n      if (!dataPath && !staticData) return\n      const key = data.key ?? 'main'\n      const priority = data.priority ?? 1\n      if (dataPath) {\n        if (!dataMap[key] || priority > dataMap[key].priority)\n          dataMap[key] = { dataPath, priority }\n      }\n      if (staticData) {\n        if (!staticDataMap[key] || priority > staticDataMap[key].priority)\n          staticDataMap[key] = { staticData, priority }\n      }\n    })\n    if (isEmptyPage(pageData)) return null\n    return pageData\n\n    function isEmptyPage(pageData: OnePageDataInternal) {\n      const { runtimeData, staticData } = pageData\n      return (\n        Object.keys(runtimeData).length === 0 &&\n        Object.keys(staticData).length === 0\n      )\n    }\n  }\n\n  /**\n   * update page virtual modules according to fs files\n   */\n  public addFSWatcher(\n    baseDir: string,\n    globs: string[],\n    fileHandler: FileHandler\n  ) {\n    this.virtualModulesManager.addFSWatcher(\n      baseDir,\n      globs,\n      async (file, lowerAPI) => {\n        const pageAPIs = this.createPageAPIs(lowerAPI)\n        const res = await fileHandler(file, pageAPIs)\n        if (res) {\n          pageAPIs.addPageData(res)\n        }\n      }\n    )\n  }\n\n  public createOneTimePageAPIs(updaterAPIs: VirtualModuleAPIs): PageAPIs {\n    const handlerAPI: FileHandlerAPIs = {\n      addModuleData(moduleId: string, data: any) {\n        // if the update has no upstream, use a constant name\n        updaterAPIs.addModuleData(moduleId, data, 'VP_ANONYMOUS_MODULE')\n      },\n      getModuleData: updaterAPIs.getModuleData,\n    }\n    return this.createPageAPIs(handlerAPI)\n  }\n\n  /**\n   * TODO:\n   * getRuntimeData and getStaticData are very inefficient to implement,\n   * redesign them in the next version\n   */\n  private createPageAPIs(lowerAPI: FileHandlerAPIs): PageAPIs {\n    const getRuntimeData = (pageId: string) => {\n      const moduleId = ensureModuleId(pageId)\n      // don't use pages as data source because this is a cache updated in batch.\n      // instead, get data by virtualModulesManager._getModuleDataNow\n      // which is updated immediately after updating virtual modules\n      const getDataObject = () => {\n        // reconstruct the data object, which is inefficient\n        const rawData = this.virtualModulesManager._getModuleDataNow(moduleId)\n        const pageData = this.createPageDataFromRaw(rawData)\n        if (!pageData) return {}\n        return pageData.runtimeData\n      }\n      const setData = (key: string, value: any) => {\n        lowerAPI.addModuleData(moduleId, {\n          key,\n          dataPath: value,\n        } as DataPiece)\n      }\n      const getData = (key: string) => {\n        const existValue = getDataObject()[key]\n        return existValue?.dataPath\n      }\n      return createProxy({ getDataObject, setData, getData })\n    }\n\n    const getStaticData = (pageId: string) => {\n      const moduleId = ensureModuleId(pageId)\n      const getDataObject = () => {\n        const rawData = this.virtualModulesManager._getModuleDataNow(moduleId)\n        const pageData = this.createPageDataFromRaw(rawData)\n        if (!pageData) return {}\n        return pageData.staticData\n      }\n      const setData = (key: string, value: any) => {\n        lowerAPI.addModuleData(moduleId, {\n          key,\n          staticData: value,\n        } as DataPiece)\n      }\n      const getData = (key: string) => {\n        const existValue = getDataObject()[key]\n        return existValue?.staticData\n      }\n      return createProxy({ getDataObject, setData, getData })\n    }\n\n    const addPageData = (dataPiece: DataPiece) => {\n      const moduleId = ensureModuleId(dataPiece.pageId)\n      lowerAPI.addModuleData(moduleId, dataPiece)\n    }\n\n    return {\n      getRuntimeData,\n      getStaticData,\n      addPageData,\n    }\n\n    function createProxy({\n      getDataObject,\n      setData,\n      getData,\n    }: {\n      getDataObject: () => object\n      setData: (key: string, value: any) => void\n      getData: (key: string) => any\n    }) {\n      return new Proxy(\n        {} as {\n          [key: string]: string\n        },\n        {\n          ...defaultProxyTraps,\n          set(target, key: string, value) {\n            setData(key, value)\n            return true\n          },\n          get(target, key: string) {\n            return getData(key)\n          },\n          has(target, key) {\n            return Reflect.has(getDataObject(), key)\n          },\n          ownKeys: function (target) {\n            return Reflect.ownKeys(getDataObject())\n          },\n        }\n      )\n    }\n  }\n}\n\nexport interface PagesData {\n  /**\n   * pageId: The page route path.\n   * User can register multiple page data with same pageId,\n   * as long as they have different keys.\n   * Page data with same pageId will be merged.\n   *\n   * @example '/posts/hello-world'\n   */\n  [pageId: string]: OnePageData\n}\n\nexport interface OnePageData {\n  data: {\n    [key: string]: string\n  }\n  staticData: {\n    [key: string]: any\n  }\n}\n\ninterface PagesDataInternal {\n  [pageId: string]: OnePageDataInternal\n}\n\ninterface OnePageDataInternal {\n  runtimeData: {\n    /**\n     * The value of runtimeData should be a path to module\n     * (to be evaluated at runtime)\n     */\n    [key: string]: { dataPath: string; priority: number }\n  }\n  staticData: {\n    /**\n     * The value of staticData can be any json value\n     */\n    [key: string]: { staticData: any; priority: number }\n  }\n}\n\nconst defaultProxyTraps = Object.fromEntries(\n  Object.getOwnPropertyNames(Reflect).map((fnName) => [\n    fnName,\n    () => {\n      throw new Error(`unsupported operation on page data object proxy`)\n    },\n  ])\n)\n\nfunction transformOnePageDataInternal(page: OnePageDataInternal): OnePageData {\n  const runtimeData = Object.fromEntries(\n    Object.entries(page.runtimeData).map(([key, { dataPath }]) => [\n      key,\n      dataPath,\n    ])\n  )\n  const staticData = Object.fromEntries(\n    Object.entries(page.staticData).map(([key, { staticData }]) => [\n      key,\n      staticData,\n    ])\n  )\n  return { data: runtimeData, staticData }\n}\n","import * as path from 'path'\nimport { EventEmitter } from 'events'\nimport slash from 'slash'\n\nimport {\n  extractStaticData,\n  VirtualModulesManager,\n} from '../utils/virtual-module'\nimport { PagesDataKeeper, PagesData, OnePageData } from './PagesDataKeeper'\nimport type { FindPages, PageHelpers, FileHandler, PageAPIs } from './types.doc'\n\nexport class PageStrategy extends EventEmitter {\n  protected pagesDir: string = '/pagesDir_not_initialized'\n  private virtualModulesManager: VirtualModulesManager = null as any\n  private pagesDataKeeper: PagesDataKeeper = null as any\n  private started = false\n\n  constructor(private findPages: FindPages) {\n    super()\n  }\n\n  /**\n   * start() will be called by the vite buildStart hook,\n   * which may be called multiple times.\n   * we only execute it once\n   */\n  public start(pagesDir: string, virtualModulesManager: VirtualModulesManager) {\n    if (this.started) return\n    this.started = true\n    this.pagesDir = pagesDir\n\n    this.virtualModulesManager = virtualModulesManager\n    this.pagesDataKeeper = new PagesDataKeeper(virtualModulesManager)\n    this.pagesDataKeeper.on('page', (updates: string[]) => {\n      this.emit('page', updates)\n    })\n    this.pagesDataKeeper.on('page-list', () => {\n      this.emit('page-list')\n    })\n\n    this.virtualModulesManager.scheduleUpdate(\n      'pages-init',\n      async (virtualModuleAPIs) => {\n        this.oneTimePageAPIs =\n          this.pagesDataKeeper.createOneTimePageAPIs(virtualModuleAPIs)\n        const helpers = this.createHelpers(() => {\n          throw new Error(\n            `No defaultFileHandler found. You should pass fileHandler argument when calling watchFiles`\n          )\n        })\n        await this.findPages(pagesDir, helpers)\n      }\n    )\n  }\n\n  // these are one-time api that are only used in \"pages-init\"\n  private oneTimePageAPIs: PageAPIs = null as any\n\n  public getPages(): Promise<PagesData> {\n    if (!this.started) throw new Error(`PageStrategy not started yet`)\n    return new Promise((resolve) => {\n      this.virtualModulesManager.callOnceWhenIdle(() => {\n        resolve(this.pagesDataKeeper.getPages())\n      })\n    })\n  }\n\n  public getPage(pageId: string): Promise<OnePageData | null> {\n    if (!this.started) throw new Error(`PageStrategy not started yet`)\n    return new Promise((resolve) => {\n      this.virtualModulesManager.callOnceWhenIdle(() => {\n        resolve(this.pagesDataKeeper.getPage(pageId))\n      })\n    })\n  }\n\n  /**\n   * Custom PageStrategy can use it to create helpers with custom defaultFileHandler\n   */\n  protected createHelpers(defaultFileHandler: FileHandler): PageHelpers {\n    const helpers: PageHelpers = {\n      extractStaticData,\n      watchFiles,\n      ...this.oneTimePageAPIs,\n    }\n    const _this = this\n    return helpers\n\n    function watchFiles(\n      baseDir: string,\n      arg2?: string | string[] | FileHandler,\n      arg3?: FileHandler\n    ) {\n      const { pagesDir, pagesDataKeeper } = _this\n      // Strip trailing slash and make absolute\n      baseDir = slash(path.resolve(pagesDir, baseDir))\n      let globs: string[]\n      let fileHandler: FileHandler\n      if (typeof arg2 === 'function') {\n        globs = ['**/*']\n        fileHandler = arg2\n      } else {\n        globs = Array.isArray(arg2) ? arg2 : [arg2 || '**/*']\n        fileHandler = arg3 || defaultFileHandler\n      }\n\n      pagesDataKeeper.addFSWatcher(baseDir, globs, fileHandler)\n    }\n  }\n}\n\nexport * from './types.doc'\n","import { PageStrategy } from '..'\nimport { extractStaticData, File } from '../../utils/virtual-module'\nimport type { FileHandler, FindPages } from '../types.doc'\n\nexport class DefaultPageStrategy extends PageStrategy {\n  constructor(\n    opts: { extraFindPages?: FindPages; fileHandler?: FileHandler } = {}\n  ) {\n    const { extraFindPages, fileHandler = defaultFileHandler } = opts\n    // pass a wrapped findPages function to super class\n    super((pagesDir, helpersFromParent) => {\n      // we can create our own helpers, providing a default fileHandler\n      // and not using helpersFromParent\n      const helpers = this.createHelpers(fileHandler)\n      helpers.watchFiles(pagesDir, '**/*$.{md,mdx,js,jsx,ts,tsx}')\n      if (typeof extraFindPages === 'function') {\n        extraFindPages(pagesDir, helpers)\n      }\n    })\n  }\n}\n\n/**\n * The defaultFileHandler return the result to caller,\n * instead of directly setting the pageData object.\n * so that it is more useful to users.\n */\nexport const defaultFileHandler: FileHandler = async (file: File, api) => {\n  const pagePublicPath = getPagePublicPath(file.relative)\n\n  const staticData = await extractStaticData(file)\n\n  if (staticData.sourceType === 'md') {\n    api.addPageData({\n      pageId: pagePublicPath,\n      key: 'outlineInfo',\n      dataPath: `${file.path}?outlineInfo`,\n    })\n  }\n\n  return {\n    pageId: pagePublicPath,\n    dataPath: file.path,\n    staticData,\n  }\n}\n\n/**\n * turn `sub-path/page2/index.tsx` into `/sub-path/page2`\n */\nexport function getPagePublicPath(relativePageFilePath: string) {\n  let pagePublicPath = relativePageFilePath.replace(\n    /\\$\\.(md|mdx|js|jsx|ts|tsx)$/,\n    ''\n  )\n  pagePublicPath = pagePublicPath.replace(/index$/, '')\n  // remove trailing slash\n  pagePublicPath = pagePublicPath.replace(/\\/$/, '')\n  // ensure starting slash\n  pagePublicPath = pagePublicPath.replace(/^\\//, '')\n  pagePublicPath = `/${pagePublicPath}`\n\n  // turn [id] into :id\n  // so that react-router can recognize it as url params\n  pagePublicPath = pagePublicPath.replace(\n    /\\[(.*?)\\]/g,\n    (_, paramName) => `:${paramName}`\n  )\n\n  return pagePublicPath\n}\n","import slash from 'slash'\nimport type { PagesData } from './PagesDataKeeper'\n\nexport async function renderPageList(pagesData: PagesData, isBuild: boolean) {\n  const addPagesData = Object.entries(pagesData).map(\n    ([pageId, { staticData }]) => {\n      let subPath = pageId\n      if (subPath === '/') {\n        // import(\"/@react-pages/pages/\") would make vite confused\n        // so we change the sub path\n        subPath = '/index__'\n      }\n      const dataModulePath = `/@react-pages/pages${subPath}`\n      let code = `\npages[\"${pageId}\"] = {};\npages[\"${pageId}\"].data = () => import(\"${dataModulePath}\");\npages[\"${pageId}\"].staticData = ${JSON.stringify(cleanStaticData(staticData))};`\n      return code\n    }\n  )\n  return `\nconst pages = {};\n${addPagesData.join('\\n')}\nexport default pages;\n`\n}\n\nexport async function renderPageListInSSR(pagesData: PagesData) {\n  const addPagesData = Object.entries(pagesData).map(\n    ([pageId, { staticData }], index) => {\n      let subPath = pageId\n      if (subPath === '/') {\n        // import(\"/@react-pages/pages/\") would make vite confused\n        // so we change the sub path\n        subPath = '/index__'\n      }\n      const code = `\npages[\"${pageId}\"] = {};\nimport page${index} from \"/@react-pages/pages${subPath}\";\npages[\"${pageId}\"] = page${index};`\n      return code\n    }\n  )\n  return `\nconst pages = {};\n${addPagesData.join('\\n')}\nexport default pages;\n`\n}\n\nexport function renderOnePageData(onePageData: { [dataKey: string]: string }) {\n  const importModule = Object.entries(onePageData).map(\n    ([dataKey, path], idx) => `\nimport * as m${idx} from \"${slash(path)}\";\nmodules[\"${dataKey}\"] = m${idx};`\n  )\n  return `\n  const modules = {};\n  ${importModule.join('\\n')}\n  export default modules;`\n}\n\nexport function renderAllPagesOutlines(pagesData: PagesData) {\n  const res = [] as string[]\n  Object.entries(pagesData).map(([pageId, { staticData }], index1) => {\n    const outlinesForThisPage = [] as any[]\n    // check all data pieces (identified by key within a page) of all pages\n    Object.entries(staticData).forEach(([key, dataPiece], index2) => {\n      if (dataPiece?.sourceType === 'md' && dataPiece.__sourceFilePath) {\n        // collect outline info of markdown pages\n        const varName = `pageOutline_${index1}_${index2}`\n        outlinesForThisPage.push({\n          key,\n          varName,\n          importOutlineInfo: `import * as ${varName} from ${JSON.stringify(\n            dataPiece.__sourceFilePath + '?outlineInfo'\n          )}`,\n        })\n      }\n    })\n    if (outlinesForThisPage.length === 0) return\n    res.push(`allPagesOutlines[\"${pageId}\"] = {};`)\n    outlinesForThisPage.forEach(({ key, varName, importOutlineInfo }) => {\n      res.push(importOutlineInfo)\n      res.push(`allPagesOutlines[\"${pageId}\"][\"${key}\"] = ${varName};`)\n    })\n  })\n  return `\nexport const allPagesOutlines = {};\n${res.join('\\n')}\n`\n}\n\n// filter out internal data field in staticData\n// don't leak them into build output assets\nfunction cleanStaticData(staticData: any) {\n  if (!staticData || typeof staticData !== 'object') return staticData\n  return Object.fromEntries(\n    Object.entries(staticData).map(([key, value]: [string, any]) => {\n      if (value?.__sourceFilePath)\n        return [\n          key,\n          {\n            ...value,\n            __sourceFilePath: undefined,\n          },\n        ]\n      return [key, value]\n    })\n  )\n}\n","import fs from 'fs-extra'\nimport * as path from 'path'\nimport slash from 'slash'\n\nexport async function resolveTheme(pagesDirPath: string) {\n  for (let filename of ['_theme.js', '_theme.ts', '_theme.jsx', '_theme.tsx']) {\n    filename = path.join(pagesDirPath, filename)\n    if (await fs.pathExists(filename)) {\n      return slash(filename)\n    }\n  }\n  throw new Error(\"can't find theme inside pagesDir: \" + pagesDirPath)\n}\n","import type { MdxjsEsm, MdxJsxFlowElement } from 'mdast-util-mdx'\n\n/**\n * create mdast node for expression:\n * import * as name from 'from'\n */\nexport function createNameSpaceImportNode({\n  name,\n  from,\n}: {\n  name: string\n  from: string\n}): MdxjsEsm {\n  return {\n    type: 'mdxjsEsm',\n    value: '',\n    data: {\n      estree: {\n        type: 'Program',\n        sourceType: 'module',\n        body: [\n          {\n            type: 'ImportDeclaration',\n            specifiers: [\n              {\n                type: 'ImportNamespaceSpecifier',\n                local: {\n                  type: 'Identifier',\n                  name,\n                },\n              },\n            ],\n            source: {\n              type: 'Literal',\n              value: from,\n              raw: JSON.stringify(from),\n            },\n          },\n        ],\n      },\n    },\n  }\n}\n\n/**\n * create mdast node for expression:\n * import name from 'from'\n */\nexport function createDefaultImportNode({\n  name,\n  from,\n}: {\n  name: string\n  from: string\n}): MdxjsEsm {\n  return {\n    type: 'mdxjsEsm',\n    value: '',\n    data: {\n      estree: {\n        type: 'Program',\n        sourceType: 'module',\n        body: [\n          {\n            type: 'ImportDeclaration',\n            specifiers: [\n              {\n                type: 'ImportDefaultSpecifier',\n                local: {\n                  type: 'Identifier',\n                  name,\n                },\n              },\n            ],\n            source: {\n              type: 'Literal',\n              value: from,\n              raw: JSON.stringify(from),\n            },\n          },\n        ],\n      },\n    },\n  }\n}\n\n/**\n * create mdast node for expression:\n * <Component {...props} />\n * checkout the parsed node structure in https://mdxjs.com/playground/\n */\nexport function createJSXWithSpreadPropsNode({\n  Component,\n  props,\n}: {\n  Component: string\n  props: string\n}): MdxJsxFlowElement {\n  return {\n    type: 'mdxJsxFlowElement',\n    name: Component,\n    data: {\n      _mdxExplicitJsx: true,\n    } as any,\n    children: [],\n    attributes: [\n      {\n        type: 'mdxJsxExpressionAttribute',\n        value: '',\n        data: {\n          estree: {\n            type: 'Program',\n            sourceType: 'module',\n            body: [\n              {\n                type: 'ExpressionStatement',\n                expression: {\n                  type: 'ObjectExpression',\n                  properties: [\n                    {\n                      type: 'SpreadElement',\n                      argument: {\n                        type: 'Identifier',\n                        name: props,\n                      },\n                    },\n                  ],\n                },\n              },\n            ],\n          },\n        },\n      },\n    ],\n  }\n}\n","/// <reference types=\"remark-mdx\" />\nimport type { Root } from 'mdast'\nimport type { MdxjsEsm } from 'mdast-util-mdx'\nimport {\n  createJSXWithSpreadPropsNode,\n  createNameSpaceImportNode,\n} from '../../utils/mdastUtils'\n\nexport function DemoMdxPlugin() {\n  return transformer\n\n  function transformer(tree: Root, file: any) {\n    const children = tree.children\n\n    const addImports: MdxjsEsm[] = []\n\n    children.forEach((child, index) => {\n      // find jsx node like: <Demo src=\"srcValue\" />\n      if (child.type === 'mdxJsxFlowElement' && child.name === 'Demo') {\n        const srcAttr = child.attributes.find(\n          (attr) =>\n            attr.type === 'mdxJsxAttribute' &&\n            attr.name === 'src' &&\n            typeof attr.value === 'string'\n        )\n        const srcValue = srcAttr?.value\n        if (srcValue) {\n          const nextIndex = addImports.length\n          const varName = `_demo${nextIndex}`\n          // add import:\n          // import * as varName from \"${srcValue}?demo\"\n          addImports.push(\n            createNameSpaceImportNode({\n              name: varName,\n              from: `${srcValue}?demo`,\n            })\n          )\n          // replace this node with:\n          // <Demo {...varName} />\n          children.splice(\n            index,\n            1,\n            createJSXWithSpreadPropsNode({ Component: 'Demo', props: varName })\n          )\n        }\n      }\n    })\n\n    children.unshift(...addImports)\n  }\n}\n","import { strip } from 'jest-docblock'\nimport { ProxyModulesManager } from '../../utils/virtual-module'\nimport { extractStaticData } from '../../utils/virtual-module/utils'\n\n// mark demo proxy files as virtual files to avoid vite warning \"missing source files\"\n// https://github.com/vitejs/vite/blob/60721ac53a1bf326d1cac097f23642faede234ff/packages/vite/src/node/server/sourcemap.ts#L39\n// https://vitejs.dev/guide/api-plugin.html#virtual-modules-convention\nconst DEMO_PROXY_PREFIX = '\\0/@react-pages/demos'\n\nexport class DemoModuleManager {\n  private pmm = new ProxyModulesManager(DEMO_PROXY_PREFIX)\n\n  registerProxyModule(demoPath: string) {\n    return this.pmm.registerProxyModule(demoPath, async (file) => {\n      const content = await file.read()\n      const staticData = await extractStaticData(file)\n      // strip staticData notation\n      const code = strip(content)\n      return {\n        demoPath,\n        code,\n        staticData,\n      }\n    })\n  }\n\n  isProxyModuleId(id: string) {\n    return this.pmm.isProxyModuleId(id)\n  }\n\n  async loadProxyModule(demoProxyId: string) {\n    const data = await this.pmm.getProxyModuleData(demoProxyId)\n    const { demoPath, code, staticData } = data ?? {}\n    if (!demoPath || !code || !staticData)\n      throw new Error(`assertion fail: invalid demo data: ${demoProxyId}`)\n\n    return `export * from \"${demoPath}\";\n    export { default } from \"${demoPath}\";\n    \n    const code = ${JSON.stringify(strip(code))};\n    const title = ${JSON.stringify(staticData.title)};\n    const desc = ${JSON.stringify(staticData.description || staticData.desc)};\n    \n    export const demoMeta = { code, title, desc };\n    export const isDemo = true;`\n  }\n\n  onUpdate(cb: (reloadPath: string) => void) {\n    this.pmm.onProxyModuleUpdate(cb)\n  }\n\n  close() {\n    this.pmm.close()\n  }\n}\n\nexport * from './mdx-plugin'\n","import {\n  Project,\n  TypeElementMemberedNode,\n  Node,\n  TypeChecker,\n  ts,\n} from 'ts-morph'\n\nimport type {\n  TsInfo,\n  TsPropertyOrMethodInfo,\n  CallSignatureInfo,\n} from '../../../../clientTypes'\n\nconst defaultTsConfig: ts.CompilerOptions = {\n  target: ts.ScriptTarget.ESNext,\n  lib: ['lib.esnext.full.d.ts'],\n  moduleResolution: ts.ModuleResolutionKind.NodeJs,\n}\n\nexport function collectInterfaceInfo(\n  fileName: string,\n  exportName: string,\n  options: ts.CompilerOptions = {}\n): TsInfo {\n  const project = new Project({\n    compilerOptions: {\n      ...defaultTsConfig,\n      ...options,\n    },\n  })\n\n  const sourceFile = project.addSourceFileAtPath(fileName)\n  const typeChecker = project.getTypeChecker()\n\n  const exportedDeclarations = sourceFile\n    .getExportedDeclarations()\n    .get(exportName)\n  if (!exportedDeclarations) {\n    throw new Error(\n      `Can not find export. ${JSON.stringify({ exportName, fileName })}`\n    )\n  }\n  if (exportedDeclarations.length !== 1) {\n    throw new Error(\n      `Unexpected exportedDeclaration.length. ${JSON.stringify({\n        exportName,\n        fileName,\n      })}`\n    )\n  }\n\n  const node = exportedDeclarations[0]\n\n  if (Node.isTypeAliasDeclaration(node)) {\n    // type A = { k: v } (type literal)\n    // or type A = 'asd' | 123 (complex type)\n    const name = node.getName()\n    const description = node\n      .getJsDocs()\n      .map((jsDoc) => {\n        return jsDoc.getDescription().trim()\n      })\n      .join('\\n\\n')\n    const typeNode = node.getTypeNode()\n\n    if (Node.isTypeLiteral(typeNode)) {\n      // example: type A = { k: v }\n      const { members, callSignatures, constructSignatures } =\n        handleTypeElementMembered(typeNode, typeChecker)\n      return {\n        type: 'object-literal',\n        name,\n        description,\n        properties: members,\n        callSignatures,\n        constructSignatures,\n      }\n    } else {\n      // example: type A = 'asd' | 123\n      return {\n        type: 'other',\n        name,\n        description,\n        text:\n          typeNode?.getText({\n            includeJsDocComments: false,\n            trimLeadingIndentation: true,\n          }) || '',\n      }\n    }\n  }\n\n  if (Node.isInterfaceDeclaration(node)) {\n    const name = node.getName()\n    const description = node\n      .getJsDocs()\n      .map((jsDoc) => {\n        return jsDoc.getDescription().trim()\n      })\n      .join('\\n\\n')\n    const { members, callSignatures, constructSignatures } =\n      handleTypeElementMembered(node, typeChecker)\n    return {\n      type: 'interface',\n      name,\n      description,\n      properties: members,\n      callSignatures,\n      constructSignatures,\n    }\n  }\n\n  throw new Error('unexpected node type: ' + node.getKindName())\n}\n\n// handle Interface or TypeLiteral\n// iterate members at type level\n// which is higher than ast level, so that we can get inherited membered from a Interface\n// https://github.com/dsherret/ts-morph/issues/457#issuecomment-427688926\nfunction handleTypeElementMembered(\n  node: TypeElementMemberedNode & Node,\n  typeChecker: TypeChecker\n): {\n  members: TsPropertyOrMethodInfo[]\n  callSignatures: CallSignatureInfo[]\n  constructSignatures: CallSignatureInfo[]\n} {\n  const members: TsPropertyOrMethodInfo[] = []\n  // or use node.getSymbol()?.getMembers() ?\n  const nodeType = node.getType()\n  // https://stackoverflow.com/a/68623960\n  for (const prop of nodeType.getProperties()) {\n    const name = prop.getName()\n    const description = ts.displayPartsToString(\n      prop.compilerSymbol.getDocumentationComment(typeChecker.compilerObject)\n    )\n    const type = prop\n      .getTypeAtLocation(node)\n      // drop the `import('/path/to/file').` before the type text\n      // https://github.com/dsherret/ts-morph/issues/453#issuecomment-667578386\n      .getText(node, ts.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope)\n    const defaultValue = (() => {\n      let res = ''\n      prop.getJsDocTags().find((tag) => {\n        const match = ['defaultvalue', 'default'].includes(\n          tag.getName().toLowerCase()\n        )\n        if (match) {\n          res = ts.displayPartsToString(tag.getText())\n          return true\n        }\n      })\n      return res\n    })()\n    const optional = prop.isOptional()\n    members.push({\n      name,\n      description,\n      type,\n      defaultValue,\n      optional,\n    })\n  }\n\n  const callSignatures: CallSignatureInfo[] = []\n  for (const sig of nodeType.getCallSignatures()) {\n    const description = ts.displayPartsToString(\n      sig.compilerSignature.getDocumentationComment(typeChecker.compilerObject)\n    )\n    const type = sig.getDeclaration().getText()\n    callSignatures.push({\n      description,\n      type,\n    })\n  }\n\n  const constructSignatures: CallSignatureInfo[] = []\n  for (const sig of nodeType.getConstructSignatures()) {\n    const description = ts.displayPartsToString(\n      sig.compilerSignature.getDocumentationComment(typeChecker.compilerObject)\n    )\n    const type = sig.getDeclaration().getText()\n    constructSignatures.push({\n      description,\n      type,\n    })\n  }\n\n  return { members, callSignatures, constructSignatures }\n}\n\n// an alternative way to implement handleTypeElementMembered\n// iterate members at ast level\n// not used. just for backup...\nfunction handleTypeElementMembered2(\n  node: TypeElementMemberedNode & Node,\n  typeChecker: TypeChecker\n): TsPropertyOrMethodInfo[] {\n  const result: TsPropertyOrMethodInfo[] = []\n  node.getMembers().forEach((member) => {\n    if (Node.isPropertySignature(member) || Node.isMethodSignature(member)) {\n      const memberSymbol = member.getSymbolOrThrow()\n\n      const name = member.getName()\n\n      // or use this to get description?\n      // const description = ts.displayPartsToString(\n      //   memberSymbol.compilerSymbol.getDocumentationComment(\n      //     typeChecker.compilerObject\n      //   )\n      // )\n      // My consideration: getJsDocs is newer than getDocumentationComment\n      // and ts-morph docs recommend using getJsDocs:\n      // https://github.com/dsherret/ts-morph/blob/cea07aa7759ecf5a1e9f90b628334b8bd617c624/docs/details/documentation.md#L59\n      const description = member\n        .getJsDocs()\n        .map((jsDoc) => {\n          return jsDoc.getDescription().trim()\n        })\n        .join('\\n\\n')\n\n      const type = member.getType().getText()\n\n      const defaultValue = (() => {\n        let res = ''\n        member.getJsDocs().find((jsDoc) =>\n          jsDoc.getTags().find((tag) => {\n            const match = ['defaultvalue', 'default'].includes(\n              tag.getTagName().toLowerCase()\n            )\n            if (match) {\n              res = tag.getCommentText() || ''\n              return true\n            }\n          })\n        )\n        return res\n      })()\n\n      // or use member.hasQuestionToken()\n      const optional = memberSymbol.isOptional()\n\n      result.push({\n        name,\n        description,\n        type,\n        defaultValue,\n        optional,\n      })\n    }\n  })\n  return result\n}\n\n/**\n * ref:\n *\n * https://github.com/microsoft/TypeScript/wiki/Using-the-Compiler-API\n *\n * https://stackoverflow.com/questions/59838013/how-can-i-use-the-ts-compiler-api-to-find-where-a-variable-was-defined-in-anothe\n *\n * https://stackoverflow.com/questions/60249275/typescript-compiler-api-generate-the-full-properties-arborescence-of-a-type-ide\n *\n * https://stackoverflow.com/questions/47429792/is-it-possible-to-get-comments-as-nodes-in-the-ast-using-the-typescript-compiler\n *\n * Instructions of learning ts compiler:\n * https://stackoverflow.com/a/58885450\n *\n * https://learning-notes.mistermicheels.com/javascript/typescript/compiler-api/\n */\n","/// <reference types=\"remark-mdx\" />\nimport type { Root } from 'mdast'\nimport type { MdxjsEsm } from 'mdast-util-mdx'\nimport {\n  createJSXWithSpreadPropsNode,\n  createNameSpaceImportNode,\n} from '../../utils/mdastUtils'\n\nexport function TsInfoMdxPlugin() {\n  return transformer\n\n  function transformer(tree: Root, file: any) {\n    const children = tree.children\n\n    const addImports: MdxjsEsm[] = []\n\n    children.forEach((child, index) => {\n      // find jsx node like: <TsInfo src=\"srcValue\" name=\"nameValue\" />\n      if (child.type === 'mdxJsxFlowElement' && child.name === 'TsInfo') {\n        const srcAttr = child.attributes.find(\n          (attr) =>\n            attr.type === 'mdxJsxAttribute' &&\n            attr.name === 'src' &&\n            typeof attr.value === 'string'\n        )\n        const srcValue = srcAttr?.value\n\n        const nameAttr = child.attributes.find(\n          (attr) =>\n            attr.type === 'mdxJsxAttribute' &&\n            attr.name === 'name' &&\n            typeof attr.value === 'string'\n        )\n        const nameValue = nameAttr?.value\n\n        if (srcValue && nameValue) {\n          const nextIndex = addImports.length\n          const varName = `_tsInfo${nextIndex}`\n          // add import:\n          // import * as varName from \"${srcValue}?tsInfo=${nameValue}\"\n          addImports.push(\n            createNameSpaceImportNode({\n              name: varName,\n              from: `${srcValue}?tsInfo=${nameValue}`,\n            })\n          )\n          // replace this node with:\n          // <TsInfo {...varName} />\n          children.splice(\n            index,\n            1,\n            createJSXWithSpreadPropsNode({\n              Component: 'TsInfo',\n              props: varName,\n            })\n          )\n        }\n      }\n    })\n\n    children.unshift(...addImports)\n  }\n}\n","import { ProxyModulesManager } from '../../utils/virtual-module'\nimport { collectInterfaceInfo } from './extract'\n\nconst PROXY_PREFIX = '/@react-pages/tsInfo'\n\n/**\n * TODO:\n * currently we only watch one sourceFilePath for each virtual module(proxyModule).\n * but if the sourceFilePath import other modules, and when that module has updated,\n * TsInfoModuleManager won't notice that.\n * we need a way to create virtual modules with dependencies.\n *\n * currently it is ok to tell users to write a whole type doc in a single file.\n * so supporting virtual modules with dependencies is not needed.\n * but supporting that feature would make our virtual module system more powerful.\n *\n * the same goes for DemoModuleManager.\n */\n\nexport class TsInfoModuleManager {\n  private pmm = new ProxyModulesManager(PROXY_PREFIX)\n\n  registerProxyModule(sourcePath: string, exportName: string) {\n    return this.pmm.registerProxyModule(\n      sourcePath,\n      async (file) => {\n        const tsInfo = collectInterfaceInfo(sourcePath, exportName)\n        return {\n          sourcePath,\n          exportName,\n          tsInfo,\n        }\n      },\n      exportName\n    )\n  }\n\n  isProxyModuleId(id: string) {\n    return this.pmm.isProxyModuleId(id)\n  }\n\n  async loadProxyModule(proxyModuleId: string) {\n    const data = await this.pmm.getProxyModuleData(proxyModuleId)\n    const { sourcePath, exportName, tsInfo } = data ?? {}\n    if (!sourcePath || !exportName || !tsInfo)\n      throw new Error(`assertion fail: invalid data: ${proxyModuleId}`)\n    return `export const data = ${JSON.stringify(tsInfo)};`\n  }\n\n  onUpdate(cb: (reloadPath: string) => void) {\n    this.pmm.onProxyModuleUpdate(cb)\n  }\n\n  close() {\n    this.pmm.close()\n  }\n}\n\nexport * from './mdx-plugin'\n","const bodyInjectRE = /<\\/body>/\nexport function injectHTMLTag(html: string, tagHtml: string) {\n  if (bodyInjectRE.test(html)) {\n    return html.replace(bodyInjectRE, `${tagHtml}\\n$&`)\n  }\n  // if no body, append\n  return html + `\\n` + tagHtml\n}\n","/// <reference types=\"remark-mdx\" />\nimport type { Root } from 'mdast'\nimport type { MdxjsEsm, MdxJsxFlowElement } from 'mdast-util-mdx'\nimport { createDefaultImportNode } from './mdastUtils'\n\nexport function FileTextMdxPlugin() {\n  return transformer\n\n  function transformer(tree: Root, file: any) {\n    const children = tree.children\n\n    const addImports: MdxjsEsm[] = []\n\n    children.forEach((child, index) => {\n      // find jsx node like: <FileText src=\"srcValue\" syntax=\"syntaxValue\" />\n      if (child.type === 'mdxJsxFlowElement' && child.name === 'FileText') {\n        const srcAttr = child.attributes.find(\n          (attr) =>\n            attr.type === 'mdxJsxAttribute' &&\n            attr.name === 'src' &&\n            typeof attr.value === 'string'\n        )\n        const srcValue = srcAttr?.value as string\n\n        const syntaxAttr = child.attributes.find(\n          (attr) =>\n            attr.type === 'mdxJsxAttribute' &&\n            attr.name === 'syntax' &&\n            typeof attr.value === 'string'\n        )\n        const syntaxValue = syntaxAttr?.value as string\n\n        if (srcValue && syntaxValue) {\n          const nextIndex = addImports.length\n          const varName = `_fileText${nextIndex}`\n          // add import:\n          // import varName from \"${srcValue}?raw\"\n          addImports.push(\n            createDefaultImportNode({\n              name: varName,\n              from: `${srcValue}?raw`,\n            })\n          )\n          // replace this node with:\n          // <FileText text={varName} syntax=\"syntaxValue\" />\n          children.splice(\n            index,\n            1,\n            createFileTextJSXNode({\n              text: varName,\n              syntax: syntaxValue,\n            })\n          )\n        }\n      }\n    })\n\n    children.unshift(...addImports)\n  }\n}\n\n/**\n * create mdast node for expression:\n * <FileText text={text} syntax=\"syntax\" />\n * checkout the parsed node structure in https://mdxjs.com/playground/\n */\nfunction createFileTextJSXNode({\n  text,\n  syntax,\n}: {\n  text: string\n  syntax: string\n}): MdxJsxFlowElement {\n  return {\n    type: 'mdxJsxFlowElement',\n    name: 'FileText',\n    data: {\n      _mdxExplicitJsx: true,\n    } as any,\n    children: [],\n    attributes: [\n      {\n        type: 'mdxJsxAttribute',\n        name: 'text',\n        value: {\n          type: 'mdxJsxAttributeValueExpression',\n          value: text,\n          data: {\n            estree: {\n              type: 'Program',\n              sourceType: 'module',\n              body: [\n                {\n                  type: 'ExpressionStatement',\n                  expression: {\n                    type: 'Identifier',\n                    name: text,\n                  },\n                },\n              ],\n            },\n          },\n        },\n      },\n      {\n        type: 'mdxJsxAttribute',\n        name: 'syntax',\n        value: syntax,\n      },\n    ],\n  }\n}\n","// collect headings\n// ref: https://github.com/syntax-tree/mdast-util-toc/blob/ba8f680a3cbcd96351febe2b73edb21598720945/lib/search.js#L67\n\nexport async function extractOutlineInfo(md: string) {\n  const { remark } = await import('remark')\n  const { default: remarkMdx } = await import('remark-mdx')\n  const { default: frontmatter } = await import('remark-frontmatter')\n  const { default: gfm } = await import('remark-gfm')\n  const { visit } = await import('unist-util-visit')\n  const { toString } = await import('mdast-util-to-string')\n  const { default: Slugger } = await import('github-slugger')\n\n  const ast = remark().use(frontmatter).use(gfm).use(remarkMdx).parse(md)\n  const slugs = new Slugger()\n  const headings: { depth: number; text: string; id: string }[] = []\n\n  visit(ast, 'heading', (node) => {\n    const text = toString(node, { includeImageAlt: false })\n    let id =\n      node.data && node.data.hProperties && (node.data.hProperties as any).id\n    id = slugs.slug(id || text)\n    if (!id) return\n    headings.push({ depth: node.depth, text, id })\n  })\n\n  // debugger\n  return { ast, outline: headings }\n}\n\n// extractOutlineInfo(`\n// # t1\n// 123123\n// ## t1.1\n// 23412\n\n// import ChildContent from './ChildContent';\n\n// <ChildContent />\n\n// # t2\n// asd\n// `)\n\nexport type OutlineItem = {\n  depth: number\n  text: string\n  id: string\n}\n","import invariant from 'tiny-invariant'\nimport { dequal } from 'dequal'\n\nimport { ProxyModulesManager } from '../../utils/virtual-module'\nimport { extractOutlineInfo } from './extractOutlineInfo'\n\n// mark demo proxy files as virtual files to avoid vite warning \"missing source files\"\n// https://github.com/vitejs/vite/blob/60721ac53a1bf326d1cac097f23642faede234ff/packages/vite/src/node/server/sourcemap.ts#L39\n// https://vitejs.dev/guide/api-plugin.html#virtual-modules-convention\nexport const OUTLINE_INFO_MODULE_ID_PREFIX = '\\0/@react-pages/outline-info'\n\nexport class OutlineInfoModuleManager {\n  private pmm = new ProxyModulesManager(OUTLINE_INFO_MODULE_ID_PREFIX)\n\n  registerProxyModule(datasourceFilePath: string) {\n    return this.pmm.registerProxyModule(datasourceFilePath, async (file) => {\n      const content = await file.read()\n      const { outline } = await extractOutlineInfo(content)\n      return {\n        datasourceFilePath,\n        outline,\n        // content,\n      }\n    })\n  }\n\n  isProxyModuleId = this.pmm.isProxyModuleId.bind(this.pmm)\n\n  async loadProxyModule(proxyModuleId: string) {\n    const data = await this.pmm.getProxyModuleData(proxyModuleId)\n    const { outline } = data ?? {}\n    if (!outline)\n      throw new Error(`assertion fail: invalid outline data: ${proxyModuleId}`)\n\n    return `export const outline = ${JSON.stringify(outline)};\nexport let onUpdate;\nif (import.meta.hot) {\n  const d = import.meta.hot.data;\n  if (!d.listeners) d.listeners = [];\n  onUpdate = (cb) => {\n    d.listeners.push(cb);\n    return () => {\n      d.listeners = d.listeners.filter(l => l !== cb);\n    }\n  };\n  import.meta.hot.accept((_newMod) => {\n    const newMod = {..._newMod, onUpdate: undefined};\n    d.listeners.forEach((cb) => cb(newMod));\n  })\n}\n`\n  }\n\n  onUpdate(cb: (reloadPath: string) => void) {\n    this.pmm.onProxyModuleUpdate((proxyModuleId: string, data, prevData) => {\n      invariant(data.length <= 1)\n      invariant(prevData.length <= 1)\n      const outline = data[0]?.outline\n      const prevOutline = prevData[0]?.outline\n      if (dequal(outline, prevOutline)) {\n        // outline hasn't changed. skip update\n        return\n      }\n      cb(proxyModuleId)\n    })\n  }\n\n  close() {\n    this.pmm.close()\n  }\n}\n","import * as path from 'path'\nimport type { PluggableList, Pluggable } from 'unified'\nimport type {\n  Plugin,\n  IndexHtmlTransformContext,\n  PluginOption,\n  Rollup,\n} from 'vite'\nimport type { staticSiteGenerationConfig } from './types'\n\nimport {\n  DefaultPageStrategy,\n  defaultFileHandler,\n} from './page-strategy/DefaultPageStrategy'\nimport {\n  renderPageList,\n  renderPageListInSSR,\n  renderOnePageData,\n  renderAllPagesOutlines,\n} from './page-strategy/pageUtils'\nimport { PageStrategy } from './page-strategy'\nimport { resolveTheme } from './virtual-module-plugins/theme'\nimport {\n  DemoModuleManager,\n  DemoMdxPlugin,\n} from './virtual-module-plugins/demo-modules'\nimport {\n  TsInfoModuleManager,\n  TsInfoMdxPlugin,\n} from './virtual-module-plugins/ts-info-module'\nimport { injectHTMLTag } from './utils/injectHTMLTag'\nimport { VirtualModulesManager } from './utils/virtual-module'\nimport { FileTextMdxPlugin } from './utils/mdx-plugin-file-text'\nimport {\n  OutlineInfoModuleManager,\n  OUTLINE_INFO_MODULE_ID_PREFIX,\n} from './virtual-module-plugins/outline-info-module'\n\n/**\n * This is a public API that users use in their index.html.\n * Changing this would introduce breaking change for users.\n */\nconst appEntryId = '/@pages-infra/main.js'\n\n/**\n * This is a private prefix and users should not use them directly\n */\nconst modulePrefix = '/@react-pages/'\nconst pagesModuleId = modulePrefix + 'pages'\nconst themeModuleId = modulePrefix + 'theme'\nconst ssrDataModuleId = modulePrefix + 'ssrData'\nconst allOutlineDataModuleId = modulePrefix + 'allPagesOutlines'\n\nconst tsInfoQueryReg = /\\?tsInfo=(.*)$/\n\nexport interface PluginConfig {\n  pagesDir?: string\n  pageStrategy?: PageStrategy\n  useHashRouter?: boolean\n  staticSiteGeneration?: staticSiteGenerationConfig\n  /** user can add/remove remark plugins passed to mdx */\n  modifyRemarkPlugins?: ModifyNamedUnifiedPlugins\n  /** user can add/remove rehype plugins passed to mdx */\n  modifyRehypePlugins?: ModifyNamedUnifiedPlugins\n}\n\nexport type NamedUnifiedPlugin = {\n  /** use name so that modifier can recognize a plugin */\n  name: string\n  createPlugin: () => Pluggable | Promise<Pluggable>\n}\n\nexport type ModifyNamedUnifiedPlugins = (\n  original: NamedUnifiedPlugin[]\n) => NamedUnifiedPlugin[]\n\nfunction pluginFactory(opts: PluginConfig = {}): Plugin {\n  const { useHashRouter = false, staticSiteGeneration } = opts\n\n  let isBuild: boolean\n  let pagesDir: string\n  let pageStrategy: PageStrategy\n  /** used as data source for PageStrategy and other dynamic-modules */\n  const virtualModulesManager = new VirtualModulesManager()\n  const demoModuleManager = new DemoModuleManager()\n  const tsInfoModuleManager = new TsInfoModuleManager()\n  const outlineInfoModuleManager = new OutlineInfoModuleManager()\n\n  return {\n    name: 'vite-plugin-react-pages',\n    enforce: 'pre',\n    config: (config, env) => ({\n      optimizeDeps: {\n        include: [\n          'react',\n          // fix https://github.com/vitejs/vite-plugin-react-pages/issues/132#issuecomment-1536515395\n          'react/jsx-runtime',\n          'react-dom',\n          'react-dom/client',\n          'react-router-dom',\n          '@mdx-js/react',\n        ],\n        exclude: ['vite-plugin-react-pages'],\n      },\n      define: {\n        __HASH_ROUTER__: !!useHashRouter,\n        'process.env.VITE_PAGES_IS_SSR': config.build?.ssr\n          ? JSON.stringify('true')\n          : JSON.stringify('false'),\n      },\n      build: {\n        rollupOptions: {\n          output: {\n            manualChunks: undefined,\n            // local rollup's types may not be compatible with vite's rollup types\n            plugins: [outputPluginDisableJekyll() as any],\n          },\n        },\n      },\n    }),\n    async configResolved({ root, plugins, logger, command }) {\n      isBuild = command === 'build'\n      pagesDir = opts.pagesDir ?? path.resolve(root, 'pages')\n      if (opts.pageStrategy) {\n        pageStrategy = opts.pageStrategy\n      } else {\n        pageStrategy = new DefaultPageStrategy()\n      }\n      const mdxPlugin = plugins.find(\n        (plugin) => plugin.name === 'vite-plugin-mdx'\n      )\n      if (mdxPlugin) {\n        throw new Error(\n          'You should not use vite-plugin-mdx with vite-plugin-react-pages. vite-pages v5 has buildin plugin for mdx.'\n        )\n      }\n    },\n    configureServer({ watcher, moduleGraph }) {\n      const reloadVirtualModule = (moduleId: string) => {\n        const module = moduleGraph.getModuleById(moduleId)\n        if (module) {\n          moduleGraph.invalidateModule(module)\n          watcher.emit('change', moduleId)\n        }\n      }\n\n      pageStrategy\n        .on('page-list', () => reloadVirtualModule(pagesModuleId))\n        .on('page', (pageIds: string[]) => {\n          pageIds.forEach((pageId) => {\n            reloadVirtualModule(pagesModuleId + pageId)\n          })\n        })\n\n      demoModuleManager.onUpdate(reloadVirtualModule)\n      tsInfoModuleManager.onUpdate(reloadVirtualModule)\n      outlineInfoModuleManager.onUpdate(reloadVirtualModule)\n    },\n    buildStart() {\n      // buildStart may be called multiple times\n      // if the port has already been taken and vite retry with another port\n\n      // pageStrategy.start can't be put in configResolved\n      // because vite's resolveConfig will call configResolved without calling close hook\n      pageStrategy.start(pagesDir, virtualModulesManager)\n    },\n    async resolveId(id, importer) {\n      if (id === appEntryId) return id\n      if (id.startsWith(modulePrefix)) return id\n      if (id.endsWith('?demo')) {\n        const bareImport = id.slice(0, 0 - '?demo'.length)\n        const resolved = await this.resolve(bareImport, importer)\n        if (!resolved || resolved.external)\n          throw new Error(`can not resolve demo: ${id}. importer: ${importer}`)\n        return demoModuleManager.registerProxyModule(resolved.id)\n      }\n      if (id.endsWith('?outlineInfo')) {\n        const bareImport = id.slice(0, 0 - '?outlineInfo'.length)\n        const resolved = await this.resolve(bareImport, importer)\n        if (!resolved || resolved.external)\n          throw new Error(\n            `can not resolve outlineInfo: ${id}. importer: ${importer}`\n          )\n        return outlineInfoModuleManager.registerProxyModule(resolved.id)\n      }\n      const matchTsInfo = id.match(tsInfoQueryReg)\n      if (matchTsInfo) {\n        const bareImport = id.replace(tsInfoQueryReg, '')\n        const resolved = await this.resolve(bareImport, importer)\n        if (!resolved || resolved.external)\n          throw new Error(\n            `can not resolve tsInfo: ${id}. importer: ${importer}`\n          )\n        const exportName = matchTsInfo[1]\n        return tsInfoModuleManager.registerProxyModule(resolved.id, exportName)\n      }\n      return undefined\n    },\n    async load(id) {\n      // vite will resolve it with v=${versionHash} query\n      // so that this import can be cached\n      if (id === appEntryId)\n        return `import \"vite-plugin-react-pages/dist/client-bundles/entries/csr.mjs\";`\n      // page list\n      if (id === pagesModuleId) {\n        return renderPageList(await pageStrategy.getPages(), isBuild)\n      }\n      // one page data\n      if (id.startsWith(pagesModuleId + '/')) {\n        let pageId = id.slice(pagesModuleId.length)\n        if (pageId === '/index__') pageId = '/'\n        const page = await pageStrategy.getPage(pageId)\n        if (!page) {\n          throw Error(`Page not found: ${pageId}`)\n        }\n        return renderOnePageData(page.data)\n      }\n      if (id === themeModuleId) {\n        return `export { default } from \"${await resolveTheme(pagesDir)}\";`\n      }\n      if (id === ssrDataModuleId) {\n        return renderPageListInSSR(await pageStrategy.getPages())\n      }\n      if (demoModuleManager.isProxyModuleId(id)) {\n        return demoModuleManager.loadProxyModule(id)\n      }\n      if (outlineInfoModuleManager.isProxyModuleId(id)) {\n        return outlineInfoModuleManager.loadProxyModule(id)\n      }\n      if (id === allOutlineDataModuleId) {\n        return renderAllPagesOutlines(await pageStrategy.getPages())\n      }\n      if (tsInfoModuleManager.isProxyModuleId(id)) {\n        return tsInfoModuleManager.loadProxyModule(id)\n      }\n    },\n    closeBundle() {\n      virtualModulesManager.close()\n      demoModuleManager.close()\n      tsInfoModuleManager.close()\n      outlineInfoModuleManager.close()\n    },\n    transformIndexHtml(html, ctx) {\n      return moveScriptTagToBodyEnd(html, ctx)\n    },\n    // Read by the cli script to get staticSiteGeneration config\n    // @ts-expect-error\n    vitePagesStaticSiteGeneration: staticSiteGeneration,\n  }\n}\n\nexport type {\n  Theme,\n  LoadState,\n  PagesLoaded,\n  PagesStaticData,\n  TsInfo,\n  TsPropertyOrMethodInfo,\n} from '../../clientTypes'\n\nexport type { FileHandler } from './page-strategy/types.doc'\nexport { extractStaticData, File } from './utils/virtual-module'\nexport { PageStrategy }\nexport { DefaultPageStrategy, defaultFileHandler }\n\n/**\n * vite put script before style, which cause style problem for antd\n * so we move the script tag to the end of the body\n * https://github.com/vitejs/vite/blob/4112c5d103673b83c50d446096086617dfaac5a3/packages/vite/src/node/plugins/html.ts#L352\n */\nfunction moveScriptTagToBodyEnd(\n  html: string,\n  ctx: IndexHtmlTransformContext\n): string | undefined {\n  if (ctx.chunk) {\n    const reg = new RegExp(\n      `<script\\\\s[^>]*?${ctx.chunk.fileName}[^<]*?<\\\\/script>`\n    )\n    const match = html.match(reg)\n    if (match) {\n      const script = match[0]\n      html = html.replace(script, '')\n      return injectHTMLTag(html, script)\n    }\n  }\n}\n\nexport default async function setupPlugins(\n  vpConfig: PluginConfig = {}\n): Promise<PluginOption[]> {\n  // use dynamic import so that it supports node commonjs\n  const mdx = await import('@mdx-js/rollup')\n  const mdxPlugin = mdx.default({\n    remarkPlugins: await getRemarkPlugins(vpConfig.modifyRemarkPlugins),\n    rehypePlugins: await getRehypePlugins(vpConfig.modifyRehypePlugins),\n    // treat .md as mdx\n    mdExtensions: [],\n    mdxExtensions: ['.md', '.mdx'],\n    providerImportSource: '@mdx-js/react',\n  })\n  return [\n    {\n      ...mdxPlugin,\n      enforce: 'pre',\n    },\n    createMdxTransformPlugin(),\n    pluginFactory(vpConfig),\n  ]\n}\n\nfunction getRemarkPlugins(\n  modifyPlugins?: ModifyNamedUnifiedPlugins\n): Promise<PluggableList> {\n  const originalPlugins: NamedUnifiedPlugin[] = [\n    {\n      name: 'remark-frontmatter',\n      // use dynamic import so that it works in node commonjs\n      // use lazy-eval function so that we don't import/create a plugin until we actually need it\n      // (it may be removed by modifyPlugins so we can avoid calling it)\n      createPlugin: () => import('remark-frontmatter').then((m) => m.default),\n    },\n    {\n      name: 'remark-gfm',\n      createPlugin: () => import('remark-gfm').then((m) => m.default),\n    },\n    {\n      name: 'remark-mdx-images',\n      createPlugin: () => import('remark-mdx-images').then((m) => m.default),\n    },\n    {\n      name: 'DemoMdxPlugin',\n      createPlugin: () => DemoMdxPlugin,\n    },\n    {\n      name: 'TsInfoMdxPlugin',\n      createPlugin: () => TsInfoMdxPlugin,\n    },\n    {\n      name: 'FileTextMdxPlugin',\n      createPlugin: () => FileTextMdxPlugin,\n    },\n  ]\n  return createFinalPlugins(originalPlugins, modifyPlugins)\n}\n\nfunction getRehypePlugins(\n  modifyPlugins?: ModifyNamedUnifiedPlugins\n): Promise<PluggableList> {\n  const originalPlugins: NamedUnifiedPlugin[] = [\n    {\n      name: 'rehype-slug',\n      // use dynamic import so that it works in node commonjs\n      // use lazy-eval function so that we don't import/create a plugin until we actually need it\n      // (it may be removed by modifyPlugins so we can avoid calling it)\n      createPlugin: () => import('rehype-slug').then((m) => m.default),\n    },\n  ]\n  return createFinalPlugins(originalPlugins, modifyPlugins)\n}\n\nfunction createFinalPlugins(\n  originalPlugins: NamedUnifiedPlugin[],\n  modifyPlugins: ModifyNamedUnifiedPlugins | undefined\n) {\n  const finalPlugins = (() => {\n    if (typeof modifyPlugins === 'function') {\n      const res = modifyPlugins(originalPlugins)\n      if (Array.isArray(res)) return res\n    }\n    return originalPlugins\n  })()\n  return Promise.all(finalPlugins.map(({ createPlugin }) => createPlugin()))\n}\n\n/**\n * use @vitejs/plugin-react to transform the output of @mdx-js/rollup,\n * adding react-refresh hmr ability to .md and .mdx files\n * workaround this issue: https://github.com/vitejs/vite-plugin-react/issues/38\n */\nfunction createMdxTransformPlugin(): Plugin {\n  let vitePluginReactTrasnform: Plugin['transform'] | undefined\n  const PLUGIN_NAME = 'vite-pages:mdx-fast-refresh'\n  return {\n    name: PLUGIN_NAME,\n    apply: 'serve',\n    configResolved: ({ plugins }) => {\n      // find this plugin to call it's transform function:\n      // https://github.com/vitejs/vite-plugin-react/blob/b647e74c38565696bd6fb931b8bd9ac7f3bebe88/packages/plugin-react/src/index.ts#L206\n      // or https://github.com/vitejs/vite-plugin-react-swc/blob/95e991914322e7b011d1c8d18d501b9eee21adaa/src/index.ts#L111\n      vitePluginReactTrasnform = plugins.find(\n        (p) =>\n          (p.name === 'vite:react-babel' &&\n            typeof p.transform === 'function') ||\n          (p.name === 'vite:react-swc' && typeof p.transform === 'function')\n      )?.transform\n      if (!vitePluginReactTrasnform) {\n        throw new Error(\n          `Can't find an instance of @vitejs/plugin-react or @vitejs/plugin-react-swc. You should apply either of these plugins to make mdx work.`\n        )\n      }\n      const reactSwcPluginIndex = plugins.findIndex(\n        (p) => p.name === 'vite:react-swc' && typeof p.transform === 'function'\n      )\n      const thisPluginIndex = plugins.findIndex((p) => p.name === PLUGIN_NAME)\n      if (\n        reactSwcPluginIndex !== -1 &&\n        thisPluginIndex !== -1 &&\n        reactSwcPluginIndex > thisPluginIndex\n      ) {\n        throw new Error(\n          '[vite-plugin-react-pages]: @vitejs/plugin-react-swc should be placed before this plugin'\n        )\n      }\n    },\n    transform: (code, id, options) => {\n      const [filepath, ...qs] = id.split('?')\n      if (\n        filepath.match(/\\.mdx?$/) &&\n        !id.startsWith(OUTLINE_INFO_MODULE_ID_PREFIX)\n      ) {\n        const refreshContentRE = /\\$Refresh(?:Reg|Sig)\\$\\(/\n        if (code.includes('/@react-refresh') && refreshContentRE.test(code)) {\n          // the mdx output has already been transformed by @vitejs/plugin-react-swc\n          // https://github.com/vitejs/vite-plugin-react-swc/blob/95e991914322e7b011d1c8d18d501b9eee21adaa/src/index.ts#L199C3-L199C3\n          // don't transform it again\n          return\n        }\n        // turn file path like `/path/to/md-file$.md` into `/path/to/md-file$.jsx`\n        // make vite-plugin-react transform \"the output of @mdx-js/rollup\" like a jsx file\n        // https://github.com/vitejs/vite-plugin-react/blob/caa9b5330092c70288fcb94ceb96ca42438df2a2/packages/plugin-react/src/index.ts#L170\n        const newFilePath = filepath.replace(/\\.mdx?$/, '.jsx')\n        const newId = [newFilePath, ...qs].join('?')\n\n        return (vitePluginReactTrasnform as any)(code, newId, options)\n      }\n    },\n  }\n}\n\n/**\n * Some chunk filenames may start with `_`, which will be treated as special resource by github pages. So we need to disable jekyll of github pages.\n * https://github.blog/2009-12-29-bypassing-jekyll-on-github-pages/\n */\nfunction outputPluginDisableJekyll(): Rollup.OutputPlugin {\n  return {\n    name: 'vite-pages-disable-jekyll',\n    generateBundle() {\n      this.emitFile({\n        type: 'asset',\n        fileName: '.nojekyll',\n        source: '',\n      })\n    },\n  }\n}\n"],"names":["extractStaticData","file","code","read","extname","data","frontmatter","grayMatter","staticData","sourceType","__sourceFilePath","path","title","undefined","extractMarkdownTitle","parse","extract","Error","match","PendingTaskCounter","count","callbacks","countTask","ended","forEach","cb","length","callOnceWhenIdle","push","countPendingState","pendingState","stopCounting","onStateChange","isPending","PendingState","_isPending","value","cbs","filter","v","File","content","constructor","base","relative","posix","slice","fs","readFile","VirtualModuleGraph","modules","Map","updateQueue","UpdateQueue","updateQueueEmptyState","getModuleIds","ids","Array","from","keys","getModuleData","moduleId","module","get","getData","getModules","entries","scheduleUpdate","updaterId","updater","size","setTimeout","executeUpdates","addModuleListener","handler","_addModuleListener","prevData","moduleUpdateListeners","index","indexOf","splice","callModuleUpdateListeners","updatedModules","moduleUpdateListener","id","updateExecutingState","executeUpdates_Inner","depth","MAX_CASCADE_UPDATE_DEPTH","recordAffectedModule","has","set","update","pop","cleanupEdgesWithUpdaterId","disableAPIs","apis","createUpdateAPIs","outdated","_this","OUTDATED_ERROR_MSG","addModuleData","upstreamModuleId","fromModule","ensureModule","toModule","Edge","addEdge","deleteModule","delete","result","Module","map","downstream","edge","to","unlink","Set","add","bindEdgeWithUpdaterId","hasUnlinked","unbindEdgeWithUpdaterId","mapUpdaterIdToEdges","edges","clear","Update","queue","shift","nextWatcherId","VirtualModulesManager","watchers","virtualModules","fileCache","pendingTaskCounter","addFSWatcher","baseDir","globs","fileHandler","watcherId","String","fsScanFinish","chokidar","watch","cwd","ignored","on","handleFileChange","handleFileUnLink","getModule","_getModulesNow","_getModuleDataNow","close","w","filePath","slash","join","handlerAPI","ProxyModulesManager","vmm","register","proxyModulePrefix","registerProxyModule","sourceFilePath","getProxyModuleData","key","proxyModuleId","getProxyModuleId","api","proxyModuleData","loaded","Promise","res","rej","moduleData","isArray","registerItem","onProxyModuleUpdate","notLoaded","prefix","isProxyModuleId","startsWith","getSourceFilePath","PageUpdateBuffer","EventEmitter","pageUpdateBuffer","pageListUpdateBuffer","scheduleFlush","debounce","havePageUpdate","updates","values","emit","type","dataType","pageId","JSON","stringify","batchUpdate","exec","PAGE_MODULE_PREFIX","ensurePageId","ensureModuleId","isPageRelatedModule","PagesDataKeeper","pages","virtualModulesManager","Object","setPageData","getPages","fromEntries","page","transformOnePageDataInternal","getPage","rawData","oldPageData","pageData","createPageDataFromRaw","dequal","runtimeData","dataMap","staticDataMap","dataPath","priority","isEmptyPage","lowerAPI","pageAPIs","createPageAPIs","addPageData","createOneTimePageAPIs","updaterAPIs","getRuntimeData","getDataObject","setData","existValue","createProxy","getStaticData","dataPiece","Proxy","defaultProxyTraps","target","Reflect","ownKeys","getOwnPropertyNames","fnName","PageStrategy","pagesDir","pagesDataKeeper","started","findPages","start","virtualModuleAPIs","oneTimePageAPIs","helpers","createHelpers","resolve","defaultFileHandler","watchFiles","arg2","arg3","DefaultPageStrategy","opts","extraFindPages","helpersFromParent","pagePublicPath","getPagePublicPath","relativePageFilePath","replace","_","paramName","renderPageList","pagesData","isBuild","addPagesData","subPath","dataModulePath","cleanStaticData","renderPageListInSSR","renderOnePageData","onePageData","importModule","dataKey","idx","renderAllPagesOutlines","index1","outlinesForThisPage","index2","varName","importOutlineInfo","resolveTheme","pagesDirPath","filename","pathExists","createNameSpaceImportNode","name","estree","body","specifiers","local","source","raw","createDefaultImportNode","createJSXWithSpreadPropsNode","Component","props","_mdxExplicitJsx","children","attributes","expression","properties","argument","DemoMdxPlugin","transformer","tree","addImports","child","srcAttr","find","attr","srcValue","nextIndex","unshift","DEMO_PROXY_PREFIX","DemoModuleManager","pmm","demoPath","strip","loadProxyModule","demoProxyId","description","desc","onUpdate","defaultTsConfig","ts","ScriptTarget","ESNext","lib","moduleResolution","ModuleResolutionKind","NodeJs","collectInterfaceInfo","fileName","exportName","options","project","Project","compilerOptions","sourceFile","addSourceFileAtPath","typeChecker","getTypeChecker","exportedDeclarations","getExportedDeclarations","node","Node","isTypeAliasDeclaration","getName","getJsDocs","jsDoc","getDescription","trim","typeNode","getTypeNode","isTypeLiteral","members","callSignatures","constructSignatures","handleTypeElementMembered","text","getText","includeJsDocComments","trimLeadingIndentation","isInterfaceDeclaration","getKindName","nodeType","getType","prop","getProperties","displayPartsToString","compilerSymbol","getDocumentationComment","compilerObject","getTypeAtLocation","TypeFormatFlags","UseAliasDefinedOutsideCurrentScope","defaultValue","getJsDocTags","tag","includes","toLowerCase","optional","isOptional","sig","getCallSignatures","compilerSignature","getDeclaration","getConstructSignatures","TsInfoMdxPlugin","nameAttr","nameValue","PROXY_PREFIX","TsInfoModuleManager","sourcePath","tsInfo","bodyInjectRE","injectHTMLTag","html","tagHtml","test","FileTextMdxPlugin","syntaxAttr","syntaxValue","createFileTextJSXNode","syntax","extractOutlineInfo","md","remark","default","remarkMdx","gfm","visit","toString","Slugger","ast","use","slugs","headings","includeImageAlt","hProperties","slug","outline","OUTLINE_INFO_MODULE_ID_PREFIX","OutlineInfoModuleManager","datasourceFilePath","bind","invariant","prevOutline","appEntryId","modulePrefix","pagesModuleId","themeModuleId","ssrDataModuleId","allOutlineDataModuleId","tsInfoQueryReg","pluginFactory","useHashRouter","staticSiteGeneration","pageStrategy","demoModuleManager","tsInfoModuleManager","outlineInfoModuleManager","enforce","config","env","optimizeDeps","include","exclude","define","__HASH_ROUTER__","build","ssr","rollupOptions","output","manualChunks","plugins","outputPluginDisableJekyll","configResolved","root","logger","command","mdxPlugin","plugin","configureServer","watcher","moduleGraph","reloadVirtualModule","getModuleById","invalidateModule","pageIds","buildStart","resolveId","importer","endsWith","bareImport","resolved","external","matchTsInfo","load","closeBundle","transformIndexHtml","ctx","moveScriptTagToBodyEnd","vitePagesStaticSiteGeneration","chunk","reg","RegExp","script","setupPlugins","vpConfig","mdx","remarkPlugins","getRemarkPlugins","modifyRemarkPlugins","rehypePlugins","getRehypePlugins","modifyRehypePlugins","mdExtensions","mdxExtensions","providerImportSource","createMdxTransformPlugin","modifyPlugins","originalPlugins","createPlugin","then","m","createFinalPlugins","finalPlugins","all","vitePluginReactTrasnform","PLUGIN_NAME","apply","p","transform","reactSwcPluginIndex","findIndex","thisPluginIndex","filepath","qs","split","refreshContentRE","newFilePath","newId","generateBundle","emitFile"],"mappings":"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"}