wiki-viewer 1.14.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/agent/activity/route.js +6 -6
- package/.next/standalone/.next/server/app/api/agent/activity/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js +8 -8
- package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js +9 -9
- package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js +8 -8
- package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js +8 -8
- package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/move/route.js +8 -8
- package/.next/standalone/.next/server/app/api/agent/fs/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/search/route.js +9 -9
- package/.next/standalone/.next/server/app/api/agent/fs/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/internal/span/route.js +8 -8
- package/.next/standalone/.next/server/app/api/agent/internal/span/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/settings/route.js +7 -7
- package/.next/standalone/.next/server/app/api/agent/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js +6 -6
- package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/assets/[...path]/route.js +5 -5
- package/.next/standalone/.next/server/app/api/assets/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/route.js +6 -5
- package/.next/standalone/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/share/route.js +4 -4
- package/.next/standalone/.next/server/app/api/share/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/browse/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/clear-root/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/reveal/route.js +6 -6
- package/.next/standalone/.next/server/app/api/system/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/root-status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/set-root/route.js +6 -5
- package/.next/standalone/.next/server/app/api/system/set-root/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js +5 -4
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js +6 -5
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/route.js +7 -6
- package/.next/standalone/.next/server/app/api/system/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/upload/[...path]/route.js +5 -5
- package/.next/standalone/.next/server/app/api/upload/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/app/route.js +7 -7
- package/.next/standalone/.next/server/app/api/wiki/app/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/backlinks/route.js +7 -7
- package/.next/standalone/.next/server/app/api/wiki/backlinks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/content/route.js +7 -7
- package/.next/standalone/.next/server/app/api/wiki/content/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/download/route.js +6 -6
- package/.next/standalone/.next/server/app/api/wiki/download/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/file/route.js +5 -5
- package/.next/standalone/.next/server/app/api/wiki/file/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/folder/route.js +5 -5
- package/.next/standalone/.next/server/app/api/wiki/folder/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js +4 -4
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js +6 -6
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js +4 -4
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js +4 -4
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-history/route.js +4 -4
- package/.next/standalone/.next/server/app/api/wiki/git-history/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js +8 -8
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/move/route.js +6 -6
- package/.next/standalone/.next/server/app/api/wiki/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/new-file/route.js +5 -5
- package/.next/standalone/.next/server/app/api/wiki/new-file/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/outlinks/route.js +7 -7
- package/.next/standalone/.next/server/app/api/wiki/outlinks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/page/route.js +5 -5
- package/.next/standalone/.next/server/app/api/wiki/page/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/presence/route.js +6 -6
- package/.next/standalone/.next/server/app/api/wiki/presence/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/route.js +5 -5
- package/.next/standalone/.next/server/app/api/wiki/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/search/route.js +5 -5
- package/.next/standalone/.next/server/app/api/wiki/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/slugs/route.js +5 -5
- package/.next/standalone/.next/server/app/api/wiki/slugs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/upload/route.js +5 -5
- package/.next/standalone/.next/server/app/api/wiki/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/watch/route.js +5 -5
- package/.next/standalone/.next/server/app/api/wiki/watch/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-jzw2_._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.-oq-7._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__000spch._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01oin-a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01qcera._.js +16 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02.uul~._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__024967n._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06booxp._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__071_pmz._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_0bqpg._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_1f2cw._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0a6j6r4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0aoqat-._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0as-u6z._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bvtbax._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c-ee48._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e_9pc5._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0esmskc._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fshk._._.js +20 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fu72o7._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0k9mili._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l-wu5u._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lvz22t._.js +20 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0n-chxk._.js +16 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0n9zdf0._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nmx3k2._.js +12 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nzlmkb._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o0v6hf._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s38pid._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s_8poz._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sfrx~.._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sggstu._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0u81k~2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uibxf_._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wfv_by._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wlj-yw._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w~__xz._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yat~ul._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yxauu6._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zbkgnr._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zv_j05._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~rntxj._.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_search_0d-_j3u._.js +4 -4
- package/.next/standalone/.next/server/chunks/src_lib_search_0ymmp0c._.js +3 -3
- package/.next/standalone/.next/server/chunks/src_lib_workspaces_ts_0qon40u._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_029cdbg._.js → 0~w0_katex_dist_katex_mjs_0s4yb1t._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0z41nrr._.js → [root-of-the-server]__10te1ye._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_13p348f._.js → node_modules__pnpm_0-a_zjq._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gos._c._.js → node_modules__pnpm_02l_1_8._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ru1i2-._.js → node_modules__pnpm_03rzttw._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_08xpp3w._.js → node_modules__pnpm_04frxp9._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0b8odbc._.js → node_modules__pnpm_057-t6m._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0f_n_zp._.js → node_modules__pnpm_05_oahi._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0~i3a.i._.js → node_modules__pnpm_05ans~m._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0i2m0b.._.js → node_modules__pnpm_06-2ia.._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0aha1~u._.js → node_modules__pnpm_086.ow4._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0w.kwue._.js → node_modules__pnpm_0cahog3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0e0r_qk._.js → node_modules__pnpm_0cxanql._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ajqqlq._.js → node_modules__pnpm_0e09gmf._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0hzzx9d._.js → node_modules__pnpm_0eqjo2f._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_02bje_g._.js → node_modules__pnpm_0f-yazg._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0xk042~._.js → node_modules__pnpm_0iu44jv._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_11ede0p._.js → node_modules__pnpm_0jh8q66._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0k-7uzm._.js → node_modules__pnpm_0m39f~t._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0xr.ztu._.js → node_modules__pnpm_0ma-8l.._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0i6_kfe._.js → node_modules__pnpm_0met6sx._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04v1_ty._.js → node_modules__pnpm_0mtrsi0._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0607~kg._.js → node_modules__pnpm_0n_swwn._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0t4l89_._.js → node_modules__pnpm_0ndyy93._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-_58b8._.js → node_modules__pnpm_0s-cj7c._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0y2h_cz._.js → node_modules__pnpm_0tr41-t._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_08edl1n._.js → node_modules__pnpm_0u.uija._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0026mgr._.js → node_modules__pnpm_0wiyn6d._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_09o_spj._.js → node_modules__pnpm_0ygzt82._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_page_tsx_0ss2.w7._.js +2 -2
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/static/chunks/0.69aou29w6ma.js +17 -0
- package/.next/standalone/.next/static/chunks/0sx~65~lg4mgl.css +5 -0
- package/.next/standalone/package.json +1 -1
- package/README.md +88 -17
- package/bin/wiki-viewer.js +198 -6
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-.y6im._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-3_t2y._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-kjkzt._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-puax4._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01h996g._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0329ktu._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__03_xj4r._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05398dt._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06lfvxh._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06w0aet._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__070_p2a._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0905hi1._.js +0 -21
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0aa63~j._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0avcplk._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b8_kyo._.js +0 -16
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bticq1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bwevvu._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c__k3q._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cp~z4x._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fmdv9h._.js +0 -20
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0h0qbwr._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jk~oyi._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ndq77b._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nvgpuk._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ocvng2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ps4h~.._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q7jqwp._.js +0 -12
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qew~6p._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s_9f-a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uv7b8u._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uv8.9i._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vfe2io._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w11kjy._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wc-.e4._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ymovmp._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~c6ouv._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~rhs0u._.js +0 -16
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10h9tid._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10yk-u1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__11105ew._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__11a3dhw._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13420tt._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13h~pdf._.js +0 -3
- package/.next/standalone/.next/static/chunks/02kg.lbkfi1yc.css +0 -5
- package/.next/standalone/.next/static/chunks/0rcwd6-.iu~nd.js +0 -17
- /package/.next/standalone/.next/static/{rRyvFORvJoc5OWbCR2A_P → nbWvTsOgKt53BB3Gl0swc}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{rRyvFORvJoc5OWbCR2A_P → nbWvTsOgKt53BB3Gl0swc}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{rRyvFORvJoc5OWbCR2A_P → nbWvTsOgKt53BB3Gl0swc}/_ssgManifest.js +0 -0
package/bin/wiki-viewer.js
CHANGED
|
@@ -26,13 +26,19 @@ function printUsage() {
|
|
|
26
26
|
console.error("Usage: wiki-viewer [directory] [options]");
|
|
27
27
|
console.error(" wiki-viewer <command> [args]");
|
|
28
28
|
console.error("");
|
|
29
|
-
console.error(" directory Directory to serve (optional — pick in browser if omitted)");
|
|
29
|
+
console.error(" directory Directory to serve (optional — pick in browser if omitted).");
|
|
30
|
+
console.error(" May also be an SSH target (user@host:/path) — mounted via");
|
|
31
|
+
console.error(" sshfs and served live, no local clone.");
|
|
30
32
|
console.error("");
|
|
31
33
|
console.error("Options:");
|
|
32
34
|
console.error(" -p, --port <port> Port to listen on (default: 3000)");
|
|
33
35
|
console.error(" -H, --host <host> Host to bind to (default: localhost)");
|
|
34
36
|
console.error(" --https Enable HTTPS (self-signed cert, enables service workers)");
|
|
35
37
|
console.error(" --no-auth Run without authentication — no sign-in, no session check");
|
|
38
|
+
console.error(" --ssh-key <path> Private key for the SSH target (default: ssh-agent / host keys)");
|
|
39
|
+
console.error(" --ssh-port <port> SSH port for the target (default: 22)");
|
|
40
|
+
console.error(" --ssh-password Prompt for an SSH password (or set WIKI_SSH_PASSWORD)");
|
|
41
|
+
console.error(" --ssh-readonly Mount the SSH target read-only");
|
|
36
42
|
console.error(" -v, --version Print version");
|
|
37
43
|
console.error("");
|
|
38
44
|
console.error(" -e, --env <KEY=VALUE> Set an app env var (repeatable; persisted with service install)");
|
|
@@ -55,6 +61,8 @@ function printUsage() {
|
|
|
55
61
|
console.error(" wiki-viewer ~/notes");
|
|
56
62
|
console.error(" wiki-viewer ~/notes --https");
|
|
57
63
|
console.error(" wiki-viewer ~/notes -p 8080 -H 0.0.0.0");
|
|
64
|
+
console.error(" wiki-viewer me@server:/srv/docs");
|
|
65
|
+
console.error(" wiki-viewer me@server:/srv/docs --ssh-key ~/.ssh/id_ed25519 --ssh-readonly");
|
|
58
66
|
console.error(" wiki-viewer service install ~/notes -H 0.0.0.0 -p 3003 --https");
|
|
59
67
|
console.error(" wiki-viewer service install ~/notes --env GOOGLE_CLIENT_ID=... --env GOOGLE_CLIENT_SECRET=...");
|
|
60
68
|
console.error(" wiki-viewer config set AUTH_ALLOWED_DOMAIN=example.com");
|
|
@@ -70,6 +78,10 @@ function parseServeArgs(args) {
|
|
|
70
78
|
let userSpecifiedPort = false;
|
|
71
79
|
let rootDir;
|
|
72
80
|
let noAuth;
|
|
81
|
+
let sshKey;
|
|
82
|
+
let sshPort;
|
|
83
|
+
let sshPassword;
|
|
84
|
+
let sshReadOnly;
|
|
73
85
|
|
|
74
86
|
for (let i = 0; i < args.length; i++) {
|
|
75
87
|
const a = args[i];
|
|
@@ -78,12 +90,151 @@ function parseServeArgs(args) {
|
|
|
78
90
|
else if (a === "-e" || a === "--env") { i++; } // consumed by parseEnvFlags
|
|
79
91
|
else if (a === "--https") useHttps = true;
|
|
80
92
|
else if (a === "--no-auth") noAuth = true;
|
|
93
|
+
else if (a === "--ssh-key") sshKey = args[++i];
|
|
94
|
+
else if (a === "--ssh-port") sshPort = args[++i];
|
|
95
|
+
else if (a === "--ssh-password") sshPassword = true;
|
|
96
|
+
else if (a === "--ssh-readonly") sshReadOnly = true;
|
|
81
97
|
else if (!a.startsWith("-") && rootDir === undefined) rootDir = a;
|
|
82
98
|
}
|
|
83
99
|
|
|
84
|
-
return { rootDir, port, host, useHttps, userSpecifiedPort, noAuth: Boolean(noAuth) };
|
|
100
|
+
return { rootDir, port, host, useHttps, userSpecifiedPort, noAuth: Boolean(noAuth), sshKey, sshPort, sshPassword: Boolean(sshPassword), sshReadOnly: Boolean(sshReadOnly) };
|
|
85
101
|
}
|
|
86
102
|
|
|
103
|
+
// ── ssh (sshfs) targets ──────────────────────────────────────────────────────
|
|
104
|
+
// Symmetry with the local-directory arg: `wiki-viewer user@host:/path` mounts a
|
|
105
|
+
// remote directory over sshfs and serves it as ROOT_DIR — no local clone. The
|
|
106
|
+
// mount is ephemeral (under ~/.wiki-viewer/mounts) and unmounted on exit. Auth:
|
|
107
|
+
// ssh-agent/host keys by default, --ssh-key <path>, or --ssh-password.
|
|
108
|
+
|
|
109
|
+
const mountsDir = path.join(configDir, "mounts");
|
|
110
|
+
const FORBIDDEN_SSH = /[;|&$`<>(){}\n\r\0]/;
|
|
111
|
+
let activeMount = null;
|
|
112
|
+
|
|
113
|
+
function looksLikeSshTarget(s) {
|
|
114
|
+
if (!s || FORBIDDEN_SSH.test(s)) return false;
|
|
115
|
+
// [user@]host:/abs/path — host has no slash, remote path is absolute. An
|
|
116
|
+
// existing local path (e.g. a real dir literally named like this) wins.
|
|
117
|
+
return /^([\w.-]+@)?[\w.-]+:\/.+/.test(s) && !existsSync(s);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function parseSshTarget(s) {
|
|
121
|
+
if (!s || FORBIDDEN_SSH.test(s)) return null;
|
|
122
|
+
const colon = s.indexOf(":");
|
|
123
|
+
if (colon <= 0) return null;
|
|
124
|
+
const hostPart = s.slice(0, colon);
|
|
125
|
+
const remotePath = s.slice(colon + 1);
|
|
126
|
+
if (!remotePath.startsWith("/") || remotePath.includes("..")) return null;
|
|
127
|
+
let user;
|
|
128
|
+
let host = hostPart;
|
|
129
|
+
const at = hostPart.indexOf("@");
|
|
130
|
+
if (at >= 0) { user = hostPart.slice(0, at); host = hostPart.slice(at + 1); if (!user) return null; }
|
|
131
|
+
if (!host || !/^[a-zA-Z0-9.-]+$/.test(host)) return null;
|
|
132
|
+
if (user && !/^[a-zA-Z0-9._-]+$/.test(user)) return null;
|
|
133
|
+
return { user, host, remotePath };
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Mirror of src/lib/sshfs.ts buildSshfsArgs — kept in sync intentionally so the
|
|
137
|
+
// bin stays dependency-light (no TS import at runtime).
|
|
138
|
+
function buildSshfsArgs({ target, mountpoint, port, keyPath, password, readOnly }) {
|
|
139
|
+
const userPart = target.user ? `${target.user}@` : "";
|
|
140
|
+
const args = [`${userPart}${target.host}:${target.remotePath}`, mountpoint];
|
|
141
|
+
if (port && Number.isInteger(Number(port)) && Number(port) > 0 && Number(port) < 65536) {
|
|
142
|
+
args.push("-p", String(port));
|
|
143
|
+
}
|
|
144
|
+
const o = [
|
|
145
|
+
"reconnect", "ServerAliveInterval=15", "ServerAliveCountMax=3",
|
|
146
|
+
"compression=yes", "cache=yes", "kernel_cache",
|
|
147
|
+
"StrictHostKeyChecking=accept-new", "BatchMode=yes",
|
|
148
|
+
];
|
|
149
|
+
if (readOnly) o.push("ro");
|
|
150
|
+
if (keyPath) { o.push(`IdentityFile=${keyPath}`, "IdentitiesOnly=yes"); }
|
|
151
|
+
if (password != null) {
|
|
152
|
+
const i = o.indexOf("BatchMode=yes"); if (i >= 0) o.splice(i, 1);
|
|
153
|
+
o.push("password_stdin", "PreferredAuthentications=password,keyboard-interactive", "PubkeyAuthentication=no", "NumberOfPasswordPrompts=1");
|
|
154
|
+
}
|
|
155
|
+
args.push("-o", o.join(","));
|
|
156
|
+
return args;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function isMountedSync(mp) {
|
|
160
|
+
try {
|
|
161
|
+
if (process.platform === "linux") {
|
|
162
|
+
const m = readFileSync("/proc/mounts", "utf8");
|
|
163
|
+
return m.split("\n").some((l) => { const p = l.split(" "); return p[1] === mp && /fuse/.test(p[2] || ""); });
|
|
164
|
+
}
|
|
165
|
+
const out = execFileSync("mount", [], { encoding: "utf8" });
|
|
166
|
+
return out.split("\n").some((l) => l.includes(` on ${mp} `));
|
|
167
|
+
} catch { return false; }
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function unmountSync(mp) {
|
|
171
|
+
const tries = process.platform === "linux"
|
|
172
|
+
? [["fusermount", ["-u", "-z", mp]], ["umount", [mp]]]
|
|
173
|
+
: [["umount", [mp]], ["diskutil", ["unmount", "force", mp]]];
|
|
174
|
+
for (const [bin, a] of tries) { try { execFileSync(bin, a, { stdio: "ignore" }); break; } catch { /* try next */ } }
|
|
175
|
+
try { rmSync(mp, { recursive: false, force: true }); } catch { /* best-effort */ }
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function registerMountCleanup() {
|
|
179
|
+
const cleanup = () => { if (activeMount) { const mp = activeMount; activeMount = null; unmountSync(mp); } };
|
|
180
|
+
process.on("exit", cleanup);
|
|
181
|
+
for (const sig of ["SIGINT", "SIGTERM", "SIGHUP"]) {
|
|
182
|
+
process.on(sig, () => { cleanup(); process.exit(0); });
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
async function mountSshTarget({ targetStr, port, keyPath, password, readOnly }) {
|
|
187
|
+
const target = parseSshTarget(targetStr);
|
|
188
|
+
if (!target) {
|
|
189
|
+
console.error(`Error: invalid SSH target '${targetStr}'. Use the form user@host:/abs/path.`);
|
|
190
|
+
process.exit(1);
|
|
191
|
+
}
|
|
192
|
+
try { execFileSync("sshfs", ["--version"], { stdio: "ignore" }); }
|
|
193
|
+
catch {
|
|
194
|
+
console.error("Error: sshfs not found. Install sshfs + FUSE (e.g. `apt install sshfs`, `brew install macfuse sshfs`).");
|
|
195
|
+
process.exit(1);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
mkdirSync(mountsDir, { recursive: true });
|
|
199
|
+
const mp = path.join(mountsDir, `cli-${process.pid}`);
|
|
200
|
+
// Reuse-or-clear a stale mountpoint from a previous crashed run.
|
|
201
|
+
if (isMountedSync(mp)) unmountSync(mp);
|
|
202
|
+
mkdirSync(mp, { recursive: true });
|
|
203
|
+
|
|
204
|
+
const args = buildSshfsArgs({ target, mountpoint: mp, port, keyPath, password, readOnly });
|
|
205
|
+
registerMountCleanup();
|
|
206
|
+
await new Promise((resolve, reject) => {
|
|
207
|
+
const child = spawn("sshfs", args, { stdio: ["pipe", "ignore", "pipe"] });
|
|
208
|
+
let err = "";
|
|
209
|
+
const t = setTimeout(() => { child.kill("SIGKILL"); reject(new Error("sshfs mount timed out after 25s")); }, 25_000);
|
|
210
|
+
child.stderr.on("data", (d) => { err += d.toString(); });
|
|
211
|
+
child.on("error", (e) => { clearTimeout(t); reject(e); });
|
|
212
|
+
child.on("close", (code) => { clearTimeout(t); code === 0 ? resolve() : reject(new Error(err.trim() || `sshfs exited ${code}`)); });
|
|
213
|
+
if (password != null) child.stdin.write(password + "\n");
|
|
214
|
+
child.stdin.end();
|
|
215
|
+
}).catch((e) => {
|
|
216
|
+
console.error(`Error: sshfs mount failed: ${e.message}`);
|
|
217
|
+
try { unmountSync(mp); } catch { /* ignore */ }
|
|
218
|
+
process.exit(1);
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
if (!isMountedSync(mp)) {
|
|
222
|
+
console.error("Error: sshfs reported success but the mount is not live.");
|
|
223
|
+
unmountSync(mp);
|
|
224
|
+
process.exit(1);
|
|
225
|
+
}
|
|
226
|
+
activeMount = mp;
|
|
227
|
+
return mp;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// One-shot line prompt (echoes input). Used for --ssh-password when the
|
|
231
|
+
// WIKI_SSH_PASSWORD env var is not set.
|
|
232
|
+
async function promptLine(text) {
|
|
233
|
+
const io = makePrompter();
|
|
234
|
+
const ans = await io.prompt(text);
|
|
235
|
+
io.close();
|
|
236
|
+
return ans;
|
|
237
|
+
}
|
|
87
238
|
// ── config file ────────────────────────────────────────────────────────────
|
|
88
239
|
|
|
89
240
|
function loadConfig() {
|
|
@@ -108,8 +259,11 @@ function saveConfig(cfg) {
|
|
|
108
259
|
function resolveServeOptions(args) {
|
|
109
260
|
const cli = parseServeArgs(args);
|
|
110
261
|
const cfg = loadConfig();
|
|
262
|
+
const isSsh = cli.rootDir != null && looksLikeSshTarget(cli.rootDir);
|
|
111
263
|
return {
|
|
112
|
-
rootDir: cli.rootDir ? path.resolve(cli.rootDir) : null,
|
|
264
|
+
rootDir: cli.rootDir && !isSsh ? path.resolve(cli.rootDir) : null,
|
|
265
|
+
sshTarget: isSsh ? cli.rootDir : null,
|
|
266
|
+
sshKey: cli.sshKey, sshPort: cli.sshPort, sshPassword: cli.sshPassword, sshReadOnly: cli.sshReadOnly,
|
|
113
267
|
port: String(cli.port ?? "3000"),
|
|
114
268
|
host: cli.host ?? "localhost",
|
|
115
269
|
useHttps: Boolean(cli.useHttps),
|
|
@@ -133,8 +287,15 @@ function resolveRunOptions(args) {
|
|
|
133
287
|
// A config-pinned port is explicit too (don't auto-bump to next free port).
|
|
134
288
|
const userSpecifiedPort = cli.userSpecifiedPort || cfg.port != null;
|
|
135
289
|
|
|
290
|
+
const isSsh = rootDir != null && looksLikeSshTarget(rootDir);
|
|
136
291
|
return {
|
|
137
|
-
rootDir: rootDir ? path.resolve(rootDir) : null,
|
|
292
|
+
rootDir: rootDir && !isSsh ? path.resolve(rootDir) : null,
|
|
293
|
+
sshTarget: isSsh ? rootDir : null,
|
|
294
|
+
// CLI flags win; otherwise fall back to persisted ssh settings (cfg.ssh).
|
|
295
|
+
sshKey: cli.sshKey ?? cfg.ssh?.key,
|
|
296
|
+
sshPort: cli.sshPort ?? cfg.ssh?.port,
|
|
297
|
+
sshPassword: cli.sshPassword,
|
|
298
|
+
sshReadOnly: cli.sshReadOnly || Boolean(cfg.ssh?.readOnly),
|
|
138
299
|
port: String(port),
|
|
139
300
|
host,
|
|
140
301
|
useHttps: Boolean(useHttps),
|
|
@@ -279,7 +440,8 @@ function getNetworkAddress() {
|
|
|
279
440
|
// ── start ──────────────────────────────────────────────────────────────────
|
|
280
441
|
|
|
281
442
|
async function start(opts) {
|
|
282
|
-
const {
|
|
443
|
+
const { useHttps, configEnv = {} } = opts;
|
|
444
|
+
let resolvedRoot = opts.rootDir;
|
|
283
445
|
let { port, host, userSpecifiedPort } = opts;
|
|
284
446
|
|
|
285
447
|
if (!existsSync(serverJs)) {
|
|
@@ -288,6 +450,24 @@ async function start(opts) {
|
|
|
288
450
|
process.exit(1);
|
|
289
451
|
}
|
|
290
452
|
|
|
453
|
+
// SSH target: mount it over sshfs and serve the mount point as ROOT_DIR.
|
|
454
|
+
if (opts.sshTarget) {
|
|
455
|
+
let password = null;
|
|
456
|
+
if (opts.sshPassword) {
|
|
457
|
+
password = process.env.WIKI_SSH_PASSWORD
|
|
458
|
+
?? await promptLine(`SSH password for ${opts.sshTarget}: `);
|
|
459
|
+
}
|
|
460
|
+
console.log(`🔗 Mounting ${opts.sshTarget} over SSH…`);
|
|
461
|
+
resolvedRoot = await mountSshTarget({
|
|
462
|
+
targetStr: opts.sshTarget,
|
|
463
|
+
port: opts.sshPort,
|
|
464
|
+
keyPath: opts.sshKey,
|
|
465
|
+
password,
|
|
466
|
+
readOnly: opts.sshReadOnly,
|
|
467
|
+
});
|
|
468
|
+
console.log(` mounted at ${resolvedRoot}${opts.sshReadOnly ? " (read-only)" : ""}`);
|
|
469
|
+
}
|
|
470
|
+
|
|
291
471
|
if (resolvedRoot) {
|
|
292
472
|
console.log(`�� ${resolvedRoot}`);
|
|
293
473
|
} else {
|
|
@@ -433,13 +613,25 @@ function serviceInstall(args) {
|
|
|
433
613
|
const envFlags = parseEnvFlags(args);
|
|
434
614
|
const existing = loadConfig();
|
|
435
615
|
const mergedEnv = { ...(existing.env ?? {}), ...envFlags };
|
|
616
|
+
const cliIsSsh = cli.rootDir != null && looksLikeSshTarget(cli.rootDir);
|
|
436
617
|
const cfg = {
|
|
437
|
-
rootDir: cli.rootDir != null
|
|
618
|
+
rootDir: cli.rootDir != null
|
|
619
|
+
? (cliIsSsh ? cli.rootDir : path.resolve(cli.rootDir))
|
|
620
|
+
: existing.rootDir ?? null,
|
|
438
621
|
host: cli.host ?? existing.host ?? "localhost",
|
|
439
622
|
port: cli.port ?? existing.port ?? "3000",
|
|
440
623
|
https: cli.useHttps ?? existing.https ?? false,
|
|
624
|
+
// Persist ssh options so `service run` can remount on boot. Password auth is
|
|
625
|
+
// intentionally NOT persisted — services run non-interactively, so use
|
|
626
|
+
// ssh-agent or --ssh-key for a reboot-persistent SSH workspace.
|
|
627
|
+
...(cliIsSsh
|
|
628
|
+
? { ssh: { ...(cli.sshKey ? { key: cli.sshKey } : {}), ...(cli.sshPort ? { port: cli.sshPort } : {}), ...(cli.sshReadOnly ? { readOnly: true } : {}) } }
|
|
629
|
+
: existing.ssh ? { ssh: existing.ssh } : {}),
|
|
441
630
|
...(Object.keys(mergedEnv).length ? { env: mergedEnv } : {}),
|
|
442
631
|
};
|
|
632
|
+
if (cliIsSsh && cli.sshPassword) {
|
|
633
|
+
console.log("⚠️ --ssh-password is ignored for services (non-interactive). Use ssh-agent or --ssh-key.\n");
|
|
634
|
+
}
|
|
443
635
|
saveConfig(cfg);
|
|
444
636
|
console.log(`Saved config to ${configPath}`);
|
|
445
637
|
console.log(` dir: ${cfg.rootDir ?? "(choose in browser)"}`);
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[402662,e=>{"use strict";var t=e.i(702414);e.s(["checkOrigin",0,function(e){let r=e.method.toUpperCase();if("GET"===r||"HEAD"===r||"OPTIONS"===r)return null;let a=e.headers.get("origin"),s=e.headers.get("referer");if(!a&&!s)return null;let n=function(e){let t=Array.from(new Set(["localhost","127.0.0.1",e.split(":")[0],...(process.env.WIKI_OWNER_HOSTS??"").split(",").map(e=>e.trim()).filter(Boolean)])),r=["",":3000",":3003"];e.includes(":")&&r.push(":"+e.split(":")[1]);let a=new Set;for(let e of t)for(let t of["http","https"])for(let s of r)a.add(`${t}://${e}${s}`);return a}(e.headers.get("host")??"");if(a)return n.has(a)?null:t.NextResponse.json({error:"FORBIDDEN",message:"Bad origin"},{status:403});if(s){try{let{protocol:e,host:t}=new URL(s);if(n.has(`${e}//${t}`))return null}catch{}return t.NextResponse.json({error:"FORBIDDEN",message:"Bad referer"},{status:403})}return null}])},365026,e=>{"use strict";var t=e.i(364564),r=e.i(102095),a=e.i(691091),s=e.i(475331),n=e.i(490301),i=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),d=e.i(420180),p=e.i(867883),c=e.i(336708),h=e.i(682278),v=e.i(157569),f=e.i(844146),m=e.i(193695);e.i(105888);var R=e.i(530564),_=e.i(912714),w=e.i(750227),g=e.i(702414),E=e.i(402662),x=e.i(660038),y=e.i(359211);async function N(e){let t=(0,E.checkOrigin)(e);if(t)return t;let r=await (0,x.resolveWorkspaceForUser)(e,"write");if(!r.ok)return g.NextResponse.json({error:r.code},{status:r.status});let{rootDir:a}=r,s=(await e.json()).path;if(!s||"string"!=typeof s||/[<>:"|?*]/.test(s)||s.endsWith("/"))return g.NextResponse.json({error:"Invalid file path"},{status:400});let n=(0,y.safeWorkspacePath)(a,s);if(!n)return g.NextResponse.json({error:"Invalid path"},{status:400});try{return await (0,_.stat)(n),g.NextResponse.json({error:"File already exists",path:s},{status:409})}catch(e){if("ENOENT"!==e.code)return g.NextResponse.json({error:"Failed to create file"},{status:500})}try{return await (0,_.mkdir)(w.default.dirname(n),{recursive:!0}),await (0,_.writeFile)(n,"","utf-8"),g.NextResponse.json({ok:!0,path:s})}catch{return g.NextResponse.json({error:"Failed to create file"},{status:500})}}e.s(["POST",0,N],316516);var C=e.i(316516);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/wiki/new-file/route",pathname:"/api/wiki/new-file",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/new-file/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:k,workUnitAsyncStorage:A,serverHooks:j}=P;async function O(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),P.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/wiki/new-file/route";_=_.replace(/\/index$/,"")||"/";let w=await P.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:g,params:E,nextConfig:x,parsedUrl:y,isDraftMode:N,prerenderManifest:C,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:j,resolvedPathname:O,clientReferenceManifest:T,serverActionsManifest:b}=w,S=(0,o.normalizeAppPath)(_),q=!!(C.dynamicRoutes[S]||C.routes[O]),I=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,y,!1):t.end("This page could not be found"),null);if(q&&!N){let e=!!C.routes[O],t=C.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await I();throw new m.NoFallbackError}}let D=null;!q||P.isDev||N||(D="/index"===(D=O)?"/":D);let H=!0===P.isDev||!q,U=q&&!H;b&&T&&(0,i.setManifestsSingleton)({page:_,clientReferenceManifest:T,serverActionsManifest:b});let F=e.method||"GET",M=(0,n.getTracer)(),$=M.getActiveScopeSpan(),B=!!(null==k?void 0:k.isWrappedByNextServer),K=!!(0,s.getRequestMeta)(e,"minimalMode"),W=(0,s.getRequestMeta)(e,"incrementalCache")||await P.getIncrementalCache(e,x,C,K);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let z={params:E,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:H,incrementalCache:W,cacheLifeProfiles:x.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>P.onRequestError(e,t,a,s,k)},sharedContext:{buildId:g}},L=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let s,i=async e=>P.handle(V,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${F} ${_}`)}),o=async s=>{var n,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&A&&j&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!q)return await (0,c.sendResponse)(L,G,n,z.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,k),t}},u=await P.handleResponse({req:e,nextConfig:x,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:j,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!q)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&q||d.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(L,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&$?await o($):(s=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${_}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof m.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,k),q)throw t;return await (0,c.sendResponse)(L,G,new Response(null,{status:500})),null}}e.s(["handler",0,O,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:A})},"routeModule",0,P,"serverHooks",0,j,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,A],365026)},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0d7zxm_._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(t=>e.l(t))).then(()=>t(437856)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0-.y6im._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[402662,e=>{"use strict";var t=e.i(702414);e.s(["checkOrigin",0,function(e){let r=e.method.toUpperCase();if("GET"===r||"HEAD"===r||"OPTIONS"===r)return null;let s=e.headers.get("origin"),n=e.headers.get("referer");if(!s&&!n)return null;let a=function(e){let t=Array.from(new Set(["localhost","127.0.0.1",e.split(":")[0],...(process.env.WIKI_OWNER_HOSTS??"").split(",").map(e=>e.trim()).filter(Boolean)])),r=["",":3000",":3003"];e.includes(":")&&r.push(":"+e.split(":")[1]);let s=new Set;for(let e of t)for(let t of["http","https"])for(let n of r)s.add(`${t}://${e}${n}`);return s}(e.headers.get("host")??"");if(s)return a.has(s)?null:t.NextResponse.json({error:"FORBIDDEN",message:"Bad origin"},{status:403});if(n){try{let{protocol:e,host:t}=new URL(n);if(a.has(`${e}//${t}`))return null}catch{}return t.NextResponse.json({error:"FORBIDDEN",message:"Bad referer"},{status:403})}return null}])},761095,(e,t,r)=>{t.exports=e.x("node:net",()=>require("node:net"))},345212,e=>{"use strict";var t=e.i(874533),r=e.i(902157),s=e.i(761095),n=e.i(750227);let a=new Map;function i(e,t){return new Promise(r=>{let n=(0,s.createConnection)(e,t);n.setTimeout(800),n.on("connect",()=>{n.destroy(),r(!0)}),n.on("error",()=>{n.destroy(),r(!1)}),n.on("timeout",()=>{n.destroy(),r(!1)})})}async function o(e,t=3e4){let r=Date.now()+t;for(;Date.now()<r;){let[t,r]=await Promise.all([i(e,"127.0.0.1"),i(e,"::1")]);if(t||r)return!0;await new Promise(e=>setTimeout(e,400))}return!1}function l(e){let t=n.default.join(e,"package.json");if(!(0,r.existsSync)(t))return null;try{return JSON.parse((0,r.readFileSync)(t,"utf-8"))}catch{return null}}function u(e,t){return t.start?"start":t.preview&&(0,r.existsSync)(n.default.join(e,"dist"))?"preview":t.dev?"dev":null}async function p(e,i,p){let c=a.get(e);if(c&&"stopped"!==c.status&&"error"!==c.status)return{port:c.port};let d=await new Promise((e,t)=>{let r=(0,s.createServer)();r.listen(0,"127.0.0.1",()=>{let t=r.address(),s="object"==typeof t&&t?t.port:0;r.close(()=>e(s))}),r.on("error",t)}),h=(0,r.existsSync)(n.default.join(i,"pnpm-lock.yaml"))?"pnpm":(0,r.existsSync)(n.default.join(i,"yarn.lock"))?"yarn":"npm",f=function(e,t,r){let s=l(e);if(!s)return null;let n=s.scripts??{},a=Object.keys({...s.dependencies,...s.devDependencies}).some(e=>"vite"===e||e.includes("vite")),i=(e,r=[])=>({bin:t,args:["run",e,...r.length?["--",...r]:[]],isVite:a});if(r&&n[r])return i(r);let o=u(e,n);return o?i(o):s.main?{bin:"node",args:[s.main],isVite:!1}:null}(i,h,p);if(!f)throw Error("No runnable script found in package.json (need start, preview, or dev)");let v={port:d,process:null,status:"installing",logs:[]};a.set(e,v);let g=e=>{v.logs.push(e),v.logs.length>200&&v.logs.shift()};if(!(0,r.existsSync)(n.default.join(i,"node_modules")))try{g(`[wiki-viewer] Running ${h} install…`),await new Promise((e,r)=>{let s=(0,t.spawn)(h,["install"],{cwd:i,stdio:"pipe"});s.on("exit",t=>0===t?e():r(Error(`${h} install failed (exit ${t})`))),s.on("error",r)})}catch(e){return v.status="error",v.error=String(e),{port:d}}v.status="starting",g(`[wiki-viewer] Starting on port ${d}: ${f.bin} ${f.args.join(" ")}`);let m=f.isVite?["--port",String(d)]:[],w=(0,t.spawn)(f.bin,[...f.args,...m],{cwd:i,stdio:"pipe",env:{...process.env,PORT:String(d),VITE_PORT:String(d)}});v.process=w;let R=e=>{for(let t of e.toString().split("\n"))t.trim()&&g(t)};return w.stdout?.on("data",R),w.stderr?.on("data",R),w.on("exit",t=>{let r=a.get(e);r?.process===w&&(r.status=0===t||null===t?"stopped":"error",r.error=t?`Process exited with code ${t}`:void 0)}),o(d).then(t=>{let r=a.get(e);r?.process===w&&(r.status=t?"running":"error",t||(r.error="Port never became reachable (30 s timeout)"))}),{port:d}}e.s(["getScripts",0,function(e){let t=l(e);if(!t)return{scripts:[],defaultScript:null};let r=t.scripts??{};return{scripts:Object.keys(r),defaultScript:u(e,r)}},"getStatus",0,function(e){let t=a.get(e);return t?{status:t.status,port:t.port||void 0,error:t.error,logs:t.logs}:{status:"stopped",logs:[]}},"resolveByPrefix",0,function(e){for(let t=e.length;t>0;t--){let r=e.slice(0,t).join("/"),s=a.get(r);if(s&&"running"===s.status&&s.port){let n="/"+e.slice(t).join("/");return{relPath:r,port:s.port,rest:n}}}return null},"startApp",0,p,"stopApp",0,function(e){let t=a.get(e);if(t?.process){try{t.process.kill("SIGTERM")}catch{}t.status="stopped"}}])},80520,e=>{"use strict";var t=e.i(364564),r=e.i(102095),s=e.i(691091),n=e.i(475331),a=e.i(490301),i=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),p=e.i(420180),c=e.i(867883),d=e.i(336708),h=e.i(682278),f=e.i(157569),v=e.i(844146),g=e.i(193695);e.i(105888);var m=e.i(530564),w=e.i(702414),R=e.i(402662),_=e.i(660038),y=e.i(359211),x=e.i(345212);async function E(e){let t=await (0,_.resolveWorkspaceForUser)(e);if(!t.ok)return w.NextResponse.json({error:t.code},{status:t.status});let{searchParams:r}=new URL(e.url),s=r.get("path")??"",n=(0,x.getStatus)(s),a=(0,y.safeWorkspacePath)(t.rootDir,s),i=a?(0,x.getScripts)(a):{scripts:[],defaultScript:null};return w.NextResponse.json({...n,...i})}async function S(e){let t=(0,R.checkOrigin)(e);if(t)return t;let r=await (0,_.resolveWorkspaceForUser)(e,"write");if(!r.ok)return w.NextResponse.json({error:r.code},{status:r.status});let{rootDir:s}=r,n=await e.json(),a=n.path;if(!a||"string"!=typeof a)return w.NextResponse.json({error:"Missing path"},{status:400});let i=(0,y.safeWorkspacePath)(s,a);if(!i)return w.NextResponse.json({error:"Invalid path"},{status:400});try{let e=await (0,x.startApp)(a,i,n.script);return w.NextResponse.json(e)}catch(e){return w.NextResponse.json({error:String(e)},{status:500})}}async function k(e){let t=(0,R.checkOrigin)(e);if(t)return t;let r=await (0,_.resolveWorkspaceForUser)(e,"write");if(!r.ok)return w.NextResponse.json({error:r.code},{status:r.status});let s=(await e.json()).path;return s&&"string"==typeof s?((0,x.stopApp)(s),w.NextResponse.json({ok:!0})):w.NextResponse.json({error:"Missing path"},{status:400})}e.s(["DELETE",0,k,"GET",0,E,"POST",0,S],41743);var j=e.i(41743);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/wiki/app/route",pathname:"/api/wiki/app",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/app/route.ts",nextConfigOutput:"standalone",userland:j,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:b,serverHooks:C}=P;async function T(e,t,s){s.requestMeta&&(0,n.setRequestMeta)(e,s.requestMeta),P.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/wiki/app/route";w=w.replace(/\/index$/,"")||"/";let R=await P.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:_,params:y,nextConfig:x,parsedUrl:E,isDraftMode:S,prerenderManifest:k,routerServerContext:j,isOnDemandRevalidate:N,revalidateOnlyGenerated:b,resolvedPathname:C,clientReferenceManifest:T,serverActionsManifest:A}=R,O=(0,o.normalizeAppPath)(w),q=!!(k.dynamicRoutes[O]||k.routes[C]),I=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,E,!1):t.end("This page could not be found"),null);if(q&&!S){let e=!!k.routes[C],t=k.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await I();throw new g.NoFallbackError}}let D=null;!q||P.isDev||S||(D="/index"===(D=C)?"/":D);let U=!0===P.isDev||!q,$=q&&!U;A&&T&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:T,serverActionsManifest:A});let H=e.method||"GET",M=(0,a.getTracer)(),F=M.getActiveScopeSpan(),B=!!(null==j?void 0:j.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await P.getIncrementalCache(e,x,k,K);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let L={params:y,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:U,incrementalCache:W,cacheLifeProfiles:x.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>P.onRequestError(e,t,s,n,j)},sharedContext:{buildId:_}},z=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>P.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${H} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",s),n.updateName(t))}else e.updateName(`${H} ${w}`)}),o=async n=>{var a,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&N&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!q)return await (0,d.sendResponse)(z,V,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[v.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:N})},!1,j),t}},u=await P.handleResponse({req:e,nextConfig:x,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:b,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:K});if(!q)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&q||p.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,d.sendResponse)(z,V,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};B&&F?await o(F):(n=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(p.BaseServerSpan.handleRequest,{spanName:`${H} ${w}`,kind:a.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof g.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:N})},!1,j),q)throw t;return await (0,d.sendResponse)(z,V,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:b})},"routeModule",0,P,"serverHooks",0,C,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,b],80520)},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0d7zxm_._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(t=>e.l(t))).then(()=>t(437856)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0-3_t2y._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[224361,(e,s,r)=>{s.exports=e.x("util",()=>require("util"))},688947,(e,s,r)=>{s.exports=e.x("stream",()=>require("stream"))},427699,(e,s,r)=>{s.exports=e.x("events",()=>require("events"))},81111,(e,s,r)=>{s.exports=e.x("node:stream",()=>require("node:stream"))},500874,(e,s,r)=>{s.exports=e.x("buffer",()=>require("buffer"))},168315,e=>{e.v(s=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(s=>e.l(s))).then(()=>s(862112)))},317691,e=>{e.v(s=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(s=>e.l(s))).then(()=>s(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(s=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(s=>e.l(s))).then(()=>s(495181)))},715018,e=>{e.v(s=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(s=>e.l(s))).then(()=>s(698370)))},146843,e=>{e.v(s=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(s=>e.l(s))).then(()=>s(143740)))},84040,e=>{e.v(s=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(s=>e.l(s))).then(()=>s(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(s=>Promise.all(["server/chunks/[root-of-the-server]__068ni_k._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(s=>e.l(s))).then(()=>s(437856)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0-kjkzt._.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports=[583627,e=>{"use strict";var t=e.i(798003),r=e.i(254226);function a(){return(process.env.WIKI_ADMIN_EMAILS??"").split(",").map(e=>e.trim().toLowerCase()).filter(Boolean)}async function n(e,r){if(r){let e=a();if(e.length>0&&e.includes(r.toLowerCase()))return!0}return((await (0,t.readConfig)()).adminUserIds??[]).includes(e)}async function i(){return(await (0,t.readConfig)()).adminUserIds??[]}async function s(e){await (0,t.updateConfig)(t=>{let r=t.adminUserIds??[];return r.includes(e)?t:{...t,adminUserIds:[...r,e]}})}async function o(e){let r=a().length>0,n=!1;if(await (0,t.updateConfig)(t=>{let a=(t.adminUserIds??[]).filter(t=>t!==e);return 0!==a.length||r?{...t,adminUserIds:a}:(n=!0,t)}),n)throw Error("LAST_ADMIN: cannot remove the last admin with no WIKI_ADMIN_EMAILS configured")}async function l(e){if(a().length>0||((await (0,t.readConfig)()).adminUserIds??[]).length>0)return;let r=!1;await (0,t.updateConfig)(t=>(t.adminUserIds??[]).length>0?t:(r=!0,{...t,adminUserIds:[e]})),r&&console.log(`[wiki-viewer] Bootstrap: first user ${e} promoted to admin`)}async function u(e){if("1"===process.env.WIKI_NO_AUTH)return{ok:!0,user:{id:"local",email:"local@localhost",name:"local"}};let t=await (0,r.requireUser)(e);return t.ok?await n(t.user.id,t.user.email)?{ok:!0,user:t.user}:{ok:!1,status:403,code:"ADMIN_REQUIRED"}:{ok:!1,status:401,code:"UNAUTHORIZED"}}e.s(["addAdmin",0,s,"ensureBootstrapAdmin",0,l,"isAdmin",0,n,"listAdmins",0,i,"removeAdmin",0,o,"requireAdmin",0,u])},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},359211,787140,e=>{"use strict";let t;var r=e.i(750227),a=e.i(902157),n=e.i(666680),i=e.i(798003),s=e.i(874533),o=e.i(812057),l=e.i(912714),u=e.i(660526);let c=(0,o.promisify)(s.execFile);async function d(){if(!0!==t)try{await c("git",["--version"]),t=!0}catch{throw Error("git binary not found. Install git and ensure it is on PATH.")}}let p=/[;\|&$`<>(){}\n\0]/;function h(e,t={}){let r;if(p.test(e))return{ok:!1,reason:"URL contains forbidden characters"};try{r=new URL(e)}catch{return{ok:!1,reason:"URL could not be parsed"}}let a=r.protocol;if("https:"===a);else if("http:"===a&&t.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:n}=t;if(n&&n.length>0){let e=r.hostname.toLowerCase();if(!n.map(e=>e.toLowerCase()).includes(e))return{ok:!1,reason:`Host '${r.hostname}' is not in the allowed hosts list`}}return{ok:!0,url:r}}async function f(e){let t=await (0,l.mkdtemp)(r.default.join((0,u.tmpdir)(),"wiki-git-")),n=r.default.join(t,"askpass.sh"),i=`#!/bin/sh
|
|
2
|
-
printf '%s' '${e.replace(/'/g,"'\\''")}'`;(0,a.writeFileSync)(n,i,{mode:448});try{(0,a.chmodSync)(n,448)}catch{}return n}function m(e){try{(0,a.unlinkSync)(e)}catch{}let t=r.default.dirname(e);if(t!==(0,u.tmpdir)())try{(0,a.rmSync)(t,{recursive:!0,force:!0})}catch{}}async function w(e){let t=await f(e);return{env:{...process.env,GIT_ASKPASS:t,GIT_TERMINAL_PROMPT:"0"},askpassPath:t}}async function g(e){let t,a,{branch:n,token:i,destDir:s,subpath:o}=e,l=e.depth??1,u=e.username??"x-access-token";o&&(t=function(e){if(r.default.isAbsolute(e))throw Error("subpath must be relative");if(e.includes(".."))throw Error("subpath must not contain '..'");if(/[\0\n]/.test(e)||p.test(e))throw Error("subpath contains forbidden characters");let t=e.split(r.default.sep).join("/").replace(/\/+$/,"");if(".git"===t||t.startsWith(".git/"))throw Error("subpath must not point at .git");return t}(o));let d=["clone","--depth",String(l),"--single-branch","--no-tags"];n&&d.push("--branch",n),t&&d.push("--filter=blob:none","--sparse");let h=i?function(e,t){try{let r=new URL(e);return r.username=t,r.password="",r.toString()}catch{return e}}(e.remoteUrl,u):e.remoteUrl;d.push(h,s);try{if(i){let e=await w(i);a=e.askpassPath,await c("git",d,{env:e.env})}else await c("git",d,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});t&&await c("git",["-C",s,"sparse-checkout","set","--cone",t],{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}finally{a&&m(a)}}async function y(e){let t,{rootDir:r,token:a}=e,n=["-C",r,"pull","--ff-only"];try{if(a){let e=await w(a);t=e.askpassPath,await c("git",n,{env:e.env})}else await c("git",n,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}finally{t&&m(t)}}async function v(e){let{stdout:t}=await c("git",["-C",e,"rev-parse","HEAD"]);return t.trim()}async function R(e){let{stdout:t}=await c("git",["-C",e,"rev-parse","--abbrev-ref","HEAD"]);return t.trim()}async function k(e,t,r=50){let{stdout:a}=await c("git",["-C",e,"log","--follow",`--max-count=${r}`,"--pretty=format:%H\x1f%s\x1f%an\x1f%aI","--",t]);return a.trim()?a.trim().split("\n").map(e=>{let t=e.split("\x1f"),r=(t[0]??"").trim();return{sha:r,shortSha:r.slice(0,7),message:(t[1]??"").trim(),author:(t[2]??"").trim(),date:(t[3]??"").trim()}}):[]}async function _(e,t,r){try{let{stdout:a}=await c("git",["-C",e,"diff",`${r}^`,r,"--",t]);return a}catch{let{stdout:a}=await c("git",["-C",e,"show",r,"--",t]);return a}}async function A(e,t){try{let{stdout:r}=await c("git",["-C",e,"log","-1","--pretty=format:%H\x1f%an\x1f%aI","--",t]);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 E(e){let{stdout:t}=await c("git",["-C",e,"branch"]);return t.split("\n").filter(Boolean).map(e=>({current:e.startsWith("*"),name:e.replace(/^\*?\s+/,"").trim()}))}async function I(e,t){if(!(!(!t||t.length>200||p.test(t)||t.includes("..")||t.startsWith("-")||t.startsWith("/")||t.endsWith("/"))&&/^[a-zA-Z0-9._\-/]+$/.test(t)&&1)){let e=Error("Invalid branch name");throw e.invalidBranch=!0,e}let{stdout:r}=await c("git",["-C",e,"status","--porcelain"]);if(r.trim().length>0){let e=Error("Repository has uncommitted changes");throw e.dirty=!0,e}await c("git",["-C",e,"checkout",t]);let[a,n]=await Promise.all([v(e),R(e)]);return{sha:a,branch:n}}async function S(e,t){let a=t.split("/").filter(Boolean);for(let t=a.length-1;t>=0;t--){let n=0===t?e:r.default.join(e,...a.slice(0,t));if(await b(n))return{repoDir:n,relFromRepo:a.slice(t).join("/")}}return null}async function b(e){try{await (0,l.stat)(r.default.join(e,".git"))}catch{return null}try{let{stdout:t}=await c("git",["-C",e,"rev-parse","--show-toplevel"]);if(t.trim()!==e)return null;let r=await R(e),{stdout:a}=await c("git",["-C",e,"status","--porcelain"]),n=a.trim().length>0;return{branch:r,dirty:n}}catch{return null}}function C(){return r.default.join(process.env.HOME??u.default.homedir(),".wiki-viewer")}function O(){return r.default.join(C(),"git-secrets.json")}function P(){let e=O();if(!(0,a.existsSync)(e))return{};try{return JSON.parse((0,a.readFileSync)(e,"utf-8"))}catch{return{}}}function x(e){let t=O();(0,a.writeFileSync)(t,JSON.stringify(e),{mode:384});try{(0,a.chmodSync)(t,384)}catch{}}async function U(e,t){await (0,l.mkdir)(C(),{recursive:!0});let r=P();r[e]=t,x(r)}async function N(e){return P()[e]??null}async function T(e){let t=P();e in t&&(delete t[e],x(t))}async function D(){return(await (0,i.readConfig)()).workspaces??[]}async function j(e){return(await D()).find(t=>t.id===e)??null}async function H(e){let t=r.default.resolve(e.rootDir),a={id:"ws_"+(0,n.randomBytes)(6).toString("base64url"),name:e.name??r.default.basename(t),rootDir:t,createdAt:new Date().toISOString(),lastOpenedAt:new Date().toISOString(),createdBy:e.createdBy};return await (0,i.updateConfig)(e=>({...e,workspaces:[...e.workspaces??[],a]})),a}async function W(t){let s;if(await d(),!t.allowLocalPath){let e=h(t.remoteUrl,{allowedHosts:t.allowedHosts,allowInsecureHttp:t.allowInsecureHttp});if(!e.ok)throw Error(e.reason)}let o="ws_"+(0,n.randomBytes)(6).toString("base64url"),l=r.default.join((0,i.reposDir)(),o),u=t.subpath?r.default.join(l,t.subpath):l;t.token&&(s="git_"+(0,n.randomBytes)(9).toString("base64url"),await U(s,t.token));try{await g({remoteUrl:t.remoteUrl,branch:t.branch,token:t.token,username:t.username,destDir:l,subpath:t.subpath})}catch(e){if(s)try{await T(s)}catch{}try{(0,a.rmSync)(l,{recursive:!0,force:!0})}catch{}throw e}if(t.subpath){let{lstat:n,realpath:i}=await e.A(687903),o=!1;try{if((await n(u)).isDirectory()){let e=await i(l),t=await i(u);o=t===e||t.startsWith(e+r.default.sep)}}catch{}if(!o){if(s)try{await T(s)}catch{}try{(0,a.rmSync)(l,{recursive:!0,force:!0})}catch{}throw Error(`Subpath '${t.subpath}' not found in the repository.`)}}let c=new Date().toISOString(),p=await v(l),f=t.branch?void 0:await R(l),m={id:o,name:t.name??r.default.basename(t.remoteUrl.replace(/\.git$/,"")),rootDir:u,createdAt:c,lastOpenedAt:c,createdBy:t.createdBy,readOnly:!0,git:{remoteUrl:t.remoteUrl,branch:t.branch??f,tokenRef:s,username:t.username,lastPulledAt:c,lastSha:p,subpath:t.subpath,cloneRoot:t.subpath?l:void 0}};return await (0,i.updateConfig)(e=>({...e,workspaces:[...e.workspaces??[],m]})),m}async function q(e){let t=await j(e);if(!t)throw Error(`Workspace ${e} not found`);if(!t.git)throw Error(`Workspace ${e} is not a git-backed workspace`);let r=t.git.tokenRef?await N(t.git.tokenRef)??void 0:void 0,a=t.git.cloneRoot??t.rootDir;try{await y({rootDir:a,token:r,username:t.git.username})}catch(r){let t=r instanceof Error?r.message:String(r);throw await M(e,e=>({...e,git:e.git?{...e.git,lastError:t}:e.git})),r}let n=await v(a),i=new Date().toISOString();return await M(e,e=>({...e,git:e.git?{...e.git,lastSha:n,lastPulledAt:i,lastError:void 0}:e.git})),{lastSha:n,lastPulledAt:i}}function M(e,t){return(0,i.updateConfig)(r=>{let a=(r.workspaces??[]).map(r=>r.id===e?t(r):r);return{...r,workspaces:a}}).then(()=>void 0)}async function B(e,t){await M(e,e=>({...e,name:t}))}async function $(t){let n=await j(t);if(await (0,i.updateConfig)(e=>({...e,workspaces:(e.workspaces??[]).filter(e=>e.id!==t)})),n?.git?.tokenRef)try{await T(n.git.tokenRef)}catch{}if(n?.git){let e=r.default.resolve(n.git.cloneRoot??n.rootDir),t=r.default.resolve((0,i.reposDir)()),s=r.default.relative(t,e);if(e!==t&&""!==s&&!s.startsWith("..")&&!r.default.isAbsolute(s))try{(0,a.rmSync)(e,{recursive:!0,force:!0})}catch{}}try{let{purgeWorkspace:r}=await e.A(754121);await r(t)}catch(e){console.error("[search] purge failed on workspace remove",e)}}async function L(e,t){await M(e,e=>({...e,allowedUserIds:t}))}async function F(e,t){await M(e,e=>({...e,pinnedPaths:t}))}async function K(e){await M(e,e=>({...e,lastOpenedAt:new Date().toISOString()}))}e.s(["assertGitAvailable",0,d,"cloneRepo",0,g,"currentBranch",0,R,"detectGitRepo",0,b,"findEnclosingGitRepo",0,S,"gitBranches",0,E,"gitCheckout",0,I,"gitFileDiff",0,_,"gitFileHistory",0,k,"gitFileInfo",0,A,"headSha",0,v,"pullRepo",0,y,"validateRemoteUrl",0,h],787140);let G=!1;async function z(){if(G)return;let e=e=>e.lastOpenedPath??(process.env.ROOT_DIR?r.default.resolve(process.env.ROOT_DIR):null),t=await (0,i.readConfig)();if((t.workspaces??[]).length>0||!e(t)){G=!0;return}let a=null;await (0,i.updateConfig)(t=>{let i=t.workspaces??[],s=e(t);if(i.length>0||!s)return t;let o=r.default.resolve(s);return a={id:"ws_"+(0,n.randomBytes)(6).toString("base64url"),name:r.default.basename(o),rootDir:o,createdAt:new Date().toISOString(),lastOpenedAt:new Date().toISOString(),pinnedPaths:t.pinnedPaths},{...t,workspaces:[a]}}),a&&console.log(`[wiki-viewer] Migrated lastOpenedPath → workspace "${a.name}" (${a.id})`),G=!0}e.s(["createGitWorkspace",0,W,"createWorkspace",0,H,"getWorkspace",0,j,"listWorkspaces",0,D,"migrateConfigToWorkspaces",0,z,"refreshGitWorkspace",0,q,"removeWorkspace",0,$,"renameWorkspace",0,B,"safeWorkspacePath",0,function(e,t){if(!e)return null;if(!t||"."===t)return e;let a=r.default.resolve(e,t);return a===e||a.startsWith(e+r.default.sep)?a:null},"sanitizeWorkspace",0,function(e){if(!e.git)return e;let{tokenRef:t,...r}=e.git;return{...e,git:r}},"setWorkspaceAccess",0,L,"setWorkspacePins",0,F,"touchWorkspace",0,K,"userCanAccess",0,function(e,t,r){return!!r||!e.allowedUserIds||0===e.allowedUserIds.length||e.allowedUserIds.includes(t)}],359211)},402662,e=>{"use strict";var t=e.i(702414);e.s(["checkOrigin",0,function(e){let r=e.method.toUpperCase();if("GET"===r||"HEAD"===r||"OPTIONS"===r)return null;let a=e.headers.get("origin"),n=e.headers.get("referer");if(!a&&!n)return null;let i=function(e){let t=Array.from(new Set(["localhost","127.0.0.1",e.split(":")[0],...(process.env.WIKI_OWNER_HOSTS??"").split(",").map(e=>e.trim()).filter(Boolean)])),r=["",":3000",":3003"];e.includes(":")&&r.push(":"+e.split(":")[1]);let a=new Set;for(let e of t)for(let t of["http","https"])for(let n of r)a.add(`${t}://${e}${n}`);return a}(e.headers.get("host")??"");if(a)return i.has(a)?null:t.NextResponse.json({error:"FORBIDDEN",message:"Bad origin"},{status:403});if(n){try{let{protocol:e,host:t}=new URL(n);if(i.has(`${e}//${t}`))return null}catch{}return t.NextResponse.json({error:"FORBIDDEN",message:"Bad referer"},{status:403})}return null}])},232906,e=>{"use strict";var t=e.i(364564),r=e.i(102095),a=e.i(691091),n=e.i(475331),i=e.i(490301),s=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),c=e.i(420180),d=e.i(867883),p=e.i(336708),h=e.i(682278),f=e.i(157569),m=e.i(844146),w=e.i(193695);e.i(105888);var g=e.i(530564),y=e.i(702414),v=e.i(402662),R=e.i(254226),k=e.i(583627),_=e.i(359211);async function A(e,{params:t}){let r=(0,v.checkOrigin)(e);if(r)return r;let a=await (0,R.requireUser)(e);if(!a.ok)return y.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let{id:n}=await t,i=await (0,_.getWorkspace)(n);if(!i)return y.NextResponse.json({error:"WORKSPACE_NOT_FOUND"},{status:404});let s=await (0,k.isAdmin)(a.user.id,a.user.email);return(0,_.userCanAccess)(i,a.user.id,s)?(await (0,_.touchWorkspace)(n),y.NextResponse.json({ok:!0})):y.NextResponse.json({error:"WORKSPACE_FORBIDDEN"},{status:403})}e.s(["POST",0,A,"runtime",0,"nodejs"],374200);var E=e.i(374200);let I=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/system/workspaces/[id]/open/route",pathname:"/api/system/workspaces/[id]/open",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/system/workspaces/[id]/open/route.ts",nextConfigOutput:"standalone",userland:E,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:C}=I;async function O(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),I.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/system/workspaces/[id]/open/route";y=y.replace(/\/index$/,"")||"/";let v=await I.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:R,params:k,nextConfig:_,parsedUrl:A,isDraftMode:E,prerenderManifest:S,routerServerContext:b,isOnDemandRevalidate:C,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:x,serverActionsManifest:U}=v,N=(0,o.normalizeAppPath)(y),T=!!(S.dynamicRoutes[N]||S.routes[P]),D=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,A,!1):t.end("This page could not be found"),null);if(T&&!E){let e=!!S.routes[P],t=S.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await D();throw new w.NoFallbackError}}let j=null;!T||I.isDev||E||(j="/index"===(j=P)?"/":j);let H=!0===I.isDev||!T,W=T&&!H;U&&x&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:x,serverActionsManifest:U});let q=e.method||"GET",M=(0,i.getTracer)(),B=M.getActiveScopeSpan(),$=!!(null==b?void 0:b.isWrappedByNextServer),L=!!(0,n.getRequestMeta)(e,"minimalMode"),F=(0,n.getRequestMeta)(e,"incrementalCache")||await I.getIncrementalCache(e,_,S,L);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let K={params:k,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:H,incrementalCache:F,cacheLifeProfiles:_.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>I.onRequestError(e,t,a,n,b)},sharedContext:{buildId:R}},G=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let n,s=async e=>I.handle(Z,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${q} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${q} ${y}`)}),o=async n=>{var i,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&C&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let o=K.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=K.renderOpts.collectedTags;if(!T)return await (0,p.sendResponse)(G,z,i,K.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await I.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:W,isOnDemandRevalidate:C})},!1,b),t}},u=await I.handleResponse({req:e,nextConfig:_,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!T)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",C?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&T||c.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(G,z,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};$&&B?await o(B):(n=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(c.BaseServerSpan.handleRequest,{spanName:`${q} ${y}`,kind:i.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},o),void 0,!$))}catch(t){if(t instanceof w.NoFallbackError||await I.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:W,isOnDemandRevalidate:C})},!1,b),T)throw t;return await (0,p.sendResponse)(G,z,new Response(null,{status:500})),null}}e.s(["handler",0,O,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})},"routeModule",0,I,"serverHooks",0,C,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,b],232906)},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0d7zxm_._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(t=>e.l(t))).then(()=>t(437856)))}];
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0-puax4._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[719126,e=>{"use strict";var t=e.i(666680),a=e.i(912714),r=e.i(750227);function s(e){let t=e.replace(/\\/g,"/");return".proof"===t||t.startsWith(".proof/")||".git"===t||t.startsWith(".git/")}async function n(e,t){if(!e)return null;let n=r.default.normalize(t);if(n.startsWith("..")||r.default.isAbsolute(n)||s(n))return null;let i=r.default.join(e,n);if(i!==e&&!i.startsWith(e+r.default.sep))return null;try{let t=await (0,a.realpath)(i);if(t!==e&&!t.startsWith(e+r.default.sep))return null}catch{let t=r.default.dirname(i);if(t!==i)try{let s=await (0,a.realpath)(t);if(s!==e&&!s.startsWith(e+r.default.sep))return null}catch{}}return i}let i={".md":"text/markdown; charset=utf-8",".markdown":"text/markdown; charset=utf-8",".txt":"text/plain; charset=utf-8",".json":"application/json; charset=utf-8",".jsonc":"application/json; charset=utf-8",".ts":"text/typescript; charset=utf-8",".tsx":"text/typescript; charset=utf-8",".mts":"text/typescript; charset=utf-8",".js":"text/javascript; charset=utf-8",".jsx":"text/javascript; charset=utf-8",".mjs":"text/javascript; charset=utf-8",".html":"text/html; charset=utf-8",".htm":"text/html; charset=utf-8",".css":"text/css; charset=utf-8",".yaml":"text/yaml; charset=utf-8",".yml":"text/yaml; charset=utf-8",".toml":"text/toml; charset=utf-8",".xml":"application/xml; charset=utf-8",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".zip":"application/zip",".tar":"application/x-tar",".gz":"application/gzip",".py":"text/x-python; charset=utf-8",".rs":"text/x-rustsrc; charset=utf-8",".go":"text/x-go; charset=utf-8",".sh":"text/x-shellscript; charset=utf-8",".csv":"text/csv; charset=utf-8",".env":"text/plain; charset=utf-8"};async function o(e,t){let r=420;try{let t=await (0,a.stat)(e);r=511&t.mode}catch{}let s=e+".~"+process.pid+"."+Date.now()+".tmp",n=await (0,a.open)(s,"w",r);try{await n.write(t),await n.datasync()}finally{await n.close()}await (0,a.rename)(s,e)}async function l(e,t){let s=r.default.dirname(e);if(t)return await (0,a.mkdir)(s,{recursive:!0}),!0;try{return await (0,a.stat)(s),!0}catch{return!1}}e.s(["atomicWrite",0,o,"ensureParentDir",0,l,"extractShaHex",0,function(e){return e.replace(/^"/,"").replace(/"$/,"").replace(/^sha256:/,"")},"isDeniedRelPath",0,s,"isMarkdown",0,function(e){return e.endsWith(".md")||e.endsWith(".markdown")},"looksLikeBinary",0,function(e){return e.slice(0,Math.min(e.length,8192)).includes(0)},"mimeByExt",0,function(e){return i[r.default.extname(e).toLowerCase()]??"application/octet-stream"},"safeAbsPath",0,n,"sha256ofBuf",0,function(e){return"sha256:"+(0,t.createHash)("sha256").update(e).digest("hex")}])},81111,(e,t,a)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},687769,(e,t,a)=>{t.exports=e.x("node:events",()=>require("node:events"))},275859,e=>{"use strict";var t=e.i(912714),a=e.i(750227);async function r(e,r){try{let s=a.default.join(e,r,"package.json");return(await (0,t.stat)(s)).isFile()}catch{return!1}}async function s(e,r){try{let s=a.default.join(e,r,"index.html");return(await (0,t.stat)(s)).isFile()}catch{return!1}}e.s(["isAppFolder",0,s,"isNodeApp",0,r])},352876,e=>{"use strict";var t=e.i(364564),a=e.i(102095),r=e.i(691091),s=e.i(475331),n=e.i(490301),i=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),c=e.i(420180),p=e.i(867883),d=e.i(336708),h=e.i(682278),f=e.i(157569),m=e.i(844146),v=e.i(193695);e.i(105888);var x=e.i(530564),w=e.i(702414),g=e.i(660038),R=e.i(123368),y=e.i(437856);let _=/\[\[([a-z0-9-]+)(?:\|[^\]#|]+|#[a-z0-9-]+)?\]\]/gi;async function E(e){let t,a=await (0,g.resolveWorkspaceForUser)(e);if(!a.ok)return w.NextResponse.json({error:a.code},{status:a.status});let r=new URL(e.url).searchParams.get("path")??"";if(!r)return w.NextResponse.json({error:"path required"},{status:400});(0,y.ensureIndexer)(a.ws.id,a.rootDir).catch(e=>console.error("[outlinks] ensureIndexer failed",e));let s=(0,R.getSearchDb)(),n=s.prepare("SELECT body FROM docs WHERE ws = ? AND path = ?").get(a.ws.id,r);if(!n)return w.NextResponse.json({error:"file not indexed"},{status:404});let i=new Set,o=RegExp(_.source,"gi");for(;null!==(t=o.exec(n.body));)t[1]&&i.add(t[1].toLowerCase());if(0===i.size)return w.NextResponse.json({links:[]});let l=s.prepare("SELECT path FROM docs WHERE ws = ? AND path LIKE '%.md'").all(a.ws.id),u=new Map;for(let{path:e}of l)u.set((e.split("/").pop()??e).replace(/\.md$/i,"").toLowerCase(),e);let c=Array.from(i).map(e=>{let t=u.get(e)??null;return{slug:e,resolved_path:t,exists:null!==t}});return w.NextResponse.json({links:c})}e.s(["GET",0,E,"runtime",0,"nodejs"],834552);var j=e.i(834552);let k=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/wiki/outlinks/route",pathname:"/api/wiki/outlinks",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/outlinks/route.ts",nextConfigOutput:"standalone",userland:j,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:A,serverHooks:P}=k;async function b(e,t,r){r.requestMeta&&(0,s.setRequestMeta)(e,r.requestMeta),k.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/wiki/outlinks/route";w=w.replace(/\/index$/,"")||"/";let g=await k.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:R,params:y,nextConfig:_,parsedUrl:E,isDraftMode:j,prerenderManifest:C,routerServerContext:A,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,resolvedPathname:N,clientReferenceManifest:q,serverActionsManifest:T}=g,S=(0,o.normalizeAppPath)(w),O=!!(C.dynamicRoutes[S]||C.routes[N]),D=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,E,!1):t.end("This page could not be found"),null);if(O&&!j){let e=!!C.routes[N],t=C.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await D();throw new v.NoFallbackError}}let H=null;!O||k.isDev||j||(H="/index"===(H=N)?"/":H);let I=!0===k.isDev||!O,M=O&&!I;T&&q&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:q,serverActionsManifest:T});let U=e.method||"GET",W=(0,n.getTracer)(),z=W.getActiveScopeSpan(),F=!!(null==A?void 0:A.isWrappedByNextServer),L=!!(0,s.getRequestMeta)(e,"minimalMode"),$=(0,s.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,_,C,L);null==$||$.resetRequestCache(),globalThis.__incrementalCache=$;let B={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:I,incrementalCache:$,cacheLifeProfiles:_.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,s)=>k.onRequestError(e,t,r,s,A)},sharedContext:{buildId:R}},K=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let s,i=async e=>k.handle(V,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=W.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${U} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",r),s.updateName(t))}else e.updateName(`${U} ${w}`)}),o=async s=>{var n,o;let l=async({previousCacheEntry:a})=>{try{if(!L&&P&&b&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!O)return await (0,d.sendResponse)(K,G,n,B.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,r=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:P})},!1,A),t}},u=await k.handleResponse({req:e,nextConfig:_,cacheKey:H,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:L});if(!O)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&O||c.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,d.sendResponse)(K,G,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};F&&z?await o(z):(s=W.getActiveScopeSpan(),await W.withPropagatedContext(e.headers,()=>W.trace(c.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:n.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof v.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:P})},!1,A),O)throw t;return await (0,d.sendResponse)(K,G,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:A})},"routeModule",0,k,"serverHooks",0,P,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,A],352876)},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(e=>Promise.resolve().then(()=>e(437856)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__01h996g._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[814747,(e,t,n)=>{t.exports=e.x("path",()=>require("path"))},224361,(e,t,n)=>{t.exports=e.x("util",()=>require("util"))},688947,(e,t,n)=>{t.exports=e.x("stream",()=>require("stream"))},427699,(e,t,n)=>{t.exports=e.x("events",()=>require("events"))},228064,e=>{"use strict";var t=e.i(666680),n=e.i(912714),a=e.i(660526),r=e.i(750227),s=e.i(832852);let i="__registry__",o=new Map;function l(){let e=process.env.HOME??a.default.homedir();return r.default.join(e,".wiki-viewer")}function u(){return r.default.join(l(),"agents.json")}function d(e){return(0,t.createHash)("sha256").update(e,"utf8").digest("hex")}async function c(){try{let e=await (0,n.readFile)(u(),"utf8"),t=JSON.parse(e);return{version:1,agents:Array.isArray(t.agents)?t.agents:[]}}catch{return null}}async function p(e){await (0,n.mkdir)(l(),{recursive:!0});let t=u()+".tmp";await (0,n.writeFile)(t,JSON.stringify(e,null,2),{encoding:"utf8",mode:384});try{await (0,n.chmod)(t,384)}catch{}await (0,n.rename)(t,u())}async function g(){let e=await c();if(e)return e;let t={version:1,agents:[]};return await p(t),t}async function h(e){let n=await c();if(!n)return null;let a=d(e);for(let e of n.agents)if(function(e,n){let a=Buffer.from(e.padEnd(64,"0"),"utf8"),r=Buffer.from(n.padEnd(64,"0"),"utf8");return a.length===r.length&&(0,t.timingSafeEqual)(a,r)&&e.length===n.length}(e.tokenHash,a))return e;return null}async function m(e){await (0,s.withFileMutex)(i,async()=>{let t=await g(),n=t.agents.findIndex(t=>t.id===e.id);n>=0?t.agents[n]=e:t.agents.push(e),await p(t)})}async function v(e){return(0,s.withFileMutex)(i,async()=>{let t=await c();if(!t)return!1;let n=t.agents.length;return t.agents=t.agents.filter(t=>t.id!==e),t.agents.length!==n&&(await p(t),!0)})}async function f(e){Date.now()-(o.get(e)??0)<3e4||await (0,s.withFileMutex)(i,async()=>{let t=await c();if(!t)return;let n=t.agents.find(t=>t.id===e);n&&(n.lastSeen=new Date().toISOString(),o.set(e,Date.now()),await p(t))})}e.s(["addAgent",0,m,"hashToken",0,d,"lookupAgentByToken",0,h,"readRegistry",0,c,"removeAgent",0,v,"updateLastSeen",0,f])},215043,552350,e=>{"use strict";var t=e.i(228064);function n(e,t){return(function(e){let t="^",n=0;for(;n<e.length;)"*"===e[n]&&"*"===e[n+1]?(t+=".*","/"===e[n+=2]&&(t+="(?:.+/)?",n++)):("*"===e[n]?t+="[^/]*":"?"===e[n]?t+="[^/]":t+=e[n].replace(/[.+^${}()|[\]\\]/g,"\\$&"),n++);return new RegExp(t+="$")})(e).test(t)}e.s(["matchGlob",0,n],552350);var a=e.i(254226);async function r(e){let n=await (0,a.getSessionFromRequest)(e);if(n?.user){let e=n.user;return{ok:!0,agent:{id:`user:${e.id}`,displayName:e.name,tokenHash:"",scope:{paths:["**/*"],ops:["read","mutate","delete"]},createdAt:"",lastSeen:""}}}let r=e.headers.get("authorization")??"",s=r.startsWith("Bearer ")?r.slice(7).trim():"";if(!s)return{ok:!1,code:"UNAUTHORIZED",message:"No credentials"};let i=await (0,t.lookupAgentByToken)(s);if(!i)return{ok:!1,code:"UNAUTHORIZED",message:"Unknown or invalid token"};let o=e.headers.get("x-agent-id")??"";return o?o!==i.id?{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id does not match token owner"}:((0,t.updateLastSeen)(i.id),{ok:!0,agent:i}):{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id header required"}}process.env.AGENT_BEARER_TOKEN&&console.warn("[wiki-viewer] AGENT_BEARER_TOKEN is no longer used; manage agents via the AI Panel."),e.s(["checkAuth",0,r,"enforceScope",0,function(e,t){let{scope:a}=e;return void 0!==a.workspaceId&&void 0!==t.workspaceId&&a.workspaceId!==t.workspaceId?{ok:!1,code:"FORBIDDEN",message:`Agent scope does not cover workspace "${t.workspaceId}" (granted: "${a.workspaceId}")`}:a.ops.includes(t.op)?t.filePath&&!a.paths.some(e=>n(e,t.filePath))?{ok:!1,code:"FORBIDDEN",message:`Agent scope does not cover path "${t.filePath}"`}:{ok:!0}:{ok:!1,code:"FORBIDDEN",message:`Agent scope does not allow "${t.op}"`}},"verifyBy",0,function(e,t){return e.id.startsWith("user:")?!t||"owner"===t||"human"===t||t.startsWith("human:")||t===e.id?{ok:!0}:{ok:!1,code:"FORBIDDEN",message:'User agent must use "human", "owner", or own id in "by" field'}:t!==e.id?{ok:!1,code:"FORBIDDEN",message:`"by" field must equal agent id "${e.id}"`}:{ok:!0}}],215043)},413895,e=>{"use strict";var t=e.i(666680);let n=globalThis;n.__wvPendingRegs||(n.__wvPendingRegs=new Map);let a=n.__wvPendingRegs;e.s(["approveRegistration",0,function(e,t){let n=a.get(e);return!!n&&"pending"===n.status&&(n.status="approved",n.tokenPlaintext=t,n.resolvedAt=new Date().toISOString(),!0)},"consumeRegistration",0,function(e){let t=a.get(e);if(!t||"approved"!==t.status||!t.tokenPlaintext)return null;let n=t.tokenPlaintext;return t.status="consumed",t.tokenPlaintext=void 0,n},"createRegistration",0,function(e){let n=`reg_${(0,t.randomBytes)(16).toString("hex")}`,r={registrationId:n,agentId:e.agentId,displayName:e.displayName,requestedScope:e.requestedScope??{paths:["**/*"],ops:["read","mutate"]},requestedAt:new Date().toISOString(),status:"pending"};return a.set(n,r),r},"denyRegistration",0,function(e){let t=a.get(e);return!!t&&"pending"===t.status&&(t.status="denied",t.resolvedAt=new Date().toISOString(),!0)},"getRegistration",0,function(e){return a.get(e)},"listPendingRegistrations",0,function(){return[...a.values()].filter(e=>"pending"===e.status)}])},280137,e=>{"use strict";var t=e.i(364564),n=e.i(102095),a=e.i(691091),r=e.i(475331),s=e.i(490301),i=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),d=e.i(420180),c=e.i(867883),p=e.i(336708),g=e.i(682278),h=e.i(157569),m=e.i(844146),v=e.i(193695);e.i(105888);var f=e.i(530564),w=e.i(702414),R=e.i(215043),_=e.i(660038),k=e.i(228064),y=e.i(413895);async function E(e){let t=await (0,R.checkAuth)(e);if(!t.ok)return w.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let n=await (0,_.resolveWorkspaceForAgent)(e);if(!n.ok)return w.NextResponse.json({error:n.code},{status:n.status});let{ws:a,rootDir:r}=n,s=(0,R.enforceScope)(t.agent,{op:"read",workspaceId:a.id});if(!s.ok)return w.NextResponse.json({error:s.code,message:s.message},{status:403});let i=await (0,k.readRegistry)(),o=i?.agents.length??0,l=(0,y.listPendingRegistrations)().length;return w.NextResponse.json({rateLimit:Number(process.env.AGENT_RATE_LIMIT)||60,root:r,registeredAgents:o,pendingRegistrations:l})}e.s(["GET",0,E,"runtime",0,"nodejs"],232229);var A=e.i(232229);let x=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/agent/settings/route",pathname:"/api/agent/settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agent/settings/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:P,serverHooks:I}=x;async function S(e,t,a){a.requestMeta&&(0,r.setRequestMeta)(e,a.requestMeta),x.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/agent/settings/route";w=w.replace(/\/index$/,"")||"/";let R=await x.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:_,params:k,nextConfig:y,parsedUrl:E,isDraftMode:A,prerenderManifest:N,routerServerContext:P,isOnDemandRevalidate:I,revalidateOnlyGenerated:S,resolvedPathname:T,clientReferenceManifest:O,serverActionsManifest:C}=R,q=(0,o.normalizeAppPath)(w),b=!!(N.dynamicRoutes[q]||N.routes[T]),D=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,E,!1):t.end("This page could not be found"),null);if(b&&!A){let e=!!N.routes[T],t=N.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await D();throw new v.NoFallbackError}}let j=null;!b||x.isDev||A||(j="/index"===(j=T)?"/":j);let U=!0===x.isDev||!b,H=b&&!U;C&&O&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:O,serverActionsManifest:C});let M=e.method||"GET",B=(0,s.getTracer)(),F=B.getActiveScopeSpan(),$=!!(null==P?void 0:P.isWrappedByNextServer),K=!!(0,r.getRequestMeta)(e,"minimalMode"),L=(0,r.getRequestMeta)(e,"incrementalCache")||await x.getIncrementalCache(e,y,N,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let z={params:k,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:U,incrementalCache:L,cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,r)=>x.onRequestError(e,t,a,r,P)},sharedContext:{buildId:_}},G=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let r,i=async e=>x.handle(Z,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=B.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=n.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",a),r.updateName(t))}else e.updateName(`${M} ${w}`)}),o=async r=>{var s,o;let l=async({previousCacheEntry:n})=>{try{if(!K&&I&&S&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(r);e.fetchMetrics=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!b)return await (0,p.sendResponse)(G,W,s,z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:a}}}}catch(t){throw(null==n?void 0:n.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:I})},!1,P),t}},u=await x.handleResponse({req:e,nextConfig:y,cacheKey:j,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!b)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",I?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&b||d.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(G,W,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};$&&F?await o(F):(r=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!$))}catch(t){if(t instanceof v.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:I})},!1,P),b)throw t;return await (0,p.sendResponse)(G,W,new Response(null,{status:500})),null}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:P})},"routeModule",0,x,"serverHooks",0,I,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,P],280137)},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0d7zxm_._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(t=>e.l(t))).then(()=>t(437856)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0329ktu._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[866072,e=>{"use strict";var t=e.i(364564),r=e.i(102095),a=e.i(691091),n=e.i(475331),s=e.i(490301),i=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),d=e.i(420180),p=e.i(867883),c=e.i(336708),h=e.i(682278),v=e.i(157569),_=e.i(844146),R=e.i(193695);e.i(105888);var m=e.i(530564),g=e.i(702414),w=e.i(787140),f=e.i(660038),E=e.i(359211);async function x(e){let t=await (0,f.resolveWorkspaceForUser)(e);if(!t.ok)return g.NextResponse.json({error:t.code},{status:t.status});let{rootDir:r}=t,{searchParams:a}=new URL(e.url),n=a.get("path")??"";if(!n)return g.NextResponse.json({error:"Invalid path"},{status:400});let s=(0,E.safeWorkspacePath)(r,n);if(!s||s===r)return g.NextResponse.json({error:"Invalid path"},{status:400});if(!await (0,w.detectGitRepo)(s))return g.NextResponse.json({error:"Not a git repository"},{status:400});try{let e=await (0,w.gitBranches)(s),t=e.find(e=>e.current)?.name??"";return g.NextResponse.json({branches:e,current:t})}catch{return g.NextResponse.json({error:"Failed to list branches"},{status:500})}}e.s(["GET",0,x],814251);var y=e.i(814251);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/wiki/git-branches/route",pathname:"/api/wiki/git-branches",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/git-branches/route.ts",nextConfigOutput:"standalone",userland:y,...{}}),{workAsyncStorage:b,workUnitAsyncStorage:P,serverHooks:N}=C;async function k(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/wiki/git-branches/route";g=g.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:f,params:E,nextConfig:x,parsedUrl:y,isDraftMode:b,prerenderManifest:P,routerServerContext:N,isOnDemandRevalidate:k,revalidateOnlyGenerated:A,resolvedPathname:j,clientReferenceManifest:T,serverActionsManifest:q}=w,O=(0,o.normalizeAppPath)(g),S=!!(P.dynamicRoutes[O]||P.routes[j]),I=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,y,!1):t.end("This page could not be found"),null);if(S&&!b){let e=!!P.routes[j],t=P.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await I();throw new R.NoFallbackError}}let U=null;!S||C.isDev||b||(U="/index"===(U=j)?"/":U);let H=!0===C.isDev||!S,M=S&&!H;q&&T&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:T,serverActionsManifest:q});let D=e.method||"GET",F=(0,s.getTracer)(),K=F.getActiveScopeSpan(),$=!!(null==N?void 0:N.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,x,P,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let L={params:E,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:H,incrementalCache:z,cacheLifeProfiles:x.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,N)},sharedContext:{buildId:f}},G=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>C.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${D} ${g}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!B&&k&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(G,W,s,L.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[_.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=_.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=_.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:k})},!1,N),t}},u=await C.handleResponse({req:e,nextConfig:x,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:B});if(!S)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return B&&S||d.delete(_.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(G,W,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};$&&K?await o(K):(n=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},o),void 0,!$))}catch(t){if(t instanceof R.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:k})},!1,N),S)throw t;return await (0,c.sendResponse)(G,W,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:P})},"routeModule",0,C,"serverHooks",0,N,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,P],866072)},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0d7zxm_._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(t=>e.l(t))).then(()=>t(437856)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__03_xj4r._.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports=[583627,t=>{"use strict";var e=t.i(798003),r=t.i(254226);function a(){return(process.env.WIKI_ADMIN_EMAILS??"").split(",").map(t=>t.trim().toLowerCase()).filter(Boolean)}async function i(t,r){if(r){let t=a();if(t.length>0&&t.includes(r.toLowerCase()))return!0}return((await (0,e.readConfig)()).adminUserIds??[]).includes(t)}async function n(){return(await (0,e.readConfig)()).adminUserIds??[]}async function s(t){await (0,e.updateConfig)(e=>{let r=e.adminUserIds??[];return r.includes(t)?e:{...e,adminUserIds:[...r,t]}})}async function o(t){let r=a().length>0,i=!1;if(await (0,e.updateConfig)(e=>{let a=(e.adminUserIds??[]).filter(e=>e!==t);return 0!==a.length||r?{...e,adminUserIds:a}:(i=!0,e)}),i)throw Error("LAST_ADMIN: cannot remove the last admin with no WIKI_ADMIN_EMAILS configured")}async function l(t){if(a().length>0||((await (0,e.readConfig)()).adminUserIds??[]).length>0)return;let r=!1;await (0,e.updateConfig)(e=>(e.adminUserIds??[]).length>0?e:(r=!0,{...e,adminUserIds:[t]})),r&&console.log(`[wiki-viewer] Bootstrap: first user ${t} promoted to admin`)}async function c(t){if("1"===process.env.WIKI_NO_AUTH)return{ok:!0,user:{id:"local",email:"local@localhost",name:"local"}};let e=await (0,r.requireUser)(t);return e.ok?await i(e.user.id,e.user.email)?{ok:!0,user:e.user}:{ok:!1,status:403,code:"ADMIN_REQUIRED"}:{ok:!1,status:401,code:"UNAUTHORIZED"}}t.s(["addAdmin",0,s,"ensureBootstrapAdmin",0,l,"isAdmin",0,i,"listAdmins",0,n,"removeAdmin",0,o,"requireAdmin",0,c])},874533,(t,e,r)=>{e.exports=t.x("node:child_process",()=>require("node:child_process"))},812057,(t,e,r)=>{e.exports=t.x("node:util",()=>require("node:util"))},359211,787140,t=>{"use strict";let e;var r=t.i(750227),a=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 d(){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 w(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:i}=e;if(i&&i.length>0){let t=r.hostname.toLowerCase();if(!i.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-")),i=r.default.join(e,"askpass.sh"),n=`#!/bin/sh
|
|
2
|
-
printf '%s' '${t.replace(/'/g,"'\\''")}'`;(0,a.writeFileSync)(i,n,{mode:448});try{(0,a.chmodSync)(i,448)}catch{}return i}function h(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 m(t){let e,a,{branch:i,token:n,destDir:s,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 d=["clone","--depth",String(l),"--single-branch","--no-tags"];i&&d.push("--branch",i),e&&d.push("--filter=blob:none","--sparse");let w=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;d.push(w,s);try{if(n){let t=await g(n);a=t.askpassPath,await u("git",d,{env:t.env})}else await u("git",d,{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{a&&h(a)}}async function y(t){let e,{rootDir:r,token:a}=t,i=["-C",r,"pull","--ff-only"];try{if(a){let t=await g(a);e=t.askpassPath,await u("git",i,{env:t.env})}else await u("git",i,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}finally{e&&h(e)}}async function k(t){let{stdout:e}=await u("git",["-C",t,"rev-parse","HEAD"]);return e.trim()}async function R(t){let{stdout:e}=await u("git",["-C",t,"rev-parse","--abbrev-ref","HEAD"]);return e.trim()}async function A(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 I(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 v(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 D(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 S(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,i]=await Promise.all([k(t),R(t)]);return{sha:a,branch:i}}async function O(t,e){let a=e.split("/").filter(Boolean);for(let e=a.length-1;e>=0;e--){let i=0===e?t:r.default.join(t,...a.slice(0,e));if(await _(i))return{repoDir:i,relFromRepo:a.slice(e).join("/")}}return null}async function _(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 R(t),{stdout:a}=await u("git",["-C",t,"status","--porcelain"]),i=a.trim().length>0;return{branch:r,dirty:i}}catch{return null}}function E(){return r.default.join(process.env.HOME??c.default.homedir(),".wiki-viewer")}function b(){return r.default.join(E(),"git-secrets.json")}function U(){let t=b();if(!(0,a.existsSync)(t))return{};try{return JSON.parse((0,a.readFileSync)(t,"utf-8"))}catch{return{}}}function C(t){let e=b();(0,a.writeFileSync)(e,JSON.stringify(t),{mode:384});try{(0,a.chmodSync)(e,384)}catch{}}async function W(t,e){await (0,l.mkdir)(E(),{recursive:!0});let r=U();r[t]=e,C(r)}async function P(t){return U()[t]??null}async function T(t){let e=U();t in e&&(delete e[t],C(e))}async function L(){return(await (0,n.readConfig)()).workspaces??[]}async function N(t){return(await L()).find(e=>e.id===t)??null}async function x(t){let e=r.default.resolve(t.rootDir),a={id:"ws_"+(0,i.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 H(e){let s;if(await d(),!e.allowLocalPath){let t=w(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=r.default.join((0,n.reposDir)(),o),c=e.subpath?r.default.join(l,e.subpath):l;e.token&&(s="git_"+(0,i.randomBytes)(9).toString("base64url"),await W(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 T(s)}catch{}try{(0,a.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+r.default.sep)}}catch{}if(!o){if(s)try{await T(s)}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 R(l),h={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: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??[],h]})),h}async function B(t){let e=await N(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 P(e.git.tokenRef)??void 0:void 0,a=e.git.cloneRoot??e.rootDir;try{await y({rootDir:a,token:r,username:e.git.username})}catch(r){let e=r instanceof Error?r.message:String(r);throw await M(t,t=>({...t,git:t.git?{...t.git,lastError:e}:t.git})),r}let i=await k(a),n=new Date().toISOString();return await M(t,t=>({...t,git:t.git?{...t.git,lastSha:i,lastPulledAt:n,lastError:void 0}:t.git})),{lastSha:i,lastPulledAt:n}}function M(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 $(t,e){await M(t,t=>({...t,name:e}))}async function K(e){let i=await N(e);if(await (0,n.updateConfig)(t=>({...t,workspaces:(t.workspaces??[]).filter(t=>t.id!==e)})),i?.git?.tokenRef)try{await T(i.git.tokenRef)}catch{}if(i?.git){let t=r.default.resolve(i.git.cloneRoot??i.rootDir),e=r.default.resolve((0,n.reposDir)()),s=r.default.relative(e,t);if(t!==e&&""!==s&&!s.startsWith("..")&&!r.default.isAbsolute(s))try{(0,a.rmSync)(t,{recursive:!0,force:!0})}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 F(t,e){await M(t,t=>({...t,allowedUserIds:e}))}async function j(t,e){await M(t,t=>({...t,pinnedPaths:e}))}async function G(t){await M(t,t=>({...t,lastOpenedAt:new Date().toISOString()}))}t.s(["assertGitAvailable",0,d,"cloneRepo",0,m,"currentBranch",0,R,"detectGitRepo",0,_,"findEnclosingGitRepo",0,O,"gitBranches",0,D,"gitCheckout",0,S,"gitFileDiff",0,I,"gitFileHistory",0,A,"gitFileInfo",0,v,"headSha",0,k,"pullRepo",0,y,"validateRemoteUrl",0,w],787140);let q=!1;async function Q(){if(q)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)){q=!0;return}let a=null;await (0,n.updateConfig)(e=>{let n=e.workspaces??[],s=t(e);if(n.length>0||!s)return e;let o=r.default.resolve(s);return a={id:"ws_"+(0,i.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})`),q=!0}t.s(["createGitWorkspace",0,H,"createWorkspace",0,x,"getWorkspace",0,N,"listWorkspaces",0,L,"migrateConfigToWorkspaces",0,Q,"refreshGitWorkspace",0,B,"removeWorkspace",0,K,"renameWorkspace",0,$,"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){if(!t.git)return t;let{tokenRef:e,...r}=t.git;return{...t,git:r}},"setWorkspaceAccess",0,F,"setWorkspacePins",0,j,"touchWorkspace",0,G,"userCanAccess",0,function(t,e,r){return!!r||!t.allowedUserIds||0===t.allowedUserIds.length||t.allowedUserIds.includes(e)}],359211)},504445,t=>{"use strict";var e=t.i(750227);let r=globalThis;!r.__wikiRootDir&&process.env.ROOT_DIR&&(r.__wikiRootDir=e.default.resolve(process.env.ROOT_DIR)),t.s(["clearRootDir",0,function(){r.__wikiRootDir=void 0},"getRootDir",0,function(){return r.__wikiRootDir??""},"isRootDirSet",0,function(){return!!r.__wikiRootDir},"setRootDir",0,function(t){r.__wikiRootDir=e.default.resolve(t)}])},660038,t=>{"use strict";var e=t.i(750227),r=t.i(254226),a=t.i(583627),i=t.i(504445),n=t.i(359211);async function s(t){await (0,n.migrateConfigToWorkspaces)();let r=new URL(t.url).searchParams.get("ws")??t.headers.get("x-workspace")??null;if(r)return await (0,n.getWorkspace)(r)??null;let a=await (0,n.listWorkspaces)();if(0===a.length){let t;return(t=(0,i.getRootDir)())?{id:"ws_default",name:e.default.basename(t)||"workspace",rootDir:t,createdAt:new Date(0).toISOString()}:null}return a.slice().sort((t,e)=>{let r=t.lastOpenedAt?new Date(t.lastOpenedAt).getTime():0,a=e.lastOpenedAt?new Date(e.lastOpenedAt).getTime():0;return a!==r?a-r:t.id<e.id?-1:+(t.id>e.id)})[0]}async function o(t,e="read"){if("1"===process.env.WIKI_NO_AUTH){let r=await s(t);return r?"write"===e&&r.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:r,rootDir:r.rootDir,userId:"local",isAdmin:!0}:{ok:!1,status:400,code:"WORKSPACE_REQUIRED"}}let i=await (0,r.requireUser)(t);if(!i.ok)return{ok:!1,status:401,code:"UNAUTHORIZED"};let l=await (0,a.isAdmin)(i.user.id,i.user.email),c=new URL(t.url).searchParams.get("ws")??t.headers.get("x-workspace")??null,u=await s(t);return u?(0,n.userCanAccess)(u,i.user.id,l)?"write"===e&&u.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:u,rootDir:u.rootDir,userId:i.user.id,isAdmin:l}:{ok:!1,status:403,code:"WORKSPACE_FORBIDDEN"}:{ok:!1,status:c?404:400,code:c?"WORKSPACE_NOT_FOUND":"WORKSPACE_REQUIRED"}}async function l(t,e="read"){let r=await s(t);if(!r){let e=new URL(t.url).searchParams.get("ws")??t.headers.get("x-workspace")??null;return{ok:!1,status:e?404:400,code:e?"WORKSPACE_NOT_FOUND":"WORKSPACE_REQUIRED"}}return"write"===e&&r.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:r,rootDir:r.rootDir}}t.s(["resolveWorkspaceForAgent",0,l,"resolveWorkspaceForUser",0,o])}];
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__05398dt._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[165076,e=>{"use strict";var t=e.i(364564),a=e.i(102095),r=e.i(691091),n=e.i(475331),s=e.i(490301),i=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),d=e.i(420180),p=e.i(867883),c=e.i(336708),h=e.i(682278),v=e.i(157569),m=e.i(844146),_=e.i(193695);e.i(105888);var f=e.i(530564),R=e.i(912714),g=e.i(750227),w=e.i(702414),x=e.i(660038),y=e.i(359211);async function E(e,t){let a=g.default.extname(t),r=t.slice(0,t.length-a.length),n=t,s=2;for(;;)try{await (0,R.stat)(g.default.join(e,n)),n=`${r}-${s}${a}`,s+=1}catch{return n}}async function C(e,{params:t}){let a,r=await (0,x.resolveWorkspaceForAgent)(e,"write");if(!r.ok)return w.NextResponse.json({error:r.code},{status:r.status});let{rootDir:n}=r,{path:s}=await t,i=(s??[]).join("/"),o=g.default.join(n,"_uploads",i);if(!(0,y.safeWorkspacePath)(n,g.default.join("_uploads",i)))return w.NextResponse.json({error:"Invalid path"},{status:400});try{a=await e.formData()}catch{return w.NextResponse.json({error:"Expected multipart/form-data"},{status:400})}let l=a.get("file");if(!(l instanceof File))return w.NextResponse.json({error:"Missing file field"},{status:400});if(l.size>0x3200000)return w.NextResponse.json({error:"File exceeds 50MB limit"},{status:413});let u=(l.name||"file").toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/-+/g,"-").replace(/^[-.]+/,"").replace(/-+$/,"")||"file";try{await (0,R.mkdir)(o,{recursive:!0});let e=await E(o,u),t=g.default.join(o,e),a=Buffer.from(await l.arrayBuffer());await (0,R.writeFile)(t,a);let r=["_uploads",i,e].filter(Boolean),n=r.map(encodeURIComponent).join("/"),s=r.join("/");return w.NextResponse.json({url:`/api/assets/${n}`,path:s,absolutePath:t,size:a.length,mimeType:l.type||"application/octet-stream"})}catch(t){let e=t instanceof Error?t.message:"Write failed";return w.NextResponse.json({error:e},{status:500})}}e.s(["POST",0,C],24230);var P=e.i(24230);let j=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/upload/[...path]/route",pathname:"/api/upload/[...path]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/upload/[...path]/route.ts",nextConfigOutput:"standalone",userland:P,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:A,serverHooks:b}=j;async function k(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/upload/[...path]/route";R=R.replace(/\/index$/,"")||"/";let g=await j.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:x,nextConfig:y,parsedUrl:E,isDraftMode:C,prerenderManifest:P,routerServerContext:N,isOnDemandRevalidate:A,revalidateOnlyGenerated:b,resolvedPathname:k,clientReferenceManifest:T,serverActionsManifest:q}=g,O=(0,o.normalizeAppPath)(R),S=!!(P.dynamicRoutes[O]||P.routes[k]),I=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,E,!1):t.end("This page could not be found"),null);if(S&&!C){let e=!!P.routes[k],t=P.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await I();throw new _.NoFallbackError}}let H=null;!S||j.isDev||C||(H="/index"===(H=k)?"/":H);let M=!0===j.isDev||!S,U=S&&!M;q&&T&&(0,i.setManifestsSingleton)({page:R,clientReferenceManifest:T,serverActionsManifest:q});let D=e.method||"GET",$=(0,s.getTracer)(),F=$.getActiveScopeSpan(),B=!!(null==N?void 0:N.isWrappedByNextServer),z=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await j.getIncrementalCache(e,y,P,z);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let L={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:M,incrementalCache:K,cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>j.onRequestError(e,t,r,n,N)},sharedContext:{buildId:w}},W=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>j.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${D} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${D} ${R}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:a})=>{try{if(!z&&A&&b&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(W,G,s,L.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,r=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,N),t}},u=await j.handleResponse({req:e,nextConfig:y,cacheKey:H,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:b,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:z});if(!S)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});z||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return z&&S||d.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(W,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&F?await o(F):(n=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${R}`,kind:s.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof _.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,N),S)throw t;return await (0,c.sendResponse)(W,G,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:A})},"routeModule",0,j,"serverHooks",0,b,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,A],165076)},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0d7zxm_._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(t=>e.l(t))).then(()=>t(437856)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__06lfvxh._.js.map
|