@nuxt/devtools 4.0.0-alpha.17 → 4.0.0-alpha.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/_nuxt/{CodeDiff-DgjeLx6z.js.map.json → CodeDiff-BhzZ6fTd.js.map.json} +1 -1
  2. package/dist/_nuxt/{CodeSnippets-CgfcaS4Z.js.map.json → CodeSnippets-C7LxVstU.js.map.json} +1 -1
  3. package/dist/_nuxt/{ComposableItem-BWQR7_fI.js.map.json → ComposableItem-C0rRVuVk.js.map.json} +1 -1
  4. package/dist/_nuxt/{DataSchemaButton-CqEfc2TV.js.map.json → DataSchemaButton-D-t7Fd9O.js.map.json} +1 -1
  5. package/dist/_nuxt/{DataSchemaDrawer-Xj8YzNJN.js.map.json → DataSchemaDrawer-CRqKi4Gs.js.map.json} +1 -1
  6. package/dist/_nuxt/{FilepathItem-D75bkTSa.js.map.json → FilepathItem-QhFtdBo3.js.map.json} +1 -1
  7. package/dist/_nuxt/{HelpFab-CH7NlsDf.js.map.json → HelpFab-DsqK9feu.js.map.json} +1 -1
  8. package/dist/_nuxt/{LaunchPage-ByG-3KVi.js.map.json → LaunchPage-DvnAdXoI.js.map.json} +1 -1
  9. package/dist/_nuxt/{NCheckbox-OMIu_LTG.js.map.json → NCheckbox-C4hTNEJ1.js.map.json} +1 -1
  10. package/dist/_nuxt/{NDrawer-C6Opm19C.js.map.json → NDrawer-CkklqKLr.js.map.json} +1 -1
  11. package/dist/_nuxt/{NDropdown-DseEG3tA.js.map.json → NDropdown-CgrUsKt7.js.map.json} +1 -1
  12. package/dist/_nuxt/NIcon-50gk2nbO.js.map.json +1 -0
  13. package/dist/_nuxt/{NLink-Rsxlt1NN.js.map.json → NLink-CatISrot.js.map.json} +1 -1
  14. package/dist/_nuxt/{NNavbar-CS-Z1Cle.js.map.json → NNavbar-Du6Evn0c.js.map.json} +1 -1
  15. package/dist/_nuxt/{NSectionBlock-C7kcMkbf.js.map.json → NSectionBlock-CWogkb2Y.js.map.json} +1 -1
  16. package/dist/_nuxt/{NSelect-geGP1eOG.js.map.json → NSelect-C1Q6pEoo.js.map.json} +1 -1
  17. package/dist/_nuxt/{NSelectTabs-nUMnNQy-.js.map.json → NSelectTabs-ccruddjj.js.map.json} +1 -1
  18. package/dist/_nuxt/{NSplitPane-Bh0o_t5e.js.map.json → NSplitPane-CtaObqWQ.js.map.json} +1 -1
  19. package/dist/_nuxt/{NTip-DRnTpLjG.js.map.json → NTip-DdMJ2p97.js.map.json} +1 -1
  20. package/dist/_nuxt/{ServerRouteInputs-BhIrPxPN.js.map.json → ServerRouteInputs-Y1oZjFFT.js.map.json} +1 -1
  21. package/dist/_nuxt/{StacktraceList-B-ehJIQ-.js.map.json → StacktraceList-c-F2IS3F.js.map.json} +1 -1
  22. package/dist/_nuxt/{StateEditor-Yqdbqk_c.js.map.json → StateEditor-CDR7gMTz.js.map.json} +1 -1
  23. package/dist/_nuxt/{__blank-BM2yOFO6.js.map.json → __blank-C9tG8tKE.js.map.json} +1 -1
  24. package/dist/_nuxt/{analyze-build-Cemp_oBq.js.map.json → analyze-build-BqtehgeE.js.map.json} +1 -1
  25. package/dist/_nuxt/assets-BuVkFuYO.js.map.json +1 -0
  26. package/dist/_nuxt/{components-BJnHweOE.js.map.json → components-uGD7fpTl.js.map.json} +1 -1
  27. package/dist/_nuxt/custom-_name_-CL9ijc8K.js.map.json +1 -0
  28. package/dist/_nuxt/{debug-BcJZ8M6i.js.map.json → debug-D10Jwem2.js.map.json} +1 -1
  29. package/dist/_nuxt/entry-CqsJq8Bj.js.map.json +1 -0
  30. package/dist/_nuxt/{error-404-dySA7T2P.js.map.json → error-404-B3hvNTTL.js.map.json} +1 -1
  31. package/dist/_nuxt/{error-500-2Ody89Er.js.map.json → error-500-C707LWWo.js.map.json} +1 -1
  32. package/dist/_nuxt/{error-hGc4cWUU.js.map.json → error-D03t_7ms.js.map.json} +1 -1
  33. package/dist/_nuxt/{head-BTCtirw3.js.map.json → head-BHeO3WM1.js.map.json} +1 -1
  34. package/dist/_nuxt/{hooks-BVzlIVXR.js.map.json → hooks-Dao-RDzo.js.map.json} +1 -1
  35. package/dist/_nuxt/{imports-B3k4BZF7.js.map.json → imports-CY-qGueB.js.map.json} +1 -1
  36. package/dist/_nuxt/{modules-Ck915TxZ.js.map.json → modules-BTU4bGX2.js.map.json} +1 -1
  37. package/dist/_nuxt/nuxt-CU0ot_Hr.js.map.json +1 -0
  38. package/dist/_nuxt/{nuxt-link-C-BBeF5l.js.map.json → nuxt-link-DVKhBKYR.js.map.json} +1 -1
  39. package/dist/_nuxt/{open-graph-ll_bjX_m.js.map.json → open-graph-DrWy0sHo.js.map.json} +1 -1
  40. package/dist/_nuxt/overview-DMlMZwOJ.js.map.json +1 -0
  41. package/dist/_nuxt/{pages-CrUWMxGz.js.map.json → pages-BqpyOhlp.js.map.json} +1 -1
  42. package/dist/_nuxt/{pages-DWELoQlh.js.map.json → pages-Dpy3RGh8.js.map.json} +1 -1
  43. package/dist/_nuxt/{pages-BddDWJsZ.js.map.json → pages-SVg8-7rL.js.map.json} +1 -1
  44. package/dist/_nuxt/{payload-29bFuqLh.js.map.json → payload-B4tGg_yJ.js.map.json} +1 -1
  45. package/dist/_nuxt/{plugins-fmmRaH-S.js.map.json → plugins-sOeLpXdK.js.map.json} +1 -1
  46. package/dist/_nuxt/{ready-BQ1fhXgL.js.map.json → ready-DyAGZGXh.js.map.json} +1 -1
  47. package/dist/_nuxt/{runtime-configs-iL68LNkj.js.map.json → runtime-configs-CKsHjoDA.js.map.json} +1 -1
  48. package/dist/_nuxt/server-routes-Dr4xIhnL.js.map.json +1 -0
  49. package/dist/_nuxt/server-tasks-DVSMIJ23.js.map.json +1 -0
  50. package/dist/_nuxt/{settings-Qa45tU8e.js.map.json → settings-ClAb5Ncw.js.map.json} +1 -1
  51. package/dist/_nuxt/{state-components-CksF081b.js.map.json → state-components-CUy4qfKa.js.map.json} +1 -1
  52. package/dist/_nuxt/state-modules-BiTBg3sT.js.map.json +1 -0
  53. package/dist/_nuxt/{state-tabs-m1o-BX5R.js.map.json → state-tabs-DyXoC_gu.js.map.json} +1 -1
  54. package/dist/_nuxt/storage-Bl77u--J.js.map.json +1 -0
  55. package/dist/_nuxt/{timeline-Dukbqafi.js.map.json → timeline-RijyQyqW.js.map.json} +1 -1
  56. package/dist/_nuxt/utils-B-D4Pftb.js.map.json +1 -0
  57. package/dist/_nuxt/{virtual-files-BQJM45QE.js.map.json → virtual-files-DKOje2lN.js.map.json} +1 -1
  58. package/dist/_nuxt/virtual_nuxt_node_modules_.cache_nuxt_.nuxt_fetch.server-pxhz0pzP.js.map.json +1 -0
  59. package/dist/chunks/analyze-build.mjs +1 -1
  60. package/dist/chunks/module-main.mjs +92 -61
  61. package/dist/chunks/vite-inspect.mjs +1 -1
  62. package/dist/index.mjs.map.json +1 -1
  63. package/dist/module.json +1 -1
  64. package/dist/runtime/shared/hooks.d.ts +10 -2
  65. package/dist/server.mjs.map.json +1 -1
  66. package/package.json +24 -24
  67. package/dist/_nuxt/AuthRequiredPanel-znjaI7oT.js.map.json +0 -1
  68. package/dist/_nuxt/NIcon-cjduOh_B.js.map.json +0 -1
  69. package/dist/_nuxt/assets-rTFAaows.js.map.json +0 -1
  70. package/dist/_nuxt/custom-_name_-DI8dnRDD.js.map.json +0 -1
  71. package/dist/_nuxt/entry-DZwY6FLS.js.map.json +0 -1
  72. package/dist/_nuxt/nuxt-C5VITehY.js.map.json +0 -1
  73. package/dist/_nuxt/overview-CyqDmfdE.js.map.json +0 -1
  74. package/dist/_nuxt/server-routes-Dy5_Ljmu.js.map.json +0 -1
  75. package/dist/_nuxt/server-tasks-CD-7IPFD.js.map.json +0 -1
  76. package/dist/_nuxt/state-modules-CyH4hWeN.js.map.json +0 -1
  77. package/dist/_nuxt/storage-BylO3p9r.js.map.json +0 -1
  78. package/dist/_nuxt/utils-BfB0tRbX.js.map.json +0 -1
