@jujulego/jill 2.1.0 → 2.1.1

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.
package/dist/main.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{var e={id:179,ids:[179]};e.modules={8414:(e,t,s)=>{"use strict";s.r(t);var r=s(6627),a=(s(1524),s(2495));s(3919),s(4712);var n=s(6831),o=s(6798),i=s(4834),c=s(2010),d=s(2670),p=s(8631),l=s(6888);class u extends p.n{constructor(e){super(),this.manager=e,this._tasks=new Set,this._status="created",this._results={success:0,failed:0}}_handleComplete(e,t){this.emit("completed",e),t?++this._results.success:++this._results.failed,this._results.success+this._results.failed===this._tasks.size&&(this._status="finished",this.emit("finished",this._results))}add(e){if((0,l.M)(e),"created"!==this._status)throw Error(`Cannot add a task to a ${this._status} task set`);this._tasks.has(e)||(e.subscribe("status",(({status:t})=>{"running"===t?this.emit("started",e):"done"!==t&&"failed"!==t||this._handleComplete(e,"done"===t)})),this._tasks.add(e))}start(){if("created"!==this._status)throw Error(`Cannot start a ${this._status} task set`);if(0===this._tasks.size)this._status="finished",this.emit("finished",this._results);else{this._status="started";for(const e of this._tasks)this.manager.add(e)}}get status(){return this._status}get tasks(){return Array.from(this._tasks.values())}get results(){return this._results}}var h=s(8652),m=s(2999),f=s(307),g=s(4203),y=s(8754),v=s(6147),w=s(7672),b=s(3352),k=s(5743),A=s(8348),x=s(4887),C=s(1021);const S=(0,C.gb)({command:"each <script>",describe:"Run script on many workspaces",builder:async e=>(await(0,C.S4)(e,[v.G,y.C])).positional("script",{type:"string",demandOption:!0}).option("deps-mode",{choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}).option("private",{type:"boolean",group:"Filters:",desc:"Print only private workspaces"}).option("affected",{alias:"a",type:"string",coerce:e=>""===e?"master":e,group:"Affected:",desc:"Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\nReplaces %name by workspace name."}).option("affected-rev-sort",{type:"string",group:"Affected:",desc:"Sort applied to git tag / git branch command"}).option("affected-rev-fallback",{type:"string",default:"master",group:"Affected:",desc:"Fallback revision, used if no revision matching the given format is found"}),async handler(e){const t=n.nC.get(n.Is),s=n.nC.getNamed(w.I,n.Wk),r=n.nC.get(k.N),a=n.nC.get(b.V);try{a.spin("Loading workspaces ...");const n=new m.B;n.add(new g.f([e.script])),void 0!==e.private&&n.add(new f.N(e.private)),void 0!==e.affected&&n.add(new h.L(e.affected,e.affectedRevFallback,e.affectedRevSort));const o=e._.map((e=>e.toString()));"each"===o[0]&&o.splice(0,1);const i=new u(r);for await(const t of n.filter(s.workspaces()))i.add(await t.run(e.script,o,{buildDeps:e.depsMode}));if(0===i.tasks.length)return a.failed("No workspace found !"),process.exit(1);if(a.stop(),t.rerender((0,c.jsx)(A.Z,{children:(0,c.jsx)(x.Z,{manager:r})})),i.start(),(await(0,d.mA)(i,"finished")).failed>0)return process.exit(1)}finally{a.stop()}}});var O=s(2419),E=s(8410),j=s(8881);const _=(0,C.gb)({command:"group <script..>",describe:"Run many scripts inside a workspace (experimental)",builder:async e=>(await(0,C.S4)(e,[v.G,y.C,O.R])).positional("script",{demandOption:!0,coerce:e=>n.nC.get(j.P).parse(e.join(" ")).roots[0]}).option("deps-mode",{choices:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}),async handler(e){const t=n.nC.get(n.Is),s=n.nC.getNamed(E.j,n.Wk),r=n.nC.get(k.N),a=n.nC.get(j.P),o=await a.buildTask(e.script,s,{buildDeps:e.depsMode});if(r.add(o),t.rerender((0,c.jsx)(A.Z,{children:(0,c.jsx)(x.Z,{manager:r})})),"failed"===(await(0,d.mA)(o,"completed")).status)return process.exit(1)}});var N=s(7796),q=s.n(N),Y=s(9411),I=s.n(Y),D=s(248),z=s.n(D),U=s(5740);const Z=["name","version","root"],R=["name","version","slug","root"],P=["name"],G={name:e=>e.name,version:(e,t)=>e.manifest.version||(t?void 0:q().grey("unset")),root:e=>e.cwd,slug:e=>z()(e.name)},J=(0,C.gb)({command:["list","ls"],describe:"List workspaces",builder:async e=>(await(0,C.S4)(e,[v.G,y.C])).option("private",{type:"boolean",group:"Filters:",desc:"Print only private workspaces"}).option("with-script",{type:"array",string:!0,group:"Filters:",desc:"Print only workspaces having the given script"}).option("affected",{alias:"a",type:"string",coerce:e=>""===e?"master":e,group:"Affected:",desc:"Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\nReplaces %name by workspace name."}).option("affected-rev-sort",{type:"string",group:"Affected:",desc:"Sort applied to git tag / git branch command"}).option("affected-rev-fallback",{type:"string",default:"master",group:"Affected:",desc:"Fallback revision, used if no revision matching the given format is found"}).option("attrs",{type:"array",choices:["name","version","root","slug"],default:[],group:"Format:",desc:"Select printed attributes"}).option("headers",{type:"boolean",group:"Format:",desc:"Prints columns headers"}).option("long",{alias:"l",type:"boolean",group:"Format:",desc:"Prints name, version and root of all workspaces"}).option("json",{type:"boolean",group:"Format:",desc:"Prints data as a JSON array"}),async handler(e){const t=new m.B;void 0!==e.private&&t.add(new f.N(e.private)),e.withScript&&t.add(new g.f(e.withScript)),void 0!==e.affected&&t.add(new h.L(e.affected,e.affectedRevFallback,e.affectedRevSort));const s=n.nC.getNamed(w.I,n.Wk),r=[];for await(const e of t.filter(s.workspaces()))r.push(e);let a=e.attrs;0===a.length&&(a=e.long?Z:e.json?R:P);const o=r.map((t=>function(e){return(t,s)=>{const r={};for(const a of e)r[a]=G[a](t,s);return r}}(a)(t,e.json||!1)));if(e.json)process.stdout.isTTY?console.log(JSON.stringify(o,null,2)):process.stdout.write(JSON.stringify(o));else{const t=n.nC.get(n.Is);for(const e of o)e.root&&(e.root=I().relative(process.cwd(),e.root)||".");t.rerender((0,c.jsx)(A.Z,{children:(0,c.jsx)(U.Z,{items:o,headers:e.headers??a.length>1})}))}}}),F=(0,C.gb)({command:"run <script>",describe:"Run script inside workspace",builder:async e=>(await(0,C.S4)(e,[v.G,y.C,O.R])).positional("script",{type:"string",demandOption:!0}).option("deps-mode",{choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}),async handler(e){const t=n.nC.get(n.Is),s=n.nC.getNamed(E.j,n.Wk),r=n.nC.get(k.N),a=e._.map((e=>e.toString()));"run"===a[0]&&a.splice(0,1);const o=await s.run(e.script,a,{buildDeps:e.depsMode});if(r.add(o),t.rerender((0,c.jsx)(A.Z,{children:(0,c.jsx)(x.Z,{manager:r})})),"failed"===(await(0,d.mA)(o,"completed")).status)return process.exit(1)}});var T=s(6238);const H=(0,C.gb)({command:"tree",describe:"Print workspace dependency tree",builder:e=>(0,C.S4)(e,[v.G,y.C,O.R]),handler:()=>{const e=n.nC.get(n.Is),t=n.nC.getNamed(E.j,n.Wk);e.rerender((0,c.jsx)(A.Z,{children:(0,c.jsx)(T.Z,{workspace:t})}))}}),L=[S,_,J,F,H];var W=s(612),M=s.n(W),B=s(8004);const K={1:"verbose",2:"debug"},V=(0,C.kl)({builder:async e=>e.option("verbose",{alias:"v",type:"count",description:"Set verbosity level"}).option("jobs",{alias:"j",type:"number",default:(await n.nC.getAsync(B.k)).jobs??M().cpus().length-1,description:"Set maximum parallel job number"}),handler(e){e.verbose&&(n.nC.get(o.Y).level=K[Math.min(e.verbose,2)]),n.nC.bind(n.Ro).toConstantValue({jobs:e.jobs})}});(async()=>{try{const e=(0,r.Z)((0,a.b)(process.argv)).scriptName("jill").completion("completion","Generate bash completion script").help("help","Show help for a command").version("version","Show version","2.1.0").wrap(process.stdout.columns);await(0,C.S4)(e,[V]);const t=await n.nC.getAsync(i.B);await t.loadPlugins(e),await e.command(L).demandCommand().recommendCommands().strict().parse()}catch(e){n.nC.get(o.Y).error(e),process.exit(1)}})()},248:function(e){var t;t=function(){var e=JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\"","”":"\\"","„":"\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}'),t=JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}');function s(s,r){if("string"!=typeof s)throw new Error("slugify: string argument expected");var a=t[(r="string"==typeof r?{replacement:r}:r||{}).locale]||{},n=void 0===r.replacement?"-":r.replacement,o=void 0===r.trim||r.trim,i=s.normalize().split("").reduce((function(t,s){var o=a[s]||e[s]||s;return o===n&&(o=" "),t+o.replace(r.remove||/[^\w\s$*_+~.()'"!\-:@]+/g,"")}),"");return r.strict&&(i=i.replace(/[^A-Za-z0-9\s]/g,"")),o&&(i=i.trim()),i=i.replace(/\s+/g,n),r.lower&&(i=i.toLowerCase()),i}return s.extend=function(t){Object.assign(e,t)},s},e.exports=t(),e.exports.default=t()},9491:e=>{"use strict";e.exports=require("assert")},4300:e=>{"use strict";e.exports=require("buffer")},2081:e=>{"use strict";e.exports=require("child_process")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},3685:e=>{"use strict";e.exports=require("http")},5687:e=>{"use strict";e.exports=require("https")},8188:e=>{"use strict";e.exports=require("module")},7718:e=>{"use strict";e.exports=require("node:child_process")},6005:e=>{"use strict";e.exports=require("node:crypto")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},612:e=>{"use strict";e.exports=require("node:os")},9411:e=>{"use strict";e.exports=require("node:path")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},2781:e=>{"use strict";e.exports=require("stream")},1576:e=>{"use strict";e.exports=require("string_decoder")},6224:e=>{"use strict";e.exports=require("tty")},7310:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},9796:e=>{"use strict";e.exports=require("zlib")}};var t=require("./runtime.js");t.C(e);var s=t.X(0,[989,784],(()=>(8414,t(t.s=8414))));module.exports=s})();
1
+ (()=>{var e={id:179,ids:[179]};e.modules={6297:(e,t,s)=>{"use strict";s.r(t);var r=s(6627),a=(s(1524),s(2495));s(3919),s(4712);var o=s(2010),n=s(4415),i=s(2119),c=s(9127);class d extends i.n{constructor(e){super(),this.manager=e,this._tasks=new Set,this._status="created",this._results={success:0,failed:0}}_handleComplete(e,t){this.emit("completed",e),t?++this._results.success:++this._results.failed,this._results.success+this._results.failed===this._tasks.size&&(this._status="finished",this.emit("finished",this._results))}add(e){if((0,c.M)(e),"created"!==this._status)throw Error(`Cannot add a task to a ${this._status} task set`);this._tasks.has(e)||(e.subscribe("status",(({status:t})=>{"running"===t?this.emit("started",e):"done"!==t&&"failed"!==t||this._handleComplete(e,"done"===t)})),this._tasks.add(e))}start(){if("created"!==this._status)throw Error(`Cannot start a ${this._status} task set`);if(0===this._tasks.size)this._status="finished",this.emit("finished",this._results);else{this._status="started";for(const e of this._tasks)this.manager.add(e)}}get status(){return this._status}get tasks(){return Array.from(this._tasks.values())}get results(){return this._results}}var p=s(8652),u=s(2999),l=s(307),h=s(4203),m=s(8754),f=s(6147),g=s(7672),y=s(6831),v=s(3352),w=s(5743),b=s(8348),k=s(4887),A=s(1021);const x=(0,A.gb)({command:"each <script>",describe:"Run script on many workspaces",builder:async e=>(await(0,A.S4)(e,[f.G,m.C])).positional("script",{type:"string",demandOption:!0}).option("deps-mode",{choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}).option("private",{type:"boolean",group:"Filters:",desc:"Print only private workspaces"}).option("affected",{alias:"a",type:"string",coerce:e=>""===e?"master":e,group:"Affected:",desc:"Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\nReplaces %name by workspace name."}).option("affected-rev-sort",{type:"string",group:"Affected:",desc:"Sort applied to git tag / git branch command"}).option("affected-rev-fallback",{type:"string",default:"master",group:"Affected:",desc:"Fallback revision, used if no revision matching the given format is found"}),async handler(e){const t=y.nC.get(y.Is),s=y.nC.getNamed(g.I,y.Wk),r=y.nC.get(w.N),a=y.nC.get(v.V);try{a.spin("Loading workspaces ...");const i=new u.B;i.add(new h.f([e.script])),void 0!==e.private&&i.add(new l.N(e.private)),void 0!==e.affected&&i.add(new p.L(e.affected,e.affectedRevFallback,e.affectedRevSort));const c=e._.map((e=>e.toString()));"each"===c[0]&&c.splice(0,1);const m=new d(r);for await(const t of i.filter(s.workspaces()))m.add(await t.run(e.script,c,{buildDeps:e.depsMode}));if(0===m.tasks.length)return a.failed("No workspace found !"),process.exit(1);if(a.stop(),t.rerender((0,o.jsx)(b.Z,{children:(0,o.jsx)(k.Z,{manager:r})})),m.start(),(await(0,n.mA)(m,"finished")).failed>0)return process.exit(1)}finally{a.stop()}}});var C=s(2419),S=s(8410),O=s(8881);const E=(0,A.gb)({command:"group <script..>",describe:"Run many scripts inside a workspace (experimental)",builder:async e=>(await(0,A.S4)(e,[f.G,m.C,C.R])).positional("script",{demandOption:!0,coerce:e=>y.nC.get(O.P).parse(e.join(" ")).roots[0]}).option("deps-mode",{choices:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}),async handler(e){const t=y.nC.get(y.Is),s=y.nC.getNamed(S.j,y.Wk),r=y.nC.get(w.N),a=y.nC.get(O.P),i=await a.buildTask(e.script,s,{buildDeps:e.depsMode});if(r.add(i),t.rerender((0,o.jsx)(b.Z,{children:(0,o.jsx)(k.Z,{manager:r})})),"failed"===(await(0,n.mA)(i,"completed")).status)return process.exit(1)}});var j=s(9),_=s(9411),N=s.n(_),q=s(248),Y=s.n(q),I=s(5740);const D=["name","version","root"],z=["name","version","slug","root"],U=["name"],Z={name:e=>e.name,version:(e,t)=>e.manifest.version||(t?void 0:j.ZP.grey("unset")),root:e=>e.cwd,slug:e=>Y()(e.name)},R=(0,A.gb)({command:["list","ls"],describe:"List workspaces",builder:async e=>(await(0,A.S4)(e,[f.G,m.C])).option("private",{type:"boolean",group:"Filters:",desc:"Print only private workspaces"}).option("with-script",{type:"array",string:!0,group:"Filters:",desc:"Print only workspaces having the given script"}).option("affected",{alias:"a",type:"string",coerce:e=>""===e?"master":e,group:"Affected:",desc:"Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\nReplaces %name by workspace name."}).option("affected-rev-sort",{type:"string",group:"Affected:",desc:"Sort applied to git tag / git branch command"}).option("affected-rev-fallback",{type:"string",default:"master",group:"Affected:",desc:"Fallback revision, used if no revision matching the given format is found"}).option("attrs",{type:"array",choices:["name","version","root","slug"],default:[],group:"Format:",desc:"Select printed attributes"}).option("headers",{type:"boolean",group:"Format:",desc:"Prints columns headers"}).option("long",{alias:"l",type:"boolean",group:"Format:",desc:"Prints name, version and root of all workspaces"}).option("json",{type:"boolean",group:"Format:",desc:"Prints data as a JSON array"}),async handler(e){const t=new u.B;void 0!==e.private&&t.add(new l.N(e.private)),e.withScript&&t.add(new h.f(e.withScript)),void 0!==e.affected&&t.add(new p.L(e.affected,e.affectedRevFallback,e.affectedRevSort));const s=y.nC.getNamed(g.I,y.Wk),r=[];for await(const e of t.filter(s.workspaces()))r.push(e);let a=e.attrs;0===a.length&&(a=e.long?D:e.json?z:U);const n=r.map((t=>function(e){return(t,s)=>{const r={};for(const a of e)r[a]=Z[a](t,s);return r}}(a)(t,e.json||!1)));if(e.json)process.stdout.isTTY?console.log(JSON.stringify(n,null,2)):process.stdout.write(JSON.stringify(n));else{const t=y.nC.get(y.Is);for(const e of n)e.root&&(e.root=N().relative(process.cwd(),e.root)||".");t.rerender((0,o.jsx)(b.Z,{children:(0,o.jsx)(I.Z,{items:n,headers:e.headers??a.length>1})}))}}}),P=(0,A.gb)({command:"run <script>",describe:"Run script inside workspace",builder:async e=>(await(0,A.S4)(e,[f.G,m.C,C.R])).positional("script",{type:"string",demandOption:!0}).option("deps-mode",{choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}),async handler(e){const t=y.nC.get(y.Is),s=y.nC.getNamed(S.j,y.Wk),r=y.nC.get(w.N),a=e._.map((e=>e.toString()));"run"===a[0]&&a.splice(0,1);const i=await s.run(e.script,a,{buildDeps:e.depsMode});if(r.add(i),t.rerender((0,o.jsx)(b.Z,{children:(0,o.jsx)(k.Z,{manager:r})})),"failed"===(await(0,n.mA)(i,"completed")).status)return process.exit(1)}});var G=s(6238);const J=(0,A.gb)({command:"tree",describe:"Print workspace dependency tree",builder:e=>(0,A.S4)(e,[f.G,m.C,C.R]),handler:()=>{const e=y.nC.get(y.Is),t=y.nC.getNamed(S.j,y.Wk);e.rerender((0,o.jsx)(b.Z,{children:(0,o.jsx)(G.Z,{workspace:t})}))}}),F=[x,E,R,P,J];var T=s(612),H=s.n(T),L=s(8004),W=s(6798);const M={1:"verbose",2:"debug"},B=(0,A.kl)({builder:async e=>e.option("verbose",{alias:"v",type:"count",description:"Set verbosity level"}).option("jobs",{alias:"j",type:"number",default:(await y.nC.getAsync(L.k)).jobs??H().cpus().length-1,description:"Set maximum parallel job number"}),handler(e){e.verbose&&(y.nC.get(W.Y).level=M[Math.min(e.verbose,2)]),y.nC.bind(y.Ro).toConstantValue({jobs:e.jobs})}});var K=s(4834);(async()=>{try{const e=(0,r.Z)((0,a.b)(process.argv)).scriptName("jill").completion("completion","Generate bash completion script").help("help","Show help for a command").version("version","Show version","2.1.1").wrap(process.stdout.columns);await(0,A.S4)(e,[B]);const t=await y.nC.getAsync(K.B);await t.loadPlugins(e),await e.command(F).demandCommand().recommendCommands().strict().parse()}catch(e){y.nC.get(W.Y).error(e),process.exit(1)}})()},248:function(e){var t;t=function(){var e=JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\"","”":"\\"","„":"\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}'),t=JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}');function s(s,r){if("string"!=typeof s)throw new Error("slugify: string argument expected");var a=t[(r="string"==typeof r?{replacement:r}:r||{}).locale]||{},o=void 0===r.replacement?"-":r.replacement,n=void 0===r.trim||r.trim,i=s.normalize().split("").reduce((function(t,s){var n=a[s]||e[s]||s;return n===o&&(n=" "),t+n.replace(r.remove||/[^\w\s$*_+~.()'"!\-:@]+/g,"")}),"");return r.strict&&(i=i.replace(/[^A-Za-z0-9\s]/g,"")),n&&(i=i.trim()),i=i.replace(/\s+/g,o),r.lower&&(i=i.toLowerCase()),i}return s.extend=function(t){Object.assign(e,t)},s},e.exports=t(),e.exports.default=t()},9491:e=>{"use strict";e.exports=require("assert")},4300:e=>{"use strict";e.exports=require("buffer")},2081:e=>{"use strict";e.exports=require("child_process")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},3685:e=>{"use strict";e.exports=require("http")},5687:e=>{"use strict";e.exports=require("https")},8188:e=>{"use strict";e.exports=require("module")},7718:e=>{"use strict";e.exports=require("node:child_process")},6005:e=>{"use strict";e.exports=require("node:crypto")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},612:e=>{"use strict";e.exports=require("node:os")},9411:e=>{"use strict";e.exports=require("node:path")},7742:e=>{"use strict";e.exports=require("node:process")},5997:e=>{"use strict";e.exports=require("node:tty")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},2781:e=>{"use strict";e.exports=require("stream")},1576:e=>{"use strict";e.exports=require("string_decoder")},6224:e=>{"use strict";e.exports=require("tty")},7310:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},9796:e=>{"use strict";e.exports=require("zlib")}};var t=require("./runtime.js");t.C(e);var s=t.X(0,[748,784],(()=>(6297,t(t.s=6297))));module.exports=s})();
2
2
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","mappings":"yMAGO,MAAMA,UAAgB,IAEzBC,YAAYC,GACRC,QACAC,KAAKF,QAAUA,EACfE,KAAKC,OAAS,IAAIC,IAClBF,KAAKG,QAAU,UACfH,KAAKI,SAAW,CACZC,QAAS,EACTC,OAAQ,EAEhB,CAEAC,gBAAgBC,EAAMH,GAClBL,KAAKS,KAAK,YAAaD,GAEnBH,IACEL,KAAKI,SAASC,UAEdL,KAAKI,SAASE,OAEhBN,KAAKI,SAASC,QAAUL,KAAKI,SAASE,SAAWN,KAAKC,OAAOS,OAC7DV,KAAKG,QAAU,WACfH,KAAKS,KAAK,WAAYT,KAAKI,UAEnC,CACAO,IAAIH,GAEA,IADA,OAAaA,GACQ,YAAjBR,KAAKG,QACL,MAAMS,MAAM,0BAA0BZ,KAAKG,oBAE3CH,KAAKC,OAAOY,IAAIL,KAIpBA,EAAKM,UAAU,UAAU,EAAGC,aACT,YAAXA,EACAf,KAAKS,KAAK,UAAWD,GACH,SAAXO,GAAgC,WAAXA,GAC5Bf,KAAKO,gBAAgBC,EAAiB,SAAXO,EAC/B,IAGJf,KAAKC,OAAOU,IAAIH,GACpB,CACAQ,QACI,GAAqB,YAAjBhB,KAAKG,QACL,MAAMS,MAAM,kBAAkBZ,KAAKG,oBAEvC,GAAyB,IAArBH,KAAKC,OAAOS,KACZV,KAAKG,QAAU,WACfH,KAAKS,KAAK,WAAYT,KAAKI,cACxB,CAEHJ,KAAKG,QAAU,UAEf,IAAK,MAAMc,KAAKjB,KAAKC,OACjBD,KAAKF,QAAQa,IAAIM,EAEzB,CACJ,CAEIF,aACA,OAAOf,KAAKG,OAChB,CACIe,YACA,OAAOC,MAAMC,KAAKpB,KAAKC,OAAOoB,SAClC,CACIC,cACA,OAAOtB,KAAKI,QAChB,E,2HCvDJ,SAAemB,EAAAA,EAAAA,IAAc,CAC3BC,QAAS,gBACTC,SAAU,gCACVC,QAASC,MAAOC,UACPC,EAAAA,EAAAA,IAAiBD,EAAO,CAC7BE,EAAAA,EACAC,EAAAA,KAGDC,WAAW,SAAU,CAAEC,KAAM,SAAUC,cAAc,IACrDC,OAAO,YAAa,CACnBC,OAAQ,CAAC,MAAO,OAAQ,QACxBC,QAAS,MACTC,KAAM,qHAOPH,OAAO,UAAW,CACjBF,KAAM,UACNM,MAAO,WACPD,KAAM,kCAIPH,OAAO,WAAY,CAClBK,MAAO,IACPP,KAAM,SACNQ,OAASC,GAAwB,KAARA,EAAa,SAAWA,EACjDH,MAAO,YACPD,KAAM,yJAGPH,OAAO,oBAAqB,CAC3BF,KAAM,SACNM,MAAO,YACPD,KAAM,iDAEPH,OAAO,wBAAyB,CAC/BF,KAAM,SACNI,QAAS,SACTE,MAAO,YACPD,KAAM,8EAEVX,cAAcgB,GACZ,MAAMC,EAAMC,EAAAA,GAAAA,IAAcC,EAAAA,IACpBC,EAAUF,EAAAA,GAAAA,SAAmBG,EAAAA,EAASC,EAAAA,IACtCnD,EAAU+C,EAAAA,GAAAA,IAAcK,EAAAA,GACxBC,EAAUN,EAAAA,GAAAA,IAAcO,EAAAA,GAE9B,IACED,EAAQE,KAAK,0BAGb,MAAMC,EAAW,IAAIC,EAAAA,EACrBD,EAAS3C,IAAI,IAAI6C,EAAAA,EAAc,CAACb,EAAKc,eAEhBC,IAAjBf,EAAKgB,SACPL,EAAS3C,IAAI,IAAIiD,EAAAA,EAAcjB,EAAKgB,eAGhBD,IAAlBf,EAAKkB,UACPP,EAAS3C,IAAI,IAAImD,EAAAA,EACfnB,EAAKkB,SACLlB,EAAKoB,oBACLpB,EAAKqB,kBAKT,MAAMC,EAAOtB,EAAKuB,EAAEC,KAAIC,GAAOA,EAAIC,aAEnB,SAAZJ,EAAK,IACPA,EAAKK,OAAO,EAAG,GAIjB,MAAMpD,EAAQ,IAAItB,EAAQE,GAE1B,UAAW,MAAMyE,KAAOjB,EAASkB,OAAOzB,EAAQ0B,cAC9CvD,EAAMP,UAAU4D,EAAIG,IAAI/B,EAAKc,OAAQQ,EAAM,CACzCU,UAAWhC,EAAKiC,YAIpB,GAA2B,IAAvB1D,EAAMA,MAAM2D,OAEd,OADA1B,EAAQ7C,OAAO,wBACRwE,QAAQC,KAAK,GAiBtB,GAdA5B,EAAQ6B,OAGRpC,EAAIqC,UACF,SAACC,EAAAA,EAAMA,C,UACL,SAACC,EAAAA,EAAkBA,CAACrF,QAASA,OAKjCoB,EAAMF,eAEeoE,EAAAA,EAAAA,IAAalE,EAAO,aAE9BZ,OAAS,EAClB,OAAOwE,QAAQC,KAAK,EAIxB,CAFE,QACA5B,EAAQ6B,MACV,CACF,I,kCCpHF,SAAezD,EAAAA,EAAAA,IAAc,CAC3BC,QAAS,mBACTC,SAAU,qDACVC,QAASC,MAAOC,UACPC,EAAAA,EAAAA,IAAiBD,EAAO,CAC7BE,EAAAA,EACAC,EAAAA,EACAsD,EAAAA,KAECrD,WAAW,SAAU,CACpBE,cAAc,EACdO,OAAO6C,GACUzC,EAAAA,GAAAA,IAAc0C,EAAAA,GACfC,MAAMF,EAAKG,KAAK,MAAMC,MAAM,KAG7CvD,OAAO,YAAa,CACnBwD,QAAS,CAAC,MAAO,OAAQ,QACzBtD,QAAS,MACTC,KAAM,qHAKZX,cAAcgB,GACZ,MAAMC,EAAMC,EAAAA,GAAAA,IAAcC,EAAAA,IACpB8C,EAAY/C,EAAAA,GAAAA,SAAmBgD,EAAAA,EAAW5C,EAAAA,IAC1CnD,EAAU+C,EAAAA,GAAAA,IAAcK,EAAAA,GACxB4C,EAASjD,EAAAA,GAAAA,IAAc0C,EAAAA,GAGvBhD,QAAcuD,EAAOC,UAAUpD,EAAKc,OAAQmC,EAAW,CAC3DjB,UAAWhC,EAAKiC,WAelB,GAZA9E,EAAQa,IAAI4B,GAGZK,EAAIqC,UACF,SAACC,EAAAA,EAAMA,C,UACL,SAACC,EAAAA,EAAkBA,CAACrF,QAASA,OAOX,kBAFDsF,EAAAA,EAAAA,IAAa7C,EAAO,cAE9BxB,OACT,OAAO+D,QAAQC,KAAK,EAExB,I,sECxCF,MAAMiB,EAA+B,CAAC,OAAQ,UAAW,QACnDC,EAA+B,CAAC,OAAQ,UAAW,OAAQ,QAC3DC,EAAkC,CAAC,QAEnCC,EAA+D,CACnEC,KAAM7B,GAAOA,EAAI6B,KACjBC,QAAS,CAAC9B,EAAK+B,IAAS/B,EAAIgC,SAASF,UAAYC,OAAO5C,EAAY8C,IAAAA,KAAW,UAC/EC,KAAMlC,GAAOA,EAAImC,IACjBC,KAAMpC,GAAOqC,IAAQrC,EAAI6B,OAiB3B,GAAe7E,EAAAA,EAAAA,IAAc,CAC3BC,QAAS,CAAC,OAAQ,MAClBC,SAAU,kBACVC,QAASC,MAAOC,UACPC,EAAAA,EAAAA,IAAiBD,EAAO,CAC7BE,EAAAA,EACAC,EAAAA,KAGDI,OAAO,UAAW,CACjBF,KAAM,UACNM,MAAO,WACPD,KAAM,kCAEPH,OAAO,cAAe,CACrBF,KAAM,QACN4E,QAAQ,EACRtE,MAAO,WACPD,KAAM,kDAIPH,OAAO,WAAY,CAClBK,MAAO,IACPP,KAAM,SACNQ,OAASC,GAAwB,KAARA,EAAa,SAAWA,EACjDH,MAAO,YACPD,KAAM,yJAGPH,OAAO,oBAAqB,CAC3BF,KAAM,SACNM,MAAO,YACPD,KAAM,iDAEPH,OAAO,wBAAyB,CAC/BF,KAAM,SACNI,QAAS,SACTE,MAAO,YACPD,KAAM,8EAEPH,OAAO,QAAS,CACfF,KAAM,QACN0D,QAAS,CAAC,OAAQ,UAAW,OAAQ,QACrCtD,QAAS,GACTE,MAAO,UACPD,KAAM,8BAEPH,OAAO,UAAW,CACjBF,KAAM,UACNM,MAAO,UACPD,KAAM,2BAEPH,OAAO,OAAQ,CACdK,MAAO,IACPP,KAAM,UACNM,MAAO,UACPD,KAAM,oDAEPH,OAAO,OAAQ,CACdF,KAAM,UACNM,MAAO,UACPD,KAAM,gCAEVX,cAAcgB,GAEZ,MAAMW,EAAW,IAAIC,EAAAA,OAEAG,IAAjBf,EAAKgB,SACPL,EAAS3C,IAAI,IAAIiD,EAAAA,EAAcjB,EAAKgB,UAGlChB,EAAKmE,YACPxD,EAAS3C,IAAI,IAAI6C,EAAAA,EAAcb,EAAKmE,kBAGhBpD,IAAlBf,EAAKkB,UACPP,EAAS3C,IAAI,IAAImD,EAAAA,EACfnB,EAAKkB,SACLlB,EAAKoB,oBACLpB,EAAKqB,kBAKT,MAAMjB,EAAUF,EAAAA,GAAAA,SAAmBG,EAAAA,EAASC,EAAAA,IACtCwB,EAA0B,GAEhC,UAAW,MAAMF,KAAOjB,EAASkB,OAAOzB,EAAQ0B,cAC9CA,EAAWsC,KAAKxC,GAIlB,IAAIyC,EAAQrE,EAAKqE,MAEI,IAAjBA,EAAMnC,SAENmC,EADErE,EAAKsE,KACCjB,EACCrD,EAAK2D,KACNL,EAEAC,GAIZ,MAAMgB,EAAOzC,EAAWN,KAAII,GAtHhC,SAAwByC,GACtB,MAAO,CAACzC,EAAK+B,KACX,MAAMY,EAAa,CAAC,EAEpB,IAAK,MAAMC,KAAQH,EACjBE,EAAKC,GAAQhB,EAAWgB,GAAM5C,EAAK+B,GAGrC,OAAOY,CAAI,CAEf,CA4GuCE,CAAeJ,EAAfI,CAAsB7C,EAAK5B,EAAK2D,OAAQ,KAG3E,GAAI3D,EAAK2D,KACHxB,QAAQuC,OAAOC,MACjBC,QAAQC,IAAIC,KAAKC,UAAUR,EAAM,KAAM,IAEvCpC,QAAQuC,OAAOM,MAAMF,KAAKC,UAAUR,QAEjC,CACL,MAAMtE,EAAMC,EAAAA,GAAAA,IAAcC,EAAAA,IAE1B,IAAK,MAAM8E,KAAKV,EACVU,EAAEnB,OACJmB,EAAEnB,KAAOoB,IAAAA,SAAc/C,QAAQ4B,MAAOkB,EAAEnB,OAAS,KAIrD7D,EAAIqC,UACF,SAACC,EAAAA,EAAMA,C,UACL,SAAC4C,EAAAA,EAAIA,CAACC,MAAOb,EAAMc,QAASrF,EAAKqF,SAAYhB,EAAMnC,OAAS,MAGlE,CACF,ICrKF,GAAetD,EAAAA,EAAAA,IAAc,CAC3BC,QAAS,eACTC,SAAU,8BACVC,QAASC,MAAOC,UACPC,EAAAA,EAAAA,IAAiBD,EAAO,CAC7BE,EAAAA,EACAC,EAAAA,EACAsD,EAAAA,KAECrD,WAAW,SAAU,CAAEC,KAAM,SAAUC,cAAc,IACrDC,OAAO,YAAa,CACnBC,OAAQ,CAAC,MAAO,OAAQ,QACxBC,QAAS,MACTC,KAAM,qHAKZX,cAAcgB,GACZ,MAAMC,EAAMC,EAAAA,GAAAA,IAAcC,EAAAA,IACpB8C,EAAY/C,EAAAA,GAAAA,SAAmBgD,EAAAA,EAAW5C,EAAAA,IAC1CnD,EAAU+C,EAAAA,GAAAA,IAAcK,EAAAA,GAGxBe,EAAOtB,EAAKuB,EAAEC,KAAIC,GAAOA,EAAIC,aAEnB,QAAZJ,EAAK,IACPA,EAAKK,OAAO,EAAG,GAIjB,MAAM9D,QAAaoF,EAAUlB,IAAI/B,EAAKc,OAAQQ,EAAM,CAClDU,UAAWhC,EAAKiC,WAclB,GAZA9E,EAAQa,IAAIH,GAGZoC,EAAIqC,UACF,SAACC,EAAAA,EAAMA,C,UACL,SAACC,EAAAA,EAAkBA,CAACrF,QAASA,OAOX,kBAFDsF,EAAAA,EAAAA,IAAa5E,EAAM,cAE7BO,OACT,OAAO+D,QAAQC,KAAK,EAExB,I,cCpDF,SAAexD,EAAAA,EAAAA,IAAc,CAC3BC,QAAS,OACTC,SAAU,kCACVC,QAAUE,IACRC,EAAAA,EAAAA,IAAiBD,EAAO,CACtBE,EAAAA,EACAC,EAAAA,EACAsD,EAAAA,IAEJ4C,QAAS,KACP,MAAMrF,EAAMC,EAAAA,GAAAA,IAAcC,EAAAA,IACpB8C,EAAY/C,EAAAA,GAAAA,SAAmBgD,EAAAA,EAAW5C,EAAAA,IAEhDL,EAAIqC,UACF,SAACC,EAAAA,EAAMA,C,UACL,SAACgD,EAAAA,EAAaA,CAACtC,UAAWA,M,IClBrBuC,EAAW,CAACC,EAAM7F,EAAO8F,EAAM3D,EAAK4D,G,gCCCjD,MAAMC,EAA0C,CAC9C,EAAG,UACH,EAAG,SAIQC,GAAgBC,EAAAA,EAAAA,IAAiB,CAC5C/G,QAASC,MAAOC,GAAUA,EACvBO,OAAO,UAAW,CACjBK,MAAO,IACPP,KAAM,QACNyG,YAAa,wBAEdvG,OAAO,OAAQ,CACdK,MAAO,IACPP,KAAM,SACNI,eAAgBQ,EAAAA,GAAAA,SAAmB8F,EAAAA,IAASC,MAASC,IAAAA,OAAUhE,OAAS,EACxE6D,YAAa,oCAEjBT,QAAQtF,GACFA,EAAKmG,UACQjG,EAAAA,GAAAA,IAAckG,EAAAA,GACtBC,MAAQT,EAAgBU,KAAKC,IAAIvG,EAAKmG,QAAS,KAGxDjG,EAAAA,GAAAA,KAAesG,EAAAA,IAAiBC,gBAAgB,CAC9CR,KAAMjG,EAAKiG,MAEf,ICrBD,WACC,IAEE,MAAM9C,GAASlE,EAAAA,EAAAA,IAAMyH,EAAAA,EAAAA,GAAQvE,QAAQwE,OAClCC,WAAW,QACXC,WAAW,aAAc,mCACzBC,KAAK,OAAQ,2BACbpD,QAAQ,UAAW,e,SACnBqD,KAAK5E,QAAQuC,OAAOsC,eAGjB9H,EAAAA,EAAAA,IAAiBiE,EAAQ,CAAC0C,IAGhC,MAAMoB,QAAqB/G,EAAAA,GAAAA,SAAmBgH,EAAAA,SACxCD,EAAaE,YAAYhE,SAGzBA,EACHtE,QAAQ2G,GACR4B,gBACAC,oBACAC,SACAzE,OAML,CALE,MAAO0E,GACQrH,EAAAA,GAAAA,IAAckG,EAAAA,GACtBoB,MAAMD,GAEbpF,QAAQC,KAAK,EACf,CACD,EA9BA,E,kBCdC,IAAsBqF,IAYL,WACjB,IAAIC,EAAU5C,KAAKjC,MAAM,k2KACrB8E,EAAU7C,KAAKjC,MAAM,wmCAEzB,SAAS+E,EAAS1D,EAAQ2D,GACxB,GAAsB,iBAAX3D,EACT,MAAM,IAAIjG,MAAM,qCAOlB,IAAI6J,EAASH,GAJbE,EAA8B,iBAAZA,EACd,CAACE,YAAaF,GACdA,GAAW,CAAC,GAEaC,SAAW,CAAC,EAErCC,OAAsChH,IAAxB8G,EAAQE,YAA4B,IAAMF,EAAQE,YAEhEC,OAAwBjH,IAAjB8G,EAAQG,MAA4BH,EAAQG,KAEnDhE,EAAOE,EAAO+D,YAAYC,MAAM,IAEjCC,QAAO,SAAUC,EAAQC,GACxB,IAAIC,EAAaR,EAAOO,IAAOX,EAAQW,IAAOA,EAI9C,OAHIC,IAAeP,IACjBO,EAAa,KAERF,EAASE,EAEbV,QAAQC,EAAQU,QAAU,2BAA4B,GAC3D,GAAG,IAkBL,OAhBIV,EAAQP,SACVtD,EAAOA,EAAK4D,QAAQ,kBAAmB,KAGrCI,IACFhE,EAAOA,EAAKgE,QAKdhE,EAAOA,EAAK4D,QAAQ,OAAQG,GAExBF,EAAQW,QACVxE,EAAOA,EAAKyE,eAGPzE,CACT,CAMA,OAJA4D,EAAQc,OAAS,SAAUC,GACzBC,OAAOC,OAAOnB,EAASiB,EACzB,EAEOf,CACT,EAjEIkB,EAAOC,QAAUtB,IACjBqB,EAAOC,QAAP,QAA4BtB,G,wBCJhCqB,EAAOC,QAAUC,QAAQ,S,wBCAzBF,EAAOC,QAAUC,QAAQ,S,wBCAzBF,EAAOC,QAAUC,QAAQ,gB,wBCAzBF,EAAOC,QAAUC,QAAQ,S,wBCAzBF,EAAOC,QAAUC,QAAQ,K,wBCAzBF,EAAOC,QAAUC,QAAQ,O,wBCAzBF,EAAOC,QAAUC,QAAQ,Q,wBCAzBF,EAAOC,QAAUC,QAAQ,S,wBCAzBF,EAAOC,QAAUC,QAAQ,qB,wBCAzBF,EAAOC,QAAUC,QAAQ,c,wBCAzBF,EAAOC,QAAUC,QAAQ,mB,uBCAzBF,EAAOC,QAAUC,QAAQ,U,wBCAzBF,EAAOC,QAAUC,QAAQ,Y,wBCAzBF,EAAOC,QAAUC,QAAQ,K,wBCAzBF,EAAOC,QAAUC,QAAQ,O,wBCAzBF,EAAOC,QAAUC,QAAQ,S,wBCAzBF,EAAOC,QAAUC,QAAQ,iB,wBCAzBF,EAAOC,QAAUC,QAAQ,M,wBCAzBF,EAAOC,QAAUC,QAAQ,M,wBCAzBF,EAAOC,QAAUC,QAAQ,O,wBCAzBF,EAAOC,QAAUC,QAAQ,O","sources":["webpack://@jujulego/jill/./.yarn/cache/@jujulego-tasks-npm-1.1.3-91d9ff2a2d-9b0aefca52.zip/node_modules/@jujulego/tasks/dist/esm/task-set.js","webpack://@jujulego/jill/./src/commands/each.tsx","webpack://@jujulego/jill/./src/commands/group.tsx","webpack://@jujulego/jill/./src/commands/list.tsx","webpack://@jujulego/jill/./src/commands/run.tsx","webpack://@jujulego/jill/./src/commands/tree.tsx","webpack://@jujulego/jill/./src/commands/index.ts","webpack://@jujulego/jill/./src/middlewares/config-options.ts","webpack://@jujulego/jill/./src/main.ts","webpack://@jujulego/jill/./.yarn/cache/slugify-npm-1.6.5-6db25d7016-a955a1b600.zip/node_modules/slugify/slugify.js","webpack://@jujulego/jill/external node-commonjs \"assert\"","webpack://@jujulego/jill/external node-commonjs \"buffer\"","webpack://@jujulego/jill/external node-commonjs \"child_process\"","webpack://@jujulego/jill/external node-commonjs \"events\"","webpack://@jujulego/jill/external node-commonjs \"fs\"","webpack://@jujulego/jill/external node-commonjs \"http\"","webpack://@jujulego/jill/external node-commonjs \"https\"","webpack://@jujulego/jill/external node-commonjs \"module\"","webpack://@jujulego/jill/external node-commonjs \"node:child_process\"","webpack://@jujulego/jill/external node-commonjs \"node:crypto\"","webpack://@jujulego/jill/external node-commonjs \"node:fs/promises\"","webpack://@jujulego/jill/external node-commonjs \"node:os\"","webpack://@jujulego/jill/external node-commonjs \"node:path\"","webpack://@jujulego/jill/external node-commonjs \"os\"","webpack://@jujulego/jill/external node-commonjs \"path\"","webpack://@jujulego/jill/external node-commonjs \"stream\"","webpack://@jujulego/jill/external node-commonjs \"string_decoder\"","webpack://@jujulego/jill/external node-commonjs \"tty\"","webpack://@jujulego/jill/external node-commonjs \"url\"","webpack://@jujulego/jill/external node-commonjs \"util\"","webpack://@jujulego/jill/external node-commonjs \"zlib\""],"sourcesContent":["import { EventSource } from '@jujulego/event-tree';\nimport { assertIsTask } from './task';\n// Class\nexport class TaskSet extends EventSource {\n // Constructor\n constructor(manager){\n super();\n this.manager = manager;\n this._tasks = new Set();\n this._status = 'created';\n this._results = {\n success: 0,\n failed: 0\n };\n }\n // Methods\n _handleComplete(task, success) {\n this.emit('completed', task);\n // Trigger finished\n if (success) {\n ++this._results.success;\n } else {\n ++this._results.failed;\n }\n if (this._results.success + this._results.failed === this._tasks.size) {\n this._status = 'finished';\n this.emit('finished', this._results);\n }\n }\n add(task) {\n assertIsTask(task);\n if (this._status !== 'created') {\n throw Error(`Cannot add a task to a ${this._status} task set`);\n }\n if (this._tasks.has(task)) {\n return;\n }\n // Listen to task's status\n task.subscribe('status', ({ status })=>{\n if (status === 'running') {\n this.emit('started', task);\n } else if (status === 'done' || status === 'failed') {\n this._handleComplete(task, status === 'done');\n }\n });\n // Add task\n this._tasks.add(task);\n }\n start() {\n if (this._status !== 'created') {\n throw Error(`Cannot start a ${this._status} task set`);\n }\n if (this._tasks.size === 0) {\n this._status = 'finished';\n this.emit('finished', this._results);\n } else {\n // Update status\n this._status = 'started';\n // Add tasks to task manager\n for (const t of this._tasks){\n this.manager.add(t);\n }\n }\n }\n // Properties\n get status() {\n return this._status;\n }\n get tasks() {\n return Array.from(this._tasks.values());\n }\n get results() {\n return this._results;\n }\n}\n\n//# sourceMappingURL=task-set.js.map\n","import { waitForEvent } from '@jujulego/event-tree';\nimport { TaskSet } from '@jujulego/tasks';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter';\nimport { Pipeline } from '@/src/filters/pipeline';\nimport { PrivateFilter } from '@/src/filters/private.filter';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter';\nimport { loadProject } from '@/src/middlewares/load-project';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Project } from '@/src/project/project';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport { SpinnerService } from '@/src/services/spinner.service';\nimport { TASK_MANAGER } from '@/src/services/task-manager.config';\nimport Layout from '@/src/ui/layout';\nimport TaskManagerSpinner from '@/src/ui/task-manager-spinner';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Command\nexport default defineCommand({\n command: 'each <script>',\n describe: 'Run script on many workspaces',\n builder: async (yargs) =>\n (await applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n ]))\n // Run options\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n\n // Affected filter\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n }),\n async handler(args) {\n const app = container.get(INK_APP);\n const project = container.getNamed(Project, CURRENT);\n const manager = container.get(TASK_MANAGER);\n const spinner = container.get(SpinnerService);\n\n try {\n spinner.spin('Loading workspaces ...');\n\n // Setup pipeline\n const pipeline = new Pipeline();\n pipeline.add(new ScriptsFilter([args.script]));\n\n if (args.private !== undefined) {\n pipeline.add(new PrivateFilter(args.private));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'each') {\n rest.splice(0, 1);\n }\n\n // Create script tasks\n const tasks = new TaskSet(manager);\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n tasks.add(await wks.run(args.script, rest, {\n buildDeps: args.depsMode,\n }));\n }\n\n if (tasks.tasks.length === 0) {\n spinner.failed('No workspace found !');\n return process.exit(1);\n }\n\n spinner.stop();\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Start and wait for result\n tasks.start();\n\n const result = await waitForEvent(tasks, 'finished');\n\n if (result.failed > 0) {\n return process.exit(1);\n }\n } finally {\n spinner.stop();\n }\n }\n});\n","import { waitForEvent } from '@jujulego/event-tree';\n\nimport { loadProject } from '@/src/middlewares/load-project';\nimport { loadWorkspace } from '@/src/middlewares/load-workspace';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Workspace, WorkspaceDepsMode } from '@/src/project/workspace';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport { TaskExprService } from '@/src/services/task-expr.service';\nimport { TASK_MANAGER } from '@/src/services/task-manager.config';\nimport Layout from '@/src/ui/layout';\nimport TaskManagerSpinner from '@/src/ui/task-manager-spinner';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Command\nexport default defineCommand({\n command: 'group <script..>',\n describe: 'Run many scripts inside a workspace (experimental)',\n builder: async (yargs) =>\n (await applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ]))\n .positional('script', {\n demandOption: true,\n coerce(expr: string[]) {\n const parser = container.get(TaskExprService);\n return parser.parse(expr.join(' ')).roots[0];\n }\n })\n .option('deps-mode', {\n choices: ['all', 'prod', 'none'] as const,\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n }),\n async handler(args) {\n const app = container.get(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n const manager = container.get(TASK_MANAGER);\n const parser = container.get(TaskExprService);\n\n // Run script in workspace\n const group = await parser.buildTask(args.script, workspace, {\n buildDeps: args.depsMode,\n });\n\n manager.add(group);\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Wait for result\n const result = await waitForEvent(group, 'completed');\n\n if (result.status === 'failed') {\n return process.exit(1);\n }\n }\n});\n","import chalk from 'chalk';\nimport path from 'node:path';\nimport slugify from 'slugify';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter';\nimport { Pipeline } from '@/src/filters/pipeline';\nimport { PrivateFilter } from '@/src/filters/private.filter';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter';\nimport { loadProject } from '@/src/middlewares/load-project';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Project } from '@/src/project/project';\nimport { Workspace } from '@/src/project/workspace';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport Layout from '@/src/ui/layout';\nimport List from '@/src/ui/list';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS: Record<Attribute, Extractor<string | undefined>> = {\n name: wks => wks.name,\n version: (wks, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\nexport default defineCommand({\n command: ['list', 'ls'],\n describe: 'List workspaces',\n builder: async (yargs) =>\n (await applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n ]))\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n\n // Affected filter\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'] as const,\n default: [],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n }),\n async handler(args) {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(new PrivateFilter(args.private));\n }\n\n if (args.withScript) {\n pipeline.add(new ScriptsFilter(args.withScript));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Load workspaces\n const project = container.getNamed(Project, CURRENT);\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\n\n // Build data\n let attrs = args.attrs;\n\n if (attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n // Print list\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n console.log(JSON.stringify(data, null, 2));\n } else {\n process.stdout.write(JSON.stringify(data));\n }\n } else {\n const app = container.get(INK_APP);\n\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n }\n\n app.rerender(\n <Layout>\n <List items={data} headers={args.headers ?? (attrs.length > 1)} />\n </Layout>\n );\n }\n }\n});\n","import { waitForEvent } from '@jujulego/event-tree';\n\nimport { loadProject } from '@/src/middlewares/load-project';\nimport { loadWorkspace } from '@/src/middlewares/load-workspace';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Workspace } from '@/src/project/workspace';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport { TASK_MANAGER } from '@/src/services/task-manager.config';\nimport Layout from '@/src/ui/layout';\nimport TaskManagerSpinner from '@/src/ui/task-manager-spinner';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Command\nexport default defineCommand({\n command: 'run <script>',\n describe: 'Run script inside workspace',\n builder: async (yargs) =>\n (await applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ]))\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n }),\n async handler(args) {\n const app = container.get(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n const manager = container.get(TASK_MANAGER);\n\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'run') {\n rest.splice(0, 1);\n }\n\n // Run script in workspace\n const task = await workspace.run(args.script, rest, {\n buildDeps: args.depsMode,\n });\n manager.add(task);\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Wait for result\n const result = await waitForEvent(task, 'completed');\n\n if (result.status === 'failed') {\n return process.exit(1);\n }\n }\n});\n","import { loadProject } from '@/src/middlewares/load-project';\nimport { loadWorkspace } from '@/src/middlewares/load-workspace';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Workspace } from '@/src/project/workspace';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport Layout from '@/src/ui/layout';\nimport WorkspaceTree from '@/src/ui/workspace-tree';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Command\nexport default defineCommand({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ]),\n handler: () => {\n const app = container.get(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n\n app.rerender(\n <Layout>\n <WorkspaceTree workspace={workspace} />\n </Layout>\n );\n }\n});\n","import each from './each';\nimport group from './group';\nimport list from './list';\nimport run from './run';\nimport tree from './tree';\n\n// Commands\nexport const commands = [each, group, list, run, tree];\n","import os from 'node:os';\n\nimport { container, SERVICES_CONFIG } from '@/src/services/inversify.config';\nimport { CONFIG } from '@/src/services/config/loader';\nimport { Logger } from '@/src/services/logger.service';\nimport { defineMiddleware } from '@/src/utils/yargs';\n\n// Constants\nconst VERBOSITY_LEVEL: Record<number, string> = {\n 1: 'verbose',\n 2: 'debug',\n};\n\n// Middleware\nexport const configOptions = defineMiddleware({\n builder: async (yargs) => yargs\n .option('verbose', {\n alias: 'v',\n type: 'count',\n description: 'Set verbosity level',\n })\n .option('jobs', {\n alias: 'j',\n type: 'number',\n default: (await container.getAsync(CONFIG)).jobs ?? (os.cpus().length - 1),\n description: 'Set maximum parallel job number',\n }),\n handler(args) {\n if (args.verbose) {\n const logger = container.get(Logger);\n logger.level = VERBOSITY_LEVEL[Math.min(args.verbose, 2)];\n }\n\n container.bind(SERVICES_CONFIG).toConstantValue({\n jobs: args.jobs,\n });\n }\n});\n","import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport { container } from '@/src/services/inversify.config';\nimport { Logger } from '@/src/services/logger.service';\nimport { PluginLoaderService } from '@/src/services/plugins/plugin-loader.service';\n\nimport { commands } from './commands';\nimport { configOptions } from './middlewares/config-options';\nimport { applyMiddlewares } from './utils/yargs';\n\n// @ts-ignore: Outside of typescript's rootDir in build\nimport pkg from '../package.json';\n\n// Bootstrap\n(async () => {\n try {\n // Setup yargs\n const parser = yargs(hideBin(process.argv))\n .scriptName('jill')\n .completion('completion', 'Generate bash completion script')\n .help('help', 'Show help for a command')\n .version('version', 'Show version', pkg.version)\n .wrap(process.stdout.columns);\n\n // Middlewares\n await applyMiddlewares(parser, [configOptions]);\n\n // Load plugins\n const pluginLoader = await container.getAsync(PluginLoaderService);\n await pluginLoader.loadPlugins(parser);\n\n // Commands\n await parser\n .command(commands as any)\n .demandCommand()\n .recommendCommands()\n .strict()\n .parse();\n } catch (err) {\n const logger = container.get(Logger);\n logger.error(err);\n\n process.exit(1);\n }\n})();\n","\n;(function (name, root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory()\n module.exports['default'] = factory()\n }\n /* istanbul ignore next */\n else if (typeof define === 'function' && define.amd) {\n define(factory)\n }\n else {\n root[name] = factory()\n }\n}('slugify', this, function () {\n var charMap = JSON.parse('{\"$\":\"dollar\",\"%\":\"percent\",\"&\":\"and\",\"<\":\"less\",\">\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ō\":\"O\",\"ō\":\"o\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"Ə\":\"E\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"ə\":\"e\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"Ա\":\"A\",\"Բ\":\"B\",\"Գ\":\"G\",\"Դ\":\"D\",\"Ե\":\"E\",\"Զ\":\"Z\",\"Է\":\"E\\'\",\"Ը\":\"Y\\'\",\"Թ\":\"T\\'\",\"Ժ\":\"JH\",\"Ի\":\"I\",\"Լ\":\"L\",\"Խ\":\"X\",\"Ծ\":\"C\\'\",\"Կ\":\"K\",\"Հ\":\"H\",\"Ձ\":\"D\\'\",\"Ղ\":\"GH\",\"Ճ\":\"TW\",\"Մ\":\"M\",\"Յ\":\"Y\",\"Ն\":\"N\",\"Շ\":\"SH\",\"Չ\":\"CH\",\"Պ\":\"P\",\"Ջ\":\"J\",\"Ռ\":\"R\\'\",\"Ս\":\"S\",\"Վ\":\"V\",\"Տ\":\"T\",\"Ր\":\"R\",\"Ց\":\"C\",\"Փ\":\"P\\'\",\"Ք\":\"Q\\'\",\"Օ\":\"O\\'\\'\",\"Ֆ\":\"F\",\"և\":\"EV\",\"ء\":\"a\",\"آ\":\"aa\",\"أ\":\"a\",\"ؤ\":\"u\",\"إ\":\"i\",\"ئ\":\"e\",\"ا\":\"a\",\"ب\":\"b\",\"ة\":\"h\",\"ت\":\"t\",\"ث\":\"th\",\"ج\":\"j\",\"ح\":\"h\",\"خ\":\"kh\",\"د\":\"d\",\"ذ\":\"th\",\"ر\":\"r\",\"ز\":\"z\",\"س\":\"s\",\"ش\":\"sh\",\"ص\":\"s\",\"ض\":\"dh\",\"ط\":\"t\",\"ظ\":\"z\",\"ع\":\"a\",\"غ\":\"gh\",\"ف\":\"f\",\"ق\":\"q\",\"ك\":\"k\",\"ل\":\"l\",\"م\":\"m\",\"ن\":\"n\",\"ه\":\"h\",\"و\":\"w\",\"ى\":\"a\",\"ي\":\"y\",\"ً\":\"an\",\"ٌ\":\"on\",\"ٍ\":\"en\",\"َ\":\"a\",\"ُ\":\"u\",\"ِ\":\"e\",\"ْ\":\"\",\"٠\":\"0\",\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"پ\":\"p\",\"چ\":\"ch\",\"ژ\":\"zh\",\"ک\":\"k\",\"گ\":\"g\",\"ی\":\"y\",\"۰\":\"0\",\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"฿\":\"baht\",\"ა\":\"a\",\"ბ\":\"b\",\"გ\":\"g\",\"დ\":\"d\",\"ე\":\"e\",\"ვ\":\"v\",\"ზ\":\"z\",\"თ\":\"t\",\"ი\":\"i\",\"კ\":\"k\",\"ლ\":\"l\",\"მ\":\"m\",\"ნ\":\"n\",\"ო\":\"o\",\"პ\":\"p\",\"ჟ\":\"zh\",\"რ\":\"r\",\"ს\":\"s\",\"ტ\":\"t\",\"უ\":\"u\",\"ფ\":\"f\",\"ქ\":\"k\",\"ღ\":\"gh\",\"ყ\":\"q\",\"შ\":\"sh\",\"ჩ\":\"ch\",\"ც\":\"ts\",\"ძ\":\"dz\",\"წ\":\"ts\",\"ჭ\":\"ch\",\"ხ\":\"kh\",\"ჯ\":\"j\",\"ჰ\":\"h\",\"Ṣ\":\"S\",\"ṣ\":\"s\",\"Ẁ\":\"W\",\"ẁ\":\"w\",\"Ẃ\":\"W\",\"ẃ\":\"w\",\"Ẅ\":\"W\",\"ẅ\":\"w\",\"ẞ\":\"SS\",\"Ạ\":\"A\",\"ạ\":\"a\",\"Ả\":\"A\",\"ả\":\"a\",\"Ấ\":\"A\",\"ấ\":\"a\",\"Ầ\":\"A\",\"ầ\":\"a\",\"Ẩ\":\"A\",\"ẩ\":\"a\",\"Ẫ\":\"A\",\"ẫ\":\"a\",\"Ậ\":\"A\",\"ậ\":\"a\",\"Ắ\":\"A\",\"ắ\":\"a\",\"Ằ\":\"A\",\"ằ\":\"a\",\"Ẳ\":\"A\",\"ẳ\":\"a\",\"Ẵ\":\"A\",\"ẵ\":\"a\",\"Ặ\":\"A\",\"ặ\":\"a\",\"Ẹ\":\"E\",\"ẹ\":\"e\",\"Ẻ\":\"E\",\"ẻ\":\"e\",\"Ẽ\":\"E\",\"ẽ\":\"e\",\"Ế\":\"E\",\"ế\":\"e\",\"Ề\":\"E\",\"ề\":\"e\",\"Ể\":\"E\",\"ể\":\"e\",\"Ễ\":\"E\",\"ễ\":\"e\",\"Ệ\":\"E\",\"ệ\":\"e\",\"Ỉ\":\"I\",\"ỉ\":\"i\",\"Ị\":\"I\",\"ị\":\"i\",\"Ọ\":\"O\",\"ọ\":\"o\",\"Ỏ\":\"O\",\"ỏ\":\"o\",\"Ố\":\"O\",\"ố\":\"o\",\"Ồ\":\"O\",\"ồ\":\"o\",\"Ổ\":\"O\",\"ổ\":\"o\",\"Ỗ\":\"O\",\"ỗ\":\"o\",\"Ộ\":\"O\",\"ộ\":\"o\",\"Ớ\":\"O\",\"ớ\":\"o\",\"Ờ\":\"O\",\"ờ\":\"o\",\"Ở\":\"O\",\"ở\":\"o\",\"Ỡ\":\"O\",\"ỡ\":\"o\",\"Ợ\":\"O\",\"ợ\":\"o\",\"Ụ\":\"U\",\"ụ\":\"u\",\"Ủ\":\"U\",\"ủ\":\"u\",\"Ứ\":\"U\",\"ứ\":\"u\",\"Ừ\":\"U\",\"ừ\":\"u\",\"Ử\":\"U\",\"ử\":\"u\",\"Ữ\":\"U\",\"ữ\":\"u\",\"Ự\":\"U\",\"ự\":\"u\",\"Ỳ\":\"Y\",\"ỳ\":\"y\",\"Ỵ\":\"Y\",\"ỵ\":\"y\",\"Ỷ\":\"Y\",\"ỷ\":\"y\",\"Ỹ\":\"Y\",\"ỹ\":\"y\",\"–\":\"-\",\"‘\":\"\\'\",\"’\":\"\\'\",\"“\":\"\\\\\\\"\",\"”\":\"\\\\\\\"\",\"„\":\"\\\\\\\"\",\"†\":\"+\",\"•\":\"*\",\"…\":\"...\",\"₠\":\"ecu\",\"₢\":\"cruzeiro\",\"₣\":\"french franc\",\"₤\":\"lira\",\"₥\":\"mill\",\"₦\":\"naira\",\"₧\":\"peseta\",\"₨\":\"rupee\",\"₩\":\"won\",\"₪\":\"new shequel\",\"₫\":\"dong\",\"€\":\"euro\",\"₭\":\"kip\",\"₮\":\"tugrik\",\"₯\":\"drachma\",\"₰\":\"penny\",\"₱\":\"peso\",\"₲\":\"guarani\",\"₳\":\"austral\",\"₴\":\"hryvnia\",\"₵\":\"cedi\",\"₸\":\"kazakhstani tenge\",\"₹\":\"indian rupee\",\"₺\":\"turkish lira\",\"₽\":\"russian ruble\",\"₿\":\"bitcoin\",\"℠\":\"sm\",\"™\":\"tm\",\"∂\":\"d\",\"∆\":\"delta\",\"∑\":\"sum\",\"∞\":\"infinity\",\"♥\":\"love\",\"元\":\"yuan\",\"円\":\"yen\",\"﷼\":\"rial\",\"ﻵ\":\"laa\",\"ﻷ\":\"laa\",\"ﻹ\":\"lai\",\"ﻻ\":\"la\"}')\n var locales = JSON.parse('{\"bg\":{\"Й\":\"Y\",\"Ц\":\"Ts\",\"Щ\":\"Sht\",\"Ъ\":\"A\",\"Ь\":\"Y\",\"й\":\"y\",\"ц\":\"ts\",\"щ\":\"sht\",\"ъ\":\"a\",\"ь\":\"y\"},\"de\":{\"Ä\":\"AE\",\"ä\":\"ae\",\"Ö\":\"OE\",\"ö\":\"oe\",\"Ü\":\"UE\",\"ü\":\"ue\",\"ß\":\"ss\",\"%\":\"prozent\",\"&\":\"und\",\"|\":\"oder\",\"∑\":\"summe\",\"∞\":\"unendlich\",\"♥\":\"liebe\"},\"es\":{\"%\":\"por ciento\",\"&\":\"y\",\"<\":\"menor que\",\">\":\"mayor que\",\"|\":\"o\",\"¢\":\"centavos\",\"£\":\"libras\",\"¤\":\"moneda\",\"₣\":\"francos\",\"∑\":\"suma\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"fr\":{\"%\":\"pourcent\",\"&\":\"et\",\"<\":\"plus petit\",\">\":\"plus grand\",\"|\":\"ou\",\"¢\":\"centime\",\"£\":\"livre\",\"¤\":\"devise\",\"₣\":\"franc\",\"∑\":\"somme\",\"∞\":\"infini\",\"♥\":\"amour\"},\"pt\":{\"%\":\"porcento\",\"&\":\"e\",\"<\":\"menor\",\">\":\"maior\",\"|\":\"ou\",\"¢\":\"centavo\",\"∑\":\"soma\",\"£\":\"libra\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"uk\":{\"И\":\"Y\",\"и\":\"y\",\"Й\":\"Y\",\"й\":\"y\",\"Ц\":\"Ts\",\"ц\":\"ts\",\"Х\":\"Kh\",\"х\":\"kh\",\"Щ\":\"Shch\",\"щ\":\"shch\",\"Г\":\"H\",\"г\":\"h\"},\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"},\"da\":{\"Ø\":\"OE\",\"ø\":\"oe\",\"Å\":\"AA\",\"å\":\"aa\",\"%\":\"procent\",\"&\":\"og\",\"|\":\"eller\",\"$\":\"dollar\",\"<\":\"mindre end\",\">\":\"større end\"},\"nb\":{\"&\":\"og\",\"Å\":\"AA\",\"Æ\":\"AE\",\"Ø\":\"OE\",\"å\":\"aa\",\"æ\":\"ae\",\"ø\":\"oe\"},\"it\":{\"&\":\"e\"},\"nl\":{\"&\":\"en\"},\"sv\":{\"&\":\"och\",\"Å\":\"AA\",\"Ä\":\"AE\",\"Ö\":\"OE\",\"å\":\"aa\",\"ä\":\"ae\",\"ö\":\"oe\"}}')\n\n function replace (string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected')\n }\n\n options = (typeof options === 'string')\n ? {replacement: options}\n : options || {}\n\n var locale = locales[options.locale] || {}\n\n var replacement = options.replacement === undefined ? '-' : options.replacement\n\n var trim = options.trim === undefined ? true : options.trim\n\n var slug = string.normalize().split('')\n // replace characters based on charMap\n .reduce(function (result, ch) {\n var appendChar = locale[ch] || charMap[ch] || ch;\n if (appendChar === replacement) {\n appendChar = ' ';\n }\n return result + appendChar\n // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '')\n }, '');\n\n if (options.strict) {\n slug = slug.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n if (trim) {\n slug = slug.trim()\n }\n\n // Replace spaces with replacement character, treating multiple consecutive\n // spaces as a single space.\n slug = slug.replace(/\\s+/g, replacement);\n\n if (options.lower) {\n slug = slug.toLowerCase()\n }\n\n return slug\n }\n\n replace.extend = function (customMap) {\n Object.assign(charMap, customMap)\n }\n\n return replace\n}))\n","module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"child_process\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"module\");","module.exports = require(\"node:child_process\");","module.exports = require(\"node:crypto\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"node:os\");","module.exports = require(\"node:path\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"string_decoder\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");"],"names":["TaskSet","constructor","manager","super","this","_tasks","Set","_status","_results","success","failed","_handleComplete","task","emit","size","add","Error","has","subscribe","status","start","t","tasks","Array","from","values","results","defineCommand","command","describe","builder","async","yargs","applyMiddlewares","setupInk","loadProject","positional","type","demandOption","option","choice","default","desc","group","alias","coerce","rev","args","app","container","INK_APP","project","Project","CURRENT","TASK_MANAGER","spinner","SpinnerService","spin","pipeline","Pipeline","ScriptsFilter","script","undefined","private","PrivateFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","rest","_","map","arg","toString","splice","wks","filter","workspaces","run","buildDeps","depsMode","length","process","exit","stop","rerender","Layout","TaskManagerSpinner","waitForEvent","loadWorkspace","expr","TaskExprService","parse","join","roots","choices","workspace","Workspace","parser","buildTask","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","version","json","manifest","chalk","root","cwd","slug","slugify","string","withScript","push","attrs","long","data","attr","buildExtractor","stdout","isTTY","console","log","JSON","stringify","write","d","path","List","items","headers","handler","WorkspaceTree","commands","each","list","tree","VERBOSITY_LEVEL","configOptions","defineMiddleware","description","CONFIG","jobs","os","verbose","Logger","level","Math","min","SERVICES_CONFIG","toConstantValue","hideBin","argv","scriptName","completion","help","wrap","columns","pluginLoader","PluginLoaderService","loadPlugins","demandCommand","recommendCommands","strict","err","error","factory","charMap","locales","replace","options","locale","replacement","trim","normalize","split","reduce","result","ch","appendChar","remove","lower","toLowerCase","extend","customMap","Object","assign","module","exports","require"],"sourceRoot":""}
1
+ {"version":3,"file":"main.js","mappings":"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","sources":["webpack://@jujulego/jill/./.yarn/cache/@jujulego-tasks-npm-1.1.4-b57b15e6c8-bacbaa089f.zip/node_modules/@jujulego/tasks/dist/esm/task-set.js","webpack://@jujulego/jill/./src/commands/each.tsx","webpack://@jujulego/jill/./src/commands/group.tsx","webpack://@jujulego/jill/./src/commands/list.tsx","webpack://@jujulego/jill/./src/commands/run.tsx","webpack://@jujulego/jill/./src/commands/tree.tsx","webpack://@jujulego/jill/./src/commands/index.ts","webpack://@jujulego/jill/./src/middlewares/config-options.ts","webpack://@jujulego/jill/./src/main.ts","webpack://@jujulego/jill/./.yarn/cache/slugify-npm-1.6.5-6db25d7016-a955a1b600.zip/node_modules/slugify/slugify.js","webpack://@jujulego/jill/external node-commonjs \"assert\"","webpack://@jujulego/jill/external node-commonjs \"buffer\"","webpack://@jujulego/jill/external node-commonjs \"child_process\"","webpack://@jujulego/jill/external node-commonjs \"events\"","webpack://@jujulego/jill/external node-commonjs \"fs\"","webpack://@jujulego/jill/external node-commonjs \"http\"","webpack://@jujulego/jill/external node-commonjs \"https\"","webpack://@jujulego/jill/external node-commonjs \"module\"","webpack://@jujulego/jill/external node-commonjs \"node:child_process\"","webpack://@jujulego/jill/external node-commonjs \"node:crypto\"","webpack://@jujulego/jill/external node-commonjs \"node:fs/promises\"","webpack://@jujulego/jill/external node-commonjs \"node:os\"","webpack://@jujulego/jill/external node-commonjs \"node:path\"","webpack://@jujulego/jill/external node-commonjs \"node:process\"","webpack://@jujulego/jill/external node-commonjs \"node:tty\"","webpack://@jujulego/jill/external node-commonjs \"os\"","webpack://@jujulego/jill/external node-commonjs \"path\"","webpack://@jujulego/jill/external node-commonjs \"stream\"","webpack://@jujulego/jill/external node-commonjs \"string_decoder\"","webpack://@jujulego/jill/external node-commonjs \"tty\"","webpack://@jujulego/jill/external node-commonjs \"url\"","webpack://@jujulego/jill/external node-commonjs \"util\"","webpack://@jujulego/jill/external node-commonjs \"zlib\""],"sourcesContent":["import { EventSource } from '@jujulego/event-tree';\nimport { assertIsTask } from './task';\n// Class\nexport class TaskSet extends EventSource {\n // Constructor\n constructor(manager){\n super();\n this.manager = manager;\n this._tasks = new Set();\n this._status = 'created';\n this._results = {\n success: 0,\n failed: 0\n };\n }\n // Methods\n _handleComplete(task, success) {\n this.emit('completed', task);\n // Trigger finished\n if (success) {\n ++this._results.success;\n } else {\n ++this._results.failed;\n }\n if (this._results.success + this._results.failed === this._tasks.size) {\n this._status = 'finished';\n this.emit('finished', this._results);\n }\n }\n add(task) {\n assertIsTask(task);\n if (this._status !== 'created') {\n throw Error(`Cannot add a task to a ${this._status} task set`);\n }\n if (this._tasks.has(task)) {\n return;\n }\n // Listen to task's status\n task.subscribe('status', ({ status })=>{\n if (status === 'running') {\n this.emit('started', task);\n } else if (status === 'done' || status === 'failed') {\n this._handleComplete(task, status === 'done');\n }\n });\n // Add task\n this._tasks.add(task);\n }\n start() {\n if (this._status !== 'created') {\n throw Error(`Cannot start a ${this._status} task set`);\n }\n if (this._tasks.size === 0) {\n this._status = 'finished';\n this.emit('finished', this._results);\n } else {\n // Update status\n this._status = 'started';\n // Add tasks to task manager\n for (const t of this._tasks){\n this.manager.add(t);\n }\n }\n }\n // Properties\n get status() {\n return this._status;\n }\n get tasks() {\n return Array.from(this._tasks.values());\n }\n get results() {\n return this._results;\n }\n}\n\n//# sourceMappingURL=task-set.js.map\n","import { waitForEvent } from '@jujulego/event-tree';\nimport { TaskSet } from '@jujulego/tasks';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter';\nimport { Pipeline } from '@/src/filters/pipeline';\nimport { PrivateFilter } from '@/src/filters/private.filter';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter';\nimport { loadProject } from '@/src/middlewares/load-project';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Project } from '@/src/project/project';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport { SpinnerService } from '@/src/services/spinner.service';\nimport { TASK_MANAGER } from '@/src/services/task-manager.config';\nimport Layout from '@/src/ui/layout';\nimport TaskManagerSpinner from '@/src/ui/task-manager-spinner';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Command\nexport default defineCommand({\n command: 'each <script>',\n describe: 'Run script on many workspaces',\n builder: async (yargs) =>\n (await applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n ]))\n // Run options\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n\n // Affected filter\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n }),\n async handler(args) {\n const app = container.get(INK_APP);\n const project = container.getNamed(Project, CURRENT);\n const manager = container.get(TASK_MANAGER);\n const spinner = container.get(SpinnerService);\n\n try {\n spinner.spin('Loading workspaces ...');\n\n // Setup pipeline\n const pipeline = new Pipeline();\n pipeline.add(new ScriptsFilter([args.script]));\n\n if (args.private !== undefined) {\n pipeline.add(new PrivateFilter(args.private));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'each') {\n rest.splice(0, 1);\n }\n\n // Create script tasks\n const tasks = new TaskSet(manager);\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n tasks.add(await wks.run(args.script, rest, {\n buildDeps: args.depsMode,\n }));\n }\n\n if (tasks.tasks.length === 0) {\n spinner.failed('No workspace found !');\n return process.exit(1);\n }\n\n spinner.stop();\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Start and wait for result\n tasks.start();\n\n const result = await waitForEvent(tasks, 'finished');\n\n if (result.failed > 0) {\n return process.exit(1);\n }\n } finally {\n spinner.stop();\n }\n }\n});\n","import { waitForEvent } from '@jujulego/event-tree';\n\nimport { loadProject } from '@/src/middlewares/load-project';\nimport { loadWorkspace } from '@/src/middlewares/load-workspace';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Workspace, WorkspaceDepsMode } from '@/src/project/workspace';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport { TaskExprService } from '@/src/services/task-expr.service';\nimport { TASK_MANAGER } from '@/src/services/task-manager.config';\nimport Layout from '@/src/ui/layout';\nimport TaskManagerSpinner from '@/src/ui/task-manager-spinner';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Command\nexport default defineCommand({\n command: 'group <script..>',\n describe: 'Run many scripts inside a workspace (experimental)',\n builder: async (yargs) =>\n (await applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ]))\n .positional('script', {\n demandOption: true,\n coerce(expr: string[]) {\n const parser = container.get(TaskExprService);\n return parser.parse(expr.join(' ')).roots[0];\n }\n })\n .option('deps-mode', {\n choices: ['all', 'prod', 'none'] as const,\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n }),\n async handler(args) {\n const app = container.get(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n const manager = container.get(TASK_MANAGER);\n const parser = container.get(TaskExprService);\n\n // Run script in workspace\n const group = await parser.buildTask(args.script, workspace, {\n buildDeps: args.depsMode,\n });\n\n manager.add(group);\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Wait for result\n const result = await waitForEvent(group, 'completed');\n\n if (result.status === 'failed') {\n return process.exit(1);\n }\n }\n});\n","import chalk from 'chalk';\nimport path from 'node:path';\nimport slugify from 'slugify';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter';\nimport { Pipeline } from '@/src/filters/pipeline';\nimport { PrivateFilter } from '@/src/filters/private.filter';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter';\nimport { loadProject } from '@/src/middlewares/load-project';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Project } from '@/src/project/project';\nimport { Workspace } from '@/src/project/workspace';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport Layout from '@/src/ui/layout';\nimport List from '@/src/ui/list';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS: Record<Attribute, Extractor<string | undefined>> = {\n name: wks => wks.name,\n version: (wks, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\nexport default defineCommand({\n command: ['list', 'ls'],\n describe: 'List workspaces',\n builder: async (yargs) =>\n (await applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n ]))\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n\n // Affected filter\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'] as const,\n default: [],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n }),\n async handler(args) {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(new PrivateFilter(args.private));\n }\n\n if (args.withScript) {\n pipeline.add(new ScriptsFilter(args.withScript));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Load workspaces\n const project = container.getNamed(Project, CURRENT);\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\n\n // Build data\n let attrs = args.attrs;\n\n if (attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n // Print list\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n console.log(JSON.stringify(data, null, 2));\n } else {\n process.stdout.write(JSON.stringify(data));\n }\n } else {\n const app = container.get(INK_APP);\n\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n }\n\n app.rerender(\n <Layout>\n <List items={data} headers={args.headers ?? (attrs.length > 1)} />\n </Layout>\n );\n }\n }\n});\n","import { waitForEvent } from '@jujulego/event-tree';\n\nimport { loadProject } from '@/src/middlewares/load-project';\nimport { loadWorkspace } from '@/src/middlewares/load-workspace';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Workspace } from '@/src/project/workspace';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport { TASK_MANAGER } from '@/src/services/task-manager.config';\nimport Layout from '@/src/ui/layout';\nimport TaskManagerSpinner from '@/src/ui/task-manager-spinner';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Command\nexport default defineCommand({\n command: 'run <script>',\n describe: 'Run script inside workspace',\n builder: async (yargs) =>\n (await applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ]))\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n }),\n async handler(args) {\n const app = container.get(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n const manager = container.get(TASK_MANAGER);\n\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'run') {\n rest.splice(0, 1);\n }\n\n // Run script in workspace\n const task = await workspace.run(args.script, rest, {\n buildDeps: args.depsMode,\n });\n manager.add(task);\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Wait for result\n const result = await waitForEvent(task, 'completed');\n\n if (result.status === 'failed') {\n return process.exit(1);\n }\n }\n});\n","import { loadProject } from '@/src/middlewares/load-project';\nimport { loadWorkspace } from '@/src/middlewares/load-workspace';\nimport { setupInk } from '@/src/middlewares/setup-ink';\nimport { Workspace } from '@/src/project/workspace';\nimport { container, CURRENT, INK_APP } from '@/src/services/inversify.config';\nimport Layout from '@/src/ui/layout';\nimport WorkspaceTree from '@/src/ui/workspace-tree';\nimport { applyMiddlewares, defineCommand } from '@/src/utils/yargs';\n\n// Command\nexport default defineCommand({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ]),\n handler: () => {\n const app = container.get(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n\n app.rerender(\n <Layout>\n <WorkspaceTree workspace={workspace} />\n </Layout>\n );\n }\n});\n","import each from './each';\nimport group from './group';\nimport list from './list';\nimport run from './run';\nimport tree from './tree';\n\n// Commands\nexport const commands = [each, group, list, run, tree];\n","import os from 'node:os';\n\nimport { container, SERVICES_CONFIG } from '@/src/services/inversify.config';\nimport { CONFIG } from '@/src/services/config/loader';\nimport { Logger } from '@/src/services/logger.service';\nimport { defineMiddleware } from '@/src/utils/yargs';\n\n// Constants\nconst VERBOSITY_LEVEL: Record<number, string> = {\n 1: 'verbose',\n 2: 'debug',\n};\n\n// Middleware\nexport const configOptions = defineMiddleware({\n builder: async (yargs) => yargs\n .option('verbose', {\n alias: 'v',\n type: 'count',\n description: 'Set verbosity level',\n })\n .option('jobs', {\n alias: 'j',\n type: 'number',\n default: (await container.getAsync(CONFIG)).jobs ?? (os.cpus().length - 1),\n description: 'Set maximum parallel job number',\n }),\n handler(args) {\n if (args.verbose) {\n const logger = container.get(Logger);\n logger.level = VERBOSITY_LEVEL[Math.min(args.verbose, 2)];\n }\n\n container.bind(SERVICES_CONFIG).toConstantValue({\n jobs: args.jobs,\n });\n }\n});\n","import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport { commands } from './commands';\nimport { configOptions } from './middlewares/config-options';\nimport { container } from './services/inversify.config';\nimport { Logger } from './services/logger.service';\nimport { PluginLoaderService } from './services/plugins/plugin-loader.service';\nimport { applyMiddlewares } from './utils/yargs';\n\n// @ts-ignore: Outside of typescript's rootDir in build\nimport pkg from '../package.json';\n\n// Bootstrap\n(async () => {\n try {\n // Setup yargs\n const parser = yargs(hideBin(process.argv))\n .scriptName('jill')\n .completion('completion', 'Generate bash completion script')\n .help('help', 'Show help for a command')\n .version('version', 'Show version', pkg.version)\n .wrap(process.stdout.columns);\n\n // Middlewares\n await applyMiddlewares(parser, [configOptions]);\n\n // Load plugins\n const pluginLoader = await container.getAsync(PluginLoaderService);\n await pluginLoader.loadPlugins(parser);\n\n // Commands\n await parser\n .command(commands as any)\n .demandCommand()\n .recommendCommands()\n .strict()\n .parse();\n } catch (err) {\n const logger = container.get(Logger);\n logger.error(err);\n\n process.exit(1);\n }\n})();\n","\n;(function (name, root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory()\n module.exports['default'] = factory()\n }\n /* istanbul ignore next */\n else if (typeof define === 'function' && define.amd) {\n define(factory)\n }\n else {\n root[name] = factory()\n }\n}('slugify', this, function () {\n var charMap = JSON.parse('{\"$\":\"dollar\",\"%\":\"percent\",\"&\":\"and\",\"<\":\"less\",\">\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ō\":\"O\",\"ō\":\"o\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"Ə\":\"E\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"ə\":\"e\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"Ա\":\"A\",\"Բ\":\"B\",\"Գ\":\"G\",\"Դ\":\"D\",\"Ե\":\"E\",\"Զ\":\"Z\",\"Է\":\"E\\'\",\"Ը\":\"Y\\'\",\"Թ\":\"T\\'\",\"Ժ\":\"JH\",\"Ի\":\"I\",\"Լ\":\"L\",\"Խ\":\"X\",\"Ծ\":\"C\\'\",\"Կ\":\"K\",\"Հ\":\"H\",\"Ձ\":\"D\\'\",\"Ղ\":\"GH\",\"Ճ\":\"TW\",\"Մ\":\"M\",\"Յ\":\"Y\",\"Ն\":\"N\",\"Շ\":\"SH\",\"Չ\":\"CH\",\"Պ\":\"P\",\"Ջ\":\"J\",\"Ռ\":\"R\\'\",\"Ս\":\"S\",\"Վ\":\"V\",\"Տ\":\"T\",\"Ր\":\"R\",\"Ց\":\"C\",\"Փ\":\"P\\'\",\"Ք\":\"Q\\'\",\"Օ\":\"O\\'\\'\",\"Ֆ\":\"F\",\"և\":\"EV\",\"ء\":\"a\",\"آ\":\"aa\",\"أ\":\"a\",\"ؤ\":\"u\",\"إ\":\"i\",\"ئ\":\"e\",\"ا\":\"a\",\"ب\":\"b\",\"ة\":\"h\",\"ت\":\"t\",\"ث\":\"th\",\"ج\":\"j\",\"ح\":\"h\",\"خ\":\"kh\",\"د\":\"d\",\"ذ\":\"th\",\"ر\":\"r\",\"ز\":\"z\",\"س\":\"s\",\"ش\":\"sh\",\"ص\":\"s\",\"ض\":\"dh\",\"ط\":\"t\",\"ظ\":\"z\",\"ع\":\"a\",\"غ\":\"gh\",\"ف\":\"f\",\"ق\":\"q\",\"ك\":\"k\",\"ل\":\"l\",\"م\":\"m\",\"ن\":\"n\",\"ه\":\"h\",\"و\":\"w\",\"ى\":\"a\",\"ي\":\"y\",\"ً\":\"an\",\"ٌ\":\"on\",\"ٍ\":\"en\",\"َ\":\"a\",\"ُ\":\"u\",\"ِ\":\"e\",\"ْ\":\"\",\"٠\":\"0\",\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"پ\":\"p\",\"چ\":\"ch\",\"ژ\":\"zh\",\"ک\":\"k\",\"گ\":\"g\",\"ی\":\"y\",\"۰\":\"0\",\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"฿\":\"baht\",\"ა\":\"a\",\"ბ\":\"b\",\"გ\":\"g\",\"დ\":\"d\",\"ე\":\"e\",\"ვ\":\"v\",\"ზ\":\"z\",\"თ\":\"t\",\"ი\":\"i\",\"კ\":\"k\",\"ლ\":\"l\",\"მ\":\"m\",\"ნ\":\"n\",\"ო\":\"o\",\"პ\":\"p\",\"ჟ\":\"zh\",\"რ\":\"r\",\"ს\":\"s\",\"ტ\":\"t\",\"უ\":\"u\",\"ფ\":\"f\",\"ქ\":\"k\",\"ღ\":\"gh\",\"ყ\":\"q\",\"შ\":\"sh\",\"ჩ\":\"ch\",\"ც\":\"ts\",\"ძ\":\"dz\",\"წ\":\"ts\",\"ჭ\":\"ch\",\"ხ\":\"kh\",\"ჯ\":\"j\",\"ჰ\":\"h\",\"Ṣ\":\"S\",\"ṣ\":\"s\",\"Ẁ\":\"W\",\"ẁ\":\"w\",\"Ẃ\":\"W\",\"ẃ\":\"w\",\"Ẅ\":\"W\",\"ẅ\":\"w\",\"ẞ\":\"SS\",\"Ạ\":\"A\",\"ạ\":\"a\",\"Ả\":\"A\",\"ả\":\"a\",\"Ấ\":\"A\",\"ấ\":\"a\",\"Ầ\":\"A\",\"ầ\":\"a\",\"Ẩ\":\"A\",\"ẩ\":\"a\",\"Ẫ\":\"A\",\"ẫ\":\"a\",\"Ậ\":\"A\",\"ậ\":\"a\",\"Ắ\":\"A\",\"ắ\":\"a\",\"Ằ\":\"A\",\"ằ\":\"a\",\"Ẳ\":\"A\",\"ẳ\":\"a\",\"Ẵ\":\"A\",\"ẵ\":\"a\",\"Ặ\":\"A\",\"ặ\":\"a\",\"Ẹ\":\"E\",\"ẹ\":\"e\",\"Ẻ\":\"E\",\"ẻ\":\"e\",\"Ẽ\":\"E\",\"ẽ\":\"e\",\"Ế\":\"E\",\"ế\":\"e\",\"Ề\":\"E\",\"ề\":\"e\",\"Ể\":\"E\",\"ể\":\"e\",\"Ễ\":\"E\",\"ễ\":\"e\",\"Ệ\":\"E\",\"ệ\":\"e\",\"Ỉ\":\"I\",\"ỉ\":\"i\",\"Ị\":\"I\",\"ị\":\"i\",\"Ọ\":\"O\",\"ọ\":\"o\",\"Ỏ\":\"O\",\"ỏ\":\"o\",\"Ố\":\"O\",\"ố\":\"o\",\"Ồ\":\"O\",\"ồ\":\"o\",\"Ổ\":\"O\",\"ổ\":\"o\",\"Ỗ\":\"O\",\"ỗ\":\"o\",\"Ộ\":\"O\",\"ộ\":\"o\",\"Ớ\":\"O\",\"ớ\":\"o\",\"Ờ\":\"O\",\"ờ\":\"o\",\"Ở\":\"O\",\"ở\":\"o\",\"Ỡ\":\"O\",\"ỡ\":\"o\",\"Ợ\":\"O\",\"ợ\":\"o\",\"Ụ\":\"U\",\"ụ\":\"u\",\"Ủ\":\"U\",\"ủ\":\"u\",\"Ứ\":\"U\",\"ứ\":\"u\",\"Ừ\":\"U\",\"ừ\":\"u\",\"Ử\":\"U\",\"ử\":\"u\",\"Ữ\":\"U\",\"ữ\":\"u\",\"Ự\":\"U\",\"ự\":\"u\",\"Ỳ\":\"Y\",\"ỳ\":\"y\",\"Ỵ\":\"Y\",\"ỵ\":\"y\",\"Ỷ\":\"Y\",\"ỷ\":\"y\",\"Ỹ\":\"Y\",\"ỹ\":\"y\",\"–\":\"-\",\"‘\":\"\\'\",\"’\":\"\\'\",\"“\":\"\\\\\\\"\",\"”\":\"\\\\\\\"\",\"„\":\"\\\\\\\"\",\"†\":\"+\",\"•\":\"*\",\"…\":\"...\",\"₠\":\"ecu\",\"₢\":\"cruzeiro\",\"₣\":\"french franc\",\"₤\":\"lira\",\"₥\":\"mill\",\"₦\":\"naira\",\"₧\":\"peseta\",\"₨\":\"rupee\",\"₩\":\"won\",\"₪\":\"new shequel\",\"₫\":\"dong\",\"€\":\"euro\",\"₭\":\"kip\",\"₮\":\"tugrik\",\"₯\":\"drachma\",\"₰\":\"penny\",\"₱\":\"peso\",\"₲\":\"guarani\",\"₳\":\"austral\",\"₴\":\"hryvnia\",\"₵\":\"cedi\",\"₸\":\"kazakhstani tenge\",\"₹\":\"indian rupee\",\"₺\":\"turkish lira\",\"₽\":\"russian ruble\",\"₿\":\"bitcoin\",\"℠\":\"sm\",\"™\":\"tm\",\"∂\":\"d\",\"∆\":\"delta\",\"∑\":\"sum\",\"∞\":\"infinity\",\"♥\":\"love\",\"元\":\"yuan\",\"円\":\"yen\",\"﷼\":\"rial\",\"ﻵ\":\"laa\",\"ﻷ\":\"laa\",\"ﻹ\":\"lai\",\"ﻻ\":\"la\"}')\n var locales = JSON.parse('{\"bg\":{\"Й\":\"Y\",\"Ц\":\"Ts\",\"Щ\":\"Sht\",\"Ъ\":\"A\",\"Ь\":\"Y\",\"й\":\"y\",\"ц\":\"ts\",\"щ\":\"sht\",\"ъ\":\"a\",\"ь\":\"y\"},\"de\":{\"Ä\":\"AE\",\"ä\":\"ae\",\"Ö\":\"OE\",\"ö\":\"oe\",\"Ü\":\"UE\",\"ü\":\"ue\",\"ß\":\"ss\",\"%\":\"prozent\",\"&\":\"und\",\"|\":\"oder\",\"∑\":\"summe\",\"∞\":\"unendlich\",\"♥\":\"liebe\"},\"es\":{\"%\":\"por ciento\",\"&\":\"y\",\"<\":\"menor que\",\">\":\"mayor que\",\"|\":\"o\",\"¢\":\"centavos\",\"£\":\"libras\",\"¤\":\"moneda\",\"₣\":\"francos\",\"∑\":\"suma\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"fr\":{\"%\":\"pourcent\",\"&\":\"et\",\"<\":\"plus petit\",\">\":\"plus grand\",\"|\":\"ou\",\"¢\":\"centime\",\"£\":\"livre\",\"¤\":\"devise\",\"₣\":\"franc\",\"∑\":\"somme\",\"∞\":\"infini\",\"♥\":\"amour\"},\"pt\":{\"%\":\"porcento\",\"&\":\"e\",\"<\":\"menor\",\">\":\"maior\",\"|\":\"ou\",\"¢\":\"centavo\",\"∑\":\"soma\",\"£\":\"libra\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"uk\":{\"И\":\"Y\",\"и\":\"y\",\"Й\":\"Y\",\"й\":\"y\",\"Ц\":\"Ts\",\"ц\":\"ts\",\"Х\":\"Kh\",\"х\":\"kh\",\"Щ\":\"Shch\",\"щ\":\"shch\",\"Г\":\"H\",\"г\":\"h\"},\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"},\"da\":{\"Ø\":\"OE\",\"ø\":\"oe\",\"Å\":\"AA\",\"å\":\"aa\",\"%\":\"procent\",\"&\":\"og\",\"|\":\"eller\",\"$\":\"dollar\",\"<\":\"mindre end\",\">\":\"større end\"},\"nb\":{\"&\":\"og\",\"Å\":\"AA\",\"Æ\":\"AE\",\"Ø\":\"OE\",\"å\":\"aa\",\"æ\":\"ae\",\"ø\":\"oe\"},\"it\":{\"&\":\"e\"},\"nl\":{\"&\":\"en\"},\"sv\":{\"&\":\"och\",\"Å\":\"AA\",\"Ä\":\"AE\",\"Ö\":\"OE\",\"å\":\"aa\",\"ä\":\"ae\",\"ö\":\"oe\"}}')\n\n function replace (string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected')\n }\n\n options = (typeof options === 'string')\n ? {replacement: options}\n : options || {}\n\n var locale = locales[options.locale] || {}\n\n var replacement = options.replacement === undefined ? '-' : options.replacement\n\n var trim = options.trim === undefined ? true : options.trim\n\n var slug = string.normalize().split('')\n // replace characters based on charMap\n .reduce(function (result, ch) {\n var appendChar = locale[ch] || charMap[ch] || ch;\n if (appendChar === replacement) {\n appendChar = ' ';\n }\n return result + appendChar\n // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '')\n }, '');\n\n if (options.strict) {\n slug = slug.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n if (trim) {\n slug = slug.trim()\n }\n\n // Replace spaces with replacement character, treating multiple consecutive\n // spaces as a single space.\n slug = slug.replace(/\\s+/g, replacement);\n\n if (options.lower) {\n slug = slug.toLowerCase()\n }\n\n return slug\n }\n\n replace.extend = function (customMap) {\n Object.assign(charMap, customMap)\n }\n\n return replace\n}))\n","module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"child_process\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"module\");","module.exports = require(\"node:child_process\");","module.exports = require(\"node:crypto\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"node:os\");","module.exports = require(\"node:path\");","module.exports = require(\"node:process\");","module.exports = require(\"node:tty\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"string_decoder\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");"],"names":["TaskSet","constructor","manager","super","this","_tasks","Set","_status","_results","success","failed","_handleComplete","task","emit","size","add","Error","has","subscribe","status","start","t","tasks","Array","from","values","results","defineCommand","command","describe","builder","async","yargs","applyMiddlewares","setupInk","loadProject","positional","type","demandOption","option","choice","default","desc","group","alias","coerce","rev","args","app","container","INK_APP","project","Project","CURRENT","TASK_MANAGER","spinner","SpinnerService","spin","pipeline","Pipeline","ScriptsFilter","script","undefined","private","PrivateFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","rest","_","map","arg","toString","splice","wks","filter","workspaces","run","buildDeps","depsMode","length","process","exit","stop","rerender","Layout","TaskManagerSpinner","waitForEvent","loadWorkspace","expr","TaskExprService","parse","join","roots","choices","workspace","Workspace","parser","buildTask","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","version","json","manifest","chalk","root","cwd","slug","slugify","string","withScript","push","attrs","long","data","attr","buildExtractor","stdout","isTTY","console","log","JSON","stringify","write","d","path","List","items","headers","handler","WorkspaceTree","commands","each","list","tree","VERBOSITY_LEVEL","configOptions","defineMiddleware","description","CONFIG","jobs","os","verbose","Logger","level","Math","min","SERVICES_CONFIG","toConstantValue","hideBin","argv","scriptName","completion","help","wrap","columns","pluginLoader","PluginLoaderService","loadPlugins","demandCommand","recommendCommands","strict","err","error","factory","charMap","locales","replace","options","locale","replacement","trim","normalize","split","reduce","result","ch","appendChar","remove","lower","toLowerCase","extend","customMap","Object","assign","module","exports","require"],"sourceRoot":""}