athar-mcp 0.1.0 → 0.2.1

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 (197) hide show
  1. package/dashboard/.output/nitro.json +15 -0
  2. package/dashboard/.output/public/_fonts/31PZhXd_YTCmsoiPQZc-xVtAWAkLogRFRj5mWplmKFE-6WsTw05QKugcwLySGc_b9CIheG8j8LRyo47qPL430Mk.woff2 +0 -0
  3. package/dashboard/.output/public/_fonts/3e3wuf-V_7icWvlsSS3Ud6R1mFSymwsfz35VcqiVjOk-jnii4_jMs7YAJOhzZP3bGdrbXGt5dYv8_t_rhpHzpcQ.woff2 +0 -0
  4. package/dashboard/.output/public/_fonts/3mk1pEYaO7RuhctnlpKcyb7yjVLICedncSfY13ffbM8-vJidvBvYJRk77_zQIyVpja44ymm1FQTiYKUcM_aD5Sg.woff2 +0 -0
  5. package/dashboard/.output/public/_fonts/9FWLUGCSCYLRIRMtCzLrt4Go7DMFXOeN_pyCOJD_44Y-Yh2wNaqrq_e759vVlc3tX81lMwRu9ktkQJX_Svgs-VI.woff2 +0 -0
  6. package/dashboard/.output/public/_fonts/9IZYb3o3tpRXPqjzNd4r3vIIohLuRBC5-h_ByvqRowU-ZgMUMfi6FcHpaV_ucYIWcBvLG6geajFq70Smps0DAj0.woff2 +0 -0
  7. package/dashboard/.output/public/_fonts/AA0_6TP-Ed9gQINhOsvbweBE3xLQgxmg6pXqHmvCwsM-egZLwYC5qVnfGWql7G5NfYTIiMP1PB_tQWIq5f7S-0k.woff2 +0 -0
  8. package/dashboard/.output/public/_fonts/BQnDL9FFy0Q_jvURlmv87luvmXLSMbSuXsfZv_R2Rkk-y5MVrLtP4J_1al8rz8R-MDaUOMAHckAWCwDrKhw25fY.woff2 +0 -0
  9. package/dashboard/.output/public/_fonts/Df7M9JXECnQBPeMk0JlWv5oI4E80OSjKvG82PCAX-MI-aXpKyr1n0W6NWbCApKANrm9O50H_fjFMdBzwfTY75iM.woff2 +0 -0
  10. package/dashboard/.output/public/_fonts/F00Bxq4ciZESODR5suhK3xDWcsQ9RLj9SyZQEevpEsw-BLNEvb6wAcL3fpb4n4d3zVEKUoa2hsUKxxkf3YdvJKc.woff2 +0 -0
  11. package/dashboard/.output/public/_fonts/HsvEuay0nMOs_2ObxMGaCaFlKdRnnDmfWeFTeRbjAVE-UeGuS_NHKiKleun7gcayWaUNaV2zWnEeGUxJVueLYm0.woff +0 -0
  12. package/dashboard/.output/public/_fonts/JSrPAbQHsQEdUrIE5Ts6fIQ2ymsa4i7HhiCpui6ulCc-_AoyGWssOn06OMh3ZY_GddBBPRny4Igxin4fT_1K6F4.woff2 +0 -0
  13. package/dashboard/.output/public/_fonts/Jtqhy44WKYEjGWTSusP5YJfJv7Wf74QqgkBOI9u_77s-Rl_Bht5SvmaotE20bkavBEAJEEGEa0hcz3d_8yOeXmw.woff +0 -0
  14. package/dashboard/.output/public/_fonts/KOrIgK47CByspZJWjOLg8AL2ADg9uFcNjZd9W78jrmM-dU37DP77KwUzMqqldljJHhSe3lJpaSfI9HPfiVAxPOM.woff2 +0 -0
  15. package/dashboard/.output/public/_fonts/M-60tFLmAJxdPjHsK-2ILWom5zPbu37lb3Qex2waL14-A9y4QcXALPi_RvQsmRsSFUxrT3_J213W4zPFIXetlbw.woff2 +0 -0
  16. package/dashboard/.output/public/_fonts/NwLHmPccLrJlBVGp4QRXOLZaNI0M_K6XuSwyVjpr47g-jl4tqz8gcsgAJDPcbl5roY78zy31I6Rq51WBLpZngFg.woff2 +0 -0
  17. package/dashboard/.output/public/_fonts/T-ozk-QJ_Ck37B2RHPl2i-s_gAGGo7suFgagWoJ8bO4-maDXQ_nEXKAaLHm4Joud3DJR9EVzS7QXWMWK8YOTIcs.woff2 +0 -0
  18. package/dashboard/.output/public/_fonts/TTYbISAfwy-y4uVGS9AH32sK7b2xJsoCESo64ryf8LU-y87nRMqBGo42rUOW9tWZa06o4oTa0USJrAMMoKDamgs.woff2 +0 -0
  19. package/dashboard/.output/public/_fonts/Y_5DOsLit49q2i2tbcNxnyUen9__GPCX8mwAi03q1aA-pBCjVKDT5tBT3BJckh9uzNkfUWeUIBPz9Y8T55vcj8E.woff2 +0 -0
  20. package/dashboard/.output/public/_fonts/ZHaz3DhCHNWhsElqYfuM71rfBBDgjuU2sd34vaYJwQg-71NZaZSGjxzAGjCMnCc2zS5rS_EGA0xHKPGCggWuXik.woff +0 -0
  21. package/dashboard/.output/public/_fonts/_lyVj3lEzRng_G7gZNcCmL83BnMEos-Hf8bpHLMzGQI-zsVE1T2QbmkXlEbQhs2gb3j3VBOOGhzqyW_ZW_0s3F8.woff2 +0 -0
  22. package/dashboard/.output/public/_fonts/bUcXp2ExGsFoCjH4L_AiPGX0TLCAgnqR8nvW7SxSJYQ-kvm9UWc_MFZW_r85yX6uPdzXVmdcUOio_Wb1x_7QdXM.woff2 +0 -0
  23. package/dashboard/.output/public/_fonts/f3COenLcoezM74LmVz7-HHQTyPKopVoMY6x2syLMzQE-shPZYE7IAjZWz4okT_CWn96WfGzoLhasK43_mhj3CZI.woff2 +0 -0
  24. package/dashboard/.output/public/_fonts/h9PwCjip_BNPVO50hT4v29USWFv6H3ZlYx_IestfqgY-sYfLVuZXl9E1aYbn1S0pAr4zfdQ_WT7iBZhrgQY6N-4.woff2 +0 -0
  25. package/dashboard/.output/public/_fonts/l00UCz_-QvI_NO8AGcu7ooAcrFDlxYUdxCSCh6gBwd4-vPjTZ3ztgw27A2TnHeCycxPvUtXWEVpG33_97ra6su8.woff2 +0 -0
  26. package/dashboard/.output/public/_fonts/nuenOq7ZFSZ65QudJO7uQ0sOjDqow2WjfXrQh4S9gEc-uF81rxcswER5srfhzyLfPoGlKNAIt2C_BvkXFOc19rw.woff2 +0 -0
  27. package/dashboard/.output/public/_fonts/pWMvGwciZ-EfQsfR2ueelhC7Jnt5K-8Px8PjPK0mDII-eT9iD0iZ9WWhTJs6V5GxXr0iaUwx_WxgGGriOiGb81o.woff2 +0 -0
  28. package/dashboard/.output/public/_fonts/sqxfSu-14RfawvZSbzb3mPoBYaXxmTGIac1Kk0GVk_w-oe_5KiWXPVdvpURHWSiaIjA1N_zLqpjSzmfpwRHr7CQ.woff2 +0 -0
  29. package/dashboard/.output/public/_fonts/wMdBqIWtsuS5eTYXRFwACf6n6oW2h-j42f90vWIPIO8-vrVOc_lrScYZMKO0_R3igKLheJfV2qZ3c5qlWOY0LDQ.woff +0 -0
  30. package/dashboard/.output/public/_fonts/y3mP_zJcojQwJn30TpF_XxDzgeM6Nbk7MaRg1Ne0YcI-lFx13nqMCMgk_S70gRmwEHXlE5BLp1B4W82RpFihpMs.woff2 +0 -0
  31. package/dashboard/.output/public/_fonts/zr3WxpLd5PmlBr7e4PWGkhZv6XTg70Pi4sCbC-CEV0Q-v2yL98XOiD3FkbiYlYYeAeTSVSkgAckeOp55Q5kHJmU.woff2 +0 -0
  32. package/dashboard/.output/public/_nuxt/B0Bu7wg2.js +1 -0
  33. package/dashboard/.output/public/_nuxt/BNBS3IWx.js +1 -0
  34. package/dashboard/.output/public/_nuxt/Ba3u15ft.js +1 -0
  35. package/dashboard/.output/public/_nuxt/CH7yjz82.js +4 -0
  36. package/dashboard/.output/public/_nuxt/COkkU9In.js +1 -0
  37. package/dashboard/.output/public/_nuxt/C_XEhq4z.js +1 -0
  38. package/dashboard/.output/public/_nuxt/YOlRD-cU.js +1 -0
  39. package/dashboard/.output/public/_nuxt/_id_.Dz86UAW3.css +1 -0
  40. package/dashboard/.output/public/_nuxt/builds/latest.json +1 -0
  41. package/dashboard/.output/public/_nuxt/builds/meta/a6e303b2-379a-45a9-8bdf-906e96134fda.json +1 -0
  42. package/dashboard/.output/public/_nuxt/entry.D51cHmax.css +1 -0
  43. package/dashboard/.output/public/_nuxt/error-404.C3kT2QX-.css +1 -0
  44. package/dashboard/.output/public/_nuxt/error-500.BW0Y54Of.css +1 -0
  45. package/dashboard/.output/public/_nuxt/fpe_5SoV.js +1 -0
  46. package/dashboard/.output/server/chunks/_/db.mjs +27 -0
  47. package/dashboard/.output/server/chunks/_/db.mjs.map +1 -0
  48. package/dashboard/.output/server/chunks/_/error-500.mjs +19 -0
  49. package/dashboard/.output/server/chunks/_/error-500.mjs.map +1 -0
  50. package/dashboard/.output/server/chunks/build/_id_-CQaF66RF.mjs +139 -0
  51. package/dashboard/.output/server/chunks/build/_id_-CQaF66RF.mjs.map +1 -0
  52. package/dashboard/.output/server/chunks/build/_id_-styles.DKwggH1p.mjs +8 -0
  53. package/dashboard/.output/server/chunks/build/_id_-styles.DKwggH1p.mjs.map +1 -0
  54. package/dashboard/.output/server/chunks/build/app-styles.nHRnXOH3.mjs +25 -0
  55. package/dashboard/.output/server/chunks/build/app-styles.nHRnXOH3.mjs.map +1 -0
  56. package/dashboard/.output/server/chunks/build/client.precomputed.mjs +4 -0
  57. package/dashboard/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
  58. package/dashboard/.output/server/chunks/build/composables-lps5heb5.mjs +23 -0
  59. package/dashboard/.output/server/chunks/build/composables-lps5heb5.mjs.map +1 -0
  60. package/dashboard/.output/server/chunks/build/error-404-D0Xi6cQ6.mjs +92 -0
  61. package/dashboard/.output/server/chunks/build/error-404-D0Xi6cQ6.mjs.map +1 -0
  62. package/dashboard/.output/server/chunks/build/error-404-styles.C8lgdT6t.mjs +8 -0
  63. package/dashboard/.output/server/chunks/build/error-404-styles.C8lgdT6t.mjs.map +1 -0
  64. package/dashboard/.output/server/chunks/build/error-500-DabQpmqy.mjs +75 -0
  65. package/dashboard/.output/server/chunks/build/error-500-DabQpmqy.mjs.map +1 -0
  66. package/dashboard/.output/server/chunks/build/error-500-styles.Ccrcwcfa.mjs +8 -0
  67. package/dashboard/.output/server/chunks/build/error-500-styles.Ccrcwcfa.mjs.map +1 -0
  68. package/dashboard/.output/server/chunks/build/fetch-BlczD9wj.mjs +503 -0
  69. package/dashboard/.output/server/chunks/build/fetch-BlczD9wj.mjs.map +1 -0
  70. package/dashboard/.output/server/chunks/build/index-C-zhU_b9.mjs +174 -0
  71. package/dashboard/.output/server/chunks/build/index-C-zhU_b9.mjs.map +1 -0
  72. package/dashboard/.output/server/chunks/build/index-Dnk7jknb.mjs +154 -0
  73. package/dashboard/.output/server/chunks/build/index-Dnk7jknb.mjs.map +1 -0
  74. package/dashboard/.output/server/chunks/build/server.mjs +1552 -0
  75. package/dashboard/.output/server/chunks/build/server.mjs.map +1 -0
  76. package/dashboard/.output/server/chunks/build/styles.mjs +10 -0
  77. package/dashboard/.output/server/chunks/build/styles.mjs.map +1 -0
  78. package/dashboard/.output/server/chunks/nitro/nitro.mjs +5497 -0
  79. package/dashboard/.output/server/chunks/nitro/nitro.mjs.map +1 -0
  80. package/dashboard/.output/server/chunks/routes/api/lessons/_id_.get.mjs +35 -0
  81. package/dashboard/.output/server/chunks/routes/api/lessons/_id_.get.mjs.map +1 -0
  82. package/dashboard/.output/server/chunks/routes/api/lessons.get.mjs +64 -0
  83. package/dashboard/.output/server/chunks/routes/api/lessons.get.mjs.map +1 -0
  84. package/dashboard/.output/server/chunks/routes/api/stats.get.mjs +59 -0
  85. package/dashboard/.output/server/chunks/routes/api/stats.get.mjs.map +1 -0
  86. package/dashboard/.output/server/chunks/routes/renderer.mjs +458 -0
  87. package/dashboard/.output/server/chunks/routes/renderer.mjs.map +1 -0
  88. package/dashboard/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  89. package/dashboard/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  90. package/dashboard/.output/server/index.mjs +10 -0
  91. package/dashboard/.output/server/index.mjs.map +1 -0
  92. package/dashboard/.output/server/node_modules/@babel/parser/lib/index.js +14599 -0
  93. package/dashboard/.output/server/node_modules/@babel/parser/package.json +50 -0
  94. package/dashboard/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6759 -0
  95. package/dashboard/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  96. package/dashboard/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
  97. package/dashboard/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  98. package/dashboard/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
  99. package/dashboard/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  100. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/api.js +2 -0
  101. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/app.js +2 -0
  102. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/component.js +2 -0
  103. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/context.js +2 -0
  104. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/hooks.js +2 -0
  105. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/index.js +22 -0
  106. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/util.js +2 -0
  107. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/const.js +5 -0
  108. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/env.js +17 -0
  109. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/index.js +45 -0
  110. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/plugin.js +2 -0
  111. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/proxy.js +111 -0
  112. package/dashboard/.output/server/node_modules/@vue/devtools-api/lib/cjs/time.js +28 -0
  113. package/dashboard/.output/server/node_modules/@vue/devtools-api/package.json +37 -0
  114. package/dashboard/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1899 -0
  115. package/dashboard/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  116. package/dashboard/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6940 -0
  117. package/dashboard/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  118. package/dashboard/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1822 -0
  119. package/dashboard/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  120. package/dashboard/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +896 -0
  121. package/dashboard/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
  122. package/dashboard/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +604 -0
  123. package/dashboard/.output/server/node_modules/@vue/shared/package.json +47 -0
  124. package/dashboard/.output/server/node_modules/devalue/index.js +4 -0
  125. package/dashboard/.output/server/node_modules/devalue/package.json +40 -0
  126. package/dashboard/.output/server/node_modules/devalue/src/base64.js +60 -0
  127. package/dashboard/.output/server/node_modules/devalue/src/constants.js +12 -0
  128. package/dashboard/.output/server/node_modules/devalue/src/parse.js +283 -0
  129. package/dashboard/.output/server/node_modules/devalue/src/stringify.js +401 -0
  130. package/dashboard/.output/server/node_modules/devalue/src/uneval.js +552 -0
  131. package/dashboard/.output/server/node_modules/devalue/src/utils.js +160 -0
  132. package/dashboard/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  133. package/dashboard/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  134. package/dashboard/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  135. package/dashboard/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  136. package/dashboard/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  137. package/dashboard/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  138. package/dashboard/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
  139. package/dashboard/.output/server/node_modules/entities/package.json +120 -0
  140. package/dashboard/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  141. package/dashboard/.output/server/node_modules/estree-walker/package.json +37 -0
  142. package/dashboard/.output/server/node_modules/hookable/dist/index.mjs +257 -0
  143. package/dashboard/.output/server/node_modules/hookable/package.json +53 -0
  144. package/dashboard/.output/server/node_modules/perfect-debounce/dist/index.mjs +89 -0
  145. package/dashboard/.output/server/node_modules/perfect-debounce/package.json +41 -0
  146. package/dashboard/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  147. package/dashboard/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  148. package/dashboard/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  149. package/dashboard/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  150. package/dashboard/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  151. package/dashboard/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  152. package/dashboard/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  153. package/dashboard/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  154. package/dashboard/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
  155. package/dashboard/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  156. package/dashboard/.output/server/node_modules/source-map-js/package.json +71 -0
  157. package/dashboard/.output/server/node_modules/source-map-js/source-map.js +8 -0
  158. package/dashboard/.output/server/node_modules/ufo/dist/index.mjs +645 -0
  159. package/dashboard/.output/server/node_modules/ufo/package.json +48 -0
  160. package/dashboard/.output/server/node_modules/unhead/dist/index.mjs +9 -0
  161. package/dashboard/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
  162. package/dashboard/.output/server/node_modules/unhead/dist/plugins.mjs +101 -0
  163. package/dashboard/.output/server/node_modules/unhead/dist/scripts.mjs +30 -0
  164. package/dashboard/.output/server/node_modules/unhead/dist/server.mjs +180 -0
  165. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.B3VbJo7Y.mjs +207 -0
  166. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
  167. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +269 -0
  168. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.CaI5ZD4O.mjs +182 -0
  169. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
  170. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.D4vSFytZ.mjs +236 -0
  171. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
  172. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.Dh1cQCTe.mjs +44 -0
  173. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.TxTMM7cM.mjs +166 -0
  174. package/dashboard/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
  175. package/dashboard/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
  176. package/dashboard/.output/server/node_modules/unhead/package.json +105 -0
  177. package/dashboard/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  178. package/dashboard/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  179. package/dashboard/.output/server/node_modules/vue/index.js +7 -0
  180. package/dashboard/.output/server/node_modules/vue/index.mjs +1 -0
  181. package/dashboard/.output/server/node_modules/vue/package.json +112 -0
  182. package/dashboard/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  183. package/dashboard/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +249 -0
  184. package/dashboard/.output/server/node_modules/vue-bundle-renderer/package.json +57 -0
  185. package/dashboard/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs +1220 -0
  186. package/dashboard/.output/server/node_modules/vue-router/dist/vue-router.mjs +1557 -0
  187. package/dashboard/.output/server/node_modules/vue-router/package.json +153 -0
  188. package/dashboard/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
  189. package/dashboard/.output/server/package.json +29 -0
  190. package/dist/cli/commands/dashboard.d.ts +2 -0
  191. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  192. package/dist/cli/commands/dashboard.js +30 -0
  193. package/dist/cli/commands/dashboard.js.map +1 -0
  194. package/dist/cli/index.js +5 -0
  195. package/dist/cli/index.js.map +1 -1
  196. package/dist/index.js +0 -0
  197. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/destr/dist/index.mjs","../../../../node_modules/ufo/dist/index.mjs","../../../../node_modules/radix3/dist/index.mjs","../../../../node_modules/defu/dist/defu.mjs","../../../../node_modules/node-mock-http/dist/index.mjs","../../../../node_modules/h3/dist/index.mjs","../../../../node_modules/nitropack/node_modules/hookable/dist/index.mjs","../../../../node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../node_modules/ofetch/dist/node.mjs","../../../../node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../../../../node_modules/unstorage/dist/index.mjs","../../../../node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/ohash/dist/shared/ohash.D__AXeF1.mjs","../../../../node_modules/ohash/dist/crypto/node/index.mjs","../../../../node_modules/ohash/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/klona/dist/index.mjs","../../../../node_modules/scule/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/unctx/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/context.mjs","../../../../node_modules/nitropack/dist/runtime/internal/route-rules-utils.mjs","../../../../node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/error.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs","../../../../node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../node_modules/nitropack/dist/runtime/internal/shutdown.mjs","../../../../node_modules/nitropack/dist/presets/node/runtime/node-server.mjs"],"names":["getQuery","createRouter","f","h","c","i","l","createError","mergeHeaders","s","nodeFetch","Headers","Headers$1","AbortController$1","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","serialize","hash","_inlineAppConfig","createRadixRouter","nitroApp","callNodeRequestHandler","fetchNodeRequestHandler","gracefulShutdown","HttpsServer","HttpServer"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]}