@@ -1 +0,0 @@
1
- {"file":"state-modules-CyH4hWeN.js","mappings":";;;;;;;;;;AAaA,IAAA,8DAA4B,8BAAiB;CAC3C,QAAQ;CACR,mBAAmB;CACnB,OAAO;EACL,aAAa,CAAC;EACd,SAAS,CAAC;EACV,aAAa;GAAE,MAAM;GAAS,SAAS;EAAK;CAC9C;CACA,MAAM,SAAc;EAEtB,MAAM,QAAQ;EAEd,MAAM,EACJ,MACA,QACA,OACA,WACA,YACE,iBAAiB,MAAM,aAAa,MAAM,OAAO;EAErD,MAAM,uBAAuB,IAAI,IAAI;EACrC,MAAM,sBAAsB,IAAI,IAAI;EACpC,MAAM,iBAAiB,kBAAkB;EAEzC,MAAM,iBAAiB,sBAAyC;EAEhE,eAAe,oBAAoB;GACjC,MAAM,YAAY,MAAM,OAAO,OAAO,YAAY;IAChD,OAAO,eAAe,MAAM,OAAO;GACrC,CAAC;GAED,UAAU,cAAc;IACtB,aAAa,MAAM;IACnB,YAAY,KAAK,OAAO;GAC1B,CAAC;GAED,IAAI,aAAa,oBAAoB,OACnC,eAAe,MAAM,KAAK;IACxB,IAAI;IACJ,SAAS,GAAG,MAAM,YAAY;GAChC,CAAC;GAEH,IAAI,aAAa,qBAAqB,OACpC,IAAI,eAAe,SAAS;EAChC;EAEA,QAAQ,MAAU,OAAW,SAAa,WAAgB;GACxD,MAAM,oBAAoB;GAC1B,MAAM,qBAAqB;GAC3B,MAAM,wBAAwB;GAC9B,MAAM,uBAAuB;GAC7B,MAAM,kBAAkB;GACxB,MAAM,qBAAqB;GAE3B,MAAM,UAAU;GAChB,cAAe,KAAK,QAAQ,WAAW;IACrC,IAAI,MAAO,SAAS;IACpB,MAAM,MAAO,IAAI;IACjB,QAAQ;IACR,OAAO,MAAO,KAAK;IACnB,SAAS,MAAO,OAAO;GACzB,SAAS;IACP,IAAI,MAAO,IAAI,KAAK,QAAQ,aAC1B,MAAM,SAAS,eAAgB,IAAI,MAAO,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ;SAEnE,MAAM,SAAS;IAEjB,IAAI,MAAO,IAAI,CAAC,EAAE,QAAQ;KACxB,MAAM,UAAU;KAChB,IAAI,MAAO,IAAI,CAAC,CAAC,aAAa;MAC5B,MAAM,UAAU;MAChB,MAAM,mBAAoB,mBAAmB;OAC3C,GAAG;OACH,OAAO;MACT,GAAG,MAAM,OAAO,CAAC;MACjB,MAAM,WAAW;KACnB,OACE,MAAM,mBAAoB,mBAAmB;MAC3C,GAAG;MACH,OAAO;KACT,GAAG,MAAM,OAAO,CAAC;KAEnB,MAAM,UAAU;IAClB,OACE,MAAM,SAAS;GAEnB,GAAG,OAAO,OAAO;GACjB,MAAM,mBAAoB,MAAO,cAAc,GAAG,MAAM;IACtD,SAAS,SAAU,EAAE,SAAS,QAAQ,OAAO,SAAS,aAAa;KACjE,IAAI,OACF,MAAM,mBAAoB,oBAAoB;MAC5C,eAAe;MACf,UAAU,WAAiB,QAAQ,KAAK;KAC1C,GAAG;MACD,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;OACjD,IAAI,OAAO;QACT,MAAM,6BACJ,SACD,4CACC,SACD,WACC,eAAgB,MAAM,WAAW,EAClC,gBACC,SACD,gEAAgE;QACjE,MAAM,mBAAoB,uBAAuB;SAC/C,MAAM,KAAK;SACX,MAAM;SACN,KAAK;SACL,KAAK;SACL,KAAK;SACL,QAAQ;SACR,OAAO;QACT,GAAG,MAAM,SAAS,QAAQ,CAAC;QAC3B,MAAM,mBAAoB,sBAAsB;SAC9C,YAAY,qBAAqB;SACjC,wBAAwB,WAAiB,qBAAuB,QAAQ;SACxE,GAAG;QACL,GAAG;SACD,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;UACjD,IAAI,OACF,MAAM,2BAA2B;eAEjC,OAAO,CACL,gBAAiB,2BAA2B,CAC9C;SAEJ,CAAC;SACD,GAAG;QACL,GAAG,SAAS,QAAQ,CAAC;QACrB,MAAM,mBAAoB,sBAAsB;SAC9C,YAAY,oBAAoB;SAChC,wBAAwB,WAAiB,oBAAsB,QAAQ;SACvE,GAAG;QACL,GAAG;SACD,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;UACjD,IAAI,OACF,MAAM,oCAAoC;eAE1C,OAAO,CACL,gBAAiB,oCAAoC,CACvD;SAEJ,CAAC;SACD,GAAG;QACL,GAAG,SAAS,QAAQ,CAAC;QACrB,MAAM,sCAAsC,SAAS,EAAE;QACvD,MAAM,mBAAoB,iBAAiB;SACzC,GAAG;SACH,aAAa;SACb,MAAM;QACR,GAAG;SACD,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;UACjD,IAAI,OACF,MAAM,kDAAkD;eAExD,OAAO,CACL,gBAAiB,kDAAkD,CACrE;SAEJ,CAAC;SACD,GAAG;QACL,GAAG,SAAS,QAAQ,CAAC;QACrB,MAAM,mBAAoB,oBAAoB,EAC5C,UAAU,WAAiB,QAAQ,KAAK,EAC1C,GAAG;SACD,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;UACjD,IAAI,OACF,MAAM,UAAU;eAEhB,OAAO,CACL,gBAAiB,UAAU,CAC7B;SAEJ,CAAC;SACD,GAAG;QACL,GAAG,SAAS,QAAQ,CAAC;QACrB,MAAM,mBAAoB,oBAAoB;SAC5C,GAAG;SACH,UAAU,WAAiB,QAAQ,IAAI;QACzC,GAAG;SACD,SAAS,SAAU,GAAG,OAAO,SAAS,aAAa;UACjD,IAAI,OACF,MAAM,UAAU;eAEhB,OAAO,CACL,gBAAiB,UAAU,CAC7B;SAEJ,CAAC;SACD,GAAG;QACL,GAAG,SAAS,QAAQ,CAAC;QACrB,MAAM,cAAc;OACtB,OACE,OAAO,CACL,YAAa,OAAO;QAClB,IAAI;QACJ,MAAM;OACR,GAAG;QACD,YAAa,MAAM,EAAE,OAAO,gCAAgC,GAAG,aAAa,gBAAiB,MAAM,WAAW,IAAI,MAAM,CAAC;QACzH,YAAa,KAAK,EAAE,MAAM,GAAG,GAAG,4DAA4D;QAC5F,YAAa,uBAAuB;SAClC,MAAM,KAAK;SACX,MAAM;SACN,KAAK;SACL,KAAK;SACL,KAAK;SACL,QAAQ;SACR,OAAO;QACT,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;QACpB,YAAa,sBAAsB;SACjC,YAAY,qBAAqB;SACjC,wBAAwB,WAAiB,qBAAuB,QAAQ;SACxE,GAAG;QACL,GAAG;SACD,SAAS,cAAe,CACtB,gBAAiB,2BAA2B,CAC9C,CAAC;SACD,GAAG;QACL,GAAG,GAAG,CAAC,cAAc,qBAAqB,CAAC;QAC3C,YAAa,sBAAsB;SACjC,YAAY,oBAAoB;SAChC,wBAAwB,WAAiB,oBAAsB,QAAQ;SACvE,GAAG;QACL,GAAG;SACD,SAAS,cAAe,CACtB,gBAAiB,oCAAoC,CACvD,CAAC;SACD,GAAG;QACL,GAAG,GAAG,CAAC,cAAc,qBAAqB,CAAC;QAC3C,YAAa,OAAO;SAClB,MAAM;SACN,KAAK;SACL,eAAe;QACjB,GAAG;SACD,YAAa,iBAAiB;UAC5B,GAAG;UACH,aAAa;UACb,MAAM;SACR,GAAG;UACD,SAAS,cAAe,CACtB,gBAAiB,kDAAkD,CACrE,CAAC;UACD,GAAG;SACL,CAAC;SACD,YAAa,oBAAoB,EAC/B,UAAU,WAAiB,QAAQ,KAAK,EAC1C,GAAG;UACD,SAAS,cAAe,CACtB,gBAAiB,UAAU,CAC7B,CAAC;UACD,GAAG;SACL,GAAG,GAAG,CAAC,SAAS,CAAC;SACjB,YAAa,oBAAoB;UAC/B,GAAG;UACH,UAAU,WAAiB,QAAQ,IAAI;SACzC,GAAG;UACD,SAAS,cAAe,CACtB,gBAAiB,UAAU,CAC7B,CAAC;UACD,GAAG;SACL,GAAG,GAAG,CAAC,SAAS,CAAC;QACnB,CAAC;OACH,CAAC,CACH;MAEJ,CAAC;MACD,GAAG;KACL,GAAG,SAAS,QAAQ,CAAC;UAErB,OAAO,CACL,YAAa,oBAAoB;MAC/B,eAAe;MACf,UAAU,WAAiB,QAAQ,KAAK;KAC1C,GAAG;MACD,SAAS,cAAe,CACtB,YAAa,OAAO;OAClB,IAAI;OACJ,MAAM;MACR,GAAG;OACD,YAAa,MAAM,EAAE,OAAO,gCAAgC,GAAG,aAAa,gBAAiB,MAAM,WAAW,IAAI,MAAM,CAAC;OACzH,YAAa,KAAK,EAAE,MAAM,GAAG,GAAG,4DAA4D;OAC5F,YAAa,uBAAuB;QAClC,MAAM,KAAK;QACX,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,OAAO;OACT,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;OACpB,YAAa,sBAAsB;QACjC,YAAY,qBAAqB;QACjC,wBAAwB,WAAiB,qBAAuB,QAAQ;QACxE,GAAG;OACL,GAAG;QACD,SAAS,cAAe,CACtB,gBAAiB,2BAA2B,CAC9C,CAAC;QACD,GAAG;OACL,GAAG,GAAG,CAAC,cAAc,qBAAqB,CAAC;OAC3C,YAAa,sBAAsB;QACjC,YAAY,oBAAoB;QAChC,wBAAwB,WAAiB,oBAAsB,QAAQ;QACvE,GAAG;OACL,GAAG;QACD,SAAS,cAAe,CACtB,gBAAiB,oCAAoC,CACvD,CAAC;QACD,GAAG;OACL,GAAG,GAAG,CAAC,cAAc,qBAAqB,CAAC;OAC3C,YAAa,OAAO;QAClB,MAAM;QACN,KAAK;QACL,eAAe;OACjB,GAAG;QACD,YAAa,iBAAiB;SAC5B,GAAG;SACH,aAAa;SACb,MAAM;QACR,GAAG;SACD,SAAS,cAAe,CACtB,gBAAiB,kDAAkD,CACrE,CAAC;SACD,GAAG;QACL,CAAC;QACD,YAAa,oBAAoB,EAC/B,UAAU,WAAiB,QAAQ,KAAK,EAC1C,GAAG;SACD,SAAS,cAAe,CACtB,gBAAiB,UAAU,CAC7B,CAAC;SACD,GAAG;QACL,GAAG,GAAG,CAAC,SAAS,CAAC;QACjB,YAAa,oBAAoB;SAC/B,GAAG;SACH,UAAU,WAAiB,QAAQ,IAAI;QACzC,GAAG;SACD,SAAS,cAAe,CACtB,gBAAiB,UAAU,CAC7B,CAAC;SACD,GAAG;QACL,GAAG,GAAG,CAAC,SAAS,CAAC;OACnB,CAAC;MACH,CAAC,CACH,CAAC;MACD,GAAG;KACL,GAAG,MAAM,CAAC,SAAS,CAAC,CACtB;IAEJ,CAAC;IACD,GAAG;GACL,GAAG,OAAO,CAAC;GACX,MAAM,UAAU;EAClB;CACA;AAEA,CAAC;;;;;;;;;;;;AE5WD,IAAM,iBAAiB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,SAAgB,iBAAiB;CAC/B,OAAO,cAAc,kBAAkB,YAAY;EAGjD,QAAO,MADS,OAAwC,wCAAwC,EAAA,CACvF,QACN,QAAQ,SAA2B,CAAC,eAAe,SAAS,KAAK,GAAG,KAAK,KAAK,cAAc,KAAK,SAAS,KAAK,CAAC;CACrH,CAAC;AACH;AAEA,SAAgB,sBAAsB;CACpC,OAAO,SAAS,2BAA2B;EACzC,MAAM,SAAS,gBAAgB;EAC/B,MAAM,UAAU,eAAe;EAE/B,OAAO,gBAAgB,OAAO,OAAO,qBAAqB,CAAC,EAAA,CACxD,KAAK,QAA6B;GAEjC,IAAI,CAAC,IAAI,WACP,OAAO,KAAA;GAET,MAAM,kBAAkB,CAAC,EAAE,IAAI,aAAa,iBAAiB,IAAI,SAAS;GAC1E,MAAM,OAAO,IAAI,MAAM,OACnB,IAAI,MAAM,OACV,IAAI,YACF,kBACE,sBAAsB,IAAI,SAAS,IACnC,OAAO,OAAO,UACZ,kBAAkB,IAAI,WAAW,OAAO,OAAO,OAAO,CAAC,CAAC,OACxD,KAAA,IACJ,KAAA;GAKN,OAAO;IACL;IACA;IACA,iBAAA,CANuB,CAAC,OAAO,OAAO,SAAS,SAAS,IAAI;IAO5D,MANW,QAAQ,OAAO,MAAK,MAAK,EAAE,QAAQ,IAAI,KAAK,QAAQ,OAAO,MAAK,MAAK,EAAE,SAAS,IAAI;IAO/F,GAAG;GACL;EACF,CAAC,CAAC,CACD,QAAO,MAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,eAAe,SAAS,EAAE,IAAI,EAAE,CAAC;CACpE,CAAC;AACH","names":[],"sources":["../../../../../../../../components/NpmVersionCheck.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../components/NpmVersionCheck.vue","../../../../../../../../composables/state-modules.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, withCtx as _withCtx, createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, createVNode as _createVNode } from \"vue\"\nimport { ssrRenderSlot as _ssrRenderSlot, ssrRenderComponent as _ssrRenderComponent, ssrInterpolate as _ssrInterpolate } from \"vue/server-renderer\"\n\nimport type { NpmCommandOptions } from '../../src/types'\nimport { createTemplatePromise } from '@vueuse/core'\nimport { ref } from 'vue'\nimport { useRestartDialogs } from '~/composables/dialog'\nimport { usePackageUpdate } from '~/composables/npm'\nimport { rpc } from '~/composables/rpc'\nimport { telemetry } from '~/composables/telemetry'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'NpmVersionCheck',\n __ssrInlineRender: true,\n props: {\n packageName: {},\n options: {},\n showVersion: { type: Boolean, default: true }\n },\n setup(__props: any) {\n\nconst props = __props\n\nconst {\n info,\n update,\n state,\n processId,\n restart,\n} = usePackageUpdate(props.packageName, props.options)\n\nconst shouldRevealTerminal = ref(true)\nconst shouldRestartServer = ref(true)\nconst restartDialogs = useRestartDialogs()\n\nconst PromiseConfirm = createTemplatePromise<boolean, [string]>()\n\nasync function updateWithConfirm() {\n const processId = await update(async (command) => {\n return PromiseConfirm.start(command)\n })\n\n telemetry('npm:update', {\n packageName: props.packageName,\n oldVersion: info.value?.current,\n })\n\n if (processId && shouldRestartServer.value) {\n restartDialogs.value.push({\n id: processId,\n message: `${props.packageName} has been updated. Do you want to restart the Nuxt server now?`,\n })\n }\n if (processId && shouldRevealTerminal.value)\n rpc.revealTerminal(processId)\n}\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NBadge = _resolveComponent(\"NBadge\")!\n const _component_NDialog = _resolveComponent(\"NDialog\")!\n const _component_NCodeBlock = _resolveComponent(\"NCodeBlock\")!\n const _component_NCheckbox = _resolveComponent(\"NCheckbox\")!\n const _component_NTip = _resolveComponent(\"NTip\")!\n const _component_NButton = _resolveComponent(\"NButton\")!\n\n _push(`<!--[-->`)\n _ssrRenderSlot(_ctx.$slots, \"default\", {\n id: _unref(processId),\n info: _unref(info),\n update: updateWithConfirm,\n state: _unref(state),\n restart: _unref(restart)\n }, () => {\n if (_unref(info) && __props.showVersion) {\n _push(`<code>${_ssrInterpolate(`v${_unref(info).current}`)}</code>`)\n } else {\n _push(`<!---->`)\n }\n if (_unref(info)?.latest) {\n _push(`<!--[-->`)\n if (_unref(info).needsUpdate) {\n _push(`<button>`)\n _push(_ssrRenderComponent(_component_NBadge, {\n n: \"green\",\n title: \"updates available\"\n }, null, _parent))\n _push(`</button>`)\n } else {\n _push(_ssrRenderComponent(_component_NBadge, {\n n: \"gray\",\n title: \"latest\"\n }, null, _parent))\n }\n _push(`<!--]-->`)\n } else {\n _push(`<!---->`)\n }\n }, _push, _parent)\n _push(_ssrRenderComponent(_unref(PromiseConfirm), null, {\n default: _withCtx(({ resolve, args }, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_NDialog, {\n \"model-value\": true,\n onClose: ($event: any) => (resolve(false))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<div p4 flex=\"~ col gap-1\"${\n _scopeId\n }><h3 class=\"text-lg font-medium leading-6\"${\n _scopeId\n }> Update ${\n _ssrInterpolate(props.packageName)\n }? </h3><p op50${\n _scopeId\n }> The following command will be executed in your terminal: </p>`)\n _push(_ssrRenderComponent(_component_NCodeBlock, {\n code: args[0],\n lang: \"bash\",\n my3: \"\",\n px4: \"\",\n py2: \"\",\n border: \"~ base rounded\",\n lines: false\n }, null, _parent, _scopeId))\n _push(_ssrRenderComponent(_component_NCheckbox, {\n modelValue: shouldRevealTerminal.value,\n \"onUpdate:modelValue\": ($event: any) => ((shouldRevealTerminal).value = $event),\n n: \"primary\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Open the Terminals dock `)\n } else {\n return [\n _createTextVNode(\" Open the Terminals dock \")\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n _push(_ssrRenderComponent(_component_NCheckbox, {\n modelValue: shouldRestartServer.value,\n \"onUpdate:modelValue\": ($event: any) => ((shouldRestartServer).value = $event),\n n: \"primary\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Restart Nuxt server after update `)\n } else {\n return [\n _createTextVNode(\" Restart Nuxt server after update \")\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n _push(`<div flex=\"~ gap-3\" mt2 justify-end${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NTip, {\n n: \"sm amber\",\n \"flex-auto\": \"\",\n icon: \"i-carbon-data-backup\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Please make sure to backup your project first. `)\n } else {\n return [\n _createTextVNode(\" Please make sure to backup your project first. \")\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n _push(_ssrRenderComponent(_component_NButton, {\n onClick: ($event: any) => (resolve(false))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Cancel `)\n } else {\n return [\n _createTextVNode(\" Cancel \")\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"solid primary\",\n onClick: ($event: any) => (resolve(true))\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Update `)\n } else {\n return [\n _createTextVNode(\" Update \")\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n _push(`</div></div>`)\n } else {\n return [\n _createVNode(\"div\", {\n p4: \"\",\n flex: \"~ col gap-1\"\n }, [\n _createVNode(\"h3\", { class: \"text-lg font-medium leading-6\" }, \" Update \" + _toDisplayString(props.packageName) + \"? \", 1),\n _createVNode(\"p\", { op50: \"\" }, \" The following command will be executed in your terminal: \"),\n _createVNode(_component_NCodeBlock, {\n code: args[0],\n lang: \"bash\",\n my3: \"\",\n px4: \"\",\n py2: \"\",\n border: \"~ base rounded\",\n lines: false\n }, null, 8, [\"code\"]),\n _createVNode(_component_NCheckbox, {\n modelValue: shouldRevealTerminal.value,\n \"onUpdate:modelValue\": ($event: any) => ((shouldRevealTerminal).value = $event),\n n: \"primary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Open the Terminals dock \")\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n _createVNode(_component_NCheckbox, {\n modelValue: shouldRestartServer.value,\n \"onUpdate:modelValue\": ($event: any) => ((shouldRestartServer).value = $event),\n n: \"primary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Restart Nuxt server after update \")\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n _createVNode(\"div\", {\n flex: \"~ gap-3\",\n mt2: \"\",\n \"justify-end\": \"\"\n }, [\n _createVNode(_component_NTip, {\n n: \"sm amber\",\n \"flex-auto\": \"\",\n icon: \"i-carbon-data-backup\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Please make sure to backup your project first. \")\n ]),\n _: 1\n }),\n _createVNode(_component_NButton, {\n onClick: ($event: any) => (resolve(false))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Cancel \")\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_NButton, {\n n: \"solid primary\",\n onClick: ($event: any) => (resolve(true))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Update \")\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ])\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_NDialog, {\n \"model-value\": true,\n onClose: ($event: any) => (resolve(false))\n }, {\n default: _withCtx(() => [\n _createVNode(\"div\", {\n p4: \"\",\n flex: \"~ col gap-1\"\n }, [\n _createVNode(\"h3\", { class: \"text-lg font-medium leading-6\" }, \" Update \" + _toDisplayString(props.packageName) + \"? \", 1),\n _createVNode(\"p\", { op50: \"\" }, \" The following command will be executed in your terminal: \"),\n _createVNode(_component_NCodeBlock, {\n code: args[0],\n lang: \"bash\",\n my3: \"\",\n px4: \"\",\n py2: \"\",\n border: \"~ base rounded\",\n lines: false\n }, null, 8, [\"code\"]),\n _createVNode(_component_NCheckbox, {\n modelValue: shouldRevealTerminal.value,\n \"onUpdate:modelValue\": ($event: any) => ((shouldRevealTerminal).value = $event),\n n: \"primary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Open the Terminals dock \")\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n _createVNode(_component_NCheckbox, {\n modelValue: shouldRestartServer.value,\n \"onUpdate:modelValue\": ($event: any) => ((shouldRestartServer).value = $event),\n n: \"primary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Restart Nuxt server after update \")\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n _createVNode(\"div\", {\n flex: \"~ gap-3\",\n mt2: \"\",\n \"justify-end\": \"\"\n }, [\n _createVNode(_component_NTip, {\n n: \"sm amber\",\n \"flex-auto\": \"\",\n icon: \"i-carbon-data-backup\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Please make sure to backup your project first. \")\n ]),\n _: 1\n }),\n _createVNode(_component_NButton, {\n onClick: ($event: any) => (resolve(false))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Cancel \")\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_NButton, {\n n: \"solid primary\",\n onClick: ($event: any) => (resolve(true))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Update \")\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ])\n ]),\n _: 2\n }, 1032, [\"onClose\"])\n ]\n }\n }),\n _: 1\n }, _parent))\n _push(`<!--]-->`)\n}\n}\n\n})","<script setup lang=\"ts\">\nimport type { NpmCommandOptions } from '../../src/types'\nimport { createTemplatePromise } from '@vueuse/core'\nimport { ref } from 'vue'\nimport { useRestartDialogs } from '~/composables/dialog'\nimport { usePackageUpdate } from '~/composables/npm'\nimport { rpc } from '~/composables/rpc'\nimport { telemetry } from '~/composables/telemetry'\n\nconst props = withDefaults(\n defineProps<{\n packageName: string\n options?: NpmCommandOptions\n showVersion?: boolean\n }>(),\n {\n showVersion: true,\n },\n)\n\nconst {\n info,\n update,\n state,\n processId,\n restart,\n} = usePackageUpdate(props.packageName, props.options)\n\nconst shouldRevealTerminal = ref(true)\nconst shouldRestartServer = ref(true)\nconst restartDialogs = useRestartDialogs()\n\nconst PromiseConfirm = createTemplatePromise<boolean, [string]>()\n\nasync function updateWithConfirm() {\n const processId = await update(async (command) => {\n return PromiseConfirm.start(command)\n })\n\n telemetry('npm:update', {\n packageName: props.packageName,\n oldVersion: info.value?.current,\n })\n\n if (processId && shouldRestartServer.value) {\n restartDialogs.value.push({\n id: processId,\n message: `${props.packageName} has been updated. Do you want to restart the Nuxt server now?`,\n })\n }\n if (processId && shouldRevealTerminal.value)\n rpc.revealTerminal(processId)\n}\n</script>\n\n<template>\n <slot :id=\"processId\" :info=\"info\" :update=\"updateWithConfirm\" :state=\"state\" :restart=\"restart\">\n <code v-if=\"info && showVersion\">{{ `v${info.current}` }}</code>\n <template v-if=\"info?.latest\">\n <button v-if=\"info.needsUpdate\" @click=\"updateWithConfirm()\">\n <NBadge\n n=\"green\"\n title=\"updates available\"\n v-text=\"'updates available'\"\n />\n </button>\n <NBadge\n v-else\n n=\"gray\"\n title=\"latest\"\n v-text=\"'latest'\"\n />\n </template>\n </slot>\n\n <PromiseConfirm v-slot=\"{ resolve, args }\">\n <NDialog :model-value=\"true\" @close=\"resolve(false)\">\n <div p4 flex=\"~ col gap-1\">\n <h3 class=\"text-lg font-medium leading-6\">\n Update {{ props.packageName }}?\n </h3>\n <p op50>\n The following command will be executed in your terminal:\n </p>\n <NCodeBlock :code=\"args[0]\" lang=\"bash\" my3 px4 py2 border=\"~ base rounded\" :lines=\"false\" />\n <NCheckbox v-model=\"shouldRevealTerminal\" n=\"primary\">\n Open the Terminals dock\n </NCheckbox>\n <NCheckbox v-model=\"shouldRestartServer\" n=\"primary\">\n Restart Nuxt server after update\n </NCheckbox>\n\n <div flex=\"~ gap-3\" mt2 justify-end>\n <NTip n=\"sm amber\" flex-auto icon=\"i-carbon-data-backup\">\n Please make sure to backup your project first.\n </NTip>\n\n <NButton @click=\"resolve(false)\">\n Cancel\n </NButton>\n <NButton n=\"solid primary\" @click=\"resolve(true)\">\n Update\n </NButton>\n </div>\n </div>\n </NDialog>\n </PromiseConfirm>\n</template>\n","import type { InstalledModuleInfo, ModuleStaticInfo } from '../../src/types'\nimport { computed } from 'vue'\nimport { useState } from '#imports'\nimport { useServerConfig } from './state'\nimport { getModuleNameFromPath, isNodeModulePath, parseReadablePath, useAsyncState } from './utils'\n\nconst ignoredModules = [\n 'pages',\n 'meta',\n 'components',\n 'imports',\n 'nuxt-config-schema',\n '@nuxt/devtools',\n '@nuxt/telemetry',\n]\n\nexport function useModulesList() {\n return useAsyncState('getModulesList', async () => {\n // eslint-disable-next-line unimport/auto-insert\n const m = await $fetch<{ modules: ModuleStaticInfo[] }>('https://api.nuxt.com/modules?version=3')\n return m.modules\n .filter((item: ModuleStaticInfo) => !ignoredModules.includes(item.npm) && item.compatibility.nuxt.includes('>=3'))\n })\n}\n\nexport function useInstalledModules() {\n return useState('installed-modules', () => {\n const config = useServerConfig()\n const modules = useModulesList()\n\n return computed(() => (config.value?._installedModules || [])\n .map((mod): InstalledModuleInfo => {\n // hide inline modules\n if (!mod.entryPath)\n return undefined!\n\n const isPackageModule = !!(mod.entryPath && isNodeModulePath(mod.entryPath))\n const name = mod.meta?.name\n ? mod.meta?.name\n : mod.entryPath\n ? isPackageModule\n ? getModuleNameFromPath(mod.entryPath)\n : config.value?.rootDir\n ? parseReadablePath(mod.entryPath, config.value?.rootDir).path\n : undefined\n : undefined\n\n const isUninstallable = !!config.value?.modules?.includes(name)\n const info = modules.value?.find(m => m.npm === name) || modules.value?.find(m => m.name === name)\n\n return {\n name,\n isPackageModule,\n isUninstallable,\n info,\n ...mod,\n }\n })\n .filter(i => i && (!i.name || !ignoredModules.includes(i.name))))\n })\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"storage-BylO3p9r.js","mappings":"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","names":[],"sources":["../../../../../../../../components/StorageDetails.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../components/StorageDetails.vue","../../../../../../../../pages/modules/storage.vue?vue&type=script&setup=true&lang.ts","../../../../../../../../pages/modules/storage.vue"],"sourcesContent":["import { withAsyncContext as _withAsyncContext, defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, isRef as _isRef, createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, withKeys as _withKeys, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withModifiers as _withModifiers, withDirectives as _withDirectives } from \"vue\"\nimport { ssrRenderComponent as _ssrRenderComponent, ssrRenderAttr as _ssrRenderAttr, ssrRenderClass as _ssrRenderClass, ssrInterpolate as _ssrInterpolate, ssrRenderList as _ssrRenderList } from \"vue/server-renderer\"\n\nimport { useEventListener } from '@vueuse/core'\nimport JsonEditorVue from 'json-editor-vue'\nimport { computed, onUnmounted, ref, watch, watchEffect } from 'vue'\nimport { useAsyncData } from '#app/composables/asyncData'\nimport { useRouter } from '#app/composables/router'\nimport { useNuxtApp } from '#app/nuxt'\nimport { getColorMode } from '~/composables/client'\nimport { rpc } from '~/composables/rpc'\nimport { useSessionState } from '~/composables/utils'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'StorageDetails',\n __ssrInlineRender: true,\n async setup(__props) {\n\nlet __temp: any, __restore: any\n\nconst colorMode = getColorMode()\nconst nuxtApp = useNuxtApp()\nconst router = useRouter()\nconst searchString = ref('')\nconst newKey = ref('')\nconst currentStorage = useSessionState<string>('storage:current', '')\nconst currentItem = ref()\nconst fileKey = useSessionState<string>('storage:file:state', '')\n\nconst { data: storageMounts } = (\n ([__temp,__restore] = _withAsyncContext(() => useAsyncData('storageMounts', () => rpc.getStorageMounts()))),\n __temp = await __temp,\n __restore(),\n __temp\n)\nconst { data: storageKeys, refresh: refreshStorageKeys } = (\n ([__temp,__restore] = _withAsyncContext(async () => useAsyncData('storageKeys', async () => {\n if (currentStorage.value)\n return await rpc.getStorageKeys(currentStorage.value)\n return []\n}))),\n __temp = await __temp,\n __restore(),\n __temp\n)\n\nconst closeWatcher = nuxtApp.hook('storage:key:update' as any, async (key: string, event: any) => {\n if (!currentStorage.value || key.split(':')[0] !== currentStorage.value)\n return\n await refreshStorageKeys()\n if (fileKey.value === key) {\n if (event === 'remove')\n return router.replace({ query: { storage: currentStorage.value } })\n await fetchItem(fileKey.value)\n }\n})\n\nonUnmounted(closeWatcher)\n\nwatch(currentStorage, () => {\n refreshStorageKeys()\n fileKey.value = ''\n})\n\nwatchEffect(async () => {\n if (!fileKey.value) {\n currentItem.value = null\n return\n }\n fetchItem(fileKey.value)\n})\n\n// Save on Ctrl/Cmd + S\nuseEventListener('keydown', (e) => {\n if (e.key === 's' && (e.ctrlKey || e.metaKey)) {\n saveCurrentItem()\n e.preventDefault()\n }\n})\n\nfunction keyName(key: string) {\n return key.replace(`${currentStorage.value}:`, '')\n}\n\nconst filteredKeys = computed(() => {\n if (!storageKeys.value)\n return []\n return storageKeys.value.filter(key => key.includes(searchString.value))\n})\n\nasync function fetchItem(key: string) {\n const content = await rpc.getStorageItem(key)\n currentItem.value = {\n key,\n updatedKey: keyName(key),\n editingKey: false,\n content,\n updatedContent: content,\n }\n}\n\nasync function saveNewItem() {\n if (!newKey.value || !currentStorage.value)\n return\n // If does not exists\n const key = `${currentStorage.value}:${newKey.value}`\n if (!storageKeys.value?.includes(key))\n await rpc.setStorageItem(key, '')\n\n router.replace({ query: { storage: currentStorage.value, key } })\n newKey.value = ''\n}\n\nasync function saveCurrentItem() {\n if (!currentItem.value)\n return\n await rpc.setStorageItem(currentItem.value.key, currentItem.value.updatedContent)\n await fetchItem(currentItem.value.key)\n}\n\nasync function removeCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n await rpc.removeStorageItem(currentItem.value.key)\n currentItem.value = null\n}\n\nasync function renameCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n const renamedKey = `${currentStorage.value}:${currentItem.value.updatedKey}`\n await rpc.setStorageItem(renamedKey, currentItem.value.updatedContent)\n await rpc.removeStorageItem(currentItem.value.key)\n router.replace({ query: { storage: currentStorage.value, key: renamedKey } })\n}\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_NSplitPane = _resolveComponent(\"NSplitPane\")!\n const _component_NButton = _resolveComponent(\"NButton\")!\n const _component_NSelect = _resolveComponent(\"NSelect\")!\n const _component_NTextInput = _resolveComponent(\"NTextInput\")!\n const _component_NIcon = _resolveComponent(\"NIcon\")!\n const _component_NPanelGrids = _resolveComponent(\"NPanelGrids\")!\n const _component_NCard = _resolveComponent(\"NCard\")!\n const _component_NLink = _resolveComponent(\"NLink\")!\n const _component_FilepathItem = _resolveComponent(\"FilepathItem\")!\n\n if (_unref(currentStorage)) {\n _push(_ssrRenderComponent(_component_NSplitPane, _mergeProps({ \"storage-key\": \"tab-storage\" }, _attrs), {\n left: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<div class=\"h-[48px] flex items-center justify-between gap1 px-3\"${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NButton, {\n icon: \"carbon-chevron-left\",\n \"ml--1\": \"\",\n border: false,\n onClick: ($event: any) => (currentStorage.value = '')\n }, null, _parent, _scopeId))\n _push(`<div class=\"w-full text-sm\"${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NSelect, {\n modelValue: _unref(currentStorage),\n \"onUpdate:modelValue\": ($event: any) => (_isRef(currentStorage) ? (currentStorage).value = $event : null),\n n: \"primary\",\n icon: \"carbon-data-base\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<!--[-->`)\n _ssrRenderList(_unref(storageMounts), (_storage, name) => {\n _push(`<option${\n _ssrRenderAttr(\"value\", name)\n }${\n _scopeId\n }>${\n _ssrInterpolate(name)\n }</option>`)\n })\n _push(`<!--]-->`)\n } else {\n return [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(storageMounts), (_storage, name) => {\n return (_openBlock(), _createBlock(\"option\", {\n key: name,\n value: name\n }, _toDisplayString(name), 9, [\"value\"]))\n }), 128))\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n _push(`</div></div>`)\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: searchString.value,\n \"onUpdate:modelValue\": ($event: any) => ((searchString).value = $event),\n icon: \"carbon-search\",\n placeholder: \"Search...\",\n n: \"primary sm\",\n border: \"y x-none base! rounded-0\",\n class: \"w-full py2 ring-0!\"\n }, null, _parent, _scopeId))\n _push(`<!--[-->`)\n _ssrRenderList(filteredKeys.value, (key) => {\n _push(`<!--[--><button block w-full truncate px2 py1 text-start text-sm font-mono class=\"${\n _ssrRenderClass(key === currentItem.value?.key ? 'text-primary n-bg-active' : 'text-secondary hover:n-bg-hover')\n }\"${\n _scopeId\n }>${\n _ssrInterpolate(keyName(key))\n }</button><div x-divider${\n _scopeId\n }></div><!--]-->`)\n })\n _push(`<!--]-->`)\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: newKey.value,\n \"onUpdate:modelValue\": ($event: any) => ((newKey).value = $event),\n icon: \"carbon-add\",\n placeholder: \"key\",\n n: \"sm\",\n border: \"t-none x-none base! rounded-0\",\n class: \"w-full py2 font-mono ring-0!\",\n onKeyup: saveNewItem\n }, null, _parent, _scopeId))\n } else {\n return [\n _createVNode(\"div\", { class: \"h-[48px] flex items-center justify-between gap1 px-3\" }, [\n _createVNode(_component_NButton, {\n icon: \"carbon-chevron-left\",\n \"ml--1\": \"\",\n border: false,\n onClick: ($event: any) => (currentStorage.value = '')\n }, null, 8, [\"onClick\"]),\n _createVNode(\"div\", { class: \"w-full text-sm\" }, [\n _createVNode(_component_NSelect, {\n modelValue: _unref(currentStorage),\n \"onUpdate:modelValue\": ($event: any) => (_isRef(currentStorage) ? (currentStorage).value = $event : null),\n n: \"primary\",\n icon: \"carbon-data-base\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(storageMounts), (_storage, name) => {\n return (_openBlock(), _createBlock(\"option\", {\n key: name,\n value: name\n }, _toDisplayString(name), 9, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ]),\n _createVNode(_component_NTextInput, {\n modelValue: searchString.value,\n \"onUpdate:modelValue\": ($event: any) => ((searchString).value = $event),\n icon: \"carbon-search\",\n placeholder: \"Search...\",\n n: \"primary sm\",\n border: \"y x-none base! rounded-0\",\n class: \"w-full py2 ring-0!\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"]),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(filteredKeys.value, (key) => {\n return (_openBlock(), _createBlock(_Fragment, { key: key }, [\n _createVNode(\"button\", {\n block: \"\",\n \"w-full\": \"\",\n truncate: \"\",\n px2: \"\",\n py1: \"\",\n \"text-start\": \"\",\n \"text-sm\": \"\",\n \"font-mono\": \"\",\n class: key === currentItem.value?.key ? 'text-primary n-bg-active' : 'text-secondary hover:n-bg-hover',\n onClick: ($event: any) => (fileKey.value = key)\n }, _toDisplayString(keyName(key)), 11, [\"onClick\"]),\n _createVNode(\"div\", { \"x-divider\": \"\" })\n ], 64))\n }), 128)),\n _createVNode(_component_NTextInput, {\n modelValue: newKey.value,\n \"onUpdate:modelValue\": ($event: any) => ((newKey).value = $event),\n icon: \"carbon-add\",\n placeholder: \"key\",\n n: \"sm\",\n border: \"t-none x-none base! rounded-0\",\n class: \"w-full py2 font-mono ring-0!\",\n onKeyup: _withKeys(saveNewItem, [\"enter\"])\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]\n }\n }),\n right: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n if (currentItem.value?.key) {\n _push(`<div h-full of-hidden flex=\"~ col\"${\n _scopeId\n }><div border=\"b base\" class=\"h-[49px] flex flex-none items-center justify-between px-4 text-sm\"${\n _scopeId\n }><div class=\"flex items-center gap-4\"${\n _scopeId\n }>`)\n if (currentItem.value.editingKey) {\n _push(_ssrRenderComponent(_component_NTextInput, {\n modelValue: currentItem.value.updatedKey,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedKey) = $event),\n onKeyup: renameCurrentItem\n }, null, _parent, _scopeId))\n } else {\n _push(`<code${\n _scopeId\n }>${\n _ssrInterpolate(keyName(currentItem.value.key))\n } `)\n _push(_ssrRenderComponent(_component_NIcon, {\n icon: \"carbon-edit\",\n class: \"cursor-pointer op50 hover:op100\",\n onClick: ($event: any) => (currentItem.value.editingKey = true)\n }, null, _parent, _scopeId))\n _push(`</code>`)\n }\n if (!currentItem.value.editingKey) {\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"green xs\",\n disabled: currentItem.value.content === currentItem.value.updatedContent,\n class: { 'border-green': currentItem.value.content !== currentItem.value.updatedContent },\n onClick: saveCurrentItem\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Save `)\n } else {\n return [\n _createTextVNode(\" Save \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n _push(`<!---->`)\n }\n _push(`</div><div${_scopeId}>`)\n _push(_ssrRenderComponent(_component_NButton, {\n n: \"red xs\",\n onClick: removeCurrentItem\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Delete `)\n } else {\n return [\n _createTextVNode(\" Delete \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n _push(`</div></div>`)\n if (typeof currentItem.value.content === 'object') {\n _push(_ssrRenderComponent(_unref(JsonEditorVue), _mergeProps({\n modelValue: currentItem.value.updatedContent,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedContent) = $event),\n class: [[_unref(colorMode) === 'dark' ? 'jse-theme-dark' : 'light'], \"json-editor-vue h-full of-auto text-sm outline-none\"]\n }, _ctx.$attrs, {\n mode: ('text' as any),\n \"navigation-bar\": false,\n indentation: 2,\n \"tab-size\": 2\n }), null, _parent, _scopeId))\n } else {\n _push(`<textarea placeholder=\"Item value...\" class=\"h-full of-auto p-4 text-sm font-mono outline-none\"${\n _scopeId\n }>${\n _ssrInterpolate(currentItem.value.updatedContent)\n }</textarea>`)\n }\n _push(`</div>`)\n } else {\n _push(_ssrRenderComponent(_component_NPanelGrids, null, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_NCard, {\n px6: \"\",\n py4: \"\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Select one key to start.<br${_scopeId}>Learn more about `)\n _push(_ssrRenderComponent(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Nitro storage `)\n } else {\n return [\n _createTextVNode(\" Nitro storage \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n return [\n _createTextVNode(\" Select one key to start.\"),\n _createVNode(\"br\"),\n _createTextVNode(\"Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_NCard, {\n px6: \"\",\n py4: \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Select one key to start.\"),\n _createVNode(\"br\"),\n _createTextVNode(\"Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n }\n } else {\n return [\n (currentItem.value?.key)\n ? (_openBlock(), _createBlock(\"div\", {\n key: 0,\n \"h-full\": \"\",\n \"of-hidden\": \"\",\n flex: \"~ col\"\n }, [\n _createVNode(\"div\", {\n border: \"b base\",\n class: \"h-[49px] flex flex-none items-center justify-between px-4 text-sm\"\n }, [\n _createVNode(\"div\", { class: \"flex items-center gap-4\" }, [\n (currentItem.value.editingKey)\n ? (_openBlock(), _createBlock(_component_NTextInput, {\n key: 0,\n modelValue: currentItem.value.updatedKey,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedKey) = $event),\n onKeyup: _withKeys(renameCurrentItem, [\"enter\"])\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"]))\n : (_openBlock(), _createBlock(\"code\", { key: 1 }, [\n _createTextVNode(_toDisplayString(keyName(currentItem.value.key)) + \" \", 1),\n _createVNode(_component_NIcon, {\n icon: \"carbon-edit\",\n class: \"cursor-pointer op50 hover:op100\",\n onClick: ($event: any) => (currentItem.value.editingKey = true)\n }, null, 8, [\"onClick\"])\n ])),\n (!currentItem.value.editingKey)\n ? (_openBlock(), _createBlock(_component_NButton, {\n key: 2,\n n: \"green xs\",\n disabled: currentItem.value.content === currentItem.value.updatedContent,\n class: { 'border-green': currentItem.value.content !== currentItem.value.updatedContent },\n onClick: saveCurrentItem\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Save \")\n ]),\n _: 1\n }, 8, [\"disabled\", \"class\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(\"div\", null, [\n _createVNode(_component_NButton, {\n n: \"red xs\",\n onClick: removeCurrentItem\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Delete \")\n ]),\n _: 1\n })\n ])\n ]),\n (typeof currentItem.value.content === 'object')\n ? (_openBlock(), _createBlock(_unref(JsonEditorVue), _mergeProps({\n key: 0,\n modelValue: currentItem.value.updatedContent,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedContent) = $event),\n class: [[_unref(colorMode) === 'dark' ? 'jse-theme-dark' : 'light'], \"json-editor-vue h-full of-auto text-sm outline-none\"]\n }, _ctx.$attrs, {\n mode: ('text' as any),\n \"navigation-bar\": false,\n indentation: 2,\n \"tab-size\": 2\n }), null, 16, [\"modelValue\", \"onUpdate:modelValue\", \"class\"]))\n : _withDirectives((_openBlock(), _createBlock(\"textarea\", {\n key: 1,\n \"onUpdate:modelValue\": ($event: any) => ((currentItem.value.updatedContent) = $event),\n placeholder: \"Item value...\",\n class: \"h-full of-auto p-4 text-sm font-mono outline-none\",\n onKeyup: _withKeys(_withModifiers(saveCurrentItem, [\"ctrl\"]), [\"enter\"])\n }, null, 40, [\"onUpdate:modelValue\", \"onKeyup\"])), [\n [_vModelText, currentItem.value.updatedContent]\n ])\n ]))\n : (_openBlock(), _createBlock(_component_NPanelGrids, { key: 1 }, {\n default: _withCtx(() => [\n _createVNode(_component_NCard, {\n px6: \"\",\n py4: \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Select one key to start.\"),\n _createVNode(\"br\"),\n _createTextVNode(\"Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n ]\n }\n }),\n _: 1\n }, _parent))\n } else {\n _push(_ssrRenderComponent(_component_NPanelGrids, _attrs, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n if (Object.keys(_unref(storageMounts) as any).length) {\n _push(`<p op50${_scopeId}> Select one storage to start: </p>`)\n } else {\n _push(`<p${\n _scopeId\n }> No custom storage defined in <code${\n _scopeId\n }>nitro.storage</code>.<br${\n _scopeId\n }> Learn more about `)\n _push(_ssrRenderComponent(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(` Nitro storage `)\n } else {\n return [\n _createTextVNode(\" Nitro storage \")\n ]\n }\n }),\n _: 1\n }, _parent, _scopeId))\n _push(`</p>`)\n }\n _push(`<!--[-->`)\n _ssrRenderList(_unref(storageMounts), (storage, name) => {\n _push(_ssrRenderComponent(_component_NCard, {\n key: name,\n \"min-w-80\": \"\",\n \"cursor-pointer\": \"\",\n \"p-4\": \"\",\n \"text-left\": \"\",\n hover: \"border-green\",\n onClick: ($event: any) => (currentStorage.value = name as string)\n }, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(`<span font-bold${\n _scopeId\n }>${\n _ssrInterpolate(name)\n }</span><br${\n _scopeId\n }><span text-sm${\n _scopeId\n }>${\n _ssrInterpolate(storage.driver)\n } driver</span><br${\n _scopeId\n }>`)\n if (storage.base) {\n _push(_ssrRenderComponent(_component_FilepathItem, {\n \"text-xs\": \"\",\n filepath: storage.base\n }, null, _parent, _scopeId))\n } else {\n _push(`<!---->`)\n }\n } else {\n return [\n _createVNode(\"span\", { \"font-bold\": \"\" }, _toDisplayString(name), 1),\n _createVNode(\"br\"),\n _createVNode(\"span\", { \"text-sm\": \"\" }, _toDisplayString(storage.driver) + \" driver\", 1),\n _createVNode(\"br\"),\n (storage.base)\n ? (_openBlock(), _createBlock(_component_FilepathItem, {\n key: 0,\n \"text-xs\": \"\",\n filepath: storage.base\n }, null, 8, [\"filepath\"]))\n : _createCommentVNode(\"\", true)\n ]\n }\n }),\n _: 2\n }, _parent, _scopeId))\n })\n _push(`<!--]-->`)\n } else {\n return [\n (Object.keys(_unref(storageMounts) as any).length)\n ? (_openBlock(), _createBlock(\"p\", {\n key: 0,\n op50: \"\"\n }, \" Select one storage to start: \"))\n : (_openBlock(), _createBlock(\"p\", { key: 1 }, [\n _createTextVNode(\" No custom storage defined in \"),\n _createVNode(\"code\", null, \"nitro.storage\"),\n _createTextVNode(\".\"),\n _createVNode(\"br\"),\n _createTextVNode(\" Learn more about \"),\n _createVNode(_component_NLink, {\n href: \"https://nitro.unjs.io/guide/storage\",\n n: \"orange\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Nitro storage \")\n ]),\n _: 1\n })\n ])),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_unref(storageMounts), (storage, name) => {\n return (_openBlock(), _createBlock(_component_NCard, {\n key: name,\n \"min-w-80\": \"\",\n \"cursor-pointer\": \"\",\n \"p-4\": \"\",\n \"text-left\": \"\",\n hover: \"border-green\",\n onClick: ($event: any) => (currentStorage.value = name as string)\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", { \"font-bold\": \"\" }, _toDisplayString(name), 1),\n _createVNode(\"br\"),\n _createVNode(\"span\", { \"text-sm\": \"\" }, _toDisplayString(storage.driver) + \" driver\", 1),\n _createVNode(\"br\"),\n (storage.base)\n ? (_openBlock(), _createBlock(_component_FilepathItem, {\n key: 0,\n \"text-xs\": \"\",\n filepath: storage.base\n }, null, 8, [\"filepath\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n }), 128))\n ]\n }\n }),\n _: 1\n }, _parent))\n }\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { useEventListener } from '@vueuse/core'\nimport JsonEditorVue from 'json-editor-vue'\nimport { computed, onUnmounted, ref, watch, watchEffect } from 'vue'\nimport { useAsyncData } from '#app/composables/asyncData'\nimport { useRouter } from '#app/composables/router'\nimport { useNuxtApp } from '#app/nuxt'\nimport { getColorMode } from '~/composables/client'\nimport { rpc } from '~/composables/rpc'\nimport { useSessionState } from '~/composables/utils'\n\nconst colorMode = getColorMode()\nconst nuxtApp = useNuxtApp()\nconst router = useRouter()\nconst searchString = ref('')\nconst newKey = ref('')\nconst currentStorage = useSessionState<string>('storage:current', '')\nconst currentItem = ref()\nconst fileKey = useSessionState<string>('storage:file:state', '')\n\nconst { data: storageMounts } = await useAsyncData('storageMounts', () => rpc.getStorageMounts())\nconst { data: storageKeys, refresh: refreshStorageKeys } = await useAsyncData('storageKeys', async () => {\n if (currentStorage.value)\n return await rpc.getStorageKeys(currentStorage.value)\n return []\n})\n\nconst closeWatcher = nuxtApp.hook('storage:key:update' as any, async (key: string, event: any) => {\n if (!currentStorage.value || key.split(':')[0] !== currentStorage.value)\n return\n await refreshStorageKeys()\n if (fileKey.value === key) {\n if (event === 'remove')\n return router.replace({ query: { storage: currentStorage.value } })\n await fetchItem(fileKey.value)\n }\n})\n\nonUnmounted(closeWatcher)\n\nwatch(currentStorage, () => {\n refreshStorageKeys()\n fileKey.value = ''\n})\n\nwatchEffect(async () => {\n if (!fileKey.value) {\n currentItem.value = null\n return\n }\n fetchItem(fileKey.value)\n})\n\n// Save on Ctrl/Cmd + S\nuseEventListener('keydown', (e) => {\n if (e.key === 's' && (e.ctrlKey || e.metaKey)) {\n saveCurrentItem()\n e.preventDefault()\n }\n})\n\nfunction keyName(key: string) {\n return key.replace(`${currentStorage.value}:`, '')\n}\n\nconst filteredKeys = computed(() => {\n if (!storageKeys.value)\n return []\n return storageKeys.value.filter(key => key.includes(searchString.value))\n})\n\nasync function fetchItem(key: string) {\n const content = await rpc.getStorageItem(key)\n currentItem.value = {\n key,\n updatedKey: keyName(key),\n editingKey: false,\n content,\n updatedContent: content,\n }\n}\n\nasync function saveNewItem() {\n if (!newKey.value || !currentStorage.value)\n return\n // If does not exists\n const key = `${currentStorage.value}:${newKey.value}`\n if (!storageKeys.value?.includes(key))\n await rpc.setStorageItem(key, '')\n\n router.replace({ query: { storage: currentStorage.value, key } })\n newKey.value = ''\n}\n\nasync function saveCurrentItem() {\n if (!currentItem.value)\n return\n await rpc.setStorageItem(currentItem.value.key, currentItem.value.updatedContent)\n await fetchItem(currentItem.value.key)\n}\n\nasync function removeCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n await rpc.removeStorageItem(currentItem.value.key)\n currentItem.value = null\n}\n\nasync function renameCurrentItem() {\n if (!currentItem.value || !currentStorage.value)\n return\n const renamedKey = `${currentStorage.value}:${currentItem.value.updatedKey}`\n await rpc.setStorageItem(renamedKey, currentItem.value.updatedContent)\n await rpc.removeStorageItem(currentItem.value.key)\n router.replace({ query: { storage: currentStorage.value, key: renamedKey } })\n}\n</script>\n\n<template>\n <NSplitPane v-if=\"currentStorage\" storage-key=\"tab-storage\">\n <template #left>\n <div class=\"h-[48px] flex items-center justify-between gap1 px-3\">\n <NButton icon=\"carbon-chevron-left\" ml--1 :border=\"false\" @click=\"currentStorage = ''\" />\n <div class=\"w-full text-sm\">\n <NSelect v-model=\"currentStorage\" n=\"primary\" icon=\"carbon-data-base\">\n <option v-for=\"(_storage, name) of storageMounts\" :key=\"name\" :value=\"name\">\n {{ name }}\n </option>\n </NSelect>\n </div>\n </div>\n <NTextInput\n v-model=\"searchString\"\n icon=\"carbon-search\"\n placeholder=\"Search...\"\n n=\"primary sm\"\n border=\"y x-none base! rounded-0\"\n class=\"w-full py2 ring-0!\"\n />\n <template v-for=\"key of filteredKeys\" :key=\"key\">\n <button\n block w-full truncate px2 py1 text-start text-sm font-mono\n :class=\"key === currentItem?.key ? 'text-primary n-bg-active' : 'text-secondary hover:n-bg-hover'\"\n @click=\"fileKey = key\"\n >\n {{ keyName(key) }}\n </button>\n <div x-divider />\n </template>\n <NTextInput\n v-model=\"newKey\"\n icon=\"carbon-add\"\n placeholder=\"key\"\n n=\"sm\"\n border=\"t-none x-none base! rounded-0\"\n class=\"w-full py2 font-mono ring-0!\"\n @keyup.enter=\"saveNewItem\"\n />\n </template>\n\n <template #right>\n <div v-if=\"currentItem?.key\" h-full of-hidden flex=\"~ col\">\n <div border=\"b base\" class=\"h-[49px] flex flex-none items-center justify-between px-4 text-sm\">\n <div class=\"flex items-center gap-4\">\n <NTextInput v-if=\"currentItem.editingKey\" v-model=\"currentItem.updatedKey\" @keyup.enter=\"renameCurrentItem\" />\n <code v-else>{{ keyName(currentItem.key) }} <NIcon icon=\"carbon-edit\" class=\"cursor-pointer op50 hover:op100\" @click=\"currentItem.editingKey = true\" /></code>\n <NButton v-if=\"!currentItem.editingKey\" n=\"green xs\" :disabled=\"currentItem.content === currentItem.updatedContent\" :class=\"{ 'border-green': currentItem.content !== currentItem.updatedContent }\" @click=\"saveCurrentItem\">\n Save\n </NButton>\n </div>\n <div>\n <NButton n=\"red xs\" @click=\"removeCurrentItem\">\n Delete\n </NButton>\n </div>\n </div>\n <JsonEditorVue\n v-if=\"typeof currentItem.content === 'object'\"\n v-model=\"currentItem.updatedContent\"\n :class=\"[colorMode === 'dark' ? 'jse-theme-dark' : 'light']\"\n class=\"json-editor-vue h-full of-auto text-sm outline-none\"\n v-bind=\"$attrs\"\n :mode=\"('text' as any)\"\n :navigation-bar=\"false\"\n :indentation=\"2\"\n :tab-size=\"2\"\n />\n <textarea\n v-else v-model=\"currentItem.updatedContent\"\n placeholder=\"Item value...\"\n class=\"h-full of-auto p-4 text-sm font-mono outline-none\"\n @keyup.ctrl.enter=\"saveCurrentItem\"\n />\n </div>\n <NPanelGrids v-else>\n <NCard px6 py4>\n Select one key to start.<br>Learn more about\n <NLink href=\"https://nitro.unjs.io/guide/storage\" n=\"orange\" target=\"_blank\">\n Nitro storage\n </NLink>\n </NCard>\n </NPanelGrids>\n </template>\n </NSplitPane>\n <NPanelGrids v-else>\n <p v-if=\"Object.keys(storageMounts as any).length\" op50>\n Select one storage to start:\n </p>\n <p v-else>\n No custom storage defined in <code>nitro.storage</code>.<br>\n Learn more about\n <NLink href=\"https://nitro.unjs.io/guide/storage\" n=\"orange\" target=\"_blank\">\n Nitro storage\n </NLink>\n </p>\n <NCard\n v-for=\"(storage, name) of storageMounts\"\n :key=\"name\"\n min-w-80 cursor-pointer p-4 text-left\n hover=\"border-green\"\n @click=\"currentStorage = name as string\"\n >\n <span font-bold>{{ name }}</span><br>\n <span text-sm>{{ storage.driver }} driver</span><br>\n <FilepathItem v-if=\"storage.base\" text-xs :filepath=\"storage.base\" />\n </NCard>\n </NPanelGrids>\n</template>\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\nimport { ssrRenderComponent as _ssrRenderComponent } from \"vue/server-renderer\"\n\nimport { definePageMeta } from '#imports'\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'storage',\n __ssrInlineRender: true,\n setup(__props) {\n\ndefinePageMeta({\n icon: 'carbon-data-base',\n title: 'Storage',\n layout: 'full',\n category: 'server',\n})\n\nreturn (_ctx: any,_push: any,_parent: any,_attrs: any) => {\n const _component_AuthRequiredPanel = _resolveComponent(\"AuthRequiredPanel\")!\n const _component_StorageDetails = _resolveComponent(\"StorageDetails\")!\n\n _push(_ssrRenderComponent(_component_AuthRequiredPanel, _attrs, {\n default: _withCtx((_, _push, _parent, _scopeId) => {\n if (_push) {\n _push(_ssrRenderComponent(_component_StorageDetails, null, null, _parent, _scopeId))\n } else {\n return [\n _createVNode(_component_StorageDetails)\n ]\n }\n }),\n _: 1\n }, _parent))\n}\n}\n\n})","<script setup lang=\"ts\">\nimport { definePageMeta } from '#imports'\n\ndefinePageMeta({\n icon: 'carbon-data-base',\n title: 'Storage',\n layout: 'full',\n category: 'server',\n})\n</script>\n\n<template>\n <AuthRequiredPanel>\n <StorageDetails />\n </AuthRequiredPanel>\n</template>\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"utils-BfB0tRbX.js","mappings":"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","names":[],"sources":["../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/utils.js","../../../../../../../../../virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Fpaths.mjs","../../../../../../../../../virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.server.mjs","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/utils/hash.js","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/utils/debounce-tick.js","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/components/server-placeholder.js","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/components/client-only.js","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/compiler/runtime/index.js","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/diagnostics/data.js","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/composables/lazy-hydration.js","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/composables/asyncData.js","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/composables/ssr.js","../../../../../../../../../../../node_modules/.pnpm/nuxt-nightly@5.0.0-29806258.d070492f_@oxc-project+types@0.148.0_@parcel+watcher@2.6.0_@_957e8ef33542258853c773b09ad5865f/node_modules/nuxt-nightly/dist/app/composables/fetch.js","../../../../../../../../composables/state.ts","../../../../../../../../composables/utils.ts"],"sourcesContent":["import { captureStackTrace } from \"errx\";\n//#region src/app/utils.ts\n/** @since 3.9.0 */\nfunction toArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\nconst BOT_RE = /bot\\b|chrome-lighthouse|facebookexternalhit|google\\b/i;\nfunction isBotUserAgent(userAgent) {\n\treturn BOT_RE.test(userAgent);\n}\nconst distURL = import.meta.dev ? import.meta.url.replace(/\\/app\\/.*$/, \"/\") : \"\";\nfunction getUserTrace() {\n\tif (!import.meta.dev) return [];\n\tconst trace = captureStackTrace();\n\tconst start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n\tconst end = trace.findLastIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n\tif (start === -1 || end === -1) return [];\n\treturn trace.slice(start, end + 1).map((i) => ({\n\t\t...i,\n\t\tsource: i.source.replace(/^file:\\/\\//, \"\")\n\t}));\n}\nfunction getUserCaller() {\n\tif (!import.meta.dev) return null;\n\tconst { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n\tif (!source) return null;\n\treturn {\n\t\tsource: source.replace(/^file:\\/\\//, \"\"),\n\t\tline,\n\t\tcolumn\n\t};\n}\n//#endregion\nexport { getUserCaller, getUserTrace, isBotUserAgent, toArray };\n","import { joinRelativeURL } from \"/home/runner/work/devtools/devtools/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs\"\nimport { useRuntimeConfig } from \"nitro/runtime-config\"\nconst getAppConfig = () => useRuntimeConfig().app\nexport const baseURL = () => getAppConfig().baseURL\nexport const buildAssetsDir = () => getAppConfig().buildAssetsDir\nexport const buildAssetsURL = (...path) => joinRelativeURL(publicAssetsURL(), buildAssetsDir(), ...path)\nexport const publicAssetsURL = (...path) => {\n const appConfig = getAppConfig()\n const publicBase = appConfig.cdnURL || appConfig.baseURL\n return path.length ? joinRelativeURL(publicBase, ...path) : publicBase\n}\nif (import.meta.client) {\n globalThis.__buildAssetsURL = buildAssetsURL\n globalThis.__publicAssetsURL = publicAssetsURL\n}","import { createFetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nimport { fetch } from \"nitro\"\nif (!globalThis.$fetch) {\n globalThis.$fetch = createFetch({\n fetch,\n defaults: { baseURL: baseURL() }\n })\n}\nexport const $fetch = globalThis.$fetch","import { fnv1a64Base36 } from \"fnv1a-64\";\nimport { identify } from \"object-identity\";\n//#region src/app/utils/hash.ts\n/**\n* Hash an arbitrary value into a short, stable string key.\n*\n* Values are serialized to a canonical, locale-independent representation\n* (equal structures hash equally regardless of key order or runtime locale),\n* then digested with a fast non-cryptographic hash. This is what `useFetch` and\n* `useAsyncData` use internally to derive their cache keys, so it is safe to use\n* for the same purpose in your own code.\n*\n* The digest is non-cryptographic and must not be used for integrity checks.\n*\n* @since 4.5.0\n*/\nfunction hashKey(value) {\n\treturn fnv1a64Base36(identify(value));\n}\n/**\n* Derive a stable key from a function's source.\n*\n* Functions are hashed from their source text (or name/arity for native functions).\n*\n* @internal\n*/\nconst NATIVE_CODE_RE = /\\{\\s*\\[native code\\]\\s*\\}/;\nfunction hashFunction(fn) {\n\tconst src = Function.prototype.toString.call(fn);\n\tconst source = NATIVE_CODE_RE.test(src) ? `${fn.name || \"\"}(${fn.length})[native]` : src;\n\treturn fnv1a64Base36(source);\n}\n//#endregion\nexport { hashFunction, hashKey };\n","import { queuePostFlushCb } from \"vue\";\n//#region src/app/utils/debounce-tick.ts\n/**\n* Debounce an async function so that repeated calls within the same tick are\n* collapsed into a single call (plus a trailing call if arguments arrived\n* while the debounced call was still pending).\n*\n* Adapted from https://github.com/unjs/perfect-debounce with the timeout\n* replaced by Vue's post-flush callback queue.\n*/\nfunction debounceTick(fn, options = {}) {\n\tlet leadingValue;\n\tlet active = false;\n\tlet resolveList = [];\n\tlet currentPromise;\n\tlet trailingArgs;\n\tconst applyFn = (_this, args) => {\n\t\tconst promise = _applyPromised(fn, _this, args);\n\t\tcurrentPromise = promise;\n\t\tpromise.finally(() => {\n\t\t\tcurrentPromise = void 0;\n\t\t\tif (trailingArgs && !active) {\n\t\t\t\tconst args = trailingArgs;\n\t\t\t\ttrailingArgs = void 0;\n\t\t\t\tapplyFn(_this, args);\n\t\t\t}\n\t\t});\n\t\treturn promise;\n\t};\n\treturn function(...args) {\n\t\ttrailingArgs = args;\n\t\tif (currentPromise) return currentPromise;\n\t\treturn new Promise((resolve) => {\n\t\t\tconst shouldCallNow = options.leading && !active;\n\t\t\tif (!active) {\n\t\t\t\tactive = true;\n\t\t\t\tqueuePostFlushCb(() => {\n\t\t\t\t\tactive = false;\n\t\t\t\t\tconst flushArgs = trailingArgs ?? args;\n\t\t\t\t\ttrailingArgs = void 0;\n\t\t\t\t\tconst promise = options.leading ? leadingValue : applyFn(this, flushArgs);\n\t\t\t\t\tfor (const _resolve of resolveList) _resolve(promise);\n\t\t\t\t\tresolveList = [];\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (shouldCallNow) {\n\t\t\t\tleadingValue = applyFn(this, args);\n\t\t\t\tresolve(leadingValue);\n\t\t\t} else resolveList.push(resolve);\n\t\t});\n\t};\n}\nasync function _applyPromised(fn, _this, args) {\n\treturn await fn.apply(_this, args);\n}\n//#endregion\nexport { debounceTick };\n","import { createCommentVNode, createElementBlock, defineComponent } from \"vue\";\nimport { clientNodePlaceholder } from \"#build/nuxt.config.mjs\";\n//#region src/app/components/server-placeholder.ts\nconst ServerPlaceholder = defineComponent({\n\tname: \"ServerPlaceholder\",\n\trender() {\n\t\treturn clientNodePlaceholder ? createCommentVNode(\"placeholder\") : createElementBlock(\"div\");\n\t}\n});\n//#endregion\nexport { ServerPlaceholder as default };\n","import { useNuxtApp } from \"../nuxt.js\";\nimport { renderDiagnostics } from \"../diagnostics/render.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode, isVaporSlot, sanitizeTag } from \"./utils.js\";\nimport { cloneVNode, createCommentVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { clientNodePlaceholder, vapor } from \"#build/nuxt.config.mjs\";\nimport { isPromise } from \"@vue/shared\";\n//#region src/app/components/client-only.ts\nconst clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"<div></div>\";\nfunction isPlaceholderComment(el) {\n\treturn el.nodeName === \"#comment\" && el.nodeValue === \"placeholder\";\n}\nfunction createPlaceholder(el) {\n\tif (el && !isPlaceholderComment(el)) return elToStaticVNode(el, STATIC_DIV);\n\treturn clientNodePlaceholder ? createCommentVNode(\"placeholder\") : h(\"div\");\n}\nconst ClientOnly = defineComponent({\n\tname: \"ClientOnly\",\n\tinheritAttrs: false,\n\tprops: [\n\t\t\"fallback\",\n\t\t\"placeholder\",\n\t\t\"placeholderTag\",\n\t\t\"fallbackTag\"\n\t],\n\t...false && { slots: Object },\n\tsetup(props, { slots, attrs }) {\n\t\tconst mounted = shallowRef(false);\n\t\tonMounted(() => {\n\t\t\tmounted.value = true;\n\t\t});\n\t\tif (false) {\n\t\t\tconst nuxtApp = useNuxtApp();\n\t\t\tnuxtApp._isNuxtPageUsed = true;\n\t\t\tnuxtApp._isNuxtLayoutUsed = true;\n\t\t}\n\t\tconst vm = getCurrentInstance();\n\t\tif (vm) vm._nuxtClientOnly = true;\n\t\tprovide(clientOnlySymbol, true);\n\t\treturn () => {\n\t\t\tif (mounted.value) {\n\t\t\t\tconst vnodes = slots.default?.();\n\t\t\t\tif (vnodes && vnodes.length === 1 && !(vapor && isVaporSlot(slots.default))) return [cloneVNode(vnodes[0], attrs)];\n\t\t\t\tif (false && vapor && isVaporSlot(slots.default) && attrs && Object.keys(attrs).length > 0) renderDiagnostics.NUXT_E4021();\n\t\t\t\treturn vnodes;\n\t\t\t}\n\t\t\tconst slot = slots.fallback || slots.placeholder;\n\t\t\tif (slot) return h(slot);\n\t\t\tconst fallbackStr = props.fallback || props.placeholder || \"\";\n\t\t\tconst fallbackTag = sanitizeTag(props.fallbackTag || props.placeholderTag, \"span\");\n\t\t\treturn createElementBlock(fallbackTag, attrs, fallbackStr);\n\t\t};\n\t}\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n/* @__NO_SIDE_EFFECTS__ */\nfunction createClientOnly(component) {\n\tif (true) return ServerPlaceholder;\n\tif (cache.has(component)) return cache.get(component);\n\tconst clone = { ...component };\n\tif (clone.render) clone.render = (ctx, cache, $props, $setup, $data, $options) => {\n\t\tif ($setup.mounted$ ?? ctx.mounted$) {\n\t\t\tconst res = component.render?.bind(ctx)(ctx, cache, $props, $setup, $data, $options);\n\t\t\treturn res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n\t\t}\n\t\treturn createPlaceholder(ctx._.vnode.el);\n\t};\n\telse {\n\t\tconst placeholderTemplate = clientNodePlaceholder ? \"<!--placeholder-->\" : \"<div></div>\";\n\t\tclone.template &&= `\n <template v-if=\"mounted$\">${component.template}</template>\n <template v-else>${placeholderTemplate}</template>\n `;\n\t}\n\tclone.setup = (props, ctx) => {\n\t\tconst nuxtApp = useNuxtApp();\n\t\tconst mounted$ = shallowRef(nuxtApp.isHydrating === false);\n\t\tconst instance = getCurrentInstance();\n\t\tif (nuxtApp.isHydrating) {\n\t\t\tconst attrs = { ...instance.attrs };\n\t\t\tconst directives = extractDirectives(instance);\n\t\t\tfor (const key in attrs) delete instance.attrs[key];\n\t\t\tonMounted(() => {\n\t\t\t\tObject.assign(instance.attrs, attrs);\n\t\t\t\tinstance.vnode.dirs = directives;\n\t\t\t});\n\t\t}\n\t\tonMounted(() => {\n\t\t\tmounted$.value = true;\n\t\t});\n\t\tconst setupState = component.setup?.(props, ctx) || {};\n\t\tif (isPromise(setupState)) return Promise.resolve(setupState).then((setupState) => {\n\t\t\tif (typeof setupState !== \"function\") {\n\t\t\t\tsetupState ||= {};\n\t\t\t\tsetupState.mounted$ = mounted$;\n\t\t\t\treturn setupState;\n\t\t\t}\n\t\t\treturn (...args) => {\n\t\t\t\tif (mounted$.value || !nuxtApp.isHydrating) {\n\t\t\t\t\tconst res = setupState(...args);\n\t\t\t\t\treturn res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n\t\t\t\t}\n\t\t\t\treturn createPlaceholder(instance?.vnode.el);\n\t\t\t};\n\t\t});\n\t\telse {\n\t\t\tif (typeof setupState === \"function\") return (...args) => {\n\t\t\t\tif (mounted$.value) {\n\t\t\t\t\tconst res = setupState(...args);\n\t\t\t\t\tconst attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n\t\t\t\t\treturn res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n\t\t\t\t}\n\t\t\t\treturn createPlaceholder(instance?.vnode.el);\n\t\t\t};\n\t\t\treturn Object.assign(setupState, { mounted$ });\n\t\t}\n\t};\n\tcache.set(component, clone);\n\treturn clone;\n}\nfunction extractDirectives(instance) {\n\tif (!instance || !instance.vnode.dirs) return null;\n\tconst directives = instance.vnode.dirs;\n\tinstance.vnode.dirs = null;\n\treturn directives;\n}\n//#endregion\nexport { clientOnlySymbol, createClientOnly, ClientOnly as default };\n","import { appDiagnostics } from \"../../app/diagnostics/core.js\";\n//#region src/compiler/runtime/index.ts\n/**\n* Define a factory for a function that should be registered for automatic key injection.\n* @since 4.2.0\n* @param factory\n*/\nfunction defineKeyedFunctionFactory(factory) {\n\tconst placeholder = function() {\n\t\tthrow appDiagnostics.NUXT_E1007({ name: factory.name });\n\t};\n\treturn Object.defineProperty(placeholder, \"__nuxt_factory\", {\n\t\tenumerable: false,\n\t\tget: () => factory.factory\n\t});\n}\n//#endregion\nexport { defineKeyedFunctionFactory };\n","import { docsBase, prodReporters, reporters } from \"./_shared.js\";\nimport { defineDiagnostics, defineProdDiagnostics } from \"nostics\";\n//#region src/app/diagnostics/data.ts\n/**\n* E3xxx\n* Data fetching (useFetch / useAsyncData) runtime diagnostics.\n*/\nconst dataDiagnostics = !import.meta.dev ? /* #__PURE__ */ defineProdDiagnostics({\n\tdocsBase,\n\treporters: prodReporters\n}) : /* #__PURE__ */ defineDiagnostics({\n\tdocsBase,\n\treporters,\n\tcodes: {\n\t\tNUXT_E3001: {\n\t\t\twhy: (p) => `The \\`useFetch\\` request URL must not start with \"//\" (received \\`${p.url}\\`).`,\n\t\t\tfix: \"Use an absolute URL with a protocol or a relative path instead.\"\n\t\t},\n\t\tNUXT_E3002: {\n\t\t\twhy: \"`useFetch` failed to hash the request body for the cache key.\",\n\t\t\tfix: \"Pass a serializable value (plain object, string, FormData) as the request body, or provide an explicit `key` to `useFetch`.\",\n\t\t\tdocs: false\n\t\t},\n\t\tNUXT_E3003: {\n\t\t\twhy: \"`useAsyncData`/`useFetch` was called after the component had already mounted, so the data fetch cannot be awaited during setup.\",\n\t\t\tfix: \"Use `$fetch()` for requests triggered after mount (e.g. in event handlers), or call `useAsyncData`/`useFetch` in the `setup()` function.\",\n\t\t\tdocs: false\n\t\t},\n\t\tNUXT_E3004: {\n\t\t\twhy: (p) => `Incompatible options detected for \"${p.key}\":\\n${p.warnings}`,\n\t\t\tfix: \"You can use a different key or move the call to a composable to ensure the options are shared across calls.\",\n\t\t\tdocs: false\n\t\t},\n\t\tNUXT_E3005: {\n\t\t\twhy: \"`execute` was passed directly to `watch`, which causes unintended behavior.\",\n\t\t\tfix: \"Wrap the call: `watch(source, () => execute())` instead of `watch(source, execute)`.\",\n\t\t\tdocs: false\n\t\t},\n\t\tNUXT_E3006: {\n\t\t\twhy: (p) => `\\`${p.fn}\\` handler returned \\`undefined\\`, so the request may be duplicated on the client side.`,\n\t\t\tfix: \"Return a value from the handler function (e.g. `return null` instead of returning nothing).\",\n\t\t\tdocs: false\n\t\t},\n\t\tNUXT_E3007: {\n\t\t\twhy: \"`asyncData` returned a non-object value.\",\n\t\t\tfix: \"Return a plain object from the `asyncData()` function, e.g. `asyncData() { return { key: value } }`.\",\n\t\t\tdocs: false\n\t\t},\n\t\tNUXT_E3008: {\n\t\t\twhy: \"`useAsyncData` key must be a non-empty string.\",\n\t\t\tfix: \"Pass a non-empty string as the first argument to `useAsyncData()`.\"\n\t\t},\n\t\tNUXT_E3009: {\n\t\t\twhy: \"`useAsyncData` handler must be a function.\",\n\t\t\tfix: \"Pass a function as the handler argument, e.g. `useAsyncData('key', () => $fetch('/api/data'))`.\"\n\t\t},\n\t\tNUXT_E3010: {\n\t\t\twhy: \"`useFetch` no longer accepts `params`, so it was dropped from the request.\",\n\t\t\tfix: \"Rename the option to `query`, which is what `params` was an alias for.\",\n\t\t\tdocs: false\n\t\t}\n\t}\n});\n//#endregion\nexport { dataDiagnostics };\n","//#region src/app/composables/lazy-hydration.ts\nconst neverHydratedSymbol = Symbol.for(\"nuxt:never-hydrated\");\nfunction defineLazyHydrationComponent(_strategy, _source) {}\n//#endregion\nexport { defineLazyHydrationComponent, neverHydratedSymbol };\n","import { traceAsync } from \"../internal/tracing.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { getUserCaller, toArray } from \"../utils.js\";\nimport { createError } from \"./error.js\";\nimport { hashFunction, hashKey } from \"../utils/hash.js\";\nimport { debounceTick } from \"../utils/debounce-tick.js\";\nimport { clientOnlySymbol } from \"../components/client-only.js\";\nimport { onNuxtReady } from \"./ready.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime/index.js\";\nimport { dataDiagnostics } from \"../diagnostics/data.js\";\nimport { neverHydratedSymbol } from \"./lazy-hydration.js\";\nimport { computed, getCurrentInstance, getCurrentScope, inject, isRef, isShallow, nextTick, onBeforeMount, onScopeDispose, onServerPrefetch, onUnmounted, queuePostFlushCb, ref, shallowRef, toRef, toValue, unref, watch } from \"vue\";\nimport { asyncDataDefaults, granularCachedData, pendingWhenIdle, purgeCachedData, stripNeverHydratedData, tracingChannelNuxt, vapor } from \"#build/nuxt.config.mjs\";\n//#region src/app/composables/asyncData.ts\nconst createUseAsyncData = defineKeyedFunctionFactory({\n\tname: \"createUseAsyncData\",\n\tfactory(options = {}) {\n\t\tfunction useAsyncData(...args) {\n\t\t\tconst autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n\t\t\tif (_isAutoKeyNeeded(args[0], args[1])) args.unshift(autoKey);\n\t\t\tlet [_key, _handler, opts = {}] = args;\n\t\t\tlet keyChanging = false;\n\t\t\t/** True if key is a Ref or getter; false for static string. When false, key watcher is skipped. */\n\t\t\tconst isKeyReactive = isRef(_key) || typeof _key === \"function\";\n\t\t\tconst key = isKeyReactive ? computed(() => toValue(_key)) : { value: _key };\n\t\t\tif (!key.value || typeof key.value !== \"string\") throw dataDiagnostics.NUXT_E3008();\n\t\t\tif (typeof _handler !== \"function\") throw dataDiagnostics.NUXT_E3009();\n\t\t\tconst shouldFactoryOptionsOverride = typeof options === \"function\";\n\t\t\tconst nuxtApp = useNuxtApp();\n\t\t\tconst factoryOptions = shouldFactoryOptionsOverride ? options(opts) : options;\n\t\t\tif (!shouldFactoryOptionsOverride) for (const key in factoryOptions) {\n\t\t\t\tif (factoryOptions[key] === void 0) continue;\n\t\t\t\tif (opts[key] !== void 0) continue;\n\t\t\t\topts[key] = factoryOptions[key];\n\t\t\t}\n\t\t\topts.server ??= true;\n\t\t\topts.default ??= getDefault;\n\t\t\topts.getCachedData ??= getDefaultCachedData;\n\t\t\topts.lazy ??= false;\n\t\t\topts.immediate ??= true;\n\t\t\topts.deep ??= asyncDataDefaults.deep;\n\t\t\topts.dedupe ??= \"cancel\";\n\t\t\topts.enabled ??= true;\n\t\t\tif (true && stripNeverHydratedData && opts.serialize === void 0 && getCurrentInstance() && inject(neverHydratedSymbol, false)) opts.serialize = false;\n\t\t\tif (shouldFactoryOptionsOverride) for (const key in factoryOptions) {\n\t\t\t\tif (factoryOptions[key] === void 0) continue;\n\t\t\t\topts[key] = factoryOptions[key];\n\t\t\t}\n\t\t\tconst currentData = nuxtApp._asyncData[key.value];\n\t\t\tif (false && currentData) {\n\t\t\t\tconst warnings = [];\n\t\t\t\tconst values = createHash(_handler, opts);\n\t\t\t\tif (values.handler !== currentData._hash?.handler) warnings.push(`different handler`);\n\t\t\t\tfor (const opt of [\n\t\t\t\t\t\"transform\",\n\t\t\t\t\t\"pick\",\n\t\t\t\t\t\"getCachedData\",\n\t\t\t\t\t\"serialize\"\n\t\t\t\t]) if (values[opt] !== currentData._hash[opt]) warnings.push(`different \\`${opt}\\` option`);\n\t\t\t\tif (currentData._default.toString() !== opts.default.toString()) warnings.push(`different \\`default\\` value`);\n\t\t\t\tif (opts.deep && isShallow(currentData.data)) warnings.push(`mismatching \\`deep\\` option`);\n\t\t\t\tif (warnings.length) {\n\t\t\t\t\tconst caller = getUserCaller();\n\t\t\t\t\tdataDiagnostics.NUXT_E3004({\n\t\t\t\t\t\tkey: key.value,\n\t\t\t\t\t\twarnings: warnings.map((w) => `- ${w}`).join(\"\\n\"),\n\t\t\t\t\t\tsources: caller ? [`${caller.source}:${caller.line}:${caller.column}`] : void 0\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction createInitialFetch() {\n\t\t\t\tconst initialFetchOptions = {\n\t\t\t\t\tcause: \"initial\",\n\t\t\t\t\tdedupe: opts.dedupe\n\t\t\t\t};\n\t\t\t\tconst existing = nuxtApp._asyncData[key.value];\n\t\t\t\tif (!existing?._init) {\n\t\t\t\t\tinitialFetchOptions.cachedData = opts.getCachedData(key.value, nuxtApp, { cause: \"initial\" });\n\t\t\t\t\tnuxtApp._asyncData[key.value] = buildAsyncData(nuxtApp, key.value, _handler, opts, initialFetchOptions.cachedData);\n\t\t\t\t\tnuxtApp._asyncData[key.value]._initialCachedData = initialFetchOptions.cachedData;\n\t\t\t\t} else if (nuxtApp._asyncDataPromises[key.value]) initialFetchOptions.cachedData = existing._initialCachedData;\n\t\t\t\treturn () => nuxtApp._asyncData[key.value].execute(initialFetchOptions);\n\t\t\t}\n\t\t\tconst initialFetch = createInitialFetch();\n\t\t\tconst asyncData = nuxtApp._asyncData[key.value];\n\t\t\tasyncData._deps++;\n\t\t\tconst fetchOnServer = opts.server !== false && nuxtApp.payload.serverRendered;\n\t\t\tconst isWithinVaporComponent = () => {\n\t\t\t\tif (!vapor || getCurrentInstance()) return false;\n\t\t\t\tconst scope = getCurrentScope();\n\t\t\t\treturn !!scope && scope !== nuxtApp._scope;\n\t\t\t};\n\t\t\tif (true && fetchOnServer && opts.immediate) {\n\t\t\t\tconst promise = initialFetch();\n\t\t\t\tif (getCurrentInstance() || isWithinVaporComponent()) onServerPrefetch(() => promise);\n\t\t\t\telse nuxtApp.hook(\"app:created\", async () => {\n\t\t\t\t\tawait promise;\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (false) {\n\t\t\t\tconst instance = getCurrentInstance();\n\t\t\t\tconst inComponentSetup = !!instance || isWithinVaporComponent();\n\t\t\t\tif (instance && fetchOnServer && opts.immediate && !instance.sp) instance.sp = [];\n\t\t\t\tif (false && !nuxtApp.isHydrating && !nuxtApp._processingMiddleware && (!inComponentSetup || instance?.isMounted)) dataDiagnostics.NUXT_E3003();\n\t\t\t\tif (instance && !instance._nuxtOnBeforeMountCbs) {\n\t\t\t\t\tinstance._nuxtOnBeforeMountCbs = [];\n\t\t\t\t\tconst cbs = instance._nuxtOnBeforeMountCbs;\n\t\t\t\t\tonBeforeMount(() => {\n\t\t\t\t\t\tcbs.forEach((cb) => {\n\t\t\t\t\t\t\tcb();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcbs.splice(0, cbs.length);\n\t\t\t\t\t});\n\t\t\t\t\tonUnmounted(() => cbs.splice(0, cbs.length));\n\t\t\t\t}\n\t\t\t\tconst isWithinClientOnly = inComponentSetup && (instance?._nuxtClientOnly || inject(clientOnlySymbol, false));\n\t\t\t\tconst hasServerData = key.value in nuxtApp.payload.data;\n\t\t\t\tif (fetchOnServer && nuxtApp.isHydrating && (asyncData.error.value || asyncData.data.value !== void 0 && (hasServerData || asyncData._initialCachedData !== void 0))) {\n\t\t\t\t\tif (pendingWhenIdle) asyncData.pending.value = false;\n\t\t\t\t\tasyncData.status.value = asyncData.error.value ? \"error\" : \"success\";\n\t\t\t\t} else if (inComponentSetup && (!isWithinClientOnly && nuxtApp.payload.serverRendered && nuxtApp.isHydrating && (!fetchOnServer || hasServerData) || opts.lazy) && opts.immediate) {\n\t\t\t\t\tif (instance) instance._nuxtOnBeforeMountCbs.push(initialFetch);\n\t\t\t\t\telse onBeforeMount(() => {\n\t\t\t\t\t\tinitialFetch();\n\t\t\t\t\t});\n\t\t\t\t} else if (opts.immediate && asyncData.status.value !== \"success\") initialFetch();\n\t\t\t\tfunction unregister(key) {\n\t\t\t\t\tconst data = nuxtApp._asyncData[key];\n\t\t\t\t\tif (data?._deps) {\n\t\t\t\t\t\tdata._deps--;\n\t\t\t\t\t\tif (data._deps === 0) data?._off();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst hasScope = getCurrentScope();\n\t\t\t\tconst noop = () => {};\n\t\t\t\tconst unsubKeyWatcher = isKeyReactive ? watch(key, (newKey, oldKey) => {\n\t\t\t\t\tif ((newKey || oldKey) && newKey !== oldKey) {\n\t\t\t\t\t\tkeyChanging = true;\n\t\t\t\t\t\tconst hadData = nuxtApp._asyncData[oldKey]?.data.value !== void 0;\n\t\t\t\t\t\tconst wasRunning = nuxtApp._asyncDataPromises[oldKey] !== void 0;\n\t\t\t\t\t\tconst initialFetchOptions = {\n\t\t\t\t\t\t\tcause: \"initial\",\n\t\t\t\t\t\t\tdedupe: opts.dedupe\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (!nuxtApp._asyncData[newKey]?._init) {\n\t\t\t\t\t\t\tconst cachedData = opts.getCachedData(newKey, nuxtApp, { cause: \"initial\" });\n\t\t\t\t\t\t\tinitialFetchOptions.cachedData = cachedData;\n\t\t\t\t\t\t\tconst initialValue = oldKey && hadData && cachedData === void 0 ? nuxtApp._asyncData[oldKey].data.value : cachedData;\n\t\t\t\t\t\t\tnuxtApp._asyncData[newKey] = buildAsyncData(nuxtApp, newKey, _handler, opts, initialValue);\n\t\t\t\t\t\t\tnuxtApp._asyncData[newKey]._initialCachedData = cachedData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnuxtApp._asyncData[newKey]._deps++;\n\t\t\t\t\t\tif (oldKey) unregister(oldKey);\n\t\t\t\t\t\tif (opts._keyTriggersExecute !== false && (opts.immediate || hadData || wasRunning)) nuxtApp._asyncData[newKey].execute(initialFetchOptions);\n\t\t\t\t\t\tqueuePostFlushCb(() => {\n\t\t\t\t\t\t\tkeyChanging = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}, { flush: \"sync\" }) : noop;\n\t\t\t\tconst unsubParamsWatcher = opts.watch ? watch(opts.watch, () => {\n\t\t\t\t\tif (keyChanging) return;\n\t\t\t\t\tnuxtApp._asyncData[key.value]?._execute({\n\t\t\t\t\t\tcause: \"watch\",\n\t\t\t\t\t\tdedupe: opts.dedupe\n\t\t\t\t\t});\n\t\t\t\t}) : noop;\n\t\t\t\tconst unsubEnabledWatcher = isRef(opts.enabled) || typeof opts.enabled === \"function\" ? watch(() => toValue(opts.enabled), (isEnabled) => {\n\t\t\t\t\tconst entry = nuxtApp._asyncData[key.value];\n\t\t\t\t\tif (isEnabled || !entry || !nuxtApp._asyncDataPromises[key.value]) return;\n\t\t\t\t\tentry._abortController?.abort(new DOMException(\"AsyncData request cancelled by `enabled: false`\", \"AbortError\"));\n\t\t\t\t\tentry._abortController = void 0;\n\t\t\t\t\tdelete nuxtApp._asyncDataPromises[key.value];\n\t\t\t\t\tif (pendingWhenIdle) entry.pending.value = false;\n\t\t\t\t\tentry.status.value = \"idle\";\n\t\t\t\t}) : noop;\n\t\t\t\tif (hasScope) onScopeDispose(() => {\n\t\t\t\t\tunsubKeyWatcher();\n\t\t\t\t\tunsubParamsWatcher();\n\t\t\t\t\tunsubEnabledWatcher();\n\t\t\t\t\tunregister(key.value);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst asyncReturn = {\n\t\t\t\tdata: writableComputedRef(() => nuxtApp._asyncData[key.value]?.data, !opts.deep),\n\t\t\t\tpending: writableComputedRef(() => nuxtApp._asyncData[key.value]?.pending),\n\t\t\t\tstatus: writableComputedRef(() => nuxtApp._asyncData[key.value]?.status),\n\t\t\t\terror: writableComputedRef(() => nuxtApp._asyncData[key.value]?.error),\n\t\t\t\trefresh: (...args) => {\n\t\t\t\t\tif (!nuxtApp._asyncData[key.value]?._init) return createInitialFetch()();\n\t\t\t\t\treturn nuxtApp._asyncData[key.value].execute(...args);\n\t\t\t\t},\n\t\t\t\texecute: (...args) => asyncReturn.refresh(...args),\n\t\t\t\tclear: () => {\n\t\t\t\t\tconst entry = nuxtApp._asyncData[key.value];\n\t\t\t\t\tif (entry?._abortController) try {\n\t\t\t\t\t\tentry._abortController.abort(new DOMException(\"AsyncData aborted by user.\", \"AbortError\"));\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tentry._abortController = void 0;\n\t\t\t\t\t}\n\t\t\t\t\tclearNuxtDataByKey(nuxtApp, key.value);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst asyncDataPromise = Promise.resolve(nuxtApp._asyncDataPromises[key.value]).then(() => asyncReturn);\n\t\t\tObject.assign(asyncDataPromise, asyncReturn);\n\t\t\tObject.defineProperties(asyncDataPromise, {\n\t\t\t\tthen: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tvalue: asyncDataPromise.then.bind(asyncDataPromise)\n\t\t\t\t},\n\t\t\t\tcatch: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tvalue: asyncDataPromise.catch.bind(asyncDataPromise)\n\t\t\t\t},\n\t\t\t\tfinally: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tvalue: asyncDataPromise.finally.bind(asyncDataPromise)\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn asyncDataPromise;\n\t\t}\n\t\treturn useAsyncData;\n\t}\n});\nconst useAsyncData = createUseAsyncData.__nuxt_factory();\nconst useLazyAsyncData = createUseAsyncData.__nuxt_factory({\n\tlazy: true,\n\t_functionName: \"useLazyAsyncData\"\n});\nfunction writableComputedRef(getter, shallow = false) {\n\tconst forwardedRef = computed({\n\t\tget() {\n\t\t\treturn getter()?.value;\n\t\t},\n\t\tset(value) {\n\t\t\tconst ref = getter();\n\t\t\tif (ref) ref.value = value;\n\t\t}\n\t});\n\tif (shallow) forwardedRef.__v_isShallow = true;\n\treturn forwardedRef;\n}\nfunction _isAutoKeyNeeded(keyOrFetcher, fetcher) {\n\tif (typeof keyOrFetcher === \"string\") return false;\n\tif (typeof keyOrFetcher === \"object\" && keyOrFetcher !== null) return false;\n\tif (typeof keyOrFetcher === \"function\" && typeof fetcher === \"function\") return false;\n\treturn true;\n}\n/** @since 3.1.0 */\nfunction useNuxtData(key) {\n\tconst nuxtApp = useNuxtApp();\n\tif (!(key in nuxtApp.payload.data)) nuxtApp.payload.data[key] = void 0;\n\tif (nuxtApp._asyncData[key]) {\n\t\tconst data = nuxtApp._asyncData[key];\n\t\tdata._deps++;\n\t\tif (getCurrentScope()) onScopeDispose(() => {\n\t\t\tdata._deps--;\n\t\t\tif (data._deps === 0) data?._off();\n\t\t});\n\t}\n\treturn { data: computed({\n\t\tget() {\n\t\t\treturn nuxtApp._asyncData[key]?.data.value ?? nuxtApp.payload.data[key];\n\t\t},\n\t\tset(value) {\n\t\t\tif (nuxtApp._asyncData[key]) nuxtApp._asyncData[key].data.value = value;\n\t\t\telse nuxtApp.payload.data[key] = value;\n\t\t}\n\t}) };\n}\n/** @since 3.0.0 */\nasync function refreshNuxtData(keys) {\n\tif (true) return Promise.resolve();\n\tconst nuxtApp = useNuxtApp();\n\tif (nuxtApp.isHydrating) await new Promise((resolve) => onNuxtReady(resolve));\n\tconst _keys = keys ? toArray(keys) : void 0;\n\tawait nuxtApp.hooks.callHookParallel(\"app:data:refresh\", _keys);\n}\n/** @since 3.0.0 */\nfunction clearNuxtData(keys) {\n\tconst nuxtApp = useNuxtApp();\n\tconst _allKeys = Object.keys(nuxtApp.payload.data);\n\tconst _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n\tfor (const key of _keys) clearNuxtDataByKey(nuxtApp, key);\n}\nfunction clearNuxtDataByKey(nuxtApp, key) {\n\tdelete nuxtApp.payload.data[key];\n\tdelete nuxtApp.payload._errors[key];\n\tif (nuxtApp._asyncData[key]) {\n\t\tnuxtApp._asyncData[key].data.value = unref(nuxtApp._asyncData[key]._default());\n\t\tnuxtApp._asyncData[key].error.value = void 0;\n\t\tif (pendingWhenIdle) nuxtApp._asyncData[key].pending.value = false;\n\t\tnuxtApp._asyncData[key].status.value = \"idle\";\n\t\tnuxtApp._asyncData[key]._initialCachedData = void 0;\n\t}\n\tdelete nuxtApp._asyncDataPromises[key];\n}\nfunction pick(obj, keys) {\n\tconst newObj = {};\n\tfor (const key of keys) newObj[key] = obj[key];\n\treturn newObj;\n}\nfunction buildAsyncData(nuxtApp, key, _handler, options, initialCachedData) {\n\tnuxtApp.payload._errors[key] ??= void 0;\n\tconst hasCustomGetCachedData = options.getCachedData !== getDefaultCachedData;\n\tconst baseHandler = false || !import.meta.prerender || !nuxtApp.ssrContext?.[\"~sharedPrerenderCache\"] ? _handler : (nuxtApp, options) => {\n\t\tconst value = nuxtApp.ssrContext[\"~sharedPrerenderCache\"].get(key);\n\t\tif (value) return value;\n\t\tconst promise = Promise.resolve().then(() => nuxtApp.runWithContext(() => _handler(nuxtApp, options)));\n\t\tnuxtApp.ssrContext[\"~sharedPrerenderCache\"].set(key, promise);\n\t\treturn promise;\n\t};\n\tconst handler = true && tracingChannelNuxt ? (nuxtApp, opts) => traceAsync(\"nuxt.data\", {\n\t\tkey,\n\t\tfunctionName: options._functionName\n\t}, () => Promise.resolve(baseHandler(nuxtApp, opts))) : baseHandler;\n\tconst _ref = options.deep ? ref : shallowRef;\n\tconst hasCachedData = initialCachedData !== void 0;\n\tconst unsubRefreshAsyncData = nuxtApp.hook(\"app:data:refresh\", async (keys) => {\n\t\tif (!keys || keys.includes(key)) await asyncData.execute({ cause: \"refresh:hook\" });\n\t});\n\tconst asyncData = {\n\t\tdata: _ref(hasCachedData ? initialCachedData : options.default()),\n\t\tpending: pendingWhenIdle ? shallowRef(!hasCachedData) : computed(() => asyncData.status.value === \"pending\"),\n\t\terror: toRef(nuxtApp.payload._errors, key),\n\t\tstatus: shallowRef(\"idle\"),\n\t\texecute: (...args) => {\n\t\t\tconst [_opts, newValue = void 0] = args;\n\t\t\tconst opts = _opts && newValue === void 0 && typeof _opts === \"object\" ? _opts : {};\n\t\t\tif (false && newValue !== void 0 && (!_opts || typeof _opts !== \"object\")) dataDiagnostics.NUXT_E3005();\n\t\t\tif (nuxtApp._asyncDataPromises[key]) {\n\t\t\t\tif ((opts.dedupe ?? options.dedupe) === \"defer\") return nuxtApp._asyncDataPromises[key];\n\t\t\t}\n\t\t\tif (granularCachedData || opts.cause === \"initial\" || nuxtApp.isHydrating) {\n\t\t\t\tconst cachedData = \"cachedData\" in opts ? opts.cachedData : options.getCachedData(key, nuxtApp, { cause: opts.cause ?? \"refresh:manual\" });\n\t\t\t\tif (cachedData !== void 0) {\n\t\t\t\t\tif (options.serialize !== false) nuxtApp.payload.data[key] = cachedData;\n\t\t\t\t\tasyncData.data.value = cachedData;\n\t\t\t\t\tasyncData.error.value = void 0;\n\t\t\t\t\tasyncData.status.value = \"success\";\n\t\t\t\t\treturn Promise.resolve(cachedData);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (toValue(options.enabled) === false) return Promise.resolve(asyncData.data.value);\n\t\t\tif (pendingWhenIdle) asyncData.pending.value = true;\n\t\t\tif (asyncData._abortController) asyncData._abortController.abort(new DOMException(\"AsyncData request cancelled by deduplication\", \"AbortError\"));\n\t\t\tasyncData._abortController = new AbortController();\n\t\t\tasyncData.status.value = \"pending\";\n\t\t\tconst cleanupController = new AbortController();\n\t\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst timeout = opts.timeout ?? options.timeout;\n\t\t\t\t\tconst mergedSignal = mergeAbortSignals([asyncData._abortController?.signal, opts?.signal], cleanupController.signal, timeout);\n\t\t\t\t\tif (mergedSignal.aborted) {\n\t\t\t\t\t\tconst reason = mergedSignal.reason;\n\t\t\t\t\t\treject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tmergedSignal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\tconst reason = mergedSignal.reason;\n\t\t\t\t\t\treject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n\t\t\t\t\t}, {\n\t\t\t\t\t\tonce: true,\n\t\t\t\t\t\tsignal: cleanupController.signal\n\t\t\t\t\t});\n\t\t\t\t\treturn Promise.resolve(handler(nuxtApp, { signal: mergedSignal })).then(resolve, reject);\n\t\t\t\t} catch (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t}).then(async (_result) => {\n\t\t\t\tif (nuxtApp._asyncDataPromises[key] !== promise) return;\n\t\t\t\tlet result = _result;\n\t\t\t\tif (options.transform) result = await options.transform(_result);\n\t\t\t\tif (options.pick) result = pick(result, options.pick);\n\t\t\t\tif (false && true && typeof result === \"undefined\") {\n\t\t\t\t\tconst caller = getUserCaller();\n\t\t\t\t\tdataDiagnostics.NUXT_E3006({\n\t\t\t\t\t\tfn: options._functionName || \"useAsyncData\",\n\t\t\t\t\t\tsources: caller ? [`${caller.source}:${caller.line}:${caller.column}`] : void 0\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (options.serialize !== false) nuxtApp.payload.data[key] = result;\n\t\t\t\tasyncData.data.value = result;\n\t\t\t\tasyncData.error.value = void 0;\n\t\t\t\tasyncData.status.value = \"success\";\n\t\t\t}).catch((error) => {\n\t\t\t\tif (nuxtApp._asyncDataPromises[key] !== promise) return nuxtApp._asyncDataPromises[key];\n\t\t\t\tif (asyncData._abortController?.signal.aborted) return nuxtApp._asyncDataPromises[key];\n\t\t\t\tif (typeof DOMException !== \"undefined\" && error instanceof DOMException && error.name === \"AbortError\") {\n\t\t\t\t\tasyncData.status.value = \"idle\";\n\t\t\t\t\treturn nuxtApp._asyncDataPromises[key];\n\t\t\t\t}\n\t\t\t\tasyncData.error.value = createError(error);\n\t\t\t\tasyncData.data.value = unref(options.default());\n\t\t\t\tasyncData.status.value = \"error\";\n\t\t\t}).finally(() => {\n\t\t\t\tcleanupController.abort();\n\t\t\t\tif (nuxtApp._asyncDataPromises[key] === promise) {\n\t\t\t\t\tif (pendingWhenIdle) asyncData.pending.value = false;\n\t\t\t\t\tdelete nuxtApp._asyncDataPromises[key];\n\t\t\t\t}\n\t\t\t});\n\t\t\tnuxtApp._asyncDataPromises[key] = promise;\n\t\t\treturn nuxtApp._asyncDataPromises[key];\n\t\t},\n\t\t_execute: debounceTick((...args) => asyncData.execute(...args)),\n\t\t_default: options.default,\n\t\t_deps: 0,\n\t\t_init: true,\n\t\t_hash: false ? createHash(_handler, options) : void 0,\n\t\t_off: () => {\n\t\t\tunsubRefreshAsyncData();\n\t\t\tif (nuxtApp._asyncData[key]?._init) nuxtApp._asyncData[key]._init = false;\n\t\t\tif (nuxtApp._asyncDataPromises[key]) {\n\t\t\t\tasyncData._abortController?.abort(new DOMException(\"AsyncData request cancelled by unmount\", \"AbortError\"));\n\t\t\t\tdelete nuxtApp._asyncDataPromises[key];\n\t\t\t\tif (asyncData.status.value === \"pending\") asyncData.status.value = \"idle\";\n\t\t\t\tif (pendingWhenIdle) asyncData.pending.value = false;\n\t\t\t}\n\t\t\tif (purgeCachedData && !hasCustomGetCachedData) nextTick(() => {\n\t\t\t\tif (!nuxtApp._asyncData[key]?._init) {\n\t\t\t\t\tclearNuxtDataByKey(nuxtApp, key);\n\t\t\t\t\tasyncData.execute = () => Promise.resolve();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\treturn asyncData;\n}\nconst getDefault = () => void 0;\nconst getDefaultCachedData = (key, nuxtApp, ctx) => {\n\tif (nuxtApp.isHydrating) return nuxtApp.payload.data[key];\n\tif (ctx.cause !== \"refresh:manual\" && ctx.cause !== \"refresh:hook\") return nuxtApp.static.data[key];\n};\nfunction createHash(_handler, options) {\n\treturn {\n\t\thandler: hashFunction(_handler),\n\t\ttransform: options.transform ? hashFunction(options.transform) : void 0,\n\t\tpick: options.pick ? hashKey(options.pick) : void 0,\n\t\tgetCachedData: options.getCachedData ? hashFunction(options.getCachedData) : void 0,\n\t\tserialize: String(options.serialize ?? true)\n\t};\n}\nfunction mergeAbortSignals(signals, cleanupSignal, timeout) {\n\tconst list = signals.filter((s) => !!s);\n\tif (typeof timeout === \"number\" && timeout >= 0) {\n\t\tconst timeoutSignal = AbortSignal.timeout?.(timeout);\n\t\tif (timeoutSignal) list.push(timeoutSignal);\n\t}\n\tif (AbortSignal.any) return AbortSignal.any(list);\n\tconst controller = new AbortController();\n\tfor (const sig of list) if (sig.aborted) {\n\t\tconst reason = sig.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n\t\ttry {\n\t\t\tcontroller.abort(reason);\n\t\t} catch {\n\t\t\tcontroller.abort();\n\t\t}\n\t\treturn controller.signal;\n\t}\n\tconst onAbort = () => {\n\t\tconst reason = list.find((s) => s.aborted)?.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n\t\ttry {\n\t\t\tcontroller.abort(reason);\n\t\t} catch {\n\t\t\tcontroller.abort();\n\t\t}\n\t};\n\tfor (const sig of list) sig.addEventListener?.(\"abort\", onAbort, {\n\t\tonce: true,\n\t\tsignal: cleanupSignal\n\t});\n\treturn controller.signal;\n}\n//#endregion\nexport { clearNuxtData, createUseAsyncData, refreshNuxtData, useAsyncData, useLazyAsyncData, useNuxtData };\n","import { appDiagnostics } from \"../diagnostics/core.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"../../head/runtime/composables.js\";\nimport \"./head.js\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { $fetch } from \"#build/fetch\";\n//#region src/app/composables/ssr.ts\n/** @since 3.0.0 */\nfunction useRequestEvent(nuxtApp) {\n\tif (import.meta.client) return;\n\tnuxtApp ||= useNuxtApp();\n\treturn nuxtApp.ssrContext?.event;\n}\nfunction useRequestHeaders(include) {\n\tif (import.meta.client) return {};\n\tconst event = useRequestEvent();\n\tconst _headers = event ? Object.fromEntries(event.req.headers.entries()) : {};\n\tif (!include || !event) return _headers;\n\tconst headers = Object.create(null);\n\tfor (const _key of include) {\n\t\tconst key = _key.toLowerCase();\n\t\tconst header = _headers[key];\n\t\tif (header) headers[key] = header;\n\t}\n\treturn headers;\n}\n/** @since 3.9.0 */\nfunction useRequestHeader(header) {\n\tif (import.meta.client) return;\n\tconst event = useRequestEvent();\n\treturn event ? event.req.headers.get(header) : void 0;\n}\nconst UNFORWARDED_HEADERS = /* @__PURE__ */ new Set([\n\t\"accept\",\n\t\"accept-encoding\",\n\t\"connection\",\n\t\"content-length\",\n\t\"content-md5\",\n\t\"content-type\",\n\t\"expect\",\n\t\"host\",\n\t\"if-match\",\n\t\"if-modified-since\",\n\t\"if-none-match\",\n\t\"if-range\",\n\t\"if-unmodified-since\",\n\t\"keep-alive\",\n\t\"proxy-authenticate\",\n\t\"proxy-authorization\",\n\t\"te\",\n\t\"trailer\",\n\t\"transfer-encoding\",\n\t\"upgrade\"\n]);\nconst requestFetchers = /* @__PURE__ */ new WeakMap();\nfunction createRequestFetch(event) {\n\tconst base = $fetch;\n\treturn base.create({}, { fetch(request, options) {\n\t\tif (typeof request === \"string\" && request[0] === \"/\") {\n\t\t\tconst headers = new Headers(options?.headers);\n\t\t\tfor (const [name, value] of event.req.headers) if (!UNFORWARDED_HEADERS.has(name) && !headers.has(name)) headers.set(name, value);\n\t\t\toptions = {\n\t\t\t\t...options,\n\t\t\t\theaders\n\t\t\t};\n\t\t}\n\t\treturn base.native(request, options);\n\t} });\n}\n/** @since 3.2.0 */\nfunction useRequestFetch() {\n\tif (import.meta.client) return $fetch;\n\tconst event = useRequestEvent();\n\tif (!event) return $fetch;\n\tlet fetcher = requestFetchers.get(event);\n\tif (!fetcher) {\n\t\tfetcher = createRequestFetch(event);\n\t\trequestFetchers.set(event, fetcher);\n\t}\n\treturn fetcher;\n}\nfunction setResponseStatus(arg1, arg2, arg3) {\n\tif (import.meta.client) return;\n\tif (arg1 && typeof arg1 !== \"number\") {\n\t\targ1.res.status = arg2;\n\t\targ1.res.statusText = arg3;\n\t\treturn;\n\t}\n\tconst event = useRequestEvent();\n\tif (event) {\n\t\tevent.res.status = arg1;\n\t\tevent.res.statusText = arg2;\n\t}\n}\n/** @since 3.14.0 */\nfunction useResponseHeader(header) {\n\tif (import.meta.client) {\n\t\tif (import.meta.dev) return computed({\n\t\t\tget: () => void 0,\n\t\t\tset: () => appDiagnostics.NUXT_E1010()\n\t\t});\n\t\treturn ref();\n\t}\n\tconst event = useRequestEvent();\n\treturn computed({\n\t\tget() {\n\t\t\treturn event.res.headers.get(header);\n\t\t},\n\t\tset(newValue) {\n\t\t\tif (!newValue) return event.res.headers.delete(header);\n\t\t\treturn event.res.headers.set(header, newValue);\n\t\t}\n\t});\n}\n/** @since 3.8.0 */\nfunction prerenderRoutes(path) {\n\tif (!import.meta.server || !import.meta.prerender) return;\n\tconst paths = toArray(path);\n\tuseRequestEvent()?.res.headers.append(\"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nfunction onPrehydrate(callback, key) {\n\tif (import.meta.client) return;\n\tif (typeof callback !== \"string\") throw appDiagnostics.NUXT_E1006();\n\tconst vm = getCurrentInstance();\n\tif (import.meta.dev && !vm && key) appDiagnostics.NUXT_E1013();\n\tif (vm && key) {\n\t\tvm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n\t\tkey = \":\" + key + \":\";\n\t\tif (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n\t}\n\tconst code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n\tuseHead({ script: [{\n\t\tkey: vm && key ? key : void 0,\n\t\ttagPosition: \"bodyClose\",\n\t\ttagPriority: \"critical\",\n\t\tinnerHTML: code\n\t}] });\n\treturn vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n//#endregion\nexport { onPrehydrate, prerenderRoutes, setResponseStatus, useRequestEvent, useRequestFetch, useRequestHeader, useRequestHeaders, useResponseHeader };\n","import { hashKey } from \"../utils/hash.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime/index.js\";\nimport { dataDiagnostics } from \"../diagnostics/data.js\";\nimport { useAsyncData } from \"./asyncData.js\";\nimport { useRequestFetch } from \"./ssr.js\";\nimport { computed, reactive, toValue, watch } from \"vue\";\nimport { alwaysRunFetchOnKeyChange, fetchDefaults } from \"#build/nuxt.config.mjs\";\nimport { isPlainObject } from \"@vue/shared\";\nimport { $fetch } from \"#build/fetch\";\n//#region src/app/composables/fetch.ts\nconst $fetch$1 = $fetch;\nconst MAYBE_REF_OR_GETTER_OPTION_KEYS = [\n\t\"method\",\n\t\"baseURL\",\n\t\"query\",\n\t\"body\",\n\t\"headers\"\n];\nfunction generateOptionSegments(opts) {\n\tconst segments = [toValue(opts.method)?.toUpperCase() || \"GET\", toValue(opts.baseURL)];\n\tconst query = toValue(opts.query);\n\tif (query) {\n\t\tconst unwrapped = {};\n\t\tfor (const [key, value] of Object.entries(query)) unwrapped[toValue(key)] = toValue(value);\n\t\tsegments.push(unwrapped);\n\t}\n\tif (opts.body) {\n\t\tconst value = toValue(opts.body);\n\t\tif (!value) segments.push(hashKey(value));\n\t\telse if (value instanceof ArrayBuffer) segments.push(hashKey(Object.fromEntries([...new Uint8Array(value).entries()].map(([k, v]) => [k, v.toString()]))));\n\t\telse if (value instanceof FormData) {\n\t\t\tconst entries = [];\n\t\t\tfor (const entry of value.entries()) {\n\t\t\t\tconst [key, val] = entry;\n\t\t\t\tentries.push([key, val instanceof File ? `${val.name}:${val.size}:${val.lastModified}` : val]);\n\t\t\t}\n\t\t\tsegments.push(hashKey(entries));\n\t\t} else if (isPlainObject(value)) segments.push(hashKey(reactive(value)));\n\t\telse try {\n\t\t\tsegments.push(hashKey(value));\n\t\t} catch {\n\t\t\tdataDiagnostics.NUXT_E3002({ cause: value });\n\t\t}\n\t}\n\treturn segments;\n}\n/**\n* A factory function to create a custom `useFetch` composable with pre-defined default options.\n* @since 4.2.0\n*/\nconst createUseFetch = defineKeyedFunctionFactory({\n\tname: \"createUseFetch\",\n\tfactory(options = {}) {\n\t\tfunction useFetch(request, arg1, arg2) {\n\t\t\tconst [opts = {}, autoKey] = typeof arg1 === \"string\" ? [{}, arg1] : [arg1, arg2];\n\t\t\tconst factoryOptions = typeof options === \"function\" ? options(opts) : options;\n\t\t\tconst { server, lazy, default: defaultFn, transform, pick, watch: watchSources, immediate, getCachedData, deep, dedupe, timeout, enabled, serialize, ...fetchOptions } = {\n\t\t\t\t...typeof options === \"function\" ? {} : factoryOptions,\n\t\t\t\t...opts,\n\t\t\t\t...typeof options === \"function\" ? factoryOptions : {}\n\t\t\t};\n\t\t\tif (\"params\" in fetchOptions) {\n\t\t\t\tdelete fetchOptions.params;\n\t\t\t\tif (import.meta.dev) dataDiagnostics.NUXT_E3010();\n\t\t\t}\n\t\t\tconst _request = computed(() => toValue(request));\n\t\t\tconst key = computed(() => toValue(fetchOptions.key) || \"$f\" + hashKey([\n\t\t\t\tautoKey,\n\t\t\t\ttypeof _request.value === \"string\" ? _request.value : \"\",\n\t\t\t\t...generateOptionSegments(fetchOptions)\n\t\t\t]));\n\t\t\tif (!fetchOptions.baseURL && typeof _request.value === \"string\" && _request.value[0] === \"/\" && _request.value[1] === \"/\") throw dataDiagnostics.NUXT_E3001({ url: _request.value });\n\t\t\tconst _fetchOptions = reactive({\n\t\t\t\t...fetchDefaults,\n\t\t\t\t...fetchOptions,\n\t\t\t\tcache: typeof fetchOptions.cache === \"boolean\" ? void 0 : fetchOptions.cache\n\t\t\t});\n\t\t\tconst _asyncDataOptions = {\n\t\t\t\tserver,\n\t\t\t\tlazy,\n\t\t\t\tdefault: defaultFn,\n\t\t\t\ttransform,\n\t\t\t\tpick,\n\t\t\t\timmediate,\n\t\t\t\tgetCachedData,\n\t\t\t\tdeep,\n\t\t\t\tdedupe,\n\t\t\t\ttimeout,\n\t\t\t\tenabled,\n\t\t\t\tserialize,\n\t\t\t\twatch: watchSources === false ? [] : [...watchSources || [], _fetchOptions]\n\t\t\t};\n\t\t\tif (import.meta.dev) _asyncDataOptions._functionName ||= factoryOptions._functionName || \"useFetch\";\n\t\t\tif (watchSources === false) _asyncDataOptions._keyTriggersExecute = false;\n\t\t\tif (alwaysRunFetchOnKeyChange && !immediate) {\n\t\t\t\tfunction setImmediate() {\n\t\t\t\t\t_asyncDataOptions.immediate = true;\n\t\t\t\t}\n\t\t\t\twatch(key, setImmediate, {\n\t\t\t\t\tflush: \"sync\",\n\t\t\t\t\tonce: true\n\t\t\t\t});\n\t\t\t\twatch([...watchSources || [], _fetchOptions], setImmediate, {\n\t\t\t\t\tflush: \"sync\",\n\t\t\t\t\tonce: true\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn useAsyncData(key, (_, { signal }) => {\n\t\t\t\tconst _$fetch = fetchOptions.$fetch || (import.meta.server ? useRequestFetch() : $fetch$1);\n\t\t\t\tconst resolvedOptions = {\n\t\t\t\t\tsignal,\n\t\t\t\t\t..._fetchOptions\n\t\t\t\t};\n\t\t\t\tfor (const key of MAYBE_REF_OR_GETTER_OPTION_KEYS) if (typeof resolvedOptions[key] === \"function\") resolvedOptions[key] = toValue(resolvedOptions[key]);\n\t\t\t\treturn _$fetch(_request.value, resolvedOptions);\n\t\t\t}, _asyncDataOptions);\n\t\t}\n\t\treturn useFetch;\n\t}\n});\nconst useFetch = createUseFetch.__nuxt_factory();\nconst useLazyFetch = createUseFetch.__nuxt_factory({\n\tlazy: true,\n\t_functionName: \"useLazyFetch\"\n});\n//#endregion\nexport { createUseFetch, useFetch, useLazyFetch };\n","import type { Ref } from 'vue'\nimport type { HookInfo, RouteInfo } from '../../src/types'\nimport { objectPick } from '@antfu/utils'\nimport { computed } from 'vue'\nimport { useFetch } from '#app/composables/fetch'\nimport { useClientRouter } from './client'\nimport { rpc } from './rpc'\nimport { useAsyncState } from './utils'\n\nexport function useServerPages() {\n return useAsyncState('getServerPages', () => rpc.getServerPages())\n}\n\nexport function useServerRoutes() {\n return useAsyncState('getServerRoutes', () => rpc.getServerRoutes())\n}\n\nexport function useServerTasks() {\n return useAsyncState('getServerTasks', () => rpc.getServerTasks())\n}\n\nexport function useServerHooks() {\n return useAsyncState('getServerHooks', () => rpc.getServerHooks()) as Ref<HookInfo[] | undefined>\n}\n\nexport function useLayouts() {\n return useAsyncState('getServerLayouts', () => rpc.getServerLayouts())\n}\n\nexport function useAutoImports() {\n return useAsyncState('getAutoImports', () => rpc.getAutoImports())\n}\n\nexport function useStaticAssets() {\n return useAsyncState('getStaticAssets', () => rpc.getStaticAssets())\n}\n\nexport function useServerConfig() {\n return useAsyncState('getServerConfig', () => rpc.getServerConfig())\n}\n\nexport function useServerDebugContext() {\n return useAsyncState('getServerDebugContext', () => rpc.getServerDebugContext())\n}\n\nexport function useServerRuntimeConfig() {\n return useAsyncState('getServerRuntimeConfig', () => rpc.getServerRuntimeConfig())\n}\n\nexport function useModuleOptions() {\n return useAsyncState('getModuleOptions', () => rpc.getModuleOptions())\n}\n\nexport function useServerApp() {\n return useAsyncState('getServerApp', () => rpc.getServerApp())\n}\n\nexport function useCustomTabs() {\n return useAsyncState('getCustomTabs', () => rpc.getCustomTabs())\n}\n\nexport function useAnalyzeBuildInfo() {\n return useAsyncState('getAnalyzeBuildInfo', () => rpc.getAnalyzeBuildInfo())\n}\n\nexport interface VfsData {\n rootDir: string\n entries: {\n id: string\n path: string\n }[]\n}\n\nexport interface VfsFile {\n id: string\n content: string\n}\n\nexport function useVirtualFiles() {\n const { data } = useFetch<VfsData>('/_vfs.json', {\n key: 'vfs-list',\n baseURL: '/',\n responseType: 'json',\n })\n return data\n}\n\nexport function useMergedRouteList() {\n const serverPages = useServerPages()\n const router = useClientRouter()\n\n return computed((): RouteInfo[] => {\n return (router.value?.getRoutes() || [])\n .map(i => objectPick(i, ['path', 'name', 'meta', 'props', 'children']))\n .map((i) => {\n return {\n ...serverPages.value?.find(j => j.name && j.name === i.name),\n ...i,\n }\n })\n })\n}\n","import type { Component } from 'nuxt/schema'\nimport type { Ref } from 'vue'\nimport type { AsyncDataOptions } from '#app'\nimport type { ComponentRelationship, ComponentWithRelationships, NormalizedHeadTag, SocialPreviewCard, SocialPreviewResolved } from '~/../src/types'\nimport { useSessionStorage } from '@vueuse/core'\nimport { relative } from 'pathe'\nimport { triggerRef } from 'vue'\nimport { useAsyncData } from '#app/composables/asyncData'\nimport { useNuxtApp } from '#app/nuxt'\nimport { useState } from '#imports'\nimport { useClient } from './client'\nimport { useServerConfig } from './state'\n\nconst NODE_MODULES_RE = /[/\\\\]node_modules[/\\\\]/\nconst PACKAGE_NAME_RE = /^(@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*$/\nconst BACKSLASH_RE = /\\\\/g\nconst NODE_MODULES_PATH_RE = /.*\\/node_modules\\/(.*)$/\n\nexport function isNodeModulePath(path: string) {\n return !!path.match(NODE_MODULES_RE) || isPackageName(path)\n}\n\nexport function isPackageName(name: string) {\n return name[0] === '#' || !!name.match(PACKAGE_NAME_RE)\n}\n\nexport function getModuleNameFromPath(path: string) {\n if (isPackageName(path))\n return path\n const match = path.replace(BACKSLASH_RE, '/').match(NODE_MODULES_PATH_RE)?.[1]\n if (!match)\n return undefined\n if (match.startsWith('@'))\n return match.split('/').slice(0, 2).join('/')\n return match.split('/')[0]\n}\n\nfunction getModuleSubpathFromPath(path: string) {\n const match = path.match(NODE_MODULES_PATH_RE)?.[1]\n if (!match)\n return undefined\n return match\n}\n\n/**\n * The `nuxt` package name itself, as it appears in `node_modules` / package\n * names. Aliased installs (`\"nuxt\": \"npm:nuxt-nightly@5x\"`, the older\n * `nuxt-edge` pre-release channel, ...) physically install under a different\n * package name, so anything that special-cases \"is this Nuxt's own code\"\n * needs to check all of them, not just the literal `'nuxt'` string.\n */\nexport const NUXT_PACKAGE_NAMES = new Set(['nuxt', 'nuxt-nightly', 'nuxt-edge'])\n\nexport function isNuxtPackageName(name: string | undefined) {\n return !!name && NUXT_PACKAGE_NAMES.has(name)\n}\n\nexport function isBuiltInModule(name: string | undefined) {\n if (!name)\n return\n return isNuxtPackageName(name) || ['#app', '#head', 'vue'].includes(name)\n}\n\nexport function parseReadablePath(path: string, root: string) {\n path = path.replace(BACKSLASH_RE, '/')\n if (isPackageName(path)) {\n return {\n moduleName: path,\n path,\n }\n }\n const moduleName = getModuleNameFromPath(path)\n const subpath = getModuleSubpathFromPath(path)\n if (moduleName && subpath) {\n return {\n moduleName,\n path: subpath,\n }\n }\n // Workaround https://github.com/unjs/pathe/issues/113\n try {\n let result = relative(root, path)\n if (!result.startsWith('./') && !result.startsWith('../'))\n result = `./${result}`\n if (result.startsWith('./.nuxt/'))\n result = `#build${result.slice(7)}`\n return { path: result }\n }\n catch {\n return { path }\n }\n}\n\nexport function useAsyncState<T>(key: string, fn: () => Promise<T>, options?: AsyncDataOptions<T>) {\n const nuxt = useNuxtApp()\n const { data } = useAsyncData(key, fn, {\n ...options,\n // Custom getCachedData serves two purposes:\n // 1. Returns previously fetched data from payload.data on remount, so pages render instantly\n // 2. Prevents Nuxt's purgeCachedData from clearing data when the last consumer unmounts\n getCachedData: key => nuxt.payload.data[key] as T,\n })\n return data as Ref<T | null>\n}\n\nexport function getIsMacOS() {\n return typeof navigator !== 'undefined' && navigator.platform.toLowerCase().includes('mac')\n}\n\n// @unocss-include\nconst requestMethodClass: Record<string, string> = {\n get: 'n-green',\n post: 'n-blue',\n put: 'n-orange',\n delete: 'n-red',\n patch: 'n-purple',\n head: 'n-teal',\n default: 'n-gray',\n}\n\nexport function getRequestMethodClass(method: string) {\n return requestMethodClass[method.toLowerCase()] || requestMethodClass.default\n}\n\nexport function getSocialPreviewCard(\n rawTags: NormalizedHeadTag[],\n tags: SocialPreviewCard,\n): SocialPreviewResolved {\n const resolvedTags: { [key: string]: string | undefined } = {}\n\n for (const [key, value] of Object.entries(tags)) {\n for (const tag of value) {\n const tagValue = rawTags.find(item => item.tag === tag.tag && (tag.name ? item.name === tag.name : true))?.value\n if (tagValue) {\n resolvedTags[key] = tagValue\n break\n }\n }\n }\n\n return {\n url: window.location.host,\n ...resolvedTags,\n }\n}\n\nexport function formatDuration(ms: number | string) {\n ms = Number(ms)\n if (Number.isNaN(ms) || ms < 0)\n return '-'\n if (ms < 1)\n return '<1ms'\n if (ms < 1000)\n return `${ms}ms`\n if (ms < 1000 * 60)\n return `${(ms / 1000).toFixed(2)}s`\n return `${(ms / 1000 / 60).toFixed(2)}min`\n}\n\nexport function useSessionState<T>(name: string, initialValue: T) {\n return useState(name, () => {\n return useSessionStorage(name, initialValue, { listenToStorageChanges: false })\n })\n}\n\nexport function getComponentRelationships(component: Component, relationships?: ComponentRelationship[] | null): ComponentWithRelationships {\n const dependencies = relationships\n ?.find(i => i.id === component.filePath)\n ?.deps\n ?.map(i => relationships?.find(j => j.id === i)?.id)\n .filter(Boolean) as string[] | undefined\n const dependents = relationships\n ?.filter(i => i.deps.includes(component.filePath))\n .map(i => i.id)\n\n return {\n component,\n dependencies,\n dependents,\n }\n}\n\nexport function pluralizeByCount(count: number, singular: string, plural = `${singular}s`) {\n return `${count} ${count <= 1 ? singular : plural}`\n}\n\nexport function refreshData() {\n const client = useClient()\n const nuxt = useNuxtApp()\n\n nuxt.hooks.callHookParallel('app:data:refresh', Object.keys(nuxt.payload.data))\n triggerRef(client)\n client.value.revision.value += 1\n}\n\nexport function reloadPage() {\n location.reload()\n}\n\nexport function useNuxtCompatibilityVersion() {\n const config = useServerConfig()\n return config.value?.future.compatibilityVersion\n}\n"],"version":3}