@jujulego/jill 2.4.0-alpha.5 → 2.4.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,9 +11,9 @@ Zero-config monorepo cli
11
11
  Jill uses the `workspaces` attribute of your root package.json manifest to build your workspaces dependency tree.
12
12
  That done it can offer you various utilities:
13
13
  - `jill list` prints a list of all your workspaces, with many useful filters
14
- - `jill run` build all workspace's local dependencies before run a given script
15
- - `jill each` do the same as `run` but for a list of workspaces, optimizing builds.<br />
16
- Supports the same filters as `list`.
14
+ - `jill run` Run a task expression in a workspace, after having built all its dependencies.
15
+ - `jill group` Deprecated in favor of run
16
+ - `jill each` Run a task expression in many workspace, after having built all theirs dependencies.
17
17
  - `jill tree` prints current workspace's local dependency tree
18
18
 
19
19
  It supports both `npm` and `yarn`.
@@ -24,10 +24,7 @@ Jill will run hook script like npm do, for both npm and yarn. As npm, when you t
24
24
 
25
25
  This feature can be disabled using the `--no-hooks` option: `jill run --no-hooks test`.
26
26
 
27
- ### Experimental features
28
- - `jill group` same as `run` but allows to run multiple scripts in sequence or in parallel using the task syntax
29
-
30
- #### Task syntax _(only supported by `jill group` command yet)_
27
+ #### Task expression syntax
31
28
  Allows to instruct multiple tasks with the given orchestration. The orchestration is given by the following operators:
32
29
  - `&&` in sequence
33
30
  - `||` fallbacks
@@ -36,22 +33,22 @@ Allows to instruct multiple tasks with the given orchestration. The orchestratio
36
33
  ##### Examples:
37
34
  - This will run scripts **taskA**, **taskB** and **taskC** in order, one after another.
38
35
  ```shell
39
- jill group 'taskA && taskB && taskC'
36
+ jill run 'taskA && taskB && taskC'
40
37
  ```
41
38
 
42
39
  - This will run first **taskA**, if it fails it will run **taskB**, then **taskC** in order, until one succeed.
43
40
  ```shell
44
- jill group 'taskA || taskB || taskC'
41
+ jill run 'taskA || taskB || taskC'
45
42
  ```
46
43
 
47
44
  - This will run scripts **taskA**, **taskB** and **taskC** in parallel.
48
45
  ```shell
49
- jill group 'taskA // taskB // taskC'
46
+ jill run 'taskA // taskB // taskC'
50
47
  ```
51
48
 
52
49
  - And you can create more complex flows: this will run **taskA** and **taskB** in parallel, and then **taskC** when both tasks are ended
53
50
  ```shell
54
- jill group '(taskA // taskB) && taskC'
51
+ jill run '(taskA // taskB) && taskC'
55
52
  ```
56
53
 
57
54
  ## Installation
@@ -3,8 +3,9 @@ import { type ArgumentsCamelCase, type Argv } from 'yargs';
3
3
  import { TaskCommand } from '@/src/modules/task-command.tsx';
4
4
  import { type Project } from '@/src/project/project.ts';
5
5
  import { type WorkspaceDepsMode } from '@/src/project/workspace.ts';
