/home/techb158/balavpn.abdallabala.com/.next/server/chunks
Edit: /home/techb158/balavpn.abdallabala.com/.next/server/chunks/9978.js (10305B)
exports.id=9978,exports.ids=[9978],exports.modules={3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},8763:a=>{"use strict";let b={pilot:{users:10,projects:5,reportsPerMonth:100,integrations:4,storageMb:1024},starter:{users:5,projects:3,reportsPerMonth:25,integrations:1,storageMb:512},team:{users:25,projects:20,reportsPerMonth:500,integrations:4,storageMb:10240},enterprise:{users:1e3,projects:1e3,reportsPerMonth:1e5,integrations:100,storageMb:102400}},c=["TRIALING","ACTIVE"];function d(a){return b[a]||b.starter}function e(a,b){return(!b||"SUSPENDED"!==b.status)&&!!a&&(!!a.adminOverride||c.includes(a.status))}a.exports={PLAN_LIMITS:b,ACTIVE_SUBSCRIPTION_STATUSES:c,getPlanLimits:d,buildEntitlements:function(a,b){let c=d(a?a.planCode:b?b.planCode:"starter");return{active:e(a,b),source:a?a.source:"MANUAL",status:a?a.status:"SUSPENDED",planCode:a?a.planCode:b?b.planCode:"starter",limits:{users:a&&a.userLimit?a.userLimit:c.users,projects:a&&a.projectLimit?a.projectLimit:c.projects,reportsPerMonth:a&&a.reportLimitMonthly?a.reportLimitMonthly:c.reportsPerMonth,integrations:a&&a.integrationLimit?a.integrationLimit:c.integrations,storageMb:a&&a.storageMbLimit?a.storageMbLimit:c.storageMb}}},subscriptionAllowsAccess:e,assertWithinLimit:function(a,b,c,d=1){if(!a.active){let a=Error("Subscription is not active.");throw a.status=402,a}let e=a.limits[b];if(void 0!==e&&c+d>e){let a=Error(`Plan limit exceeded for ${b}.`);throw a.status=402,a.details={metric:b,currentCount:c,increment:d,limit:e},a}}}},12773:(a,b,c)=>{"use strict";let{prisma:d}=c(17964);async function e(a){let b=(a.headers.get("cookie")||"").match(/cosmic_session=([^;]+)/);if(b){let a=await d.session.findUnique({where:{token:b[1]},include:{user:{include:{memberships:{where:{status:"ACTIVE"},include:{role:!0,organization:!0}}}}}});if(a&&a.expiresAt>new Date)return a.user;a&&await d.session.delete({where:{id:a.id}}).catch(()=>{})}let c=a.headers.get("x-cosmic-user-email")||process.env.COSMIC_BOOTSTRAP_EMAIL||"owner@cosmic.local",e=await d.user.findUnique({where:{email:c},include:{memberships:{where:{status:"ACTIVE"},include:{role:!0,organization:!0}}}});if(!e){let a=Error(`Unknown actor: ${c}`);throw a.status=401,a}return e}async function f(a,b,d="project:read"){let{hasPermission:g}=c(15707),h=await e(a),i=h.memberships.find(a=>a.organizationId===b&&"ACTIVE"===a.status);if(!i){let a=Error("Actor is not a member of this organization.");throw a.status=403,a}if(!g(i.role.permissions,d)){let a=Error(`Permission denied: ${d}`);throw a.status=403,a}return{actor:h,membership:i,organization:i.organization}}a.exports={getActorFromRequest:e,requireOrganizationActor:f}},15707:a=>{"use strict";let b={owner:["*"],admin:["organization:manage","workspace:manage","project:read","project:write","risk:read","risk:write","risk:delete","mitigation:write","gate:evaluate","gate:review","report:export","integration:manage","billing:manage","audit:read"],project_manager:["project:read","project:write","risk:read","risk:write","mitigation:write","gate:evaluate","report:export","integration:read","audit:read"],risk_owner:["project:read","risk:read","risk:write","mitigation:write","gate:read"],governance_reviewer:["project:read","risk:read","gate:evaluate","gate:review","report:export","audit:read"],legal_ethics_reviewer:["project:read","risk:read","mitigation:write","gate:review","report:export","audit:read"],integration_admin:["project:read","integration:read","integration:manage","integration:sync","oauth:manage","audit:read"],viewer:["project:read","risk:read","gate:read","integration:read","report:export"],consultant:["workspace:manage","project:read","project:write","risk:read","risk:write","mitigation:write","gate:evaluate","gate:review","report:export","audit:read"]};function c(a){return Array.isArray(a)?Array.from(new Set(a.filter(Boolean))):b[a]?b[a].slice():[]}function d(a,b){let d=c(a);return d.includes("*")||d.includes(b)}function e(a,b){return!!a&&"ACTIVE"===a.status&&(!a.workspaceScope||0===a.workspaceScope.length||a.workspaceScope.includes(b))}a.exports={PERMISSIONS:["organization:manage","workspace:manage","project:read","project:write","risk:read","risk:write","risk:delete","mitigation:write","gate:read","gate:evaluate","gate:review","report:export","integration:read","integration:manage","integration:sync","oauth:manage","billing:manage","audit:read"],ROLE_PERMISSIONS:b,resolvePermissions:c,hasPermission:d,assertPermission:function(a,b){if(!d(a,b)){let a=Error(`Permission denied: ${b}`);throw a.status=403,a}},canAccessWorkspace:e,canMutateRisk:function(a){return e(a,"workspace-a")&&d(a.permissions||a.role?.permissions,"risk:write")}}},17964:(a,b,c)=>{"use strict";let{PrismaClient:d}=c(96330);a.exports={prisma:globalThis.__cosmicPrisma||new d}},22488:a=>{"use strict";function b(a,c=200,d={}){return Response.json(a,{status:c,headers:Object.assign({"Cache-Control":"no-store"},d)})}a.exports={jsonResponse:b,errorResponse:function(a){return b({error:a.message||"Unexpected error",details:a.details||void 0},a.status||500)},parseJson:async function(a){let b=await a.text();return b?JSON.parse(b):{}}}},23518:(a,b,c)=>{"use strict";let{prisma:d}=c(17964);a.exports={writeAuditEvent:async function({organizationId:a,workspaceId:b=null,projectId:c=null,actorUserId:e=null,entityType:f,entityId:g,action:h,beforeJson:i=null,afterJson:j=null,request:k=null}){return d.auditEvent.create({data:{organizationId:a,workspaceId:b,projectId:c,actorUserId:e,entityType:f,entityId:g,action:h,beforeJson:i,afterJson:j,ipAddress:k&&k.headers.get("x-forwarded-for")||null,userAgent:k&&k.headers.get("user-agent")||null}})}}},78335:()=>{},79316:(a,b,c)=>{"use strict";let{prisma:d}=c(17964),{buildEntitlements:e,assertWithinLimit:f}=c(8763),{writeAuditEvent:g}=c(23518);async function h(a){return d.subscription.findFirst({where:{organizationId:a},orderBy:{createdAt:"desc"}})}async function i({workspace:a,actor:b,payload:c,request:i}){f(e(await h(a.organizationId),await d.organization.findUnique({where:{id:a.organizationId}})),"projects",await d.project.count({where:{workspace:{organizationId:a.organizationId}}}),1);let j=await d.project.create({data:{workspaceId:a.id,name:c.name,subtitle:c.subtitle||"COSMIC AI risk measurement workspace",projectType:c.projectType||"AI-Enabler",currentLifecyclePhase:c.currentLifecyclePhase||"Needs identification",riskAppetite:Number(c.riskAppetite||50),assessmentDate:c.assessmentDate?new Date(c.assessmentDate):new Date,status:"Active",ownerDisplayName:c.ownerDisplayName||b.displayName,description:c.description||"",thresholds:c.thresholds||{},reviews:c.reviews||{}}});return await g({organizationId:a.organizationId,workspaceId:a.id,projectId:j.id,actorUserId:b.id,entityType:"Project",entityId:j.id,action:"create",afterJson:j,request:i}),j}a.exports={getLatestSubscription:h,listWorkspaceProjects:async function(a){return d.project.findMany({where:{workspaceId:a},orderBy:{createdAt:"desc"}})},createProject:i,getProject:async function(a){let b=await d.project.findUnique({where:{id:a},include:{lifecyclePhases:{orderBy:{sequence:"asc"}},risks:{include:{mitigations:!0,evidence:!0}},indicators:!0,experiments:{include:{metrics:!0}}}});if(!b){let b=Error(`Project not found: ${a}`);throw b.status=404,b}return b},updateProject:async function({projectScope:a,actor:b,payload:c,request:e}){let f=await d.project.findUnique({where:{id:a.project.id}}),h=await d.project.update({where:{id:a.project.id},data:{name:c.name??f.name,subtitle:c.subtitle??f.subtitle,projectType:c.projectType??f.projectType,currentLifecyclePhase:c.currentLifecyclePhase??f.currentLifecyclePhase,riskAppetite:void 0!==c.riskAppetite?Number(c.riskAppetite):f.riskAppetite,status:c.status??f.status,ownerDisplayName:c.ownerDisplayName??f.ownerDisplayName,description:c.description??f.description,thresholds:c.thresholds??f.thresholds,reviews:c.reviews??f.reviews}});return await g({organizationId:a.organization.id,workspaceId:a.project.workspaceId,projectId:a.project.id,actorUserId:b.id,entityType:"Project",entityId:h.id,action:"update",beforeJson:f,afterJson:h,request:e}),h},deleteProject:async function({projectScope:a,projectId:b,actor:c,request:e}){let f=await d.project.findUnique({where:{id:b}});if(!f){let a=Error(`Project not found: ${b}`);throw a.status=404,a}await g({organizationId:a.organization.id,workspaceId:a.project.workspaceId,projectId:b,actorUserId:c.id,entityType:"Project",entityId:b,action:"delete",beforeJson:f,request:e}).catch(()=>{});let h=(await d.experiment.findMany({where:{projectId:b},select:{id:!0}})).map(a=>a.id);await d.modelMetric.deleteMany({where:{experimentId:{in:h}}}),await d.auditEvent.deleteMany({where:{projectId:b}}),await d.reportExport.deleteMany({where:{projectId:b}}),await d.externalWorkItemMapping.deleteMany({where:{projectId:b}}),await d.integrationSyncRun.deleteMany({where:{projectId:b}});let i=(await d.gateEvaluation.findMany({where:{projectId:b},select:{id:!0}})).map(a=>a.id);await d.gateDecision.deleteMany({where:{gateId:{in:i}}}),await d.gateCriterion.deleteMany({where:{gateId:{in:i}}}),await d.gateEvaluation.deleteMany({where:{projectId:b}}),await d.evidence.deleteMany({where:{projectId:b}});let j=(await d.risk.findMany({where:{projectId:b},select:{id:!0}})).map(a=>a.id);return await d.mitigation.deleteMany({where:{riskId:{in:j}}}),await d.risk.deleteMany({where:{projectId:b}}),await d.experiment.deleteMany({where:{projectId:b}}),await d.lifecyclePhase.deleteMany({where:{projectId:b}}),await d.indicator.deleteMany({where:{projectId:b}}),await d.project.delete({where:{id:b}}),{deleted:!0}}}},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};