wiki-viewer 2.9.1 → 2.9.3

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 (395) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +0 -4
  3. package/.next/standalone/.next/build-manifest.json +5 -5
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +4 -4
  6. package/.next/standalone/.next/routes-manifest.json +0 -24
  7. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  16. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/api/agent/activity/route.js +7 -7
  19. package/.next/standalone/.next/server/app/api/agent/activity/route.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/api/agent/admin/agents/[agentId]/revoke/route.js +5 -5
  21. package/.next/standalone/.next/server/app/api/agent/admin/agents/[agentId]/revoke/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/agent/admin/agents/route.js +5 -5
  23. package/.next/standalone/.next/server/app/api/agent/admin/agents/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/approve/route.js +5 -5
  25. package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/approve/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/deny/route.js +5 -5
  27. package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/deny/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/agent/admin/registrations/route.js +5 -5
  29. package/.next/standalone/.next/server/app/api/agent/admin/registrations/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js +7 -7
  31. package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js +9 -9
  33. package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js +7 -7
  35. package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js +8 -8
  37. package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/agent/fs/move/route.js +8 -8
  39. package/.next/standalone/.next/server/app/api/agent/fs/move/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/agent/fs/search/route.js +8 -8
  41. package/.next/standalone/.next/server/app/api/agent/fs/search/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/agent/internal/span/route.js +8 -8
  43. package/.next/standalone/.next/server/app/api/agent/internal/span/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/agent/settings/route.js +8 -8
  45. package/.next/standalone/.next/server/app/api/agent/settings/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js +8 -8
  47. package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js +10 -2
  49. package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/assets/[...path]/route.js +5 -5
  51. package/.next/standalone/.next/server/app/api/assets/[...path]/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/auth/[...all]/route.js +2 -2
  53. package/.next/standalone/.next/server/app/api/pdf/save/route.js +8 -8
  54. package/.next/standalone/.next/server/app/api/pdf/save/route.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/api/share/[token]/asset/route.js +3 -2
  56. package/.next/standalone/.next/server/app/api/share/[token]/asset/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/share/[token]/route.js +8 -7
  58. package/.next/standalone/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/share/route.js +8 -8
  60. package/.next/standalone/.next/server/app/api/share/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/system/admins/route.js +5 -5
  62. package/.next/standalone/.next/server/app/api/system/admins/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/system/api-key/route.js +2 -2
  64. package/.next/standalone/.next/server/app/api/system/api-key/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/system/auth-config/route.js +3 -3
  66. package/.next/standalone/.next/server/app/api/system/auth-config/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/api/system/auth-settings/route.js +5 -5
  68. package/.next/standalone/.next/server/app/api/system/auth-settings/route.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/api/system/browse/route.js +4 -4
  70. package/.next/standalone/.next/server/app/api/system/browse/route.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/api/system/config/route.js +3 -3
  72. package/.next/standalone/.next/server/app/api/system/config/route.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/api/system/pins/route.js +5 -5
  74. package/.next/standalone/.next/server/app/api/system/pins/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/system/reveal/route.js +4 -4
  76. package/.next/standalone/.next/server/app/api/system/reveal/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/system/users/route.js +4 -4
  78. package/.next/standalone/.next/server/app/api/system/users/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route.js +5 -5
  80. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js +5 -5
  82. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js +5 -5
  84. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js +5 -5
  86. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/system/workspaces/route.js +4 -4
  88. package/.next/standalone/.next/server/app/api/system/workspaces/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/api/upload/[...path]/route.js +7 -7
  90. package/.next/standalone/.next/server/app/api/upload/[...path]/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/wiki/app/route.js +9 -9
  92. package/.next/standalone/.next/server/app/api/wiki/app/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/wiki/backlinks/route.js +7 -7
  94. package/.next/standalone/.next/server/app/api/wiki/backlinks/route.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/api/wiki/content/route.js +10 -10
  96. package/.next/standalone/.next/server/app/api/wiki/content/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/wiki/download/route.js +9 -9
  98. package/.next/standalone/.next/server/app/api/wiki/download/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/wiki/folder/route.js +7 -7
  100. package/.next/standalone/.next/server/app/api/wiki/folder/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js +7 -7
  102. package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js +6 -6
  104. package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js +7 -7
  106. package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js.nft.json +1 -1
  107. package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js +7 -7
  108. package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/wiki/git-history/route.js +7 -7
  110. package/.next/standalone/.next/server/app/api/wiki/git-history/route.js.nft.json +1 -1
  111. package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js +8 -8
  112. package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/app/api/wiki/move/route.js +8 -8
  114. package/.next/standalone/.next/server/app/api/wiki/move/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/wiki/new-file/route.js +8 -8
  116. package/.next/standalone/.next/server/app/api/wiki/new-file/route.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/api/wiki/outlinks/route.js +7 -7
  118. package/.next/standalone/.next/server/app/api/wiki/outlinks/route.js.nft.json +1 -1
  119. package/.next/standalone/.next/server/app/api/wiki/page/route.js +8 -8
  120. package/.next/standalone/.next/server/app/api/wiki/page/route.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/api/wiki/presence/route.js +7 -7
  122. package/.next/standalone/.next/server/app/api/wiki/presence/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/wiki/route.js +8 -8
  124. package/.next/standalone/.next/server/app/api/wiki/route.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/api/wiki/search/route.js +8 -8
  126. package/.next/standalone/.next/server/app/api/wiki/search/route.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/api/wiki/slugs/route.js +8 -8
  128. package/.next/standalone/.next/server/app/api/wiki/slugs/route.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/api/wiki/upload/route.js +8 -8
  130. package/.next/standalone/.next/server/app/api/wiki/upload/route.js.nft.json +1 -1
  131. package/.next/standalone/.next/server/app/api/wiki/watch/route.js +4 -4
  132. package/.next/standalone/.next/server/app/api/wiki/watch/route.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
  134. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  135. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/s/[token]/page/build-manifest.json +2 -2
  137. package/.next/standalone/.next/server/app/s/[token]/page.js.nft.json +1 -1
  138. package/.next/standalone/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/signin/page/build-manifest.json +2 -2
  140. package/.next/standalone/.next/server/app/signin/page.js +4 -4
  141. package/.next/standalone/.next/server/app/signin/page.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app-paths-manifest.json +0 -4
  144. package/.next/standalone/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0ytral2.js +1 -1
  145. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.xk8gi._.js +3 -0
  146. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00awqt2._.js +3 -0
  147. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00sn-o5._.js +16 -0
  148. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0mw1brk._.js → [root-of-the-server]__01y-312._.js} +2 -2
  149. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__12jdw86._.js → [root-of-the-server]__02373p-._.js} +1 -1
  150. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03_q-~2._.js +3 -0
  151. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03c09g7._.js +3 -0
  152. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03prziv._.js +3 -0
  153. package/.next/standalone/.next/server/chunks/[root-of-the-server]__04vo55d._.js +3 -0
  154. package/.next/standalone/.next/server/chunks/[root-of-the-server]__04~wbjj._.js +3 -0
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05tbv~.._.js +16 -0
  156. package/.next/standalone/.next/server/chunks/[root-of-the-server]__068r9h7._.js +3 -0
  157. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06jm~o8._.js +3 -0
  158. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07ox9i8._.js +12 -0
  159. package/.next/standalone/.next/server/chunks/[root-of-the-server]__088zh92._.js +3 -0
  160. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_5~w8k._.js +20 -0
  161. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_g-.kr._.js +20 -0
  162. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bdxjy5._.js +1 -1
  163. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__10c4_fo._.js → [root-of-the-server]__0e1kbl7._.js} +1 -1
  164. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__12v.eva._.js → [root-of-the-server]__0er9oof._.js} +2 -2
  165. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e~2gkf._.js +3 -0
  166. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f2frhc._.js +4 -0
  167. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0hgccef._.js +3 -0
  168. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0egcl8n._.js → [root-of-the-server]__0j40f60._.js} +2 -2
  169. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__04mie79._.js → [root-of-the-server]__0k0t_.e._.js} +1 -1
  170. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0k46u9j._.js +3 -0
  171. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kau~ca._.js +3 -0
  172. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kuwuwk._.js +3 -0
  173. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kvxxt~._.js +3 -0
  174. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l5io1-._.js +3 -0
  175. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0md2vr3._.js +3 -0
  176. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0muj-bp._.js +3 -0
  177. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nnxcs7._.js +3 -0
  178. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0omny3u._.js +3 -0
  179. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ou7hai._.js +3 -0
  180. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0r--676._.js +3 -0
  181. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0r55bc0._.js +3 -0
  182. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rdt~cr._.js +3 -0
  183. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tizmgc._.js +3 -0
  184. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vr.qhy._.js +3 -0
  185. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0915i_~._.js → [root-of-the-server]__0x.030x._.js} +2 -2
  186. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__11mhei8._.js → [root-of-the-server]__0xlo2r_._.js} +2 -2
  187. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yfb5md._.js +3 -0
  188. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0a7c~hj._.js → [root-of-the-server]__0z5xk6f._.js} +1 -1
  189. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~gd460._.js +3 -0
  190. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~i3blt._.js +3 -0
  191. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10p-nga._.js +3 -0
  192. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10zrueo._.js +12 -0
  193. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11ltgmp._.js +20 -0
  194. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11zy4x1._.js +6 -6
  195. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12bl1v6._.js +3 -0
  196. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12g8s_j._.js +3 -0
  197. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13h_w~h._.js +4 -0
  198. package/.next/standalone/.next/server/chunks/_079xuln._.js +1 -1
  199. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_workspaces_[id]_open_route_actions_1087xu7.js +1 -1
  200. package/.next/standalone/.next/server/chunks/node_modules__pnpm_0aj5g-w._.js +1 -1
  201. package/.next/standalone/.next/server/chunks/src_0ks~u~e._.js +1 -1
  202. package/.next/standalone/.next/server/chunks/src_lib_fs_mounts_ts_0ksy80l._.js +1 -1
  203. package/.next/standalone/.next/server/chunks/src_lib_workspaces_ts_0qon40u._.js +2 -2
  204. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0bt7d39._.js → 0e.4_sonner_dist_index_mjs_0u2em8w._.js} +2 -2
  205. package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_0p7ph25._.js → 0~w0_katex_dist_katex_mjs_018q_uc._.js} +1 -1
  206. package/.next/standalone/.next/server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-5ZQYHXKU_mjs_0z1.978._.js +1 -1
  207. package/.next/standalone/.next/server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-KSCS5N6A_mjs_0v4oeem._.js +1 -1
  208. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ybtj28._.js → [root-of-the-server]__02ov~kn._.js} +2 -2
  209. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__13k6~ax._.js → [root-of-the-server]__0n5kphk._.js} +2 -2
  210. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vglc36._.js +3 -0
  211. package/.next/standalone/.next/server/chunks/ssr/_00pku9f._.js +3 -0
  212. package/.next/standalone/.next/server/chunks/ssr/_0_.s7b8._.js +3 -0
  213. package/.next/standalone/.next/server/chunks/ssr/_0oq8kwv._.js +174 -0
  214. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04qqrjr._.js → node_modules__pnpm_0.wgpvp._.js} +2 -2
  215. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_09k0q18._.js → node_modules__pnpm_02j0p3a._.js} +1 -1
  216. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0wg48.8._.js → node_modules__pnpm_02yqus6._.js} +1 -1
  217. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_11g2aee._.js → node_modules__pnpm_07bf4mp._.js} +1 -1
  218. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0a4su30._.js +1 -1
  219. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0a-f4gi._.js → node_modules__pnpm_0a~3f2a._.js} +1 -1
  220. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0819uyi._.js → node_modules__pnpm_0bnc0lk._.js} +2 -2
  221. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0b3l3b4._.js → node_modules__pnpm_0dm.meu._.js} +1 -1
  222. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0rc4s48._.js → node_modules__pnpm_0ebvpwi._.js} +1 -1
  223. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0jp7ggg._.js → node_modules__pnpm_0f.5boy._.js} +1 -1
  224. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ha2xsd._.js → node_modules__pnpm_0f9vj0~._.js} +2 -2
  225. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ypcps.._.js → node_modules__pnpm_0f9vuiw._.js} +2 -2
  226. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_06usij4._.js → node_modules__pnpm_0fa23-q._.js} +1 -1
  227. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0cuckmp._.js → node_modules__pnpm_0g21lw4._.js} +1 -1
  228. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_09ybwhl._.js → node_modules__pnpm_0kdk2ot._.js} +1 -1
  229. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0wjizot._.js → node_modules__pnpm_0kkbph0._.js} +2 -2
  230. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0xp3s_y._.js → node_modules__pnpm_0mv0.4i._.js} +1 -1
  231. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0z~bh__._.js → node_modules__pnpm_0nt22aq._.js} +2 -2
  232. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0o~d81.._.js +1 -1
  233. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0m2hb6k._.js → node_modules__pnpm_0p4w0~q._.js} +1 -1
  234. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_03ciu.l._.js → node_modules__pnpm_0pv3k.9._.js} +1 -1
  235. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_09c3lg3._.js → node_modules__pnpm_0qmqt0m._.js} +1 -1
  236. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0iuzd3o._.js → node_modules__pnpm_0q~maar._.js} +1 -1
  237. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ldft78._.js → node_modules__pnpm_0s1th-1._.js} +1 -1
  238. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0qhs4r2._.js → node_modules__pnpm_0tdnho_._.js} +1 -1
  239. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0dsnv76._.js → node_modules__pnpm_0w6oo9l._.js} +1 -1
  240. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0eiz-8_._.js → node_modules__pnpm_0x9-_1d._.js} +1 -1
  241. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gnc95r._.js → node_modules__pnpm_0xq~zku._.js} +2 -2
  242. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0~88b7s._.js → node_modules__pnpm_12nfd13._.js} +1 -1
  243. package/.next/standalone/.next/server/chunks/ssr/src_app_s_[token]_page_tsx_0_fzrmd._.js +1 -1
  244. package/.next/standalone/.next/server/middleware-build-manifest.js +5 -5
  245. package/.next/standalone/.next/server/pages/500.html +1 -1
  246. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  247. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  248. package/.next/standalone/.next/static/chunks/00_12ekhbvhhp.js +1 -0
  249. package/.next/standalone/.next/static/chunks/01u~45r8icusu.js +1 -0
  250. package/.next/standalone/.next/static/chunks/0aeii_m.9~9_t.js +1 -0
  251. package/.next/standalone/.next/static/chunks/0fm2eul-wqh2f.js +1 -0
  252. package/.next/standalone/.next/static/chunks/{08usk_~k6d0yf.js → 0k31ncl7m_j9q.js} +2 -2
  253. package/.next/standalone/.next/static/chunks/0n7px0u5.eizf.css +9 -0
  254. package/.next/standalone/.next/static/chunks/0qs6cl.~q-0tv.js +1 -0
  255. package/.next/standalone/.next/static/chunks/0wu_n6m9jg8rn.js +1 -0
  256. package/.next/standalone/.next/static/chunks/0yixq3fhhpk~9.js +172 -0
  257. package/.next/standalone/.next/static/chunks/{turbopack-0~8fsjmdvb_1i.js → turbopack-1105gjd__15ti.js} +1 -1
  258. package/.next/standalone/.test-floor +1 -1
  259. package/.next/standalone/biome.json +70 -0
  260. package/.next/standalone/package.json +128 -129
  261. package/.next/standalone/scripts/format-check.mjs +25 -0
  262. package/.next/standalone/scripts/test-floor.mjs +86 -37
  263. package/.next/standalone/server.js +1 -1
  264. package/README.md +12 -5
  265. package/bin/cli/config.js +105 -0
  266. package/bin/cli/prompt.js +36 -0
  267. package/bin/cli/serve.js +413 -0
  268. package/bin/cli/service.js +304 -0
  269. package/bin/cli/update.js +58 -0
  270. package/bin/cli/wizard.js +134 -0
  271. package/bin/shared/ssh-target.js +154 -0
  272. package/bin/wiki-viewer.js +118 -1224
  273. package/package.json +128 -129
  274. package/.next/standalone/.next/server/app/api/system/clear-root/route/app-paths-manifest.json +0 -3
  275. package/.next/standalone/.next/server/app/api/system/clear-root/route/build-manifest.json +0 -9
  276. package/.next/standalone/.next/server/app/api/system/clear-root/route/server-reference-manifest.json +0 -4
  277. package/.next/standalone/.next/server/app/api/system/clear-root/route.js +0 -14
  278. package/.next/standalone/.next/server/app/api/system/clear-root/route.js.map +0 -5
  279. package/.next/standalone/.next/server/app/api/system/clear-root/route.js.nft.json +0 -1
  280. package/.next/standalone/.next/server/app/api/system/clear-root/route_client-reference-manifest.js +0 -3
  281. package/.next/standalone/.next/server/app/api/system/root-status/route/app-paths-manifest.json +0 -3
  282. package/.next/standalone/.next/server/app/api/system/root-status/route/build-manifest.json +0 -9
  283. package/.next/standalone/.next/server/app/api/system/root-status/route/server-reference-manifest.json +0 -4
  284. package/.next/standalone/.next/server/app/api/system/root-status/route.js +0 -14
  285. package/.next/standalone/.next/server/app/api/system/root-status/route.js.map +0 -5
  286. package/.next/standalone/.next/server/app/api/system/root-status/route.js.nft.json +0 -1
  287. package/.next/standalone/.next/server/app/api/system/root-status/route_client-reference-manifest.js +0 -3
  288. package/.next/standalone/.next/server/app/api/system/set-root/route/app-paths-manifest.json +0 -3
  289. package/.next/standalone/.next/server/app/api/system/set-root/route/build-manifest.json +0 -9
  290. package/.next/standalone/.next/server/app/api/system/set-root/route/server-reference-manifest.json +0 -4
  291. package/.next/standalone/.next/server/app/api/system/set-root/route.js +0 -15
  292. package/.next/standalone/.next/server/app/api/system/set-root/route.js.map +0 -5
  293. package/.next/standalone/.next/server/app/api/system/set-root/route.js.nft.json +0 -1
  294. package/.next/standalone/.next/server/app/api/system/set-root/route_client-reference-manifest.js +0 -3
  295. package/.next/standalone/.next/server/app/api/wiki/file/route/app-paths-manifest.json +0 -3
  296. package/.next/standalone/.next/server/app/api/wiki/file/route/build-manifest.json +0 -9
  297. package/.next/standalone/.next/server/app/api/wiki/file/route/server-reference-manifest.json +0 -4
  298. package/.next/standalone/.next/server/app/api/wiki/file/route.js +0 -16
  299. package/.next/standalone/.next/server/app/api/wiki/file/route.js.map +0 -5
  300. package/.next/standalone/.next/server/app/api/wiki/file/route.js.nft.json +0 -1
  301. package/.next/standalone/.next/server/app/api/wiki/file/route_client-reference-manifest.js +0 -3
  302. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-3eby~._.js +0 -3
  303. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-bd36s._.js +0 -3
  304. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0._o62m._.js +0 -3
  305. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.f~mr1._.js +0 -3
  306. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.xsx4e._.js +0 -3
  307. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01w5s-4._.js +0 -3
  308. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02hiw0n._.js +0 -3
  309. package/.next/standalone/.next/server/chunks/[root-of-the-server]__037g~yp._.js +0 -20
  310. package/.next/standalone/.next/server/chunks/[root-of-the-server]__04yzrn9._.js +0 -3
  311. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05dk_5q._.js +0 -3
  312. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05nk8xg._.js +0 -3
  313. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05wicn_._.js +0 -3
  314. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07i72.r._.js +0 -3
  315. package/.next/standalone/.next/server/chunks/[root-of-the-server]__086~~78._.js +0 -3
  316. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08h0txl._.js +0 -3
  317. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09ezcba._.js +0 -3
  318. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0au~ncj._.js +0 -3
  319. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c-49tx._.js +0 -3
  320. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0di13ue._.js +0 -3
  321. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dkxp4y._.js +0 -3
  322. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jhwupj._.js +0 -3
  323. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ker6~l._.js +0 -3
  324. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mkrdf0._.js +0 -3
  325. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nzjsw9._.js +0 -3
  326. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o0lsmx._.js +0 -3
  327. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0omc1-s._.js +0 -20
  328. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0os3ej1._.js +0 -16
  329. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0px8._m._.js +0 -3
  330. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qe7kxb._.js +0 -3
  331. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qe8lje._.js +0 -3
  332. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qox302._.js +0 -3
  333. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s5ns33._.js +0 -3
  334. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s6kt0y._.js +0 -3
  335. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t_s2dg._.js +0 -20
  336. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tchvup._.js +0 -3
  337. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tw6h_5._.js +0 -3
  338. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wmp13_._.js +0 -3
  339. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0z8qb~s._.js +0 -3
  340. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zy2f8y._.js +0 -12
  341. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~s~szv._.js +0 -16
  342. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1024gkd._.js +0 -3
  343. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12abg.4._.js +0 -3
  344. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_clear-root_route_actions_065znew.js +0 -3
  345. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_root-status_route_actions_0stp57y.js +0 -3
  346. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_set-root_route_actions_0vxn8ey.js +0 -3
  347. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wiki_file_route_actions_0ytnc0i.js +0 -3
  348. package/.next/standalone/.next/server/chunks/ssr/0~w0_katex_dist_katex_mjs_12lt4cp._.js +0 -3
  349. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js +0 -3
  350. package/.next/standalone/.next/server/chunks/ssr/_03xt0rl._.js +0 -158
  351. package/.next/standalone/.next/server/chunks/ssr/_06rf50_._.js +0 -3
  352. package/.next/standalone/.next/server/chunks/ssr/_0i3r51-._.js +0 -158
  353. package/.next/standalone/.next/server/chunks/ssr/_0jdop6l._.js +0 -3
  354. package/.next/standalone/.next/server/chunks/ssr/_0v4uz-4._.js +0 -19
  355. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0.6uh54._.js +0 -3
  356. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_00o9din._.js +0 -3
  357. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_02jnz2o._.js +0 -17
  358. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_03jchtd._.js +0 -3
  359. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_04xh4re._.js +0 -26
  360. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_07p8tmd._.js +0 -17
  361. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_08jqh.4._.js +0 -3
  362. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0_up15t._.js +0 -17
  363. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0c.b4rt._.js +0 -3
  364. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0dr38_k._.js +0 -31
  365. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0e-nvo5._.js +0 -45
  366. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0e9l2~p._.js +0 -3
  367. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0k_8g5d._.js +0 -3
  368. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0kli5~f._.js +0 -3
  369. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0n-ec__._.js +0 -3
  370. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0odzirk._.js +0 -3
  371. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0ov9ih8._.js +0 -17
  372. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0qb~hug._.js +0 -17
  373. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0t24-57._.js +0 -3
  374. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0umkew~._.js +0 -17
  375. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0w_fkrb._.js +0 -3
  376. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0yfe2s1._.js +0 -3
  377. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0~ovwm1._.js +0 -3
  378. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_10-i1v8._.js +0 -3
  379. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_12dmj0l._.js +0 -3
  380. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_133w.gx._.js +0 -11
  381. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_13y5ncy._.js +0 -3
  382. package/.next/standalone/.next/static/chunks/0-lsw0io13aha.js +0 -1
  383. package/.next/standalone/.next/static/chunks/01-v2wyaj~5gn.js +0 -1
  384. package/.next/standalone/.next/static/chunks/04_l8s7dy454_.js +0 -1
  385. package/.next/standalone/.next/static/chunks/08yt220_vis~5.js +0 -17
  386. package/.next/standalone/.next/static/chunks/0a~z4.g.dtxjm.js +0 -156
  387. package/.next/standalone/.next/static/chunks/0ky8fha87kp0_.js +0 -1
  388. package/.next/standalone/.next/static/chunks/0nzvnpn.j1~sx.js +0 -1
  389. package/.next/standalone/.next/static/chunks/0t5bc7buy7sx9.js +0 -156
  390. package/.next/standalone/.next/static/chunks/0umlolnxs~j3r.js +0 -1
  391. package/.next/standalone/.next/static/chunks/1012fl5fxholx.js +0 -1
  392. package/.next/standalone/.next/static/chunks/17isnstdq92js.css +0 -5
  393. /package/.next/standalone/.next/static/{PA-vcrW5iM2yjespdFmgx → I6ZpQF8Ua7ytNZMW5ZKWH}/_buildManifest.js +0 -0
  394. /package/.next/standalone/.next/static/{PA-vcrW5iM2yjespdFmgx → I6ZpQF8Ua7ytNZMW5ZKWH}/_clientMiddlewareManifest.js +0 -0
  395. /package/.next/standalone/.next/static/{PA-vcrW5iM2yjespdFmgx → I6ZpQF8Ua7ytNZMW5ZKWH}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/057l2ju6dh43x.js","static/chunks/08usk_~k6d0yf.js","static/chunks/0vp-ahhagxptc.js"],runtimeModuleIds:[569959]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,l=((o=l||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let i=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,l,s;null!=t?l=(o=p(this.c,t)).exports:(o=this.m,l=this.e);let u=(r=o,n=l,(s=i.get(r))||(i.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function k(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=O,u.A=function(e){return this.r(e)(O.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let j=Symbol("turbopack queues"),U=Symbol("turbopack exports"),v=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=k(),u=Object.assign(s,{[U]:r.exports,[j]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[U]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(j in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[U]:{},[j]:e=>e(t)};return e.then(e=>{r[U]=e,C(t)},e=>{r[v]=e,C(t)}),r}}return{[U]:e,[j]:()=>{}}}),r=()=>t.map(e=>{if(e[v])throw e[v];return e[U]}),{promise:l,resolve:i}=k(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[j](u)),s.queueCount?l:r()},function(e){e?i(u[v]=e):l(u[U]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,u.U=P,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,$=new Map;u.M=$;let _=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],l=o.map(e=>!!$.has(e)||_.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>E.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));E.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),i))E.has(o)||E.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}S.l=function(e){return T(l.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),i=x.get(o);if(void 0===i){let e=x.set.bind(x,o,A);i=o.then(e).catch(e=>{let o;switch(t){case l.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case l.Parent:o=`from module ${r}`;break;case l.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),x.set(o,i)}return i}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(l.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,l){let i="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return i?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,l?{...l,type:void 0}:void 0)};let K=/\.js(?:\?[^#]*)?(?:#.*)?$/,q=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return q.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(l.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(l.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,l.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),l=o.exports;I[e]=o;let i=new s(o,l);try{n(i,o,l)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let l=e[o];for(let l=r;l<o;l++){let r=e[l],o=t.get(r);if(o){n=o;break}}let i=n??l,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(i===l&&Object.defineProperty(l,"name",{value:"module evaluation"}),s=!0),t.set(r,i))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(l.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,l.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===l.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(K.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(K.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(N(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/057l2ju6dh43x.js","static/chunks/0k31ncl7m_j9q.js","static/chunks/0vp-ahhagxptc.js"],runtimeModuleIds:[569959]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,l=((o=l||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let i=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,l,s;null!=t?l=(o=p(this.c,t)).exports:(o=this.m,l=this.e);let u=(r=o,n=l,(s=i.get(r))||(i.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=O,u.A=function(e){return this.r(e)(O.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),U=Symbol("turbopack exports"),v=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=j(),u=Object.assign(s,{[U]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[U]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[U]:{},[k]:e=>e(t)};return e.then(e=>{r[U]=e,C(t)},e=>{r[v]=e,C(t)}),r}}return{[U]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[v])throw e[v];return e[U]}),{promise:l,resolve:i}=j(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[k](u)),s.queueCount?l:r()},function(e){e?i(u[v]=e):l(u[U]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,u.U=P,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,$=new Map;u.M=$;let _=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],l=o.map(e=>!!$.has(e)||_.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>E.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));E.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),i))E.has(o)||E.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}S.l=function(e){return T(l.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),i=x.get(o);if(void 0===i){let e=x.set.bind(x,o,A);i=o.then(e).catch(e=>{let o;switch(t){case l.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case l.Parent:o=`from module ${r}`;break;case l.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),x.set(o,i)}return i}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(l.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,l){let i="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return i?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,l?{...l,type:void 0}:void 0)};let q=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(l.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(l.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,l.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),l=o.exports;I[e]=o;let i=new s(o,l);try{n(i,o,l)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let l=e[o];for(let l=r;l<o;l++){let r=e[l],o=t.get(r);if(o){n=o;break}}let i=n??l,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(i===l&&Object.defineProperty(l,"name",{value:"module evaluation"}),s=!0),t.set(r,i))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(l.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,l.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===l.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(q.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(q.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(N(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
@@ -1 +1 @@
1
- 583
1
+ 624
@@ -0,0 +1,70 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/2.5.6/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "files": {
9
+ "ignoreUnknown": true,
10
+ "includes": [
11
+ "*.ts",
12
+ "*.tsx",
13
+ "*.mjs",
14
+ "*.js",
15
+ "*.json",
16
+ "src/**/*.ts",
17
+ "src/**/*.tsx",
18
+ "packages/**/*.ts",
19
+ "packages/**/*.tsx",
20
+ "packages/**/*.mjs",
21
+ "packages/**/*.js",
22
+ "packages/**/*.json",
23
+ "scripts/**/*.mjs",
24
+ "bin/**/*.js",
25
+ "!dist/",
26
+ "!p/",
27
+ "!.pi/",
28
+ "!.handoffs/",
29
+ "!.next/",
30
+ "!node_modules/"
31
+ ]
32
+ },
33
+ "formatter": {
34
+ "enabled": false
35
+ },
36
+ "linter": {
37
+ "enabled": true,
38
+ "rules": {
39
+ "preset": "recommended",
40
+ "a11y": {
41
+ "recommended": false
42
+ },
43
+ "complexity": {
44
+ "recommended": false
45
+ },
46
+ "correctness": {
47
+ "noUnusedFunctionParameters": "off",
48
+ "noUnusedImports": "off",
49
+ "noUnusedVariables": "off",
50
+ "useExhaustiveDependencies": "off"
51
+ },
52
+ "performance": {
53
+ "noImgElement": "off"
54
+ },
55
+ "security": {
56
+ "noDangerouslySetInnerHtml": "off"
57
+ },
58
+ "style": {
59
+ "recommended": false
60
+ },
61
+ "suspicious": {
62
+ "noArrayIndexKey": "off",
63
+ "recommended": false
64
+ }
65
+ }
66
+ },
67
+ "assist": {
68
+ "enabled": false
69
+ }
70
+ }
@@ -1,131 +1,130 @@
1
1
  {
2
- "name": "wiki-viewer",
3
- "version": "2.9.0",
4
- "description": "Local file viewer and wiki — view markdown, HTML, PDFs, notebooks, office docs, and more from any directory",
5
- "license": "MIT",
6
- "type": "module",
7
- "bin": {
8
- "wiki-viewer": "bin/wiki-viewer.js",
9
- "wiki-viewer-lite": "bin/wiki-viewer-lite.js"
10
- },
11
- "files": [
12
- "bin",
13
- ".next/standalone"
14
- ],
15
- "scripts": {
16
- "dev": "next dev",
17
- "dev:https": "next dev --experimental-https",
18
- "build": "next build",
19
- "start": "next start",
20
- "wiki": "node bin/wiki-viewer.js",
21
- "postbuild": "node bin/postbuild.js",
22
- "prepublishOnly": "npm run build",
23
- "prepack": "node -e \"require('fs').existsSync('.next/standalone/server.js')||(console.error('ERROR: .next/standalone/server.js missing, run pnpm build before publishing'),process.exit(1))\"",
24
- "test": "node scripts/test-floor.mjs",
25
- "test:raw": "tsx --import ./src/tests/proof/preload.ts --test src/tests/proof/*.test.ts"
26
- },
27
- "engines": {
28
- "node": ">=22.5.0"
29
- },
30
- "keywords": [
31
- "wiki",
32
- "markdown",
33
- "viewer",
34
- "notes",
35
- "local",
36
- "cli"
37
- ],
38
- "repository": {
39
- "type": "git",
40
- "url": "https://github.com/anh-chu/wiki-viewer.git"
41
- },
42
- "optionalDependencies": {
43
- "@vscode/ripgrep": "^1.18.0"
44
- },
45
- "dependencies": {
46
- "better-auth": "^1.6.12",
47
- "chokidar": "^5.0.0",
48
- "jszip": "^3.10.1",
49
- "kysely": "0.28.5",
50
- "next": "16.2.4",
51
- "pdfjs-dist": "5.4.296",
52
- "proper-lockfile": "^4.1.2",
53
- "react": "19.2.5",
54
- "react-dom": "19.2.5",
55
- "rehype-parse": "^9.0.1",
56
- "rehype-raw": "^7.0.0",
57
- "rehype-sanitize": "^6.0.0",
58
- "undici": "^8.3.0"
59
- },
60
- "devDependencies": {
61
- "@radix-ui/react-context-menu": "^2.2.16",
62
- "@radix-ui/react-dialog": "^1.1.15",
63
- "@radix-ui/react-dropdown-menu": "^2.1.16",
64
- "@radix-ui/react-label": "^2.1.8",
65
- "@radix-ui/react-popover": "^1.1.15",
66
- "@radix-ui/react-separator": "^1.1.8",
67
- "@radix-ui/react-slot": "^1.2.4",
68
- "@radix-ui/react-switch": "^1.2.6",
69
- "@radix-ui/react-tooltip": "^1.2.8",
70
- "@tailwindcss/typography": "^0.5.19",
71
- "@tiptap/core": "^3.22.5",
72
- "@tiptap/extension-bubble-menu": "^3.22.5",
73
- "@tiptap/extension-code-block-lowlight": "^3.22.5",
74
- "@tiptap/extension-image": "^3.22.5",
75
- "@tiptap/extension-link": "^3.22.5",
76
- "@tiptap/extension-placeholder": "^3.22.5",
77
- "@tiptap/extension-subscript": "^3.22.5",
78
- "@tiptap/extension-superscript": "^3.22.5",
79
- "@tiptap/extension-table": "^3.22.5",
80
- "@tiptap/extension-table-cell": "^3.22.5",
81
- "@tiptap/extension-table-header": "^3.22.5",
82
- "@tiptap/extension-table-row": "^3.22.5",
83
- "@tiptap/extension-task-item": "^3.22.5",
84
- "@tiptap/extension-task-list": "^3.22.5",
85
- "@tiptap/extension-text-align": "^3.22.5",
86
- "@tiptap/extension-underline": "^3.22.5",
87
- "@tiptap/pm": "^3.22.5",
88
- "@tiptap/react": "^3.22.5",
89
- "@tiptap/starter-kit": "^3.22.5",
90
- "@tiptap/suggestion": "^3.22.5",
91
- "@types/mdast": "^4.0.4",
92
- "@types/node": "^22.15.0",
93
- "@types/proper-lockfile": "^4.1.4",
94
- "@types/react": "19.2.14",
95
- "@types/react-dom": "19.2.3",
96
- "@types/turndown": "^5.0.6",
97
- "autoprefixer": "^10.4.20",
98
- "class-variance-authority": "^0.7.1",
99
- "clsx": "^2.1.1",
100
- "cmdk": "^1.1.1",
101
- "docx-preview": "^0.3.7",
102
- "hast-util-to-html": "^9.0.5",
103
- "highlight.js": "^11.11.1",
104
- "lowlight": "^3.3.0",
105
- "lucide-react": "^0.525.0",
106
- "mermaid": "^11.14.0",
107
- "next-themes": "^0.4.6",
108
- "postcss": "^8.5.6",
109
- "pptx-preview": "^1.0.7",
110
- "rehype-stringify": "^10.0.1",
111
- "remark-gfm": "^4.0.1",
112
- "remark-parse": "^11.0.0",
113
- "remark-rehype": "^11.1.2",
114
- "remark-stringify": "^11.0.0",
115
- "sonner": "^2.0.7",
116
- "tailwind-merge": "^3.3.0",
117
- "tailwindcss": "^3.4.17",
118
- "tsx": "^4.22.3",
119
- "turndown": "^7.2.4",
120
- "turndown-plugin-gfm": "^1.0.2",
121
- "typescript": "^5.8.0",
122
- "unified": "^11.0.5",
123
- "xlsx": "^0.18.5",
124
- "zustand": "^5.0.12"
125
- },
126
- "pnpm": {
127
- "overrides": {
128
- "kysely": "0.28.5"
129
- }
130
- }
2
+ "name": "wiki-viewer",
3
+ "version": "2.9.3",
4
+ "description": "Local file viewer and wiki — view markdown, HTML, PDFs, notebooks, office docs, and more from any directory",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "bin": {
8
+ "wiki-viewer": "bin/wiki-viewer.js",
9
+ "wiki-viewer-lite": "bin/wiki-viewer-lite.js"
10
+ },
11
+ "files": [
12
+ "bin",
13
+ ".next/standalone"
14
+ ],
15
+ "scripts": {
16
+ "dev": "next dev",
17
+ "dev:https": "next dev --experimental-https",
18
+ "build": "next build",
19
+ "start": "next start",
20
+ "wiki": "node bin/wiki-viewer.js",
21
+ "postbuild": "node bin/postbuild.js",
22
+ "prepublishOnly": "npm run build",
23
+ "prepack": "node -e \"require('fs').existsSync('.next/standalone/server.js')||(console.error('ERROR: .next/standalone/server.js missing, run pnpm build before publishing'),process.exit(1))\"",
24
+ "lint": "biome check .",
25
+ "format:check": "node scripts/format-check.mjs",
26
+ "test": "node scripts/test-floor.mjs",
27
+ "test:raw": "tsx --import ./src/tests/proof/preload.ts --test src/tests/proof/*.test.ts",
28
+ "typecheck": "tsc --noEmit"
29
+ },
30
+ "engines": {
31
+ "node": ">=20.9.0"
32
+ },
33
+ "keywords": [
34
+ "wiki",
35
+ "markdown",
36
+ "viewer",
37
+ "notes",
38
+ "local",
39
+ "cli"
40
+ ],
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "https://github.com/anh-chu/wiki-viewer.git"
44
+ },
45
+ "optionalDependencies": {
46
+ "@vscode/ripgrep": "^1.18.0"
47
+ },
48
+ "dependencies": {
49
+ "better-auth": "^1.6.12",
50
+ "chokidar": "^5.0.0",
51
+ "jszip": "^3.10.1",
52
+ "kysely": "0.28.5",
53
+ "next": "16.2.4",
54
+ "pdfjs-dist": "5.4.296",
55
+ "proper-lockfile": "^4.1.2",
56
+ "react": "19.2.5",
57
+ "react-dom": "19.2.5",
58
+ "rehype-parse": "^9.0.1",
59
+ "rehype-raw": "^7.0.0",
60
+ "rehype-sanitize": "^6.0.0",
61
+ "undici": "^8.3.0"
62
+ },
63
+ "devDependencies": {
64
+ "@biomejs/biome": "^2.5.6",
65
+ "@radix-ui/react-context-menu": "^2.2.16",
66
+ "@radix-ui/react-dialog": "^1.1.15",
67
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
68
+ "@radix-ui/react-label": "^2.1.8",
69
+ "@radix-ui/react-popover": "^1.1.15",
70
+ "@radix-ui/react-separator": "^1.1.8",
71
+ "@radix-ui/react-slot": "^1.2.4",
72
+ "@radix-ui/react-switch": "^1.2.6",
73
+ "@radix-ui/react-tooltip": "^1.2.8",
74
+ "@tailwindcss/typography": "^0.5.19",
75
+ "@tiptap/core": "^3.22.5",
76
+ "@tiptap/extension-bubble-menu": "^3.22.5",
77
+ "@tiptap/extension-code-block-lowlight": "^3.22.5",
78
+ "@tiptap/extension-image": "^3.22.5",
79
+ "@tiptap/extension-link": "^3.22.5",
80
+ "@tiptap/extension-placeholder": "^3.22.5",
81
+ "@tiptap/extension-subscript": "^3.22.5",
82
+ "@tiptap/extension-superscript": "^3.22.5",
83
+ "@tiptap/extension-table": "^3.22.5",
84
+ "@tiptap/extension-table-cell": "^3.22.5",
85
+ "@tiptap/extension-table-header": "^3.22.5",
86
+ "@tiptap/extension-table-row": "^3.22.5",
87
+ "@tiptap/extension-task-item": "^3.22.5",
88
+ "@tiptap/extension-task-list": "^3.22.5",
89
+ "@tiptap/extension-text-align": "^3.22.5",
90
+ "@tiptap/extension-underline": "^3.22.5",
91
+ "@tiptap/pm": "^3.22.5",
92
+ "@tiptap/react": "^3.22.5",
93
+ "@tiptap/starter-kit": "^3.22.5",
94
+ "@tiptap/suggestion": "^3.22.5",
95
+ "@types/mdast": "^4.0.4",
96
+ "@types/node": "^22.15.0",
97
+ "@types/proper-lockfile": "^4.1.4",
98
+ "@types/react": "19.2.14",
99
+ "@types/react-dom": "19.2.3",
100
+ "@types/turndown": "^5.0.6",
101
+ "autoprefixer": "^10.4.20",
102
+ "class-variance-authority": "^0.7.1",
103
+ "clsx": "^2.1.1",
104
+ "cmdk": "^1.1.1",
105
+ "docx-preview": "^0.3.7",
106
+ "hast-util-to-html": "^9.0.5",
107
+ "highlight.js": "^11.11.1",
108
+ "lowlight": "^3.3.0",
109
+ "lucide-react": "^0.525.0",
110
+ "mermaid": "^11.14.0",
111
+ "next-themes": "^0.4.6",
112
+ "postcss": "^8.5.6",
113
+ "pptx-preview": "^1.0.7",
114
+ "rehype-stringify": "^10.0.1",
115
+ "remark-gfm": "^4.0.1",
116
+ "remark-parse": "^11.0.0",
117
+ "remark-rehype": "^11.1.2",
118
+ "remark-stringify": "^11.0.0",
119
+ "sonner": "^2.0.7",
120
+ "tailwind-merge": "^3.3.0",
121
+ "tailwindcss": "^3.4.17",
122
+ "tsx": "^4.22.3",
123
+ "turndown": "^7.2.4",
124
+ "turndown-plugin-gfm": "^1.0.2",
125
+ "typescript": "^5.8.0",
126
+ "unified": "^11.0.5",
127
+ "xlsx": "^0.18.5",
128
+ "zustand": "^5.0.12"
129
+ }
131
130
  }
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * `pnpm format:check` wrapper.
4
+ *
5
+ * The formatter is currently disabled in biome.json to avoid churn while the
6
+ * lint contract beds in. This script is honest about that: when the formatter
7
+ * is disabled, it prints a notice and exits 0. Once the formatter is enabled,
8
+ * the same script delegates to `biome format .`.
9
+ */
10
+ import { readFileSync } from "node:fs";
11
+ import { spawnSync } from "node:child_process";
12
+
13
+ const biomeConfig = new URL("../biome.json", import.meta.url);
14
+ const cfg = JSON.parse(readFileSync(biomeConfig, "utf8"));
15
+
16
+ if (cfg.formatter?.enabled === false) {
17
+ console.log("format:check: formatter is disabled in biome.json — skipping.");
18
+ process.exit(0);
19
+ }
20
+
21
+ const result = spawnSync("pnpm", ["exec", "biome", "format", "."], {
22
+ stdio: "inherit",
23
+ shell: false,
24
+ });
25
+ process.exit(result.status ?? 1);
@@ -3,10 +3,9 @@
3
3
  * Test runner with a MINIMUM TEST COUNT FLOOR.
