Files
chinese-family-tree-2/.next/server/chunks/[root-of-the-server]__eaa9716f._.js
T
freedakgmail 2b4bc92f1b 0.0.3.0
2025-11-23 13:31:06 +08:00

3 lines
9.8 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"))},13112,e=>{"use strict";var t=e.i(45942),r=e.i(29173);async function a(e,n,s=r.Role.VIEWER){if(await t.prisma.familyTree.findFirst({where:{id:n,ownerId:e}}))return{hasPermission:!0,role:r.Role.OWNER};let i=await t.prisma.treeCollaborator.findFirst({where:{treeId:n,userId:e}});if(!i)return{hasPermission:!1,role:null};let o={[r.Role.OWNER]:3,[r.Role.EDITOR]:2,[r.Role.VIEWER]:1};return{hasPermission:o[i.role]>=o[s],role:i.role}}e.s(["checkPermission",()=>a])},48822,e=>{"use strict";var t=e.i(25785),r=e.i(40895),a=e.i(18598),n=e.i(42046),s=e.i(44631),i=e.i(23914),o=e.i(32067),l=e.i(40494),d=e.i(65208),u=e.i(51950),p=e.i(38406),c=e.i(88021),m=e.i(88950),h=e.i(72379),R=e.i(37057),x=e.i(64184),f=e.i(93695);e.i(57919);var g=e.i(33119),v=e.i(75287),w=e.i(77491),E=e.i(16658),y=e.i(45942),b=e.i(13112),N=e.i(29173),C=e.i(96604);let I=C.z.object({surname:C.z.string().min(1),givenName:C.z.string().min(1),fullName:C.z.string().min(1),gender:C.z.nativeEnum(N.Gender),generation:C.z.number().int().positive(),birthDate:C.z.string().optional(),deathDate:C.z.string().optional(),fatherId:C.z.string().optional(),motherId:C.z.string().optional(),spouseIds:C.z.array(C.z.string()).optional()});async function T(e,{params:t}){try{let e=await (0,w.getServerSession)(E.authOptions);if(!e?.user?.id)return v.NextResponse.json({error:"未授权"},{status:401});let{treeId:r}=await t,{hasPermission:a}=await (0,b.checkPermission)(e.user.id,r);if(!a)return v.NextResponse.json({error:"无权访问此家族树"},{status:403});let n=await y.prisma.familyTree.findUnique({where:{id:r},select:{rootMemberId:!0}}),s=await y.prisma.familyMember.findMany({where:{treeId:r},orderBy:[{generation:"asc"},{createdAt:"asc"}]}),i=n?.rootMemberId;if(!i&&s.length>0){let e=s.find(e=>1===e.generation);e&&(i=e.id,await y.prisma.familyTree.update({where:{id:r},data:{rootMemberId:e.id}}))}return console.log("👥 GET /api/trees/[treeId]/members 返回数据:",{treeId:r,userId:e.user.id,membersCount:s.length,rootId:i,members:s.map(e=>({id:e.id,fullName:e.fullName,generation:e.generation}))}),v.NextResponse.json({members:s,rootId:i})}catch(e){return console.error("获取成员失败:",e),v.NextResponse.json({error:"获取成员失败"},{status:500})}}async function A(e,{params:t}){try{let r=await (0,w.getServerSession)(E.authOptions);if(!r?.user?.id)return v.NextResponse.json({error:"未授权"},{status:401});let{treeId:a}=await t,{hasPermission:n}=await (0,b.checkPermission)(r.user.id,a,N.Role.EDITOR);if(!n)return v.NextResponse.json({error:"无权限添加成员"},{status:403});let s=await e.json(),i=I.parse(s),o=await y.prisma.familyMember.create({data:{...i,treeId:a}});return await y.prisma.activityLog.create({data:{treeId:a,userId:r.user.id,action:"CREATE",entityType:"MEMBER",entityId:o.id,entityName:o.fullName}}),v.NextResponse.json({member:o},{status:201})}catch(e){if(e instanceof C.z.ZodError)return v.NextResponse.json({error:e.errors[0].message},{status:400});return console.error("创建成员失败:",e),v.NextResponse.json({error:"创建成员失败"},{status:500})}}e.s(["GET",()=>T,"POST",()=>A],50657);var P=e.i(50657);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/trees/[treeId]/members/route",pathname:"/api/trees/[treeId]/members",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/Documents/go-new/chinese-family-tree/app/api/trees/[treeId]/members/route.ts",nextConfigOutput:"",userland:P}),{workAsyncStorage:O,workUnitAsyncStorage:S,serverHooks:k}=j;function M(){return(0,a.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:S})}async function q(e,t,a){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/trees/[treeId]/members/route";v=v.replace(/\/index$/,"")||"/";let w=await j.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,params:y,nextConfig:b,parsedUrl:N,isDraftMode:C,prerenderManifest:I,routerServerContext:T,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,resolvedPathname:O,clientReferenceManifest:S,serverActionsManifest:k}=w,M=(0,l.normalizeAppPath)(v),q=!!(I.dynamicRoutes[M]||I.routes[O]),_=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,N,!1):t.end("This page could not be found"),null);if(q&&!C){let e=!!I.routes[O],t=I.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await _();throw new f.NoFallbackError}}let D=null;!q||j.isDev||C||(D="/index"===(D=O)?"/":D);let H=!0===j.isDev||!q,U=q&&!H;k&&S&&(0,i.setReferenceManifestsSingleton)({page:v,clientReferenceManifest:S,serverActionsManifest:k,serverModuleMap:(0,o.createServerModuleMap)({serverActionsManifest:k})});let z=e.method||"GET",F=(0,s.getTracer)(),$=F.getActiveScopeSpan(),K={params:y,prerenderManifest:I,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>j.onRequestError(e,t,a,T)},sharedContext:{buildId:E}},B=new d.NodeNextRequest(e),G=new d.NodeNextResponse(t),L=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>j.handle(L,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==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=`${z} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${z} ${v}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&A&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!q)return await (0,m.sendResponse)(B,G,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:g.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 j.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},T),t}},u=await j.handleResponse({req:e,nextConfig:b,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!q)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.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"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&q||p.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,R.getCacheControlHeader)(u.cacheControl)),await (0,m.sendResponse)(B,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${z} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":z,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})}),q)throw t;return await (0,m.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>q,"patchFetch",()=>M,"routeModule",()=>j,"serverHooks",()=>k,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>S],48822)}];
//# sourceMappingURL=%5Broot-of-the-server%5D__eaa9716f._.js.map