@@ -0,0 +1,35 @@
1
+ import { d as defineEventHandler, a as getRouterParam, c as createError } from '../../../nitro/nitro.mjs';
2
+ import { g as getAtharDb } from '../../../_/db.mjs';
3
+ import 'node:http';
4
+ import 'node:https';
5
+ import 'node:events';
6
+ import 'node:buffer';
7
+ import 'node:fs';
8
+ import 'node:path';
9
+ import 'node:crypto';
10
+ import 'node:url';
11
+ import 'node:sqlite';
12
+ import 'node:os';
13
+
14
+ const _id__get = defineEventHandler((event) => {
15
+ try {
16
+ const db = getAtharDb();
17
+ const id = getRouterParam(event, "id");
18
+ const lesson = db.prepare(`
19
+ SELECT * FROM lessons WHERE id = ?
20
+ `).get(id);
21
+ if (!lesson) {
22
+ throw createError({ statusCode: 404, message: "Lesson not found" });
23
+ }
24
+ return lesson;
25
+ } catch (err) {
26
+ if (err.statusCode) throw err;
27
+ throw createError({
28
+ statusCode: 500,
29
+ message: err.message || "Failed to fetch lesson"
30
+ });
31
+ }
32
+ });
33
+
34
+ export { _id__get as default };
35
+ //# sourceMappingURL=_id_.get.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_id_.get.mjs","sources":["../../../../../../server/api/lessons/[id].get.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,iBAAA,kBAAA,CAAA,CAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,UAAA,EAAA;AACA,IAAA,MAAA,EAAA,GAAA,cAAA,CAAA,KAAA,EAAA,IAAA,CAAA;AAEA,IAAA,MAAA,MAAA,GAAA,GAAA,OAAA,CAAA;AAAA;AAAA,IAAA,CAEA,CAAA,CAAA,IAAA,EAAA,CAAA;AAEA,IAAA,IAAA,CAAA,MAAA,EAAA;AACA,MAAA,MAAA,YAAA,EAAA,UAAA,EAAA,GAAA,EAAA,OAAA,EAAA,oBAAA,CAAA;AAAA,IACA;AAEA,IAAA,OAAA,MAAA;AAAA,EACA,SAAA,GAAA,EAAA;AACA,IAAA,IAAA,GAAA,CAAA,YAAA,MAAA,GAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,OAAA,EAAA,IAAA,OAAA,IAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -0,0 +1,64 @@
1
+ import { d as defineEventHandler, g as getQuery, c as createError } from '../../nitro/nitro.mjs';
2
+ import { g as getAtharDb } from '../../_/db.mjs';
3
+ import 'node:http';
4
+ import 'node:https';
5
+ import 'node:events';
6
+ import 'node:buffer';
7
+ import 'node:fs';
8
+ import 'node:path';
9
+ import 'node:crypto';
10
+ import 'node:url';
11
+ import 'node:sqlite';
12
+ import 'node:os';
13
+
14
+ const lessons_get = defineEventHandler((event) => {
15
+ try {
16
+ const db = getAtharDb();
17
+ const query = getQuery(event);
18
+ const status = query.status;
19
+ const tag = query.tag;
20
+ const search = query.search;
21
+ const language = query.language;
22
+ const limit = parseInt(query.limit) || 50;
23
+ let sql = `
24
+ SELECT id, title, problem, root_cause, lesson,
25
+ tags, language, status, review_count,
26
+ interval_days, next_review_at, created_at
27
+ FROM lessons
28
+ `;
29
+ const conditions = [];
30
+ const params = [];
31
+ if (status) {
32
+ conditions.push("status = ?");
33
+ params.push(status);
34
+ }
35
+ if (tag) {
36
+ conditions.push("tags LIKE ?");
37
+ params.push(`%"${tag}"%`);
38
+ }
39
+ if (language) {
40
+ conditions.push("language = ?");
41
+ params.push(language);
42
+ }
43
+ if (search) {
44
+ conditions.push("(title LIKE ? OR problem LIKE ? OR root_cause LIKE ? OR lesson LIKE ?)");
45
+ const q = `%${search}%`;
46
+ params.push(q, q, q, q);
47
+ }
48
+ if (conditions.length > 0) {
49
+ sql += " WHERE " + conditions.join(" AND ");
50
+ }
51
+ sql += " ORDER BY created_at DESC LIMIT ?";
52
+ params.push(limit);
53
+ const lessons = db.prepare(sql).all(...params);
54
+ return lessons;
55
+ } catch (err) {
56
+ throw createError({
57
+ statusCode: 500,
58
+ message: err.message || "Failed to fetch lessons"
59
+ });
60
+ }
61
+ });
62
+
63
+ export { lessons_get as default };
64
+ //# sourceMappingURL=lessons.get.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lessons.get.mjs","sources":["../../../../../server/api/lessons.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,oBAAA,kBAAA,CAAA,CAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,UAAA,EAAA;AAEA,IAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,IAAA,MAAA,SAAA,KAAA,CAAA,MAAA;AACA,IAAA,MAAA,MAAA,KAAA,CAAA,GAAA;AACA,IAAA,MAAA,SAAA,KAAA,CAAA,MAAA;AACA,IAAA,MAAA,WAAA,KAAA,CAAA,QAAA;AACA,IAAA,MAAA,KAAA,GAAA,QAAA,CAAA,KAAA,CAAA,KAAA,CAAA,IAAA,EAAA;AAEA,IAAA,IAAA,GAAA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAMA,IAAA,MAAA,aAAA,EAAA;AACA,IAAA,MAAA,SAAA,EAAA;AAEA,IAAA,IAAA,MAAA,EAAA;AACA,MAAA,UAAA,CAAA,KAAA,YAAA,CAAA;AACA,MAAA,MAAA,CAAA,KAAA,MAAA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,GAAA,EAAA;AACA,MAAA,UAAA,CAAA,KAAA,aAAA,CAAA;AACA,MAAA,MAAA,CAAA,IAAA,CAAA,CAAA,EAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,QAAA,EAAA;AACA,MAAA,UAAA,CAAA,KAAA,cAAA,CAAA;AACA,MAAA,MAAA,CAAA,KAAA,QAAA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,MAAA,EAAA;AACA,MAAA,UAAA,CAAA,KAAA,wEAAA,CAAA;AACA,MAAA,MAAA,CAAA,GAAA,IAAA,MAAA,CAAA,CAAA,CAAA;AACA,MAAA,MAAA,CAAA,IAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,UAAA,CAAA,SAAA,CAAA,EAAA;AACA,MAAA,GAAA,IAAA,SAAA,GAAA,UAAA,CAAA,IAAA,CAAA,OAAA,CAAA;AAAA,IACA;AAEA,IAAA,GAAA,IAAA,mCAAA;AACA,IAAA,MAAA,CAAA,KAAA,KAAA,CAAA;AAEA,IAAA,MAAA,UAAA,EAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,CAAA,GAAA,MAAA,CAAA;AACA,IAAA,OAAA,OAAA;AAAA,EACA,SAAA,GAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,OAAA,EAAA,IAAA,OAAA,IAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -0,0 +1,59 @@
1
+ import { d as defineEventHandler, c as createError } from '../../nitro/nitro.mjs';
2
+ import { g as getAtharDb } from '../../_/db.mjs';
3
+ import 'node:http';
4
+ import 'node:https';
5
+ import 'node:events';
6
+ import 'node:buffer';
7
+ import 'node:fs';
8
+ import 'node:path';
9
+ import 'node:crypto';
10
+ import 'node:url';
11
+ import 'node:sqlite';
12
+ import 'node:os';
13
+
14
+ const stats_get = defineEventHandler(() => {
15
+ try {
16
+ const db = getAtharDb();
17
+ const total = db.prepare("SELECT COUNT(*) as c FROM lessons").get().c;
18
+ const now = (/* @__PURE__ */ new Date()).toISOString();
19
+ const weekFromNow = /* @__PURE__ */ new Date();
20
+ weekFromNow.setDate(weekFromNow.getDate() + 7);
21
+ const dueToday = db.prepare(
22
+ "SELECT COUNT(*) as c FROM lessons WHERE next_review_at <= ? OR next_review_at IS NULL"
23
+ ).get(now).c;
24
+ const dueThisWeek = db.prepare(
25
+ "SELECT COUNT(*) as c FROM lessons WHERE next_review_at <= ?"
26
+ ).get(weekFromNow.toISOString()).c;
27
+ const statusRows = db.prepare(
28
+ "SELECT status, COUNT(*) as c FROM lessons GROUP BY status"
29
+ ).all();
30
+ const byStatus = {};
31
+ for (const row of statusRows) {
32
+ byStatus[row.status] = row.c;
33
+ }
34
+ const allTags = db.prepare("SELECT tags FROM lessons").all();
35
+ const tagCounts = /* @__PURE__ */ new Map();
36
+ for (const row of allTags) {
37
+ try {
38
+ const tags = JSON.parse(row.tags || "[]");
39
+ for (const tag of tags) {
40
+ tagCounts.set(tag, (tagCounts.get(tag) || 0) + 1);
41
+ }
42
+ } catch {
43
+ }
44
+ }
45
+ const topTags = [...tagCounts.entries()].sort((a, b) => b[1] - a[1]).slice(0, 10).map(([tag, count]) => ({ tag, count }));
46
+ const languages = db.prepare(
47
+ "SELECT language, COUNT(*) as c FROM lessons WHERE language IS NOT NULL GROUP BY language ORDER BY c DESC"
48
+ ).all();
49
+ return { total, dueToday, dueThisWeek, byStatus, topTags, languages };
50
+ } catch (err) {
51
+ throw createError({
52
+ statusCode: 500,
53
+ message: err.message || "Failed to fetch stats"
54
+ });
55
+ }
56
+ });
57
+
58
+ export { stats_get as default };
59
+ //# sourceMappingURL=stats.get.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.get.mjs","sources":["../../../../../server/api/stats.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,kBAAA,mBAAA,MAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,UAAA,EAAA;AAEA,IAAA,MAAA,QAAA,EAAA,CAAA,OAAA,CAAA,mCAAA,CAAA,CAAA,KAAA,CAAA,CAAA;AAEA,IAAA,MAAA,GAAA,GAAA,iBAAA,IAAA,IAAA,EAAA,EAAA,WAAA,EAAA;AACA,IAAA,MAAA,WAAA,uBAAA,IAAA,EAAA;AACA,IAAA,WAAA,CAAA,OAAA,CAAA,WAAA,CAAA,OAAA,EAAA,GAAA,CAAA,CAAA;AAEA,IAAA,MAAA,WAAA,EAAA,CAAA,OAAA;AAAA,MACA;AAAA,KACA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AAEA,IAAA,MAAA,cAAA,EAAA,CAAA,OAAA;AAAA,MACA;AAAA,KACA,CAAA,GAAA,CAAA,WAAA,CAAA,WAAA,EAAA,CAAA,CAAA,CAAA;AAEA,IAAA,MAAA,aAAA,EAAA,CAAA,OAAA;AAAA,MACA;AAAA,MACA,GAAA,EAAA;AAEA,IAAA,MAAA,WAAA,EAAA;AACA,IAAA,KAAA,MAAA,OAAA,UAAA,EAAA;AACA,MAAA,QAAA,CAAA,GAAA,CAAA,MAAA,CAAA,GAAA,GAAA,CAAA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,EAAA,CAAA,OAAA,CAAA,0BAAA,EAAA,GAAA,EAAA;AACA,IAAA,MAAA,SAAA,uBAAA,GAAA,EAAA;AACA,IAAA,KAAA,MAAA,OAAA,OAAA,EAAA;AACA,MAAA,IAAA;AACA,QAAA,MAAA,IAAA,GAAA,IAAA,CAAA,KAAA,CAAA,GAAA,CAAA,QAAA,IAAA,CAAA;AACA,QAAA,KAAA,MAAA,OAAA,IAAA,EAAA;AACA,UAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,SAAA,CAAA,IAAA,GAAA,CAAA,IAAA,KAAA,CAAA,CAAA;AAAA,QACA;AAAA,MACA,CAAA,CAAA,MAAA;AAAA,MAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,CAAA,GAAA,SAAA,CAAA,OAAA,EAAA,CAAA,CACA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,KAAA,CAAA,CAAA,EAAA,EAAA,EACA,GAAA,CAAA,CAAA,CAAA,GAAA,EAAA,KAAA,CAAA,MAAA,EAAA,GAAA,EAAA,OAAA,CAAA,CAAA;AAEA,IAAA,MAAA,YAAA,EAAA,CAAA,OAAA;AAAA,MACA;AAAA,MACA,GAAA,EAAA;AAEA,IAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,SAAA,SAAA,EAAA;AAAA,EACA,SAAA,GAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,OAAA,EAAA,IAAA,OAAA,IAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -0,0 +1,458 @@
1
+ import { createRenderer, getRequestDependencies, getPreloadLinks, getPrefetchLinks } from 'vue-bundle-renderer/runtime';
2
+ import { j as joinRelativeURL, u as useRuntimeConfig, e as encodePath, b as defineRenderHandler, g as getQuery, c as createError, f as destr, h as getRouteRules, i as getResponseStatusText, k as getResponseStatus, l as useNitroApp } from '../nitro/nitro.mjs';
3
+ import { renderToString } from 'vue/server-renderer';
4
+ import { createHead as createHead$1, propsToString, renderSSRHead } from 'unhead/server';
5
+ import { stringify, uneval } from 'devalue';
6
+ import { walkResolver } from 'unhead/utils';
7
+ import { isRef, toValue, hasInjectionContext, inject, ref, watchEffect, getCurrentInstance, onBeforeUnmount, onDeactivated, onActivated } from 'vue';
8
+
9
+ const VueResolver = (_, value) => {
10
+ return isRef(value) ? toValue(value) : value;
11
+ };
12
+
13
+ const headSymbol = "usehead";
14
+ // @__NO_SIDE_EFFECTS__
15
+ function vueInstall(head) {
16
+ const plugin = {
17
+ install(app) {
18
+ app.config.globalProperties.$unhead = head;
19
+ app.config.globalProperties.$head = head;
20
+ app.provide(headSymbol, head);
21
+ }
22
+ };
23
+ return plugin.install;
24
+ }
25
+
26
+ // @__NO_SIDE_EFFECTS__
27
+ function injectHead() {
28
+ if (hasInjectionContext()) {
29
+ const instance = inject(headSymbol);
30
+ if (instance) {
31
+ return instance;
32
+ }
33
+ }
34
+ throw new Error("useHead() was called without provide context, ensure you call it through the setup() function.");
35
+ }
36
+ function useHead(input, options = {}) {
37
+ const head = options.head || /* @__PURE__ */ injectHead();
38
+ return head.ssr ? head.push(input || {}, options) : clientUseHead(head, input, options);
39
+ }
40
+ function clientUseHead(head, input, options = {}) {
41
+ const deactivated = ref(false);
42
+ let entry;
43
+ watchEffect(() => {
44
+ const i = deactivated.value ? {} : walkResolver(input, VueResolver);
45
+ if (entry) {
46
+ entry.patch(i);
47
+ } else {
48
+ entry = head.push(i, options);
49
+ }
50
+ });
51
+ const vm = getCurrentInstance();
52
+ if (vm) {
53
+ onBeforeUnmount(() => {
54
+ entry.dispose();
55
+ });
56
+ onDeactivated(() => {
57
+ deactivated.value = true;
58
+ });
59
+ onActivated(() => {
60
+ deactivated.value = false;
61
+ });
62
+ }
63
+ return entry;
64
+ }
65
+
66
+ // @__NO_SIDE_EFFECTS__
67
+ function createHead(options = {}) {
68
+ const head = createHead$1({
69
+ ...options,
70
+ propResolvers: [VueResolver]
71
+ });
72
+ head.install = vueInstall(head);
73
+ return head;
74
+ }
75
+
76
+ const NUXT_RUNTIME_PAYLOAD_EXTRACTION = false;
77
+
78
+ const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"},{"name":"description","content":"Programming lesson memory dashboard — Track your coding lessons with spaced repetition"},{"name":"theme-color","content":"#0a0a0f"}],"link":[],"style":[],"script":[],"noscript":[],"title":"Athar — أثر Dashboard","htmlAttrs":{"lang":"en","dir":"ltr"}};
79
+
80
+ const appRootTag = "div";
81
+
82
+ const appRootAttrs = {"id":"__nuxt"};
83
+
84
+ const appTeleportTag = "div";
85
+
86
+ const appTeleportAttrs = {"id":"teleports"};
87
+
88
+ const appSpaLoaderTag = "div";
89
+
90
+ const appSpaLoaderAttrs = {"id":"__nuxt-loader"};
91
+
92
+ const appId = "nuxt-app";
93
+
94
+ function baseURL() {
95
+
96
+ return useRuntimeConfig().app.baseURL;
97
+ }
98
+ function buildAssetsDir() {
99
+
100
+ return useRuntimeConfig().app.buildAssetsDir;
101
+ }
102
+ function buildAssetsURL(...path) {
103
+ return joinRelativeURL(publicAssetsURL(), buildAssetsDir(), ...path);
104
+ }
105
+ function publicAssetsURL(...path) {
106
+
107
+ const app = useRuntimeConfig().app;
108
+ const publicBase = app.cdnURL || app.baseURL;
109
+ return path.length ? joinRelativeURL(publicBase, ...path) : publicBase;
110
+ }
111
+
112
+ // @ts-expect-error private property consumed by vite-generated url helpers
113
+ globalThis.__buildAssetsURL = buildAssetsURL;
114
+ // @ts-expect-error private property consumed by vite-generated url helpers
115
+ globalThis.__publicAssetsURL = publicAssetsURL;
116
+ const APP_ROOT_OPEN_TAG = `<${appRootTag}${propsToString(appRootAttrs)}>`;
117
+ const APP_ROOT_CLOSE_TAG = `</${appRootTag}>`;
118
+ // @ts-expect-error file will be produced after app build
119
+ const getServerEntry = () => import('../build/server.mjs').then((r) => r.default || r);
120
+ // @ts-expect-error file will be produced after app build
121
+ const getPrecomputedDependencies = () => import('../build/client.precomputed.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
122
+
123
+ const getSSRRenderer = lazyCachedFunction(async () => {
124
+
125
+ const createSSRApp = await getServerEntry();
126
+ if (!createSSRApp) {
127
+ throw new Error("Server bundle is not available");
128
+ }
129
+
130
+ const precomputed = await getPrecomputedDependencies();
131
+
132
+ const renderer = createRenderer(createSSRApp, {
133
+ precomputed,
134
+ manifest: undefined,
135
+ renderToString: renderToString$1,
136
+ buildAssetsURL
137
+ });
138
+ async function renderToString$1(input, context) {
139
+ const html = await renderToString(input, context);
140
+ return APP_ROOT_OPEN_TAG + html + APP_ROOT_CLOSE_TAG;
141
+ }
142
+ return renderer;
143
+ });
144
+
145
+ const getSPARenderer = lazyCachedFunction(async () => {
146
+ const precomputed = await getPrecomputedDependencies();
147
+ // @ts-expect-error virtual file
148
+ const spaTemplate = await import('../virtual/_virtual_spa-template.mjs').then((r) => r.template).catch(() => "").then((r) => {
149
+ {
150
+ const APP_SPA_LOADER_OPEN_TAG = `<${appSpaLoaderTag}${propsToString(appSpaLoaderAttrs)}>`;
151
+ const APP_SPA_LOADER_CLOSE_TAG = `</${appSpaLoaderTag}>`;
152
+ const appTemplate = APP_ROOT_OPEN_TAG + APP_ROOT_CLOSE_TAG;
153
+ const loaderTemplate = r ? APP_SPA_LOADER_OPEN_TAG + r + APP_SPA_LOADER_CLOSE_TAG : "";
154
+ return appTemplate + loaderTemplate;
155
+ }
156
+ });
157
+
158
+ const renderer = createRenderer(() => () => {}, {
159
+ precomputed,
160
+ manifest: undefined,
161
+ renderToString: () => spaTemplate,
162
+ buildAssetsURL
163
+ });
164
+ const result = await renderer.renderToString({});
165
+ const renderToString = (ssrContext) => {
166
+ const config = useRuntimeConfig(ssrContext.event);
167
+ ssrContext.modules ||= new Set();
168
+ ssrContext.payload.serverRendered = false;
169
+ ssrContext.config = {
170
+ public: config.public,
171
+ app: config.app
172
+ };
173
+ return Promise.resolve(result);
174
+ };
175
+ return {
176
+ rendererContext: renderer.rendererContext,
177
+ renderToString
178
+ };
179
+ });
180
+ function lazyCachedFunction(fn) {
181
+ let res = null;
182
+ return () => {
183
+ if (res === null) {
184
+ res = fn().catch((err) => {
185
+ res = null;
186
+ throw err;
187
+ });
188
+ }
189
+ return res;
190
+ };
191
+ }
192
+ function getRenderer(ssrContext) {
193
+ return ssrContext.noSSR ? getSPARenderer() : getSSRRenderer();
194
+ }
195
+ // @ts-expect-error file will be produced after app build
196
+ const getSSRStyles = lazyCachedFunction(() => import('../build/styles.mjs').then((r) => r.default || r));
197
+
198
+ function renderPayloadJsonScript(opts) {
199
+ const contents = opts.data ? encodeForwardSlashes(stringify(opts.data, opts.ssrContext["~payloadReducers"])) : "";
200
+ const payload = {
201
+ "type": "application/json",
202
+ "innerHTML": contents,
203
+ "data-nuxt-data": appId,
204
+ "data-ssr": !(opts.ssrContext.noSSR)
205
+ };
206
+ {
207
+ payload.id = "__NUXT_DATA__";
208
+ }
209
+ if (opts.src) {
210
+ payload["data-src"] = opts.src;
211
+ }
212
+ const config = uneval(opts.ssrContext.config);
213
+ return [payload, { innerHTML: `window.__NUXT__={};window.__NUXT__.config=${config}` }];
214
+ }
215
+
216
+ function encodeForwardSlashes(str) {
217
+ return str.replaceAll("/", "\\u002F");
218
+ }
219
+
220
+ const unheadOptions = {
221
+ disableDefaults: true,
222
+ };
223
+
224
+ function encodeEventPath(path) {
225
+ const queryIndex = path.indexOf("?");
226
+ if (queryIndex === -1) {
227
+ return encodePath(path);
228
+ }
229
+ return encodePath(path.slice(0, queryIndex)) + path.slice(queryIndex);
230
+ }
231
+ function createSSRContext(event) {
232
+ const url = encodeEventPath(event.path);
233
+ const ssrContext = {
234
+ url,
235
+ event,
236
+ runtimeConfig: useRuntimeConfig(event),
237
+ noSSR: event.context.nuxt?.noSSR || (false),
238
+ head: createHead(unheadOptions),
239
+ error: false,
240
+ nuxt: undefined,
241
+ payload: {},
242
+ ["~payloadReducers"]: Object.create(null),
243
+ modules: new Set()
244
+ };
245
+ return ssrContext;
246
+ }
247
+ function setSSRError(ssrContext, error) {
248
+ ssrContext.error = true;
249
+ ssrContext.payload = { error };
250
+ ssrContext.url = error.url;
251
+ }
252
+
253
+ async function renderInlineStyles(usedModules) {
254
+ const styleMap = await getSSRStyles();
255
+ const inlinedStyles = new Set();
256
+ for (const mod of usedModules) {
257
+ if (mod in styleMap && styleMap[mod]) {
258
+ for (const style of await styleMap[mod]()) {
259
+ inlinedStyles.add(style);
260
+ }
261
+ }
262
+ }
263
+ return Array.from(inlinedStyles).map((style) => ({ innerHTML: style }));
264
+ }
265
+
266
+ const renderSSRHeadOptions = {"omitLineBreaks":true};
267
+
268
+ const entryIds = [];
269
+
270
+ // @ts-expect-error private property consumed by vite-generated url helpers
271
+ globalThis.__buildAssetsURL = buildAssetsURL;
272
+ // @ts-expect-error private property consumed by vite-generated url helpers
273
+ globalThis.__publicAssetsURL = publicAssetsURL;
274
+ const HAS_APP_TELEPORTS = !!(appTeleportAttrs.id);
275
+ const APP_TELEPORT_OPEN_TAG = HAS_APP_TELEPORTS ? `<${appTeleportTag}${propsToString(appTeleportAttrs)}>` : "";
276
+ const APP_TELEPORT_CLOSE_TAG = HAS_APP_TELEPORTS ? `</${appTeleportTag}>` : "";
277
+ const handler = defineRenderHandler((event) => {
278
+
279
+ const ssrError = event.path.startsWith("/__nuxt_error") ? getQuery(event) : null;
280
+ if (ssrError && !("__unenv__" in event.node.req)) {
281
+ throw createError({
282
+ status: 404,
283
+ statusText: "Page Not Found: /__nuxt_error",
284
+ message: "Page Not Found: /__nuxt_error"
285
+ });
286
+ }
287
+ return renderRoute(event, ssrError);
288
+ });
289
+ async function renderRoute(event, ssrError) {
290
+ const nitroApp = useNitroApp();
291
+
292
+ const ssrContext = createSSRContext(event);
293
+
294
+ const headEntryOptions = { mode: "server" };
295
+ ssrContext.head.push(appHead, headEntryOptions);
296
+ if (ssrError) {
297
+
298
+ const status = ssrError.status || ssrError.statusCode;
299
+ if (status) {
300
+
301
+ ssrError.status = ssrError.statusCode = Number.parseInt(status);
302
+ }
303
+ if (typeof ssrError.data === "string") {
304
+ try {
305
+ ssrError.data = destr(ssrError.data);
306
+ } catch {}
307
+ }
308
+ setSSRError(ssrContext, ssrError);
309
+ }
310
+
311
+ const routeOptions = getRouteRules(event);
312
+ if (routeOptions.ssr === false) {
313
+ ssrContext.noSSR = true;
314
+ }
315
+
316
+ !ssrContext.noSSR && (NUXT_RUNTIME_PAYLOAD_EXTRACTION);
317
+
318
+ const renderer = await getRenderer(ssrContext);
319
+ {
320
+ for (const id of entryIds) {
321
+ ssrContext.modules.add(id);
322
+ }
323
+ }
324
+ const _rendered = await renderer.renderToString(ssrContext).catch(async (error) => {
325
+
326
+
327
+ if ((ssrContext["~renderResponse"] || ssrContext._renderResponse) && error.message === "skipping render") {
328
+ return {};
329
+ }
330
+
331
+ const _err = !ssrError && ssrContext.payload?.error || error;
332
+ await ssrContext.nuxt?.hooks.callHook("app:error", _err);
333
+ throw _err;
334
+ });
335
+
336
+
337
+ const inlinedStyles = !ssrContext["~renderResponse"] && !ssrContext._renderResponse && true ? await renderInlineStyles(ssrContext.modules ?? []) : [];
338
+ await ssrContext.nuxt?.hooks.callHook("app:rendered", {
339
+ ssrContext,
340
+ renderResult: _rendered
341
+ });
342
+ if (ssrContext["~renderResponse"] || ssrContext._renderResponse) {
343
+
344
+ return ssrContext["~renderResponse"] || ssrContext._renderResponse;
345
+ }
346
+
347
+ if (ssrContext.payload?.error && !ssrError) {
348
+ throw ssrContext.payload.error;
349
+ }
350
+ const NO_SCRIPTS = routeOptions.noScripts;
351
+
352
+ const { styles, scripts } = getRequestDependencies(ssrContext, renderer.rendererContext);
353
+
354
+ if (inlinedStyles.length) {
355
+ ssrContext.head.push({ style: inlinedStyles });
356
+ }
357
+ const link = [];
358
+ for (const resource of Object.values(styles)) {
359
+
360
+
361
+
362
+ link.push({
363
+ rel: "stylesheet",
364
+ href: renderer.rendererContext.buildAssetsURL(resource.file),
365
+ crossorigin: ""
366
+ });
367
+ }
368
+ if (link.length) {
369
+ ssrContext.head.push({ link }, headEntryOptions);
370
+ }
371
+ if (!NO_SCRIPTS) {
372
+
373
+
374
+
375
+ if (ssrContext["~lazyHydratedModules"]) {
376
+ for (const id of ssrContext["~lazyHydratedModules"]) {
377
+ ssrContext.modules?.delete(id);
378
+ }
379
+ }
380
+ ssrContext.head.push({ link: getPreloadLinks(ssrContext, renderer.rendererContext) }, headEntryOptions);
381
+ ssrContext.head.push({ link: getPrefetchLinks(ssrContext, renderer.rendererContext) }, headEntryOptions);
382
+
383
+ ssrContext.head.push({ script: renderPayloadJsonScript({
384
+ ssrContext,
385
+ data: ssrContext.payload
386
+ }) }, {
387
+ ...headEntryOptions,
388
+
389
+ tagPosition: "bodyClose",
390
+ tagPriority: "high"
391
+ });
392
+ }
393
+
394
+ if (!routeOptions.noScripts) {
395
+ const tagPosition = "head";
396
+ ssrContext.head.push({ script: Object.values(scripts).map((resource) => ({
397
+ type: resource.module ? "module" : null,
398
+ src: renderer.rendererContext.buildAssetsURL(resource.file),
399
+ defer: resource.module ? null : true,
400
+
401
+
402
+ tagPosition,
403
+ crossorigin: ""
404
+ })) }, headEntryOptions);
405
+ }
406
+ const { headTags, bodyTags, bodyTagsOpen, htmlAttrs, bodyAttrs } = await renderSSRHead(ssrContext.head, renderSSRHeadOptions);
407
+
408
+ const htmlContext = {
409
+ htmlAttrs: htmlAttrs ? [htmlAttrs] : [],
410
+ head: normalizeChunks([headTags]),
411
+ bodyAttrs: bodyAttrs ? [bodyAttrs] : [],
412
+ bodyPrepend: normalizeChunks([bodyTagsOpen, ssrContext.teleports?.body]),
413
+ body: [_rendered.html, APP_TELEPORT_OPEN_TAG + (HAS_APP_TELEPORTS ? joinTags([ssrContext.teleports?.[`#${appTeleportAttrs.id}`]]) : "") + APP_TELEPORT_CLOSE_TAG],
414
+ bodyAppend: [bodyTags]
415
+ };
416
+
417
+ await nitroApp.hooks.callHook("render:html", htmlContext, { event });
418
+
419
+ return {
420
+ body: renderHTMLDocument(htmlContext),
421
+ statusCode: getResponseStatus(event),
422
+ statusMessage: getResponseStatusText(event),
423
+ headers: {
424
+ "content-type": "text/html;charset=utf-8",
425
+ "x-powered-by": "Nuxt"
426
+ }
427
+ };
428
+ }
429
+ function normalizeChunks(chunks) {
430
+ const result = [];
431
+ for (const _chunk of chunks) {
432
+ const chunk = _chunk?.trim();
433
+ if (chunk) {
434
+ result.push(chunk);
435
+ }
436
+ }
437
+ return result;
438
+ }
439
+ function joinTags(tags) {
440
+ return tags.join("");
441
+ }
442
+ function joinAttrs(chunks) {
443
+ if (chunks.length === 0) {
444
+ return "";
445
+ }
446
+ return " " + chunks.join(" ");
447
+ }
448
+ function renderHTMLDocument(html) {
449
+ return "<!DOCTYPE html>" + `<html${joinAttrs(html.htmlAttrs)}>` + `<head>${joinTags(html.head)}</head>` + `<body${joinAttrs(html.bodyAttrs)}>${joinTags(html.bodyPrepend)}${joinTags(html.body)}${joinTags(html.bodyAppend)}</body>` + "</html>";
450
+ }
451
+
452
+ const renderer = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
453
+ __proto__: null,
454
+ default: handler
455
+ }, Symbol.toStringTag, { value: 'Module' }));
456
+
457
+ export { baseURL as b, headSymbol as h, publicAssetsURL as p, renderer as r, useHead as u };
458
+ //# sourceMappingURL=renderer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.mjs","sources":["../../../../node_modules/@unhead/vue/dist/shared/vue.N9zWjxoK.mjs","../../../../node_modules/@unhead/vue/dist/shared/vue.Cr7xSEtD.mjs","../../../../node_modules/@unhead/vue/dist/server.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/paths.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/build-files.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/payload.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/app.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/inline-styles.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/handlers/renderer.mjs"],"names":["renderToString","_renderToString"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
@@ -0,0 +1,4 @@
1
+ const template = "";
2
+
3
+ export { template };
4
+ //# sourceMappingURL=_virtual_spa-template.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_virtual_spa-template.mjs","sources":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,10 @@
1
+ import process from 'node:process';globalThis._importMeta_={url:import.meta.url,env:process.env};import 'node:http';
2
+ import 'node:https';
3
+ export { B as default } from './chunks/nitro/nitro.mjs';
4
+ import 'node:events';
5
+ import 'node:buffer';
6
+ import 'node:fs';
7
+ import 'node:path';
8
+ import 'node:crypto';
9
+ import 'node:url';
10
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"names":[],"mappings":";;;;;;;;"}