eslint-plugin-turbo 1.10.4 → 1.10.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -81,7 +81,7 @@ ${e.message}`:D,m=[v,u,p].filter(Boolean).join(`
81
81
  `+t.slice(i,p),i=p+1),u=r;return e+=`
82
82
  `,t.length-i>l&&u>i?e+=t.slice(i,u)+`
83
83
  `+t.slice(u+1):e+=t.slice(i),e.slice(1)}function dp(t){for(var l="",n=0,s,i=0;i<t.length;n>=65536?i+=2:i++)n=je(t,i),s=Ut[n],!s&&He(n)?(l+=t[i],n>=65536&&(l+=t[i+1])):l+=s||sp(n);return l}function mp(t,l,n){var s="",i=t.tag,p,u,r;for(p=0,u=n.length;p<u;p+=1)r=n[p],t.replacer&&(r=t.replacer.call(n,String(p),r)),(ne(t,l,r,!1,!1)||typeof r>"u"&&ne(t,l,null,!1,!1))&&(s!==""&&(s+=","+(t.condenseFlow?"":" ")),s+=t.dump);t.tag=i,t.dump="["+s+"]"}function Li(t,l,n,s){var i="",p=t.tag,u,r,e;for(u=0,r=n.length;u<r;u+=1)e=n[u],t.replacer&&(e=t.replacer.call(n,String(u),e)),(ne(t,l+1,e,!0,!0,!1,!0)||typeof e>"u"&&ne(t,l+1,null,!0,!0,!1,!0))&&((!s||i!=="")&&(i+=Zr(t,l)),t.dump&&Me===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=p,t.dump=i||"[]"}function yp(t,l,n){var s="",i=t.tag,p=Object.keys(n),u,r,e,f,a;for(u=0,r=p.length;u<r;u+=1)a="",s!==""&&(a+=", "),t.condenseFlow&&(a+='"'),e=p[u],f=n[e],t.replacer&&(f=t.replacer.call(n,e,f)),ne(t,l,e,!1,!1)&&(t.dump.length>1024&&(a+="? "),a+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),ne(t,l,f,!1,!1)&&(a+=t.dump,s+=a));t.tag=i,t.dump="{"+s+"}"}function gp(t,l,n,s){var i="",p=t.tag,u=Object.keys(n),r,e,f,a,c,o;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new qt("sortKeys must be a boolean or a function");for(r=0,e=u.length;r<e;r+=1)o="",(!s||i!=="")&&(o+=Zr(t,l)),f=u[r],a=n[f],t.replacer&&(a=t.replacer.call(n,f,a)),ne(t,l+1,f,!0,!0,!0)&&(c=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,c&&(t.dump&&Me===t.dump.charCodeAt(0)?o+="?":o+="? "),o+=t.dump,c&&(o+=Zr(t,l)),ne(t,l+1,a,!0,c)&&(t.dump&&Me===t.dump.charCodeAt(0)?o+=":":o+=": ",o+=t.dump,i+=o));t.tag=p,t.dump=i||"{}"}function Ii(t,l,n){var s,i,p,u,r,e;for(i=n?t.explicitTypes:t.implicitTypes,p=0,u=i.length;p<u;p+=1)if(r=i[p],(r.instanceOf||r.predicate)&&(!r.instanceOf||typeof l=="object"&&l instanceof r.instanceOf)&&(!r.predicate||r.predicate(l))){if(n?r.multi&&r.representName?t.tag=r.representName(l):t.tag=r.tag:t.tag="?",r.represent){if(e=t.styleMap[r.tag]||r.defaultStyle,Es.call(r.represent)==="[object Function]")s=r.represent(l,e);else if(_s.call(r.represent,e))s=r.represent[e](l,e);else throw new qt("!<"+r.tag+'> tag resolver accepts not "'+e+'" style');t.dump=s}return!0}return!1}function ne(t,l,n,s,i,p,u){t.tag=null,t.dump=n,Ii(t,n,!1)||Ii(t,n,!0);var r=Es.call(t.dump),e=s,f;s&&(s=t.flowLevel<0||t.flowLevel>l);var a=r==="[object Object]"||r==="[object Array]",c,o;if(a&&(c=t.duplicates.indexOf(n),o=c!==-1),(t.tag!==null&&t.tag!=="?"||o||t.indent!==2&&l>0)&&(i=!1),o&&t.usedDuplicates[c])t.dump="*ref_"+c;else{if(a&&o&&!t.usedDuplicates[c]&&(t.usedDuplicates[c]=!0),r==="[object Object]")s&&Object.keys(t.dump).length!==0?(gp(t,l,t.dump,i),o&&(t.dump="&ref_"+c+t.dump)):(yp(t,l,t.dump),o&&(t.dump="&ref_"+c+" "+t.dump));else if(r==="[object Array]")s&&t.dump.length!==0?(t.noArrayIndent&&!u&&l>0?Li(t,l-1,t.dump,i):Li(t,l,t.dump,i),o&&(t.dump="&ref_"+c+t.dump)):(mp(t,l,t.dump),o&&(t.dump="&ref_"+c+" "+t.dump));else if(r==="[object String]")t.tag!=="?"&&fp(t,t.dump,l,p,e);else{if(r==="[object Undefined]"||t.skipInvalid)return!1;throw new qt("unacceptable kind of an object to dump "+r)}t.tag!==null&&t.tag!=="?"&&(f=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?f="!"+f:f.slice(0,18)==="tag:yaml.org,2002:"?f="!!"+f.slice(18):f="!<"+f+">",t.dump=f+" "+t.dump)}return!0}function bp(t,l){var n=[],s=[],i,p;for(Jr(t,n,s),i=0,p=s.length;i<p;i+=1)l.duplicates.push(n[s[i]]);l.usedDuplicates=new Array(p)}function Jr(t,l,n){var s,i,p;if(t!==null&&typeof t=="object")if(i=l.indexOf(t),i!==-1)n.indexOf(i)===-1&&n.push(i);else if(l.push(t),Array.isArray(t))for(i=0,p=t.length;i<p;i+=1)Jr(t[i],l,n);else for(s=Object.keys(t),i=0,p=s.length;i<p;i+=1)Jr(t[s[i]],l,n)}function vp(t,l){l=l||{};var n=new up(l);n.noRefs||bp(t,n);var s=t;return n.replacer&&(s=n.replacer.call({"":s},"",s)),ne(n,0,s,!0,!0)?n.dump+`
