wrong-notebook 2026.10.22 → 2026.10.23
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/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +0 -1
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +0 -8
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/page.js.nft.json +1 -1
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/user/[id]/page.js.nft.json +1 -1
- package/.next/server/app/admin/user/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/admin/dashboard/route.js +8 -2
- package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/migrate-tags/route.js +1 -1
- package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/system-reset/route.js +2 -2
- package/.next/server/app/api/admin/system-reset/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/[id]/detail/route.js +9 -2
- package/.next/server/app/api/admin/users/[id]/detail/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/[id]/route.js +1 -1
- package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/route.js +1 -1
- package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/models/route.js +5 -5
- package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/test/route.js +6 -6
- package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
- package/.next/server/app/api/analytics/route.js +3 -3
- package/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/.next/server/app/api/analyze/route.js +7 -7
- package/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/[...nextauth]/route.js +1 -1
- package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/delete/route.js +2 -2
- package/.next/server/app/api/error-items/[id]/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/figure/route.js +6 -6
- package/.next/server/app/api/error-items/[id]/figure/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/fix-latex/route.js +7 -7
- package/.next/server/app/api/error-items/[id]/fix-latex/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/geogebra/route.js +7 -7
- package/.next/server/app/api/error-items/[id]/geogebra/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/image/route.js +2 -2
- package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/notes/route.js +2 -2
- package/.next/server/app/api/error-items/[id]/notes/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/practice-records/route.js +2 -2
- package/.next/server/app/api/error-items/[id]/practice-records/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/reanswer/route.js +8 -8
- package/.next/server/app/api/error-items/[id]/reanswer/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/retag/route.js +6 -6
- package/.next/server/app/api/error-items/[id]/retag/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/route.js +1 -1
- package/.next/server/app/api/error-items/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/svg-animation/route.js +8 -8
- package/.next/server/app/api/error-items/[id]/svg-animation/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/batch-delete/route.js +2 -2
- package/.next/server/app/api/error-items/batch-delete/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/clear/route.js +2 -2
- package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/list/route.js +4 -4
- package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/route.js +8 -8
- package/.next/server/app/api/error-items/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/short/[shortId]/route.js +1 -1
- package/.next/server/app/api/error-items/short/[shortId]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/similarity/route.js +2 -2
- package/.next/server/app/api/error-items/similarity/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js +7 -7
- package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/results/route.js +6 -6
- package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/retry/route.js +7 -7
- package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/route.js +7 -7
- package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/route.js +7 -7
- package/.next/server/app/api/exams/route.js.nft.json +1 -1
- package/.next/server/app/api/export/route.js +2 -2
- package/.next/server/app/api/export/route.js.nft.json +1 -1
- package/.next/server/app/api/geogebra-analyze/route.js +5 -5
- package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js.nft.json +1 -1
- package/.next/server/app/api/import/route.js +7 -7
- package/.next/server/app/api/import/route.js.nft.json +1 -1
- package/.next/server/app/api/logs/frontend/route.js +2 -2
- package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/retag/route.js +3 -3
- package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/route.js +2 -2
- package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/route.js +1 -1
- package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
- package/.next/server/app/api/openclaw/batch-upload/route.js +7 -7
- package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/generate/route.js +5 -5
- package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/record/[id]/route.js +5 -5
- package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/record/route.js +7 -7
- package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
- package/.next/server/app/api/reanswer/route.js +7 -7
- package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
- package/.next/server/app/api/register/route.js.nft.json +1 -1
- package/.next/server/app/api/register/status/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +3 -3
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/clear/route.js +2 -2
- package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/route.js +1 -1
- package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/route.js +2 -2
- package/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/stats/route.js +2 -2
- package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/suggestions/route.js +1 -1
- package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/route.js +2 -2
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/user/route.js +2 -2
- package/.next/server/app/api/user/route.js.nft.json +1 -1
- package/.next/server/app/api/version/route.js.nft.json +1 -1
- package/.next/server/app/error-items/[id]/page.js.nft.json +1 -1
- package/.next/server/app/error-items/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/exams/[id]/page.js.nft.json +1 -1
- package/.next/server/app/exams/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/exams/[id]/print/page.js.nft.json +1 -1
- package/.next/server/app/exams/[id]/print/page_client-reference-manifest.js +1 -1
- package/.next/server/app/exams/page.js.nft.json +1 -1
- package/.next/server/app/exams/page_client-reference-manifest.js +1 -1
- package/.next/server/app/latex-test/page.js.nft.json +1 -1
- package/.next/server/app/latex-test/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next/server/app/manifest.webmanifest.body +1 -1
- package/.next/server/app/notebooks/[id]/add/page.js.nft.json +1 -1
- package/.next/server/app/notebooks/[id]/add/page_client-reference-manifest.js +1 -1
- package/.next/server/app/notebooks/[id]/page.js.nft.json +1 -1
- package/.next/server/app/notebooks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/notebooks/page.js.nft.json +1 -1
- package/.next/server/app/notebooks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/practice/page.js.nft.json +1 -1
- package/.next/server/app/practice/page_client-reference-manifest.js +1 -1
- package/.next/server/app/print-preview/page.js.nft.json +1 -1
- package/.next/server/app/print-preview/page_client-reference-manifest.js +1 -1
- package/.next/server/app/register/page.js.nft.json +1 -1
- package/.next/server/app/register/page_client-reference-manifest.js +1 -1
- package/.next/server/app/stats/page.js.nft.json +1 -1
- package/.next/server/app/stats/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tags/page.js.nft.json +1 -1
- package/.next/server/app/tags/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +0 -1
- package/.next/server/chunks/{[externals]__1735khz._.js → [externals]__0jzwjtl._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0be5c5r._.js → [root-of-the-server]__0-2l_pu._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__02j1w81._.js → [root-of-the-server]__00moo9h._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__03nfvnm._.js → [root-of-the-server]__012xcq-._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0bqawi0._.js → [root-of-the-server]__02pqrw_._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0nqbham._.js → [root-of-the-server]__033ri9p._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__04pjde6._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1u-1vx4._.js → [root-of-the-server]__064krqp._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__07iraov._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__16begv4._.js → [root-of-the-server]__07q7nsp._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0jaawra._.js → [root-of-the-server]__0_unb90._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0gp88gz._.js → [root-of-the-server]__0a1zwxf._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0k-nf6a._.js → [root-of-the-server]__0aefi10._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0cfjgye._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1hpwwxw._.js → [root-of-the-server]__0d-37yj._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0d2kpnm._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0k-p1pj._.js → [root-of-the-server]__0dqgi36._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0mqorxb._.js → [root-of-the-server]__0dz5c04._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0vhjihq._.js → [root-of-the-server]__0e_u82_._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0obb4y-._.js → [root-of-the-server]__0f3jyg0._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1413v0e._.js → [root-of-the-server]__0gwwa9b._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0lrdm1u._.js → [root-of-the-server]__0hars8c._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1h09r50._.js → [root-of-the-server]__0iozebm._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0k-5uu2._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1csfdxc._.js → [root-of-the-server]__0k3mm05._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0l-xu_t._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0inxsnu._.js → [root-of-the-server]__0lggrcf._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0m0eall._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__06_nln5._.js → [root-of-the-server]__0m37xyb._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1m4-ab6._.js → [root-of-the-server]__0pa47kn._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0r42_o7._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rgjh3q._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0scij0p._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0sixhu9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0sj18kk._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0sp4_zo._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0t2o8v-._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__18zrkky._.js → [root-of-the-server]__0w58v6b._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0wp40ty._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0lro5a7._.js → [root-of-the-server]__0wsj4a_._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0u58zap._.js → [root-of-the-server]__0wvvsah._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1v6nwhq._.js → [root-of-the-server]__0xg5h56._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0zpazf3._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__06h5afw._.js → [root-of-the-server]__10hs-qn._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1j6mx-v._.js → [root-of-the-server]__119xork._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__11jhplo._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +5 -5
- package/.next/server/chunks/{[root-of-the-server]__0fnyu4s._.js → [root-of-the-server]__15y1l96._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1pplzr1._.js → [root-of-the-server]__16hnc6-._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__17i9sje._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1aaux7e._.js → [root-of-the-server]__19_wn9u._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1cn6rlb._.js → [root-of-the-server]__1_hp3ol._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__1_ogacf._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1nwf3ua._.js → [root-of-the-server]__1a4-26x._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1b6i9mu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1b_y2wk._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1lct0vi._.js → [root-of-the-server]__1bl7t8i._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1kqv61m._.js → [root-of-the-server]__1c0vatt._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__1c7a0rs._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1chx4lo._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1sdtn83._.js → [root-of-the-server]__1cngnud._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__19vj8qy._.js → [root-of-the-server]__1d82zkk._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__1ezju_2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1fc23i5._.js +122 -0
- package/.next/server/chunks/[root-of-the-server]__1flnfu4._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1gya7jq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1hng_h2._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1rsn804._.js → [root-of-the-server]__1i40psm._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1ijkds_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1j4v2e3._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1oup682._.js → [root-of-the-server]__1lbcdia._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1g1wi9i._.js → [root-of-the-server]__1m86czr._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__05s4wut._.js → [root-of-the-server]__1mnpqkx._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1cceu4b._.js → [root-of-the-server]__1n4b6nb._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0bsw5c9._.js → [root-of-the-server]__1nmrlew._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1o34kp3._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0c59gc3._.js → [root-of-the-server]__1q7yl7l._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1gmc_uw._.js → [root-of-the-server]__1qv60vg._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1mkpya8._.js → [root-of-the-server]__1ry8uat._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1ezwxao._.js → [root-of-the-server]__1s2rww3._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__1svvf40._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1tk0-4v._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1v-71me._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +5 -5
- package/.next/server/chunks/[root-of-the-server]__1x_ud_-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1yt_xxr._.js +3 -0
- package/.next/server/chunks/_008zx49._.js +1 -1
- package/.next/server/chunks/_011-ll5._.js +1 -1
- package/.next/server/chunks/_0gxi3zr._.js +1 -1
- package/.next/server/chunks/_0lz3t4l._.js +12 -12
- package/.next/server/chunks/{_1e1h1f1._.js → _0n36ev0._.js} +1 -1
- package/.next/server/chunks/_0oc8oe4._.js +3 -0
- package/.next/server/chunks/_0rjzgi0._.js +3 -0
- package/.next/server/chunks/_10y361h._.js +3 -0
- package/.next/server/chunks/_14tz_k9._.js +1 -1
- package/.next/server/chunks/{_0c5hvv3._.js → _15neond._.js} +3 -3
- package/.next/server/chunks/_16jdov0._.js +1 -1
- package/.next/server/chunks/_1_ns7o3._.js +1 -1
- package/.next/server/chunks/_1a1aqmi._.js +1 -1
- package/.next/server/chunks/_1b7qjlv._.js +1 -1
- package/.next/server/chunks/_1m-yyz-._.js +1 -1
- package/.next/server/chunks/_1n1xsqj._.js +3 -0
- package/.next/server/chunks/_1z_ujac._.js +1 -1
- package/.next/server/chunks/{_0frix22._.js → _2194yr7._.js} +3 -3
- package/.next/server/chunks/src_0tzpy5j._.js +1 -1
- package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +12 -11
- package/.next/server/chunks/ssr/[root-of-the-server]__00gewu3._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__03psbtz._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0hzktoi._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0skyo1a._.js +3 -0
- package/.next/server/chunks/ssr/_07ls0n_._.js +1 -1
- package/.next/server/chunks/ssr/_0sf1gd9._.js +1 -1
- package/.next/server/chunks/ssr/_11ut-6_._.js +3 -0
- package/.next/server/chunks/ssr/{_12c20v5._.js → _1aot_70._.js} +1 -1
- package/.next/server/chunks/ssr/src_1gayunq._.js +1 -1
- package/.next/server/chunks/ssr/src_1o363ao._.js +1 -1
- package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0._.js +1 -1
- package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +1 -1
- package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +1 -1
- package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +1 -1
- package/.next/server/edge/chunks/node_modules_0g4gi6f._.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware-manifest.json +7 -7
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/{w6W6dMBYlP4wbCdeRcVhA → Y0pwgmRdVAifh_zukihNt}/_clientMiddlewareManifest.js +2 -2
- package/.next/static/chunks/03gmdewlo3s6u.js +1 -0
- package/.next/static/chunks/06q8lm6y95ac4.css +1 -0
- package/.next/static/chunks/0ij2dqb0qj5ry.js +1 -0
- package/.next/static/chunks/{2rmhba08h4qqo.js → 0pwdmc9gw8ben.js} +1 -1
- package/.next/static/chunks/{35cov9g4cgt-v.js → 1c92up8k2x0z4.js} +1 -1
- package/.next/static/chunks/24dymggis4suf.css +3 -0
- package/.next/static/chunks/24jbwfpgmio7x.js +1 -0
- package/.next/static/chunks/27fr34_1v7xyh.js +1 -0
- package/.next/static/chunks/2eu_bls12m1wj.js +1 -0
- package/.next/static/chunks/{2yl8a-gxngbuq.js → 2x8e_fbze06sd.js} +1 -1
- package/.next/static/chunks/2z1_5umv36es6.js +191 -0
- package/.next/static/chunks/3m4c1r8_2ga_1.js +1 -0
- package/.next/static/chunks/{2s07soqug65hc.js → 3whzkc6d8oefw.js} +1 -1
- package/LICENSE +22 -0
- package/launcher.js +22 -6
- package/package.json +3 -2
- package/prisma/migrations/20261022000141_add_svg_animation_en/migration.sql +2 -0
- package/prisma/schema.prisma +2 -1
- package/prisma/seed.db +0 -0
- package/public/icons/apple-touch-icon.png +0 -0
- package/public/icons/icon-192.png +0 -0
- package/public/icons/icon-512.png +0 -0
- package/public/icons/icon-maskable-512.png +0 -0
- package/public/offline.html +61 -0
- package/public/sw.js +84 -0
- package/.next/server/app/api/error-items/[id]/mastery/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/error-items/[id]/mastery/route/build-manifest.json +0 -12
- package/.next/server/app/api/error-items/[id]/mastery/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/error-items/[id]/mastery/route.js +0 -8
- package/.next/server/app/api/error-items/[id]/mastery/route.js.map +0 -5
- package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +0 -1
- package/.next/server/app/api/error-items/[id]/mastery/route_client-reference-manifest.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__04tyyvs._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0d5dpu4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0d9ijed._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0e22a4y._.js +0 -122
- package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0yc8r2x._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11n87go._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__131taws._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__13ebiit._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__17duis5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__184u6de._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1loecue._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__20465pr._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__207mxv8._.js +0 -3
- package/.next/server/chunks/_0_o8yhv._.js +0 -3
- package/.next/server/chunks/_0rdo0a4._.js +0 -3
- package/.next/server/chunks/_167vv93._.js +0 -3
- package/.next/server/chunks/_1flar98._.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_mastery_route_actions_1l5uan6.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0b8kewv._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0icjezr._.js +0 -3
- package/.next/server/chunks/ssr/_1gu1rou._.js +0 -3
- package/.next/static/chunks/00pn0o7lymln6.js +0 -1
- package/.next/static/chunks/02521degnqmf0.js +0 -1
- package/.next/static/chunks/130ch9mnvb6mp.css +0 -3
- package/.next/static/chunks/17wdtw8hml2n6.js +0 -191
- package/.next/static/chunks/2a0kgntckcbvf.js +0 -1
- package/.next/static/chunks/2h-exsnhkfnb8.js +0 -1
- package/.next/static/chunks/2wnnnmbh85mq_.js +0 -1
- package/.next/static/chunks/3c4-ozf1dxam2.css +0 -1
- package/.next/static/chunks/3hz1l3qoxv84t.js +0 -1
- /package/.next/static/{w6W6dMBYlP4wbCdeRcVhA → Y0pwgmRdVAifh_zukihNt}/_buildManifest.js +0 -0
- /package/.next/static/{w6W6dMBYlP4wbCdeRcVhA → Y0pwgmRdVAifh_zukihNt}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[51615,(e,r,o)=>{r.exports=e.x("node:buffer",()=>require("node:buffer"))},2157,(e,r,o)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},47299,(e,r,o)=>{r.exports=e.x("node:http",()=>require("node:http"))},61095,(e,r,o)=>{r.exports=e.x("node:net",()=>require("node:net"))},50227,(e,r,o)=>{r.exports=e.x("node:path",()=>require("node:path"))},59639,(e,r,o)=>{r.exports=e.x("node:process",()=>require("node:process"))},57764,(e,r,o)=>{r.exports=e.x("node:url",()=>require("node:url"))},12057,(e,r,o)=>{r.exports=e.x("node:util",()=>require("node:util"))},27028,(e,r,o)=>{r.exports=e.x("node:zlib",()=>require("node:zlib"))},25897,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__0akadps._.js","server/chunks/[root-of-the-server]__15tkoe6._.js"].map(r=>e.l(r))).then(()=>r(55057)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__1x_ud_-._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[51615,(e,r,o)=>{r.exports=e.x("node:buffer",()=>require("node:buffer"))},2157,(e,r,o)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},47299,(e,r,o)=>{r.exports=e.x("node:http",()=>require("node:http"))},61095,(e,r,o)=>{r.exports=e.x("node:net",()=>require("node:net"))},50227,(e,r,o)=>{r.exports=e.x("node:path",()=>require("node:path"))},59639,(e,r,o)=>{r.exports=e.x("node:process",()=>require("node:process"))},57764,(e,r,o)=>{r.exports=e.x("node:url",()=>require("node:url"))},12057,(e,r,o)=>{r.exports=e.x("node:util",()=>require("node:util"))},27028,(e,r,o)=>{r.exports=e.x("node:zlib",()=>require("node:zlib"))},25897,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__0akadps._.js","server/chunks/[root-of-the-server]__15tkoe6._.js"].map(r=>e.l(r))).then(()=>r(55057)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__1yt_xxr._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[10419,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(13618),n=e.i(69719),s=e.i(98043),o=e.i(79832),l=e.i(39811),u=e.i(76759),d=e.i(50377),c=e.i(4083),g=e.i(83508),p=e.i(30166),m=e.i(92366),h=e.i(82134),f=e.i(4752),w=e.i(60979),v=e.i(19428),R=e.i(55920),S=e.i(98003),b=t([o]);[o]=b.then?(await b)():b;let x=(0,d.createLogger)("api:error-items"),E=n.z.object({questionText:n.z.string().max(2e4).nullish(),answerText:n.z.string().max(2e4).nullish(),analysis:n.z.string().max(5e4).nullish(),wrongAnswerText:n.z.string().max(2e4).nullish(),mistakeAnalysis:n.z.string().max(5e4).nullish(),mistakeStatus:n.z.string().max(30).nullish(),knowledgePoints:n.z.preprocess(e=>"string"==typeof e?e.split(/[,,]/).map(e=>e.trim()).filter(Boolean):e,n.z.array(n.z.string().trim().min(1).max(200)).max(100).optional()),originalImageUrl:n.z.string().max(0x1400000).default(""),subjectId:n.z.string().nullish(),subjectName:n.z.string().max(100).nullish(),gradeSemester:n.z.string().max(100).nullish(),paperLevel:n.z.string().max(30).nullish(),difficultyStars:n.z.number().int().min(1).max(5).nullish(),hasFigure:n.z.boolean().optional(),figureSvg:n.z.string().max(v.MAX_FIGURE_SVG_LENGTH).nullish(),geogebraCommands:n.z.string().nullish()});async function y(e){x.info("POST /api/error-items called");let t=await (0,i.getServerSession)(o.authOptions);try{let r,i=E.safeParse(await e.json());if(!i.success)return(0,u.validationError)("Invalid question import",i.error.issues);let n=i.data,{questionText:o,answerText:d,analysis:b,wrongAnswerText:y,mistakeAnalysis:C,mistakeStatus:A,knowledgePoints:T,originalImageUrl:I,subjectId:N,subjectName:P,gradeSemester:k,paperLevel:j,difficultyStars:O,geogebraCommands:q}=n,_=(0,v.sanitizeFigureSvg)(n.figureSvg),z=!!n.hasFigure||null!==_;if(x.debug({hasQuestionText:!!o,questionTextLength:o?.length||0,hasAnswerText:!!d,hasAnalysis:!!b,hasWrongAnswerText:!!y,hasMistakeAnalysis:!!C,mistakeStatus:A,knowledgePointsCount:Array.isArray(T)?T.length:0,hasImage:!!I,imageSize:I?.length||0,subjectId:N,subjectName:P,gradeSemester:k,paperLevel:j,hasGeogebraCommands:!!q},"Request parameters received"),t?.user?.email?(r=await s.prisma.user.findUnique({where:{email:t.user.email}}),x.debug({userId:r?.id,email:t.user.email},"User lookup result")):x.warn("No session email found"),!r)return x.warn({sessionEmail:t?.user?.email},"User not found in DB"),(0,u.unauthorized)("No user found in DB");let U=await (0,w.runQuestionImportTransaction)(async e=>{let t=await (0,w.findDuplicateQuestion)(e,r.id,n);if(t)return(0,w.recordDuplicateQuestion)(e,r.id,t,n);let a=N||void 0;!a&&"string"==typeof P&&P.trim()&&(a=(await (0,h.resolveNotebookForSubject)(r.id,P,e)).id);let i=k;!i&&r.educationStage&&r.enrollmentYear&&(i=(0,l.calculateGrade)(r.educationStage,r.enrollmentYear,new Date,"en",(0,S.getAppTimeZone)()),x.debug({finalGradeSemester:i,educationStage:r.educationStage,enrollmentYear:r.enrollmentYear},"Grade calculated"));let s=Array.isArray(T)?T:[],u=[],f=await e.subject.findUnique({where:{id:a||""}}),v=(0,g.inferSubjectFromName)(f?.name??null)||"other";for(let t of(x.debug({subjectId:a,subjectName:f?.name,subjectKey:v},"Subject inferred"),s))try{let a=await e.knowledgeTag.findFirst({where:{name:t,OR:[{isSystem:!0},{userId:r.id}]}});if(a)x.debug({tagId:a.id,tagName:t,isSystem:a.isSystem},"Existing tag found");else{let n=await (0,c.findParentTagIdForGrade)(i,v,e);x.debug({tagName:t,parentId:n,subjectKey:v},"Creating new custom tag"),a=await e.knowledgeTag.create({data:{name:t,subject:v,isSystem:!1,userId:r.id,parentId:n}}),x.debug({tagId:a.id,tagName:t},"Custom tag created")}u.push({id:a.id})}catch(e){throw x.error({tagName:t,error:e},"Error processing tag"),e}x.info({tagNames:s,tagConnectionsCount:u.length},"Creating ErrorItem with tags");try{let t=await e.errorItem.create({data:{shortId:await (0,m.generateUniqueShortId)(e),userId:r.id,subjectId:a||void 0,originalImageUrl:I,questionText:o,answerText:d,analysis:b,wrongAnswerText:y||null,mistakeAnalysis:C||null,mistakeStatus:(0,p.normalizeMistakeStatusForSave)(A,y),knowledgePoints:JSON.stringify(s),gradeSemester:i,paperLevel:j??(0,R.getDefaultPaperLevel)(O),difficultyStars:O??null,hasFigure:z,figureSvg:_,geogebraCommands:q||null,masteryLevel:0,tags:{connect:u}},include:{tags:!0,subject:{select:{id:!0,name:!0}}}});return x.info({errorItemId:t.id,tagsCount:t.tags?.length||0},"ErrorItem created successfully"),t}catch(e){throw x.error({error:e,userId:r.id,subjectId:a,tagConnectionsCount:u.length},"Database error creating ErrorItem"),e}}),M="duplicate"in U&&U.duplicate;return M&&(0,f.scheduleMasteryEvaluation)([U.id]),a.NextResponse.json(U,{status:M?200:201})}catch(e){return x.error({error:e,errorMessage:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0},"Error saving item"),(0,u.internalError)("Failed to save error item")}}e.s(["POST",0,y]),r()}catch(e){r(e)}},!1),80469,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),g=e.i(66012),p=e.i(70101),m=e.i(74838),h=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var v=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/route",pathname:"/api/error-items",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(10419),...{}}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:y}=R;async function x(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),R.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let S="/api/error-items/route";S=S.replace(/\/index$/,"")||"/";let b=await R.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:x,params:E,nextConfig:C,parsedUrl:A,isDraftMode:T,prerenderManifest:I,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:k,resolvedPathname:j,clientReferenceManifest:O,serverActionsManifest:q}=b,_=(0,o.normalizeAppPath)(S),z=!!I.routes[j]&&(R.isDev||(0,w.isRouteCacheOwner)(j,R.cacheOwner,I.routes[j])),U=!!(I.dynamicRoutes[_]||z),M=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,A,!1):t.end("This page could not be found"),null);if(U&&!T){let e=I.dynamicRoutes[_];if(e&&!1===e.fallback&&!z){if(C.adapterPath)return await M();throw new f.NoFallbackError}}let D=null;!U||R.isDev||T||(D="/index"===(D=j)?"/":D);let F=!0===R.isDev||!U,H=U&&!F;q&&O&&(0,s.setManifestsSingleton)({page:S,clientReferenceManifest:O,serverActionsManifest:q});let L=e.method||"GET",G=(0,n.getTracer)(),B=G.getActiveScopeSpan(),K=!!(null==N?void 0:N.isWrappedByNextServer),$=!!(0,i.getRequestMeta)(e,"minimalMode"),Q=(0,i.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,C,I,$);null==Q||Q.resetRequestCache(),globalThis.__incrementalCache=Q;let V={params:E,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:F,incrementalCache:Q,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>R.onRequestError(e,t,a,i,N)},sharedContext:{buildId:y,deploymentId:x}},X=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!$&&P&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await R.handle(W,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let n=V.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=V.renderOpts.collectedTags;if(!U)return await (0,g.sendResponse)(X,Y,i,n),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[h.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?C.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:v.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 R.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,N),t}},J=async(i,s)=>{try{var o,l;let i=await R.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:k,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:$});if(!U)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",P?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,p.fromNodeOutgoingHttpHeaders)(i.value.headers);$&&U||n.delete(h.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,g.sendResponse)(X,Y,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,N),U)throw t;await (0,g.sendResponse)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return 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")||_,o=`${L} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(K&&B)await J(B,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${S}`,kind:n.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})},"routeModule",0,R,"serverHooks",0,y,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,b])},82134,e=>{"use strict";var t=e.i(98043),r=e.i(83508),a=e.i(68426);async function i(e,n,s=t.prisma){let o=n.trim(),l=await s.subject.findMany({where:{userId:e},select:{id:!0,name:!0},orderBy:{createdAt:"asc"}}),u=l.find(e=>e.name===o)||l.find(e=>e.name.includes(o)||o.includes(e.name));if(u)return u;let d=await s.user.findUnique({where:{id:e},select:{educationStage:!0}}),c=(0,r.inferSubjectFromName)(o);try{return await s.subject.upsert({where:{name_userId:{name:o,userId:e}},update:{},create:{name:o,userId:e,stage:(0,a.stageFromEducationStage)(d?.educationStage),subjectKey:(0,a.isNotebookSubject)(c)?c:null},select:{id:!0,name:!0}})}catch(t){if(t?.code==="P2002")return s.subject.findUniqueOrThrow({where:{name_userId:{name:o,userId:e}},select:{id:!0,name:!0}});throw t}}e.s(["resolveNotebookForSubject",0,i])}];
|
|
1
|
+
module.exports=[10419,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(13618),n=e.i(69719),s=e.i(98043),o=e.i(79832),l=e.i(39811),u=e.i(76759),d=e.i(50377),c=e.i(4083),g=e.i(83508),p=e.i(30166),m=e.i(92366),h=e.i(82134),f=e.i(95886),w=e.i(60979),v=e.i(19428),R=e.i(55920),S=e.i(98003),b=t([o]);[o]=b.then?(await b)():b;let x=(0,d.createLogger)("api:error-items"),E=n.z.object({questionText:n.z.string().max(2e4).nullish(),answerText:n.z.string().max(2e4).nullish(),analysis:n.z.string().max(5e4).nullish(),wrongAnswerText:n.z.string().max(2e4).nullish(),mistakeAnalysis:n.z.string().max(5e4).nullish(),mistakeStatus:n.z.string().max(30).nullish(),knowledgePoints:n.z.preprocess(e=>"string"==typeof e?e.split(/[,,]/).map(e=>e.trim()).filter(Boolean):e,n.z.array(n.z.string().trim().min(1).max(200)).max(100).optional()),originalImageUrl:n.z.string().max(0x1400000).default(""),subjectId:n.z.string().nullish(),subjectName:n.z.string().max(100).nullish(),gradeSemester:n.z.string().max(100).nullish(),paperLevel:n.z.string().max(30).nullish(),difficultyStars:n.z.number().int().min(1).max(5).nullish(),hasFigure:n.z.boolean().optional(),figureSvg:n.z.string().max(v.MAX_FIGURE_SVG_LENGTH).nullish(),geogebraCommands:n.z.string().nullish()});async function y(e){x.info("POST /api/error-items called");let t=await (0,i.getServerSession)(o.authOptions);try{let r,i=E.safeParse(await e.json());if(!i.success)return(0,u.validationError)("Invalid question import",i.error.issues);let n=i.data,{questionText:o,answerText:d,analysis:b,wrongAnswerText:y,mistakeAnalysis:C,mistakeStatus:A,knowledgePoints:T,originalImageUrl:I,subjectId:N,subjectName:P,gradeSemester:k,paperLevel:j,difficultyStars:O,geogebraCommands:q}=n,_=(0,v.sanitizeFigureSvg)(n.figureSvg),z=!!n.hasFigure||null!==_;if(x.debug({hasQuestionText:!!o,questionTextLength:o?.length||0,hasAnswerText:!!d,hasAnalysis:!!b,hasWrongAnswerText:!!y,hasMistakeAnalysis:!!C,mistakeStatus:A,knowledgePointsCount:Array.isArray(T)?T.length:0,hasImage:!!I,imageSize:I?.length||0,subjectId:N,subjectName:P,gradeSemester:k,paperLevel:j,hasGeogebraCommands:!!q},"Request parameters received"),t?.user?.email?(r=await s.prisma.user.findUnique({where:{email:t.user.email}}),x.debug({userId:r?.id,email:t.user.email},"User lookup result")):x.warn("No session email found"),!r)return x.warn({sessionEmail:t?.user?.email},"User not found in DB"),(0,u.unauthorized)("No user found in DB");let U=await (0,w.runQuestionImportTransaction)(async e=>{let t=await (0,w.findDuplicateQuestion)(e,r.id,n);if(t)return(0,w.recordDuplicateQuestion)(e,r.id,t,n);let a=N||void 0;!a&&"string"==typeof P&&P.trim()&&(a=(await (0,h.resolveNotebookForSubject)(r.id,P,e)).id);let i=k;!i&&r.educationStage&&r.enrollmentYear&&(i=(0,l.calculateGrade)(r.educationStage,r.enrollmentYear,new Date,"en",(0,S.getAppTimeZone)()),x.debug({finalGradeSemester:i,educationStage:r.educationStage,enrollmentYear:r.enrollmentYear},"Grade calculated"));let s=Array.isArray(T)?T:[],u=[],f=await e.subject.findUnique({where:{id:a||""}}),v=(0,g.inferSubjectFromName)(f?.name??null)||"other";for(let t of(x.debug({subjectId:a,subjectName:f?.name,subjectKey:v},"Subject inferred"),s))try{let a=await e.knowledgeTag.findFirst({where:{name:t,OR:[{isSystem:!0},{userId:r.id}]}});if(a)x.debug({tagId:a.id,tagName:t,isSystem:a.isSystem},"Existing tag found");else{let n=await (0,c.findParentTagIdForGrade)(i,v,e);x.debug({tagName:t,parentId:n,subjectKey:v},"Creating new custom tag"),a=await e.knowledgeTag.create({data:{name:t,subject:v,isSystem:!1,userId:r.id,parentId:n}}),x.debug({tagId:a.id,tagName:t},"Custom tag created")}u.push({id:a.id})}catch(e){throw x.error({tagName:t,error:e},"Error processing tag"),e}x.info({tagNames:s,tagConnectionsCount:u.length},"Creating ErrorItem with tags");try{let t=await e.errorItem.create({data:{shortId:await (0,m.generateUniqueShortId)(e),userId:r.id,subjectId:a||void 0,originalImageUrl:I,questionText:o,answerText:d,analysis:b,wrongAnswerText:y||null,mistakeAnalysis:C||null,mistakeStatus:(0,p.normalizeMistakeStatusForSave)(A,y),knowledgePoints:JSON.stringify(s),gradeSemester:i,paperLevel:j??(0,R.getDefaultPaperLevel)(O),difficultyStars:O??null,hasFigure:z,figureSvg:_,geogebraCommands:q||null,masteryLevel:0,tags:{connect:u}},include:{tags:!0,subject:{select:{id:!0,name:!0}}}});return x.info({errorItemId:t.id,tagsCount:t.tags?.length||0},"ErrorItem created successfully"),t}catch(e){throw x.error({error:e,userId:r.id,subjectId:a,tagConnectionsCount:u.length},"Database error creating ErrorItem"),e}}),M="duplicate"in U&&U.duplicate;return M&&(0,f.scheduleMasteryEvaluation)([U.id]),a.NextResponse.json(U,{status:M?200:201})}catch(e){return x.error({error:e,errorMessage:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0},"Error saving item"),(0,u.internalError)("Failed to save error item")}}e.s(["POST",0,y]),r()}catch(e){r(e)}},!1),80469,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),g=e.i(66012),p=e.i(70101),m=e.i(74838),h=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var v=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/route",pathname:"/api/error-items",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(10419),...{}}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:y}=R;async function x(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),R.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let S="/api/error-items/route";S=S.replace(/\/index$/,"")||"/";let b=await R.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:x,params:E,nextConfig:C,parsedUrl:A,isDraftMode:T,prerenderManifest:I,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:k,resolvedPathname:j,clientReferenceManifest:O,serverActionsManifest:q}=b,_=(0,o.normalizeAppPath)(S),z=!!I.routes[j]&&(R.isDev||(0,w.isRouteCacheOwner)(j,R.cacheOwner,I.routes[j])),U=!!(I.dynamicRoutes[_]||z),M=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,A,!1):t.end("This page could not be found"),null);if(U&&!T){let e=I.dynamicRoutes[_];if(e&&!1===e.fallback&&!z){if(C.adapterPath)return await M();throw new f.NoFallbackError}}let D=null;!U||R.isDev||T||(D="/index"===(D=j)?"/":D);let F=!0===R.isDev||!U,H=U&&!F;q&&O&&(0,s.setManifestsSingleton)({page:S,clientReferenceManifest:O,serverActionsManifest:q});let L=e.method||"GET",G=(0,n.getTracer)(),B=G.getActiveScopeSpan(),K=!!(null==N?void 0:N.isWrappedByNextServer),$=!!(0,i.getRequestMeta)(e,"minimalMode"),Q=(0,i.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,C,I,$);null==Q||Q.resetRequestCache(),globalThis.__incrementalCache=Q;let V={params:E,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:F,incrementalCache:Q,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>R.onRequestError(e,t,a,i,N)},sharedContext:{buildId:y,deploymentId:x}},X=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!$&&P&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await R.handle(W,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let n=V.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=V.renderOpts.collectedTags;if(!U)return await (0,g.sendResponse)(X,Y,i,n),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[h.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?C.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:v.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 R.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,N),t}},J=async(i,s)=>{try{var o,l;let i=await R.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:k,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:$});if(!U)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",P?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,p.fromNodeOutgoingHttpHeaders)(i.value.headers);$&&U||n.delete(h.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,g.sendResponse)(X,Y,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,N),U)throw t;await (0,g.sendResponse)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return 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")||_,o=`${L} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(K&&B)await J(B,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${S}`,kind:n.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})},"routeModule",0,R,"serverHooks",0,y,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,b])},82134,e=>{"use strict";var t=e.i(98043),r=e.i(83508),a=e.i(68426);async function i(e,n,s=t.prisma){let o=n.trim(),l=await s.subject.findMany({where:{userId:e},select:{id:!0,name:!0},orderBy:{createdAt:"asc"}}),u=l.find(e=>e.name===o)||l.find(e=>e.name.includes(o)||o.includes(e.name));if(u)return u;let d=await s.user.findUnique({where:{id:e},select:{educationStage:!0}}),c=(0,r.inferSubjectFromName)(o);try{return await s.subject.upsert({where:{name_userId:{name:o,userId:e}},update:{},create:{name:o,userId:e,stage:(0,a.stageFromEducationStage)(d?.educationStage),subjectKey:(0,a.isNotebookSubject)(c)?c:null},select:{id:!0,name:!0}})}catch(t){if(t?.code==="P2002")return s.subject.findUniqueOrThrow({where:{name_userId:{name:o,userId:e}},select:{id:!0,name:!0}});throw t}}e.s(["resolveNotebookForSubject",0,i])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_008zx49._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[11114,e=>e.a(async(t,r)=>{try{var a=e.i(58821),n=e.i(98043),i=e.i(43911),o=e.i(63856),s=e.i(76759),u=e.i(50377),l=e.i(26828),d=t([o]);[o]=d.then?(await d)():d;let
|
|
1
|
+
module.exports=[11114,e=>e.a(async(t,r)=>{try{var a=e.i(58821),n=e.i(98043),i=e.i(43911),o=e.i(63856),s=e.i(76759),u=e.i(50377),l=e.i(26828),d=t([o]);[o]=d.then?(await d)():d;let R=(0,u.createLogger)("api:error-items:svg-animation");function c(e){return"en"===e?"en":"zh"}function p(e){return"en"===e?"svgAnimationEn":"svgAnimation"}async function h(e,t){let r=await n.prisma.errorItem.findUnique({where:{id:e},select:{userId:!0,shortId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0}});return r&&r.userId===t?r:null}async function g(e,{params:t}){let{id:r}=await t,u=await e.json().catch(()=>({})),d=c(u.language);try{let e=await (0,o.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");let t=await h(r,e.id);if(!t)return(0,s.notFound)("Item not found");if(!t.questionText?.trim())return(0,s.badRequest)("NO_QUESTION_TEXT");let u=t.questionText,c=await (0,l.trackBackgroundTask)({userId:e.id,kind:"svg_animation",subject:(0,l.describeQuestion)(t),link:`/error-items/${r}`},async()=>{let e=await (0,i.getAIService)().generateSvgAnimation(u,t.answerText||"",t.analysis||"",t.figureSvg,d);if(!e)throw Error("NO_VALID_ANIMATION");return await n.prisma.errorItem.update({where:{id:r},data:{[p(d)]:e}}),e}).catch(e=>{if(e instanceof Error&&"NO_VALID_ANIMATION"===e.message)return null;throw e});if(!c)return(0,s.badRequest)("NO_VALID_ANIMATION");return R.info({errorItemId:r,language:d,svgLength:c.length},"SVG animation generated"),a.NextResponse.json({svgAnimation:c,language:d})}catch(t){let e=t instanceof Error?t.message:String(t);return R.error({error:e},"Error generating SVG animation"),(0,s.internalError)(e.startsWith("AI_")?e.split(":")[0]:"Failed to generate SVG animation")}}async function m(e,{params:t}){let{id:r}=await t,i=c(new URL(e.url).searchParams.get("language"));try{let e=await (0,o.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");if(!await h(r,e.id))return(0,s.notFound)("Item not found");return await n.prisma.errorItem.update({where:{id:r},data:{[p(i)]:null}}),R.info({errorItemId:r,language:i},"SVG animation deleted"),a.NextResponse.json({success:!0})}catch(e){return R.error({error:e},"Error deleting SVG animation"),(0,s.internalError)("Failed to delete SVG animation")}}e.s(["DELETE",0,m,"POST",0,g]),r()}catch(e){r(e)}},!1),94316,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),m=e.i(10372),R=e.i(93695),v=e.i(9580);e.i(52474);var f=e.i(220);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/svg-animation/route",pathname:"/api/error-items/[id]/svg-animation",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/svg-animation/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(11114),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:A,serverHooks:T}=w;async function C(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/error-items/[id]/svg-animation/route";E=E.replace(/\/index$/,"")||"/";let A=await w.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!A)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:C,params:I,nextConfig:x,parsedUrl:S,isDraftMode:y,prerenderManifest:N,routerServerContext:O,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:U}=A,H=(0,s.normalizeAppPath)(E),M=!!N.routes[P]&&(w.isDev||(0,v.isRouteCacheOwner)(P,w.cacheOwner,N.routes[P])),k=!!(N.dynamicRoutes[H]||M),D=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,S,!1):t.end("This page could not be found"),null);if(k&&!y){let e=N.dynamicRoutes[H];if(e&&!1===e.fallback&&!M){if(x.adapterPath)return await D();throw new R.NoFallbackError}}let L=null;!k||w.isDev||y||(L="/index"===(L=P)?"/":L);let F=!0===w.isDev||!k,V=k&&!F;U&&q&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:q,serverActionsManifest:U});let j=e.method||"GET",G=(0,i.getTracer)(),K=G.getActiveScopeSpan(),$=!!(null==O?void 0:O.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,x,N,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let X={params:I,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,isDraftMode:y,supportsDynamicResponse:F,incrementalCache:z,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>w.onRequestError(e,t,a,n,O)},sharedContext:{buildId:T,deploymentId:C}},W=new u.NodeNextRequest(e),Q=new u.NodeNextResponse(t),Z=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!B&&_&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await w.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let i=X.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let o=X.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(W,Q,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);o&&(t[m.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?x.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:f.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 w.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:V,isOnDemandRevalidate:_})},!1,O),t}},Y=async(n,o)=>{try{var s,u;let n=await w.handleResponse({req:e,nextConfig:x,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:B});if(!k)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(u=n.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",_?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),y&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&k||i.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,g.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(W,Q,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:V,isOnDemandRevalidate:_})},!1,O),k)throw t;await (0,p.sendResponse)(W,Q,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return 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")||H,s=`${j} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),o&&o!==n&&(o.setAttribute("http.route",a),o.updateName(s))})()}};if($&&K)await Y(K,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},e=>Y(e,t)),void 0,!$)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:A})},"routeModule",0,w,"serverHooks",0,T,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,A])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_011-ll5._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[27254,e=>e.a(async(t,r)=>{try{var a=e.i(58821),
|
|
1
|
+
module.exports=[27254,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(13618),n=e.i(79832),s=e.i(98043),o=e.i(58078),d=e.i(76759),u=e.i(95886),l=e.i(95408),c=e.i(50377),p=t([n]);[n]=p.then?(await p)():p;let m=(0,c.createLogger)("api:admin:users:id:detail");async function h(e,{params:t}){let{id:r}=await t,c=await (0,i.getServerSession)(n.authOptions);if(!(0,o.requireAdmin)(c))return(0,d.forbidden)("Admin access required");try{let e=await s.prisma.user.findUnique({where:{id:r},select:{id:!0,name:!0,email:!0,role:!0,isActive:!0,createdAt:!0,educationStage:!0,enrollmentYear:!0}});if(!e)return(0,d.notFound)("User not found");let t=await s.prisma.subject.findMany({where:{userId:r},select:{id:!0,name:!0,_count:{select:{errorItems:!0}}},orderBy:{createdAt:"asc"}}),i=await s.prisma.errorItem.count({where:{userId:r}}),n=await s.prisma.practiceRecord.count({where:{userId:r}}),o=t.length,c=new Date(Date.now()-6048e5),p=await s.prisma.errorItem.count({where:{userId:r,createdAt:{gte:c}}}),h=await (0,u.countByMasteryStatus)({userId:r}),m=await s.prisma.errorItem.groupBy({by:["subjectId"],where:{userId:r},_count:{id:!0}}),R=m.map(e=>e.subjectId).filter(Boolean),w=await s.prisma.subject.findMany({where:{id:{in:R}},select:{id:!0,name:!0}}),v=new Map(w.map(e=>[e.id,e.name])),f=m.filter(e=>e.subjectId).map(e=>({name:v.get(e.subjectId)||"未知",count:e._count.id})),g=await s.prisma.errorItem.findMany({where:{userId:r},select:{id:!0,questionText:!0,ocrText:!0,masteryProbability:!0,createdAt:!0,_count:l.PRACTICE_RECORD_COUNT,subject:{select:{name:!0}}},orderBy:{createdAt:"desc"},take:20});return a.NextResponse.json({user:e,notebooks:t.map(e=>({id:e.id,name:e.name,errorCount:e._count.errorItems})),errorCount:i,practiceCount:n,notebookCount:o,recent7DaysCount:p,masteryDistribution:h,subjectDistribution:f,recentErrorItems:g.map(e=>({id:e.id,questionText:e.questionText,ocrText:e.ocrText,masteryStatus:(0,l.masteryStatusOf)(e._count.practiceRecords,e.masteryProbability),createdAt:e.createdAt,subject:e.subject}))})}catch(e){return m.error({error:e,userId:r},"Error fetching user detail"),(0,d.internalError)("Failed to fetch user detail")}}e.s(["GET",0,h]),r()}catch(e){r(e)}},!1),19497,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),d=e.i(16795),u=e.i(87718),l=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(74838),R=e.i(10372),w=e.i(93695),v=e.i(9580);e.i(52474);var f=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/admin/users/[id]/detail/route",pathname:"/api/admin/users/[id]/detail",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/admin/users/[id]/detail/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(27254),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:y,serverHooks:C}=g;async function A(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/admin/users/[id]/detail/route";E=E.replace(/\/index$/,"")||"/";let y=await g.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:A,params:x,nextConfig:b,parsedUrl:T,isDraftMode:I,prerenderManifest:S,routerServerContext:_,isOnDemandRevalidate:P,revalidateOnlyGenerated:O,resolvedPathname:N,clientReferenceManifest:q,serverActionsManifest:M}=y,H=(0,o.normalizeAppPath)(E),U=!!S.routes[N]&&(g.isDev||(0,v.isRouteCacheOwner)(N,g.cacheOwner,S.routes[N])),j=!!(S.dynamicRoutes[H]||U),D=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,T,!1):t.end("This page could not be found"),null);if(j&&!I){let e=S.dynamicRoutes[H];if(e&&!1===e.fallback&&!U){if(b.adapterPath)return await D();throw new w.NoFallbackError}}let k=null;!j||g.isDev||I||(k="/index"===(k=N)?"/":k);let B=!0===g.isDev||!j,F=j&&!B;M&&q&&(0,s.setManifestsSingleton)({page:E,clientReferenceManifest:q,serverActionsManifest:M});let K=e.method||"GET",L=(0,n.getTracer)(),$=L.getActiveScopeSpan(),G=!!(null==_?void 0:_.isWrappedByNextServer),V=!!(0,i.getRequestMeta)(e,"minimalMode"),X=(0,i.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,b,S,V);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let W={params:x,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts,useCacheTimeout:b.experimental.useCacheTimeout},cacheComponents:!!b.cacheComponents,validationLevel:b.experimental.instantInsights.validationLevel,isDraftMode:I,supportsDynamicResponse:B,incrementalCache:X,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:b.cacheLife,staticPageGenerationTimeout:b.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>g.onRequestError(e,t,a,i,_)},sharedContext:{buildId:C,deploymentId:A}},z=new d.NodeNextRequest(e),Y=new d.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!V&&P&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await g.handle(Z,W);e.fetchMetrics=W.renderOpts.fetchMetrics;let n=W.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=W.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(z,Y,i,n),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[R.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==r&&r>0?b.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:f.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 g.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:P})},!1,_),t}},Q=async(i,s)=>{try{var o,d;let i=await g.handleResponse({req:e,nextConfig:b,cacheKey:k,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:O,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:V});if(!j)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(d=i.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",P?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(i.value.headers);V&&j||n.delete(R.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(z,Y,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof w.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:P})},!1,_),j)throw t;await (0,p.sendResponse)(z,Y,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==l.BaseServerSpan.handleRequest)return 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")||H,o=`${K} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(G&&$)await Q($,void 0);else{let t=L.getActiveScopeSpan();await L.withPropagatedContext(e.headers,()=>L.trace(l.BaseServerSpan.handleRequest,{spanName:`${K} ${E}`,kind:n.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Q(e,t)),void 0,!G)}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:y})},"routeModule",0,g,"serverHooks",0,C,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,y])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0gxi3zr._.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
module.exports=[70943,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={getOrigin:function(){return
|
|
2
|
-
`;if(r.allow)for(let e of(0,
|
|
3
|
-
`;if(r.disallow)for(let e of(0,
|
|
1
|
+
module.exports=[70943,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={getOrigin:function(){return s},resolveArray:function(){return o},resolveAsArrayOrUndefined:function(){return a}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});function o(e){return Array.isArray(e)?e:[e]}function a(e){if(null!=e)return o(e)}function s(e){let t;if("string"==typeof e)try{t=(e=new URL(e)).origin}catch{}return t}},73853,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={resolveManifest:function(){return l},resolveRobots:function(){return a},resolveRouteData:function(){return u},resolveSitemap:function(){return s}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let o=e.r(70943);function a(e){let t="";for(let r of Array.isArray(e.rules)?e.rules:[e.rules]){for(let e of(0,o.resolveArray)(r.userAgent||["*"]))t+=`User-Agent: ${e}
|
|
2
|
+
`;if(r.allow)for(let e of(0,o.resolveArray)(r.allow))t+=`Allow: ${e}
|
|
3
|
+
`;if(r.disallow)for(let e of(0,o.resolveArray)(r.disallow))t+=`Disallow: ${e}
|
|
4
4
|
`;if(r.crawlDelay&&(t+=`Crawl-delay: ${r.crawlDelay}
|
|
5
5
|
`),r.other)for(let e of Object.keys(r.other)){let i=r.other[e];if(null!=i)for(let r of Array.isArray(i)?i:[i])t+=`${e}: ${r}
|
|
6
6
|
`}t+="\n"}return e.host&&(t+=`Host: ${e.host}
|
|
7
|
-
`),e.sitemap&&(0,
|
|
8
|
-
`}),t}function
|
|
9
|
-
`;let e=null==(
|
|
10
|
-
`;if(null==(a=
|
|
7
|
+
`),e.sitemap&&(0,o.resolveArray)(e.sitemap).forEach(e=>{t+=`Sitemap: ${e}
|
|
8
|
+
`}),t}function s(e){let t=e.some(e=>Object.keys(e.alternates??{}).length>0),r=e.some(e=>{var t;return!!(null==(t=e.images)?void 0:t.length)}),i=e.some(e=>{var t;return!!(null==(t=e.videos)?void 0:t.length)}),n="";for(let l of(n+='<?xml version="1.0" encoding="UTF-8"?>\n',n+='<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"',r&&(n+=' xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"'),i&&(n+=' xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"'),t?n+=' xmlns:xhtml="http://www.w3.org/1999/xhtml">\n':n+=">\n",e)){var o,a,s;n+="<url>\n",n+=`<loc>${l.url}</loc>
|
|
9
|
+
`;let e=null==(o=l.alternates)?void 0:o.languages;if(e&&Object.keys(e).length)for(let t in e)n+=`<xhtml:link rel="alternate" hreflang="${t}" href="${e[t]}" />
|
|
10
|
+
`;if(null==(a=l.images)?void 0:a.length)for(let e of l.images)n+=`<image:image>
|
|
11
11
|
<image:loc>${e}</image:loc>
|
|
12
12
|
</image:image>
|
|
13
|
-
`;if(null==(l
|
|
14
|
-
`].filter(Boolean).join("\n");if(
|
|
15
|
-
`}
|
|
16
|
-
`),"number"==typeof
|
|
17
|
-
`),
|
|
13
|
+
`;if(null==(s=l.videos)?void 0:s.length)for(let e of l.videos)n+=["<video:video>",`<video:title>${e.title}</video:title>`,`<video:thumbnail_loc>${e.thumbnail_loc}</video:thumbnail_loc>`,`<video:description>${e.description}</video:description>`,e.content_loc&&`<video:content_loc>${e.content_loc}</video:content_loc>`,e.player_loc&&`<video:player_loc>${e.player_loc}</video:player_loc>`,e.duration&&`<video:duration>${e.duration}</video:duration>`,e.view_count&&`<video:view_count>${e.view_count}</video:view_count>`,e.tag&&`<video:tag>${e.tag}</video:tag>`,e.rating&&`<video:rating>${e.rating}</video:rating>`,e.expiration_date&&`<video:expiration_date>${e.expiration_date}</video:expiration_date>`,e.publication_date&&`<video:publication_date>${e.publication_date}</video:publication_date>`,e.family_friendly&&`<video:family_friendly>${e.family_friendly}</video:family_friendly>`,e.requires_subscription&&`<video:requires_subscription>${e.requires_subscription}</video:requires_subscription>`,e.live&&`<video:live>${e.live}</video:live>`,e.restriction&&`<video:restriction relationship="${e.restriction.relationship}">${e.restriction.content}</video:restriction>`,e.platform&&`<video:platform relationship="${e.platform.relationship}">${e.platform.content}</video:platform>`,e.uploader&&`<video:uploader${e.uploader.info&&` info="${e.uploader.info}"`}>${e.uploader.content}</video:uploader>`,`</video:video>
|
|
14
|
+
`].filter(Boolean).join("\n");if(l.lastModified){let e=l.lastModified instanceof Date?l.lastModified.toISOString():l.lastModified;n+=`<lastmod>${e}</lastmod>
|
|
15
|
+
`}l.changeFrequency&&(n+=`<changefreq>${l.changeFrequency}</changefreq>
|
|
16
|
+
`),"number"==typeof l.priority&&(n+=`<priority>${l.priority}</priority>
|
|
17
|
+
`),n+="</url>\n"}return n+"</urlset>\n"}function l(e){return JSON.stringify(e)}function u(e,t){return"robots"===t?a(e):"sitemap"===t?s(e):"manifest"===t?l(e):""}},89300,e=>{"use strict";var t=e.i(58821);function r(){return{id:"/",name:"智能错题本",short_name:"错题本",description:"AI 驱动的智能错题管理系统,帮助学生高效整理、分析和复习错题",lang:"zh-CN",start_url:"/",scope:"/",display:"standalone",background_color:"#ffffff",theme_color:"#4f46e5",orientation:"any",categories:["education","productivity"],icons:[{src:"/icons/icon-192.png",sizes:"192x192",type:"image/png",purpose:"any"},{src:"/icons/icon-512.png",sizes:"512x512",type:"image/png",purpose:"any"},{src:"/icons/icon-maskable-512.png",sizes:"512x512",type:"image/png",purpose:"maskable"}]}}e.s(["default",0,r],7718);var i=e.i(73853);async function n(){let e=await r(),n=(0,i.resolveRouteData)(e,"manifest");return new t.NextResponse(n,{headers:{"Content-Type":"application/manifest+json","Cache-Control":"public, max-age=0, must-revalidate"}})}e.s(["GET",0,n],38813),e.i(38813),e.i(7718),e.s(["GET",0,n],89300)},22945,e=>{"use strict";var t=e.i(47909),r=e.i(74017),i=e.i(96250),n=e.i(59756),o=e.i(61916),a=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),v=e.i(74838),h=e.i(10372),m=e.i(93695),g=e.i(9580);e.i(52474);var y=e.i(220);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/manifest.webmanifest/route",pathname:"/manifest.webmanifest",filename:"manifest--route-entry",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/manifest--route-entry.js",nextConfigOutput:"standalone",userland:()=>e.r(89300),...{}}),{workAsyncStorage:R,workUnitAsyncStorage:_,serverHooks:b}=w;async function x(e,t,i){i.requestMeta&&(0,n.setRequestMeta)(e,i.requestMeta),w.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/manifest.webmanifest/route";R=R.replace(/\/index$/,"")||"/";let _=await w.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:b,deploymentId:x,params:A,nextConfig:C,parsedUrl:E,isDraftMode:$,prerenderManifest:O,routerServerContext:T,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,resolvedPathname:q,clientReferenceManifest:N,serverActionsManifest:M}=_,k=(0,s.normalizeAppPath)(R),D=!!O.routes[q]&&(w.isDev||(0,g.isRouteCacheOwner)(q,w.cacheOwner,O.routes[q])),H=!!(O.dynamicRoutes[k]||D),I=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,E,!1):t.end("This page could not be found"),null);if(H&&!$){let e=O.dynamicRoutes[k];if(e&&!1===e.fallback&&!D){if(C.adapterPath)return await I();throw new m.NoFallbackError}}let U=null;!H||w.isDev||$||(U="/index"===(U=q)?"/":U);let j=!0===w.isDev||!H,F=H&&!j;M&&N&&(0,a.setManifestsSingleton)({page:R,clientReferenceManifest:N,serverActionsManifest:M});let K=e.method||"GET",L=(0,o.getTracer)(),B=L.getActiveScopeSpan(),G=!!(null==T?void 0:T.isWrappedByNextServer),z=!!(0,n.getRequestMeta)(e,"minimalMode"),V=(0,n.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,C,O,z);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let X={params:A,previewProps:O.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:$,supportsDynamicResponse:j,incrementalCache:V,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,i,n)=>w.onRequestError(e,t,i,n,T)},sharedContext:{buildId:b,deploymentId:x}},W=new l.NodeNextRequest(e),J=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:r})=>{try{if(!z&&S&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await w.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&i.waitUntil&&(i.waitUntil(o),o=void 0);let a=X.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(W,J,n,o),null;{let e=await n.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(n.headers);a&&(t[h.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,i=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:i}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})},!1,T),t}},Y=async(n,a)=>{try{var s,l;let n=await w.handleResponse({req:e,nextConfig:C,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:P,responseGenerator:Q,waitUntil:i.waitUntil,isMinimalMode:z});if(!H)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});z||t.setHeader("x-nextjs-cache",S?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),$&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(n.value.headers);z&&H||o.delete(h.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,v.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(W,J,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:S})},!1,T),H)throw t;await (0,p.sendResponse)(W,J,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=r.get("next.route")||k,s=`${K} ${i}`;n.setAttributes({"next.route":i,"http.route":i,"next.span_name":s}),n.updateName(s),a&&a!==n&&(a.setAttribute("http.route",i),a.updateName(s))})()}};if(G&&B)await Y(B,void 0);else{let t=L.getActiveScopeSpan();await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${K} ${R}`,kind:o.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Y(e,t)),void 0,!G)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:_})},"routeModule",0,w,"serverHooks",0,b,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,_])}];
|
|
18
18
|
|
|
19
19
|
//# sourceMappingURL=_0lz3t4l._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module.exports=[79955,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__1_gkx5x._.js"].map(r=>e.l(r))).then(()=>r(35611)))},46735,e=>{e.v(r=>Promise.all(["server/chunks/[externals]__04n7qbr._.js","server/chunks/[root-of-the-server]__0rk_yxy._.js"].map(r=>e.l(r))).then(()=>r(83085)))},58078,e=>{"use strict";e.s(["requireAdmin",0,function(e){var r;return!!e&&(r=e.user,r?.role==="admin")}])}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_0n36ev0._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[19833,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(69719),n=e.i(63856),s=e.i(76759),o=e.i(50377),u=e.i(74866),l=t([n]);[n]=l.then?(await l)():l;let c=(0,o.createLogger)("api:exams:regenerate"),p=i.z.object({mode:i.z.enum(u.EXAM_REGENERATE_MODES),language:i.z.enum(["zh","en"]).optional()});async function d(e,{params:t}){let{id:r,questionId:i}=await t;try{let t=await (0,n.getCurrentUser)();if(!t)return(0,s.unauthorized)("Authentication required");let o=p.safeParse(await e.json().catch(()=>({})));if(!o.success)return(0,s.validationError)("Invalid regenerate request",o.error.issues);let l=await (0,u.regenerateExamQuestion)(r,i,t.id,o.data.mode,o.data.language||"zh");return a.NextResponse.json(l)}catch(t){let e=t instanceof Error?t.message:String(t);if("EXAM_QUESTION_NOT_FOUND"===e)return(0,s.notFound)("Exam question not found");if("HAS_RESULTS"===e||"QUESTION_GENERATING"===e)return(0,s.conflict)(e);if("SOURCE_DELETED"===e||"NO_QUESTION_TEXT"===e||"EMPTY_ANSWER"===e)return(0,s.badRequest)(e);return c.error({error:e},"Error regenerating exam question"),(0,s.internalError)(e.startsWith("AI_")?e.split(":")[0]:"Failed to regenerate exam question")}}e.s(["POST",0,d]),r()}catch(e){r(e)}},!1),81735,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),m=e.i(70101),g=e.i(74838),h=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var E=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/exams/[id]/questions/[questionId]/regenerate/route",pathname:"/api/exams/[id]/questions/[questionId]/regenerate",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/exams/[id]/questions/[questionId]/regenerate/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(19833),...{}}),{workAsyncStorage:x,workUnitAsyncStorage:y,serverHooks:S}=R;async function T(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),R.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/exams/[id]/questions/[questionId]/regenerate/route";x=x.replace(/\/index$/,"")||"/";let y=await R.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,deploymentId:T,params:I,nextConfig:v,parsedUrl:A,isDraftMode:_,prerenderManifest:q,routerServerContext:C,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:b,serverActionsManifest:M}=y,U=(0,o.normalizeAppPath)(x),D=!!q.routes[P]&&(R.isDev||(0,w.isRouteCacheOwner)(P,R.cacheOwner,q.routes[P])),k=!!(q.dynamicRoutes[U]||D),L=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,A,!1):t.end("This page could not be found"),null);if(k&&!_){let e=q.dynamicRoutes[U];if(e&&!1===e.fallback&&!D){if(v.adapterPath)return await L();throw new f.NoFallbackError}}let Q=null;!k||R.isDev||_||(Q="/index"===(Q=P)?"/":Q);let H=!0===R.isDev||!k,j=k&&!H;M&&b&&(0,s.setManifestsSingleton)({page:x,clientReferenceManifest:b,serverActionsManifest:M});let F=e.method||"GET",X=(0,n.getTracer)(),G=X.getActiveScopeSpan(),K=!!(null==C?void 0:C.isWrappedByNextServer),$=!!(0,i.getRequestMeta)(e,"minimalMode"),z=(0,i.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,v,q,$);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let B={params:I,previewProps:q.preview,renderOpts:{experimental:{authInterrupts:!!v.experimental.authInterrupts,useCacheTimeout:v.experimental.useCacheTimeout},cacheComponents:!!v.cacheComponents,validationLevel:v.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:H,incrementalCache:z,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:v.cacheLife,staticPageGenerationTimeout:v.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>R.onRequestError(e,t,a,i,C)},sharedContext:{buildId:S,deploymentId:T}},W=new u.NodeNextRequest(e),Y=new u.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!$&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await R.handle(V,B);e.fetchMetrics=B.renderOpts.fetchMetrics;let n=B.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=B.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(W,Y,i,n),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[h.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,a=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?v.expireTime:void 0:B.renderOpts.collectedExpire;return{value:{kind:E.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 R.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:N})},!1,C),t}},Z=async(i,s)=>{try{var o,u;let i=await R.handleResponse({req:e,nextConfig:v,cacheKey:Q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:q,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:$});if(!k)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(u=i.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",N?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,m.fromNodeOutgoingHttpHeaders)(i.value.headers);$&&k||n.delete(h.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,g.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(W,Y,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:N})},!1,C),k)throw t;await (0,p.sendResponse)(W,Y,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=X.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return 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")||U,o=`${F} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(K&&G)await Z(G,void 0);else{let t=X.getActiveScopeSpan();await X.withPropagatedContext(e.headers,()=>X.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${x}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Z(e,t)),void 0,!K)}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:y})},"routeModule",0,R,"serverHooks",0,S,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,y])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),i=e.i(79832),n=e.i(98043),s=t([i]);async function o(){let e=await (0,a.getServerSession)(i.authOptions);return e?.user?.email?n.prisma.user.findUnique({where:{email:e.user.email}}):null}[i]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),74866,e=>{"use strict";var t=e.i(98043),r=e.i(43911),a=e.i(50377),i=e.i(95408),n=e.i(26828),s=e.i(68426);let o=(0,a.createLogger)("exam"),u="least_practiced";function l(e,t,r=Math.random){let a=[...e];for(let e=a.length-1;e>0;e--){let t=Math.floor(r()*(e+1));[a[e],a[t]]=[a[t],a[e]]}return a.slice(0,t)}async function d(e,r){let a,n=(await t.prisma.errorItem.findMany({where:(a={userId:e,subjectId:{in:r.subjectIds},shortId:{not:null}},"unmastered"===r.scope?a.NOT=(0,i.masteryStatusWhere)("mastered"):"mastered"===r.scope&&(a.AND=[(0,i.masteryStatusWhere)("mastered")]),r.tagNames&&r.tagNames.length>0&&(a.tags={some:{name:{in:r.tagNames}}}),a),select:{id:!0,shortId:!0,_count:{select:{practiceRecords:!0}}}})).map(({_count:e,...t})=>({...t,practiceCount:e.practiceRecords}));return(r.pickRule??u)==="random"?l(n,r.count):function(e,t,r=Math.random){return l(e,e.length,r).sort((e,t)=>e.practiceCount-t.practiceCount).slice(0,t)}(n,r.count)}function c(e){if(e.some(e=>"pending"===e))return"generating";let t=e.filter(e=>"ready"===e).length;return t===e.length?"ready":0===t?"failed":"partial"}function p(e){if(e.tags.length>0)return e.tags.map(e=>e.name);try{let t=JSON.parse(e.knowledgePoints||"[]");return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function m(e,a,i){let n=await t.prisma.examQuestion.findUnique({where:{id:e},select:{errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}}}}}});if(!n?.errorItem)return void await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:"SOURCE_DELETED"}});try{let s=await (0,r.getAIService)().generateSimilarQuestion(n.errorItem.questionText||"",p(n.errorItem),i,a,n.errorItem.gradeSemester,n.errorItem.figureSvg);await t.prisma.examQuestion.update({where:{id:e},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}})}catch(a){let r=a instanceof Error?a.message:String(a);o.warn({questionId:e,error:r},"Exam question generation failed"),await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:r.slice(0,200)}})}}let g=new Set;async function h(e,r="zh"){if(g.has(e))return;g.add(e);let a=null;try{let i=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,title:!0,difficulty:!0,questions:{where:{status:{not:"ready"}},select:{id:!0}}}});if(!i)return;let s=i.questions.map(e=>e.id),o=s.length,u=0;o>0&&(a=(0,n.startBackgroundTask)({userId:i.userId,kind:"exam",subject:i.title,link:`/exams/${e}`,total:o})),s.length>0&&(await t.prisma.examQuestion.updateMany({where:{id:{in:s}},data:{status:"pending",error:null}}),await t.prisma.examPaper.update({where:{id:e},data:{status:"generating"}}));let l=async()=>{for(;s.length>0;)await m(s.shift(),i.difficulty,r),a?.setProgress(++u,o)};await Promise.all(Array.from({length:Math.min(3,s.length)},l));let d=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}}),p=c(d.map(e=>e.status));await t.prisma.examPaper.update({where:{id:e},data:{status:p}}),a?.setProgress(u,o,d.filter(e=>"failed"===e.status).length),"failed"===p?a?.fail("ALL_FAILED"):a?.succeed()}catch(t){o.error({paperId:e,error:t},"Exam paper generation failed"),a?.fail(t)}finally{g.delete(e)}}let f={status:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,error:!0};async function w(e,a,i,u,l="zh"){let d=await t.prisma.examQuestion.findUnique({where:{id:a},select:{paperId:!0,status:!0,questionText:!0,paper:{select:{userId:!0,title:!0,difficulty:!0}},errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}},subject:{select:{name:!0,stage:!0,subjectKey:!0}}}},_count:{select:{practiceRecords:!0}}}});if(!d||d.paperId!==e||d.paper.userId!==i)throw Error("EXAM_QUESTION_NOT_FOUND");if("pending"===d.status)throw Error("QUESTION_GENERATING");let c={userId:i,subject:d.paper.title,link:`/exams/${e}`};if("question"===u){if(d._count.practiceRecords>0)throw Error("HAS_RESULTS");let i=d.errorItem;if(!i)throw Error("SOURCE_DELETED");let s=await (0,n.trackBackgroundTask)({...c,kind:"exam"},()=>(0,r.getAIService)().generateSimilarQuestion(i.questionText||"",p(i),l,d.paper.difficulty,i.gradeSemester,i.figureSvg)),{count:o}=await t.prisma.examQuestion.updateMany({where:{id:a,practiceRecords:{none:{}}},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}});if(0===o)throw Error("HAS_RESULTS");await E(e)}else{let e=d.questionText;if("ready"!==d.status||!e?.trim())throw Error("NO_QUESTION_TEXT");let i=d.errorItem?.subject?(0,s.resolveNotebookScope)(d.errorItem.subject):null,o=i?.subject?s.SUBJECT_DISPLAY_NAMES[i.subject]:null,u=await (0,n.trackBackgroundTask)({...c,kind:"reanswer"},()=>(0,r.getAIService)().reanswerQuestion(e,l,o,void 0,d.errorItem?.gradeSemester));if(!u.answerText.trim()&&!u.analysis.trim())throw Error("EMPTY_ANSWER");let p={answerText:u.answerText,analysis:u.analysis};await t.prisma.$transaction([t.prisma.examQuestion.update({where:{id:a},data:p}),t.prisma.practiceRecord.updateMany({where:{examQuestionId:a},data:p})])}let m=await t.prisma.examQuestion.findUnique({where:{id:a},select:f});return o.info({paperId:e,questionId:a,mode:u},"Exam question regenerated"),m}async function E(e){let r=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}});await t.prisma.examPaper.update({where:{id:e},data:{status:c(r.map(e=>e.status))}})}async function R(e,r,a,i){let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,difficulty:!0,questions:{select:{id:!0,errorItemId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,errorItem:{select:{subject:{select:{name:!0}}}}}}}});if(!n||n.userId!==r)throw Error("EXAM_NOT_FOUND");let s=new Map(n.questions.map(e=>[e.id,e])),o=new Set;return await t.prisma.$transaction(async t=>{for(let{questionId:e,result:u}of i){let i=s.get(e);i?.errorItemId&&null!==u&&(await t.practiceRecord.create({data:{userId:r,errorItemId:i.errorItemId,examQuestionId:i.id,source:"exam",result:u,isCorrect:"correct"===u,createdAt:a,difficulty:n.difficulty,subject:i.errorItem?.subject?.name??null,questionText:i.questionText,answerText:i.answerText,analysis:i.analysis,figureSvg:i.figureSvg}}),o.add(i.errorItemId))}o.size>0&&await t.examPaper.update({where:{id:e},data:{resultsRecordedAt:new Date}})}),[...o]}e.s(["DEFAULT_EXAM_PICK_RULE",0,u,"EXAM_DIFFICULTIES",0,["easy","medium","hard","harder"],"EXAM_PICK_RULES",0,["least_practiced","random"],"EXAM_REGENERATE_MODES",0,["question","answer"],"EXAM_SCOPES",0,["unmastered","mastered","all"],"MAX_EXAM_QUESTIONS",0,50,"generateExamPaper",0,h,"isPaperGenerating",0,function(e){return g.has(e)},"recordExamResults",0,R,"regenerateExamQuestion",0,w,"selectSourceItems",0,d])},95408,e=>{"use strict";let t=["new","reviewing","mastered"],r={practiceRecords:{some:{result:{not:null}}}};e.s(["MASTERY_THRESHOLD",0,.5,"PRACTICE_RECORD_COUNT",0,{select:{practiceRecords:{where:{result:{not:null}}}}},"isMasteryStatus",0,function(e){return"string"==typeof e&&t.includes(e)},"masteryLevelOf",0,function(e){return t.indexOf(e)},"masteryStatusOf",0,function(e,t){return 0===e?"new":"number"==typeof t&&t>=.5?"mastered":"reviewing"},"masteryStatusWhere",0,function(e){return"new"===e?{practiceRecords:{none:{result:{not:null}}}}:"mastered"===e?{...r,masteryProbability:{gte:.5}}:{...r,OR:[{masteryProbability:null},{masteryProbability:{lt:.5}}]}}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0oc8oe4._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[34828,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(69719),n=e.i(98043),s=e.i(63856),o=e.i(76759),u=e.i(50377),l=e.i(74866),d=t([s]);[s]=d.then?(await d)():d;let p=(0,u.createLogger)("api:exams:retry"),m=i.z.object({language:i.z.enum(["zh","en"]).optional()});async function c(e,{params:t}){let{id:r}=await t;try{let t=await (0,s.getCurrentUser)();if(!t)return(0,o.unauthorized)("Authentication required");let i=await n.prisma.examPaper.findUnique({where:{id:r},select:{userId:!0}});if(!i||i.userId!==t.id)return(0,o.notFound)("Exam paper not found");let u=m.safeParse(await e.json().catch(()=>({})));return await n.prisma.examPaper.update({where:{id:r},data:{status:"generating"}}),(0,l.generateExamPaper)(r,u.success&&u.data.language||"zh"),a.NextResponse.json({success:!0})}catch(e){return p.error({error:e},"Error retrying exam paper"),(0,o.internalError)("Failed to retry exam paper")}}e.s(["POST",0,c]),r()}catch(e){r(e)}},!1),15947,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),m=e.i(70101),h=e.i(74838),g=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var E=e.i(220);let x=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/exams/[id]/retry/route",pathname:"/api/exams/[id]/retry",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/exams/[id]/retry/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(34828),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:R,serverHooks:S}=x;async function T(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),x.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/exams/[id]/retry/route";y=y.replace(/\/index$/,"")||"/";let R=await x.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,deploymentId:T,params:v,nextConfig:I,parsedUrl:A,isDraftMode:C,prerenderManifest:_,routerServerContext:P,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:b,serverActionsManifest:M}=R,U=(0,o.normalizeAppPath)(y),k=!!_.routes[O]&&(x.isDev||(0,w.isRouteCacheOwner)(O,x.cacheOwner,_.routes[O])),D=!!(_.dynamicRoutes[U]||k),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!C){let e=_.dynamicRoutes[U];if(e&&!1===e.fallback&&!k){if(I.adapterPath)return await j();throw new f.NoFallbackError}}let H=null;!D||x.isDev||C||(H="/index"===(H=O)?"/":H);let L=!0===x.isDev||!D,Q=D&&!L;M&&b&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:b,serverActionsManifest:M});let F=e.method||"GET",X=(0,n.getTracer)(),K=X.getActiveScopeSpan(),$=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),z=(0,i.getRequestMeta)(e,"incrementalCache")||await x.getIncrementalCache(e,I,_,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let G={params:v,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:C,supportsDynamicResponse:L,incrementalCache:z,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:I.cacheLife,staticPageGenerationTimeout:I.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>x.onRequestError(e,t,a,i,P)},sharedContext:{buildId:S,deploymentId:T}},W=new u.NodeNextRequest(e),V=new u.NodeNextResponse(t),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!B&&q&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await x.handle(Y,G);e.fetchMetrics=G.renderOpts.fetchMetrics;let n=G.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=G.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(W,V,i,n),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[g.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==r&&r>0?I.expireTime:void 0:G.renderOpts.collectedExpire;return{value:{kind:E.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 x.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),t}},Z=async(i,s)=>{try{var o,u;let i=await x.handleResponse({req:e,nextConfig:I,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:B});if(!D)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(u=i.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",q?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,m.fromNodeOutgoingHttpHeaders)(i.value.headers);B&&D||n.delete(g.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,h.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(W,V,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),D)throw t;await (0,p.sendResponse)(W,V,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=X.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return 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")||U,o=`${F} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if($&&K)await Z(K,void 0);else{let t=X.getActiveScopeSpan();await X.withPropagatedContext(e.headers,()=>X.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Z(e,t)),void 0,!$)}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:R})},"routeModule",0,x,"serverHooks",0,S,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,R])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),i=e.i(79832),n=e.i(98043),s=t([i]);async function o(){let e=await (0,a.getServerSession)(i.authOptions);return e?.user?.email?n.prisma.user.findUnique({where:{email:e.user.email}}):null}[i]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),74866,e=>{"use strict";var t=e.i(98043),r=e.i(43911),a=e.i(50377),i=e.i(95408),n=e.i(26828),s=e.i(68426);let o=(0,a.createLogger)("exam"),u="least_practiced";function l(e,t,r=Math.random){let a=[...e];for(let e=a.length-1;e>0;e--){let t=Math.floor(r()*(e+1));[a[e],a[t]]=[a[t],a[e]]}return a.slice(0,t)}async function d(e,r){let a,n=(await t.prisma.errorItem.findMany({where:(a={userId:e,subjectId:{in:r.subjectIds},shortId:{not:null}},"unmastered"===r.scope?a.NOT=(0,i.masteryStatusWhere)("mastered"):"mastered"===r.scope&&(a.AND=[(0,i.masteryStatusWhere)("mastered")]),r.tagNames&&r.tagNames.length>0&&(a.tags={some:{name:{in:r.tagNames}}}),a),select:{id:!0,shortId:!0,_count:{select:{practiceRecords:!0}}}})).map(({_count:e,...t})=>({...t,practiceCount:e.practiceRecords}));return(r.pickRule??u)==="random"?l(n,r.count):function(e,t,r=Math.random){return l(e,e.length,r).sort((e,t)=>e.practiceCount-t.practiceCount).slice(0,t)}(n,r.count)}function c(e){if(e.some(e=>"pending"===e))return"generating";let t=e.filter(e=>"ready"===e).length;return t===e.length?"ready":0===t?"failed":"partial"}function p(e){if(e.tags.length>0)return e.tags.map(e=>e.name);try{let t=JSON.parse(e.knowledgePoints||"[]");return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function m(e,a,i){let n=await t.prisma.examQuestion.findUnique({where:{id:e},select:{errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}}}}}});if(!n?.errorItem)return void await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:"SOURCE_DELETED"}});try{let s=await (0,r.getAIService)().generateSimilarQuestion(n.errorItem.questionText||"",p(n.errorItem),i,a,n.errorItem.gradeSemester,n.errorItem.figureSvg);await t.prisma.examQuestion.update({where:{id:e},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}})}catch(a){let r=a instanceof Error?a.message:String(a);o.warn({questionId:e,error:r},"Exam question generation failed"),await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:r.slice(0,200)}})}}let h=new Set;async function g(e,r="zh"){if(h.has(e))return;h.add(e);let a=null;try{let i=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,title:!0,difficulty:!0,questions:{where:{status:{not:"ready"}},select:{id:!0}}}});if(!i)return;let s=i.questions.map(e=>e.id),o=s.length,u=0;o>0&&(a=(0,n.startBackgroundTask)({userId:i.userId,kind:"exam",subject:i.title,link:`/exams/${e}`,total:o})),s.length>0&&(await t.prisma.examQuestion.updateMany({where:{id:{in:s}},data:{status:"pending",error:null}}),await t.prisma.examPaper.update({where:{id:e},data:{status:"generating"}}));let l=async()=>{for(;s.length>0;)await m(s.shift(),i.difficulty,r),a?.setProgress(++u,o)};await Promise.all(Array.from({length:Math.min(3,s.length)},l));let d=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}}),p=c(d.map(e=>e.status));await t.prisma.examPaper.update({where:{id:e},data:{status:p}}),a?.setProgress(u,o,d.filter(e=>"failed"===e.status).length),"failed"===p?a?.fail("ALL_FAILED"):a?.succeed()}catch(t){o.error({paperId:e,error:t},"Exam paper generation failed"),a?.fail(t)}finally{h.delete(e)}}let f={status:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,error:!0};async function w(e,a,i,u,l="zh"){let d=await t.prisma.examQuestion.findUnique({where:{id:a},select:{paperId:!0,status:!0,questionText:!0,paper:{select:{userId:!0,title:!0,difficulty:!0}},errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}},subject:{select:{name:!0,stage:!0,subjectKey:!0}}}},_count:{select:{practiceRecords:!0}}}});if(!d||d.paperId!==e||d.paper.userId!==i)throw Error("EXAM_QUESTION_NOT_FOUND");if("pending"===d.status)throw Error("QUESTION_GENERATING");let c={userId:i,subject:d.paper.title,link:`/exams/${e}`};if("question"===u){if(d._count.practiceRecords>0)throw Error("HAS_RESULTS");let i=d.errorItem;if(!i)throw Error("SOURCE_DELETED");let s=await (0,n.trackBackgroundTask)({...c,kind:"exam"},()=>(0,r.getAIService)().generateSimilarQuestion(i.questionText||"",p(i),l,d.paper.difficulty,i.gradeSemester,i.figureSvg)),{count:o}=await t.prisma.examQuestion.updateMany({where:{id:a,practiceRecords:{none:{}}},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}});if(0===o)throw Error("HAS_RESULTS");await E(e)}else{let e=d.questionText;if("ready"!==d.status||!e?.trim())throw Error("NO_QUESTION_TEXT");let i=d.errorItem?.subject?(0,s.resolveNotebookScope)(d.errorItem.subject):null,o=i?.subject?s.SUBJECT_DISPLAY_NAMES[i.subject]:null,u=await (0,n.trackBackgroundTask)({...c,kind:"reanswer"},()=>(0,r.getAIService)().reanswerQuestion(e,l,o,void 0,d.errorItem?.gradeSemester));if(!u.answerText.trim()&&!u.analysis.trim())throw Error("EMPTY_ANSWER");let p={answerText:u.answerText,analysis:u.analysis};await t.prisma.$transaction([t.prisma.examQuestion.update({where:{id:a},data:p}),t.prisma.practiceRecord.updateMany({where:{examQuestionId:a},data:p})])}let m=await t.prisma.examQuestion.findUnique({where:{id:a},select:f});return o.info({paperId:e,questionId:a,mode:u},"Exam question regenerated"),m}async function E(e){let r=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}});await t.prisma.examPaper.update({where:{id:e},data:{status:c(r.map(e=>e.status))}})}async function x(e,r,a,i){let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,difficulty:!0,questions:{select:{id:!0,errorItemId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,errorItem:{select:{subject:{select:{name:!0}}}}}}}});if(!n||n.userId!==r)throw Error("EXAM_NOT_FOUND");let s=new Map(n.questions.map(e=>[e.id,e])),o=new Set;return await t.prisma.$transaction(async t=>{for(let{questionId:e,result:u}of i){let i=s.get(e);i?.errorItemId&&null!==u&&(await t.practiceRecord.create({data:{userId:r,errorItemId:i.errorItemId,examQuestionId:i.id,source:"exam",result:u,isCorrect:"correct"===u,createdAt:a,difficulty:n.difficulty,subject:i.errorItem?.subject?.name??null,questionText:i.questionText,answerText:i.answerText,analysis:i.analysis,figureSvg:i.figureSvg}}),o.add(i.errorItemId))}o.size>0&&await t.examPaper.update({where:{id:e},data:{resultsRecordedAt:new Date}})}),[...o]}e.s(["DEFAULT_EXAM_PICK_RULE",0,u,"EXAM_DIFFICULTIES",0,["easy","medium","hard","harder"],"EXAM_PICK_RULES",0,["least_practiced","random"],"EXAM_REGENERATE_MODES",0,["question","answer"],"EXAM_SCOPES",0,["unmastered","mastered","all"],"MAX_EXAM_QUESTIONS",0,50,"generateExamPaper",0,g,"isPaperGenerating",0,function(e){return h.has(e)},"recordExamResults",0,x,"regenerateExamQuestion",0,w,"selectSourceItems",0,d])},95408,e=>{"use strict";let t=["new","reviewing","mastered"],r={practiceRecords:{some:{result:{not:null}}}};e.s(["MASTERY_THRESHOLD",0,.5,"PRACTICE_RECORD_COUNT",0,{select:{practiceRecords:{where:{result:{not:null}}}}},"isMasteryStatus",0,function(e){return"string"==typeof e&&t.includes(e)},"masteryLevelOf",0,function(e){return t.indexOf(e)},"masteryStatusOf",0,function(e,t){return 0===e?"new":"number"==typeof t&&t>=.5?"mastered":"reviewing"},"masteryStatusWhere",0,function(e){return"new"===e?{practiceRecords:{none:{result:{not:null}}}}:"mastered"===e?{...r,masteryProbability:{gte:.5}}:{...r,OR:[{masteryProbability:null},{masteryProbability:{lt:.5}}]}}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0rjzgi0._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[75185,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(98043),n=e.i(63856),s=e.i(76759),o=e.i(50377),u=e.i(74866),l=t([n]);[n]=l.then?(await l)():l;let p=(0,o.createLogger)("api:exams:id");async function d(e,{params:t}){let{id:r}=await t;try{let e=await (0,n.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");let t=await i.prisma.examPaper.findUnique({where:{id:r},include:{questions:{orderBy:{order:"asc"},include:{errorItem:{select:{id:!0,subject:{select:{name:!0}}}},practiceRecords:{orderBy:[{createdAt:"asc"},{id:"asc"}],select:{id:!0,result:!0,createdAt:!0}}}}}});if(!t||t.userId!==e.id)return(0,s.notFound)("Exam paper not found");"generating"!==t.status||(0,u.isPaperGenerating)(t.id)||(0,u.generateExamPaper)(t.id);let{userId:o,questions:l,...d}=t;return a.NextResponse.json({...d,questions:l.map(({errorItem:e,practiceRecords:t,...r})=>({...r,notebookName:e?.subject?.name??null,attempts:t}))})}catch(e){return p.error({error:e},"Error fetching exam paper"),(0,s.internalError)("Failed to fetch exam paper")}}async function c(e,{params:t}){let{id:r}=await t;try{let e=await (0,n.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");let t=await i.prisma.examPaper.findUnique({where:{id:r},select:{userId:!0}});if(!t||t.userId!==e.id)return(0,s.notFound)("Exam paper not found");return await i.prisma.examPaper.delete({where:{id:r}}),a.NextResponse.json({success:!0})}catch(e){return p.error({error:e},"Error deleting exam paper"),(0,s.internalError)("Failed to delete exam paper")}}e.s(["DELETE",0,c,"GET",0,d]),r()}catch(e){r(e)}},!1),98057,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),m=e.i(70101),h=e.i(74838),f=e.i(10372),g=e.i(93695),w=e.i(9580);e.i(52474);var E=e.i(220);let x=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/exams/[id]/route",pathname:"/api/exams/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/exams/[id]/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(75185),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:R,serverHooks:S}=x;async function T(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),x.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/exams/[id]/route";y=y.replace(/\/index$/,"")||"/";let R=await x.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,deploymentId:T,params:v,nextConfig:I,parsedUrl:A,isDraftMode:C,prerenderManifest:_,routerServerContext:P,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,resolvedPathname:b,clientReferenceManifest:O,serverActionsManifest:U}=R,M=(0,o.normalizeAppPath)(y),k=!!_.routes[b]&&(x.isDev||(0,w.isRouteCacheOwner)(b,x.cacheOwner,_.routes[b])),D=!!(_.dynamicRoutes[M]||k),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!C){let e=_.dynamicRoutes[M];if(e&&!1===e.fallback&&!k){if(I.adapterPath)return await j();throw new g.NoFallbackError}}let L=null;!D||x.isDev||C||(L="/index"===(L=b)?"/":L);let H=!0===x.isDev||!D,Q=D&&!H;U&&O&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:O,serverActionsManifest:U});let F=e.method||"GET",X=(0,n.getTracer)(),B=X.getActiveScopeSpan(),G=!!(null==P?void 0:P.isWrappedByNextServer),K=!!(0,i.getRequestMeta)(e,"minimalMode"),$=(0,i.getRequestMeta)(e,"incrementalCache")||await x.getIncrementalCache(e,I,_,K);null==$||$.resetRequestCache(),globalThis.__incrementalCache=$;let z={params:v,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:C,supportsDynamicResponse:H,incrementalCache:$,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:I.cacheLife,staticPageGenerationTimeout:I.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>x.onRequestError(e,t,a,i,P)},sharedContext:{buildId:S,deploymentId:T}},W=new u.NodeNextRequest(e),V=new u.NodeNextResponse(t),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!K&&q&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await x.handle(Y,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let n=z.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=z.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(W,V,i,n),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[f.NEXT_CACHE_TAGS_HEADER]=s),!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?!1!==r&&r>0?I.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:E.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 x.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),t}},Z=async(i,s)=>{try{var o,u;let i=await x.handleResponse({req:e,nextConfig:I,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:K});if(!D)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(u=i.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",q?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,m.fromNodeOutgoingHttpHeaders)(i.value.headers);K&&D||n.delete(f.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,h.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(W,V,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof g.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),D)throw t;await (0,p.sendResponse)(W,V,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=X.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return 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")||M,o=`${F} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(G&&B)await Z(B,void 0);else{let t=X.getActiveScopeSpan();await X.withPropagatedContext(e.headers,()=>X.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Z(e,t)),void 0,!G)}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:R})},"routeModule",0,x,"serverHooks",0,S,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,R])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),i=e.i(79832),n=e.i(98043),s=t([i]);async function o(){let e=await (0,a.getServerSession)(i.authOptions);return e?.user?.email?n.prisma.user.findUnique({where:{email:e.user.email}}):null}[i]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),74866,e=>{"use strict";var t=e.i(98043),r=e.i(43911),a=e.i(50377),i=e.i(95408),n=e.i(26828),s=e.i(68426);let o=(0,a.createLogger)("exam"),u="least_practiced";function l(e,t,r=Math.random){let a=[...e];for(let e=a.length-1;e>0;e--){let t=Math.floor(r()*(e+1));[a[e],a[t]]=[a[t],a[e]]}return a.slice(0,t)}async function d(e,r){let a,n=(await t.prisma.errorItem.findMany({where:(a={userId:e,subjectId:{in:r.subjectIds},shortId:{not:null}},"unmastered"===r.scope?a.NOT=(0,i.masteryStatusWhere)("mastered"):"mastered"===r.scope&&(a.AND=[(0,i.masteryStatusWhere)("mastered")]),r.tagNames&&r.tagNames.length>0&&(a.tags={some:{name:{in:r.tagNames}}}),a),select:{id:!0,shortId:!0,_count:{select:{practiceRecords:!0}}}})).map(({_count:e,...t})=>({...t,practiceCount:e.practiceRecords}));return(r.pickRule??u)==="random"?l(n,r.count):function(e,t,r=Math.random){return l(e,e.length,r).sort((e,t)=>e.practiceCount-t.practiceCount).slice(0,t)}(n,r.count)}function c(e){if(e.some(e=>"pending"===e))return"generating";let t=e.filter(e=>"ready"===e).length;return t===e.length?"ready":0===t?"failed":"partial"}function p(e){if(e.tags.length>0)return e.tags.map(e=>e.name);try{let t=JSON.parse(e.knowledgePoints||"[]");return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function m(e,a,i){let n=await t.prisma.examQuestion.findUnique({where:{id:e},select:{errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}}}}}});if(!n?.errorItem)return void await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:"SOURCE_DELETED"}});try{let s=await (0,r.getAIService)().generateSimilarQuestion(n.errorItem.questionText||"",p(n.errorItem),i,a,n.errorItem.gradeSemester,n.errorItem.figureSvg);await t.prisma.examQuestion.update({where:{id:e},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}})}catch(a){let r=a instanceof Error?a.message:String(a);o.warn({questionId:e,error:r},"Exam question generation failed"),await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:r.slice(0,200)}})}}let h=new Set;async function f(e,r="zh"){if(h.has(e))return;h.add(e);let a=null;try{let i=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,title:!0,difficulty:!0,questions:{where:{status:{not:"ready"}},select:{id:!0}}}});if(!i)return;let s=i.questions.map(e=>e.id),o=s.length,u=0;o>0&&(a=(0,n.startBackgroundTask)({userId:i.userId,kind:"exam",subject:i.title,link:`/exams/${e}`,total:o})),s.length>0&&(await t.prisma.examQuestion.updateMany({where:{id:{in:s}},data:{status:"pending",error:null}}),await t.prisma.examPaper.update({where:{id:e},data:{status:"generating"}}));let l=async()=>{for(;s.length>0;)await m(s.shift(),i.difficulty,r),a?.setProgress(++u,o)};await Promise.all(Array.from({length:Math.min(3,s.length)},l));let d=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}}),p=c(d.map(e=>e.status));await t.prisma.examPaper.update({where:{id:e},data:{status:p}}),a?.setProgress(u,o,d.filter(e=>"failed"===e.status).length),"failed"===p?a?.fail("ALL_FAILED"):a?.succeed()}catch(t){o.error({paperId:e,error:t},"Exam paper generation failed"),a?.fail(t)}finally{h.delete(e)}}let g={status:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,error:!0};async function w(e,a,i,u,l="zh"){let d=await t.prisma.examQuestion.findUnique({where:{id:a},select:{paperId:!0,status:!0,questionText:!0,paper:{select:{userId:!0,title:!0,difficulty:!0}},errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}},subject:{select:{name:!0,stage:!0,subjectKey:!0}}}},_count:{select:{practiceRecords:!0}}}});if(!d||d.paperId!==e||d.paper.userId!==i)throw Error("EXAM_QUESTION_NOT_FOUND");if("pending"===d.status)throw Error("QUESTION_GENERATING");let c={userId:i,subject:d.paper.title,link:`/exams/${e}`};if("question"===u){if(d._count.practiceRecords>0)throw Error("HAS_RESULTS");let i=d.errorItem;if(!i)throw Error("SOURCE_DELETED");let s=await (0,n.trackBackgroundTask)({...c,kind:"exam"},()=>(0,r.getAIService)().generateSimilarQuestion(i.questionText||"",p(i),l,d.paper.difficulty,i.gradeSemester,i.figureSvg)),{count:o}=await t.prisma.examQuestion.updateMany({where:{id:a,practiceRecords:{none:{}}},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}});if(0===o)throw Error("HAS_RESULTS");await E(e)}else{let e=d.questionText;if("ready"!==d.status||!e?.trim())throw Error("NO_QUESTION_TEXT");let i=d.errorItem?.subject?(0,s.resolveNotebookScope)(d.errorItem.subject):null,o=i?.subject?s.SUBJECT_DISPLAY_NAMES[i.subject]:null,u=await (0,n.trackBackgroundTask)({...c,kind:"reanswer"},()=>(0,r.getAIService)().reanswerQuestion(e,l,o,void 0,d.errorItem?.gradeSemester));if(!u.answerText.trim()&&!u.analysis.trim())throw Error("EMPTY_ANSWER");let p={answerText:u.answerText,analysis:u.analysis};await t.prisma.$transaction([t.prisma.examQuestion.update({where:{id:a},data:p}),t.prisma.practiceRecord.updateMany({where:{examQuestionId:a},data:p})])}let m=await t.prisma.examQuestion.findUnique({where:{id:a},select:g});return o.info({paperId:e,questionId:a,mode:u},"Exam question regenerated"),m}async function E(e){let r=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}});await t.prisma.examPaper.update({where:{id:e},data:{status:c(r.map(e=>e.status))}})}async function x(e,r,a,i){let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,difficulty:!0,questions:{select:{id:!0,errorItemId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,errorItem:{select:{subject:{select:{name:!0}}}}}}}});if(!n||n.userId!==r)throw Error("EXAM_NOT_FOUND");let s=new Map(n.questions.map(e=>[e.id,e])),o=new Set;return await t.prisma.$transaction(async t=>{for(let{questionId:e,result:u}of i){let i=s.get(e);i?.errorItemId&&null!==u&&(await t.practiceRecord.create({data:{userId:r,errorItemId:i.errorItemId,examQuestionId:i.id,source:"exam",result:u,isCorrect:"correct"===u,createdAt:a,difficulty:n.difficulty,subject:i.errorItem?.subject?.name??null,questionText:i.questionText,answerText:i.answerText,analysis:i.analysis,figureSvg:i.figureSvg}}),o.add(i.errorItemId))}o.size>0&&await t.examPaper.update({where:{id:e},data:{resultsRecordedAt:new Date}})}),[...o]}e.s(["DEFAULT_EXAM_PICK_RULE",0,u,"EXAM_DIFFICULTIES",0,["easy","medium","hard","harder"],"EXAM_PICK_RULES",0,["least_practiced","random"],"EXAM_REGENERATE_MODES",0,["question","answer"],"EXAM_SCOPES",0,["unmastered","mastered","all"],"MAX_EXAM_QUESTIONS",0,50,"generateExamPaper",0,f,"isPaperGenerating",0,function(e){return h.has(e)},"recordExamResults",0,x,"regenerateExamQuestion",0,w,"selectSourceItems",0,d])},95408,e=>{"use strict";let t=["new","reviewing","mastered"],r={practiceRecords:{some:{result:{not:null}}}};e.s(["MASTERY_THRESHOLD",0,.5,"PRACTICE_RECORD_COUNT",0,{select:{practiceRecords:{where:{result:{not:null}}}}},"isMasteryStatus",0,function(e){return"string"==typeof e&&t.includes(e)},"masteryLevelOf",0,function(e){return t.indexOf(e)},"masteryStatusOf",0,function(e,t){return 0===e?"new":"number"==typeof t&&t>=.5?"mastered":"reviewing"},"masteryStatusWhere",0,function(e){return"new"===e?{practiceRecords:{none:{result:{not:null}}}}:"mastered"===e?{...r,masteryProbability:{gte:.5}}:{...r,OR:[{masteryProbability:null},{masteryProbability:{lt:.5}}]}}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_10y361h._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[11052,e=>e.a(async(t,a)=>{try{var r=e.i(58821),i=e.i(98043),n=e.i(79832),s=e.i(13618),o=e.i(76759),l=e.i(50377),u=e.i(98003),d=e.i(76025),c=e.i(2633);e.i(92366);var p=e.i(41070),h=t([n]);[n]=h.then?(await h)():h;let R=(0,l.createLogger)("api:error-items:list");async function g(e){let t=await (0,s.getServerSession)(n.authOptions),{searchParams:a}=new URL(e.url),l=a.get("subjectId"),h=a.get("query"),g=a.get("mastery"),f=a.get("timeRange"),w=a.get("tag"),v=Math.max(1,parseInt(a.get("page")||"1",10)),E=Math.min(c.MAX_PAGE_SIZE,Math.max(c.MIN_PAGE_SIZE,parseInt(a.get("pageSize")||String(c.DEFAULT_PAGE_SIZE),10)));try{let e;if(t?.user?.email&&(e=await i.prisma.user.findUnique({where:{email:t.user.email}})),!e)return(0,o.unauthorized)("Authentication required");let n={userId:e.id};l&&(n.subjectId=l);let s=[];if(h&&s.push({OR:[{questionText:{contains:h}},{analysis:{contains:h}},{wrongAnswerText:{contains:h}},{mistakeAnalysis:{contains:h}},{knowledgePoints:{contains:h}},...(0,p.isShortId)(h.trim())?[{shortId:h.trim()}]:[]]}),null!==g&&(n.masteryLevel="1"===g?{gt:0}:0),f&&"all"!==f){let e=new Date,t=(0,u.getAppTimeZone)(),a=e;"week"===f?a=(0,d.shiftCalendarDate)(e,t,-7):"month"===f&&(a=(0,d.shiftCalendarDate)(e,t,0,-1)),n.createdAt={gte:a}}let c=a.get("chapter");if(c){let t=await m(c,e.id);t.length>0?n.tags={some:{id:{in:t}}}:n.id="__IMPOSSIBLE_ID__"}w&&!c?n.knowledgePoints={contains:w}:w&&c&&(n.tags={some:{name:w}});let R=a.get("gradeSemester");if(R){let e=function(e){let t=[e],a="",r="";if(e.includes("七年级")||e.includes("初一"))r="七年级";else if(e.includes("八年级")||e.includes("初二"))r="八年级";else if(e.includes("九年级")||e.includes("初三"))r="九年级";else if(e.includes("高一"))r="高一";else if(e.includes("高二"))r="高二";else if(e.includes("高三"))r="高三";else{let a=e.match(/^(.+?)[上下]/);if(!a)return{gradeSemester:{contains:e}};t=[a[1]]}r&&(t=({七年级:["七年级","初一","7年级","七"],八年级:["八年级","初二","8年级","八"],九年级:["九年级","初三","9年级","九"],高一:["高一","10年级"],高二:["高二","11年级"],高三:["高三","12年级"]})[r]),e.includes("上")?a="上":e.includes("下")&&(a="下");let i=[];return(t.forEach(e=>{if(a){i.push({gradeSemester:{contains:`${e}${a}`}}),i.push({gradeSemester:{contains:`${e},${a}`}}),i.push({gradeSemester:{contains:`${e},${a}`}}),i.push({gradeSemester:{contains:`${e} ${a}`}});let t="上"===a?"上期":"下期";i.push({gradeSemester:{contains:`${e},${t}`}})}else i.push({gradeSemester:{contains:e}})}),0===i.length)?{gradeSemester:{contains:e}}:{OR:i}}(R);Object.assign(n,e)}let A=a.get("paperLevel");A&&"all"!==A&&(n.paperLevel=A),s.length>0&&(n.AND=s);let S=await i.prisma.errorItem.count({where:n}),C=await i.prisma.errorItem.findMany({where:n,orderBy:{createdAt:"desc"},include:{subject:!0,tags:!0},skip:(v-1)*E,take:E}),y=Math.ceil(S/E);return r.NextResponse.json({items:C,total:S,page:v,pageSize:E,totalPages:y})}catch(e){return R.error({error:e},"Error fetching items"),(0,o.internalError)("Failed to fetch error items")}}async function m(e,t){let a=await i.prisma.knowledgeTag.findFirst({where:{name:e,OR:[{isSystem:!0},{userId:t}]},select:{id:!0}});if(!a)return[];let r=[a.id],n=[a.id];for(;n.length>0;){let e=n.shift();for(let t of(await i.prisma.knowledgeTag.findMany({where:{parentId:e},select:{id:!0}})))r.push(t.id),n.push(t.id)}return r}e.s(["GET",0,g]),a()}catch(e){a(e)}},!1),21178,e=>{"use strict";var t=e.i(47909),a=e.i(74017),r=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),m=e.i(10372),R=e.i(93695),f=e.i(9580);e.i(52474);var w=e.i(220);let v=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/error-items/list/route",pathname:"/api/error-items/list",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/list/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(11052),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:A,serverHooks:S}=v;async function C(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),v.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/error-items/list/route";E=E.replace(/\/index$/,"")||"/";let A=await v.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!A)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:C,params:y,nextConfig:x,parsedUrl:I,isDraftMode:_,prerenderManifest:T,routerServerContext:P,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,resolvedPathname:N,clientReferenceManifest:M,serverActionsManifest:q}=A,k=(0,o.normalizeAppPath)(E),D=!!T.routes[N]&&(v.isDev||(0,f.isRouteCacheOwner)(N,v.cacheOwner,T.routes[N])),H=!!(T.dynamicRoutes[k]||D),U=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,I,!1):t.end("This page could not be found"),null);if(H&&!_){let e=T.dynamicRoutes[k];if(e&&!1===e.fallback&&!D){if(x.adapterPath)return await U();throw new R.NoFallbackError}}let $=null;!H||v.isDev||_||($="/index"===($=N)?"/":$);let L=!0===v.isDev||!H,j=H&&!L;q&&M&&(0,s.setManifestsSingleton)({page:E,clientReferenceManifest:M,serverActionsManifest:q});let F=e.method||"GET",G=(0,n.getTracer)(),B=G.getActiveScopeSpan(),K=!!(null==P?void 0:P.isWrappedByNextServer),Z=!!(0,i.getRequestMeta)(e,"minimalMode"),X=(0,i.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,x,T,Z);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let z={params:y,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:L,incrementalCache:X,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,i)=>v.onRequestError(e,t,r,i,P)},sharedContext:{buildId:S,deploymentId:C}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:a})=>{try{if(!Z&&O&&b&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await v.handle(J,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let n=z.renderOpts.pendingWaitUntil;n&&r.waitUntil&&(r.waitUntil(n),n=void 0);let s=z.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(V,W,i,n),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[m.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,r=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==a&&a>0?x.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:O})},!1,P),t}},Y=async(i,s)=>{try{var o,l;let i=await v.handleResponse({req:e,nextConfig:x,cacheKey:$,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,responseGenerator:Q,waitUntil:r.waitUntil,isMinimalMode:Z});if(!H)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});Z||t.setHeader("x-nextjs-cache",O?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(i.value.headers);Z&&H||n.delete(m.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,g.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(V,W,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:O})},!1,P),H)throw t;await (0,p.sendResponse)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let a=G.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return 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")||k,o=`${F} ${r}`;i.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",r),s.updateName(o))})()}};if(K&&B)await Y(B,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${E}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Y(e,t)),void 0,!K)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:A})},"routeModule",0,v,"serverHooks",0,S,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,A])},2633,e=>{"use strict";e.s(["DEFAULT_PAGE_SIZE",0,18,"MAX_PAGE_SIZE",0,1e3,"MIN_PAGE_SIZE",0,1])}];
|
|
1
|
+
module.exports=[11052,e=>e.a(async(t,a)=>{try{var r=e.i(58821),i=e.i(98043),n=e.i(79832),s=e.i(13618),o=e.i(76759),l=e.i(50377),u=e.i(98003),d=e.i(76025),c=e.i(2633);e.i(92366);var p=e.i(41070),h=e.i(95408),m=t([n]);[n]=m.then?(await m)():m;let f=(0,l.createLogger)("api:error-items:list");async function g(e){let t=await (0,s.getServerSession)(n.authOptions),{searchParams:a}=new URL(e.url),l=a.get("subjectId"),m=a.get("query"),g=a.get("mastery"),w=a.get("timeRange"),E=a.get("tag"),v=Math.max(1,parseInt(a.get("page")||"1",10)),S=Math.min(c.MAX_PAGE_SIZE,Math.max(c.MIN_PAGE_SIZE,parseInt(a.get("pageSize")||String(c.DEFAULT_PAGE_SIZE),10)));try{let e;if(t?.user?.email&&(e=await i.prisma.user.findUnique({where:{email:t.user.email}})),!e)return(0,o.unauthorized)("Authentication required");let n={userId:e.id};l&&(n.subjectId=l);let s=[];if(m&&s.push({OR:[{questionText:{contains:m}},{analysis:{contains:m}},{wrongAnswerText:{contains:m}},{mistakeAnalysis:{contains:m}},{knowledgePoints:{contains:m}},...(0,p.isShortId)(m.trim())?[{shortId:m.trim()}]:[]]}),(0,h.isMasteryStatus)(g)&&s.push((0,h.masteryStatusWhere)(g)),w&&"all"!==w){let e=new Date,t=(0,u.getAppTimeZone)(),a=e;"week"===w?a=(0,d.shiftCalendarDate)(e,t,-7):"month"===w&&(a=(0,d.shiftCalendarDate)(e,t,0,-1)),n.createdAt={gte:a}}let c=a.get("chapter");if(c){let t=await R(c,e.id);t.length>0?n.tags={some:{id:{in:t}}}:n.id="__IMPOSSIBLE_ID__"}E&&!c?n.knowledgePoints={contains:E}:E&&c&&(n.tags={some:{name:E}});let f=a.get("gradeSemester");if(f){let e=function(e){let t=[e],a="",r="";if(e.includes("七年级")||e.includes("初一"))r="七年级";else if(e.includes("八年级")||e.includes("初二"))r="八年级";else if(e.includes("九年级")||e.includes("初三"))r="九年级";else if(e.includes("高一"))r="高一";else if(e.includes("高二"))r="高二";else if(e.includes("高三"))r="高三";else{let a=e.match(/^(.+?)[上下]/);if(!a)return{gradeSemester:{contains:e}};t=[a[1]]}r&&(t=({七年级:["七年级","初一","7年级","七"],八年级:["八年级","初二","8年级","八"],九年级:["九年级","初三","9年级","九"],高一:["高一","10年级"],高二:["高二","11年级"],高三:["高三","12年级"]})[r]),e.includes("上")?a="上":e.includes("下")&&(a="下");let i=[];return(t.forEach(e=>{if(a){i.push({gradeSemester:{contains:`${e}${a}`}}),i.push({gradeSemester:{contains:`${e},${a}`}}),i.push({gradeSemester:{contains:`${e},${a}`}}),i.push({gradeSemester:{contains:`${e} ${a}`}});let t="上"===a?"上期":"下期";i.push({gradeSemester:{contains:`${e},${t}`}})}else i.push({gradeSemester:{contains:e}})}),0===i.length)?{gradeSemester:{contains:e}}:{OR:i}}(f);Object.assign(n,e)}let A=a.get("paperLevel");A&&"all"!==A&&(n.paperLevel=A),s.length>0&&(n.AND=s);let C=await i.prisma.errorItem.count({where:n}),y=await i.prisma.errorItem.findMany({where:n,orderBy:{createdAt:"desc"},include:{subject:!0,tags:!0,_count:h.PRACTICE_RECORD_COUNT},skip:(v-1)*S,take:S}),_=Math.ceil(C/S);return r.NextResponse.json({items:y.map(({_count:e,...t})=>({...t,masteryStatus:(0,h.masteryStatusOf)(e.practiceRecords,t.masteryProbability)})),total:C,page:v,pageSize:S,totalPages:_})}catch(e){return f.error({error:e},"Error fetching items"),(0,o.internalError)("Failed to fetch error items")}}async function R(e,t){let a=await i.prisma.knowledgeTag.findFirst({where:{name:e,OR:[{isSystem:!0},{userId:t}]},select:{id:!0}});if(!a)return[];let r=[a.id],n=[a.id];for(;n.length>0;){let e=n.shift();for(let t of(await i.prisma.knowledgeTag.findMany({where:{parentId:e},select:{id:!0}})))r.push(t.id),n.push(t.id)}return r}e.s(["GET",0,g]),a()}catch(e){a(e)}},!1),21178,e=>{"use strict";var t=e.i(47909),a=e.i(74017),r=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(74838),g=e.i(10372),R=e.i(93695),f=e.i(9580);e.i(52474);var w=e.i(220);let E=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/error-items/list/route",pathname:"/api/error-items/list",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/list/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(11052),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:S,serverHooks:A}=E;async function C(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/error-items/list/route";v=v.replace(/\/index$/,"")||"/";let S=await E.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:C,params:y,nextConfig:_,parsedUrl:I,isDraftMode:T,prerenderManifest:x,routerServerContext:P,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,resolvedPathname:N,clientReferenceManifest:M,serverActionsManifest:q}=S,D=(0,o.normalizeAppPath)(v),k=!!x.routes[N]&&(E.isDev||(0,f.isRouteCacheOwner)(N,E.cacheOwner,x.routes[N])),U=!!(x.dynamicRoutes[D]||k),H=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,I,!1):t.end("This page could not be found"),null);if(U&&!T){let e=x.dynamicRoutes[D];if(e&&!1===e.fallback&&!k){if(_.adapterPath)return await H();throw new R.NoFallbackError}}let $=null;!U||E.isDev||T||($="/index"===($=N)?"/":$);let L=!0===E.isDev||!U,j=U&&!L;q&&M&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:M,serverActionsManifest:q});let F=e.method||"GET",G=(0,n.getTracer)(),B=G.getActiveScopeSpan(),K=!!(null==P?void 0:P.isWrappedByNextServer),Z=!!(0,i.getRequestMeta)(e,"minimalMode"),X=(0,i.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,_,x,Z);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let z={params:y,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts,useCacheTimeout:_.experimental.useCacheTimeout},cacheComponents:!!_.cacheComponents,validationLevel:_.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:L,incrementalCache:X,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:_.cacheLife,staticPageGenerationTimeout:_.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,i)=>E.onRequestError(e,t,r,i,P)},sharedContext:{buildId:A,deploymentId:C}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:a})=>{try{if(!Z&&O&&b&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await E.handle(J,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let n=z.renderOpts.pendingWaitUntil;n&&r.waitUntil&&(r.waitUntil(n),n=void 0);let s=z.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(V,W,i,n),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[g.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,r=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==a&&a>0?_.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:O})},!1,P),t}},Y=async(i,s)=>{try{var o,l;let i=await E.handleResponse({req:e,nextConfig:_,cacheKey:$,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,responseGenerator:Q,waitUntil:r.waitUntil,isMinimalMode:Z});if(!U)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});Z||t.setHeader("x-nextjs-cache",O?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(i.value.headers);Z&&U||n.delete(g.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(V,W,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:O})},!1,P),U)throw t;await (0,p.sendResponse)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let a=G.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return 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")||D,o=`${F} ${r}`;i.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",r),s.updateName(o))})()}};if(K&&B)await Y(B,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Y(e,t)),void 0,!K)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:S})},"routeModule",0,E,"serverHooks",0,A,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,S])},2633,e=>{"use strict";e.s(["DEFAULT_PAGE_SIZE",0,18,"MAX_PAGE_SIZE",0,1e3,"MIN_PAGE_SIZE",0,1])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_14tz_k9._.js.map
|