MCPcopy Index your code
hub / github.com/ChinaSiro/claude-code-sourcemap / ge

Function ge

package/cli.js:147–147  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

145`),$=K.toLowerCase(),A=z.toLowerCase(),O=!1;for(let w of Y){let j=w.trim();if(j.length===0||j[0]==="#"||j[0]===";")continue;if(j[0]==="["){O=YR5(j,$,_);continue}if(!O)continue;let H=KR5(j);if(H&&H.key.toLowerCase()===A)return H.value}return null}function KR5(q){let K=0;while(K<q.length&&$R5(q[K]))K++;if(K===0)return null;let _=q.slice(0,K);while(K<q.length&&(q[K]===" "||q[K]==="\t"))K++;if(K>=q.length||q[K]!=="=")return null;K++;while(K<q.length&&(q[K]===" "||q[K]==="\t"))K++;let z=_R5(q,K);return{key:_,value:z}}function _R5(q,K){let _="",z=!1,Y=K;while(Y<q.length){let $=q[Y];if(!z&&($==="#"||$===";"))break;if($==='"'){z=!z,Y++;continue}if($==="\\"&&Y+1<q.length){let A=q[Y+1];if(z){switch(A){case"n":_+=`
146`;break;case"t":_+="\t";break;case"b":_+="\b";break;case'"':_+='"';break;case"\\":_+="\\";break;default:_+=A;break}Y+=2;continue}if(A==="\\"){_+="\\",Y+=2;continue}}_+=$,Y++}if(!z)_=zR5(_);return _}function zR5(q){let K=q.length;while(K>0&&(q[K-1]===" "||q[K-1]==="\t"))K--;return q.slice(0,K)}function YR5(q,K,_){let z=1;while(z<q.length&&q[z]!=="]"&&q[z]!==" "&&q[z]!=="\t"&&q[z]!=='"')z++;if(q.slice(1,z).toLowerCase()!==K)return!1;if(_===null)return z<q.length&&q[z]==="]";while(z<q.length&&(q[z]===" "||q[z]==="\t"))z++;if(z>=q.length||q[z]!=='"')return!1;z++;let $="";while(z<q.length&&q[z]!=='"'){if(q[z]==="\\"&&z+1<q.length){let A=q[z+1];if(A==="\\"||A==='"'){$+=A,z+=2;continue}$+=A,z+=2;continue}$+=q[z],z++}if(z>=q.length||q[z]!=='"')return!1;if(z++,z>=q.length||q[z]!=="]")return!1;return $===_}function $R5(q){return q>="a"&&q<="z"||q>="A"&&q<="Z"||q>="0"&&q<="9"||q==="-"}var E41=()=>{};import{unwatchFile as RR7,watchFile as AR5}from"fs";import{readdir as OR5,readFile as M_6,stat as SR7}from"fs/promises";import{join as Wh,resolve as l$8}from"path";function CR7(){nW6.clear()}async function QT(q){let K=l$8(q??Z8()),_=nW6.get(K);if(_!==void 0)return _;let z=hY(K);if(!z)return nW6.set(K,null),null;let Y=Wh(z,".git");try{if((await SR7(Y)).isFile()){let A=(await M_6(Y,"utf-8")).trim();if(A.startsWith("gitdir:")){let O=A.slice(7).trim(),w=l$8(z,O);return nW6.set(K,w),w}}return nW6.set(K,Y),Y}catch{return nW6.set(K,null),null}}function n$8(q){if(!q||q.startsWith("-")||q.startsWith("/"))return!1;if(q.includes(".."))return!1;if(q.split("/").some((K)=>K==="."||K===""))return!1;if(!/^[a-zA-Z0-9/._+@-]+$/.test(q))return!1;return!0}function L41(q){return/^[0-9a-f]{40}$/.test(q)||/^[0-9a-f]{64}$/.test(q)}async function Yp6(q){try{let K=(await M_6(Wh(q,"HEAD"),"utf-8")).trim();if(K.startsWith("ref:")){let _=K.slice(4).trim();if(_.startsWith("refs/heads/")){let Y=_.slice(11);if(!n$8(Y))return null;return{type:"branch",name:Y}}if(!n$8(_))return null;let z=await Be(q,_);return z?{type:"detached",sha:z}:{type:"detached",sha:""}}if(!L41(K))return null;return{type:"detached",sha:K}}catch{return null}}async function Be(q,K){let _=await hR7(q,K);if(_)return _;let z=await ex(q);if(z&&z!==q)return hR7(z,K);return null}async function hR7(q,K){try{let _=(await M_6(Wh(q,K),"utf-8")).trim();if(_.startsWith("ref:")){let z=_.slice(4).trim();if(!n$8(z))return null;return Be(q,z)}if(!L41(_))return null;return _}catch{}try{let _=await M_6(Wh(q,"packed-refs"),"utf-8");for(let z of _.split(`
147`)){if(z.startsWith("#")||z.startsWith("^"))continue;let Y=z.indexOf(" ");if(Y===-1)continue;if(z.slice(Y+1)===K){let $=z.slice(0,Y);return L41($)?$:null}}}catch{}return null}async function ex(q){try{let K=(await M_6(Wh(q,"commondir"),"utf-8")).trim();return l$8(q,K)}catch{return null}}async function wR5(q,K,_){try{let z=(await M_6(Wh(q,K),"utf-8")).trim();if(z.startsWith("ref:")){let Y=z.slice(4).trim();if(Y.startsWith(_)){let $=Y.slice(_.length);if(!n$8($))return null;return $}}}catch{}return null}class bR7{gitDir=null;commonDir=null;initialized=!1;initPromise=null;watchedPaths=[];branchRefPath=null;cache=new Map;async ensureStarted(){if(this.initialized)return;if(this.initPromise)return this.initPromise;return this.initPromise=this.start(),this.initPromise}async start(){if(this.gitDir=await QT(),this.initialized=!0,!this.gitDir)return;this.commonDir=await ex(this.gitDir),this.watchPath(Wh(this.gitDir,"HEAD"),()=>{this.onHeadChanged()}),this.watchPath(Wh(this.commonDir??this.gitDir,"config"),()=>{this.invalidate()}),await this.watchCurrentBranchRef(),pq(async()=>{this.stopWatching()})}watchPath(q,K){this.watchedPaths.push(q),AR5(q,{interval:jR5},K)}async watchCurrentBranchRef(){if(!this.gitDir)return;let q=await Yp6(this.gitDir),K=this.commonDir??this.gitDir,_=q?.type==="branch"?Wh(K,"refs","heads",q.name):null;if(_===this.branchRefPath)return;if(this.branchRefPath)RR7(this.branchRefPath),this.watchedPaths=this.watchedPaths.filter((z)=>z!==this.branchRefPath);if(this.branchRefPath=_,!_)return;this.watchPath(_,()=>{this.invalidate()})}async onHeadChanged(){this.invalidate(),await pb6(),await this.watchCurrentBranchRef()}invalidate(){for(let q of this.cache.values())q.dirty=!0}stopWatching(){for(let q of this.watchedPaths)RR7(q);this.watchedPaths=[],this.branchRefPath=null}async get(q,K){await this.ensureStarted();let _=this.cache.get(q);if(_&&!_.dirty)return _.value;if(_)_.dirty=!1;let z=await K(),Y=this.cache.get(q);if(Y&&!Y.dirty)Y.value=z;if(!Y)this.cache.set(q,{value:z,dirty:!1,compute:K});return z}reset(){this.stopWatching(),this.cache.clear(),this.initialized=!1,this.initPromise=null,this.gitDir=null,this.commonDir=null}}async function HR5(){let q=await QT();if(!q)return"HEAD";let K=await Yp6(q);if(!K)return"HEAD";return K.type==="branch"?K.name:"HEAD"}async function JR5(){let q=await QT();if(!q)return"";let K=await Yp6(q);if(!K)return"";if(K.type==="branch")return await Be(q,`refs/heads/${K.name}`)??"";return K.sha}async function MR5(){let q=await QT();if(!q)return null;let K=await J_6(q,"remote","origin","url");if(K)return K;let _=await ex(q);if(_&&_!==q)return J_6(_,"remote","origin","url");return null}async function XR5(){let q=await QT();if(!q)return"main";let K=await ex(q)??q,_=await wR5(K,"refs/remotes/origin/HEAD","refs/remotes/origin/");if(_)return _;for(let z of["main","master"])if(await Be(K,`refs/remotes/origin/${z}`))return z;return"main"}function xR7(){return i$8.get("branch",HR5)}function IR7(){return i$8.get("head",JR5)}function uR7(){return i$8.get("remoteUrl",MR5)}function mR7(){return i$8.get("defaultBranch",XR5)}async function r$8(q){let K=await QT(q);if(!K)return null;let _=await Yp6(K);if(!_)return null;if(_.type==="branch")return Be(K,`refs/heads/${_.name}`);return _.sha}async function pR7(q){let K;try{let z=(await M_6(Wh(q,".git"),"utf-8")).trim();if(!z.startsWith("gitdir:"))return null;K=l$8(q,z.slice(7).trim())}catch{return null}let _=await Yp6(K);if(!_)return null;if(_.type==="branch")return Be(K,`refs/heads/${_.name}`);return _.sha}async function o$8(q){let K=await QT(q);if(!K)return null;let _=await J_6(K,"remote","origin","url");if(_)return _;let z=await ex(K);if(z&&z!==K)return J_6(z,"remote","origin","url");return null}async function BR7(){let q=await QT();if(!q)return!1;let K=await ex(q)??q;try{return await SR7(Wh(K,"shallow")),!0}catch{return!1}}async function gR7(){try{let q=await QT();if(!q)return 0;let K=await ex(q)??q;return(await OR5(Wh(K,"worktrees"))).length+1}catch{return 1}}var nW6,jR5=1000,i$8;var Hl=y(()=>{v8();c9();I7();E5();E41();nW6=new Map;i$8=new bR7});async function PR5(q){if(process.platform==="win32"){let _=await m_(`where.exe ${q}`,{shell:!0,stderr:"ignore",reject:!1});if(_.exitCode!==0||!_.stdout)return null;return _.stdout.trim().split(/\r?\n/)[0]||null}let K=await m_(`which ${q}`,{shell:!0,stderr:"ignore",reject:!1});if(K.exitCode!==0||!K.stdout)return null;return K.stdout.trim()}function WR5(q){if(process.platform==="win32")try{return xe(`where.exe ${q}`,{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).toString().trim().split(/\r?\n/)[0]||null}catch{return null}try{return xe(`which ${q}`,{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).toString().trim()||null}catch{return null}}var R41,TO,iW6;var rk=y(()=>{Df();x$8();R41=typeof Bun<"u"&&typeof Bun.which==="function"?Bun.which:null,TO=R41?async(q)=>R41(q):PR5,iW6=R41??WR5});var $p6={};T8($p6,{parseGitRemote:()=>P_6,parseGitHubRepository:()=>W_6,getCachedRepository:()=>S41,detectCurrentRepositoryWithHost:()=>Dh,detectCurrentRepository:()=>ge,clearRepositoryCaches:()=>h41});function h41(){X_6.clear()}async function ge(){let q=await Dh();if(!q)return null;if(q.host!=="github.com")return null;return`${q.owner}/${q.name}`}async function Dh(){let q=Z8();if(X_6.has(q))return X_6.get(q)??null;try{let K=await EB();if(N(`Git remote URL: ${K}`),!K)return N("No git remote URL found"),X_6.set(q,null),null;let _=P_6(K);return N(`Parsed repository: ${_?`${_.host}/${_.owner}/${_.name}`:null} from URL: ${K}`),X_6.set(q,_),_}catch(K){return N(`Error detecting repository: ${K}`),X_6.set(q,null),null}}function S41(){let q=X_6.get(Z8());if(!q||q.host!=="github.com")return null;return`${q.owner}/${q.name}`}function P_6(q){let K=q.trim(),_=K.match(/^git@([^:]+):([^/]+)\/([^/]+?)(?:\.git)?$/);if(_?.[1]&&_[2]&&_[3]){if(!FR7(_[1]))return null;return{host:_[1],owner:_[2],name:_[3]}}let z=K.match(/^(https?|ssh|git):\/\/(?:[^@]+@)?([^/:]+(?::\d+)?)\/([^/]+)\/([^/]+?)(?:\.git)?$/);if(z?.[1]&&z[2]&&z[3]&&z[4]){let Y=z[1],$=z[2],A=$.split(":")[0]??"";if(!FR7(A))return null;return{host:Y==="https"||Y==="http"?$:A,owner:z[3],name:z[4]}}return null}function W_6(q){let K=q.trim(),_=P_6(K);if(_){if(_.host!=="github.com")return null;return`${_.owner}/${_.name}`}if(!K.includes("://")&&!K.includes("@")&&K.includes("/")){let z=K.split("/");if(z.length===2&&z[0]&&z[1]){let Y=z[1].replace(/\.git$/,"");return`${z[0]}/${Y}`}}return N(`Could not parse repository from: ${K}`),null}function FR7(q){if(!q.includes("."))return!1;let K=q.split(".").pop();if(!K)return!1;return/^[a-zA-Z]+$/.test(K)}var X_6;var mZ=y(()=>{I7();_8();E5();X_6=new Map});var qA8={};T8(qA8,{stashToCleanState:()=>I41,preserveGitStateForIssue:()=>RR5,normalizeGitRemoteUrl:()=>tR7,isCurrentDirectoryBareGitRepo:()=>Op6,isAtGitRoot:()=>VR5,hasUnpushedCommits:()=>NR5,gitExe:()=>L7,getWorktreeCount:()=>oW6,getRepoRemoteHash:()=>t$8,getRemoteUrl:()=>EB,getIsHeadOnRemote:()=>eR7,getIsGit:()=>YJ,getIsClean:()=>rW6,getHead:()=>sR7,getGithubRepo:()=>Fe,getGitState:()=>u41,getGitDir:()=>Ap6,getFileStatus:()=>e$8,getDefaultBranch:()=>dT,getChangedFiles:()=>yR5,getBranch:()=>oM,findRemoteBase:()=>qh7,findGitRoot:()=>hY,findCanonicalGitRoot:()=>jH,dirIsInGitRepo:()=>x41});import{createHash as DR5}from"crypto";import{readFileSync as C41,realpathSync as UR7,statSync as QR7}from"fs";import{open as fR5,readFile as ZR5,realpath as dR7,stat as GR5}from"fs/promises";import{basename as TR5,dirname as b41,join as fh,resolve as s$8,sep as cR7}from"path";function vR5(){function q(K){let _=lR7(K);return _===aR7?null:_}return q.cache=lR7.cache,q}function kR5(){function q(K){let _=hY(K);if(!_)return null;return nR7(_)}return q.cache=nR7.cache,q}function Ap6(q){return QT(q)}async function VR5(){let q=Z8(),K=hY(q);if(!K)return!1;try{let[_,z]=await Promise.all([dR7(q),dR7(K)]);return _===z}catch{return q===K}}function tR7(q){let K=q.trim();if(!K)return null;let _=K.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(_&&_[1]&&_[2])return`${_[1]}/${_[2]}`.toLowerCase();let z=K.match(/^(?:https?|ssh):\/\/(?:[^@]+@)?([^/]+)\/(.+?)(?:\.git)?$/);if(z&&z[1]&&z[2]){let Y=z[1],$=z[2];if(hR5(Y)&&$.startsWith("git/")){let A=$.slice(4),O=A.split("/");if(O.length>=3&&O[0].includes("."))return A.toLowerCase();return`github.com/${A}`.toLowerCase()}return`${Y}/${$}`.toLowerCase()}return null}async function t$8(){let q=await EB();if(!q)return null;let K=tR7(q);if(!K)return null;return DR5("sha256").update(K).digest("hex").substring(0,16)}async function u41(){try{let[q,K,_,z,Y,$]=await Promise.all([sR7(),oM(),EB(),eR7(),rW6(),oW6()]);return{commitHash:q,branchName:K,remoteUrl:_,isHeadOnRemote:z,isClean:Y,worktreeCount:$}}catch(q){return null}}async function Fe(){let{parseGitRemote:q}=await Promise.resolve().then(() => (mZ(),$p6)),K=await EB();if(!K)return N("Local GitHub repo: unknown"),null;let _=q(K);if(_&&_.host==="github.com"){let z=`${_.owner}/${_.name}`;return N(`Local GitHub repo: ${z}`),z}return N("Local GitHub repo: unknown"),null}async function qh7(){let{stdout:q,code:K}=await a8(L7(),["rev-parse","--abbrev-ref","--symbolic-full-name","@{u}"],{preserveOutputOnError:!1});if(K===0&&q.trim())return q.trim();let{stdout:_,code:z}=await a8(L7(),["remote","show","origin","--","HEAD"],{preserveOutputOnError:!1});if(z===0){let $=_.match(/HEAD branch: (\S+)/);if($&&$[1])return`origin/${$[1]}`}let Y=["origin/main","origin/staging","origin/master"];for(let $ of Y){let{code:A}=await a8(L7(),["rev-parse","--verify",$],{preserveOutputOnError:!1});if(A===0)return $}return null}function LR5(){return BR7()}async function a$8(){let{stdout:q,code:K}=await a8(L7(),["ls-files","--others","--exclude-standard"],{preserveOutputOnError:!1}),_=q.trim();if(K!==0||!_)return[];let z=_.split(`
148`).filter(Boolean),Y=[],$=0;for(let A of z){if(Y.length>=oR7){N(`Untracked file capture: reached max file count (${oR7})`);break}if(c$8(A))continue;try{let w=(await GR5(A)).size;if(w>iR7){N(`Untracked file capture: skipping ${A} (exceeds ${iR7} bytes)`);continue}if($+w>rR7){N(`Untracked file capture: reached total size limit (${rR7} bytes)`);break}if(w===0){Y.push({path:A,content:""});continue}let j=Math.min(ER5,w),H=await fR5(A,"r");try{let J=Buffer.alloc(j),{bytesRead:M}=await H.read(J,0,j,0),X=J.subarray(0,M);if(LR7(X))continue;let P;if(w<=j)P=X.toString("utf-8");else P=await ZR5(A,"utf-8");Y.push({path:A,content:P}),$+=w}finally{await H.close()}}catch(O){N(`Failed to read untracked file ${A}: ${O}`)}}return Y}async function RR5(){try{if(!await YJ())return null;if(await LR5()){N("Shallow clone detected, using HEAD-only mode for issue");let[{stdout:X},P]=await Promise.all([a8(L7(),["diff","HEAD"]),a$8()]);return{remote_base_sha:null,remote_base:null,patch:X||"",untracked_files:P,format_patch:null,head_sha:null,branch_name:null}}let K=await qh7();if(!K){N("No remote found, using HEAD-only mode for issue");let[{stdout:X},P]=await Promise.all([a8(L7(),["diff","HEAD"]),a$8()]);return{remote_base_sha:null,remote_base:null,patch:X||"",untracked_files:P,format_patch:null,head_sha:null,branch_name:null}}let{stdout:_,code:z}=await a8(L7(),["merge-base","HEAD",K],{preserveOutputOnError:!1});if(z!==0||!_.trim()){N("Merge-base failed, using HEAD-only mode for issue");let[{stdout:X},P]=await Promise.all([a8(L7(),["diff","HEAD"]),a$8()]);return{remote_base_sha:null,remote_base:null,patch:X||"",untracked_files:P,format_patch:null,head_sha:null,branch_name:null}}let Y=_.trim(),[{stdout:$},A,{stdout:O,code:w},{stdout:j},{stdout:H}]=await Promise.all([a8(L7(),["diff",Y]),a$8(),a8(L7(),["format-patch",`${Y}..HEAD`,"--stdout"]),a8(L7(),["rev-parse","HEAD"]),a8(L7(),["rev-parse","--abbrev-ref","HEAD"])]),J=null;if(w===0&&O&&O.trim())J=O;let M=H?.trim();return{remote_base_sha:Y,remote_base:K,patch:$||"",untracked_files:A,format_patch:J,head_sha:j?.trim()||null,branch_name:M&&M!=="HEAD"?M:null}}catch(q){return H6(q),null}}function hR5(q){let K=q.split(":")[0]??"";return K==="localhost"||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(K)}function Op6(){let q=X8(),K=Z8(),_=fh(K,".git");try{let z=q.statSync(_);if(z.isFile())return!1;if(z.isDirectory()){let Y=fh(_,"HEAD");try{if(q.statSync(Y).isFile())return!1}catch{}}}catch{}try{if(q.statSync(fh(K,"HEAD")).isFile())return!0}catch{}try{if(q.statSync(fh(K,"objects")).isDirectory())return!0}catch{}try{if(q.statSync(fh(K,"refs")).isDirectory())return!0}catch{}return!1}var aR7,lR7,hY,nR7,jH,L7,YJ,x41=async(q)=>{return hY(q)!==null},sR7=async()=>{return IR7()},oM=async()=>{return xR7()},dT=async()=>{return mR7()},EB=async()=>{return uR7()},eR7=async()=>{let{code:q}=await a8(L7(),["rev-parse","@{u}"],{preserveOutputOnError:!1});return q===0},NR5=async()=>{let{stdout:q,code:K}=await a8(L7(),["rev-list","--count","@{u}..HEAD"],{preserveOutputOnError:!1});return K===0&&parseInt(q.trim(),10)>0},rW6=async(q)=>{let K=["--no-optional-locks","status","--porcelain"];if(q?.ignoreUntracked)K.push("-uno");let{stdout:_}=await a8(L7(),K,{preserveOutputOnError:!1});return _.trim().length===0},yR5=async()=>{let{stdout:q}=await a8(L7(),["--no-optional-locks","status","--porcelain"],{preserveOutputOnError:!1});return q.trim().split(`
149`).map((K)=>K.trim().split(" ",2)[1]?.trim()).filter((K)=>typeof K==="string")},e$8=async()=>{let{stdout:q}=await a8(L7(),["--no-optional-locks","status","--porcelain"],{preserveOutputOnError:!1}),K=[],_=[];return q.trim().split(`
150`).filter((z)=>z.length>0).forEach((z)=>{let Y=z.substring(0,2),$=z.substring(2).trim();if(Y==="??")_.push($);else if($)K.push($)}),{tracked:K,untracked:_}},oW6=async()=>{return gR7()},I41=async(q)=>{try{let K=q||`Claude Code auto-stash - ${new Date().toISOString()}`,{untracked:_}=await e$8();if(_.length>0){let{code:Y}=await a8(L7(),["add",..._],{preserveOutputOnError:!1});if(Y!==0)return!1}let{code:z}=await a8(L7(),["stash","push","--message",K],{preserveOutputOnError:!1});return z===0}catch(K){return!1}},iR7=524288000,rR7=5368709120,oR7=20000,ER5=65536;var E5=y(()=>{F4();y41();I7();_8();oY();XK();e7();Hl();E8();VB();rk();aR7=Symbol("git-root-not-found"),lR7=HP((q)=>{let K=Date.now();c8("info","find_git_root_started");let _=s$8(q),z=_.substring(0,_.indexOf(cR7)+1)||cR7,Y=0;while(_!==z){try{let A=fh(_,".git");Y++;let O=QR7(A);if(O.isDirectory()||O.isFile())return c8("info","find_git_root_completed",{duration_ms:Date.now()-K,stat_count:Y,found:!0}),_.normalize("NFC")}catch{}let $=b41(_);if($===_)break;_=$}try{let $=fh(z,".git");Y++;let A=QR7($);if(A.isDirectory()||A.isFile())return c8("info","find_git_root_completed",{duration_ms:Date.now()-K,stat_count:Y,found:!0}),z.normalize("NFC")}catch{}return c8("info","find_git_root_completed",{duration_ms:Date.now()-K,stat_count:Y,found:!1}),aR7},(q)=>q,50),hY=vR5();nR7=HP((q)=>{try{let K=C41(fh(q,".git"),"utf-8").trim();if(!K.startsWith("gitdir:"))return q;let _=s$8(q,K.slice(7).trim()),z=s$8(_,C41(fh(_,"commondir"),"utf-8").trim());if(s$8(b41(_))!==fh(z,"worktrees"))return q;if(UR7(C41(fh(_,"gitdir"),"utf-8").trim())!==fh(UR7(q),".git"))return q;if(TR5(z)!==".git")return z.normalize("NFC");return b41(z).normalize("NFC")}catch{return q}},(q)=>q,50),jH=kR5();L7=_1(()=>{return iW6("git")||"git"}),YJ=_1(async()=>{let q=Date.now();c8("info","is_git_check_started");let K=hY(Z8())!==null;return c8("info","is_git_check_completed",{duration_ms:Date.now()-q,is_git:K}),K})});import{appendFile as SR5,mkdir as CR5,readFile as bR5,writeFile as xR5}from"fs/promises";import{homedir as IR5}from"os";import{dirname as uR5,join as mR5}from"path";async function m41(q,K){let{code:_}=await S7("git",["check-ignore",q],{preserveOutputOnError:!1,cwd:K});return _===0}function pR5(){return mR5(IR5(),".config","git","ignore")}async function Kh7(q,K=Z8()){try{if(!await x41(K))return;let _=`**/${q}`,z=q.endsWith("/")?`${q}sample-file.txt`:q;if(await m41(z,K))return;let Y=pR5(),$=uR5(Y);await CR5($,{recursive:!0});try{if((await bR5(Y,{encoding:"utf-8"})).includes(_))return;await SR5(Y,`

Callers 3

cli.jsFile · 0.85
jeKFunction · 0.85
K65Function · 0.85

Calls 1

DhFunction · 0.85

Tested by

no test coverage detected