84
- `:""}var Ep=vp,_p={dump:Ep};function fn(t,l){return function(){throw new Error("Function yaml."+t+" is removed in js-yaml 4. Use yaml."+l+" instead, which is now safe by default.")}}var wp=$t,Dp=Wi,Sp=Zi,Ap=es,Cp=rs,xp=an,Fp=vs.load,kp=vs.loadAll,Op=_p.dump,Rp=qt,Tp={binary:us,float:ts,map:Yi,null:Xi,pairs:ls,set:cs,timestamp:ss,bool:Ji,int:Qi,merge:os,omap:as,seq:Ki,str:Vi},Bp=fn("safeLoad","load"),Pp=fn("safeLoadAll","loadAll"),Lp=fn("safeDump","dump"),Ip={Type:wp,Schema:Dp,FAILSAFE_SCHEMA:Sp,JSON_SCHEMA:Ap,CORE_SCHEMA:Cp,DEFAULT_SCHEMA:xp,load:Fp,loadAll:kp,dump:Op,YAMLException:Rp,types:Tp,safeLoad:Bp,safeLoadAll:Pp,safeDump:Lp},jp=Ip,Np=Ot(mh());var Mp="package.json";var Vr={};function $p(t){try{if(Se.default.existsSync(me.default.join(t,"pnpm-workspace.yaml"))){let l=jp.load(Se.default.readFileSync(me.default.join(t,"pnpm-workspace.yaml"),"utf8"));return(l==null?void 0:l.packages)||[]}else{let l=JSON.parse(Se.default.readFileSync(me.default.join(t,"package.json"),"utf8"));return l!=null&&l.workspaces?"packages"in(l==null?void 0:l.workspaces)?l.workspaces.packages||[]:(l==null?void 0:l.workspaces)||[]:[]}}catch{return[]}}function pn(t,l){var n;let s=Gr(t,l),i=[],p=(n=l==null?void 0:l.cache)!=null?n:!0;if(p&&t&&Vr[t])return Vr[t];if(s){let u=$p(s).map(r=>`${r}/package.json`);(0,Np.sync)([Mp,...u],{cwd:s,onlyFiles:!0,followSymbolicLinks:!1,suppressErrors:!0}).map(r=>me.default.join(s,r)).forEach(r=>{try{let e=Se.default.readFileSync(r,"utf8"),f=JSON.parse(e).name,a=me.default.dirname(r),c=a===s,o=me.default.join(a,"turbo.json"),d=null,h;try{if(d=Se.default.readFileSync(o,"utf8"),h=Ur.parse(d),h){if(c){if("extends"in h)return}else if(!("extends"in h))return}}catch{}i.push({workspaceName:f,workspacePath:a,isWorkspaceRoot:c,turboConfig:h})}catch(e){console.warn(e)}})}return p&&t&&(Vr[t]=i),i}function Ls(t){if(!t)return[];let l=t.filter(n=>n.startsWith("$")).map(n=>n.slice(1));switch(l.length){case 0:return[];case 1:return l;default:return[...new Set(l)].sort()}}function Is(t){if(!t)return[];switch(t.length){case 0:return[];case 1:return[t[0]];default:return[...new Set(t)].sort()}}function js(t){if(!t)return null;switch(t.length){case 0:return[];case 1:return[t[0]];default:return[...new Set(t)].sort()}}function Ns(t,l){if(!l)return null;let n=[];return l.reduce((s,i)=>{let p=Ts.default.createHash("sha1");try{let u=Bs.default.readFileSync(Ps.default.join(t,i));p.update(u),s.push([i,p.digest("hex")])}catch{}return s},n),{filePaths:l,hashes:Object.fromEntries(n)}}function Hp(t,l){return{legacyConfig:Ls(l.globalDependencies),env:Is(l.globalEnv),passThroughEnv:js(l.globalPassThroughEnv),dotEnv:Ns(t,l.globalDotEnv)}}function dn(t,l){return{legacyConfig:Ls(l.dependsOn),env:Is(l.env),passThroughEnv:js(l.passThroughEnv),dotEnv:Ns(t,l.dotEnv)}}var fr=t=>!1;function mn(t,l){let n={legacyConfig:fr,env:fr,passThroughEnv:fr,dotEnv:fr};if(t.legacyConfig.length>0){let s=new Set(t.legacyConfig);n.legacyConfig=i=>s.has(i)}if(t.env.length>0){let s=mr(t.env);n.env=i=>s.inclusions.test(i)&&!s.exclusions.test(i)}if(t.passThroughEnv&&t.passThroughEnv.length>0){let s=mr(t.passThroughEnv);n.passThroughEnv=i=>s.inclusions.test(i)&&!s.exclusions.test(i)}if(t.dotEnv&&t.dotEnv.filePaths.length>0){let s=Sn(l,t.dotEnv);n.dotEnv=i=>s.has(i)}return n}function yn(t){return[t.legacyConfig,t.env,t.passThroughEnv,t.dotEnv]}function Rs(t){if(t.length===0)throw new Error("Invalid task name found in turbo.json.");let l=t.indexOf("#");if(l===-1)return{workspaceName:null,scriptName:t};if(l!==t.lastIndexOf("#"))throw new Error("Invalid task name found in turbo.json.");let[n,s]=t.split("#");return{workspaceName:n,scriptName:s}}function Ms(t,l){let n=t.filter(s=>l.startsWith(s.workspacePath)).sort((s,i)=>s.workspacePath>i.workspacePath?-1:s===i?0:1);return n.length>0?n[0]:null}var xe=class{constructor(l){this.cwd=l,this.allConfigs=pn(l),this.projectRoot=this.allConfigs.find(n=>n.isWorkspaceRoot),this.projectWorkspaces=this.allConfigs.filter(n=>!n.isWorkspaceRoot),this._key=this.generateKey(),this._test=this.generateTestConfig()}valid(){return this.allConfigs.length>0}generateKey(){let l={legacyConfig:[],env:[],passThroughEnv:null,dotEnv:null},n={},s={};if(this.projectRoot&&this.projectRoot.turboConfig&&!("extends"in this.projectRoot)){let i=this.projectRoot;l=Hp(this.projectRoot.workspacePath,this.projectRoot.turboConfig),Object.entries(this.projectRoot.turboConfig.pipeline).forEach(([p,u])=>{let{workspaceName:r,scriptName:e}=Rs(p);r?(s[r]=s[r]||{},s[r][e]=dn(i.workspacePath,u)):n[e]=dn(i.workspacePath,u)})}return this.projectWorkspaces.forEach(i=>{!i.turboConfig||Object.entries(i.turboConfig.pipeline).forEach(([p,u])=>{let{workspaceName:r,scriptName:e}=Rs(p);if(r)throw new Error("May not specify workspace name in non-root turbo.json");let f=i.workspaceName;s[f]=s[f]||{},s[f][e]=dn(i.workspacePath,u)})}),{global:l,globalTasks:n,workspaceTasks:s}}getWorkspacePath(l){var n;return(n=this.projectWorkspaces.find(s=>s.workspaceName===l))==null?void 0:n.workspacePath}generateTestConfig(){var l;return{global:mn(this._key.global,(l=this.projectRoot)==null?void 0:l.workspacePath),globalTasks:Object.fromEntries(Object.entries(this._key.globalTasks).map(([n,s])=>{var i;return[n,mn(s,(i=this.projectRoot)==null?void 0:i.workspacePath)]})),workspaceTasks:Object.fromEntries(Object.entries(this._key.workspaceTasks).map(([n,s])=>{let i=this.getWorkspacePath(n);return[n,Object.fromEntries(Object.entries(s).map(([p,u])=>[p,mn(u,i)]))]}))}}key(){return this._key}test(l,n){let s=[yn(this._test.global),...Object.values(this._test.globalTasks).map(i=>yn(i))];return l&&s.push(...Object.values(this._test.workspaceTasks[l]).map(i=>yn(i))),s.flat().some(i=>i(n))}};var Up={type:"problem",docs:{description:"Do not allow the use of `process.env` without including the env key in any turbo.json",category:"Configuration Issues",recommended:!0,url:`https://github.com/vercel/turbo/tree/main/packages/eslint-plugin-turbo/docs/rules/${ge.noUndeclaredEnvVars}.md`},schema:[{type:"object",default:{},additionalProperties:!1,properties:{cwd:{require:!1,type:"string"},allowList:{default:[],type:"array",items:{type:"string"}}}}]};function Gp(t,l){var n;if((n=l==null?void 0:l[0])!=null&&n.cwd)return l[0].cwd;if(t)return t;if(typeof process=="object")return process.cwd()}function qp(t){var o;let{options:l,getPhysicalFilename:n}=t,s=((o=l==null?void 0:l[0])==null?void 0:o.allowList)||[],i=[];s.forEach(d=>{try{i.push(new RegExp(d))}catch{console.error(`Unable to convert "${d}" to regex`)}});let p=Gp(t.getCwd?t.getCwd():void 0,l),u=new xe(p);if(!u.valid())return{};let r=n(),e=u.projectWorkspaces.some(d=>!!d.turboConfig),f=Ms(u.projectWorkspaces,r),a=(d,h)=>{if(!h)return{};if(i.some(b=>b.test(h)))return{};if(u.test(f==null?void 0:f.workspaceName,h))return{};{let b=`{{ envKey }} is not listed as a dependency in ${e?"root turbo.json":"turbo.json"}`;f&&f.turboConfig&&(p?b=`{{ envKey }} is not listed as a dependency in the root turbo.json or workspace (${$s.default.relative(p,f.workspacePath)}) turbo.json`:b="{{ envKey }} is not listed as a dependency in the root turbo.json or workspace turbo.json"),t.report({node:d,message:b,data:{envKey:h}})}},c=d=>"computed"in d.parent?d.parent.computed:!1;return{MemberExpression(d){var h,g;if("name"in d.object&&"name"in d.property&&!c(d)){let b=d.object.name,E=d.property.name;if(b==="process"&&E==="env")if("id"in d.parent&&((h=d.parent.id)==null?void 0:h.type)==="ObjectPattern"){let y=d.parent.id.properties.values();Array.from(y).forEach(D=>{"key"in D&&"name"in D.key&&a(d.parent,D.key.name)})}else"property"in d.parent&&"name"in d.parent.property&&a(d.parent,(g=d.parent.property)==null?void 0:g.name)}}}}var zp={create:qp,meta:Up},Hs=zp;var Us=new xe(process.cwd()),Wp=Us.valid()?Us.key():Math.random(),Vp={turbo:{cacheKey:Wp}},Kp={settings:Vp,plugins:["turbo"],rules:{[`turbo/${ge.noUndeclaredEnvVars}`]:"error"}},Gs=Kp;var Yp={[ge.noUndeclaredEnvVars]:Hs},Zp={recommended:Gs};0&&(module.exports={configs,rules});
84
+ `:""}var Ep=vp,_p={dump:Ep};function fn(t,l){return function(){throw new Error("Function yaml."+t+" is removed in js-yaml 4. Use yaml."+l+" instead, which is now safe by default.")}}var wp=$t,Dp=Wi,Sp=Zi,Ap=es,Cp=rs,xp=an,Fp=vs.load,kp=vs.loadAll,Op=_p.dump,Rp=qt,Tp={binary:us,float:ts,map:Yi,null:Xi,pairs:ls,set:cs,timestamp:ss,bool:Ji,int:Qi,merge:os,omap:as,seq:Ki,str:Vi},Bp=fn("safeLoad","load"),Pp=fn("safeLoadAll","loadAll"),Lp=fn("safeDump","dump"),Ip={Type:wp,Schema:Dp,FAILSAFE_SCHEMA:Sp,JSON_SCHEMA:Ap,CORE_SCHEMA:Cp,DEFAULT_SCHEMA:xp,load:Fp,loadAll:kp,dump:Op,YAMLException:Rp,types:Tp,safeLoad:Bp,safeLoadAll:Pp,safeDump:Lp},jp=Ip,Np=Ot(mh());var Mp="package.json";var Vr={};function $p(t){try{if(Se.default.existsSync(me.default.join(t,"pnpm-workspace.yaml"))){let l=jp.load(Se.default.readFileSync(me.default.join(t,"pnpm-workspace.yaml"),"utf8"));return(l==null?void 0:l.packages)||[]}else{let l=JSON.parse(Se.default.readFileSync(me.default.join(t,"package.json"),"utf8"));return l!=null&&l.workspaces?"packages"in(l==null?void 0:l.workspaces)?l.workspaces.packages||[]:(l==null?void 0:l.workspaces)||[]:[]}}catch{return[]}}function pn(t,l){var n;let s=Gr(t,l),i=[],p=(n=l==null?void 0:l.cache)!=null?n:!0;if(p&&t&&Vr[t])return Vr[t];if(s){let u=$p(s).map(r=>`${r}/package.json`);(0,Np.sync)([Mp,...u],{cwd:s,onlyFiles:!0,followSymbolicLinks:!1,suppressErrors:!0}).map(r=>me.default.join(s,r)).forEach(r=>{try{let e=Se.default.readFileSync(r,"utf8"),f=JSON.parse(e).name,a=me.default.dirname(r),c=a===s,o=me.default.join(a,"turbo.json"),d=null,h;try{if(d=Se.default.readFileSync(o,"utf8"),h=Ur.parse(d),h){if(c){if("extends"in h)return}else if(!("extends"in h))return}}catch{}i.push({workspaceName:f,workspacePath:a,isWorkspaceRoot:c,turboConfig:h})}catch(e){console.warn(e)}})}return p&&t&&(Vr[t]=i),i}function Ls(t){if(!t)return[];let l=t.filter(n=>n.startsWith("$")).map(n=>n.slice(1));switch(l.length){case 0:return[];case 1:return l;default:return[...new Set(l)].sort()}}function Is(t){if(!t)return[];switch(t.length){case 0:return[];case 1:return[t[0]];default:return[...new Set(t)].sort()}}function js(t){if(!t)return null;switch(t.length){case 0:return[];case 1:return[t[0]];default:return[...new Set(t)].sort()}}function Ns(t,l){if(!l)return null;let n=[];return l.reduce((s,i)=>{let p=Ts.default.createHash("sha1");try{let u=Bs.default.readFileSync(Ps.default.join(t,i));p.update(u),s.push([i,p.digest("hex")])}catch{}return s},n),{filePaths:l,hashes:Object.fromEntries(n)}}function Hp(t,l){return{legacyConfig:Ls(l.globalDependencies),env:Is(l.globalEnv),passThroughEnv:js(l.globalPassThroughEnv),dotEnv:Ns(t,l.globalDotEnv)}}function dn(t,l){return{legacyConfig:Ls(l.dependsOn),env:Is(l.env),passThroughEnv:js(l.passThroughEnv),dotEnv:Ns(t,l.dotEnv)}}var fr=t=>!1;function mn(t,l){let n={legacyConfig:fr,env:fr,passThroughEnv:fr,dotEnv:fr};if(t.legacyConfig.length>0){let s=new Set(t.legacyConfig);n.legacyConfig=i=>s.has(i)}if(t.env.length>0){let s=mr(t.env);n.env=i=>s.inclusions.test(i)&&!s.exclusions.test(i)}if(t.passThroughEnv&&t.passThroughEnv.length>0){let s=mr(t.passThroughEnv);n.passThroughEnv=i=>s.inclusions.test(i)&&!s.exclusions.test(i)}if(t.dotEnv&&t.dotEnv.filePaths.length>0){let s=Sn(l,t.dotEnv);n.dotEnv=i=>s.has(i)}return n}function yn(t){return[t.legacyConfig,t.env,t.passThroughEnv,t.dotEnv]}function Rs(t){if(t.length===0)throw new Error("Invalid task name found in turbo.json.");let l=t.indexOf("#");if(l===-1)return{workspaceName:null,scriptName:t};if(l!==t.lastIndexOf("#"))throw new Error("Invalid task name found in turbo.json.");let[n,s]=t.split("#");return{workspaceName:n,scriptName:s}}function Ms(t,l){let n=t.filter(s=>l.startsWith(s.workspacePath)).sort((s,i)=>s.workspacePath>i.workspacePath?-1:s===i?0:1);return n.length>0?n[0]:null}var xe=class{constructor(l){this.cwd=l,this.allConfigs=pn(l),this.projectRoot=this.allConfigs.find(n=>n.isWorkspaceRoot),this.projectWorkspaces=this.allConfigs.filter(n=>!n.isWorkspaceRoot),this._key=this.generateKey(),this._test=this.generateTestConfig()}valid(){return this.allConfigs.length>0}generateKey(){let l={legacyConfig:[],env:[],passThroughEnv:null,dotEnv:null},n={},s={};if(this.projectRoot&&this.projectRoot.turboConfig&&!("extends"in this.projectRoot)){let i=this.projectRoot;l=Hp(this.projectRoot.workspacePath,this.projectRoot.turboConfig),Object.entries(this.projectRoot.turboConfig.pipeline).forEach(([p,u])=>{let{workspaceName:r,scriptName:e}=Rs(p);r?(s[r]=s[r]||{},s[r][e]=dn(i.workspacePath,u)):n[e]=dn(i.workspacePath,u)})}return this.projectWorkspaces.forEach(i=>{!i.turboConfig||Object.entries(i.turboConfig.pipeline).forEach(([p,u])=>{let{workspaceName:r,scriptName:e}=Rs(p);if(r)throw new Error("May not specify workspace name in non-root turbo.json");let f=i.workspaceName;s[f]=s[f]||{},s[f][e]=dn(i.workspacePath,u)})}),{global:l,globalTasks:n,workspaceTasks:s}}getWorkspacePath(l){var n;return(n=this.projectWorkspaces.find(s=>s.workspaceName===l))==null?void 0:n.workspacePath}generateTestConfig(){var l;return{global:mn(this._key.global,(l=this.projectRoot)==null?void 0:l.workspacePath),globalTasks:Object.fromEntries(Object.entries(this._key.globalTasks).map(([n,s])=>{var i;return[n,mn(s,(i=this.projectRoot)==null?void 0:i.workspacePath)]})),workspaceTasks:Object.fromEntries(Object.entries(this._key.workspaceTasks).map(([n,s])=>{let i=this.getWorkspacePath(n);return[n,Object.fromEntries(Object.entries(s).map(([p,u])=>[p,mn(u,i)]))]}))}}key(){return this._key}test(l,n){let s=[yn(this._test.global),...Object.values(this._test.globalTasks).map(i=>yn(i))];return l&&l in this._test.workspaceTasks&&s.push(...Object.values(this._test.workspaceTasks[l]).map(i=>yn(i))),s.flat().some(i=>i(n))}};var Up={type:"problem",docs:{description:"Do not allow the use of `process.env` without including the env key in any turbo.json",category:"Configuration Issues",recommended:!0,url:`https://github.com/vercel/turbo/tree/main/packages/eslint-plugin-turbo/docs/rules/${ge.noUndeclaredEnvVars}.md`},schema:[{type:"object",default:{},additionalProperties:!1,properties:{cwd:{require:!1,type:"string"},allowList:{default:[],type:"array",items:{type:"string"}}}}]};function Gp(t,l){var n;if((n=l==null?void 0:l[0])!=null&&n.cwd)return l[0].cwd;if(t)return t;if(typeof process=="object")return process.cwd()}function qp(t){var o;let{options:l,getPhysicalFilename:n}=t,s=((o=l==null?void 0:l[0])==null?void 0:o.allowList)||[],i=[];s.forEach(d=>{try{i.push(new RegExp(d))}catch{console.error(`Unable to convert "${d}" to regex`)}});let p=Gp(t.getCwd?t.getCwd():void 0,l),u=new xe(p);if(!u.valid())return{};let r=n(),e=u.projectWorkspaces.some(d=>!!d.turboConfig),f=Ms(u.projectWorkspaces,r),a=(d,h)=>{if(!h)return{};if(i.some(b=>b.test(h)))return{};if(u.test(f==null?void 0:f.workspaceName,h))return{};{let b=`{{ envKey }} is not listed as a dependency in ${e?"root turbo.json":"turbo.json"}`;f&&f.turboConfig&&(p?b=`{{ envKey }} is not listed as a dependency in the root turbo.json or workspace (${$s.default.relative(p,f.workspacePath)}) turbo.json`:b="{{ envKey }} is not listed as a dependency in the root turbo.json or workspace turbo.json"),t.report({node:d,message:b,data:{envKey:h}})}},c=d=>"computed"in d.parent?d.parent.computed:!1;return{MemberExpression(d){var h,g;if("name"in d.object&&"name"in d.property&&!c(d)){let b=d.object.name,E=d.property.name;if(b==="process"&&E==="env")if("id"in d.parent&&((h=d.parent.id)==null?void 0:h.type)==="ObjectPattern"){let y=d.parent.id.properties.values();Array.from(y).forEach(D=>{"key"in D&&"name"in D.key&&a(d.parent,D.key.name)})}else"property"in d.parent&&"name"in d.parent.property&&a(d.parent,(g=d.parent.property)==null?void 0:g.name)}}}}var zp={create:qp,meta:Up},Hs=zp;var Us=new xe(process.cwd()),Wp=Us.valid()?Us.key():Math.random(),Vp={turbo:{cacheKey:Wp}},Kp={settings:Vp,plugins:["turbo"],rules:{[`turbo/${ge.noUndeclaredEnvVars}`]:"error"}},Gs=Kp;var Yp={[ge.noUndeclaredEnvVars]:Hs},Zp={recommended:Gs};0&&(module.exports={configs,rules});
85
85
  /*!
86
86
  * fill-range <https://github.com/jonschlinkert/fill-range>
87
87
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-turbo",
3
- "version": "1.10.4",
3
+ "version": "1.10.6",
4
4
  "description": "ESLint plugin for Turborepo",
5
5
  "keywords": [
6
6
  "turbo",
@@ -36,7 +36,7 @@
36
36
  "@turbo/tsconfig": "0.0.0",
37
37
  "tsup": "^6.2.0",
38
38
  "@turbo/test-utils": "0.0.0",
39
- "@turbo/types": "1.10.4",
39
+ "@turbo/types": "1.10.6",
40
40
  "@turbo/utils": "0.0.0",
41
41
  "typescript": "^4.7.4"
42
42
  },