wiki-viewer 2.1.3 → 2.3.0

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 (204) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +2 -0
  3. package/.next/standalone/.next/build-manifest.json +6 -6
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +14 -0
  6. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
  7. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  19. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/.next/standalone/.next/server/app/api/agent/activity/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js +5 -5
  27. package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js +6 -6
  29. package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/agent/fs/move/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/agent/fs/search/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/agent/internal/span/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/agent/settings/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js +7 -6
  36. package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js +1 -1
  38. package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/assets/[...path]/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/pdf/save/route/app-paths-manifest.json +3 -0
  41. package/.next/standalone/.next/server/app/api/pdf/save/route/build-manifest.json +9 -0
  42. package/.next/standalone/.next/server/app/api/pdf/save/route/server-reference-manifest.json +4 -0
  43. package/.next/standalone/.next/server/app/api/pdf/save/route.js +15 -0
  44. package/.next/standalone/.next/server/app/api/pdf/save/route.js.map +5 -0
  45. package/.next/standalone/.next/server/app/api/pdf/save/route.js.nft.json +1 -0
  46. package/.next/standalone/.next/server/app/api/pdf/save/route_client-reference-manifest.js +3 -0
  47. package/.next/standalone/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/share/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/system/browse/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/system/reveal/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/api/system/set-root/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route/app-paths-manifest.json +3 -0
  53. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route/build-manifest.json +9 -0
  54. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route/server-reference-manifest.json +4 -0
  55. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route.js +15 -0
  56. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route.js.map +5 -0
  57. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route.js.nft.json +1 -0
  58. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route_client-reference-manifest.js +3 -0
  59. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.nft.json +1 -1
  60. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/api/system/workspaces/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/upload/[...path]/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/wiki/app/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/wiki/backlinks/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/wiki/content/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/api/wiki/download/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/api/wiki/file/route.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/api/wiki/folder/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/wiki/git-history/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/api/wiki/move/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/wiki/new-file/route.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/api/wiki/outlinks/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/wiki/page/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/wiki/presence/route.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/api/wiki/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/wiki/search/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/wiki/slugs/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/wiki/upload/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/wiki/watch/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/index.html +1 -1
  87. package/.next/standalone/.next/server/app/index.rsc +3 -3
  88. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  89. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  90. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  91. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  92. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  93. package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
  94. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +10 -1
  95. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/s/[token]/page/build-manifest.json +3 -3
  98. package/.next/standalone/.next/server/app/s/[token]/page.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/signin/page/build-manifest.json +3 -3
  101. package/.next/standalone/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app-paths-manifest.json +2 -0
  103. package/.next/standalone/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0d2jbo5.js +1 -1
  104. package/.next/standalone/.next/server/chunks/0zjb_server_app_api_system_workspaces_[id]_branch_route_actions_0y4z5lw.js +3 -0
  105. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09t4v4r._.js +3 -0
  106. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ajw6de._.js +3 -0
  107. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0m6r9ip._.js +3 -0
  108. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0stkifk._.js → [root-of-the-server]__0oruwos._.js} +2 -2
  109. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ovhccp._.js +3 -0
  110. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0n-chxk._.js → [root-of-the-server]__0vxex1w._.js} +3 -3
  111. package/.next/standalone/.next/server/chunks/_079xuln._.js +1 -1
  112. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_pdf_save_route_actions_12o20jg.js +3 -0
  113. package/.next/standalone/.next/server/chunks/src_lib_workspaces_ts_0qon40u._.js +2 -2
  114. package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_0s4yb1t._.js → 0~w0_katex_dist_katex_mjs_0ef9kx4._.js} +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__10te1ye._.js → [root-of-the-server]__0jerjyj._.js} +2 -2
  116. package/.next/standalone/.next/server/chunks/ssr/{_0hpi._s._.js → _0h8pw_0._.js} +3 -3
  117. package/.next/standalone/.next/server/chunks/ssr/{_026lnd.._.js → _0tz4-ka._.js} +4 -4
  118. package/.next/standalone/.next/server/chunks/ssr/_0v4uz-4._.js +19 -0
  119. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0mtrsi0._.js → node_modules__pnpm_0-xasf1._.js} +2 -2
  120. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0s-cj7c._.js → node_modules__pnpm_01zl9xh._.js} +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_05ans~m._.js → node_modules__pnpm_02ipeoh._.js} +1 -1
  122. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0u.uija._.js → node_modules__pnpm_02vec-5._.js} +1 -1
  123. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04frxp9._.js → node_modules__pnpm_04lfp99._.js} +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_05_oahi._.js → node_modules__pnpm_057iess._.js} +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0eqjo2f._.js → node_modules__pnpm_076~crc._.js} +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0iu44jv._.js → node_modules__pnpm_07sm52w._.js} +1 -1
  127. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0cahog3._.js → node_modules__pnpm_09-~ynq._.js} +1 -1
  128. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-a_zjq._.js → node_modules__pnpm_0b7yz5c._.js} +1 -1
  129. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_03rzttw._.js → node_modules__pnpm_0e8cct3._.js} +2 -2
  130. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0f-yazg._.js → node_modules__pnpm_0fpiq-_._.js} +1 -1
  131. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0n_swwn._.js → node_modules__pnpm_0f~p3pg._.js} +2 -2
  132. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0cxanql._.js → node_modules__pnpm_0ic~tgj._.js} +2 -2
  133. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ndyy93._.js → node_modules__pnpm_0ltuml.._.js} +1 -1
  134. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ygzt82._.js → node_modules__pnpm_0m7~7m_._.js} +1 -1
  135. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_02l_1_8._.js → node_modules__pnpm_0ms-p~~._.js} +1 -1
  136. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0m39f~t._.js → node_modules__pnpm_0nm~rx8._.js} +1 -1
  137. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ma-8l.._.js → node_modules__pnpm_0n~4rgy._.js} +1 -1
  138. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_06-2ia.._.js → node_modules__pnpm_0sl7atd._.js} +2 -2
  139. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0jh8q66._.js → node_modules__pnpm_0w3t223._.js} +2 -2
  140. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0tr41-t._.js → node_modules__pnpm_0wrbfuh._.js} +1 -1
  141. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_057-t6m._.js → node_modules__pnpm_0~azz1f._.js} +1 -1
  142. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0wiyn6d._.js → node_modules__pnpm_0~jz5ce._.js} +1 -1
  143. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0e09gmf._.js → node_modules__pnpm_10db3bh._.js} +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_086.ow4._.js → node_modules__pnpm_11mk8o4._.js} +1 -1
  145. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0met6sx._.js → node_modules__pnpm_13c9fa3._.js} +2 -2
  146. package/.next/standalone/.next/server/functions-config-manifest.json +1 -0
  147. package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
  148. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  149. package/.next/standalone/.next/server/pages/404.html +1 -1
  150. package/.next/standalone/.next/server/pages/500.html +1 -1
  151. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  153. package/.next/standalone/.next/static/chunks/0-p6_utxe5a_8.js +1 -0
  154. package/.next/standalone/.next/static/chunks/04_l8s7dy454_.js +1 -0
  155. package/.next/standalone/.next/static/chunks/057l2ju6dh43x.js +31 -0
  156. package/.next/standalone/.next/static/chunks/06eionk6sdadm.css +1 -0
  157. package/.next/standalone/.next/static/chunks/08mxtht3nlspn.css +5 -0
  158. package/.next/standalone/.next/static/chunks/0bu-qg3xcusv2.js +17 -0
  159. package/.next/standalone/.next/static/chunks/0cy32os0684dj.js +113 -0
  160. package/.next/standalone/.next/static/chunks/0ff5z2ti4cs.2.js +1 -0
  161. package/.next/standalone/.next/static/chunks/0k31ncl7m_j9q.js +5 -0
  162. package/.next/standalone/.next/static/chunks/0sshdogvg3twu.js +113 -0
  163. package/.next/standalone/.next/static/chunks/0~m~l6t.25dxo.js +1 -0
  164. package/.next/standalone/.next/static/chunks/10~nefki4aqgv.js +5 -0
  165. package/.next/standalone/.next/static/chunks/14~-bgg0b~4bh.js +1 -0
  166. package/.next/standalone/.next/static/chunks/{turbopack-12~z-mr7b9b50.js → turbopack-1105gjd__15ti.js} +1 -1
  167. package/.next/standalone/.next/static/media/altText_add.11l4.nysz0z47.svg +3 -0
  168. package/.next/standalone/.next/static/media/altText_disclaimer.0-fkoyz3r4.vr.svg +3 -0
  169. package/.next/standalone/.next/static/media/altText_done.09w1jqvk3ga77.svg +3 -0
  170. package/.next/standalone/.next/static/media/altText_spinner.011~3weg7vxwh.svg +30 -0
  171. package/.next/standalone/.next/static/media/altText_warning.0uszsbnztiu38.svg +3 -0
  172. package/.next/standalone/.next/static/media/comment-closeButton.09x_diuuox8.p.svg +3 -0
  173. package/.next/standalone/.next/static/media/comment-popup-editButton.0ncym9lg9cwyw.svg +5 -0
  174. package/.next/standalone/.next/static/media/cursor-editorFreeHighlight.089qa-ugkz~ml.svg +6 -0
  175. package/.next/standalone/.next/static/media/cursor-editorFreeText.13jy27m_lk2jb.svg +3 -0
  176. package/.next/standalone/.next/static/media/cursor-editorInk.0w~p4njb_q99n.svg +4 -0
  177. package/.next/standalone/.next/static/media/cursor-editorTextHighlight.0e14z1tamqi61.svg +8 -0
  178. package/.next/standalone/.next/static/media/editor-toolbar-delete.03wunzr0m9rov.svg +5 -0
  179. package/.next/standalone/.next/static/media/editor-toolbar-edit.0hg-w4v6gf5-d.svg +3 -0
  180. package/.next/standalone/.next/static/media/loading-icon.0gtb0.n871aax.gif +0 -0
  181. package/.next/standalone/.next/static/media/messageBar_closingButton.15rqkmbgrfbfy.svg +3 -0
  182. package/.next/standalone/.next/static/media/messageBar_info.17crwltyl6qk5.svg +3 -0
  183. package/.next/standalone/.next/static/media/messageBar_warning.0zri3991i~s-j.svg +3 -0
  184. package/.next/standalone/.next/static/media/toolbarButton-editorHighlight.0ni3w.c8~58pj.svg +6 -0
  185. package/.next/standalone/.next/static/media/toolbarButton-menuArrow.0tx16jlj3l~wi.svg +3 -0
  186. package/.next/standalone/package.json +2 -1
  187. package/.next/standalone/public/pdfjs/pdf.worker.min.mjs +28 -0
  188. package/package.json +2 -1
  189. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0k9mili._.js +0 -3
  190. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yxauu6._.js +0 -3
  191. package/.next/standalone/.next/server/chunks/ssr/src_app_page_tsx_0ss2.w7._.js +0 -19
  192. package/.next/standalone/.next/static/chunks/02c9264uigqjd.js +0 -1
  193. package/.next/standalone/.next/static/chunks/0_p-~rp2hak3c.js +0 -113
  194. package/.next/standalone/.next/static/chunks/0lrkdb9w.6kl1.js +0 -1
  195. package/.next/standalone/.next/static/chunks/0ocp.6r7w_saw.js +0 -31
  196. package/.next/standalone/.next/static/chunks/0oy4xayqkedl5.js +0 -113
  197. package/.next/standalone/.next/static/chunks/0quh-cfcrp2ib.js +0 -5
  198. package/.next/standalone/.next/static/chunks/0r0fa52s8puxv.js +0 -17
  199. package/.next/standalone/.next/static/chunks/0sx~65~lg4mgl.css +0 -5
  200. package/.next/standalone/.next/static/chunks/139g2hzko-flp.js +0 -1
  201. package/.next/standalone/.next/static/chunks/14_efa7172tp-.js +0 -1
  202. /package/.next/standalone/.next/static/{czHazDjTGrE8lFhf8IAtQ → w9MY1r-wlK_u_Hsax3Zde}/_buildManifest.js +0 -0
  203. /package/.next/standalone/.next/static/{czHazDjTGrE8lFhf8IAtQ → w9MY1r-wlK_u_Hsax3Zde}/_clientMiddlewareManifest.js +0 -0
  204. /package/.next/standalone/.next/static/{czHazDjTGrE8lFhf8IAtQ → w9MY1r-wlK_u_Hsax3Zde}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[830740,s=>{"use strict";s.s([])}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_api_pdf_save_route_actions_12o20jg.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[359211,787140,t=>{"use strict";let e;var r=t.i(750227),a=t.i(902157),s=t.i(666680),n=t.i(798003),i=t.i(874533),o=t.i(812057),l=t.i(912714),c=t.i(660526);let u=(0,o.promisify)(i.execFile);async function h(){if(!0!==e)try{await u("git",["--version"]),e=!0}catch{throw Error("git binary not found. Install git and ensure it is on PATH.")}}let f=/[;\|&$`<>(){}\n\0]/;function d(t,e={}){let r;if(f.test(t))return{ok:!1,reason:"URL contains forbidden characters"};try{r=new URL(t)}catch{return{ok:!1,reason:"URL could not be parsed"}}let a=r.protocol;if("https:"===a);else if("http:"===a&&e.allowInsecureHttp);else if("http:"===a)return{ok:!1,reason:"http: is not allowed (set allowInsecureHttp to permit)"};else return{ok:!1,reason:`Scheme '${a.replace(":","")}' is not allowed. Use https.`};let{allowedHosts:s}=e;if(s&&s.length>0){let t=r.hostname.toLowerCase();if(!s.map(t=>t.toLowerCase()).includes(t))return{ok:!1,reason:`Host '${r.hostname}' is not in the allowed hosts list`}}return{ok:!0,url:r}}async function p(t){let e=await (0,l.mkdtemp)(r.default.join((0,c.tmpdir)(),"wiki-git-")),s=r.default.join(e,"askpass.sh"),n=`#!/bin/sh
2
- printf '%s' '${t.replace(/'/g,"'\\''")}'`;(0,a.writeFileSync)(s,n,{mode:448});try{(0,a.chmodSync)(s,448)}catch{}return s}function w(t){try{(0,a.unlinkSync)(t)}catch{}let e=r.default.dirname(t);if(e!==(0,c.tmpdir)())try{(0,a.rmSync)(e,{recursive:!0,force:!0})}catch{}}async function g(t){let e=await p(t);return{env:{...process.env,GIT_ASKPASS:e,GIT_TERMINAL_PROMPT:"0"},askpassPath:e}}async function y(t){let e,a,{branch:s,token:n,destDir:i,subpath:o}=t,l=t.depth??1,c=t.username??"x-access-token";o&&(e=function(t){if(r.default.isAbsolute(t))throw Error("subpath must be relative");if(t.includes(".."))throw Error("subpath must not contain '..'");if(/[\0\n]/.test(t)||f.test(t))throw Error("subpath contains forbidden characters");let e=t.split(r.default.sep).join("/").replace(/\/+$/,"");if(".git"===e||e.startsWith(".git/"))throw Error("subpath must not point at .git");return e}(o));let h=["clone","--depth",String(l),"--single-branch","--no-tags"];s&&h.push("--branch",s),e&&h.push("--filter=blob:none","--sparse");let d=n?function(t,e){try{let r=new URL(t);return r.username=e,r.password="",r.toString()}catch{return t}}(t.remoteUrl,c):t.remoteUrl;h.push(d,i);try{if(n){let t=await g(n);a=t.askpassPath,await u("git",h,{env:t.env})}else await u("git",h,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});e&&await u("git",["-C",i,"sparse-checkout","set","--cone",e],{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}finally{a&&w(a)}}async function m(t){let e,{rootDir:r,token:a}=t,s=["-C",r,"pull","--ff-only"];try{if(a){let t=await g(a);e=t.askpassPath,await u("git",s,{env:t.env})}else await u("git",s,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}finally{e&&w(e)}}async function k(t){let{stdout:e}=await u("git",["-C",t,"rev-parse","HEAD"]);return e.trim()}async function v(t){let{stdout:e}=await u("git",["-C",t,"rev-parse","--abbrev-ref","HEAD"]);return e.trim()}async function S(t,e,r=50){let{stdout:a}=await u("git",["-C",t,"log","--follow",`--max-count=${r}`,"--pretty=format:%H\x1f%s\x1f%an\x1f%aI","--",e]);return a.trim()?a.trim().split("\n").map(t=>{let e=t.split("\x1f"),r=(e[0]??"").trim();return{sha:r,shortSha:r.slice(0,7),message:(e[1]??"").trim(),author:(e[2]??"").trim(),date:(e[3]??"").trim()}}):[]}async function b(t,e,r){try{let{stdout:a}=await u("git",["-C",t,"diff",`${r}^`,r,"--",e]);return a}catch{let{stdout:a}=await u("git",["-C",t,"show",r,"--",e]);return a}}async function P(t,e){try{let{stdout:r}=await u("git",["-C",t,"log","-1","--pretty=format:%H\x1f%an\x1f%aI","--",e]);if(!r.trim())return null;let a=r.trim().split("\x1f");return{sha:(a[0]??"").trim(),author:(a[1]??"").trim(),date:(a[2]??"").trim()}}catch{return null}}async function I(t){let{stdout:e}=await u("git",["-C",t,"branch"]);return e.split("\n").filter(Boolean).map(t=>({current:t.startsWith("*"),name:t.replace(/^\*?\s+/,"").trim()}))}async function R(t,e){if(!(!(!e||e.length>200||f.test(e)||e.includes("..")||e.startsWith("-")||e.startsWith("/")||e.endsWith("/"))&&/^[a-zA-Z0-9._\-/]+$/.test(e)&&1)){let t=Error("Invalid branch name");throw t.invalidBranch=!0,t}let{stdout:r}=await u("git",["-C",t,"status","--porcelain"]);if(r.trim().length>0){let t=Error("Repository has uncommitted changes");throw t.dirty=!0,t}await u("git",["-C",t,"checkout",e]);let[a,s]=await Promise.all([k(t),v(t)]);return{sha:a,branch:s}}async function O(t,e){let a=e.split("/").filter(Boolean);for(let e=a.length-1;e>=0;e--){let s=0===e?t:r.default.join(t,...a.slice(0,e));if(await A(s))return{repoDir:s,relFromRepo:a.slice(e).join("/")}}return null}async function A(t){try{await (0,l.stat)(r.default.join(t,".git"))}catch{return null}try{let{stdout:e}=await u("git",["-C",t,"rev-parse","--show-toplevel"]);if(e.trim()!==t)return null;let r=await v(t),{stdout:a}=await u("git",["-C",t,"status","--porcelain"]),s=a.trim().length>0;return{branch:r,dirty:s}}catch{return null}}function E(){return r.default.join(process.env.HOME??c.default.homedir(),".wiki-viewer")}function C(){return r.default.join(E(),"git-secrets.json")}function W(){let t=C();if(!(0,a.existsSync)(t))return{};try{return JSON.parse((0,a.readFileSync)(t,"utf-8"))}catch{return{}}}function D(t){let e=C();(0,a.writeFileSync)(e,JSON.stringify(t),{mode:384});try{(0,a.chmodSync)(e,384)}catch{}}function M(){return"git_"+(0,s.randomBytes)(9).toString("base64url")}async function T(t,e){await (0,l.mkdir)(E(),{recursive:!0});let r=W();r[t]=e,D(r)}async function U(t){return W()[t]??null}async function _(t){let e=W();t in e&&(delete e[t],D(e))}t.s(["assertGitAvailable",0,h,"cloneRepo",0,y,"currentBranch",0,v,"detectGitRepo",0,A,"findEnclosingGitRepo",0,O,"gitBranches",0,I,"gitCheckout",0,R,"gitFileDiff",0,b,"gitFileHistory",0,S,"gitFileInfo",0,P,"headSha",0,k,"pullRepo",0,m,"validateRemoteUrl",0,d],787140);var B=t.i(834938);async function H(){return(await (0,n.readConfig)()).workspaces??[]}async function $(t){return(await H()).find(e=>e.id===t)??null}async function x(t){let e=r.default.resolve(t.rootDir),a={id:"ws_"+(0,s.randomBytes)(6).toString("base64url"),name:t.name??r.default.basename(e),rootDir:e,createdAt:new Date().toISOString(),lastOpenedAt:new Date().toISOString(),createdBy:t.createdBy};return await (0,n.updateConfig)(t=>({...t,workspaces:[...t.workspaces??[],a]})),a}async function j(e){let i;if(await h(),!e.allowLocalPath){let t=d(e.remoteUrl,{allowedHosts:e.allowedHosts,allowInsecureHttp:e.allowInsecureHttp});if(!t.ok)throw Error(t.reason)}let o="ws_"+(0,s.randomBytes)(6).toString("base64url"),l=r.default.join((0,n.reposDir)(),o),c=e.subpath?r.default.join(l,e.subpath):l;e.token&&(i=M(),await T(i,e.token));try{await y({remoteUrl:e.remoteUrl,branch:e.branch,token:e.token,username:e.username,destDir:l,subpath:e.subpath})}catch(t){if(i)try{await _(i)}catch{}try{(0,a.rmSync)(l,{recursive:!0,force:!0})}catch{}throw t}if(e.subpath){let{lstat:s,realpath:n}=await t.A(687903),o=!1;try{if((await s(c)).isDirectory()){let t=await n(l),e=await n(c);o=e===t||e.startsWith(t+r.default.sep)}}catch{}if(!o){if(i)try{await _(i)}catch{}try{(0,a.rmSync)(l,{recursive:!0,force:!0})}catch{}throw Error(`Subpath '${e.subpath}' not found in the repository.`)}}let u=new Date().toISOString(),f=await k(l),p=e.branch?void 0:await v(l),w={id:o,name:e.name??r.default.basename(e.remoteUrl.replace(/\.git$/,"")),rootDir:c,createdAt:u,lastOpenedAt:u,createdBy:e.createdBy,readOnly:!0,git:{remoteUrl:e.remoteUrl,branch:e.branch??p,tokenRef:i,username:e.username,lastPulledAt:u,lastSha:f,subpath:e.subpath,cloneRoot:e.subpath?l:void 0}};return await (0,n.updateConfig)(t=>({...t,workspaces:[...t.workspaces??[],w]})),w}async function L(t){let e;await (0,B.assertSshfsAvailable)();let a=(0,B.parseSshTarget)(t.target);if(!a)throw Error("Invalid SSH target. Use the form user@host:/abs/path.");if("keyfile"===t.authMethod&&(!t.keyPath||!(0,B.isValidKeyPath)(t.keyPath)))throw Error("Invalid private key path.");if("password"===t.authMethod&&!t.password)throw Error("Password is required for password auth.");let i="ws_"+(0,s.randomBytes)(6).toString("base64url"),o=(0,B.mountpointFor)(i);"password"===t.authMethod&&t.password&&(e=M(),await T(e,t.password));try{await (0,B.mountSshfs)({mountpoint:o,target:a,port:t.port,authMethod:t.authMethod,keyPath:t.keyPath,password:t.password,readOnly:t.readOnly})}catch(t){if(e)try{await _(e)}catch{}try{await (0,B.unmountSshfs)(o)}catch{}throw t}let l=new Date().toISOString(),c={id:i,name:t.name??`${a.host}:${r.default.basename(a.remotePath)||a.remotePath}`,rootDir:o,createdAt:l,lastOpenedAt:l,createdBy:t.createdBy,readOnly:t.readOnly??!1,ssh:{target:t.target.trim(),host:a.host,user:a.user,remotePath:a.remotePath,port:t.port,authMethod:t.authMethod,keyPath:t.keyPath,secretRef:e,mountpoint:o,lastMountedAt:l}};return await (0,n.updateConfig)(t=>({...t,workspaces:[...t.workspaces??[],c]})),c}async function G(t){if(!t.ssh||await (0,B.isMounted)(t.ssh.mountpoint))return;let e=(0,B.parseSshTarget)(t.ssh.target);if(!e)return void await N(t.id,t=>({...t,ssh:t.ssh?{...t.ssh,lastError:"Invalid stored SSH target."}:t.ssh}));let r=t.ssh.secretRef?await U(t.ssh.secretRef)??void 0:void 0;try{await (0,B.mountSshfs)({mountpoint:t.ssh.mountpoint,target:e,port:t.ssh.port,authMethod:t.ssh.authMethod,keyPath:t.ssh.keyPath,password:r,readOnly:t.readOnly}),await N(t.id,t=>({...t,ssh:t.ssh?{...t.ssh,lastMountedAt:new Date().toISOString(),lastError:void 0}:t.ssh}))}catch(r){let e=r instanceof Error?r.message:String(r);await N(t.id,t=>({...t,ssh:t.ssh?{...t.ssh,lastError:e}:t.ssh}))}}async function F(t){let e=await $(t);if(!e)throw Error(`Workspace ${t} not found`);if(!e.git)throw Error(`Workspace ${t} is not a git-backed workspace`);let r=e.git.tokenRef?await U(e.git.tokenRef)??void 0:void 0,a=e.git.cloneRoot??e.rootDir;try{await m({rootDir:a,token:r,username:e.git.username})}catch(r){let e=r instanceof Error?r.message:String(r);throw await N(t,t=>({...t,git:t.git?{...t.git,lastError:e}:t.git})),r}let s=await k(a),n=new Date().toISOString();return await N(t,t=>({...t,git:t.git?{...t.git,lastSha:s,lastPulledAt:n,lastError:void 0}:t.git})),{lastSha:s,lastPulledAt:n}}function N(t,e){return(0,n.updateConfig)(r=>{let a=(r.workspaces??[]).map(r=>r.id===t?e(r):r);return{...r,workspaces:a}}).then(()=>void 0)}async function z(t,e){await N(t,t=>({...t,name:e}))}async function J(e){let s=await $(e);if(await (0,n.updateConfig)(t=>({...t,workspaces:(t.workspaces??[]).filter(t=>t.id!==e)})),s?.git?.tokenRef)try{await _(s.git.tokenRef)}catch{}if(s?.git){let t=r.default.resolve(s.git.cloneRoot??s.rootDir),e=r.default.resolve((0,n.reposDir)()),i=r.default.relative(e,t);if(t!==e&&""!==i&&!i.startsWith("..")&&!r.default.isAbsolute(i))try{(0,a.rmSync)(t,{recursive:!0,force:!0})}catch{}}if(s?.ssh){let t=r.default.resolve(s.ssh.mountpoint),e=r.default.resolve((0,B.mountsDir)()),a=r.default.relative(e,t);if(t!==e&&""!==a&&!a.startsWith("..")&&!r.default.isAbsolute(a))try{await (0,B.unmountSshfs)(t)}catch{}if(s.ssh.secretRef)try{await _(s.ssh.secretRef)}catch{}}try{let{purgeWorkspace:r}=await t.A(754121);await r(e)}catch(t){console.error("[search] purge failed on workspace remove",t)}}async function K(t,e){await N(t,t=>({...t,allowedUserIds:e}))}async function q(t,e){await N(t,t=>({...t,pinnedPaths:e}))}async function V(t){await N(t,t=>({...t,lastOpenedAt:new Date().toISOString()}))}let Z=!1;async function Q(){if(Z)return;let t=t=>t.lastOpenedPath??(process.env.ROOT_DIR?r.default.resolve(process.env.ROOT_DIR):null),e=await (0,n.readConfig)();if((e.workspaces??[]).length>0||!t(e)){Z=!0;return}let a=null;await (0,n.updateConfig)(e=>{let n=e.workspaces??[],i=t(e);if(n.length>0||!i)return e;let o=r.default.resolve(i);return a={id:"ws_"+(0,s.randomBytes)(6).toString("base64url"),name:r.default.basename(o),rootDir:o,createdAt:new Date().toISOString(),lastOpenedAt:new Date().toISOString(),pinnedPaths:e.pinnedPaths},{...e,workspaces:[a]}}),a&&console.log(`[wiki-viewer] Migrated lastOpenedPath → workspace "${a.name}" (${a.id})`),Z=!0}t.s(["createGitWorkspace",0,j,"createSshWorkspace",0,L,"createWorkspace",0,x,"ensureWorkspaceMounted",0,G,"getWorkspace",0,$,"listWorkspaces",0,H,"migrateConfigToWorkspaces",0,Q,"refreshGitWorkspace",0,F,"removeWorkspace",0,J,"renameWorkspace",0,z,"safeWorkspacePath",0,function(t,e){if(!t)return null;if(!e||"."===e)return t;let a=r.default.resolve(t,e);return a===t||a.startsWith(t+r.default.sep)?a:null},"sanitizeWorkspace",0,function(t){let e=t;if(e.git){let{tokenRef:t,...r}=e.git;e={...e,git:r}}if(e.ssh){let{secretRef:t,...r}=e.ssh;e={...e,ssh:r}}return e},"setWorkspaceAccess",0,K,"setWorkspacePins",0,q,"touchWorkspace",0,V,"userCanAccess",0,function(t,e,r){return!!r||!t.allowedUserIds||0===t.allowedUserIds.length||t.allowedUserIds.includes(e)}],359211)}];
1
+ module.exports=[359211,787140,t=>{"use strict";let e;var a=t.i(750227),r=t.i(902157),i=t.i(666680),n=t.i(798003),s=t.i(874533),o=t.i(812057),l=t.i(912714),c=t.i(660526);let u=(0,o.promisify)(s.execFile);async function h(){if(!0!==e)try{await u("git",["--version"]),e=!0}catch{throw Error("git binary not found. Install git and ensure it is on PATH.")}}let f=/[;\|&$`<>(){}\n\0]/;function d(t,e={}){let a;if(f.test(t))return{ok:!1,reason:"URL contains forbidden characters"};try{a=new URL(t)}catch{return{ok:!1,reason:"URL could not be parsed"}}let r=a.protocol;if("https:"===r);else if("http:"===r&&e.allowInsecureHttp);else if("http:"===r)return{ok:!1,reason:"http: is not allowed (set allowInsecureHttp to permit)"};else return{ok:!1,reason:`Scheme '${r.replace(":","")}' is not allowed. Use https.`};let{allowedHosts:i}=e;if(i&&i.length>0){let t=a.hostname.toLowerCase();if(!i.map(t=>t.toLowerCase()).includes(t))return{ok:!1,reason:`Host '${a.hostname}' is not in the allowed hosts list`}}return{ok:!0,url:a}}async function w(t){let e=await (0,l.mkdtemp)(a.default.join((0,c.tmpdir)(),"wiki-git-")),i=a.default.join(e,"askpass.sh"),n=`#!/bin/sh
2
+ printf '%s' '${t.replace(/'/g,"'\\''")}'`;(0,r.writeFileSync)(i,n,{mode:448});try{(0,r.chmodSync)(i,448)}catch{}return i}function p(t){try{(0,r.unlinkSync)(t)}catch{}let e=a.default.dirname(t);if(e!==(0,c.tmpdir)())try{(0,r.rmSync)(e,{recursive:!0,force:!0})}catch{}}async function g(t){let e=await w(t);return{env:{...process.env,GIT_ASKPASS:e,GIT_TERMINAL_PROMPT:"0"},askpassPath:e}}async function m(t){let e,r,{branch:i,token:n,destDir:s,subpath:o}=t,l=t.depth??1,c=t.username??"x-access-token";o&&(e=function(t){if(a.default.isAbsolute(t))throw Error("subpath must be relative");if(t.includes(".."))throw Error("subpath must not contain '..'");if(/[\0\n]/.test(t)||f.test(t))throw Error("subpath contains forbidden characters");let e=t.split(a.default.sep).join("/").replace(/\/+$/,"");if(".git"===e||e.startsWith(".git/"))throw Error("subpath must not point at .git");return e}(o));let h=["clone","--depth",String(l),"--single-branch","--no-tags"];i&&h.push("--branch",i),e&&h.push("--filter=blob:none","--sparse");let d=n?function(t,e){try{let a=new URL(t);return a.username=e,a.password="",a.toString()}catch{return t}}(t.remoteUrl,c):t.remoteUrl;h.push(d,s);try{if(n){let t=await g(n);r=t.askpassPath,await u("git",h,{env:t.env})}else await u("git",h,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});e&&await u("git",["-C",s,"sparse-checkout","set","--cone",e],{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}finally{r&&p(r)}}async function y(t){let e,{rootDir:a,token:r}=t,i=["-C",a,"pull","--ff-only"];try{if(r){let t=await g(r);e=t.askpassPath,await u("git",i,{env:t.env})}else await u("git",i,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}finally{e&&p(e)}}async function k(t){let{stdout:e}=await u("git",["-C",t,"rev-parse","HEAD"]);return e.trim()}async function v(t){let{stdout:e}=await u("git",["-C",t,"rev-parse","--abbrev-ref","HEAD"]);return e.trim()}async function S(t,e,a=50){let{stdout:r}=await u("git",["-C",t,"log","--follow",`--max-count=${a}`,"--pretty=format:%H\x1f%s\x1f%an\x1f%aI","--",e]);return r.trim()?r.trim().split("\n").map(t=>{let e=t.split("\x1f"),a=(e[0]??"").trim();return{sha:a,shortSha:a.slice(0,7),message:(e[1]??"").trim(),author:(e[2]??"").trim(),date:(e[3]??"").trim()}}):[]}async function b(t,e,a){try{let{stdout:r}=await u("git",["-C",t,"diff",`${a}^`,a,"--",e]);return r}catch{let{stdout:r}=await u("git",["-C",t,"show",a,"--",e]);return r}}async function R(t,e){try{let{stdout:a}=await u("git",["-C",t,"log","-1","--pretty=format:%H\x1f%an\x1f%aI","--",e]);if(!a.trim())return null;let r=a.trim().split("\x1f");return{sha:(r[0]??"").trim(),author:(r[1]??"").trim(),date:(r[2]??"").trim()}}catch{return null}}async function P(t){let{stdout:e}=await u("git",["-C",t,"branch"]);return e.split("\n").filter(Boolean).map(t=>({current:t.startsWith("*"),name:t.replace(/^\*?\s+/,"").trim()}))}function I(t){return!(!t||t.length>200||f.test(t)||t.includes("..")||t.startsWith("-")||t.startsWith("/")||t.endsWith("/"))&&!!/^[a-zA-Z0-9._\-/]+$/.test(t)}async function E(t,e){if(!I(e)){let t=Error("Invalid branch name");throw t.invalidBranch=!0,t}let{stdout:a}=await u("git",["-C",t,"status","--porcelain"]);if(a.trim().length>0){let t=Error("Repository has uncommitted changes");throw t.dirty=!0,t}await u("git",["-C",t,"checkout",e]);let[r,i]=await Promise.all([k(t),v(t)]);return{sha:r,branch:i}}async function A(t,e={}){let a,r=["-C",t,"ls-remote","--heads","origin"];try{let t;if(e.token){let i=await g(e.token);a=i.askpassPath,{stdout:t}=await u("git",r,{env:i.env})}else({stdout:t}=await u("git",r,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}}));return t.split("\n").map(t=>t.replace(/^.*\trefs\/heads\//,"").trim()).filter(Boolean)}finally{a&&p(a)}}async function O(t,e,a={}){let r;if(!I(e)){let t=Error("Invalid branch name");throw t.invalidBranch=!0,t}try{let i={...process.env,GIT_TERMINAL_PROMPT:"0"};if(a.token){let t=await g(a.token);r=t.askpassPath,i=t.env}await u("git",["-C",t,"fetch","--depth","1","origin",e],{env:i}),await u("git",["-C",t,"checkout","-B",e,"FETCH_HEAD"]),await u("git",["-C",t,"config",`branch.${e}.remote`,"origin"]),await u("git",["-C",t,"config",`branch.${e}.merge`,`refs/heads/${e}`])}finally{r&&p(r)}let[i,n]=await Promise.all([k(t),v(t)]);return{sha:i,branch:n}}async function C(t,e){let r=e.split("/").filter(Boolean);for(let e=r.length-1;e>=0;e--){let i=0===e?t:a.default.join(t,...r.slice(0,e));if(await W(i))return{repoDir:i,relFromRepo:r.slice(e).join("/")}}return null}async function W(t){try{await (0,l.stat)(a.default.join(t,".git"))}catch{return null}try{let{stdout:e}=await u("git",["-C",t,"rev-parse","--show-toplevel"]);if(e.trim()!==t)return null;let a=await v(t),{stdout:r}=await u("git",["-C",t,"status","--porcelain"]),i=r.trim().length>0;return{branch:a,dirty:i}}catch{return null}}function D(){return a.default.join(process.env.HOME??c.default.homedir(),".wiki-viewer")}function M(){return a.default.join(D(),"git-secrets.json")}function T(){let t=M();if(!(0,r.existsSync)(t))return{};try{return JSON.parse((0,r.readFileSync)(t,"utf-8"))}catch{return{}}}function B(t){let e=M();(0,r.writeFileSync)(e,JSON.stringify(t),{mode:384});try{(0,r.chmodSync)(e,384)}catch{}}function _(){return"git_"+(0,i.randomBytes)(9).toString("base64url")}async function $(t,e){await (0,l.mkdir)(D(),{recursive:!0});let a=T();a[t]=e,B(a)}async function U(t){return T()[t]??null}async function H(t){let e=T();t in e&&(delete e[t],B(e))}t.s(["assertGitAvailable",0,h,"cloneRepo",0,m,"currentBranch",0,v,"detectGitRepo",0,W,"findEnclosingGitRepo",0,C,"gitBranches",0,P,"gitCheckout",0,E,"gitFileDiff",0,b,"gitFileHistory",0,S,"gitFileInfo",0,R,"gitRemoteBranches",0,A,"gitSwitchBranch",0,O,"headSha",0,k,"pullRepo",0,y,"validateRemoteUrl",0,d],787140);var G=t.i(834938);async function L(){return(await (0,n.readConfig)()).workspaces??[]}async function x(t){return(await L()).find(e=>e.id===t)??null}async function j(t){let e=a.default.resolve(t.rootDir),r={id:"ws_"+(0,i.randomBytes)(6).toString("base64url"),name:t.name??a.default.basename(e),rootDir:e,createdAt:new Date().toISOString(),lastOpenedAt:new Date().toISOString(),createdBy:t.createdBy};return await (0,n.updateConfig)(t=>({...t,workspaces:[...t.workspaces??[],r]})),r}async function F(e){let s;if(await h(),!e.allowLocalPath){let t=d(e.remoteUrl,{allowedHosts:e.allowedHosts,allowInsecureHttp:e.allowInsecureHttp});if(!t.ok)throw Error(t.reason)}let o="ws_"+(0,i.randomBytes)(6).toString("base64url"),l=a.default.join((0,n.reposDir)(),o),c=e.subpath?a.default.join(l,e.subpath):l;e.token&&(s=_(),await $(s,e.token));try{await m({remoteUrl:e.remoteUrl,branch:e.branch,token:e.token,username:e.username,destDir:l,subpath:e.subpath})}catch(t){if(s)try{await H(s)}catch{}try{(0,r.rmSync)(l,{recursive:!0,force:!0})}catch{}throw t}if(e.subpath){let{lstat:i,realpath:n}=await t.A(687903),o=!1;try{if((await i(c)).isDirectory()){let t=await n(l),e=await n(c);o=e===t||e.startsWith(t+a.default.sep)}}catch{}if(!o){if(s)try{await H(s)}catch{}try{(0,r.rmSync)(l,{recursive:!0,force:!0})}catch{}throw Error(`Subpath '${e.subpath}' not found in the repository.`)}}let u=new Date().toISOString(),f=await k(l),w=e.branch?void 0:await v(l),p={id:o,name:e.name??a.default.basename(e.remoteUrl.replace(/\.git$/,"")),rootDir:c,createdAt:u,lastOpenedAt:u,createdBy:e.createdBy,readOnly:!0,git:{remoteUrl:e.remoteUrl,branch:e.branch??w,tokenRef:s,username:e.username,lastPulledAt:u,lastSha:f,subpath:e.subpath,cloneRoot:e.subpath?l:void 0}};return await (0,n.updateConfig)(t=>({...t,workspaces:[...t.workspaces??[],p]})),p}async function N(t){let e;await (0,G.assertSshfsAvailable)();let r=(0,G.parseSshTarget)(t.target);if(!r)throw Error("Invalid SSH target. Use the form user@host:/abs/path.");if("keyfile"===t.authMethod&&(!t.keyPath||!(0,G.isValidKeyPath)(t.keyPath)))throw Error("Invalid private key path.");if("password"===t.authMethod&&!t.password)throw Error("Password is required for password auth.");let s="ws_"+(0,i.randomBytes)(6).toString("base64url"),o=(0,G.mountpointFor)(s);"password"===t.authMethod&&t.password&&(e=_(),await $(e,t.password));try{await (0,G.mountSshfs)({mountpoint:o,target:r,port:t.port,authMethod:t.authMethod,keyPath:t.keyPath,password:t.password,readOnly:t.readOnly})}catch(t){if(e)try{await H(e)}catch{}try{await (0,G.unmountSshfs)(o)}catch{}throw t}let l=new Date().toISOString(),c={id:s,name:t.name??`${r.host}:${a.default.basename(r.remotePath)||r.remotePath}`,rootDir:o,createdAt:l,lastOpenedAt:l,createdBy:t.createdBy,readOnly:t.readOnly??!1,ssh:{target:t.target.trim(),host:r.host,user:r.user,remotePath:r.remotePath,port:t.port,authMethod:t.authMethod,keyPath:t.keyPath,secretRef:e,mountpoint:o,lastMountedAt:l}};return await (0,n.updateConfig)(t=>({...t,workspaces:[...t.workspaces??[],c]})),c}async function z(t){if(!t.ssh||await (0,G.isMounted)(t.ssh.mountpoint))return;let e=(0,G.parseSshTarget)(t.ssh.target);if(!e)return void await V(t.id,t=>({...t,ssh:t.ssh?{...t.ssh,lastError:"Invalid stored SSH target."}:t.ssh}));let a=t.ssh.secretRef?await U(t.ssh.secretRef)??void 0:void 0;try{await (0,G.mountSshfs)({mountpoint:t.ssh.mountpoint,target:e,port:t.ssh.port,authMethod:t.ssh.authMethod,keyPath:t.ssh.keyPath,password:a,readOnly:t.readOnly}),await V(t.id,t=>({...t,ssh:t.ssh?{...t.ssh,lastMountedAt:new Date().toISOString(),lastError:void 0}:t.ssh}))}catch(a){let e=a instanceof Error?a.message:String(a);await V(t.id,t=>({...t,ssh:t.ssh?{...t.ssh,lastError:e}:t.ssh}))}}async function J(t){let e=await x(t);if(!e)throw Error(`Workspace ${t} not found`);if(!e.git)throw Error(`Workspace ${t} is not a git-backed workspace`);let a=e.git.tokenRef?await U(e.git.tokenRef)??void 0:void 0,r=e.git.cloneRoot??e.rootDir;try{await y({rootDir:r,token:a,username:e.git.username})}catch(a){let e=a instanceof Error?a.message:String(a);throw await V(t,t=>({...t,git:t.git?{...t.git,lastError:e}:t.git})),a}let i=await k(r),n=new Date().toISOString();return await V(t,t=>({...t,git:t.git?{...t.git,lastSha:i,lastPulledAt:n,lastError:void 0}:t.git})),{lastSha:i,lastPulledAt:n}}async function K(t){let e=await x(t);if(!e?.git)throw Error(`Workspace ${t} is not a git-backed workspace`);let a=e.git.tokenRef?await U(e.git.tokenRef)??void 0:void 0;return A(e.git.cloneRoot??e.rootDir,{token:a,username:e.git.username})}async function q(t,e){let a,r=await x(t);if(!r?.git)throw Error(`Workspace ${t} is not a git-backed workspace`);let i=r.git.tokenRef?await U(r.git.tokenRef)??void 0:void 0,n=r.git.cloneRoot??r.rootDir;try{a=await O(n,e,{token:i,username:r.git.username})}catch(a){let e=a instanceof Error?a.message:String(a);throw await V(t,t=>({...t,git:t.git?{...t.git,lastError:e}:t.git})),a}let s=new Date().toISOString();return await V(t,t=>({...t,git:t.git?{...t.git,branch:a.branch,lastSha:a.sha,lastPulledAt:s,lastError:void 0}:t.git})),{branch:a.branch,lastSha:a.sha}}function V(t,e){return(0,n.updateConfig)(a=>{let r=(a.workspaces??[]).map(a=>a.id===t?e(a):a);return{...a,workspaces:r}}).then(()=>void 0)}async function Z(t,e){await V(t,t=>({...t,name:e}))}async function Q(e){let i=await x(e);if(await (0,n.updateConfig)(t=>({...t,workspaces:(t.workspaces??[]).filter(t=>t.id!==e)})),i?.git?.tokenRef)try{await H(i.git.tokenRef)}catch{}if(i?.git){let t=a.default.resolve(i.git.cloneRoot??i.rootDir),e=a.default.resolve((0,n.reposDir)()),s=a.default.relative(e,t);if(t!==e&&""!==s&&!s.startsWith("..")&&!a.default.isAbsolute(s))try{(0,r.rmSync)(t,{recursive:!0,force:!0})}catch{}}if(i?.ssh){let t=a.default.resolve(i.ssh.mountpoint),e=a.default.resolve((0,G.mountsDir)()),r=a.default.relative(e,t);if(t!==e&&""!==r&&!r.startsWith("..")&&!a.default.isAbsolute(r))try{await (0,G.unmountSshfs)(t)}catch{}if(i.ssh.secretRef)try{await H(i.ssh.secretRef)}catch{}}try{let{purgeWorkspace:a}=await t.A(754121);await a(e)}catch(t){console.error("[search] purge failed on workspace remove",t)}}async function X(t,e){await V(t,t=>({...t,allowedUserIds:e}))}async function Y(t,e){await V(t,t=>({...t,pinnedPaths:e}))}async function tt(t){await V(t,t=>({...t,lastOpenedAt:new Date().toISOString()}))}let te=!1;async function ta(){if(te)return;let t=t=>t.lastOpenedPath??(process.env.ROOT_DIR?a.default.resolve(process.env.ROOT_DIR):null),e=await (0,n.readConfig)();if((e.workspaces??[]).length>0||!t(e)){te=!0;return}let r=null;await (0,n.updateConfig)(e=>{let n=e.workspaces??[],s=t(e);if(n.length>0||!s)return e;let o=a.default.resolve(s);return r={id:"ws_"+(0,i.randomBytes)(6).toString("base64url"),name:a.default.basename(o),rootDir:o,createdAt:new Date().toISOString(),lastOpenedAt:new Date().toISOString(),pinnedPaths:e.pinnedPaths},{...e,workspaces:[r]}}),r&&console.log(`[wiki-viewer] Migrated lastOpenedPath → workspace "${r.name}" (${r.id})`),te=!0}t.s(["createGitWorkspace",0,F,"createSshWorkspace",0,N,"createWorkspace",0,j,"ensureWorkspaceMounted",0,z,"getWorkspace",0,x,"listGitWorkspaceBranches",0,K,"listWorkspaces",0,L,"migrateConfigToWorkspaces",0,ta,"refreshGitWorkspace",0,J,"removeWorkspace",0,Q,"renameWorkspace",0,Z,"safeWorkspacePath",0,function(t,e){if(!t)return null;if(!e||"."===e)return t;let r=a.default.resolve(t,e);return r===t||r.startsWith(t+a.default.sep)?r:null},"sanitizeWorkspace",0,function(t){let e=t;if(e.git){let{tokenRef:t,...a}=e.git;e={...e,git:a}}if(e.ssh){let{secretRef:t,...a}=e.ssh;e={...e,ssh:a}}return e},"setWorkspaceAccess",0,X,"setWorkspacePins",0,Y,"switchGitWorkspaceBranch",0,q,"touchWorkspace",0,tt,"userCanAccess",0,function(t,e,a){return!!a||!t.allowedUserIds||0===t.allowedUserIds.length||t.allowedUserIds.includes(e)}],359211)}];
3
3
 
4
4
  //# sourceMappingURL=src_lib_workspaces_ts_0qon40u._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[389424,a=>{a.v(b=>Promise.all(["server/chunks/ssr/0~w0_katex_dist_katex_mjs_0-.ao2a._.js"].map(b=>a.l(b))).then(()=>b(706823)))}];
2
2
 
3
- //# sourceMappingURL=0~w0_katex_dist_katex_mjs_0s4yb1t._.js.map
3
+ //# sourceMappingURL=0~w0_katex_dist_katex_mjs_0ef9kx4._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},857764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},462711,651212,316552,a=>{"use strict";var b=a.i(750227);a.s(["minpath",()=>b.default],462711);var c=a.i(59639);a.s(["minproc",()=>c.default],651212);var d=a.i(857764);a.s(["urlToPath",()=>d.fileURLToPath],316552)},314875,a=>{"use strict";var b=function(a,c){return(b=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])})(a,c)},c=function(){return(c=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError,a.s(["__assign",()=>c,"__awaiter",0,function(a,b,c,d){return new(c||(c=Promise))(function(e,f){function g(a){try{i(d.next(a))}catch(a){f(a)}}function h(a){try{i(d.throw(a))}catch(a){f(a)}}function i(a){var b;a.done?e(a.value):((b=a.value)instanceof c?b:new c(function(a){a(b)})).then(g,h)}i((d=d.apply(a,b||[])).next())})},"__extends",0,function(a,c){if("function"!=typeof c&&null!==c)throw TypeError("Class extends value "+String(c)+" is not a constructor or null");function d(){this.constructor=a}b(a,c),a.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)},"__generator",0,function(a,b){var c,d,e,f={label:0,sent:function(){if(1&e[0])throw e[1];return e[1]},trys:[],ops:[]},g=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return g.next=h(0),g.throw=h(1),g.return=h(2),"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function h(h){return function(i){var j=[h,i];if(c)throw TypeError("Generator is already executing.");for(;g&&(g=0,j[0]&&(f=0)),f;)try{if(c=1,d&&(e=2&j[0]?d.return:j[0]?d.throw||((e=d.return)&&e.call(d),0):d.next)&&!(e=e.call(d,j[1])).done)return e;switch(d=0,e&&(j=[2&j[0],e.value]),j[0]){case 0:case 1:e=j;break;case 4:return f.label++,{value:j[1],done:!1};case 5:f.label++,d=j[1],j=[0];continue;case 7:j=f.ops.pop(),f.trys.pop();continue;default:if(!(e=(e=f.trys).length>0&&e[e.length-1])&&(6===j[0]||2===j[0])){f=0;continue}if(3===j[0]&&(!e||j[1]>e[0]&&j[1]<e[3])){f.label=j[1];break}if(6===j[0]&&f.label<e[1]){f.label=e[1],e=j;break}if(e&&f.label<e[2]){f.label=e[2],f.ops.push(j);break}e[2]&&f.ops.pop(),f.trys.pop();continue}j=b.call(a,f)}catch(a){j=[6,a],d=0}finally{c=e=0}if(5&j[0])throw j[1];return{value:j[0]?j[1]:void 0,done:!0}}}},"__rest",0,function(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c},"__spreadArray",0,function(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))}])},334743,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_0n_swwn._.js","server/chunks/ssr/node_modules__pnpm_04rulr6._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-5ZQYHXKU_mjs_0z1.978._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-XPW4576I_mjs_0u7glrg._.js","server/chunks/ssr/0hhx_roughjs_bundled_rough_esm_0hyphnf.js","server/chunks/ssr/12y~_mermaid_dist_mermaid_core_mjs_0hj_n-~._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-CSCIHK7Q_mjs_01i7moi._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-3OPIFGDE_mjs_09p1amp._.js","server/chunks/ssr/node_modules__pnpm_00krony._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-O5CBEL6O_mjs_11437bo._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-KSCS5N6A_mjs_0v4oeem._.js"].map(b=>a.l(b))).then(()=>b(496249)))},458647,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__05-uq57._.js","server/chunks/ssr/node_modules__pnpm_0a4su30._.js","server/chunks/ssr/0~c0_docx-preview_dist_docx-preview_mjs_107snq3._.js"].map(b=>a.l(b))).then(()=>b(204460)))},287443,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0btd01s._.js","server/chunks/ssr/node_modules__pnpm_0o~d81.._.js","server/chunks/ssr/node_modules__pnpm_0a4su30._.js"].map(b=>a.l(b))).then(()=>b(170263)))},57386,a=>{a.v(b=>Promise.all(["server/chunks/ssr/0se0_xlsx_xlsx_mjs_12z-ju4._.js"].map(b=>a.l(b))).then(()=>b(86253)))}];
1
+ module.exports=[750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},857764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},462711,651212,316552,a=>{"use strict";var b=a.i(750227);a.s(["minpath",()=>b.default],462711);var c=a.i(59639);a.s(["minproc",()=>c.default],651212);var d=a.i(857764);a.s(["urlToPath",()=>d.fileURLToPath],316552)},314875,a=>{"use strict";var b=function(a,c){return(b=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])})(a,c)},c=function(){return(c=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError,a.s(["__assign",()=>c,"__awaiter",0,function(a,b,c,d){return new(c||(c=Promise))(function(e,f){function g(a){try{i(d.next(a))}catch(a){f(a)}}function h(a){try{i(d.throw(a))}catch(a){f(a)}}function i(a){var b;a.done?e(a.value):((b=a.value)instanceof c?b:new c(function(a){a(b)})).then(g,h)}i((d=d.apply(a,b||[])).next())})},"__extends",0,function(a,c){if("function"!=typeof c&&null!==c)throw TypeError("Class extends value "+String(c)+" is not a constructor or null");function d(){this.constructor=a}b(a,c),a.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)},"__generator",0,function(a,b){var c,d,e,f={label:0,sent:function(){if(1&e[0])throw e[1];return e[1]},trys:[],ops:[]},g=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return g.next=h(0),g.throw=h(1),g.return=h(2),"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function h(h){return function(i){var j=[h,i];if(c)throw TypeError("Generator is already executing.");for(;g&&(g=0,j[0]&&(f=0)),f;)try{if(c=1,d&&(e=2&j[0]?d.return:j[0]?d.throw||((e=d.return)&&e.call(d),0):d.next)&&!(e=e.call(d,j[1])).done)return e;switch(d=0,e&&(j=[2&j[0],e.value]),j[0]){case 0:case 1:e=j;break;case 4:return f.label++,{value:j[1],done:!1};case 5:f.label++,d=j[1],j=[0];continue;case 7:j=f.ops.pop(),f.trys.pop();continue;default:if(!(e=(e=f.trys).length>0&&e[e.length-1])&&(6===j[0]||2===j[0])){f=0;continue}if(3===j[0]&&(!e||j[1]>e[0]&&j[1]<e[3])){f.label=j[1];break}if(6===j[0]&&f.label<e[1]){f.label=e[1],e=j;break}if(e&&f.label<e[2]){f.label=e[2],f.ops.push(j);break}e[2]&&f.ops.pop(),f.trys.pop();continue}j=b.call(a,f)}catch(a){j=[6,a],d=0}finally{c=e=0}if(5&j[0])throw j[1];return{value:j[0]?j[1]:void 0,done:!0}}}},"__rest",0,function(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c},"__spreadArray",0,function(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))}])},463652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},334743,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_0f~p3pg._.js","server/chunks/ssr/node_modules__pnpm_04rulr6._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-5ZQYHXKU_mjs_0z1.978._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-XPW4576I_mjs_0u7glrg._.js","server/chunks/ssr/0hhx_roughjs_bundled_rough_esm_0hyphnf.js","server/chunks/ssr/12y~_mermaid_dist_mermaid_core_mjs_0hj_n-~._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-CSCIHK7Q_mjs_01i7moi._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-3OPIFGDE_mjs_09p1amp._.js","server/chunks/ssr/node_modules__pnpm_00krony._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-O5CBEL6O_mjs_11437bo._.js","server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_chunk-KSCS5N6A_mjs_0v4oeem._.js"].map(b=>a.l(b))).then(()=>b(496249)))},458647,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__05-uq57._.js","server/chunks/ssr/node_modules__pnpm_0a4su30._.js","server/chunks/ssr/0~c0_docx-preview_dist_docx-preview_mjs_107snq3._.js"].map(b=>a.l(b))).then(()=>b(204460)))},287443,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0btd01s._.js","server/chunks/ssr/node_modules__pnpm_0o~d81.._.js","server/chunks/ssr/node_modules__pnpm_0a4su30._.js"].map(b=>a.l(b))).then(()=>b(170263)))},57386,a=>{a.v(b=>Promise.all(["server/chunks/ssr/0se0_xlsx_xlsx_mjs_12z-ju4._.js"].map(b=>a.l(b))).then(()=>b(86253)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__10te1ye._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0jerjyj._.js.map