@jujulego/jill 2.4.0-alpha.1 → 2.4.0-alpha.2

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/489.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const id=489;export const ids=[489];export const modules={489:(e,t,o)=>{o.d(t,{CorePlugin:()=>W});var n=o(8858),r=o(6675),i=o(6133),s=o(3565),c=o(8652),a=o(2999),d=o(307),p=o(4203),l=o(8754),f=o(9717),u=o(366),g=o(6505);function m(e,t,o,n){var r,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(s=(i<3?r(s):i>3?r(t,o,s):r(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}function v(e,t){return function(o,n){t(o,n,e)}}let y=class extends u.o{constructor(e,t){super(),this.logger=e,this.spinner=t}builder(e){return this.addTaskOptions(e).positional("script",{type:"string",demandOption:!0}).option("build-script",{default:"build",desc:"Script to use to build dependencies"}).option("deps-mode",{alias:"d",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:"Filters:",desc:"Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name."}).option("affected-rev-sort",{type:"string",group:"Filters:",desc:"Sort applied to git tag / git branch command"}).option("affected-rev-fallback",{type:"string",default:"master",group:"Filters:",desc:"Fallback revision, used if no revision matching the given format is found"}).strict(!1).parserConfiguration({"unknown-options-as-args":!0})}async*prepare(e){try{this.spinner.spin("Loading workspaces ...");const t=new a.B;t.add(new p.f([e.script])),void 0!==e.private&&t.add(new d.N(e.private)),void 0!==e.affected&&t.add(new c.L(e.affected,e.affectedRevFallback,e.affectedRevSort));const o=e._.map((e=>e.toString()));"each"===o[0]&&o.splice(0,1);let n=!0;for await(const r of t.filter(this.project.workspaces())){const t=await r.run(e.script,o,{buildScript:e.buildScript,buildDeps:e.depsMode});t&&(yield t,n=!1)}if(n)throw this.logger.error(`${i.default.error} No matching workspace found !`),new g.T(1)}finally{this.spinner.stop()}}};m([(0,l._)()],y.prototype,"project",void 0),y=m([(0,f.mY)({command:"each <script>",describe:"Run script on many workspaces",middlewares:[l.r]}),v(0,(0,r.inject)(n.Logger)),v(1,(0,r.inject)(s.V))],y);var w=o(2419);function b(e,t,o,n){var r,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(s=(i<3?r(s):i>3?r(t,o,s):r(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}let h=class extends u.o{builder(e){return this.addTaskOptions(e).positional("command",{type:"string",demandOption:!0}).option("build-script",{default:"build",desc:"Script to use to build dependencies"}).option("deps-mode",{alias:"d",choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}).example("jill eslint","").example("jill eslint --env-info","Unknown arguments are passed down to command. Here it would run eslint --env-info").example("jill eslint -- -v","You can use -- to stop argument parsing. Here it would run eslint -v").strict(!1).parserConfiguration({"unknown-options-as-args":!0})}async*prepare(e){const t=e._.map((e=>e.toString()));"exec"===t[0]&&t.splice(0,1);const o=await this.workspace.exec(e.command,t,{buildScript:e.buildScript,buildDeps:e.depsMode});yield o}};b([(0,w.I)()],h.prototype,"workspace",void 0),h=b([(0,f.mY)({command:"exec <command>",aliases:["$0"],describe:"Run command inside workspace, after all its dependencies has been built.",middlewares:[l.r,w.S]})],h);var k=o(3678);function j(e,t,o,n){var r,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(s=(i<3?r(s):i>3?r(t,o,s):r(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}let R=class extends u.o{constructor(e){super(),this.taskExpr=e}builder(e){return this.addTaskOptions(e).positional("script",{demandOption:!0,coerce:e=>this.taskExpr.parse(e.join(" "))}).option("build-script",{default:"build",desc:"Script to use to build dependencies"}).option("deps-mode",{alias:"d",choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"})}async*prepare(e){const t=await this.taskExpr.buildTask(e.script.roots[0],this.workspace,{buildScript:e.buildScript,buildDeps:e.depsMode});yield t}};var O;j([(0,w.I)()],R.prototype,"workspace",void 0),R=j([(0,f.mY)({command:"group <script..>",describe:"Run many scripts inside a workspace (experimental)",middlewares:[l.r,w.S]}),(0,O=(0,r.inject)(k.P),function(e,t){O(e,t,0)})],R);var S=o(832),P=o(7564),D=o(9411),x=o.n(D),F=o(946),N=o.n(F),T=o(6729),Y=o(5740),I=o(8520),L=o(5472);function _(e,t,o,n){var r,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(s=(i<3?r(s):i>3?r(t,o,s):r(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}const A=["name","version","root"],C=["name","version","slug","root"],M=["name"],$={name:e=>e.name,version:(e,t)=>e.manifest.version||(t?void 0:P.default.grey("unset")),root:e=>e.cwd,slug:e=>(0,I.v)(N())(e.name)};let E=class extends T.m{builder(e){return e.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:"Filters:",desc:"Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name."}).option("affected-rev-sort",{type:"string",group:"Filters:",desc:"Sort applied to git tag / git branch command"}).option("affected-rev-fallback",{type:"string",default:"master",group:"Filters:",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*render(e){const t=new a.B;void 0!==e.private&&t.add(new d.N(e.private)),e.withScript&&t.add(new p.f(e.withScript)),void 0!==e.affected&&t.add(new c.L(e.affected,e.affectedRevFallback,e.affectedRevSort));const o=[];for await(const e of t.filter(this.project.workspaces()))o.push(e);let n=e.attrs;0===n.length&&(n=e.long?A:e.json?C:M);const r=o.map((t=>function(e){return(t,o)=>{const n={};for(const r of e)n[r]=$[r](t,o);return n}}(n)(t,e.json||!1)));if(e.json)(0,L.i)(r);else{for(const e of r)e.root&&(e.root=x().relative(process.cwd(),e.root)||".");yield(0,S.jsx)(Y.Z,{items:r,headers:e.headers??n.length>1})}}};function B(e,t,o,n){var r,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(s=(i<3?r(s):i>3?r(t,o,s):r(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}_([(0,l._)()],E.prototype,"project",void 0),E=_([(0,f.mY)({command:"list",aliases:["ls"],describe:"List workspace",middlewares:[l.r]})],E);let H=class extends u.o{constructor(e){super(),this.logger=e}builder(e){return this.addTaskOptions(e).positional("script",{type:"string",demandOption:!0}).option("build-script",{default:"build",desc:"Script to use to build dependencies"}).option("deps-mode",{alias:"d",choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}).strict(!1).parserConfiguration({"unknown-options-as-args":!0})}async*prepare(e){const t=e._.map((e=>e.toString()));"run"===t[0]&&t.splice(0,1);const o=await this.workspace.run(e.script,t,{buildScript:e.buildScript,buildDeps:e.depsMode});if(!o)throw this.logger.error(`Workspace ${this.workspace.name} have no ${e.script} script`),new g.T(1);yield o}};B([(0,w.I)()],H.prototype,"workspace",void 0),H=B([(0,f.mY)({command:"run <script>",describe:"Run script inside workspace",middlewares:[l.r,w.S]}),function(e,t){return function(e,o){t(e,o,0)}}(0,(0,r.inject)(n.Logger))],H);var Z=o(6238);function J(e,t,o,n){var r,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(s=(i<3?r(s):i>3?r(t,o,s):r(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}let U=class extends T.m{*render(){yield(0,S.jsx)(Z.Z,{workspace:this.workspace})}};J([(0,w.I)()],U.prototype,"workspace",void 0),U=J([(0,f.mY)({command:"tree",describe:"Print workspace dependency tree",middlewares:[l.r,w.S]})],U);var V=o(5756);let W=class{};W=function(e,t,o,n){var r,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(s=(i<3?r(s):i>3?r(t,o,s):r(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}([(0,V.S)({name:"core",commands:[y,h,R,E,H,U]})],W)}};
1
+ export const id=489;export const ids=[489];export const modules={489:(e,t,o)=>{o.d(t,{CorePlugin:()=>U});var r=o(8858),n=o(6675),i=o(6133),s=o(8652),c=o(2999),a=o(307),d=o(4203),p=o(8754),l=o(9717),f=o(366),u=o(6505);function g(e,t,o,r){var n,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(s=(i<3?n(s):i>3?n(t,o,s):n(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}let m=class extends f.o{constructor(e){super(),this.logger=e}builder(e){return this.addTaskOptions(e).positional("script",{type:"string",demandOption:!0}).option("build-script",{default:"build",desc:"Script to use to build dependencies"}).option("deps-mode",{alias:"d",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:"Filters:",desc:"Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name."}).option("affected-rev-sort",{type:"string",group:"Filters:",desc:"Sort applied to git tag / git branch command"}).option("affected-rev-fallback",{type:"string",default:"master",group:"Filters:",desc:"Fallback revision, used if no revision matching the given format is found"}).strict(!1).parserConfiguration({"unknown-options-as-args":!0})}async*prepare(e){const t=new c.B;t.add(new d.f([e.script])),void 0!==e.private&&t.add(new a.N(e.private)),void 0!==e.affected&&t.add(new s.L(e.affected,e.affectedRevFallback,e.affectedRevSort));const o=e._.map((e=>e.toString()));"each"===o[0]&&o.splice(0,1);let r=!0;for await(const n of t.filter(this.project.workspaces())){const t=await n.run(e.script,o,{buildScript:e.buildScript,buildDeps:e.depsMode});t&&(yield t,r=!1)}if(r)throw this.logger.error(`${i.default.error} No matching workspace found !`),new u.T(1)}};var v;g([(0,p._)()],m.prototype,"project",void 0),m=g([(0,l.mY)({command:"each <script>",describe:"Run script on many workspaces",middlewares:[p.r]}),(0,v=(0,n.inject)(r.Logger),function(e,t){v(e,t,0)})],m);var y=o(2419);function w(e,t,o,r){var n,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(s=(i<3?n(s):i>3?n(t,o,s):n(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}let b=class extends f.o{builder(e){return this.addTaskOptions(e).positional("command",{type:"string",demandOption:!0}).option("build-script",{default:"build",desc:"Script to use to build dependencies"}).option("deps-mode",{alias:"d",choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}).example("jill eslint","").example("jill eslint --env-info","Unknown arguments are passed down to command. Here it would run eslint --env-info").example("jill eslint -- -v","You can use -- to stop argument parsing. Here it would run eslint -v").strict(!1).parserConfiguration({"unknown-options-as-args":!0})}async*prepare(e){const t=e._.map((e=>e.toString()));"exec"===t[0]&&t.splice(0,1);const o=await this.workspace.exec(e.command,t,{buildScript:e.buildScript,buildDeps:e.depsMode});yield o}};w([(0,y.I)()],b.prototype,"workspace",void 0),b=w([(0,l.mY)({command:"exec <command>",aliases:["$0"],describe:"Run command inside workspace, after all its dependencies has been built.",middlewares:[p.r,y.S]})],b);var h=o(3678);function k(e,t,o,r){var n,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(s=(i<3?n(s):i>3?n(t,o,s):n(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}let j=class extends f.o{constructor(e){super(),this.taskExpr=e}builder(e){return this.addTaskOptions(e).positional("script",{demandOption:!0,desc:"Task expression",coerce:e=>this.taskExpr.parse(e.join(" "))}).option("build-script",{default:"build",desc:"Script to use to build dependencies"}).option("deps-mode",{alias:"d",choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"})}async*prepare(e){const t=await this.taskExpr.buildTask(e.script.roots[0],this.workspace,{buildScript:e.buildScript,buildDeps:e.depsMode});yield t}};k([(0,y.I)()],j.prototype,"workspace",void 0),j=k([(0,l.mY)({command:"group <script..>",describe:"Run many scripts inside a workspace (experimental)",middlewares:[p.r,y.S]}),function(e,t){return function(e,o){t(e,o,0)}}(0,(0,n.inject)(h.P))],j);var R=o(832),O=o(7564),S=o(9411),P=o.n(S),D=o(946),x=o.n(D),F=o(3893),N=o(5740),T=o(8520),Y=o(5472);function I(e,t,o,r){var n,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(s=(i<3?n(s):i>3?n(t,o,s):n(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}const L=["name","version","root"],_=["name","version","slug","root"],A=["name"],C={name:e=>e.name,version:(e,t)=>e.manifest.version||(t?void 0:O.default.grey("unset")),root:e=>e.cwd,slug:e=>(0,T.v)(x())(e.name)};let M=class extends F.m{builder(e){return e.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:"Filters:",desc:"Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name."}).option("affected-rev-sort",{type:"string",group:"Filters:",desc:"Sort applied to git tag / git branch command"}).option("affected-rev-fallback",{type:"string",default:"master",group:"Filters:",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*render(e){const t=new c.B;void 0!==e.private&&t.add(new a.N(e.private)),e.withScript&&t.add(new d.f(e.withScript)),void 0!==e.affected&&t.add(new s.L(e.affected,e.affectedRevFallback,e.affectedRevSort));const o=[];for await(const e of t.filter(this.project.workspaces()))o.push(e);let r=e.attrs;0===r.length&&(r=e.long?L:e.json?_:A);const n=o.map((t=>function(e){return(t,o)=>{const r={};for(const n of e)r[n]=C[n](t,o);return r}}(r)(t,e.json||!1)));if(e.json)(0,Y.i)(n);else{for(const e of n)e.root&&(e.root=P().relative(process.cwd(),e.root)||".");yield(0,R.jsx)(N.Z,{items:n,headers:e.headers??r.length>1})}}};function $(e,t,o,r){var n,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(s=(i<3?n(s):i>3?n(t,o,s):n(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}I([(0,p._)()],M.prototype,"project",void 0),M=I([(0,l.mY)({command:"list",aliases:["ls"],describe:"List workspace",middlewares:[p.r]})],M);let E=class extends f.o{constructor(e){super(),this.logger=e}builder(e){return this.addTaskOptions(e).positional("script",{type:"string",demandOption:!0}).option("build-script",{default:"build",desc:"Script to use to build dependencies"}).option("deps-mode",{alias:"d",choice:["all","prod","none"],default:"all",desc:"Dependency selection mode:\n - all = dependencies AND devDependencies\n - prod = dependencies\n - none = nothing"}).strict(!1).parserConfiguration({"unknown-options-as-args":!0})}async*prepare(e){const t=e._.map((e=>e.toString()));"run"===t[0]&&t.splice(0,1);const o=await this.workspace.run(e.script,t,{buildScript:e.buildScript,buildDeps:e.depsMode});if(!o)throw this.logger.error(`Workspace ${this.workspace.name} have no ${e.script} script`),new u.T(1);yield o}};$([(0,y.I)()],E.prototype,"workspace",void 0),E=$([(0,l.mY)({command:"run <script>",describe:"Run script inside workspace",middlewares:[p.r,y.S]}),function(e,t){return function(e,o){t(e,o,0)}}(0,(0,n.inject)(r.Logger))],E);var B=o(6238);function H(e,t,o,r){var n,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(s=(i<3?n(s):i>3?n(t,o,s):n(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}let Z=class extends F.m{*render(){yield(0,R.jsx)(B.Z,{workspace:this.workspace})}};H([(0,y.I)()],Z.prototype,"workspace",void 0),Z=H([(0,l.mY)({command:"tree",describe:"Print workspace dependency tree",middlewares:[p.r,y.S]})],Z);var J=o(5756);let U=class{};U=function(e,t,o,r){var n,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(s=(i<3?n(s):i>3?n(t,o,s):n(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s}([(0,J.S)({name:"core",commands:[m,b,j,M,E,Z]})],U)}};
2
2
  //# sourceMappingURL=489.mjs.map
package/dist/489.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"489.mjs","mappings":"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","sources":["webpack://@jujulego/jill/./src/commands/each.ts","webpack://@jujulego/jill/./src/commands/exec.ts","webpack://@jujulego/jill/./src/commands/group.ts","webpack://@jujulego/jill/./src/commands/list.tsx","webpack://@jujulego/jill/./src/commands/run.ts","webpack://@jujulego/jill/./src/commands/tree.tsx","webpack://@jujulego/jill/./src/core.plugin.ts"],"sourcesContent":["import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport symbols from 'log-symbols';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { SpinnerService } from '@/src/commons/spinner.service.ts';\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface IEachCommandArgs {\n script: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n\n // Filters\n private?: boolean;\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n}\n\n// Command\n@Command({\n command: 'each <script>',\n describe: 'Run script on many workspaces',\n middlewares: [\n LoadProject\n ]\n})\nexport class EachCommand extends TaskCommand<IEachCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n @inject(SpinnerService)\n private readonly spinner: SpinnerService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<IEachCommandArgs> {\n return this.addTaskOptions(parser)\n // Run options\n .positional('script', { type: 'string', demandOption: true })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\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 .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IEachCommandArgs>) {\n try {\n this.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 let empty = true;\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n const task = await wks.run(args.script, rest, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n if (task) {\n yield task;\n empty = false;\n }\n }\n\n if (empty) {\n this.logger.error(`${symbols.error} No matching workspace found !`);\n throw new ExitException(1);\n }\n } finally {\n this.spinner.stop();\n }\n }\n}\n","import { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\n\n// Types\nexport interface IExecCommandArgs {\n command: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'exec <command>',\n aliases: ['$0'],\n describe: 'Run command inside workspace, after all its dependencies has been built.',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class ExecCommand extends TaskCommand<IExecCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('command', { type: 'string', demandOption: true })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\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 // Documentation\n .example('jill eslint', '')\n .example('jill eslint --env-info', 'Unknown arguments are passed down to command. Here it would run eslint --env-info')\n .example('jill eslint -- -v', 'You can use -- to stop argument parsing. Here it would run eslint -v')\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IExecCommandArgs>) {\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'exec') {\n rest.splice(0, 1);\n }\n\n // Run script in workspace\n const task = await this.workspace.exec(args.command, rest, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n yield task;\n }\n}\n","import { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExprService, type TaskTree } from '@/src/tasks/task-expr.service.ts';\n\n// Types\nexport interface IGroupCommandArgs {\n script: TaskTree;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'group <script..>',\n describe: 'Run many scripts inside a workspace (experimental)',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class GroupCommand extends TaskCommand<IGroupCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(TaskExprService)\n private readonly taskExpr: TaskExprService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<IGroupCommandArgs> {\n return this.addTaskOptions(parser)\n .positional('script', {\n demandOption: true,\n coerce: (expr: string[]) => {\n return this.taskExpr.parse(expr.join(' '));\n }\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\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\n async *prepare(args: ArgumentsCamelCase<IGroupCommandArgs>) {\n // Run script in workspace\n const group = await this.taskExpr.buildTask(args.script.roots[0], this.workspace, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n yield group;\n }\n}\n","import chalk from 'chalk';\nimport path from 'node:path';\nimport slugify from 'slugify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport List from '@/src/ui/list.tsx';\nimport { fixDefaultExport } from '@/src/utils/import.ts';\nimport { printJson } from '@/src/utils/json.ts';\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\nexport interface IListCommandArgs {\n // Filters\n private?: boolean;\n 'with-script'?: string[];\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n\n // Format\n attrs: Attribute[];\n headers?: boolean;\n long?: boolean;\n json?: boolean;\n}\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 = {\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 => fixDefaultExport(slugify)(wks.name)\n} satisfies Record<Attribute, Extractor<string | undefined>>;\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\n@Command({\n command: 'list',\n aliases: ['ls'],\n describe: 'List workspace',\n middlewares: [\n LoadProject,\n ]\n})\nexport class ListCommand extends InkCommand<IListCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Methods\n builder(parser: Argv): Argv<IListCommandArgs> {\n return parser\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 .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Format\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 }\n\n async *render(args: ArgumentsCamelCase<IListCommandArgs>) {\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 workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(this.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 printJson(data);\n } else {\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n }\n\n yield <List items={data} headers={args.headers ?? (attrs.length > 1)} />;\n }\n }\n}\n","import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface IRunCommandArgs {\n script: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'run <script>',\n describe: 'Run script inside workspace',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class RunCommand extends TaskCommand<IRunCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('script', { type: 'string', demandOption: true })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\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 // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IRunCommandArgs>) {\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 this.workspace.run(args.script, rest, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n if (task) {\n yield task;\n } else {\n this.logger.error(`Workspace ${this.workspace.name} have no ${args.script} script`);\n throw new ExitException(1);\n }\n }\n}\n","import { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport WorkspaceTree from '@/src/ui/workspace-tree.tsx';\n\n// Command\n@Command({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class TreeCommand extends InkCommand {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Methods\n *render() {\n yield <WorkspaceTree workspace={this.workspace} />;\n }\n}\n","import { EachCommand } from '@/src/commands/each.ts';\nimport { ExecCommand } from '@/src/commands/exec.ts';\nimport { GroupCommand } from '@/src/commands/group.ts';\nimport { ListCommand } from '@/src/commands/list.tsx';\nimport { RunCommand } from '@/src/commands/run.ts';\nimport { TreeCommand } from '@/src/commands/tree.tsx';\nimport { Plugin } from '@/src/modules/plugin.ts';\n\n// Plugin\n@Plugin({\n name: 'core',\n commands: [\n EachCommand,\n ExecCommand,\n GroupCommand,\n ListCommand,\n RunCommand,\n TreeCommand,\n ]\n})\nexport class CorePlugin {}\n"],"names":["EachCommand","TaskCommand","constructor","super","logger","spinner","builder","parser","this","addTaskOptions","positional","type","demandOption","option","default","desc","alias","choice","group","coerce","rev","strict","parserConfiguration","async","args","spin","pipeline","Pipeline","add","ScriptsFilter","script","undefined","private","PrivateFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","rest","_","map","arg","toString","splice","empty","wks","filter","project","workspaces","task","run","buildScript","buildDeps","depsMode","error","symbols","ExitException","stop","LazyCurrentProject","Command","command","describe","middlewares","LoadProject","inject","Logger","SpinnerService","ExecCommand","example","workspace","exec","LazyCurrentWorkspace","aliases","LoadWorkspace","GroupCommand","taskExpr","expr","parse","join","buildTask","roots","TaskExprService","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","version","json","manifest","chalk","root","cwd","slug","fixDefaultExport","slugify","ListCommand","InkCommand","string","choices","withScript","push","attrs","length","long","data","attr","buildExtractor","printJson","d","path","process","List","items","headers","RunCommand","TreeCommand","WorkspaceTree","CorePlugin","Plugin","commands"],"sourceRoot":""}
1
+ {"version":3,"file":"489.mjs","mappings":"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","sources":["webpack://@jujulego/jill/./src/commands/each.ts","webpack://@jujulego/jill/./src/commands/exec.ts","webpack://@jujulego/jill/./src/commands/group.ts","webpack://@jujulego/jill/./src/commands/list.tsx","webpack://@jujulego/jill/./src/commands/run.ts","webpack://@jujulego/jill/./src/commands/tree.tsx","webpack://@jujulego/jill/./src/core.plugin.ts"],"sourcesContent":["import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport symbols from 'log-symbols';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface IEachCommandArgs {\n script: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n\n // Filters\n private?: boolean;\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n}\n\n// Command\n@Command({\n command: 'each <script>',\n describe: 'Run script on many workspaces',\n middlewares: [\n LoadProject\n ]\n})\nexport class EachCommand extends TaskCommand<IEachCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<IEachCommandArgs> {\n return this.addTaskOptions(parser)\n // Run options\n .positional('script', { type: 'string', demandOption: true })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\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 .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IEachCommandArgs>) {\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 let empty = true;\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n const task = await wks.run(args.script, rest, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n if (task) {\n yield task;\n empty = false;\n }\n }\n\n if (empty) {\n this.logger.error(`${symbols.error} No matching workspace found !`);\n throw new ExitException(1);\n }\n }\n}\n","import { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\n\n// Types\nexport interface IExecCommandArgs {\n command: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'exec <command>',\n aliases: ['$0'],\n describe: 'Run command inside workspace, after all its dependencies has been built.',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class ExecCommand extends TaskCommand<IExecCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('command', { type: 'string', demandOption: true })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\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 // Documentation\n .example('jill eslint', '')\n .example('jill eslint --env-info', 'Unknown arguments are passed down to command. Here it would run eslint --env-info')\n .example('jill eslint -- -v', 'You can use -- to stop argument parsing. Here it would run eslint -v')\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IExecCommandArgs>) {\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'exec') {\n rest.splice(0, 1);\n }\n\n // Run script in workspace\n const task = await this.workspace.exec(args.command, rest, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n yield task;\n }\n}\n","import { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExprService, type TaskTree } from '@/src/tasks/task-expr.service.ts';\n\n// Types\nexport interface IGroupCommandArgs {\n script: TaskTree;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'group <script..>',\n describe: 'Run many scripts inside a workspace (experimental)',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class GroupCommand extends TaskCommand<IGroupCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(TaskExprService)\n private readonly taskExpr: TaskExprService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<IGroupCommandArgs> {\n return this.addTaskOptions(parser)\n .positional('script', {\n demandOption: true,\n desc: 'Task expression',\n coerce: (expr: string[]) => this.taskExpr.parse(expr.join(' ')),\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\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\n async *prepare(args: ArgumentsCamelCase<IGroupCommandArgs>) {\n // Run script in workspace\n const group = await this.taskExpr.buildTask(args.script.roots[0], this.workspace, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n yield group;\n }\n}\n","import chalk from 'chalk';\nimport path from 'node:path';\nimport slugify from 'slugify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport List from '@/src/ui/list.tsx';\nimport { fixDefaultExport } from '@/src/utils/import.ts';\nimport { printJson } from '@/src/utils/json.ts';\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\nexport interface IListCommandArgs {\n // Filters\n private?: boolean;\n 'with-script'?: string[];\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n\n // Format\n attrs: Attribute[];\n headers?: boolean;\n long?: boolean;\n json?: boolean;\n}\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 = {\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 => fixDefaultExport(slugify)(wks.name)\n} satisfies Record<Attribute, Extractor<string | undefined>>;\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\n@Command({\n command: 'list',\n aliases: ['ls'],\n describe: 'List workspace',\n middlewares: [\n LoadProject,\n ]\n})\nexport class ListCommand extends InkCommand<IListCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Methods\n builder(parser: Argv): Argv<IListCommandArgs> {\n return parser\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 .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Format\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 }\n\n async *render(args: ArgumentsCamelCase<IListCommandArgs>) {\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 workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(this.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 printJson(data);\n } else {\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n }\n\n yield <List items={data} headers={args.headers ?? (attrs.length > 1)} />;\n }\n }\n}\n","import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface IRunCommandArgs {\n script: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'run <script>',\n describe: 'Run script inside workspace',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class RunCommand extends TaskCommand<IRunCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('script', { type: 'string', demandOption: true })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\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 // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IRunCommandArgs>) {\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 this.workspace.run(args.script, rest, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n if (task) {\n yield task;\n } else {\n this.logger.error(`Workspace ${this.workspace.name} have no ${args.script} script`);\n throw new ExitException(1);\n }\n }\n}\n","import { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport WorkspaceTree from '@/src/ui/workspace-tree.tsx';\n\n// Command\n@Command({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class TreeCommand extends InkCommand {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Methods\n *render() {\n yield <WorkspaceTree workspace={this.workspace} />;\n }\n}\n","import { EachCommand } from '@/src/commands/each.ts';\nimport { ExecCommand } from '@/src/commands/exec.ts';\nimport { GroupCommand } from '@/src/commands/group.ts';\nimport { ListCommand } from '@/src/commands/list.tsx';\nimport { RunCommand } from '@/src/commands/run.ts';\nimport { TreeCommand } from '@/src/commands/tree.tsx';\nimport { Plugin } from '@/src/modules/plugin.ts';\n\n// Plugin\n@Plugin({\n name: 'core',\n commands: [\n EachCommand,\n ExecCommand,\n GroupCommand,\n ListCommand,\n RunCommand,\n TreeCommand,\n ]\n})\nexport class CorePlugin {}\n"],"names":["EachCommand","TaskCommand","constructor","super","logger","builder","parser","this","addTaskOptions","positional","type","demandOption","option","default","desc","alias","choice","group","coerce","rev","strict","parserConfiguration","prepare","args","pipeline","Pipeline","add","ScriptsFilter","script","undefined","private","PrivateFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","rest","_","map","arg","toString","splice","empty","wks","filter","project","workspaces","task","run","buildScript","buildDeps","depsMode","error","symbols","ExitException","LazyCurrentProject","Command","command","describe","middlewares","LoadProject","inject","Logger","ExecCommand","example","workspace","exec","LazyCurrentWorkspace","aliases","LoadWorkspace","GroupCommand","taskExpr","expr","parse","join","buildTask","roots","TaskExprService","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","version","json","manifest","chalk","root","cwd","slug","fixDefaultExport","slugify","ListCommand","InkCommand","string","choices","render","withScript","push","attrs","length","long","data","attr","buildExtractor","printJson","d","path","process","List","items","headers","RunCommand","TreeCommand","WorkspaceTree","CorePlugin","Plugin","commands"],"sourceRoot":""}
package/dist/71.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const id=71;export const ids=[71];export const modules={6156:(e,t,n)=>{n.d(t,{O:()=>a});var r=n(8858),o=n(6675),s=n(2761),i=n(9921);let a=class{constructor(e){this._storage=new s.AsyncLocalStorage,this._logger=e.child((0,r.withLabel)("context")),this.reset()}reset(e={}){this._storage.enterWith(e)}_getContext(){return this._storage.getStore()||(this._logger.warning("Trying to access uninitialized context"),{})}_updateContext(e){Object.assign(this._getContext(),e)}get application(){return this._getContext().application}set application(e){this._updateContext({application:e})}get project(){return this._getContext().project}set project(e){this._updateContext({project:e})}get workspace(){return this._getContext().workspace}set workspace(e){this._updateContext({workspace:e})}};var c;a=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,i.t)(),(0,c=(0,o.inject)(r.Logger),function(e,t){c(e,t,0)})],a)},9060:(e,t,n)=>{var r=n(8858),o=n(466),s=n(6834);o.nC.bind(r.Logger).toDynamicValue((()=>(0,r.logger$)((0,r.withTimestamp)()))).inSingletonScope().onActivation((({container:e},t)=>(e.get(s.B).connect(t),t)))},6834:(e,t,n)=>{n.d(t,{B:()=>f,h:()=>p});var r=n(8490),o=n(2786),s=n(8858),i=n(8984),a=n(4308),c=n(4086),l=n.n(c),u=n(9921);let d=class{constructor(){this._source=(0,o.source$)(),this.subscribe=this._source.subscribe,this.unsubscribe=this._source.unsubscribe,this.clear=this._source.clear,this.channel=new c.BroadcastChannel("jujulego:jill:logger"),this.channel.unref(),this.channel.onmessage=e=>{this._source.next(e.data)},this.channel.onmessageerror=e=>{this._source.next((0,s.withTimestamp)()({level:s.LogLevel.error,message:s.quick.string`Unable to read message: #!json:${e.data}`}))}}next(e){this.channel.postMessage(e)}};d=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,u.t)()],d);const p=(0,s.qlevelColor)(s.quick.wrap(a.chalkTemplateStderr).function`#?:${(0,i.qprop)("label")}{grey [#$]} ?#${(0,i.qprop)("message")}`);let f=class{onServiceActivate({container:e}){const t=e.get(d);l().isMainThread?((0,r.flow$)(this._source,(0,s.toStderr)(p)),this.connect(t)):(0,r.flow$)(this._source,t)}connect(e){return(0,r.flow$)(e,(0,r.filter$)((e=>e.level>=this.level)),this._source)}get listeners(){return Array.from(this._source.listeners)}get level(){return this.level$.read()}set level(e){this.level$.mutate(e)}constructor(){this.level$=(0,r.var$)(s.LogLevel.info),this._source=(0,o.source$)(),this.subscribe=this._source.subscribe,this.unsubscribe=this._source.unsubscribe,this.clear=this._source.clear}};f=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,u.t)()],f)},7839:(e,t,n)=>{n.d(t,{k:()=>x});var r=n(8858),o=n(612),s=n.n(o),i=n(9411),a=n.n(i),c=n(5795),l=n(466);const u=Symbol("jujulego:jill:Ajv");l.nC.bind(u).toDynamicValue((({container:e})=>{const t=e.get(r.Logger);return new c.default({allErrors:!0,logger:t.child((0,r.withLabel)("ajv")),strict:!0})})).inSingletonScope();var d=n(6834),p=n(6505),f=n(2180),g=n(3843),h=n(6623);const m=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","type":"object","additionalProperties":false,"properties":{"jobs":{"type":"number"},"plugins":{"type":"array","items":{"type":"string"}},"verbose":{"type":"string","enum":["info","verbose","debug"]}}}');var j=n(8520);const b=Symbol("jujulego:jill:config-explorer"),y=Symbol("jujulego:jill:config-validator");l.nC.bind(y).toDynamicValue((({container:e})=>e.get(u).compile(m))).inSingletonScope(),l.nC.bind(b).toDynamicValue((()=>(0,h.cosmiconfig)("jill",{loaders:{".cjs":e=>(0,j.y)(e).then((e=>e.default)),".js":e=>(0,j.y)(e).then((e=>e.default)),".json":h.defaultLoaders[".json"],".yaml":h.defaultLoaders[".yaml"],".yml":h.defaultLoaders[".yml"],noExt:h.defaultLoaders.noExt}}))).inSingletonScope();const x=Symbol("jujulego:jill:config");async function w(){const e=l.nC.get(r.Logger).child((0,r.withLabel)("config")),t=l.nC.get(g.c),n=l.nC.get(b),o=l.nC.get(y),i=await n.search(),c=i?.config??{};if(t.jobs&&(c.jobs=t.jobs),t.verbose&&(c.verbose=t.verbose),c.jobs??=s().cpus().length-1,!o(c)){const t=l.nC.get(u).errorsText(o.errors,{separator:"\n- ",dataVar:"config"});throw e.error(`Errors in config file:\n- ${t}`),new p.T(1)}if(c.verbose&&(l.nC.get(d.B).level=r.LogLevel[c.verbose]),i){const t=a().dirname(i.filepath);c.plugins=c.plugins?.map((e=>a().resolve(t,e))),e.verbose(`Loaded ${i.filepath} config file`)}return e.debug`Loaded config:\n#!json:${c}`,c}l.nC.bind(x).toDynamicValue((async()=>await(0,f.F)("jujulego:jill:config",w))).inSingletonScope()},3843:(e,t,n)=>{n.d(t,{N:()=>c,c:()=>i});var r=n(2699),o=n(1091),s=n(466);const i=Symbol("jujulego:jill:config-options"),a={1:"verbose",2:"debug"};function c(e){return e.option("verbose",{alias:"v",type:"count",description:"Set verbosity level",coerce:e=>a[Math.min(e,2)]}).option("jobs",{alias:"j",type:"number",description:"Set maximum parallel job number"})}s.nC.bind(i).toDynamicValue((()=>{const e=(0,r.default)((0,o.hideBin)(process.argv)).help(!1).version(!1);return c(e),e.parse()})).inSingletonScope()},9300:(e,t,n)=>{n.d(t,{W:()=>r});const r="current"},2561:(e,t,n)=>{n.d(t,{I:()=>l});var r=n(832),o=n(9149),s=n(4086),i=n.n(s),a=n(466),c=n(5894);const l=Symbol.for("jujulego:jill:ink-app");a.nC.bind(l).toDynamicValue((()=>{if(!i().isMainThread)throw new Error("Ink should only be used in main thread");return(0,o.render)((0,r.jsx)(c.Z,{}))})).inSingletonScope()},466:(e,t,n)=>{n.d(t,{nC:()=>a,oV:()=>l,yT:()=>c});var r=n(6675),o=n(4088),s=n.n(o),i=(n(2483),n(8520));const a=new r.Container,{lazyInject:c,lazyInjectNamed:l}=(0,i.v)(s())(a)},8727:(e,t,n)=>{n.d(t,{T:()=>m});var r=n(8858),o=n(6675),s=n(2699),i=n(6156),a=n(3843),c=n(9300),l=n(466),u=n(9717),d=n(3617),p=n(7051),f=n(366);const g=JSON.parse('{"i8":"2.4.0-alpha.1"}');function h(e,t){return function(n,r){t(n,r,e)}}let m=class{constructor(e,t,n){this.context=e,this.plugins=t,this.logger=n,this.container=l.nC.createChild(),this.parser=(0,s.default)().scriptName("jill").completion("completion","Generate bash completion script").help("help","Show help for a command").version("version","Show version",g.i8).wrap(process.stdout.columns).exitProcess(!1)}_prepareParser(e){return(0,a.N)(this.parser),this.parser.command(e).recommendCommands().strict().fail(!1)}async _loadPlugins(){this.logger.child((0,r.withLabel)("plugin")).verbose("Loading plugin <core>");const{CorePlugin:e}=await Promise.all([n.e(828),n.e(489)]).then(n.bind(n,489));this.container.load((0,d.rT)(e,!0)),await this.plugins.loadPlugins(this.container)}async run(e){this.context.reset({application:this}),await this._loadPlugins();const t=await this.container.getAllAsync(u.mD);await this._prepareParser(t).parseAsync(e)}async tasksOf(e,t={}){this.context.reset({...t,application:this}),await this._loadPlugins();const n=await this.container.getAllAsync(u.NI);return new Promise(((t,r)=>{const o=[];for(const e of n){const n=(0,u._Y)(e.constructor),r=(0,u.$f)(e,n);r.handler=async n=>{if(e instanceof f.o){const r=[];for await(const t of e.prepare(n))r.push(t);t(r)}else t([])},o.push(r)}this._prepareParser(o).parseAsync(e).catch(r)}))}};m=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,o.injectable)(),h(0,(0,o.inject)(i.O)),h(1,(0,o.inject)(p.B)),h(2,(0,o.inject)(r.Logger))],m),l.nC.bind(m).toSelf().inTransientScope().whenTargetIsDefault(),l.nC.bind(m).toDynamicValue((({container:e})=>{const t=e.get(i.O).application;if(!t)throw new Error("Cannot inject current application, it not yet defined");return t})).whenTargetNamed(c.W)},9717:(e,t,n)=>{n.d(t,{$f:()=>u,NI:()=>a,_Y:()=>l,mD:()=>c,mY:()=>d});var r=n(6675),o=n(3617),s=n(1632);const i=Symbol("jujulego:jill:command-opts"),a=Symbol("jujulego:jill:command"),c=Symbol("jujulego:jill:command-module");function l(e){const t=Reflect.getMetadata(i,e);if("object"!=typeof t)throw new Error(`No command options found in ${e.name}`);return t}function u(e,t){return{command:t.command,aliases:t.aliases,describe:t.describe,deprecated:t.deprecated,builder:n=>(t.middlewares&&(n=(0,s.S)(n,t.middlewares)),e.builder&&(n=e.builder(n)),n),handler:t=>e.handler(t)}}function d(e){return t=>{(0,r.decorate)((0,r.injectable)(),t),Reflect.defineMetadata(i,e,t);const n=e.command.split(" ")[0];(0,o.i8)(t,(r=>{r(t).toSelf(),r(a).toDynamicValue((({container:e})=>e.getAsync(t))).whenTargetNamed(n),r(c).toDynamicValue((async({container:n})=>u(await n.getAsync(t),e))).whenTargetNamed(n)}))}}},6729:(e,t,n)=>{n.d(t,{m:()=>l});var r=n(832),o=n(6675),s=n(2561),i=n(466),a=n(5894);function c(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}let l=class{builder(e){return e}async handler(e){for await(const t of this.render(e))this.app.rerender((0,r.jsx)(a.Z,{children:t}));await this.app.waitUntilExit()}};c([(0,i.yT)(s.I)],l.prototype,"app",void 0),l=c([(0,o.injectable)()],l)},1632:(e,t,n)=>{n.d(t,{S:()=>i,d:()=>s});var r=n(6675),o=n(466);function s(){return e=>{(0,r.decorate)((0,r.injectable)(),e),o.nC.bind(e).toSelf().inSingletonScope()}}function i(e,t){let n=e;for(const e of t){const t=o.nC.get(e);t.builder&&(n=t.builder(n)),n.middleware((e=>t.handler(e)))}return n}},3617:(e,t,n)=>{n.d(t,{IY:()=>l,JH:()=>i,i8:()=>a,rT:()=>c});var r=n(6675);const o=Symbol("jujulego:jill:module"),s=Symbol("jujulego:jill:registry");function i(e){const t=Reflect.getMetadata(s,e);if("function"!=typeof t)throw new Error(`No registry found in ${e.name}`);return t}function a(e,t){Reflect.defineMetadata(s,t,e)}function c(e,t=!1){let n=Reflect.getMetadata(o,e);if(!(n&&n instanceof r.ContainerModule)){const o=Reflect.getMetadata(s,e);if("function"!=typeof o){if(t)throw new Error(`No module found in ${e.name}`);return null}n=new r.ContainerModule(o),l(e,n)}return n}function l(e,t){Reflect.defineMetadata(o,t,e)}},7051:(e,t,n)=>{n.d(t,{B:()=>d});var r=n(8858),o=n(6675),s=n(7839),i=n(466),a=n(8520),c=n(3617),l=n(9921);function u(e,t){return function(n,r){t(n,r,e)}}let d=class{constructor(e,t){this._config=e,this._logger=t.child((0,r.withLabel)("plugin"))}async _importPlugin(e){this._logger.verbose`Loading plugin ${e}`;let t=await(0,a.y)(e);for(;t&&"object"==typeof t&&"default"in t;)t=t.default;if(!t)throw new Error(`Invalid plugin ${e}: no plugin class found`);const n=(0,c.rT)(t);if(!n)throw new Error(`Invalid plugin ${e}: invalid plugin class`);return n}async loadPlugins(e=i.nC){if(this._config.plugins)for(const t of this._config.plugins){const n=await this._importPlugin(t);e.load(n)}}};d=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,l.t)(),u(0,(0,o.inject)(s.k)),u(1,(0,o.inject)(r.Logger))],d)},9921:(e,t,n)=>{n.d(t,{t:()=>s});var r=n(6675),o=n(466);function s(){return e=>((0,r.decorate)((0,r.injectable)(),e),o.nC.bind(e).toSelf().inSingletonScope().onActivation(((e,t)=>("onServiceActivate"in t&&t.onServiceActivate(e),t))),e)}},366:(e,t,n)=>{n.d(t,{o:()=>b});var r=n(832),o=n(2786),s=n(8858),i=n(3410),a=n(6675),c=n(466),l=n(4244),u=n(6839),d=n(5099),p=n(5740),f=n(4887),g=n(6505),h=n(5472),m=n(6729);function j(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}let b=class extends m.m{addTaskOptions(e){return e.option("plan",{type:"boolean",desc:"Only prints tasks to be run",default:!1}).option("plan-mode",{type:"string",desc:"Plan output mode",choices:["json","list"],default:"list"})}async*render(e){const t=new i.TaskSet;for await(const n of this.prepare(e))t.add(n);if(e.plan){const n=Array.from((0,i.plan)(t));if("json"===e.planMode)(0,h.i)(n);else{const e=n.map((e=>({id:e.id.substring(0,6),name:e.name,workspace:(0,l.g)(e.context)||(0,u.G)(e.context)?e.context.workspace.name:"",group:e.groupId?.substring(0,6),"depends on":e.dependenciesIds.map((e=>e.substring(0,6))).join(", ")})));yield(0,r.jsx)(p.Z,{items:e,headers:!0})}}else if(t.tasks.length>0){if(yield(0,r.jsx)(f.Z,{manager:this.manager}),t.start(this.manager),(await(0,o.waitFor$)(t,"finished")).failed>0)throw new g.T(1)}else c.nC.get(s.Logger).warning("No task found")}};j([(0,c.yT)(d.N)],b.prototype,"manager",void 0),b=j([(0,a.injectable)()],b)},4244:(e,t,n)=>{n.d(t,{F:()=>i,g:()=>s});var r=n(3410),o=n(3265);function s(e){return"workspace"in e&&"command"in e}class i extends r.SpawnTask{constructor(e,t,n,r={}){let o=t;r.superCommand&&("string"==typeof r.superCommand&&(r.superCommand=[r.superCommand]),r.superCommand.length>0&&(o=r.superCommand[0],n=[...r.superCommand.slice(1),t,...n])),super(o,n,{workspace:e,command:t},{...r,cwd:e.cwd,env:{FORCE_COLOR:"1",...r.env}}),this.workspace=e,this._logStreams()}_logStreams(){(0,o.m)(this,"stdout").subscribe((e=>this._logger.info(e))),(0,o.m)(this,"stderr").subscribe((e=>this._logger.info(e)))}}},6839:(e,t,n)=>{n.d(t,{G:()=>l,s:()=>u});var r=n(2786),o=n(3410),s=n(466),i=n(8727),a=n(4244),c=n(6379);function l(e){return"workspace"in e&&"script"in e}class u extends o.GroupTask{constructor(e,t,n,r){super(t,{workspace:e,script:t},r),this.workspace=e,this.script=t,this.args=n}async _runScript(e,t){const n=this.workspace.getScript(e);if(!n)return null;const[r,...o]=(0,c.z)(n);if("jill"===r){this._logger.debug(`Interpreting ${n}`);const e=o.map((e=>e.replace(/^["'](.+)["']$/,"$1"))),t=s.nC.get(i.T),r=await t.tasksOf(e,{project:this.project,workspace:this.workspace});if(r.length)return r}const l=await this.workspace.project.packageManager();return[new a.F(this.workspace,r,[...o,...t],{logger:this._logger,superCommand:"yarn"===l?["yarn","exec"]:void 0})]}async prepare(){const e=await this._runScript(this.script,this.args);if(!e)throw new Error(`No script ${this.script} in ${this.workspace.name}`);this._scriptTasks=new o.TaskSet;for(const t of e)this.add(t),this._scriptTasks.add(t)}async*_orchestrate(){if(!this._scriptTasks)throw new Error("ScriptTask needs to be prepared. Call prepare before starting it");yield*this._scriptTasks;const e=await(0,r.waitFor$)(this._scriptTasks,"finished");this.setStatus(0===e.failed?"done":"failed")}_stop(){if(this._scriptTasks)for(const e of this._scriptTasks)e.stop()}complexity(e=new Map){let t=super.complexity(e);return this._scriptTasks&&(t+=this._scriptTasks.tasks.reduce(((t,n)=>t+n.complexity(e)),0)),e.set(this.id,t),t}get project(){return this.workspace.project}}},5099:(e,t,n)=>{n.d(t,{N:()=>a});var r=n(8858),o=n(3410),s=n(7839),i=n(466);const a=Symbol("jujulego:jill:TaskManager");i.nC.bind(a).toDynamicValue((({container:e})=>{const t=e.get(s.k),n=e.get(r.Logger);return new o.TaskManager({jobs:t.jobs,logger:n})})).inSingletonScope()},6872:(e,t,n)=>{n.d(t,{Z:()=>d});var r=n(832),o=n(3410),s=n(9149),i=n(810),a=n(7839),c=n(466),l=n(4244),u=n(6797);function d({group:e}){const[t,n]=(0,i.useState)(!1),[p,f]=(0,i.useState)(e.status),[g,h]=(0,i.useState)([...e.tasks]),[m,j]=(0,i.useState)(!0),b=(0,i.useMemo)((()=>t||g.some((e=>!(0,l.g)(e.context)))),[t,g]),y=(0,i.useMemo)((()=>!b&&m),[b,m]);return(0,i.useLayoutEffect)((()=>{const e=c.nC.get(a.k);e.verbose&&n(["verbose","debug"].includes(e.verbose))}),[]),(0,i.useLayoutEffect)((()=>e.on("status",(e=>{f(e.status)}))),[e]),(0,i.useLayoutEffect)((()=>{let t=!1;return e.on("task.added",(()=>{t||(t=!0,queueMicrotask((()=>{h([...e.tasks]),t=!1})))}))}),[e]),(0,i.useLayoutEffect)((()=>{"running"===p?j(!1):"done"===p&&j(!0)}),[p]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.Z,{task:e}),y||(0,r.jsx)(s.Box,{flexDirection:"column",marginLeft:2,children:g.map((e=>(0,r.jsx)(i.Fragment,{children:e instanceof o.GroupTask?(0,r.jsx)(d,{group:e}):(0,r.jsx)(u.Z,{task:e})},e.id)))})]})}},5894:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(832),o=n(9149),s=n(810),i=n(466),a=n(6834);function c(){const{write:e}=(0,o.useStderr)();return(0,s.useLayoutEffect)((()=>{const t=i.nC.get(a.B),n=t.listeners;t.clear();const r=t.subscribe((t=>{e((0,a.h)(t)+"\n")}));return()=>{r();for(const e of n)t.subscribe(e)}}),[e]),null}function l({children:e}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c,{}),e]})}},5740:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(832),o=n(9149),s=n(6379);function i({items:e,headers:t}){return 0===e.length?null:(0,r.jsx)(o.Box,{children:Object.keys(e[0]).map((n=>(0,r.jsxs)(o.Box,{flexDirection:"column",marginRight:2,children:[t&&(0,r.jsx)(o.Text,{bold:!0,children:(0,s.k)(n)}),e.map(((e,t)=>(0,r.jsx)(o.Text,{children:e[n]||" "},t)))]},n)))})}},4887:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(832),o=n(3410),s=n(810),i=n(6872),a=n(6797);function c(e){return!(e.group||"hidden"in e.context&&e.context.hidden)}function l({manager:e}){const[t,n]=(0,s.useState)(e.tasks.filter(c));return(0,s.useLayoutEffect)((()=>{let t=!1;return e.on("added",(()=>{t||(t=!0,queueMicrotask((()=>{n(e.tasks.filter(c)),t=!1})))}))}),[e]),(0,r.jsx)(r.Fragment,{children:t.map((e=>e instanceof o.GroupTask?(0,r.jsx)(i.Z,{group:e},e.id):(0,r.jsx)(a.Z,{task:e},e.id)))})}},1562:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(832),o=n(9149),s=n(6839);function i({task:e}){return(0,s.G)(e.context)?(0,r.jsxs)(o.Text,{children:["Run ",(0,r.jsx)(o.Text,{bold:!0,children:e.context.script})," in ",e.context.workspace.name]}):(0,r.jsx)(o.Text,{children:e.name})}},6797:(e,t,n)=>{n.d(t,{Z:()=>p});var r=n(832),o=n(9149),s=n(9165),i=n(6133),a=n(9321),c=n(810),l=n(4244),u=n(6839),d=n(1562);function p({task:e}){const[t,n]=(0,c.useState)(e.status),[p,f]=(0,c.useState)(0);(0,c.useLayoutEffect)((()=>e.on("status",(e=>{n(e.status)}))),[e]),(0,c.useLayoutEffect)((()=>e.on("completed",(({duration:e})=>{f(e)}))),[e]);const g=(0,l.g)(e.context)&&e.group&&(0,u.G)(e.group.context);switch(t){case"blocked":case"ready":case"starting":return(0,r.jsxs)(o.Box,{children:[(0,r.jsx)(o.Text,{color:"grey",children:"·"}),(0,r.jsx)(o.Box,{paddingLeft:1,children:(0,r.jsx)(o.Text,{color:"grey",wrap:"truncate",children:(0,r.jsx)(d.Z,{task:e})})})]});case"running":return(0,r.jsxs)(o.Box,{children:[(0,r.jsx)(o.Text,{color:g?"dim":void 0,children:(0,r.jsx)(s.default,{})}),(0,r.jsx)(o.Box,{paddingLeft:1,children:(0,r.jsx)(o.Text,{color:g?"dim":void 0,wrap:"truncate",children:(0,r.jsx)(d.Z,{task:e})})})]});case"done":return(0,r.jsxs)(o.Box,{children:[(0,r.jsx)(o.Text,{color:"green",children:i.default.success}),(0,r.jsx)(o.Box,{paddingLeft:1,children:(0,r.jsx)(o.Text,{color:g?"dim":void 0,wrap:"truncate",children:(0,r.jsx)(d.Z,{task:e})})}),(0,r.jsx)(o.Box,{paddingLeft:1,flexShrink:0,children:(0,r.jsxs)(o.Text,{color:g?"grey":"dim",children:["(took ",(0,a.default)(p),")"]})})]});case"failed":return(0,r.jsxs)(o.Box,{children:[(0,r.jsx)(o.Text,{color:"red",children:i.default.error}),(0,r.jsx)(o.Box,{paddingLeft:1,children:(0,r.jsx)(o.Text,{color:g?"dim":void 0,wrap:"truncate",children:(0,r.jsx)(d.Z,{task:e})})}),(0,r.jsx)(o.Box,{paddingLeft:1,flexShrink:0,children:(0,r.jsxs)(o.Text,{color:g?"grey":"dim",children:["(took ",(0,a.default)(p),")"]})})]})}}},3265:(e,t,n)=>{n.d(t,{m:()=>o});var r=n(2786);function o(e,t){const n=(0,r.source$)();if(e.completed)return n;let o="";const s=e.on(`stream.${t}`,(e=>{const t=(o+e.data.toString("utf-8")).split(/\r?\n/);o=t.pop()??"";for(const e of t)n.next(e)}));return(0,r.once$)(e,"completed",(()=>{s(),o&&n.next(o)})),n}},6505:(e,t,n)=>{n.d(t,{T:()=>r});class r extends Error{constructor(e,t){super(t),this.code=e}}},8520:(e,t,n)=>{async function r(e){return import("win32"===process.platform?`file://${e}`:e)}function o(e){return e}n.d(t,{v:()=>o,y:()=>r})},5472:(e,t,n)=>{function r(e,t=process.stdout){t.isTTY?t.write(JSON.stringify(e,null,2)):t.write(JSON.stringify(e))}n.d(t,{i:()=>r})},6379:(e,t,n)=>{function r(e){return e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()}function o(e){e=e.trim();const t=[];let n="",r=0;for(let o=1;o<e.length;++o){const s=e[o];n?s===n&&(n=""):['"',"'"].includes(s)?n=s:" "===s&&(t.push(e.slice(r,o)),r=o+1)}return t.push(e.slice(r)),t}n.d(t,{k:()=>r,z:()=>o})},2180:(e,t,n)=>{n.d(t,{F:()=>s});var r=n(4086);const o=new r.BroadcastChannel("jujulego:jill:worker-cache");async function s(e,t){const n=(0,r.getEnvironmentData)(e);if(void 0!==n)return n;const s=await t();return(0,r.setEnvironmentData)(e,s),o.postMessage({key:e,value:s}),s}o.unref(),o.onmessage=e=>{const t=e;(function(e){return"object"==typeof e&&null!==e&&"key"in e&&"value"in e})(t.data)&&(0,r.setEnvironmentData)(t.data.key,t.data.value)}}};
1
+ export const id=71;export const ids=[71];export const modules={6156:(e,t,n)=>{n.d(t,{O:()=>a});var r=n(8858),o=n(6675),s=n(2761),i=n(9921);let a=class{constructor(e){this._storage=new s.AsyncLocalStorage,this._logger=e.child((0,r.withLabel)("context")),this.reset()}reset(e={}){this._storage.enterWith(e)}_getContext(){return this._storage.getStore()||(this._logger.warning("Trying to access uninitialized context"),{})}_updateContext(e){Object.assign(this._getContext(),e)}get application(){return this._getContext().application}set application(e){this._updateContext({application:e})}get project(){return this._getContext().project}set project(e){this._updateContext({project:e})}get workspace(){return this._getContext().workspace}set workspace(e){this._updateContext({workspace:e})}};var c;a=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,i.t)(),(0,c=(0,o.inject)(r.Logger),function(e,t){c(e,t,0)})],a)},9060:(e,t,n)=>{var r=n(8858),o=n(466),s=n(5050);o.nC.bind(r.Logger).toDynamicValue((()=>(0,r.logger$)((0,r.withTimestamp)()))).inSingletonScope().onActivation((({container:e},t)=>(e.get(s.B).connect(t),t)))},5050:(e,t,n)=>{n.d(t,{B:()=>j,h:()=>m});var r=n(8490),o=n(2786),s=n(8858),i=n(8984),a=n(4308),c=n(4086),l=n.n(c),u=n(9921),d=n(6675),p=n(466);const f=Symbol.for("jujulego:jill:log-broadcast-channel");p.nC.bind(f).toConstantValue("jujulego:jill:logger");let g=class{constructor(e){this._source=(0,o.source$)(),this.subscribe=this._source.subscribe,this.unsubscribe=this._source.unsubscribe,this.clear=this._source.clear,this.channel=new c.BroadcastChannel(e),this.channel.unref(),this.channel.onmessage=e=>{this._source.next(e.data)},this.channel.onmessageerror=e=>{this._source.next((0,s.withTimestamp)()({level:s.LogLevel.error,message:s.quick.string`Unable to read message: #!json:${e.data}`}))}}next(e){this.channel.postMessage(e)}};var h;g=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,u.t)(),(0,h=(0,d.inject)(f),function(e,t){h(e,t,0)})],g);const m=(0,s.qlevelColor)(s.quick.wrap(a.chalkTemplateStderr).function`#?:${(0,i.qprop)("label")}{grey [#$]} ?#${(0,i.qprop)("message")}`);let j=class{onServiceActivate({container:e}){const t=e.get(g);l().isMainThread?((0,r.flow$)(this._source,(0,s.toStderr)(m)),this.connect(t)):(0,r.flow$)(this._source,t)}connect(e){return(0,r.flow$)(e,(0,r.filter$)((e=>e.level>=this.level)),this._source)}get listeners(){return Array.from(this._source.listeners)}get level(){return this.level$.read()}set level(e){this.level$.mutate(e)}constructor(){this.level$=(0,r.var$)(s.LogLevel.info),this._source=(0,o.source$)(),this.subscribe=this._source.subscribe,this.unsubscribe=this._source.unsubscribe,this.clear=this._source.clear}};j=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,u.t)()],j)},7839:(e,t,n)=>{n.d(t,{k:()=>x});var r=n(8858),o=n(612),s=n.n(o),i=n(9411),a=n.n(i),c=n(5795),l=n(466);const u=Symbol("jujulego:jill:Ajv");l.nC.bind(u).toDynamicValue((({container:e})=>{const t=e.get(r.Logger);return new c.default({allErrors:!0,logger:t.child((0,r.withLabel)("ajv")),strict:!0})})).inSingletonScope();var d=n(5050),p=n(6505),f=n(2180),g=n(3843),h=n(6623);const m=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","type":"object","additionalProperties":false,"properties":{"jobs":{"type":"number"},"plugins":{"type":"array","items":{"type":"string"}},"verbose":{"type":"string","enum":["info","verbose","debug"]}}}');var j=n(8520);const b=Symbol("jujulego:jill:config-explorer"),y=Symbol("jujulego:jill:config-validator");l.nC.bind(y).toDynamicValue((({container:e})=>e.get(u).compile(m))).inSingletonScope(),l.nC.bind(b).toDynamicValue((()=>(0,h.cosmiconfig)("jill",{loaders:{".cjs":e=>(0,j.y)(e).then((e=>e.default)),".js":e=>(0,j.y)(e).then((e=>e.default)),".json":h.defaultLoaders[".json"],".yaml":h.defaultLoaders[".yaml"],".yml":h.defaultLoaders[".yml"],noExt:h.defaultLoaders.noExt}}))).inSingletonScope();const x=Symbol("jujulego:jill:config");async function w(){const e=l.nC.get(r.Logger).child((0,r.withLabel)("config")),t=l.nC.get(g.c),n=l.nC.get(b),o=l.nC.get(y),i=await n.search(),c=i?.config??{};if(t.jobs&&(c.jobs=t.jobs),t.verbose&&(c.verbose=t.verbose),c.jobs??=s().cpus().length-1,!o(c)){const t=l.nC.get(u).errorsText(o.errors,{separator:"\n- ",dataVar:"config"});throw e.error(`Errors in config file:\n- ${t}`),new p.T(1)}if(c.verbose&&(l.nC.get(d.B).level=r.LogLevel[c.verbose]),i){const t=a().dirname(i.filepath);c.plugins=c.plugins?.map((e=>a().resolve(t,e))),e.verbose(`Loaded ${i.filepath} config file`)}return e.debug`Loaded config:\n#!json:${c}`,c}l.nC.bind(x).toDynamicValue((async()=>await(0,f.F)("jujulego:jill:config",w))).inSingletonScope()},3843:(e,t,n)=>{n.d(t,{N:()=>c,c:()=>i});var r=n(2699),o=n(1091),s=n(466);const i=Symbol("jujulego:jill:config-options"),a={1:"verbose",2:"debug"};function c(e){return e.option("verbose",{alias:"v",type:"count",description:"Set verbosity level",coerce:e=>a[Math.min(e,2)]}).option("jobs",{alias:"j",type:"number",description:"Set maximum parallel job number"})}s.nC.bind(i).toDynamicValue((()=>{const e=(0,r.default)((0,o.hideBin)(process.argv)).help(!1).version(!1);return c(e),e.parse()})).inSingletonScope()},9300:(e,t,n)=>{n.d(t,{W:()=>r});const r="current"},466:(e,t,n)=>{n.d(t,{nC:()=>a,oV:()=>l,yT:()=>c});var r=n(6675),o=n(4088),s=n.n(o),i=(n(2483),n(8520));const a=new r.Container,{lazyInject:c,lazyInjectNamed:l}=(0,i.v)(s())(a)},8727:(e,t,n)=>{n.d(t,{T:()=>m});var r=n(8858),o=n(6675),s=n(2699),i=n(6156),a=n(3843),c=n(9300),l=n(466),u=n(9717),d=n(3617),p=n(7051),f=n(366);const g=JSON.parse('{"i8":"2.4.0-alpha.2"}');function h(e,t){return function(n,r){t(n,r,e)}}let m=class{constructor(e,t,n){this.context=e,this.plugins=t,this.logger=n,this.container=l.nC.createChild(),this.parser=(0,s.default)().scriptName("jill").completion("completion","Generate bash completion script").help("help","Show help for a command").version("version","Show version",g.i8).wrap(process.stdout.columns).exitProcess(!1)}_prepareParser(e){return(0,a.N)(this.parser),this.parser.command(e).recommendCommands().strict().fail(!1)}async _loadPlugins(){this.logger.child((0,r.withLabel)("plugin")).verbose("Loading plugin <core>");const{CorePlugin:e}=await Promise.all([n.e(828),n.e(489)]).then(n.bind(n,489));this.container.load((0,d.rT)(e,!0)),await this.plugins.loadPlugins(this.container)}async run(e){this.context.reset({application:this}),await this._loadPlugins();const t=await this.container.getAllAsync(u.mD);await this._prepareParser(t).parseAsync(e)}async tasksOf(e,t={}){this.context.reset({...t,application:this}),await this._loadPlugins();const n=await this.container.getAllAsync(u.NI);return new Promise(((t,r)=>{const o=[];for(const e of n){const n=(0,u._Y)(e.constructor),r=(0,u.$f)(e,n);r.handler=async n=>{if(e instanceof f.o){const r=[];for await(const t of e.prepare(n))r.push(t);t(r)}else t([])},o.push(r)}this._prepareParser(o).parseAsync(e).catch(r)}))}};m=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,o.injectable)(),h(0,(0,o.inject)(i.O)),h(1,(0,o.inject)(p.B)),h(2,(0,o.inject)(r.Logger))],m),l.nC.bind(m).toSelf().inTransientScope().whenTargetIsDefault(),l.nC.bind(m).toDynamicValue((({container:e})=>{const t=e.get(i.O).application;if(!t)throw new Error("Cannot inject current application, it not yet defined");return t})).whenTargetNamed(c.W)},9717:(e,t,n)=>{n.d(t,{$f:()=>f,NI:()=>u,_Y:()=>p,mD:()=>d,mY:()=>g});var r=n(8858),o=n(6675),s=n(466),i=n(3617),a=n(6505),c=n(1632);const l=Symbol("jujulego:jill:command-opts"),u=Symbol("jujulego:jill:command"),d=Symbol("jujulego:jill:command-module");function p(e){const t=Reflect.getMetadata(l,e);if("object"!=typeof t)throw new Error(`No command options found in ${e.name}`);return t}function f(e,t){return{command:t.command,aliases:t.aliases,describe:t.describe,deprecated:t.deprecated,builder:n=>(t.middlewares&&(n=(0,c.S)(n,t.middlewares)),e.builder&&(n=e.builder(n)),n),handler:async t=>{try{await e.handler(t)}catch(e){throw e.message&&s.nC.get(r.Logger).error(e.message),new a.T(1)}}}}function g(e){return t=>{(0,o.decorate)((0,o.injectable)(),t),Reflect.defineMetadata(l,e,t);const n=e.command.split(" ")[0];(0,i.i8)(t,(r=>{r(t).toSelf(),r(u).toDynamicValue((({container:e})=>e.getAsync(t))).whenTargetNamed(n),r(d).toDynamicValue((async({container:n})=>f(await n.getAsync(t),e))).whenTargetNamed(n)}))}}},3893:(e,t,n)=>{n.d(t,{m:()=>p});var r=n(832),o=n(6675),s=n(9149),i=n(4086),a=n.n(i),c=n(466),l=n(5894);const u=Symbol.for("jujulego:jill:ink-app");function d(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}c.nC.bind(u).toDynamicValue((()=>{if(!a().isMainThread)throw new Error("Ink should only be used in main thread");return(0,s.render)((0,r.jsx)(l.Z,{}))})).inSingletonScope();let p=class{builder(e){return e}async handler(e){for await(const t of this.render(e))this.app.rerender((0,r.jsx)(l.Z,{children:t}));await this.app.waitUntilExit()}};d([(0,c.yT)(u)],p.prototype,"app",void 0),p=d([(0,o.injectable)()],p)},1632:(e,t,n)=>{n.d(t,{S:()=>i,d:()=>s});var r=n(6675),o=n(466);function s(){return e=>{(0,r.decorate)((0,r.injectable)(),e),o.nC.bind(e).toSelf().inSingletonScope()}}function i(e,t){let n=e;for(const e of t){const t=o.nC.get(e);t.builder&&(n=t.builder(n)),n.middleware((e=>t.handler(e)))}return n}},3617:(e,t,n)=>{n.d(t,{IY:()=>l,JH:()=>i,i8:()=>a,rT:()=>c});var r=n(6675);const o=Symbol("jujulego:jill:module"),s=Symbol("jujulego:jill:registry");function i(e){const t=Reflect.getMetadata(s,e);if("function"!=typeof t)throw new Error(`No registry found in ${e.name}`);return t}function a(e,t){Reflect.defineMetadata(s,t,e)}function c(e,t=!1){let n=Reflect.getMetadata(o,e);if(!(n&&n instanceof r.ContainerModule)){const o=Reflect.getMetadata(s,e);if("function"!=typeof o){if(t)throw new Error(`No module found in ${e.name}`);return null}n=new r.ContainerModule(o),l(e,n)}return n}function l(e,t){Reflect.defineMetadata(o,t,e)}},7051:(e,t,n)=>{n.d(t,{B:()=>d});var r=n(8858),o=n(6675),s=n(7839),i=n(466),a=n(8520),c=n(3617),l=n(9921);function u(e,t){return function(n,r){t(n,r,e)}}let d=class{constructor(e,t){this._config=e,this._logger=t.child((0,r.withLabel)("plugin"))}async _importPlugin(e){this._logger.verbose`Loading plugin ${e}`;let t=await(0,a.y)(e);for(;t&&"object"==typeof t&&"default"in t;)t=t.default;if(!t)throw new Error(`Invalid plugin ${e}: no plugin class found`);const n=(0,c.rT)(t);if(!n)throw new Error(`Invalid plugin ${e}: invalid plugin class`);return n}async loadPlugins(e=i.nC){if(this._config.plugins)for(const t of this._config.plugins){const n=await this._importPlugin(t);e.load(n)}}};d=function(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}([(0,l.t)(),u(0,(0,o.inject)(s.k)),u(1,(0,o.inject)(r.Logger))],d)},9921:(e,t,n)=>{n.d(t,{t:()=>s});var r=n(6675),o=n(466);function s(){return e=>((0,r.decorate)((0,r.injectable)(),e),o.nC.bind(e).toSelf().inSingletonScope().onActivation(((e,t)=>("onServiceActivate"in t&&t.onServiceActivate(e),t))),e)}},366:(e,t,n)=>{n.d(t,{o:()=>b});var r=n(832),o=n(2786),s=n(8858),i=n(3410),a=n(6675),c=n(466),l=n(4244),u=n(6839),d=n(5099),p=n(5740),f=n(4887),g=n(6505),h=n(5472),m=n(3893);function j(e,t,n,r){var o,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,n,i):o(t,n))||i);return s>3&&i&&Object.defineProperty(t,n,i),i}let b=class extends m.m{addTaskOptions(e){return e.option("plan",{type:"boolean",desc:"Only prints tasks to be run",default:!1}).option("plan-mode",{type:"string",desc:"Plan output mode",choices:["json","list"],default:"list"})}async*render(e){const t=new i.TaskSet;for await(const n of this.prepare(e))t.add(n);if(e.plan){const n=Array.from((0,i.plan)(t));if("json"===e.planMode)(0,h.i)(n);else{const e=n.map((e=>({id:e.id.substring(0,6),name:e.name,workspace:(0,l.g)(e.context)||(0,u.G)(e.context)?e.context.workspace.name:"",group:e.groupId?.substring(0,6),"depends on":e.dependenciesIds.map((e=>e.substring(0,6))).join(", ")})));yield(0,r.jsx)(p.Z,{items:e,headers:!0})}}else if(t.tasks.length>0){if(yield(0,r.jsx)(f.Z,{manager:this.manager}),t.start(this.manager),(await(0,o.waitFor$)(t,"finished")).failed>0)throw new g.T(1)}else c.nC.get(s.Logger).warning("No task found")}};j([(0,c.yT)(d.N)],b.prototype,"manager",void 0),b=j([(0,a.injectable)()],b)},4244:(e,t,n)=>{n.d(t,{F:()=>i,g:()=>s});var r=n(3410),o=n(3265);function s(e){return"workspace"in e&&"command"in e}class i extends r.SpawnTask{constructor(e,t,n,r={}){let o=t;r.superCommand&&("string"==typeof r.superCommand&&(r.superCommand=[r.superCommand]),r.superCommand.length>0&&(o=r.superCommand[0],n=[...r.superCommand.slice(1),t,...n])),super(o,n,{workspace:e,command:t},{...r,cwd:e.cwd,env:{FORCE_COLOR:"1",...r.env}}),this.workspace=e,this._logStreams()}_logStreams(){(0,o.m)(this,"stdout").subscribe((e=>this._logger.info(e))),(0,o.m)(this,"stderr").subscribe((e=>this._logger.info(e)))}}},6839:(e,t,n)=>{n.d(t,{G:()=>l,s:()=>u});var r=n(2786),o=n(3410),s=n(466),i=n(8727),a=n(4244),c=n(6379);function l(e){return"workspace"in e&&"script"in e}class u extends o.GroupTask{constructor(e,t,n,r){super(t,{workspace:e,script:t},r),this.workspace=e,this.script=t,this.args=n}async _runScript(e,t){const n=this.workspace.getScript(e);if(!n)return null;const[r,...o]=(0,c.z)(n);if("jill"===r){this._logger.debug(`Interpreting ${n}`);const e=o.map((e=>e.replace(/^["'](.+)["']$/,"$1"))),t=s.nC.get(i.T),r=await t.tasksOf(e,{project:this.project,workspace:this.workspace});if(r.length)return r}const l=await this.workspace.project.packageManager();return[new a.F(this.workspace,r,[...o,...t],{logger:this._logger,superCommand:"yarn"===l?["yarn","exec"]:void 0})]}async prepare(){const e=await this._runScript(this.script,this.args);if(!e)throw new Error(`No script ${this.script} in ${this.workspace.name}`);this._scriptTasks=new o.TaskSet;for(const t of e)this.add(t),this._scriptTasks.add(t)}async*_orchestrate(){if(!this._scriptTasks)throw new Error("ScriptTask needs to be prepared. Call prepare before starting it");yield*this._scriptTasks;const e=await(0,r.waitFor$)(this._scriptTasks,"finished");this.setStatus(0===e.failed?"done":"failed")}_stop(){if(this._scriptTasks)for(const e of this._scriptTasks)e.stop()}complexity(e=new Map){let t=super.complexity(e);return this._scriptTasks&&(t+=this._scriptTasks.tasks.reduce(((t,n)=>t+n.complexity(e)),0)),e.set(this.id,t),t}get project(){return this.workspace.project}}},5099:(e,t,n)=>{n.d(t,{N:()=>a});var r=n(8858),o=n(3410),s=n(7839),i=n(466);const a=Symbol("jujulego:jill:TaskManager");i.nC.bind(a).toDynamicValue((({container:e})=>{const t=e.get(s.k),n=e.get(r.Logger);return new o.TaskManager({jobs:t.jobs,logger:n})})).inSingletonScope()},6872:(e,t,n)=>{n.d(t,{Z:()=>d});var r=n(832),o=n(3410),s=n(9149),i=n(810),a=n(7839),c=n(466),l=n(4244),u=n(6797);function d({group:e}){const[t,n]=(0,i.useState)(!1),[p,f]=(0,i.useState)(e.status),[g,h]=(0,i.useState)([...e.tasks]),[m,j]=(0,i.useState)(!0),b=(0,i.useMemo)((()=>t||g.some((e=>!(0,l.g)(e.context)))),[t,g]),y=(0,i.useMemo)((()=>!b&&m),[b,m]);return(0,i.useLayoutEffect)((()=>{const e=c.nC.get(a.k);e.verbose&&n(["verbose","debug"].includes(e.verbose))}),[]),(0,i.useLayoutEffect)((()=>e.on("status",(e=>{f(e.status)}))),[e]),(0,i.useLayoutEffect)((()=>{let t=!1;return e.on("task.added",(()=>{t||(t=!0,queueMicrotask((()=>{h([...e.tasks]),t=!1})))}))}),[e]),(0,i.useLayoutEffect)((()=>{"running"===p?j(!1):"done"===p&&j(!0)}),[p]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.Z,{task:e}),y||(0,r.jsx)(s.Box,{flexDirection:"column",marginLeft:2,children:g.map((e=>(0,r.jsx)(i.Fragment,{children:e instanceof o.GroupTask?(0,r.jsx)(d,{group:e}):(0,r.jsx)(u.Z,{task:e})},e.id)))})]})}},5894:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(832),o=n(9149),s=n(810),i=n(466),a=n(5050);function c(){const{write:e}=(0,o.useStderr)();return(0,s.useLayoutEffect)((()=>{const t=i.nC.get(a.B),n=t.listeners;t.clear();const r=t.subscribe((t=>{e((0,a.h)(t)+"\n")}));return()=>{r();for(const e of n)t.subscribe(e)}}),[e]),null}function l({children:e}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c,{}),e]})}},5740:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(832),o=n(9149),s=n(6379);function i({items:e,headers:t}){return 0===e.length?null:(0,r.jsx)(o.Box,{children:Object.keys(e[0]).map((n=>(0,r.jsxs)(o.Box,{flexDirection:"column",marginRight:2,children:[t&&(0,r.jsx)(o.Text,{bold:!0,children:(0,s.k)(n)}),e.map(((e,t)=>(0,r.jsx)(o.Text,{children:e[n]||" "},t)))]},n)))})}},4887:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(832),o=n(3410),s=n(810),i=n(6872),a=n(6797);function c(e){return!(e.group||"hidden"in e.context&&e.context.hidden)}function l({manager:e}){const[t,n]=(0,s.useState)(e.tasks.filter(c));return(0,s.useLayoutEffect)((()=>{let t=!1;return e.on("added",(()=>{t||(t=!0,queueMicrotask((()=>{n(e.tasks.filter(c)),t=!1})))}))}),[e]),(0,r.jsx)(r.Fragment,{children:t.map((e=>e instanceof o.GroupTask?(0,r.jsx)(i.Z,{group:e},e.id):(0,r.jsx)(a.Z,{task:e},e.id)))})}},1562:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(832),o=n(9149),s=n(6839);function i({task:e}){return(0,s.G)(e.context)?(0,r.jsxs)(o.Text,{children:["Run ",(0,r.jsx)(o.Text,{bold:!0,children:e.context.script})," in ",e.context.workspace.name]}):(0,r.jsx)(o.Text,{children:e.name})}},6797:(e,t,n)=>{n.d(t,{Z:()=>p});var r=n(832),o=n(9149),s=n(9165),i=n(6133),a=n(9321),c=n(810),l=n(4244),u=n(6839),d=n(1562);function p({task:e}){const[t,n]=(0,c.useState)(e.status),[p,f]=(0,c.useState)(0);(0,c.useLayoutEffect)((()=>e.on("status",(e=>{n(e.status)}))),[e]),(0,c.useLayoutEffect)((()=>e.on("completed",(({duration:e})=>{f(e)}))),[e]);const g=(0,l.g)(e.context)&&e.group&&(0,u.G)(e.group.context);switch(t){case"blocked":case"ready":case"starting":return(0,r.jsxs)(o.Box,{children:[(0,r.jsx)(o.Text,{color:"grey",children:"·"}),(0,r.jsx)(o.Box,{paddingLeft:1,children:(0,r.jsx)(o.Text,{color:"grey",wrap:"truncate",children:(0,r.jsx)(d.Z,{task:e})})})]});case"running":return(0,r.jsxs)(o.Box,{children:[(0,r.jsx)(o.Text,{color:g?"dim":void 0,children:(0,r.jsx)(s.default,{})}),(0,r.jsx)(o.Box,{paddingLeft:1,children:(0,r.jsx)(o.Text,{color:g?"dim":void 0,wrap:"truncate",children:(0,r.jsx)(d.Z,{task:e})})})]});case"done":return(0,r.jsxs)(o.Box,{children:[(0,r.jsx)(o.Text,{color:"green",children:i.default.success}),(0,r.jsx)(o.Box,{paddingLeft:1,children:(0,r.jsx)(o.Text,{color:g?"dim":void 0,wrap:"truncate",children:(0,r.jsx)(d.Z,{task:e})})}),(0,r.jsx)(o.Box,{paddingLeft:1,flexShrink:0,children:(0,r.jsxs)(o.Text,{color:g?"grey":"dim",children:["(took ",(0,a.default)(p),")"]})})]});case"failed":return(0,r.jsxs)(o.Box,{children:[(0,r.jsx)(o.Text,{color:"red",children:i.default.error}),(0,r.jsx)(o.Box,{paddingLeft:1,children:(0,r.jsx)(o.Text,{color:g?"dim":void 0,wrap:"truncate",children:(0,r.jsx)(d.Z,{task:e})})}),(0,r.jsx)(o.Box,{paddingLeft:1,flexShrink:0,children:(0,r.jsxs)(o.Text,{color:g?"grey":"dim",children:["(took ",(0,a.default)(p),")"]})})]})}}},3265:(e,t,n)=>{n.d(t,{m:()=>o});var r=n(2786);function o(e,t){const n=(0,r.source$)();if(e.completed)return n;let o="";const s=e.on(`stream.${t}`,(e=>{const t=(o+e.data.toString("utf-8")).split(/\r?\n/);o=t.pop()??"";for(const e of t)n.next(e)}));return(0,r.once$)(e,"completed",(()=>{s(),o&&n.next(o)})),n}},6505:(e,t,n)=>{n.d(t,{T:()=>r});class r extends Error{constructor(e,t){super(t),this.code=e}}},8520:(e,t,n)=>{async function r(e){return import("win32"===process.platform?`file://${e}`:e)}function o(e){return e}n.d(t,{v:()=>o,y:()=>r})},5472:(e,t,n)=>{function r(e,t=process.stdout){t.isTTY?t.write(JSON.stringify(e,null,2)):t.write(JSON.stringify(e))}n.d(t,{i:()=>r})},6379:(e,t,n)=>{function r(e){return e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()}function o(e){e=e.trim();const t=[];let n="",r=0;for(let o=1;o<e.length;++o){const s=e[o];n?s===n&&(n=""):['"',"'"].includes(s)?n=s:" "===s&&(t.push(e.slice(r,o)),r=o+1)}return t.push(e.slice(r)),t}n.d(t,{k:()=>r,z:()=>o})},2180:(e,t,n)=>{n.d(t,{F:()=>s});var r=n(4086);const o=new r.BroadcastChannel("jujulego:jill:worker-cache");async function s(e,t){const n=(0,r.getEnvironmentData)(e);if(void 0!==n)return n;const s=await t();return(0,r.setEnvironmentData)(e,s),o.postMessage({key:e,value:s}),s}o.unref(),o.onmessage=e=>{const t=e;(function(e){return"object"==typeof e&&null!==e&&"key"in e&&"value"in e})(t.data)&&(0,r.setEnvironmentData)(t.data.key,t.data.value)}}};
2
2
  //# sourceMappingURL=71.mjs.map