gitpick
Version:
Clone exactly what you need aka straightforward project scaffolding!
46 lines (39 loc) • 26.6 kB
JavaScript
var Mt=Object.defineProperty,nr=Object.defineProperties;var ir=Object.getOwnPropertyDescriptors;var at=Object.getOwnPropertySymbols;var jt=Object.prototype.hasOwnProperty,Lt=Object.prototype.propertyIsEnumerable;var H=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),bt=t=>{throw TypeError(t)};var wt=(t,e,r)=>e in t?Mt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,y=(t,e)=>{for(var r in e||(e={}))jt.call(e,r)&&wt(t,r,e[r]);if(at)for(var r of at(e))Lt.call(e,r)&&wt(t,r,e[r]);return t},W=(t,e)=>nr(t,ir(e));var q=(t,e)=>{var r={};for(var o in t)jt.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&at)for(var o of at(t))e.indexOf(o)<0&&Lt.call(t,o)&&(r[o]=t[o]);return r};var Wt=(t,e)=>{for(var r in e)Mt(t,r,{get:e[r],enumerable:!0})};var Gt=(t,e,r)=>wt(t,typeof e!="symbol"?e+"":e,r),xt=(t,e,r)=>e.has(t)||bt("Cannot "+r);var u=(t,e,r)=>(xt(t,e,"read from private field"),r?r.call(t):e.get(t)),$=(t,e,r)=>e.has(t)?bt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),w=(t,e,r,o)=>(xt(t,e,"write to private field"),o?o.call(t,r):e.set(t,r),r),b=(t,e,r)=>(xt(t,e,"access private method"),r);var _t=(t,e,r,o)=>({set _(s){w(t,e,s,r)},get _(){return u(t,e,o)}});var I=function(t,e){this[0]=t,this[1]=e},yt=(t,e,r)=>{var o=(i,a,c,p)=>{try{var d=r[i](a),x=(a=d.value)instanceof I,E=d.done;Promise.resolve(x?a[0]:a).then(g=>x?o(i==="return"?i:"next",a[1]?{done:g.done,value:g.value}:g,c,p):c({value:g,done:E})).catch(g=>o("throw",g,c,p))}catch(g){p(g)}},s=i=>n[i]=a=>new Promise((c,p)=>o(i,a,c,p)),n={};return r=r.apply(t,e),n[H("asyncIterator")]=()=>n,s("next"),s("throw"),s("return"),n},Nt=t=>{var e=t[H("asyncIterator")],r=!1,o,s={};return e==null?(e=t[H("iterator")](),o=n=>s[n]=i=>e[n](i)):(e=e.call(t),o=n=>s[n]=i=>{if(r){if(r=!1,n==="throw")throw i;return i}return r=!0,{done:!1,value:new I(new Promise(a=>{var c=e[n](i);c instanceof Object||bt("Object expected"),a(c)}),1)}}),s[H("iterator")]=()=>s,o("next"),"throw"in e?o("throw"):s.throw=n=>{throw n},"return"in e&&o("return"),s},ct=(t,e,r)=>(e=t[H("asyncIterator")])?e.call(t):(t=t[H("iterator")](),e={},r=(o,s)=>(s=t[o])&&(e[o]=n=>new Promise((i,a,c)=>(n=s.call(t,n),c=n.done,Promise.resolve(n.value).then(p=>i({value:p,done:c}),a)))),r("next"),r("return"),e);import sr from"fs";import os from"path";import{parseArgs as ss}from"util";import tt from"fs";import To from"os";import me from"path";import Tt from"fs";import Ft from"path";var $t=async(t,e)=>{let r=await Tt.promises.readdir(t,{withFileTypes:!0});await Tt.promises.mkdir(e,{recursive:!0});for(let o of r){if(o.name===".git")continue;let s=Ft.join(t,o.name),n=Ft.join(e,o.name);o.isDirectory()?await $t(s,n):await Tt.promises.copyFile(s,n)}};import ar from"process";import{stripVTControlCharacters as cr}from"util";var Dt=t=>({start:ar.hrtime.bigint(),command:t.map(e=>lr(cr(e))).join(" "),state:{stdout:"",stderr:"",output:""}}),lr=t=>/[^\w./-]/.test(t)?`'${t.replaceAll("'","'\\''")}'`:t;import U from"path";import{fileURLToPath as pr}from"url";import Ht from"process";var Ut=c=>{var p=c,{stdin:t,stdout:e,stderr:r,stdio:o=[t,e,r],env:s,preferLocal:n,cwd:i="."}=p,a=q(p,["stdin","stdout","stderr","stdio","env","preferLocal","cwd"]);var g;let d=i instanceof URL?pr(i):U.resolve(i),x=s?y(y({},Ht.env),s):void 0,E=(g=o[0])==null?void 0:g.string;return W(y({},a),{input:E,stdio:E===void 0?o:["pipe",...o.slice(1)],env:n?ur(x!=null?x:Ht.env,d):x,cwd:d})},ur=(s,o)=>{var n=s,{Path:t="",PATH:e=t}=n,r=q(n,["Path","PATH"]);let i=e.split(U.delimiter),a=Vt([],U.resolve(o)).map(c=>U.join(c,"node_modules/.bin")).filter(c=>!i.includes(c));return W(y({},r),{PATH:[...a,e].filter(Boolean).join(U.delimiter)})},Vt=(t,e)=>t.at(-1)===e?t:Vt([...t,e],U.resolve(e,".."));import{spawn as vr}from"child_process";import{once as Er}from"events";import Zt from"process";import{stat as hr}from"fs/promises";import Yt from"path";import Jt from"process";var Kt=async(t,e,r)=>await fr(t,r)?[Et(t),e.map(o=>gr(o)),W(y({},r),{shell:!0})]:[t,e,r],fr=async(t,{shell:e,cwd:r,env:o=Jt.env})=>Jt.platform==="win32"&&!e&&!await mr(t,r,o),mr=async(t,e,{Path:r="",PATH:o=r})=>{var s,n;return qt.some(i=>t.toLowerCase().endsWith(i))||((n=vt[s=`${t}\0${e}\0${o}`])!=null?n:vt[s]=await dr(t,e,o))},vt={},dr=async(t,e,r)=>{let o=r.split(Yt.delimiter).filter(Boolean).map(s=>s.replace(/^"(.*)"$/,"$1"));try{await Promise.all(qt.flatMap(s=>[e,...o].map(n=>`${Yt.resolve(n,t)}${s}`)).map(async s=>{try{await hr(s)}catch(n){return}throw 0}))}catch(s){return!0}return!1},qt=[".exe",".com"],gr=t=>Et(Et(`"${t.replaceAll(/(\\*)"/g,'$1$1\\"').replace(/(\\*)$/,"$1$1")}"`)),Et=t=>t.replaceAll(/([()\][%!^"`<>&|;, *?])/g,"^$1");import{once as wr,on as br}from"events";import xr from"process";var zt=async(t,{input:e},r)=>{let o=await t;e!==void 0&&o.stdin.end(e);let s=wr(o,"close");try{return await Promise.race([s,...o.stdio.filter(Boolean).map(n=>yr(n))]),Tr(r,Qt(o)),Xt(r)}catch(n){throw await Promise.allSettled([s]),kt(n,o,r)}},yr=async t=>{try{for(var e=ct(br(t,"error")),r,o,s;r=!(o=await e.next()).done;r=!1){let[n]=o.value;if(!["ERR_STREAM_PREMATURE_CLOSE","EPIPE"].includes(n==null?void 0:n.code))throw n}}catch(o){s=[o]}finally{try{r&&(o=e.return)&&await o.call(e)}finally{if(s)throw s[0]}}},Tr=({command:t},{exitCode:e,signalName:r})=>{if(r!==void 0)throw new G(`Command was terminated with ${r}: ${t}`);if(e!==void 0)throw new G(`Command failed with exit code ${e}: ${t}`)},kt=(t,e,r)=>Object.assign($r(t,r),Qt(e),Xt(r)),$r=(t,{command:e})=>t instanceof G?t:new G(`Command failed: ${e}`,{cause:t}),G=class extends Error{constructor(){super(...arguments);Gt(this,"name","SubprocessError")}},Qt=({exitCode:t,signalCode:e})=>y(y({},t<1?{}:{exitCode:t}),e===null?{}:{signalName:e}),Xt=({state:{stdout:t,stderr:e,output:r},command:o,start:s})=>({stdout:St(t),stderr:St(e),output:St(r),command:o,durationMs:Number(xr.hrtime.bigint()-s)/1e6}),St=t=>t.at(-1)===`
`?t.slice(0,t.at(-2)==="\r"?-2:-1):t;var ee=async(t,e,r,o)=>{try{[t,e]=["node","node.exe"].includes(t.toLowerCase())?[Zt.execPath,[...Zt.execArgv.filter(n=>!n.startsWith("--inspect")),...e]]:[t,e];let s=vr(...await Kt(t,e,r));return te(s.stdout,o,"stdout"),te(s.stderr,o,"stderr"),s.once("error",()=>{}),await Er(s,"spawn"),s}catch(s){throw kt(s,{},o)}},te=(t,{state:e},r)=>{t&&(t.setEncoding("utf8"),e.isIterating||(e.isIterating=!1,t.on("data",o=>{e[r]+=o,e.output+=o})))};import{pipeline as Sr}from"stream/promises";var re=async t=>{var o;let[[e,r]]=await Promise.all([Promise.allSettled(t),kr(t)]);if(r.reason)throw r.reason.pipedFrom=(o=e.reason)!=null?o:e.value,r.reason;if(e.reason)throw e.reason;return W(y({},r.value),{pipedFrom:e.value})},kr=async t=>{try{let[{stdout:e},{stdin:r}]=await Promise.all(t.map(({nodeChildProcess:o})=>o));if(r===null)throw new Error('The "stdin" option must be set on the first "spawn()" call in the pipeline.');if(e===null)throw new Error('The "stdout" option must be set on the last "spawn()" call in the pipeline.');Sr(e,r).catch(()=>{})}catch(e){throw await Promise.allSettled(t.map(({nodeChildProcess:r})=>Rr(r))),e}},Rr=async t=>{let{stdin:e}=await t;e.end()};var Rt=function(o,s,n){return yt(this,arguments,function*(t,{state:e},r){if(e.isIterating===!1)throw new Error(`The subprocess must be iterated right away, for example:
for await (const line of spawn(...)) { ... }`);e.isIterating=!0;try{let{[r]:d}=yield new I(t.nodeChildProcess);if(!d)return;let x="";try{for(var i=ct(d.iterator({destroyOnReturn:!1})),a,c,p;a=!(c=yield new I(i.next())).done;a=!1){let E=c.value;let g=`${x}${E}`.split(/\r?\n/);x=g.pop(),yield*Nt(g)}}catch(c){p=[c]}finally{try{a&&(c=i.return)&&(yield new I(c.call(i)))}finally{if(p)throw p[0]}}x&&(yield x)}finally{yield new I(t)}})},oe=function(...t){return yt(this,null,function*(){try{let e=[];for(;t.length>0;){e=t.map((i,a)=>{var c;return(c=e[a])!=null?c:Cr(i)});let[{value:r,done:o},s]=yield new I(Promise.race(e.map((i,a)=>Promise.all([i,a])))),[n]=t.splice(s,1);e.splice(s,1),o||(t.push(n),yield r)}}finally{yield new I(Promise.all(t.map(e=>e.return())))}})},Cr=async t=>{try{return await t.next()}catch(e){await t.throw(e)}};function A(t,e,r,o){let[s=[],n={}]=Array.isArray(e)?[e,r]:[[],e],i=Dt([t,...s]),a=Ut(n),c=ee(t,s,a,i),p=zt(c,a,i);Object.assign(p,{nodeChildProcess:c}),p=o?re([o,p]):p;let d=Rt(p,i,"stdout"),x=Rt(p,i,"stderr");return Object.assign(p,{nodeChildProcess:c,stdout:d,stderr:x,[Symbol.asyncIterator]:()=>oe(d,x),pipe:(E,g,it)=>A(E,g,it,p)})}import C from"process";import{stripVTControlCharacters as fo}from"util";var R={};Wt(R,{bgBlack:()=>Ur,bgBlue:()=>Kr,bgBlueBright:()=>lo,bgCyan:()=>zr,bgCyanBright:()=>uo,bgGray:()=>Xr,bgGreen:()=>Yr,bgGreenBright:()=>ao,bgMagenta:()=>qr,bgMagentaBright:()=>po,bgRed:()=>Vr,bgRedBright:()=>io,bgWhite:()=>Qr,bgWhiteBright:()=>ho,bgYellow:()=>Jr,bgYellowBright:()=>co,black:()=>_r,blue:()=>Nr,blueBright:()=>ro,bold:()=>k,cyan:()=>T,cyanBright:()=>so,dim:()=>Br,gray:()=>Hr,green:()=>O,greenBright:()=>to,hidden:()=>Wr,inverse:()=>Lr,italic:()=>Pr,magenta:()=>Fr,magentaBright:()=>oo,overline:()=>jr,red:()=>pt,redBright:()=>Zr,reset:()=>Or,strikethrough:()=>Gr,underline:()=>Mr,white:()=>Dr,whiteBright:()=>no,yellow:()=>_,yellowBright:()=>eo});import Ir from"tty";var se,ne,lt,ie,ae,Ar=(ae=(ie=(lt=(ne=(se=Ir)==null?void 0:se.WriteStream)==null?void 0:ne.prototype)==null?void 0:lt.hasColors)==null?void 0:ie.call(lt))!=null?ae:!1,l=(t,e)=>{if(!Ar)return s=>s;let r=`\x1B[${t}m`,o=`\x1B[${e}m`;return s=>{let n=s+"",i=n.indexOf(o);if(i===-1)return r+n+o;let a=r,c=0;for(;i!==-1;)a+=n.slice(c,i)+r,c=i+o.length,i=n.indexOf(o,c);return a+=n.slice(c)+o,a}},Or=l(0,0),k=l(1,22),Br=l(2,22),Pr=l(3,23),Mr=l(4,24),jr=l(53,55),Lr=l(7,27),Wr=l(8,28),Gr=l(9,29),_r=l(30,39),pt=l(31,39),O=l(32,39),_=l(33,39),Nr=l(34,39),Fr=l(35,39),T=l(36,39),Dr=l(37,39),Hr=l(90,39),Ur=l(40,49),Vr=l(41,49),Yr=l(42,49),Jr=l(43,49),Kr=l(44,49),qr=l(45,49),zr=l(46,49),Qr=l(47,49),Xr=l(100,49),Zr=l(91,39),to=l(92,39),eo=l(93,39),ro=l(94,39),oo=l(95,39),so=l(96,39),no=l(97,39),io=l(101,49),ao=l(102,49),co=l(103,49),lo=l(104,49),po=l(105,49),uo=l(106,49),ho=l(107,49);var Z=C.platform!=="win32"||!!C.env.WT_SESSION,mo=t=>!!(t.isTTY&&C.env.TERM!=="dumb"&&!("CI"in C.env)),go=R.blue(Z?"\u2139":"i"),wo=R.green(Z?"\u2714":"\u221A"),bo=R.yellow(Z?"\u26A0":"\u203C"),xo=R.red(Z?"\u2716\uFE0F":"\xD7"),yo={frames:Z?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["-","\\","|","/"],interval:80},V,Y,N,F,B,S,D,J,M,P,X,f,z,Q,ut,ce,le,pe,ue,he,fe,Ct=class{constructor(e={}){$(this,f);$(this,V);$(this,Y);$(this,N,-1);$(this,F);$(this,B);$(this,S);$(this,D);$(this,J,0);$(this,M);$(this,P);$(this,X,0);var o,s,n,i;let r=(o=e.spinner)!=null?o:yo;w(this,V,r.frames),w(this,Y,r.interval),w(this,B,(s=e.text)!=null?s:""),w(this,S,(n=e.stream)!=null?n:C.stderr),w(this,D,(i=e.color)!=null?i:"cyan"),w(this,P,mo(u(this,S))),w(this,M,b(this,f,fe).bind(this))}start(e){return e&&w(this,B,e),this.isSpinning?this:(b(this,f,le).call(this),b(this,f,Q).call(this),b(this,f,ue).call(this),w(this,F,setInterval(()=>{b(this,f,Q).call(this)},u(this,Y))),this)}stop(e){return this.isSpinning?(clearInterval(u(this,F)),w(this,F,void 0),b(this,f,pe).call(this),this.clear(),b(this,f,he).call(this),e&&u(this,S).write(`${e}
`),this):this}success(e){return b(this,f,z).call(this,wo,e)}error(e){return b(this,f,z).call(this,xo,e)}warning(e){return b(this,f,z).call(this,bo,e)}info(e){return b(this,f,z).call(this,go,e)}get isSpinning(){return u(this,F)!==void 0}get text(){return u(this,B)}set text(e){w(this,B,e!=null?e:""),b(this,f,Q).call(this)}get color(){return u(this,D)}set color(e){w(this,D,e),b(this,f,Q).call(this)}clear(){if(!u(this,P))return this;u(this,S).cursorTo(0);for(let e=0;e<u(this,J);e++)e>0&&u(this,S).moveCursor(0,-1),u(this,S).clearLine(1);return w(this,J,0),this}};V=new WeakMap,Y=new WeakMap,N=new WeakMap,F=new WeakMap,B=new WeakMap,S=new WeakMap,D=new WeakMap,J=new WeakMap,M=new WeakMap,P=new WeakMap,X=new WeakMap,f=new WeakSet,z=function(e,r){return this.stop(`${e} ${r!=null?r:u(this,B)}`)},Q=function(){var n;let e=Date.now();(u(this,N)===-1||e-u(this,X)>=u(this,Y))&&(w(this,N,++_t(this,N)._%u(this,V).length),w(this,X,e));let r=(n=R[u(this,D)])!=null?n:R.cyan,o=u(this,V)[u(this,N)],s=`${r(o)} ${u(this,B)}`;u(this,P)||(s+=`
`),this.clear(),b(this,f,ut).call(this,s),u(this,P)&&w(this,J,b(this,f,ce).call(this,s))},ut=function(e){u(this,S).write(e)},ce=function(e){var n;let r=(n=u(this,S).columns)!=null?n:80,o=fo(e).split(`
`),s=0;for(let i of o)s+=Math.max(1,Math.ceil(i.length/r));return s},le=function(){u(this,P)&&b(this,f,ut).call(this,"\x1B[?25l")},pe=function(){u(this,P)&&b(this,f,ut).call(this,"\x1B[?25h")},ue=function(){C.once("SIGINT",u(this,M)),C.once("SIGTERM",u(this,M))},he=function(){C.off("SIGINT",u(this,M)),C.off("SIGTERM",u(this,M))},fe=function(e){this.isSpinning&&this.stop();let r=e==="SIGINT"?130:e==="SIGTERM"?143:1;C.exit(r)};function It(t){return new Ct(t)}var ht=async(t,e,r)=>{process.platform==="win32"&&await A("git",["config","--global","core.longpaths","true"]);let o=`https://${t.token?t.token+"@":t.token}github.com/${t.owner}/${t.repository}.git`,s=me.resolve(To.tmpdir(),`${t.repository}-${Date.now()}${Math.random().toString(16).slice(2,6)}`),n=It(),i=performance.now();e.watch||n.start(`Picking ${t.type}${t.type==="repository"?" without .git":" from repository"}...`);try{await A("git",["clone",o,s,"--branch",t.branch,"--depth","1","--single-branch",...e.recursive?["--recursive"]:[]])}catch(p){await A("git",["clone",o,s,...e.recursive?["--recursive"]:[]]),await A("git",["checkout",t.branch],{cwd:s})}let a=me.resolve(s,t.path);(await tt.promises.stat(a)).isDirectory()?(await tt.promises.mkdir(r,{recursive:!0}),await $t(a,r)):(await tt.promises.mkdir(r.split("/").slice(0,-1).join("/"),{recursive:!0}),await tt.promises.copyFile(a,r)),e.watch?console.log("- Synced at "+new Date().toLocaleTimeString()):n.success(`Picked ${t.type}${t.type==="repository"?" without .git":" from repository"} in ${((performance.now()-i)/1e3).toFixed(2)} seconds.`),await tt.promises.rm(s,{recursive:!0,force:!0})};function At(t){if(typeof t=="number"||/^\d+$/.test(t))return typeof t=="number"?t:parseInt(t,10);let e=/(\d+)([hms])/g,r=0,o;for(;(o=e.exec(t))!==null;){let s=parseInt(o[1],10);switch(o[2]){case"h":r+=s*36e5;break;case"m":r+=s*6e4;break;case"s":r+=s*1e3;break}}return r}var de=async t=>{var s,n;let e=(await A("git",["ls-remote",t])).stdout,r=(s=e.match(/(.+)\s+HEAD/))==null?void 0:s[1],o=(n=e.match(new RegExp(`${r}\\s+refs/heads/(.+)`)))==null?void 0:n[1];if(!o)throw new Error("Could not determine default branch!");return o};async function ge(t,{branch:e,target:r}){let o=/^https:\/\/([^@]+)@github\.com/,s=t.match(o),n="";s&&(n=s[1],t=t.replace(o,"https://github.com"));let i=["git@github.com:","https://github.com/","https://raw.githubusercontent.com/"];for(let it of i)if(t.startsWith(it)){t=t.replace(it,"");break}let a=t.split("/"),c=a[0],p=a[1].endsWith(".git")?a[1].slice(0,-4):a[1],d=a[2]==="blob"?"blob":a[2]==="tree"?"tree":a[2]+a[3]==="refsheads"?"raw":"repository",x=e||(d==="repository"?await de(`https://${n&&n+"@"}github.com/${c}/${p}`):d==="raw"?a[4]:a[3]),E=d?d==="raw"?a.slice(5).join("/"):a.slice(4).join("/"):a.slice(2).join("/")||"/",g=r||(d==="blob"?".":E.split("/").pop()||p);return{token:n,owner:c,repository:p,type:d,branch:x,path:E,target:g}}var st={};Wt(st,{beep:()=>Jo,clearScreen:()=>Ho,clearTerminal:()=>Uo,cursorBackward:()=>Co,cursorDown:()=>ko,cursorForward:()=>Ro,cursorGetPosition:()=>Oo,cursorHide:()=>Mo,cursorLeft:()=>ze,cursorMove:()=>So,cursorNextLine:()=>Bo,cursorPrevLine:()=>Po,cursorRestorePosition:()=>Ao,cursorSavePosition:()=>Io,cursorShow:()=>jo,cursorTo:()=>Eo,cursorUp:()=>qe,enterAlternativeScreen:()=>Vo,eraseDown:()=>_o,eraseEndLine:()=>Wo,eraseLine:()=>Qe,eraseLines:()=>Lo,eraseScreen:()=>Ot,eraseStartLine:()=>Go,eraseUp:()=>No,exitAlternativeScreen:()=>Yo,iTerm:()=>zo,image:()=>qo,link:()=>Ko,scrollDown:()=>Do,scrollUp:()=>Fo});import Bt from"process";var we,ft=((we=globalThis.window)==null?void 0:we.document)!==void 0,be,xe,dn=((xe=(be=globalThis.process)==null?void 0:be.versions)==null?void 0:xe.node)!==void 0,ye,Te,gn=((Te=(ye=globalThis.process)==null?void 0:ye.versions)==null?void 0:Te.bun)!==void 0,$e,ve,wn=((ve=($e=globalThis.Deno)==null?void 0:$e.version)==null?void 0:ve.deno)!==void 0,Ee,Se,bn=((Se=(Ee=globalThis.process)==null?void 0:Ee.versions)==null?void 0:Se.electron)!==void 0,ke,Re,xn=((Re=(ke=globalThis.navigator)==null?void 0:ke.userAgent)==null?void 0:Re.includes("jsdom"))===!0,yn=typeof WorkerGlobalScope!="undefined"&&globalThis instanceof WorkerGlobalScope,Tn=typeof DedicatedWorkerGlobalScope!="undefined"&&globalThis instanceof DedicatedWorkerGlobalScope,$n=typeof SharedWorkerGlobalScope!="undefined"&&globalThis instanceof SharedWorkerGlobalScope,vn=typeof ServiceWorkerGlobalScope!="undefined"&&globalThis instanceof ServiceWorkerGlobalScope,Ce,Ie,et=(Ie=(Ce=globalThis.navigator)==null?void 0:Ce.userAgentData)==null?void 0:Ie.platform,Ae,Oe,Be,Pe,En=et==="macOS"||((Ae=globalThis.navigator)==null?void 0:Ae.platform)==="MacIntel"||((Be=(Oe=globalThis.navigator)==null?void 0:Oe.userAgent)==null?void 0:Be.includes(" Mac "))===!0||((Pe=globalThis.process)==null?void 0:Pe.platform)==="darwin",Me,je,Sn=et==="Windows"||((Me=globalThis.navigator)==null?void 0:Me.platform)==="Win32"||((je=globalThis.process)==null?void 0:je.platform)==="win32",Le,We,Ge,_e,Ne,kn=et==="Linux"||((We=(Le=globalThis.navigator)==null?void 0:Le.platform)==null?void 0:We.startsWith("Linux"))===!0||((_e=(Ge=globalThis.navigator)==null?void 0:Ge.userAgent)==null?void 0:_e.includes(" Linux "))===!0||((Ne=globalThis.process)==null?void 0:Ne.platform)==="linux",Fe,De,He,Rn=et==="iOS"||((Fe=globalThis.navigator)==null?void 0:Fe.platform)==="MacIntel"&&((De=globalThis.navigator)==null?void 0:De.maxTouchPoints)>1||/iPad|iPhone|iPod/.test((He=globalThis.navigator)==null?void 0:He.platform),Ue,Ve,Ye,Je,Cn=et==="Android"||((Ue=globalThis.navigator)==null?void 0:Ue.platform)==="Android"||((Ye=(Ve=globalThis.navigator)==null?void 0:Ve.userAgent)==null?void 0:Ye.includes(" Android "))===!0||((Je=globalThis.process)==null?void 0:Je.platform)==="android";var h="\x1B[",ot="\x1B]",K="\x07",rt=";",Ke=!ft&&Bt.env.TERM_PROGRAM==="Apple_Terminal",$o=!ft&&Bt.platform==="win32",vo=ft?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:Bt.cwd,Eo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?h+(t+1)+"G":h+(e+1)+rt+(t+1)+"H"},So=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=h+-t+"D":t>0&&(r+=h+t+"C"),e<0?r+=h+-e+"A":e>0&&(r+=h+e+"B"),r},qe=(t=1)=>h+t+"A",ko=(t=1)=>h+t+"B",Ro=(t=1)=>h+t+"C",Co=(t=1)=>h+t+"D",ze=h+"G",Io=Ke?"\x1B7":h+"s",Ao=Ke?"\x1B8":h+"u",Oo=h+"6n",Bo=h+"E",Po=h+"F",Mo=h+"?25l",jo=h+"?25h",Lo=t=>{let e="";for(let r=0;r<t;r++)e+=Qe+(r<t-1?qe():"");return t&&(e+=ze),e},Wo=h+"K",Go=h+"1K",Qe=h+"2K",_o=h+"J",No=h+"1J",Ot=h+"2J",Fo=h+"S",Do=h+"T",Ho="\x1Bc",Uo=$o?`${Ot}${h}0f`:`${Ot}${h}3J${h}H`,Vo=h+"?1049h",Yo=h+"?1049l",Jo=K,Ko=(t,e)=>[ot,"8",rt,rt,e,K,t,ot,"8",rt,rt,K].join(""),qo=(t,e={})=>{let r=`${ot}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+Buffer.from(t).toString("base64")+K},zo={setCwd:(t=vo())=>`${ot}50;CurrentDir=${t}${K}`,annotation(t,e={}){let r=`${ot}1337;`,o=e.x!==void 0,s=e.y!==void 0;if((o||s)&&!(o&&s&&e.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replaceAll("|",""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+K}};import nt from"process";import Pt from"process";import Qo from"os";import Xe from"tty";function v(t,e=globalThis.Deno?globalThis.Deno.args:Pt.argv){let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),s=e.indexOf("--");return o!==-1&&(s===-1||o<s)}var{env:m}=Pt,mt;v("no-color")||v("no-colors")||v("color=false")||v("color=never")?mt=0:(v("color")||v("colors")||v("color=true")||v("color=always"))&&(mt=1);function Xo(){if(!("FORCE_COLOR"in m))return;if(m.FORCE_COLOR==="true")return 1;if(m.FORCE_COLOR==="false")return 0;if(m.FORCE_COLOR.length===0)return 1;let t=Math.min(Number.parseInt(m.FORCE_COLOR,10),3);if([0,1,2,3].includes(t))return t}function Zo(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function ts(t,{streamIsTTY:e,sniffFlags:r=!0}={}){let o=Xo();o!==void 0&&(mt=o);let s=r?mt:o;if(s===0)return 0;if(r){if(v("color=16m")||v("color=full")||v("color=truecolor"))return 3;if(v("color=256"))return 2}if("TF_BUILD"in m&&"AGENT_NAME"in m)return 1;if(t&&!e&&s===void 0)return 0;let n=s||0;if(m.TERM==="dumb")return n;if(Pt.platform==="win32"){let i=Qo.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in m)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(i=>i in m)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(i=>i in m)||m.CI_NAME==="codeship"?1:n;if("TEAMCITY_VERSION"in m)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(m.TEAMCITY_VERSION)?1:0;if(m.COLORTERM==="truecolor"||m.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in m){let i=Number.parseInt((m.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(m.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(m.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(m.TERM)||"COLORTERM"in m?1:n}function dt(t,e={}){let r=ts(t,y({streamIsTTY:t&&t.isTTY},e));return Zo(r)}var Wn={stdout:dt({isTTY:Xe.isatty(1)}),stderr:dt({isTTY:Xe.isatty(2)})};import es from"process";function j(t,e=es.argv){let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),s=e.indexOf("--");return o!==-1&&(s===-1||o<s)}function Ze(t=""){var r;if(/^\d{3,4}$/.test(t)){let o=(r=/(\d{1,2})(\d{2})/.exec(t))!=null?r:[];return{major:0,minor:Number.parseInt(o[1],10),patch:Number.parseInt(o[2],10)}}let e=(t!=null?t:"").split(".").map(o=>Number.parseInt(o,10));return{major:e[0],minor:e[1],patch:e[2]}}function tr(t){let{CI:e,FORCE_HYPERLINK:r,NETLIFY:o,TEAMCITY_VERSION:s,TERM_PROGRAM:n,TERM_PROGRAM_VERSION:i,VTE_VERSION:a,TERM:c}=nt.env;if(r)return!(r.length>0&&Number.parseInt(r,10)===0);if(j("no-hyperlink")||j("no-hyperlinks")||j("hyperlink=false")||j("hyperlink=never"))return!1;if(j("hyperlink=true")||j("hyperlink=always")||o)return!0;if(!dt(t)||t&&!t.isTTY)return!1;if("WT_SESSION"in nt.env)return!0;if(nt.platform==="win32"||e||s)return!1;if(n){let p=Ze(i);switch(n){case"iTerm.app":return p.major===3?p.minor>=1:p.major>3;case"WezTerm":return p.major>=20200620;case"vscode":return p.major>1||p.major===1&&p.minor>=72;case"ghostty":return!0}}if(a){if(a==="0.50.0")return!1;let p=Ze(a);return p.major>0||p.minor>=50}switch(c){case"alacritty":return!0}return!1}var rs={stdout:tr(nt.stdout),stderr:tr(nt.stderr)},gt=rs;function L(t,e,s={}){var n=s,{target:r="stdout"}=n,o=q(n,["target"]);return gt[r]?st.link(t,e):o.fallback===!1?t:typeof o.fallback=="function"?o.fallback(t,e):`${t} (\u200B${e}\u200B)`}L.isSupported=gt.stdout;L.stderr=(t,e,r={})=>L(t,e,y({target:"stderr"},r));L.stderr.isSupported=gt.stderr;var rr="gitpick",or="4.12.0";var ns=`
With ${k(`${L("GitPick","https://github.com/nrjdalal/gitpick")}`)} clone specific directories or files from GitHub!
$ gitpick ${_("<url>")} ${O("[target]")} ${T("[options]")}
${k("Hint:")}
[target] and [options] are optional and if not specified,
GitPick fallbacks to the default behavior of \`git clone\`
${k("Arguments:")}
${_("url")} GitHub URL with path to file/folder/repository
${O("target")} Directory to clone into (optional)
${k("Options:")}
${T("-b, --branch ")} Branch/SHA to clone
${T("-o, --overwrite")} Skip overwrite prompt
${T("-r, --recursive")} Clone submodules
${T("-w, --watch [time]")} Watch the repository and sync every [time]
(e.g. 1h, 30m, 15s)
${T("-h, --help")} display help for command
${T("-v, --version")} display the version number
${k("Examples:")}
$ gitpick <url>
$ gitpick <url> [target]
$ gitpick <url> [target] -b [branch/SHA]
$ gitpick <url> [target] -w [time]
$ gitpick <url> [target] -b [branch/SHA] -w [time]
\u{1F680} More awesome tools at ${T("https://github.com/nrjdalal")}`,is=t=>{try{return ss(t)}catch(e){throw new Error(`Error parsing arguments: ${e.message}`)}},as=async()=>{try{let{positionals:t,values:e}=is({allowPositionals:!0,options:{branch:{type:"string",short:"b"},force:{type:"boolean",short:"f"},help:{type:"boolean",short:"h"},overwrite:{type:"boolean",short:"o"},recursive:{type:"boolean",short:"r"},version:{type:"boolean",short:"v"},watch:{type:"string",short:"w"}}});t.length||(e.version&&(console.log(`
${rr}@${or}`),process.exit(0)),console.log(ns),process.exit(0)),t[0]==="clone"&&t.shift();let[r,o]=t,s={branch:e.branch,force:e.force,overwrite:e.overwrite,recursive:e.recursive,watch:e.watch};console.log(`
With ${k(`${L("GitPick","https://github.com/nrjdalal/gitpick")}`)} clone specific directories or files from GitHub!`);let n=await ge(r,{branch:s.branch,target:o});if(n.type==="blob"){let a=n.target.split("/").filter(p=>p!==""),c=a[a.length-1];c!=="."&&c!==".."&&c.includes(".")?a.pop():c=n.path.split("/").pop()||c,n.target=[...a,c].join("/")}console.info(`
${O("\u2714")} ${n.owner}/${n.repository} ${T(n.type+":"+n.branch)} ${n.type==="repository"?`> ${O(n.target)}`:`${n.path.length?_(n.path)+" >":">"} ${O(n.target)}`}`);let i=os.resolve(n.target);if(s.overwrite=s.overwrite||s.force,s.watch&&(s.overwrite=!0),sr.existsSync(i)&&!s.overwrite&&(n.type==="blob"&&(console.log(`${_(`
Warning: The target file exists at ${O(n.target)}. Use ${T("-f")} or ${T("-o")} to overwrite.`)}`),process.exit(1)),(await sr.promises.readdir(i)).length&&(console.log(`${_(`
Warning: The target directory exists at ${O(n.target)} and is not empty. Use ${T("-f")} or ${T("-o")} to overwrite.`)}`),process.exit(1))),s.watch){console.log(`
\u{1F440} Watching every ${At(s.watch)/1e3+"s"}
`),await ht(n,s,i);let a=At(s.watch);setInterval(async()=>await ht(n,s,i),a)}else await ht(n,s,i),process.exit(0)}catch(t){t instanceof Error?console.log(k(`
${pt("Error: ")}`)+t.message):console.log(k(`${pt(`
Unexpected Error: `)}`)+JSON.stringify(t,null,2)),process.exit(1)}};as();