4
4
  *
5
5
  * Why this exists: a full run reported `fail 0` and exited 0 while two whole
6
- * test files (demand-search.test.ts, watcher-pool.test.ts 88 tests) produced
7
- * no output at all. The run looked green. The only evidence anything was wrong
8
- * was the total dropping from 557 to 469, which is invisible unless you happen
9
- * to remember the previous number.
6
+ * test files produced no output at all. The run looked green. The only evidence
7
+ * anything was wrong was the total dropping, which is invisible unless you
8
+ * happen to remember the previous number.
10
9
  *
11
10
  * `node --test` exiting 0 does not mean the suite ran. This turns "silently ran
12
11
  * less" into a hard failure.
@@ -15,31 +14,68 @@
15
14
  * exact expectation, so it never breaks on additions.
16
15
  */
17
16
  import { spawn } from "node:child_process";
18
- import { readFileSync, existsSync, writeFileSync } from "node:fs";
17
+ import { readFileSync, existsSync, writeFileSync, readdirSync, statSync } from "node:fs";
19
18
  import path from "node:path";
20
19
 
21
- const FLOOR_FILE = path.join(import.meta.dirname, "..", ".test-floor");
20
+ const TEST_DIR = path.resolve(import.meta.dirname, "..", "src", "tests", "proof");
21
+ const FLOOR_FILE = path.resolve(import.meta.dirname, "..", ".test-floor");
22
22
 