6
- export interface IEachCommandArgs {
7
- script: string;
6
+ import { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';
7
+ export interface EachCommandArgs {
8
+ expr: string;
8
9
  'build-script': string;
9
10
  'deps-mode': WorkspaceDepsMode;
10
11
  'allow-no-workspaces'?: boolean;
@@ -13,10 +14,12 @@ export interface IEachCommandArgs {
13
14
  'affected-rev-fallback': string;
14
15
  'affected-rev-sort'?: string;
15
16
  }
16
- export declare class EachCommand extends TaskCommand<IEachCommandArgs> {
17
+ export declare class EachCommand extends TaskCommand<EachCommandArgs> {
17
18
  private readonly logger;
19
+ private readonly taskExpression;
18
20
  readonly project: Project;
19
- constructor(logger: Logger);
20
- builder(parser: Argv): Argv<IEachCommandArgs>;
21
- prepare(args: ArgumentsCamelCase<IEachCommandArgs>): AsyncGenerator<import("../index.ts").ScriptTask, void, unknown>;
21
+ constructor(logger: Logger, taskExpression: TaskExpressionService);
22
+ builder(parser: Argv): Argv<EachCommandArgs>;
23
+ prepare(argv: ArgumentsCamelCase<EachCommandArgs>): AsyncGenerator<import("@jujulego/tasks").Task<import("@jujulego/tasks").TaskContext>, void, unknown>;
24
+ private _preparePipeline;
22
25
  }
@@ -1,7 +1,7 @@
1
1
  import { type ArgumentsCamelCase, type Argv } from 'yargs';
2
2
  import { TaskCommand } from '@/src/modules/task-command.tsx';
3
3
  import { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';
4
- import { TaskExprService, type TaskTree } from '@/src/tasks/task-expr.service.ts';
4
+ import { TaskExpressionService, type TaskTree } from '@/src/tasks/task-expression.service.ts';
5
5
  export interface IGroupCommandArgs {
6
6
  script: TaskTree;
7
7
  'build-script': string;
@@ -10,7 +10,7 @@ export interface IGroupCommandArgs {
10
10
  export declare class GroupCommand extends TaskCommand<IGroupCommandArgs> {
11
11
  private readonly taskExpr;
12
12
  readonly workspace: Workspace;
13
- constructor(taskExpr: TaskExprService);
13
+ constructor(taskExpr: TaskExpressionService);
14
14
  builder(parser: Argv): Argv<IGroupCommandArgs>;
15
15
  prepare(args: ArgumentsCamelCase<IGroupCommandArgs>): AsyncGenerator<import("@jujulego/tasks").Task<import("@jujulego/tasks").TaskContext>, void, unknown>;
16
16
  }
@@ -2,21 +2,23 @@ import { Logger } from '@jujulego/logger';
2
2
  import { type ArgumentsCamelCase, type Argv } from 'yargs';
3
3
  import { TaskCommand } from '@/src/modules/task-command.tsx';
4
4
  import { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';
5
+ import { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';
5
6
  export interface IRunCommandArgs {
6
- script: string;
7
+ expr: string;
7
8
  'build-script': string;
8
9
  'deps-mode': WorkspaceDepsMode;
9
10
  }
10
11
  export declare class RunCommand extends TaskCommand<IRunCommandArgs> {
11
12
  private readonly logger;
13
+ private readonly taskExpression;
12
14
  readonly workspace: Workspace;
13
- constructor(logger: Logger);
15
+ constructor(logger: Logger, taskExpression: TaskExpressionService);
14
16
  builder(parser: Argv): Argv<import("@/src/modules/task-command.tsx").ITaskCommandArgs & {
15
- script: string;
17
+ expr: string;
16
18
  } & {
17
19
  "build-script": string;
18
20
  } & {
19
21
  "deps-mode": "all";
20
22
  }>;
21
- prepare(args: ArgumentsCamelCase<IRunCommandArgs>): AsyncGenerator<import("../index.ts").ScriptTask, void, unknown>;
23
+ prepare(args: ArgumentsCamelCase<IRunCommandArgs>): AsyncGenerator<import("@jujulego/tasks").Task<import("@jujulego/tasks").TaskContext>, void, unknown>;
22
24
  }
@@ -1,9 +1,11 @@
1
+ import { _ } from '@swc/helpers/_/_ts_decorate';
2
+ import { _ as _$1 } from '@swc/helpers/_/_ts_param';
1
3
  import { Logger } from '@jujulego/logger';
2
4
  import { inject } from 'inversify';
3
5
  import symbols from 'log-symbols';
4
- import { b as LazyCurrentProject, L as LoadProject, S as ScriptsFilter, a as PrivateFilter, A as AffectedFilter, P as Pipeline, d as LazyCurrentWorkspace, c as LoadWorkspace, T as TaskExprService, W as WorkspaceTree, f as Plugin } from './workspace-tree-DEg4wm69.js';
5
- import { h as Command, E as ExitException, I as InkCommand, z as printJson, a as List } from './ink-command-HSaTNbaX.js';
6
- import { T as TaskCommand } from './jill.application-nR6EmV7y.js';
6
+ import { b as LazyCurrentProject, L as LoadProject, T as TaskExpressionService, k as TaskExpressionError, l as TaskSyntaxError, S as ScriptsFilter, a as PrivateFilter, A as AffectedFilter, P as Pipeline, d as LazyCurrentWorkspace, c as LoadWorkspace, W as WorkspaceTree, f as Plugin } from './workspace-tree-YMFiEGQk.js';
7
+ import { h as Command, E as ExitException, I as InkCommand, z as printJson, a as List } from './ink-command-OuyNSTxT.js';
8
+ import { T as TaskCommand } from './jill.application-JCJSgP36.js';
7
9
  import { jsx } from 'react/jsx-runtime';
8
10
  import chalk from 'chalk';
9
11
  import path from 'node:path';
@@ -35,29 +37,20 @@ import '@jujulego/aegis';
35
37
  import '@jujulego/quick-tag';
36
38
  import 'chalk-template';
37
39
 
38
- function _ts_decorate$6(decorators, target, key, desc) {
39
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
42
- return c > 3 && r && Object.defineProperty(target, key, r), r;
43
- }
44
- function _ts_param$3(paramIndex, decorator) {
45
- return function(target, key) {
46
- decorator(target, key, paramIndex);
47
- };
48
- }
49
40
  let EachCommand = class EachCommand extends TaskCommand {
50
41
  // Constructor
51
- constructor(logger){
42
+ constructor(logger, taskExpression){
52
43
  super();
53
44
  this.logger = logger;
45
+ this.taskExpression = taskExpression;
54
46
  }
55
47
  // Methods
56
48
  builder(parser) {
57
49
  return this.addTaskOptions(parser)// Run options
58
- .positional("script", {
50
+ .positional("expr", {
59
51
  type: "string",
60
- demandOption: true
52
+ demandOption: true,
53
+ desc: "Script or task expression"
61
54
  }).option("build-script", {
62
55
  default: "build",
63
56
  desc: "Script to use to build dependencies"
@@ -73,7 +66,7 @@ let EachCommand = class EachCommand extends TaskCommand {
73
66
  }).option("allow-no-workspaces", {
74
67
  type: "boolean",
75
68
  default: false,
76
- desc: "Allow no matching workspaces. By default, jill will throw when no affected workspaces are found"
69
+ desc: "Allow no matching workspaces. Without it jill will exit with code 1 if no workspace matches"
77
70
  })// Filters
78
71
  .option("private", {
79
72
  type: "boolean",
@@ -99,63 +92,74 @@ let EachCommand = class EachCommand extends TaskCommand {
99
92
  "unknown-options-as-args": true
100
93
  });
101
94
  }
102
- async *prepare(args) {
103
- // Setup pipeline
104
- const pipeline = new Pipeline();
105
- pipeline.add(new ScriptsFilter([
106
- args.script
107
- ]));
108
- if (args.private !== undefined) {
109
- pipeline.add(new PrivateFilter(args.private));
110
- }
111
- if (args.affected !== undefined) {
112
- pipeline.add(new AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));
113
- }
114
- // Extract arguments
115
- const rest = args._.map((arg)=>arg.toString());
116
- if (rest[0] === "each") {
117
- rest.splice(0, 1);
118
- }
119
- // Create script tasks
95
+ async *prepare(argv) {
120
96
  let empty = true;
121
- for await (const wks of pipeline.filter(this.project.workspaces())){
122
- const task = await wks.run(args.script, rest, {
123
- buildScript: args.buildScript,
124
- buildDeps: args.depsMode
125
- });
126
- if (task) {
127
- yield task;
128
- empty = false;
97
+ try {
98
+ // Extract expression
99
+ const expr = argv._.map((arg)=>arg.toString());
100
+ if (expr[0] === "each") {
101
+ expr.splice(0, 1);
102
+ }
103
+ expr.unshift(argv.expr);
104
+ const tree = this.taskExpression.parse(expr.join(" "));
105
+ const scripts = Array.from(this.taskExpression.extractScripts(tree));
106
+ // Create script tasks
107
+ const pipeline = this._preparePipeline(argv, scripts);
108
+ for await (const wks of pipeline.filter(this.project.workspaces())){
109
+ const task = await this.taskExpression.buildTask(tree.roots[0], wks, {
110
+ buildScript: argv.buildScript,
111
+ buildDeps: argv.depsMode
112
+ });
113
+ if (task) {
114
+ yield task;
115
+ empty = false;
116
+ }
117
+ }
118
+ } catch (err) {
119
+ if (err instanceof TaskExpressionError) {
120
+ this.logger.error(err.message);
121
+ throw new ExitException(1);
122
+ }
123
+ if (err instanceof TaskSyntaxError) {
124
+ this.logger.error(`Syntax error in task expression: ${err.message}`);
125
+ throw new ExitException(1);
129
126
  }
127
+ throw err;
130
128
  }
131
129
  if (empty) {
132
130
  this.logger.error(`${symbols.error} No matching workspace found !`);
133
- if (args.allowNoWorkspaces === false) {
131
+ if (argv.allowNoWorkspaces === false) {
134
132
  throw new ExitException(1);
135
133
  }
136
134
  }
137
135
  }
136
+ _preparePipeline(argv, scripts) {
137
+ const pipeline = new Pipeline();
138
+ pipeline.add(new ScriptsFilter(scripts, true));
139
+ if (argv.private !== undefined) {
140
+ pipeline.add(new PrivateFilter(argv.private));
141
+ }
142
+ if (argv.affected !== undefined) {
143
+ pipeline.add(new AffectedFilter(argv.affected, argv.affectedRevFallback, argv.affectedRevSort));
144
+ }
145
+ return pipeline;
146
+ }
138
147
  };
139
- _ts_decorate$6([
148
+ _([
140
149
  LazyCurrentProject()
141
150
  ], EachCommand.prototype, "project", void 0);
142
- EachCommand = _ts_decorate$6([
151
+ EachCommand = _([
143
152
  Command({
144
- command: "each <script>",
145
- describe: "Run script on many workspaces",
153
+ command: "each <expr>",
154
+ describe: "Run a task expression in many workspace, after having built all theirs dependencies.",
146
155
  middlewares: [
147
156
  LoadProject
148
157
  ]
149
158
  }),
150
- _ts_param$3(0, inject(Logger))
159
+ _$1(0, inject(Logger)),
160
+ _$1(1, inject(TaskExpressionService))
151
161
  ], EachCommand);
152
162
 
153
- function _ts_decorate$5(decorators, target, key, desc) {
154
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
155
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
156
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
157
- return c > 3 && r && Object.defineProperty(target, key, r), r;
158
- }
159
163
  let ExecCommand = class ExecCommand extends TaskCommand {
160
164
  // Methods
161
165
  builder(parser) {
@@ -194,10 +198,10 @@ let ExecCommand = class ExecCommand extends TaskCommand {
194
198
  yield task;
195
199
  }
196
200
  };
197
- _ts_decorate$5([
201
+ _([
198
202
  LazyCurrentWorkspace()
199
203
  ], ExecCommand.prototype, "workspace", void 0);
200
- ExecCommand = _ts_decorate$5([
204
+ ExecCommand = _([
201
205
  Command({
202
206
  command: "exec <command>",
203
207
  aliases: [
@@ -211,17 +215,6 @@ ExecCommand = _ts_decorate$5([
211
215
  })
212
216
  ], ExecCommand);
213
217
 
214
- function _ts_decorate$4(decorators, target, key, desc) {
215
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
216
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
217
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
218
- return c > 3 && r && Object.defineProperty(target, key, r), r;
219
- }
220
- function _ts_param$2(paramIndex, decorator) {
221
- return function(target, key) {
222
- decorator(target, key, paramIndex);
223
- };
224
- }
225
218
  let GroupCommand = class GroupCommand extends TaskCommand {
226
219
  // Constructor
227
220
  constructor(taskExpr){
@@ -257,32 +250,22 @@ let GroupCommand = class GroupCommand extends TaskCommand {
257
250
  yield group;
258
251
  }
259
252
  };
260
- _ts_decorate$4([
253
+ _([
261
254
  LazyCurrentWorkspace()
262
255
  ], GroupCommand.prototype, "workspace", void 0);
263
- GroupCommand = _ts_decorate$4([
256
+ GroupCommand = _([
264
257
  Command({
265
258
  command: "group <script..>",
266
259
  describe: "Run many scripts inside a workspace (experimental)",
260
+ deprecated: true,
267
261
  middlewares: [
268
262
  LoadProject,
269
263
  LoadWorkspace
270
264
  ]
271
265
  }),
272
- _ts_param$2(0, inject(TaskExprService))
266
+ _$1(0, inject(TaskExpressionService))
273
267
  ], GroupCommand);
274
268
 
275
- function _ts_decorate$3(decorators, target, key, desc) {
276
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
277
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
278
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
279
- return c > 3 && r && Object.defineProperty(target, key, r), r;
280
- }
281
- function _ts_param$1(paramIndex, decorator) {
282
- return function(target, key) {
283
- decorator(target, key, paramIndex);
284
- };
285
- }
286
269
  // Constants
287
270
  const LONG_ATTRIBUTES = [
288
271
  "name",
@@ -486,10 +469,10 @@ let ListCommand = class ListCommand extends InkCommand {
486
469
  };
487
470
  }
488
471
  };
489
- _ts_decorate$3([
472
+ _([
490
473
  LazyCurrentProject()
491
474
  ], ListCommand.prototype, "project", void 0);
492
- ListCommand = _ts_decorate$3([
475
+ ListCommand = _([
493
476
  Command({
494
477
  command: "list",
495
478
  aliases: [
@@ -500,31 +483,22 @@ ListCommand = _ts_decorate$3([
500
483
  LoadProject
501
484
  ]
502
485
  }),
503
- _ts_param$1(0, inject(Logger))
486
+ _$1(0, inject(Logger))
504
487
  ], ListCommand);
505
488
 
506
- function _ts_decorate$2(decorators, target, key, desc) {
507
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
508
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
509
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
510
- return c > 3 && r && Object.defineProperty(target, key, r), r;
511
- }
512
- function _ts_param(paramIndex, decorator) {
513
- return function(target, key) {
514
- decorator(target, key, paramIndex);
515
- };
516
- }
517
489
  let RunCommand = class RunCommand extends TaskCommand {
518
490
  // Constructor
519
- constructor(logger){
491
+ constructor(logger, taskExpression){
520
492
  super();
521
493
  this.logger = logger;
494
+ this.taskExpression = taskExpression;
522
495
  }
523
496
  // Methods
524
497
  builder(parser) {
525
- return this.addTaskOptions(parser).positional("script", {
498
+ return this.addTaskOptions(parser).positional("expr", {
526
499
  type: "string",
527
- demandOption: true
500
+ demandOption: true,
501
+ desc: "Script or task expression"
528
502
  }).option("build-script", {
529
503
  default: "build",
530
504
  desc: "Script to use to build dependencies"
@@ -543,45 +517,48 @@ let RunCommand = class RunCommand extends TaskCommand {
543
517
  });
544
518
  }
545
519
  async *prepare(args) {
546
- // Extract arguments
547
- const rest = args._.map((arg)=>arg.toString());
548
- if (rest[0] === "run") {
549
- rest.splice(0, 1);
520
+ // Extract expression
521
+ const expr = args._.map((arg)=>arg.toString());
522
+ if (expr[0] === "run") {
523
+ expr.splice(0, 1);
550
524
  }
551
- // Run script in workspace
552
- const task = await this.workspace.run(args.script, rest, {
553
- buildScript: args.buildScript,
554
- buildDeps: args.depsMode
555
- });
556
- if (task) {
557
- yield task;
558
- } else {
559
- this.logger.error(`Workspace ${this.workspace.name} have no ${args.script} script`);
560
- throw new ExitException(1);
525
+ expr.unshift(args.expr);
526
+ // Parse task expression
527
+ try {
528
+ const tree = this.taskExpression.parse(expr.join(" "));
529
+ yield await this.taskExpression.buildTask(tree.roots[0], this.workspace, {
530
+ buildScript: args.buildScript,
531
+ buildDeps: args.depsMode
532
+ });
533
+ } catch (err) {
534
+ if (err instanceof TaskExpressionError) {
535
+ this.logger.error(err.message);
536
+ throw new ExitException(1);
537
+ }
538
+ if (err instanceof TaskSyntaxError) {
539
+ this.logger.error(`Syntax error in task expression: ${err.message}`);
540
+ throw new ExitException(1);
541
+ }
542
+ throw err;
561
543
  }
562
544
  }
563
545
  };
564
- _ts_decorate$2([
546
+ _([
565
547
  LazyCurrentWorkspace()
566
548
  ], RunCommand.prototype, "workspace", void 0);
567
- RunCommand = _ts_decorate$2([
549
+ RunCommand = _([
568
550
  Command({
569
- command: "run <script>",
570
- describe: "Run script inside workspace",
551
+ command: "run <expr>",
552
+ describe: "Run a task expression in a workspace, after having built all its dependencies.",
571
553
  middlewares: [
572
554
  LoadProject,
573
555
  LoadWorkspace
574
556
  ]
575
557
  }),
576
- _ts_param(0, inject(Logger))
558
+ _$1(0, inject(Logger)),
559
+ _$1(1, inject(TaskExpressionService))
577
560
  ], RunCommand);
578
561
 
579
- function _ts_decorate$1(decorators, target, key, desc) {
580
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
581
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
582
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
583
- return c > 3 && r && Object.defineProperty(target, key, r), r;
584
- }
585
562
  let TreeCommand = class TreeCommand extends InkCommand {
586
563
  // Methods
587
564
  *render() {
@@ -590,10 +567,10 @@ let TreeCommand = class TreeCommand extends InkCommand {
590
567
  });
591
568
  }
592
569
  };
593
- _ts_decorate$1([
570
+ _([
594
571
  LazyCurrentWorkspace()
595
572
  ], TreeCommand.prototype, "workspace", void 0);
596
- TreeCommand = _ts_decorate$1([
573
+ TreeCommand = _([
597
574
  Command({
598
575
  command: "tree",
599
576
  describe: "Print workspace dependency tree",
@@ -604,15 +581,9 @@ TreeCommand = _ts_decorate$1([
604
581
  })
605
582
  ], TreeCommand);
606
583
 
607
- function _ts_decorate(decorators, target, key, desc) {
608
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
609
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
610
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
611
- return c > 3 && r && Object.defineProperty(target, key, r), r;
612
- }
613
584
  let CorePlugin = class CorePlugin {
614
585
  };
615
- CorePlugin = _ts_decorate([
586
+ CorePlugin = _([
616
587
  Plugin({
617
588
  name: "core",
618
589
  commands: [
@@ -627,4 +598,4 @@ CorePlugin = _ts_decorate([
627
598
  ], CorePlugin);
628
599
 
629
600
  export { CorePlugin };
630
- //# sourceMappingURL=core.plugin-ED-2XO_T.js.map
601
+ //# sourceMappingURL=core.plugin-fx8ZOGe-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.plugin-fx8ZOGe-.js","sources":["../src/commands/each.ts","../src/commands/exec.ts","../src/commands/group.ts","../src/commands/list.tsx","../src/commands/run.ts","../src/commands/tree.tsx","../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 { TaskExpressionError, TaskSyntaxError } from '@/src/tasks/errors.ts';\nimport { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface EachCommandArgs {\n expr: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n 'allow-no-workspaces'?: boolean;\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 <expr>',\n describe: 'Run a task expression in many workspace, after having built all theirs dependencies.',\n middlewares: [\n LoadProject\n ]\n})\nexport class EachCommand extends TaskCommand<EachCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n @inject(TaskExpressionService)\n private readonly taskExpression: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<EachCommandArgs> {\n return this.addTaskOptions(parser)\n // Run options\n .positional('expr', {\n type: 'string',\n demandOption: true,\n desc: 'Script or task expression',\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 .option('allow-no-workspaces', {\n type: 'boolean',\n default: false,\n desc: 'Allow no matching workspaces. Without it jill will exit with code 1 if no workspace matches',\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(argv: ArgumentsCamelCase<EachCommandArgs>) {\n let empty = true;\n\n try {\n // Extract expression\n const expr = argv._.map(arg => arg.toString());\n\n if (expr[0] === 'each') {\n expr.splice(0, 1);\n }\n\n expr.unshift(argv.expr);\n\n const tree = this.taskExpression.parse(expr.join(' '));\n const scripts = Array.from(this.taskExpression.extractScripts(tree));\n\n // Create script tasks\n const pipeline = this._preparePipeline(argv, scripts);\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n const task = await this.taskExpression.buildTask(tree.roots[0], wks, {\n buildScript: argv.buildScript,\n buildDeps: argv.depsMode,\n });\n\n if (task) {\n yield task;\n empty = false;\n }\n }\n } catch (err) {\n if (err instanceof TaskExpressionError) {\n this.logger.error(err.message);\n throw new ExitException(1);\n }\n\n if (err instanceof TaskSyntaxError) {\n this.logger.error(`Syntax error in task expression: ${err.message}`);\n throw new ExitException(1);\n }\n\n throw err;\n }\n\n if (empty) {\n this.logger.error(`${symbols.error} No matching workspace found !`);\n\n if (argv.allowNoWorkspaces === false) {\n throw new ExitException(1);\n }\n }\n }\n\n private _preparePipeline(argv: ArgumentsCamelCase<EachCommandArgs>, scripts: string[]): Pipeline {\n const pipeline = new Pipeline();\n pipeline.add(new ScriptsFilter(scripts, true));\n\n if (argv.private !== undefined) {\n pipeline.add(new PrivateFilter(argv.private));\n }\n\n if (argv.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n argv.affected,\n argv.affectedRevFallback,\n argv.affectedRevSort\n ));\n }\n\n return pipeline;\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 { TaskExpressionService, type TaskTree } from '@/src/tasks/task-expression.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 deprecated: true,\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(TaskExpressionService)\n private readonly taskExpr: TaskExpressionService,\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 { Logger } from '@jujulego/logger';\nimport chalk from 'chalk';\nimport { inject } from 'inversify';\nimport path from 'node:path';\nimport { compare, parse } from 'semver';\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 { ExitException } from '@/src/utils/exit.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>>;\nexport type Order = 'asc' | 'desc';\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\nexport interface ListCommandArgs {\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 // Sort\n 'sort-by'?: Attribute[];\n order: Order;\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 => slugify.default(wks.name)\n} satisfies Record<Attribute, Extractor<string | undefined>>;\n\nconst COMPARATORS = {\n name: (a = '', b = '') => a.localeCompare(b),\n version: (a, b) => compare(parse(a) ?? '0.0.0', parse(b) ?? '0.0.0'),\n root: (a = '', b = '') => a.localeCompare(b),\n slug: (a = '', b = '') => a.localeCompare(b),\n} satisfies Record<Attribute, (a: string | undefined, b: string | undefined) => number>;\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<ListCommandArgs> {\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<ListCommandArgs> {\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 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 // Sort\n .option('sort-by', {\n alias: 's',\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'] as const,\n group: 'Sort:',\n desc: 'Sort output by given attribute. By default sorts by name if printed'\n })\n .option('order', {\n alias: 'o',\n type: 'string',\n choices: ['asc', 'desc'] as const,\n default: 'asc' as const,\n group: 'Sort:',\n desc: 'Sort order'\n });\n }\n\n async *render(args: ArgumentsCamelCase<ListCommandArgs>) {\n const { attrs, sortBy } = this._applyDefaults(args);\n\n // Load workspaces\n const pipeline = this._preparePipeline(args);\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 const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n if (sortBy.length > 0) {\n data.sort(this._dataComparator(sortBy, args.order));\n }\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 private _applyDefaults(argv: ArgumentsCamelCase<ListCommandArgs>): { attrs: Attribute[], sortBy: Attribute[] } {\n // Compute attributes\n let attrs = argv.attrs ?? [];\n\n if (attrs.length === 0) {\n if (argv.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (argv.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = argv.sortBy ?? DEFAULT_ATTRIBUTES;\n }\n }\n\n // Check sorted attributes\n let sortBy = argv.sortBy ?? [];\n\n if (attrs.length > 0 && sortBy.length > 0) {\n const miss = sortBy.filter((attr) => !attrs.includes(attr));\n\n if (miss.length > 0) {\n this.logger.error(`Cannot sort by non printed attributes. Missing ${miss.join(', ')}.`);\n throw new ExitException(1);\n }\n }\n\n if (sortBy.length === 0 && attrs.includes('name')) {\n sortBy = ['name'];\n }\n\n return { attrs, sortBy };\n }\n\n private _preparePipeline(argv: ArgumentsCamelCase<ListCommandArgs>): Pipeline {\n const pipeline = new Pipeline();\n\n if (argv.private !== undefined) {\n pipeline.add(new PrivateFilter(argv.private));\n }\n\n if (argv.withScript) {\n pipeline.add(new ScriptsFilter(argv.withScript));\n }\n\n if (argv.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n argv.affected,\n argv.affectedRevFallback,\n argv.affectedRevSort\n ));\n }\n\n return pipeline;\n }\n\n private _dataComparator(sortBy: Attribute[], order: Order) {\n const factor = order === 'asc' ? 1 : -1;\n\n return (a: Data, b: Data) => {\n for (const attr of sortBy) {\n const diff = COMPARATORS[attr](a[attr], b[attr]);\n\n if (diff !== 0) {\n return factor * diff;\n }\n }\n\n return 0;\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 { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';\nimport { TaskExpressionError, TaskSyntaxError } from '@/src/tasks/errors.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface IRunCommandArgs {\n expr: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'run <expr>',\n describe: 'Run a task expression in a workspace, after having built all its dependencies.',\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 @inject(TaskExpressionService)\n private readonly taskExpression: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('expr', {\n type: 'string',\n demandOption: true,\n desc: 'Script or task expression',\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 // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IRunCommandArgs>) {\n // Extract expression\n const expr = args._.map(arg => arg.toString());\n\n if (expr[0] === 'run') {\n expr.splice(0, 1);\n }\n\n expr.unshift(args.expr);\n\n // Parse task expression\n try {\n const tree = this.taskExpression.parse(expr.join(' '));\n\n yield await this.taskExpression.buildTask(tree.roots[0], this.workspace, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n } catch (err) {\n if (err instanceof TaskExpressionError) {\n this.logger.error(err.message);\n throw new ExitException(1);\n }\n\n if (err instanceof TaskSyntaxError) {\n this.logger.error(`Syntax error in task expression: ${err.message}`);\n throw new ExitException(1);\n }\n\n throw err;\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","taskExpression","logger","builder","parser","addTaskOptions","positional","type","demandOption","desc","option","default","alias","choice","group","coerce","rev","strict","parserConfiguration","prepare","argv","empty","expr","_","map","arg","toString","splice","unshift","tree","parse","join","scripts","Array","from","extractScripts","pipeline","_preparePipeline","wks","filter","project","workspaces","task","buildTask","roots","buildScript","buildDeps","depsMode","err","TaskExpressionError","error","message","ExitException","TaskSyntaxError","symbols","allowNoWorkspaces","Pipeline","add","ScriptsFilter","private","undefined","PrivateFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","LazyCurrentProject","Command","command","describe","middlewares","LoadProject","inject","Logger","TaskExpressionService","ExecCommand","example","args","rest","workspace","exec","LazyCurrentWorkspace","aliases","LoadWorkspace","GroupCommand","taskExpr","script","deprecated","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","version","json","manifest","chalk","grey","root","cwd","slug","slugify","COMPARATORS","a","b","localeCompare","compare","buildExtractor","attrs","data","attr","ListCommand","InkCommand","string","choices","render","sortBy","_applyDefaults","push","length","sort","_dataComparator","order","printJson","d","path","relative","process","_jsx","List","items","headers","long","miss","includes","withScript","factor","diff","RunCommand","TreeCommand","WorkspaceTree","CorePlugin","Plugin","commands"],"mappings":"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"}
@@ -2,6 +2,7 @@ import { type Workspace } from '@/src/project/workspace.ts';
2
2
  import { type PipelineFilter } from './pipeline.ts';
3
3
  export declare class ScriptsFilter implements PipelineFilter {
4
4
  readonly scripts: string[];
5
- constructor(scripts: string[]);
5
+ readonly all: boolean;
6
+ constructor(scripts: string[], all?: boolean);
6
7
  test(workspace: Workspace): boolean;
7
8
  }