eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.06 kB
JavaScript
const SYSTEM_ENVIRONMENTS=new Set([`development`,`preview`,`production`]);function environmentSetIncludes(t,n){return t.slugs?.includes(n)===!0?!0:t.preset===`all-custom`&&!SYSTEM_ENVIRONMENTS.has(n)}function ruleIncludes(e,t,n){return environmentSetIncludes(e.from,t)&&environmentSetIncludes(e.to,n)}function environmentRule(e,t){return{from:{slugs:[e]},to:{slugs:[t]}}}function defaultRules(e){let t=[environmentRule(`production`,`production`),environmentRule(`preview`,`preview`),environmentRule(`development`,`preview`)];for(let n of e.customEnvironmentSlugs)t.push(environmentRule(n,n));return t}function planTrustedSourceAccess(e){let t=e.trustedSources?.projects?.[e.project.projectId],n=t?.customAllow??defaultRules(e.project);if(n.some(t=>ruleIncludes(t,`development`,e.targetEnvironment)))return{kind:`unchanged`};let r=[...n,environmentRule(`development`,e.targetEnvironment)];return{kind:`update`,trustedSources:{...e.trustedSources,projects:{...e.trustedSources?.projects,[e.project.projectId]:{...t,customAllow:r}}}}}export{planTrustedSourceAccess};