23
- const args = [
24
- "--import",
25
- "./src/tests/proof/preload.ts",
26
- "--test",
27
- ...(process.argv.slice(2).length
28
- ? process.argv.slice(2)
29
- : ["src/tests/proof/*.test.ts"]),
30
- ];
23
+ const rawArgs = process.argv.slice(2);
24
+
25
+ if (rawArgs.includes("--help")) {
26
+ console.log(`Usage: node scripts/test-floor.mjs [options] [files...]
27
+
28
+ Options:
29
+ --update-floor Write the current test count to .test-floor and exit 0.
30
+ --help Show this message and exit 0.
31
+
32
+ Without files, every *.test.ts under src/tests/proof is run.
33
+ With files, those paths are passed through to node --test unchanged.
34
+
35
+ Environment:
36
+ TEST_FLOOR_ENFORCE=1 Enforce the floor even when running a targeted file list.
37
+ `);
38
+ process.exit(0);
39
+ }
40
+
41
+ const updateFloor = rawArgs.includes("--update-floor");
42
+ let userFiles = rawArgs.filter((a) => a !== "--update-floor");
43
+ // pnpm test -- <args> forwards a literal `--` before the user args; strip it
44
+ // so that flags and file paths reach node --test cleanly.
45
+ if (userFiles[0] === "--") {
46
+ userFiles.shift();
47
+ }
48
+
49
+ let testFiles;
50
+ if (userFiles.length > 0) {
51
+ testFiles = userFiles;
52
+ } else {
53
+ // Enumerate tests explicitly so we can spawn the runner without a shell.
54
+ testFiles = readdirSync(TEST_DIR)
55
+ .filter((f) => f.endsWith(".test.ts") && statSync(path.join(TEST_DIR, f)).isFile())
56
+ .sort()
57
+ .map((f) => path.join("src", "tests", "proof", f));
58
+ }
59
+
60
+ const args = ["--import", "./src/tests/proof/preload.ts", "--test", ...testFiles];
31
61
 
