Files
chinese-family-tree-2/.next/server/chunks/[root-of-the-server]__78df78c5._.js
T
freedakgmail b7a8c9ee6e 0.0.8.3
2025-11-24 08:11:15 +08:00

3 lines
12 KiB
JavaScript

module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},29173,(e,t,r)=>{t.exports=e.x("@prisma/client",()=>require("@prisma/client"))},13112,e=>{"use strict";var t=e.i(45942),r=e.i(29173);async function a(e,i,s=r.Role.VIEWER){if(await t.prisma.familyTree.findFirst({where:{id:i,ownerId:e}}))return{hasPermission:!0,role:r.Role.OWNER};let n=await t.prisma.treeCollaborator.findFirst({where:{treeId:i,userId:e}});if(!n)return{hasPermission:!1,role:null};let o={[r.Role.OWNER]:3,[r.Role.EDITOR]:2,[r.Role.VIEWER]:1};return{hasPermission:o[n.role]>=o[s],role:n.role}}e.s(["checkPermission",()=>a])},39475,e=>{"use strict";var t=e.i(25785),r=e.i(40895),a=e.i(18598),i=e.i(42046),s=e.i(44631),n=e.i(23914),o=e.i(32067),d=e.i(40494),l=e.i(65208),u=e.i(51950),p=e.i(38406),c=e.i(88021),m=e.i(88950),h=e.i(72379),f=e.i(37057),w=e.i(64184),R=e.i(93695);e.i(57919);var x=e.i(33119),y=e.i(75287),I=e.i(77491),E=e.i(16658),v=e.i(45942),b=e.i(13112),g=e.i(29173);async function M(e,{params:t}){try{let e=await (0,I.getServerSession)(E.authOptions);if(!e?.user?.id)return y.NextResponse.json({error:"未授权"},{status:401});let{treeId:r,memberId:a}=await t,{hasPermission:i}=await (0,b.checkPermission)(e.user.id,r);if(!i)return y.NextResponse.json({error:"无权访问此家族树"},{status:403});let s=await v.prisma.familyMember.findFirst({where:{id:a,treeId:r}});if(!s)return y.NextResponse.json({error:"成员不存在"},{status:404});return y.NextResponse.json({member:s})}catch(e){return console.error("获取成员失败:",e),y.NextResponse.json({error:"获取成员失败"},{status:500})}}async function N(e,{params:t}){try{let r=await (0,I.getServerSession)(E.authOptions);if(!r?.user?.id)return y.NextResponse.json({error:"未授权"},{status:401});let{treeId:a,memberId:i}=await t,{hasPermission:s}=await (0,b.checkPermission)(r.user.id,a,g.Role.EDITOR);if(!s)return y.NextResponse.json({error:"无权限修改成员"},{status:403});let n=await e.json(),o=await v.prisma.familyMember.findFirst({where:{id:i,treeId:a}});if(!o)return y.NextResponse.json({error:"成员不存在"},{status:404});let d=await v.prisma.familyMember.update({where:{id:i},data:{...n,updatedAt:new Date}});if(void 0!==n.spouseIds){let e=n.spouseIds||[],t=o.spouseIds||[];for(let r of e)if(!t.includes(r)){let e=await v.prisma.familyMember.findUnique({where:{id:r}});e&&!e.spouseIds.includes(i)&&await v.prisma.familyMember.update({where:{id:r},data:{spouseIds:[...e.spouseIds,i]}})}for(let r of t)if(!e.includes(r)){let e=await v.prisma.familyMember.findUnique({where:{id:r}});e&&e.spouseIds.includes(i)&&await v.prisma.familyMember.update({where:{id:r},data:{spouseIds:e.spouseIds.filter(e=>e!==i)}})}}if(void 0!==n.fatherId){let e=o.fatherId,t=n.fatherId;if(e&&e!==t){let t=await v.prisma.familyMember.findUnique({where:{id:e}});t&&t.childrenIds.includes(i)&&await v.prisma.familyMember.update({where:{id:e},data:{childrenIds:t.childrenIds.filter(e=>e!==i)}})}if(t&&t!==e){let e=await v.prisma.familyMember.findUnique({where:{id:t}});e&&!e.childrenIds.includes(i)&&await v.prisma.familyMember.update({where:{id:t},data:{childrenIds:[...e.childrenIds,i]}})}}if(void 0!==n.motherId){let e=o.motherId,t=n.motherId;if(e&&e!==t){let t=await v.prisma.familyMember.findUnique({where:{id:e}});t&&t.childrenIds.includes(i)&&await v.prisma.familyMember.update({where:{id:e},data:{childrenIds:t.childrenIds.filter(e=>e!==i)}})}if(t&&t!==e){let e=await v.prisma.familyMember.findUnique({where:{id:t}});e&&!e.childrenIds.includes(i)&&await v.prisma.familyMember.update({where:{id:t},data:{childrenIds:[...e.childrenIds,i]}})}}if(void 0!==n.childrenIds){let e=n.childrenIds||[],t=o.childrenIds||[];for(let r of e)if(!t.includes(r)){let e=await v.prisma.familyMember.findUnique({where:{id:r}});e&&("MALE"!==d.gender||e.fatherId?"FEMALE"!==d.gender||e.motherId||await v.prisma.familyMember.update({where:{id:r},data:{motherId:i}}):await v.prisma.familyMember.update({where:{id:r},data:{fatherId:i}}))}for(let r of t)if(!e.includes(r)){let e=await v.prisma.familyMember.findUnique({where:{id:r}});e&&("MALE"===d.gender&&e.fatherId===i?await v.prisma.familyMember.update({where:{id:r},data:{fatherId:null}}):"FEMALE"===d.gender&&e.motherId===i&&await v.prisma.familyMember.update({where:{id:r},data:{motherId:null}}))}}return await v.prisma.activityLog.create({data:{treeId:a,userId:r.user.id,action:"UPDATE",entityType:"MEMBER",entityId:d.id,entityName:d.fullName,changes:n}}),y.NextResponse.json({member:d})}catch(e){return console.error("更新成员失败:",e),y.NextResponse.json({error:"更新成员失败"},{status:500})}}async function C(e,{params:t}){try{let e=await (0,I.getServerSession)(E.authOptions);if(!e?.user?.id)return y.NextResponse.json({error:"未授权"},{status:401});let{treeId:r,memberId:a}=await t,{hasPermission:i}=await (0,b.checkPermission)(e.user.id,r,g.Role.EDITOR);if(!i)return y.NextResponse.json({error:"无权限删除成员"},{status:403});let s=await v.prisma.familyMember.findFirst({where:{id:a,treeId:r}});if(!s)return y.NextResponse.json({error:"成员不存在"},{status:404});return await v.prisma.familyMember.delete({where:{id:a}}),await v.prisma.activityLog.create({data:{treeId:r,userId:e.user.id,action:"DELETE",entityType:"MEMBER",entityId:a,entityName:s.fullName}}),y.NextResponse.json({success:!0})}catch(e){return console.error("删除成员失败:",e),y.NextResponse.json({error:"删除成员失败"},{status:500})}}e.s(["DELETE",()=>C,"GET",()=>M,"PATCH",()=>N],1600);var A=e.i(1600);let T=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/trees/[treeId]/members/[memberId]/route",pathname:"/api/trees/[treeId]/members/[memberId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/members/[memberId]/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:j,workUnitAsyncStorage:P,serverHooks:q}=T;function O(){return(0,a.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:P})}async function S(e,t,a){T.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/trees/[treeId]/members/[memberId]/route";y=y.replace(/\/index$/,"")||"/";let I=await T.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!I)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,params:v,nextConfig:b,parsedUrl:g,isDraftMode:M,prerenderManifest:N,routerServerContext:C,isOnDemandRevalidate:A,revalidateOnlyGenerated:j,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:O}=I,S=(0,d.normalizeAppPath)(y),k=!!(N.dynamicRoutes[S]||N.routes[P]),U=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,g,!1):t.end("This page could not be found"),null);if(k&&!M){let e=!!N.routes[P],t=N.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await U();throw new R.NoFallbackError}}let D=null;!k||T.isDev||M||(D="/index"===(D=P)?"/":D);let _=!0===T.isDev||!k,H=k&&!_;O&&q&&(0,n.setReferenceManifestsSingleton)({page:y,clientReferenceManifest:q,serverActionsManifest:O,serverModuleMap:(0,o.createServerModuleMap)({serverActionsManifest:O})});let F=e.method||"GET",L=(0,s.getTracer)(),$=L.getActiveScopeSpan(),K={params:v,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:_,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>T.onRequestError(e,t,a,C)},sharedContext:{buildId:E}},B=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let n=async e=>T.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${y}`)}),o=!!(0,i.getRequestMeta)(e,"minimalMode"),d=async i=>{var s,d;let l=async({previousCacheEntry:r})=>{try{if(!o&&A&&j&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(i);e.fetchMetrics=K.renderOpts.fetchMetrics;let d=K.renderOpts.pendingWaitUntil;d&&a.waitUntil&&(a.waitUntil(d),d=void 0);let l=K.renderOpts.collectedTags;if(!k)return await (0,m.sendResponse)(B,W,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[w.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})},C),t}},u=await T.handleResponse({req:e,nextConfig:b,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:j,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:o});if(!k)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(d=u.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),M&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&k||p.delete(w.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,m.sendResponse)(B,W,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};$?await d($):await L.withPropagatedContext(e.headers,()=>L.trace(p.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},d))}catch(t){if(t instanceof R.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})}),k)throw t;return await (0,m.sendResponse)(B,W,new Response(null,{status:500})),null}}e.s(["handler",()=>S,"patchFetch",()=>O,"routeModule",()=>T,"serverHooks",()=>q,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>P],39475)}];
//# sourceMappingURL=%5Broot-of-the-server%5D__78df78c5._.js.map