3 lines
12 KiB
JavaScript
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"))},13112,e=>{"use strict";var t=e.i(45942),r=e.i(29173);async function a(e,i,n=r.Role.VIEWER){if(await t.prisma.familyTree.findFirst({where:{id:i,ownerId:e}}))return{hasPermission:!0,role:r.Role.OWNER};let s=await t.prisma.treeCollaborator.findFirst({where:{treeId:i,userId:e}});if(!s)return{hasPermission:!1,role:null};let o={[r.Role.OWNER]:3,[r.Role.EDITOR]:2,[r.Role.VIEWER]:1};return{hasPermission:o[s.role]>=o[n],role:s.role}}e.s(["checkPermission",()=>a])},48822,e=>{"use strict";var t=e.i(25785),r=e.i(40895),a=e.i(18598),i=e.i(42046),n=e.i(44631),s=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),f=e.i(37057),g=e.i(64184),R=e.i(93695);e.i(57919);var w=e.i(33119),x=e.i(75287),y=e.i(77491),v=e.i(16658),I=e.i(45942),E=e.i(13112),b=e.i(29173),N=e.i(96604);let z=N.z.object({surname:N.z.string().min(1),givenName:N.z.string().min(1),fullName:N.z.string().min(1),gender:N.z.nativeEnum(b.Gender),generation:N.z.number().int().positive(),generationName:N.z.string().optional(),courtesyName:N.z.string().optional(),artName:N.z.string().optional(),posthumousName:N.z.string().optional(),rank:N.z.number().optional(),birthDate:N.z.string().optional(),deathDate:N.z.string().optional(),isLunarDate:N.z.boolean().optional(),ancestralHome:N.z.string().optional(),birthPlace:N.z.string().optional(),burialPlace:N.z.string().optional(),phone:N.z.string().optional(),telephone:N.z.string().optional(),email:N.z.string().optional(),address:N.z.string().optional(),fatherId:N.z.string().optional(),motherId:N.z.string().optional(),spouseIds:N.z.array(N.z.string()).optional(),childrenIds:N.z.array(N.z.string()).optional(),spouseFatherName:N.z.string().optional(),spouseMotherName:N.z.string().optional(),bio:N.z.string().optional(),tags:N.z.array(N.z.string()).optional(),avatarUrl:N.z.string().optional(),avatarImageId:N.z.string().optional(),photoIds:N.z.array(N.z.string()).optional()});async function C(e,{params:t}){try{let e=await (0,y.getServerSession)(v.authOptions);if(!e?.user?.id)return x.NextResponse.json({error:"未授权"},{status:401});let{treeId:r}=await t,{hasPermission:a}=await (0,E.checkPermission)(e.user.id,r);if(!a)return x.NextResponse.json({error:"无权访问此家族树"},{status:403});let i=await I.prisma.familyTree.findUnique({where:{id:r},select:{rootMemberId:!0}}),n=await I.prisma.familyMember.findMany({where:{treeId:r},orderBy:[{generation:"asc"},{createdAt:"asc"}]}),s=i?.rootMemberId;if(!s&&n.length>0){let e=n.find(e=>1===e.generation);e&&(s=e.id,await I.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:n.length,rootId:s,members:n.map(e=>({id:e.id,fullName:e.fullName,generation:e.generation}))}),x.NextResponse.json({members:n,rootId:s})}catch(e){return console.error("获取成员失败:",e),x.NextResponse.json({error:"获取成员失败"},{status:500})}}async function M(e,{params:t}){try{let r=await (0,y.getServerSession)(v.authOptions);if(!r?.user?.id)return x.NextResponse.json({error:"未授权"},{status:401});let{treeId:a}=await t,{hasPermission:i}=await (0,E.checkPermission)(r.user.id,a,b.Role.EDITOR);if(!i)return x.NextResponse.json({error:"无权限添加成员"},{status:403});let n=await e.json(),s=z.parse(n),o=await I.prisma.familyMember.create({data:{...s,treeId:a}});if(s.spouseIds&&s.spouseIds.length>0)for(let e of s.spouseIds){let t=await I.prisma.familyMember.findUnique({where:{id:e}});t&&!t.spouseIds.includes(o.id)&&await I.prisma.familyMember.update({where:{id:e},data:{spouseIds:[...t.spouseIds,o.id]}})}if(s.fatherId){let e=await I.prisma.familyMember.findUnique({where:{id:s.fatherId}});e&&!e.childrenIds.includes(o.id)&&await I.prisma.familyMember.update({where:{id:s.fatherId},data:{childrenIds:[...e.childrenIds,o.id]}})}if(s.motherId){let e=await I.prisma.familyMember.findUnique({where:{id:s.motherId}});e&&!e.childrenIds.includes(o.id)&&await I.prisma.familyMember.update({where:{id:s.motherId},data:{childrenIds:[...e.childrenIds,o.id]}})}if(s.childrenIds&&s.childrenIds.length>0)for(let e of s.childrenIds){let t=await I.prisma.familyMember.findUnique({where:{id:e}});t&&("MALE"!==s.gender||t.fatherId?"FEMALE"!==s.gender||t.motherId||await I.prisma.familyMember.update({where:{id:e},data:{motherId:o.id}}):await I.prisma.familyMember.update({where:{id:e},data:{fatherId:o.id}}))}return await I.prisma.activityLog.create({data:{treeId:a,userId:r.user.id,action:"CREATE",entityType:"MEMBER",entityId:o.id,entityName:o.fullName}}),x.NextResponse.json({member:o},{status:201})}catch(e){if(e instanceof N.z.ZodError)return x.NextResponse.json({error:e.errors[0].message},{status:400});return console.error("创建成员失败:",e),x.NextResponse.json({error:"创建成员失败"},{status:500})}}e.s(["GET",()=>C,"POST",()=>M],50657);var T=e.i(50657);let A=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:T}),{workAsyncStorage:P,workUnitAsyncStorage:j,serverHooks:O}=A;function q(){return(0,a.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:j})}async function k(e,t,a){A.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/trees/[treeId]/members/route";x=x.replace(/\/index$/,"")||"/";let y=await A.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:v,params:I,nextConfig:E,parsedUrl:b,isDraftMode:N,prerenderManifest:z,routerServerContext:C,isOnDemandRevalidate:M,revalidateOnlyGenerated:T,resolvedPathname:P,clientReferenceManifest:j,serverActionsManifest:O}=y,q=(0,l.normalizeAppPath)(x),k=!!(z.dynamicRoutes[q]||z.routes[P]),S=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,b,!1):t.end("This page could not be found"),null);if(k&&!N){let e=!!z.routes[P],t=z.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await S();throw new R.NoFallbackError}}let U=null;!k||A.isDev||N||(U="/index"===(U=P)?"/":U);let _=!0===A.isDev||!k,D=k&&!_;O&&j&&(0,s.setReferenceManifestsSingleton)({page:x,clientReferenceManifest:j,serverActionsManifest:O,serverModuleMap:(0,o.createServerModuleMap)({serverActionsManifest:O})});let H=e.method||"GET",F=(0,n.getTracer)(),L=F.getActiveScopeSpan(),$={params:I,prerenderManifest:z,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:_,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>A.onRequestError(e,t,a,C)},sharedContext:{buildId:v}},K=new d.NodeNextRequest(e),B=new d.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let s=async e=>A.handle(G,$).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=`${H} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${x}`)}),o=!!(0,i.getRequestMeta)(e,"minimalMode"),l=async i=>{var n,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&M&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!k)return await (0,m.sendResponse)(K,B,n,$.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:w.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 A.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:M})},C),t}},u=await A.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:M,revalidateOnlyGenerated:T,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!k)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==w.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",M?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),N&&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(g.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)(K,B,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};L?await l(L):await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${H} ${x}`,kind:n.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:M})}),k)throw t;return await (0,m.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>q,"routeModule",()=>A,"serverHooks",()=>O,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>j],48822)}];
|
|
|
|
//# sourceMappingURL=%5Broot-of-the-server%5D__eaa9716f._.js.map
|