32
62
  // Resolve tsx explicitly rather than relying on PATH: this script is also run
33
63
  // directly (not just via pnpm, which injects node_modules/.bin).
34
- const TSX = path.join(import.meta.dirname, "..", "node_modules", ".bin", "tsx");
35
-
36
- // Shell needed for the glob; keep it explicit so the expansion is obvious.
37
- const child = spawn(
38
- `${TSX} ${args.map((a) => (a.includes("*") ? `'${a}'` : a)).join(" ")}`,
39
- { shell: true, stdio: ["inherit", "pipe", "pipe"] },
40
- );
64
+ const TSX = path.resolve(import.meta.dirname, "..", "node_modules", ".bin", "tsx");
41
65
 
42
66
  let out = "";
67
+
68
+ function flushSummary() {
69
+ // node:test's reporter prints "\u2139 tests N" on a TTY (spec reporter) and
70
+ // "# tests N" otherwise (plain TAP, e.g. in CI without a TTY). Accept both.
71
+ const m = out.match(/^(?:\u2139|#) tests (\d+)$/m);
72
+ const pass = out.match(/^(?:\u2139|#) pass (\d+)$/m);
73
+ return { total: m ? Number(m[1]) : null, passCount: pass ? Number(pass[1]) : null };
74
+ }
75
+
76
+ const repoRoot = path.resolve(import.meta.dirname, "..");
77
+ const child = spawn(TSX, args, { cwd: repoRoot, stdio: ["inherit", "pipe", "pipe"] });
78
+
43
79
  for (const stream of [child.stdout, child.stderr]) {
44
80
  stream.on("data", (b) => {
45
81
  const s = String(b);
@@ -48,34 +84,49 @@ for (const stream of [child.stdout, child.stderr]) {
48
84
  });
49
85
  }
50
86
 
51
- child.on("exit", (code) => {
87
+ child.on("error", (err) => {
88
+ console.error(`\n[test-floor] FAIL: failed to spawn test runner: ${err.message}`);
89
+ process.exit(1);
90
+ });
91
+
92
+ child.on("exit", (code, signal) => {
93
+ if (signal) {
94
+ console.error(`\n[test-floor] FAIL: test runner killed by ${signal}`);
95
+ process.exit(1);
96
+ }
97
+ if (code !== 0) process.exit(code ?? 1);
98
+
52
99
  // Only enforce the floor on a full-suite run; a targeted file run is fine.
53
100
  // TEST_FLOOR_ENFORCE=1 forces enforcement on a targeted run, which is how the
54
101
  // guard itself gets tested without paying for a full suite.
55
- const targeted =
56
- process.argv.slice(2).length > 0 && process.env.TEST_FLOOR_ENFORCE !== "1";
102
+ const targeted = userFiles.length > 0 && process.env.TEST_FLOOR_ENFORCE !== "1";
57
103
 
58
- const m = out.match(/^\u2139 tests (\d+)$/m);
59
- const pass = out.match(/^\u2139 pass (\d+)$/m);
60
- const total = m ? Number(m[1]) : null;
104
+ const { total, passCount } = flushSummary();
61
105
 
62
106
  if (!targeted && total === null) {
63
107
  console.error(
64
108
  "\n[test-floor] FAIL: no test summary found. The runner produced no " +
65
- "`\u2139 tests N` line, so the suite did not complete — regardless of exit code.",
109
+ "`ℹ tests N` line, so the suite did not complete — regardless of exit code.",
66
110
  );
67
111
  process.exit(1);
68
112
  }
69
113
 
70
- if (code !== 0) process.exit(code ?? 1);
71
114
  if (targeted) process.exit(0);
72
115
 
73
- if (!existsSync(FLOOR_FILE)) {
116
+ if (updateFloor) {
74
117
  writeFileSync(FLOOR_FILE, `${total}\n`);
75
- console.log(`[test-floor] initialised floor at ${total}`);
118
+ console.log(`[test-floor] floor updated to ${total}`);
76
119
  process.exit(0);
77
120
  }
78
121
 
122
+ if (!existsSync(FLOOR_FILE)) {
123
+ console.error(
124
+ `\n[test-floor] FAIL: ${path.basename(FLOOR_FILE)} does not exist. ` +
125
+ "Re-run with --update-floor to initialise it.",
126
+ );
127
+ process.exit(1);
128
+ }
129
+
79
130
  const floor = Number(readFileSync(FLOOR_FILE, "utf8").trim());
80
131
  if (Number.isFinite(floor) && total < floor) {
81
132
  console.error(
@@ -83,15 +134,13 @@ child.on("exit", (code) => {
83
134
  `${floor - total} test(s) did not run.\n` +
84
135
  "This is the silent-skip failure: `fail 0` and exit 0 while whole files " +
85
136
  "produced no output. Re-run on an idle machine; if the drop is intentional, " +
86
- `lower .test-floor deliberately.`,
137
+ "run `pnpm test -- --update-floor`.",
87
138
  );
88
139
  process.exit(1);
89
140
  }
90
141
 
91
- if (total > floor) {
92
- writeFileSync(FLOOR_FILE, `${total}\n`);
93
- console.log(`[test-floor] floor raised ${floor} \u2192 ${total}`);
94
- }
95
- console.log(`[test-floor] OK: ${pass ? pass[1] : total} passed, floor ${total}`);
142
+ console.log(
143
+ `[test-floor] OK: ${passCount ?? total} passed, ran ${total}${Number.isFinite(floor) ? `, floor ${floor}` : ""}`,
144
+ );
96
145
  process.exit(0);
97
146
  });