@jujulego/jill 1.1.17 → 1.1.18

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.
Files changed (68) hide show
  1. package/dist/base.command.d.ts +8 -0
  2. package/dist/base.command.js +33 -0
  3. package/dist/command.d.ts +21 -0
  4. package/dist/command.js +69 -0
  5. package/dist/commands/each.command.d.ts +17 -0
  6. package/dist/commands/each.command.js +115 -0
  7. package/dist/commands/info.command.d.ts +9 -0
  8. package/dist/commands/info.command.js +83 -0
  9. package/dist/commands/list.command.d.ts +22 -0
  10. package/dist/commands/list.command.js +177 -0
  11. package/dist/commands/run.command.d.ts +13 -0
  12. package/dist/commands/run.command.js +60 -0
  13. package/dist/filters/affected.js +2 -4
  14. package/dist/index.d.ts +4 -9
  15. package/dist/index.js +13 -27
  16. package/dist/logger.d.ts +6 -23
  17. package/dist/logger.js +28 -119
  18. package/dist/main.js +18 -132
  19. package/dist/myr/commands/kill.command.d.ts +11 -0
  20. package/dist/myr/commands/kill.command.js +52 -0
  21. package/dist/myr/commands/list.command.d.ts +18 -0
  22. package/dist/myr/commands/list.command.js +127 -0
  23. package/dist/myr/commands/logs.command.d.ts +11 -0
  24. package/dist/myr/commands/logs.command.js +83 -0
  25. package/dist/myr/commands/spawn.command.d.ts +11 -0
  26. package/dist/myr/commands/spawn.command.js +45 -0
  27. package/dist/myr/commands/stop.command.d.ts +7 -0
  28. package/dist/myr/commands/stop.command.js +43 -0
  29. package/dist/myr/myr-client.js +38 -391
  30. package/dist/myr/myr.command.d.ts +8 -0
  31. package/dist/myr/myr.command.js +46 -0
  32. package/dist/myr/watch.command.d.ts +13 -0
  33. package/dist/myr/watch.command.js +87 -0
  34. package/dist/plugin.d.ts +11 -0
  35. package/dist/plugin.js +40 -0
  36. package/dist/project.command.d.ts +13 -0
  37. package/dist/project.command.js +58 -0
  38. package/dist/task-logger.js +5 -5
  39. package/dist/workspace.command.d.ts +12 -0
  40. package/dist/workspace.command.js +55 -0
  41. package/package.json +19 -16
  42. package/dist/commands/each.d.ts +0 -12
  43. package/dist/commands/each.js +0 -75
  44. package/dist/commands/info.d.ts +0 -5
  45. package/dist/commands/info.js +0 -43
  46. package/dist/commands/list.d.ts +0 -15
  47. package/dist/commands/list.js +0 -120
  48. package/dist/commands/run.d.ts +0 -9
  49. package/dist/commands/run.js +0 -44
  50. package/dist/myr/command.d.ts +0 -2
  51. package/dist/myr/command.js +0 -62
  52. package/dist/myr/commands/kill.d.ts +0 -5
  53. package/dist/myr/commands/kill.js +0 -35
  54. package/dist/myr/commands/list.d.ts +0 -10
  55. package/dist/myr/commands/list.js +0 -92
  56. package/dist/myr/commands/logs.d.ts +0 -5
  57. package/dist/myr/commands/logs.js +0 -65
  58. package/dist/myr/commands/spawn.d.ts +0 -7
  59. package/dist/myr/commands/spawn.js +0 -40
  60. package/dist/myr/commands/stop.d.ts +0 -2
  61. package/dist/myr/commands/stop.js +0 -32
  62. package/dist/myr/watch.d.ts +0 -8
  63. package/dist/myr/watch.js +0 -80
  64. package/dist/utils/deps-tree.d.ts +0 -2
  65. package/dist/utils/deps-tree.js +0 -52
  66. package/dist/wrapper.d.ts +0 -9
  67. package/dist/wrapper.js +0 -39
  68. package/gulpfile.ts +0 -43
@@ -0,0 +1,8 @@
1
+ import { Arguments, Awaitable, Builder, Command } from './command';
2
+ export interface BaseArgs {
3
+ verbose: number;
4
+ }
5
+ export declare abstract class BaseCommand<A extends BaseArgs> extends Command<BaseArgs> {
6
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & BaseArgs>;
7
+ protected run(args: Arguments<A>): Awaitable<number | void>;
8
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BaseCommand = void 0;
7
+
8
+ var _command = require("./command");
9
+
10
+ // Command
11
+ class BaseCommand extends _command.Command {
12
+ // Methods
13
+ define(builder) {
14
+ return y => builder(y).option('verbose', {
15
+ alias: 'v',
16
+ type: 'count',
17
+ description: 'Set verbosity level (1 for verbose, 2 for debug)'
18
+ });
19
+ }
20
+
21
+ run(args) {
22
+ // Setup logger verbosity
23
+ if (args.verbose === 1) {
24
+ this.logger.level = 'verbose';
25
+ } else if (args.verbose >= 2) {
26
+ this.logger.level = 'debug';
27
+ }
28
+ }
29
+
30
+ }
31
+
32
+ exports.BaseCommand = BaseCommand;
33
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2UuY29tbWFuZC50cyJdLCJuYW1lcyI6WyJCYXNlQ29tbWFuZCIsIkNvbW1hbmQiLCJkZWZpbmUiLCJidWlsZGVyIiwieSIsIm9wdGlvbiIsImFsaWFzIiwidHlwZSIsImRlc2NyaXB0aW9uIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2dnZXIiLCJsZXZlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQU9BO0FBQ08sTUFBZUEsV0FBZixTQUF1REMsZ0JBQXZELENBQXlFO0FBQzlFO0FBQ1VDLEVBQUFBLE1BQU0sQ0FBT0MsT0FBUCxFQUF5RDtBQUN2RSxXQUFPQyxDQUFDLElBQUlELE9BQU8sQ0FBQ0MsQ0FBRCxDQUFQLENBQ1RDLE1BRFMsQ0FDRixTQURFLEVBQ1M7QUFDakJDLE1BQUFBLEtBQUssRUFBRSxHQURVO0FBRWpCQyxNQUFBQSxJQUFJLEVBQUUsT0FGVztBQUdqQkMsTUFBQUEsV0FBVyxFQUFFO0FBSEksS0FEVCxDQUFaO0FBTUQ7O0FBRVNDLEVBQUFBLEdBQUcsQ0FBQ0MsSUFBRCxFQUErQztBQUMxRDtBQUNBLFFBQUlBLElBQUksQ0FBQ0MsT0FBTCxLQUFpQixDQUFyQixFQUF3QjtBQUN0QixXQUFLQyxNQUFMLENBQVlDLEtBQVosR0FBb0IsU0FBcEI7QUFDRCxLQUZELE1BRU8sSUFBSUgsSUFBSSxDQUFDQyxPQUFMLElBQWdCLENBQXBCLEVBQXVCO0FBQzVCLFdBQUtDLE1BQUwsQ0FBWUMsS0FBWixHQUFvQixPQUFwQjtBQUNEO0FBQ0Y7O0FBbEI2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3VtZW50cywgQXdhaXRhYmxlLCBCdWlsZGVyLCBDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kJztcblxuLy8gVHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFyZ3Mge1xuICB2ZXJib3NlOiBudW1iZXI7XG59XG5cbi8vIENvbW1hbmRcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tbWFuZDxBIGV4dGVuZHMgQmFzZUFyZ3M+IGV4dGVuZHMgQ29tbWFuZDxCYXNlQXJncz4ge1xuICAvLyBNZXRob2RzXG4gIHByb3RlY3RlZCBkZWZpbmU8VCwgVT4oYnVpbGRlcjogQnVpbGRlcjxULCBVPik6IEJ1aWxkZXI8VCwgVSAmIEJhc2VBcmdzPiB7XG4gICAgcmV0dXJuIHkgPT4gYnVpbGRlcih5KVxuICAgICAgLm9wdGlvbigndmVyYm9zZScsIHtcbiAgICAgICAgYWxpYXM6ICd2JyxcbiAgICAgICAgdHlwZTogJ2NvdW50JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdTZXQgdmVyYm9zaXR5IGxldmVsICgxIGZvciB2ZXJib3NlLCAyIGZvciBkZWJ1ZyknLFxuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcnVuKGFyZ3M6IEFyZ3VtZW50czxBPik6IEF3YWl0YWJsZTxudW1iZXIgfCB2b2lkPiB7XG4gICAgLy8gU2V0dXAgbG9nZ2VyIHZlcmJvc2l0eVxuICAgIGlmIChhcmdzLnZlcmJvc2UgPT09IDEpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxldmVsID0gJ3ZlcmJvc2UnO1xuICAgIH0gZWxzZSBpZiAoYXJncy52ZXJib3NlID49IDIpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxldmVsID0gJ2RlYnVnJztcbiAgICB9XG4gIH1cbn0iXSwiZmlsZSI6ImJhc2UuY29tbWFuZC5qcyJ9
@@ -0,0 +1,21 @@
1
+ import yargs from 'yargs';
2
+ export declare type Awaitable<T> = T | PromiseLike<T>;
3
+ export declare type Arguments<A> = yargs.Arguments<A> & {
4
+ '--': readonly (string | number)[];
5
+ };
6
+ export declare type Builder<T, A = T> = (yargs: yargs.Argv<T>) => yargs.Argv<A>;
7
+ export declare class Exit extends Error {
8
+ readonly code: number;
9
+ constructor(code?: number);
10
+ }
11
+ export declare abstract class Command<A = unknown> {
12
+ readonly logger: import("winston").Logger;
13
+ readonly spinner: import("ora").Ora;
14
+ protected abstract define<T, U>(builder: Builder<T, U>): Builder<T, U & A>;
15
+ protected abstract run(args: Arguments<A>): Awaitable<number | void>;
16
+ setup<T>(yargs: yargs.Argv<T>): yargs.Argv<T>;
17
+ private _wrapper;
18
+ log(msg: string): void;
19
+ abstract get name(): string | readonly string[];
20
+ abstract get description(): string;
21
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Exit = exports.Command = void 0;
7
+
8
+ var _jillCore = require("@jujulego/jill-core");
9
+
10
+ var _yargs = _interopRequireDefault(require("yargs"));
11
+
12
+ var _logger = require("./logger");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ // Exceptions
19
+ class Exit extends Error {
20
+ // Constructor
21
+ constructor(code = 1) {
22
+ super();
23
+ this.code = code;
24
+ }
25
+
26
+ } // Command
27
+
28
+
29
+ exports.Exit = Exit;
30
+
31
+ class Command {
32
+ constructor() {
33
+ _defineProperty(this, "logger", _jillCore.logger);
34
+
35
+ _defineProperty(this, "spinner", _logger.transport.spinner);
36
+ }
37
+
38
+ setup(yargs) {
39
+ yargs.command(this.name, this.description, y => this.define(_ => _)(y), a => this._wrapper(a));
40
+ return yargs;
41
+ }
42
+
43
+ async _wrapper(args) {
44
+ try {
45
+ const exit = await this.run(args);
46
+ process.exit(exit ?? 0);
47
+ } catch (err) {
48
+ if (err instanceof Exit) {
49
+ process.exit(err.code);
50
+ }
51
+
52
+ this.spinner.fail(err.message);
53
+ process.exit(1);
54
+ }
55
+ }
56
+
57
+ log(msg) {
58
+ if (this.spinner.isSpinning) {
59
+ this.spinner.clear();
60
+ }
61
+
62
+ process.stdout.write(msg + '\n');
63
+ } // Properties
64
+
65
+
66
+ }
67
+
68
+ exports.Command = Command;
69
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmQudHMiXSwibmFtZXMiOlsiRXhpdCIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJjb2RlIiwiQ29tbWFuZCIsImxvZ2dlciIsInRyYW5zcG9ydCIsInNwaW5uZXIiLCJzZXR1cCIsInlhcmdzIiwiY29tbWFuZCIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsInkiLCJkZWZpbmUiLCJfIiwiYSIsIl93cmFwcGVyIiwiYXJncyIsImV4aXQiLCJydW4iLCJwcm9jZXNzIiwiZXJyIiwiZmFpbCIsIm1lc3NhZ2UiLCJsb2ciLCJtc2ciLCJpc1NwaW5uaW5nIiwiY2xlYXIiLCJzdGRvdXQiLCJ3cml0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOzs7Ozs7QUFPQTtBQUNPLE1BQU1BLElBQU4sU0FBbUJDLEtBQW5CLENBQXlCO0FBQzlCO0FBQ0FDLEVBQUFBLFdBQVcsQ0FBVUMsSUFBSSxHQUFHLENBQWpCLEVBQW9CO0FBQzdCO0FBRDZCLFNBQVZBLElBQVUsR0FBVkEsSUFBVTtBQUU5Qjs7QUFKNkIsQyxDQU9oQzs7Ozs7QUFDTyxNQUFlQyxPQUFmLENBQW9DO0FBQUE7QUFBQSxvQ0FFdkJDLGdCQUZ1Qjs7QUFBQSxxQ0FHdEJDLGtCQUFVQyxPQUhZO0FBQUE7O0FBU3pDQyxFQUFBQSxLQUFLLENBQUlDLEtBQUosRUFBeUM7QUFDNUNBLElBQUFBLEtBQUssQ0FBQ0MsT0FBTixDQUNFLEtBQUtDLElBRFAsRUFFRSxLQUFLQyxXQUZQLEVBR0dDLENBQUQsSUFBTyxLQUFLQyxNQUFMLENBQVlDLENBQUMsSUFBSUEsQ0FBakIsRUFBb0JGLENBQXBCLENBSFQsRUFJR0csQ0FBRCxJQUFPLEtBQUtDLFFBQUwsQ0FBY0QsQ0FBZCxDQUpUO0FBT0EsV0FBT1AsS0FBUDtBQUNEOztBQUVxQixRQUFSUSxRQUFRLENBQUNDLElBQUQsRUFBb0M7QUFDeEQsUUFBSTtBQUNGLFlBQU1DLElBQUksR0FBRyxNQUFNLEtBQUtDLEdBQUwsQ0FBU0YsSUFBVCxDQUFuQjtBQUNBRyxNQUFBQSxPQUFPLENBQUNGLElBQVIsQ0FBYUEsSUFBSSxJQUFJLENBQXJCO0FBQ0QsS0FIRCxDQUdFLE9BQU9HLEdBQVAsRUFBWTtBQUNaLFVBQUlBLEdBQUcsWUFBWXRCLElBQW5CLEVBQXlCO0FBQ3ZCcUIsUUFBQUEsT0FBTyxDQUFDRixJQUFSLENBQWFHLEdBQUcsQ0FBQ25CLElBQWpCO0FBQ0Q7O0FBRUQsV0FBS0ksT0FBTCxDQUFhZ0IsSUFBYixDQUFrQkQsR0FBRyxDQUFDRSxPQUF0QjtBQUNBSCxNQUFBQSxPQUFPLENBQUNGLElBQVIsQ0FBYSxDQUFiO0FBQ0Q7QUFDRjs7QUFFRE0sRUFBQUEsR0FBRyxDQUFDQyxHQUFELEVBQW9CO0FBQ3JCLFFBQUksS0FBS25CLE9BQUwsQ0FBYW9CLFVBQWpCLEVBQTZCO0FBQzNCLFdBQUtwQixPQUFMLENBQWFxQixLQUFiO0FBQ0Q7O0FBRURQLElBQUFBLE9BQU8sQ0FBQ1EsTUFBUixDQUFlQyxLQUFmLENBQXFCSixHQUFHLEdBQUcsSUFBM0I7QUFDRCxHQXhDd0MsQ0EwQ3pDOzs7QUExQ3lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5pbXBvcnQgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQgeyB0cmFuc3BvcnQgfSBmcm9tICcuL2xvZ2dlcic7XG5cbi8vIEV4cG9ydFxuZXhwb3J0IHR5cGUgQXdhaXRhYmxlPFQ+ID0gVCB8IFByb21pc2VMaWtlPFQ+O1xuZXhwb3J0IHR5cGUgQXJndW1lbnRzPEE+ID0geWFyZ3MuQXJndW1lbnRzPEE+ICYgeyAnLS0nOiByZWFkb25seSAoc3RyaW5nIHwgbnVtYmVyKVtdIH07XG5leHBvcnQgdHlwZSBCdWlsZGVyPFQsIEEgPSBUPiA9ICh5YXJnczogeWFyZ3MuQXJndjxUPikgPT4geWFyZ3MuQXJndjxBPjtcblxuLy8gRXhjZXB0aW9uc1xuZXhwb3J0IGNsYXNzIEV4aXQgZXh0ZW5kcyBFcnJvciB7XG4gIC8vIENvbnN0cnVjdG9yXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvZGUgPSAxKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tbWFuZDxBID0gdW5rbm93bj4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IGxvZ2dlciA9IGxvZ2dlcjtcbiAgcmVhZG9ubHkgc3Bpbm5lciA9IHRyYW5zcG9ydC5zcGlubmVyO1xuXG4gIC8vIE1ldGhvZHNcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGRlZmluZTxULCBVPihidWlsZGVyOiBCdWlsZGVyPFQsIFU+KTogQnVpbGRlcjxULCBVICYgQT47XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBydW4oYXJnczogQXJndW1lbnRzPEE+KTogQXdhaXRhYmxlPG51bWJlciB8IHZvaWQ+O1xuXG4gIHNldHVwPFQ+KHlhcmdzOiB5YXJncy5Bcmd2PFQ+KTogeWFyZ3MuQXJndjxUPiB7XG4gICAgeWFyZ3MuY29tbWFuZDxBPihcbiAgICAgIHRoaXMubmFtZSxcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICAoeSkgPT4gdGhpcy5kZWZpbmUoXyA9PiBfKSh5KSxcbiAgICAgIChhKSA9PiB0aGlzLl93cmFwcGVyKGEgYXMgQXJndW1lbnRzPEE+KVxuICAgICk7XG5cbiAgICByZXR1cm4geWFyZ3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF93cmFwcGVyKGFyZ3M6IEFyZ3VtZW50czxBPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBleGl0ID0gYXdhaXQgdGhpcy5ydW4oYXJncyk7XG4gICAgICBwcm9jZXNzLmV4aXQoZXhpdCA/PyAwKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFeGl0KSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdChlcnIuY29kZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3Bpbm5lci5mYWlsKGVyci5tZXNzYWdlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICBsb2cobXNnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zcGlubmVyLmlzU3Bpbm5pbmcpIHtcbiAgICAgIHRoaXMuc3Bpbm5lci5jbGVhcigpO1xuICAgIH1cblxuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKG1zZyArICdcXG4nKTtcbiAgfVxuXG4gIC8vIFByb3BlcnRpZXNcbiAgYWJzdHJhY3QgZ2V0IG5hbWUoKTogc3RyaW5nIHwgcmVhZG9ubHkgc3RyaW5nW107XG4gIGFic3RyYWN0IGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmc7XG59Il0sImZpbGUiOiJjb21tYW5kLmpzIn0=
@@ -0,0 +1,17 @@
1
+ import { WorkspaceDepsMode } from '@jujulego/jill-core';
2
+ import { Arguments, Builder } from '../command';
3
+ import { ProjectArgs, ProjectCommand } from '../project.command';
4
+ export interface EachArgs extends ProjectArgs {
5
+ script: string;
6
+ 'deps-mode': WorkspaceDepsMode;
7
+ private: boolean | undefined;
8
+ affected: string | undefined;
9
+ 'affected-rev-sort': string | undefined;
10
+ 'affected-rev-fallback': string;
11
+ }
12
+ export declare class EachCommand extends ProjectCommand<EachArgs> {
13
+ readonly name = "each <script>";
14
+ readonly description = "Run script on selected workspaces";
15
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & EachArgs>;
16
+ protected run(args: Arguments<EachArgs>): Promise<number>;
17
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EachCommand = void 0;
7
+
8
+ var _jillCore = require("@jujulego/jill-core");
9
+
10
+ var _filters = require("../filters");
11
+
12
+ var _pipeline = require("../pipeline");
13
+
14
+ var _taskLogger = require("../task-logger");
15
+
16
+ var _project = require("../project.command");
17
+
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+
20
+ // Command
21
+ class EachCommand extends _project.ProjectCommand {
22
+ constructor(...args) {
23
+ super(...args);
24
+
25
+ _defineProperty(this, "name", 'each <script>');
26
+
27
+ _defineProperty(this, "description", 'Run script on selected workspaces');
28
+ }
29
+
30
+ // Methods
31
+ define(builder) {
32
+ return super.define(y => builder(y).positional('script', {
33
+ type: 'string',
34
+ demandOption: true
35
+ }).option('deps-mode', {
36
+ choice: ['all', 'prod', 'none'],
37
+ default: 'all',
38
+ desc: 'Dependency selection mode:\n' + ' - all = dependencies AND devDependencies\n' + ' - prod = dependencies\n' + ' - none = nothing'
39
+ }).option('private', {
40
+ type: 'boolean',
41
+ group: 'Filters:',
42
+ desc: 'Print only private workspaces'
43
+ }).option('affected', {
44
+ alias: 'a',
45
+ type: 'string',
46
+ coerce: rev => rev === '' ? 'master' : rev,
47
+ group: 'Affected:',
48
+ desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\n' + 'Replaces %name by workspace name.'
49
+ }).option('affected-rev-sort', {
50
+ type: 'string',
51
+ group: 'Affected:',
52
+ desc: 'Sort applied to git tag / git branch command'
53
+ }).option('affected-rev-fallback', {
54
+ type: 'string',
55
+ default: 'master',
56
+ group: 'Affected:',
57
+ desc: 'Fallback revision, used if no revision matching the given format is found'
58
+ }));
59
+ }
60
+
61
+ async run(args) {
62
+ await super.run(args); // Setup pipeline
63
+
64
+ const pipeline = new _pipeline.Pipeline();
65
+ pipeline.add(_filters.Filter.scripts([args.script]));
66
+
67
+ if (args.private !== undefined) {
68
+ pipeline.add(_filters.Filter.privateWorkspace(args.private));
69
+ }
70
+
71
+ if (args.affected !== undefined) {
72
+ pipeline.add(new _filters.AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));
73
+ } // Filter
74
+
75
+
76
+ const workspaces = [];
77
+
78
+ for await (const wks of pipeline.filter(this.project.workspaces())) {
79
+ workspaces.push(wks);
80
+ }
81
+
82
+ if (workspaces.length === 0) {
83
+ this.spinner.fail('No workspace found !');
84
+ return 1;
85
+ }
86
+
87
+ this.spinner.stop();
88
+ this.logger.verbose(`Will run ${args.script} in ${workspaces.map(wks => wks.name).join(', ')}`); // Run tasks
89
+
90
+ const set = new _jillCore.TaskSet();
91
+ const tasks = [];
92
+
93
+ for (const wks of workspaces) {
94
+ const task = await wks.run(args.script, args['--']?.map(arg => arg.toString()), {
95
+ buildDeps: args['deps-mode']
96
+ });
97
+ tasks.push(task);
98
+ set.add(task);
99
+ }
100
+
101
+ const tlogger = new _taskLogger.TaskLogger();
102
+ tlogger.on('spin-multiple', count => `Working in ${count} packages ...`);
103
+ tlogger.on('spin-simple', tsk => tasks.includes(tsk) ? `Running ${args.script} in ${tsk.context.workspace?.name} ...` : `Building ${tsk.context.workspace?.name} ...`);
104
+ tlogger.on('fail', tsk => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${args.script} failed` : `Failed to build ${tsk.context.workspace?.name}`);
105
+ tlogger.on('succeed', tsk => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${args.script} done` : `${tsk.context.workspace?.name} built`);
106
+ tlogger.connect(set);
107
+ set.start();
108
+ const [result] = await set.waitFor('finished');
109
+ return result.failed === 0 ? 0 : 1;
110
+ }
111
+
112
+ }
113
+
114
+ exports.EachCommand = EachCommand;
115
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmRzL2VhY2guY29tbWFuZC50cyJdLCJuYW1lcyI6WyJFYWNoQ29tbWFuZCIsIlByb2plY3RDb21tYW5kIiwiZGVmaW5lIiwiYnVpbGRlciIsInkiLCJwb3NpdGlvbmFsIiwidHlwZSIsImRlbWFuZE9wdGlvbiIsIm9wdGlvbiIsImNob2ljZSIsImRlZmF1bHQiLCJkZXNjIiwiZ3JvdXAiLCJhbGlhcyIsImNvZXJjZSIsInJldiIsInJ1biIsImFyZ3MiLCJwaXBlbGluZSIsIlBpcGVsaW5lIiwiYWRkIiwiRmlsdGVyIiwic2NyaXB0cyIsInNjcmlwdCIsInByaXZhdGUiLCJ1bmRlZmluZWQiLCJwcml2YXRlV29ya3NwYWNlIiwiYWZmZWN0ZWQiLCJBZmZlY3RlZEZpbHRlciIsIndvcmtzcGFjZXMiLCJ3a3MiLCJmaWx0ZXIiLCJwcm9qZWN0IiwicHVzaCIsImxlbmd0aCIsInNwaW5uZXIiLCJmYWlsIiwic3RvcCIsImxvZ2dlciIsInZlcmJvc2UiLCJtYXAiLCJuYW1lIiwiam9pbiIsInNldCIsIlRhc2tTZXQiLCJ0YXNrcyIsInRhc2siLCJhcmciLCJ0b1N0cmluZyIsImJ1aWxkRGVwcyIsInRsb2dnZXIiLCJUYXNrTG9nZ2VyIiwib24iLCJjb3VudCIsInRzayIsImluY2x1ZGVzIiwiY29udGV4dCIsIndvcmtzcGFjZSIsImNvbm5lY3QiLCJzdGFydCIsInJlc3VsdCIsIndhaXRGb3IiLCJmYWlsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQWFBO0FBQ08sTUFBTUEsV0FBTixTQUEwQkMsdUJBQTFCLENBQW1EO0FBQUE7QUFBQTs7QUFBQSxrQ0FFeEMsZUFGd0M7O0FBQUEseUNBR2pDLG1DQUhpQztBQUFBOztBQUt4RDtBQUNVQyxFQUFBQSxNQUFNLENBQU9DLE9BQVAsRUFBeUQ7QUFDdkUsV0FBTyxNQUFNRCxNQUFOLENBQWFFLENBQUMsSUFBSUQsT0FBTyxDQUFDQyxDQUFELENBQVAs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RCxJQUFTVCxLQUFLLENBQUNVLFFBQU4sQ0FBZUQsR0FBZixJQUF1QixHQUFFQSxHQUFHLENBQUNFLE9BQUosQ0FBWUMsU0FBWixFQUF1QmhCLElBQUssSUFBR3hCLElBQUksQ0FBQ00sTUFBTyxTQUFwRSxHQUFnRixtQkFBa0IrQixHQUFHLENBQUNFLE9BQUosQ0FBWUMsU0FBWixFQUF1QmhCLElBQUssRUFBMUo7QUFDQVMsSUFBQUEsT0FBTyxDQUFDRSxFQUFSLENBQVcsU0FBWCxFQUF1QkUsR0FBRCxJQUFTVCxLQUFLLENBQUNVLFFBQU4sQ0FBZUQsR0FBZixJQUF1QixHQUFFQSxHQUFHLENBQUNFLE9BQUosQ0FBWUMsU0FBWixFQUF1QmhCLElBQUssSUFBR3hCLElBQUksQ0FBQ00sTUFBTyxPQUFwRSxHQUE4RSxHQUFFK0IsR0FBRyxDQUFDRSxPQUFKLENBQVlDLFNBQVosRUFBdUJoQixJQUFLLFFBQTNJO0FBQ0FTLElBQUFBLE9BQU8sQ0FBQ1EsT0FBUixDQUFnQmYsR0FBaEI7QUFFQUEsSUFBQUEsR0FBRyxDQUFDZ0IsS0FBSjtBQUNBLFVBQU0sQ0FBQ0MsTUFBRCxJQUFXLE1BQU1qQixHQUFHLENBQUNrQixPQUFKLENBQVksVUFBWixDQUF2QjtBQUNBLFdBQU9ELE1BQU0sQ0FBQ0UsTUFBUCxLQUFrQixDQUFsQixHQUFzQixDQUF0QixHQUEwQixDQUFqQztBQUNEOztBQXJHdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXNrLCBUYXNrU2V0LCBXb3Jrc3BhY2UsIFdvcmtzcGFjZURlcHNNb2RlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5cbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uL2NvbW1hbmQnO1xuaW1wb3J0IHsgQWZmZWN0ZWRGaWx0ZXIsIEZpbHRlciB9IGZyb20gJy4uL2ZpbHRlcnMnO1xuaW1wb3J0IHsgUGlwZWxpbmUgfSBmcm9tICcuLi9waXBlbGluZSc7XG5pbXBvcnQgeyBUYXNrTG9nZ2VyIH0gZnJvbSAnLi4vdGFzay1sb2dnZXInO1xuaW1wb3J0IHsgUHJvamVjdEFyZ3MsIFByb2plY3RDb21tYW5kIH0gZnJvbSAnLi4vcHJvamVjdC5jb21tYW5kJztcblxuLy8gVHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgRWFjaEFyZ3MgZXh0ZW5kcyBQcm9qZWN0QXJncyB7XG4gIHNjcmlwdDogc3RyaW5nO1xuICAnZGVwcy1tb2RlJzogV29ya3NwYWNlRGVwc01vZGU7XG5cbiAgcHJpdmF0ZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgYWZmZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgJ2FmZmVjdGVkLXJldi1zb3J0Jzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAnYWZmZWN0ZWQtcmV2LWZhbGxiYWNrJzogc3RyaW5nO1xufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgRWFjaENvbW1hbmQgZXh0ZW5kcyBQcm9qZWN0Q29tbWFuZDxFYWNoQXJncz4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IG5hbWUgPSAnZWFjaCA8c2NyaXB0Pic7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gJ1J1biBzY3JpcHQgb24gc2VsZWN0ZWQgd29ya3NwYWNlcyc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBFYWNoQXJncz4ge1xuICAgIHJldHVybiBzdXBlci5kZWZpbmUoeSA9PiBidWlsZGVyKHkpXG4gICAgICAucG9zaXRpb25hbCgnc2NyaXB0JywgeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pXG4gICAgICAub3B0aW9uKCdkZXBzLW1vZGUnLCB7XG4gICAgICAgIGNob2ljZTogWydhbGwnLCAncHJvZCcsICdub25lJ10sXG4gICAgICAgIGRlZmF1bHQ6ICdhbGwnIGFzIFdvcmtzcGFjZURlcHNNb2RlLFxuICAgICAgICBkZXNjOiAnRGVwZW5kZW5jeSBzZWxlY3Rpb24gbW9kZTpcXG4nICtcbiAgICAgICAgICAnIC0gYWxsID0gZGVwZW5kZW5jaWVzIEFORCBkZXZEZXBlbmRlbmNpZXNcXG4nICtcbiAgICAgICAgICAnIC0gcHJvZCA9IGRlcGVuZGVuY2llc1xcbicgK1xuICAgICAgICAgICcgLSBub25lID0gbm90aGluZydcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdwcml2YXRlJywge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGdyb3VwOiAnRmlsdGVyczonLFxuICAgICAgICBkZXNjOiAnUHJpbnQgb25seSBwcml2YXRlIHdvcmtzcGFjZXMnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2FmZmVjdGVkJywge1xuICAgICAgICBhbGlhczogJ2EnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgY29lcmNlOiAocmV2OiBzdHJpbmcpID0+IHJldiA9PT0gJycgPyAnbWFzdGVyJyA6IHJldixcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnUHJpbnQgb25seSBhZmZlY3RlZCB3b3Jrc3BhY2VzIHRvd2FyZHMgZ2l2ZW4gZ2l0IHJldmlzaW9uLiBJZiBubyByZXZpc2lvbiBpcyBnaXZlbiwgaXQgd2lsbCBjaGVjayB0b3dhcmRzIG1hc3Rlci5cXG4nICtcbiAgICAgICAgICAnUmVwbGFjZXMgJW5hbWUgYnkgd29ya3NwYWNlIG5hbWUuJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtc29ydCcsIHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGdyb3VwOiAnQWZmZWN0ZWQ6JyxcbiAgICAgICAgZGVzYzogJ1NvcnQgYXBwbGllZCB0byBnaXQgdGFnIC8gZ2l0IGJyYW5jaCBjb21tYW5kJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtZmFsbGJhY2snLCB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0OiAnbWFzdGVyJyxcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnRmFsbGJhY2sgcmV2aXNpb24sIHVzZWQgaWYgbm8gcmV2aXNpb24gbWF0Y2hpbmcgdGhlIGdpdmVuIGZvcm1hdCBpcyBmb3VuZCcsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcnVuKGFyZ3M6IEFyZ3VtZW50czxFYWNoQXJncz4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcblxuICAgIC8vIFNldHVwIHBpcGVsaW5lXG4gICAgY29uc3QgcGlwZWxpbmUgPSBuZXcgUGlwZWxpbmUoKTtcbiAgICBwaXBlbGluZS5hZGQoRmlsdGVyLnNjcmlwdHMoW2FyZ3Muc2NyaXB0XSkpO1xuXG4gICAgaWYgKGFyZ3MucHJpdmF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwaXBlbGluZS5hZGQoRmlsdGVyLnByaXZhdGVXb3Jrc3BhY2UoYXJncy5wcml2YXRlKSk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3MuYWZmZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGlwZWxpbmUuYWRkKG5ldyBBZmZlY3RlZEZpbHRlcihcbiAgICAgICAgYXJncy5hZmZlY3RlZCxcbiAgICAgICAgYXJnc1snYWZmZWN0ZWQtcmV2LWZhbGxiYWNrJ10sXG4gICAgICAgIGFyZ3NbJ2FmZmVjdGVkLXJldi1zb3J0J11cbiAgICAgICkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlclxuICAgIGNvbnN0IHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdID0gW107XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IHdrcyBvZiBwaXBlbGluZS5maWx0ZXIodGhpcy5wcm9qZWN0LndvcmtzcGFjZXMoKSkpIHtcbiAgICAgIHdvcmtzcGFjZXMucHVzaCh3a3MpO1xuICAgIH1cblxuICAgIGlmICh3b3Jrc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zcGlubmVyLmZhaWwoJ05vIHdvcmtzcGFjZSBmb3VuZCAhJyk7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICB0aGlzLnNwaW5uZXIuc3RvcCgpO1xuICAgIHRoaXMubG9nZ2VyLnZlcmJvc2UoYFdpbGwgcnVuICR7YXJncy5zY3JpcHR9IGluICR7d29ya3NwYWNlcy5tYXAod2tzID0+IHdrcy5uYW1lKS5qb2luKCcsICcpfWApO1xuXG4gICAgLy8gUnVuIHRhc2tzXG4gICAgY29uc3Qgc2V0ID0gbmV3IFRhc2tTZXQoKTtcbiAgICBjb25zdCB0YXNrczogVGFza1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHdrcyBvZiB3b3Jrc3BhY2VzKSB7XG4gICAgICBjb25zdCB0YXNrID0gYXdhaXQgd2tzLnJ1bihhcmdzLnNjcmlwdCwgYXJnc1snLS0nXT8ubWFwKGFyZyA9PiBhcmcudG9TdHJpbmcoKSksIHtcbiAgICAgICAgYnVpbGREZXBzOiBhcmdzWydkZXBzLW1vZGUnXVxuICAgICAgfSk7XG5cbiAgICAgIHRhc2tzLnB1c2godGFzayk7XG4gICAgICBzZXQuYWRkKHRhc2spO1xuICAgIH1cblxuICAgIGNvbnN0IHRsb2dnZXIgPSBuZXcgVGFza0xvZ2dlcigpO1xuICAgIHRsb2dnZXIub24oJ3NwaW4tbXVsdGlwbGUnLCAoY291bnQpID0+IGBXb3JraW5nIGluICR7Y291bnR9IHBhY2thZ2VzIC4uLmApO1xuICAgIHRsb2dnZXIub24oJ3NwaW4tc2ltcGxlJywgKHRzaykgPT4gdGFza3MuaW5jbHVkZXModHNrKSA/IGBSdW5uaW5nICR7YXJncy5zY3JpcHR9IGluICR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfSAuLi5gIDogYEJ1aWxkaW5nICR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfSAuLi5gKTtcbiAgICB0bG9nZ2VyLm9uKCdmYWlsJywgKHRzaykgPT4gdGFza3MuaW5jbHVkZXModHNrKSA/IGAke3Rzay5jb250ZXh0LndvcmtzcGFjZT8ubmFtZX0gJHthcmdzLnNjcmlwdH0gZmFpbGVkYCA6IGBGYWlsZWQgdG8gYnVpbGQgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9YCk7XG4gICAgdGxvZ2dlci5vbignc3VjY2VlZCcsICh0c2spID0+IHRhc2tzLmluY2x1ZGVzKHRzaykgPyBgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9ICR7YXJncy5zY3JpcHR9IGRvbmVgIDogYCR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfSBidWlsdGApO1xuICAgIHRsb2dnZXIuY29ubmVjdChzZXQpO1xuXG4gICAgc2V0LnN0YXJ0KCk7XG4gICAgY29uc3QgW3Jlc3VsdF0gPSBhd2FpdCBzZXQud2FpdEZvcignZmluaXNoZWQnKTtcbiAgICByZXR1cm4gcmVzdWx0LmZhaWxlZCA9PT0gMCA/IDAgOiAxO1xuICB9XG59Il0sImZpbGUiOiJjb21tYW5kcy9lYWNoLmNvbW1hbmQuanMifQ==
@@ -0,0 +1,9 @@
1
+ import { Arguments } from '../command';
2
+ import { WorkspaceArgs, WorkspaceCommand } from '../workspace.command';
3
+ export declare class InfoCommand extends WorkspaceCommand {
4
+ readonly name = "info";
5
+ readonly description = "Print workspace data";
6
+ protected run(args: Arguments<WorkspaceArgs>): Promise<number | void>;
7
+ private printDepsTree;
8
+ private printTree;
9
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.InfoCommand = void 0;
7
+
8
+ var _chalk = _interopRequireDefault(require("chalk"));
9
+
10
+ var _path = _interopRequireDefault(require("path"));
11
+
12
+ var _workspace = require("../workspace.command");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ // Command
19
+ class InfoCommand extends _workspace.WorkspaceCommand {
20
+ constructor(...args) {
21
+ super(...args);
22
+
23
+ _defineProperty(this, "name", 'info');
24
+
25
+ _defineProperty(this, "description", 'Print workspace data');
26
+ }
27
+
28
+ // Methods
29
+ async run(args) {
30
+ await super.run(args);
31
+ this.spinner.stop(); // Print data
32
+
33
+ this.log((0, _chalk.default)`Workspace {bold ${this.workspace.name}}:`);
34
+ this.log((0, _chalk.default)`{bold Version:} ${this.workspace.manifest.version || _chalk.default.grey('unset')}`);
35
+ this.log((0, _chalk.default)`{bold Directory:} ${_path.default.relative(process.cwd(), this.workspace.cwd) || '.'}`);
36
+ this.log('');
37
+ await this.printDepsTree();
38
+ }
39
+
40
+ async printDepsTree() {
41
+ this.log((0, _chalk.default)`{bold Dependencies:}`);
42
+ const printed = new Set([this.workspace.name]);
43
+ await this.printTree(this.workspace, '', false, printed);
44
+
45
+ if (printed.size === 1) {
46
+ this.log(_chalk.default.grey(` No dependencies for ${this.workspace.name}`));
47
+ }
48
+ }
49
+
50
+ async printTree(wks, level, dev, printed) {
51
+ const workspaces = [];
52
+
53
+ for await (const dep of wks.dependencies()) {
54
+ workspaces.push([dep, dev]);
55
+ }
56
+
57
+ for await (const dep of wks.devDependencies()) {
58
+ workspaces.push([dep, true]);
59
+ }
60
+
61
+ for (let i = 0; i < workspaces.length; ++i) {
62
+ const [dep, isDev] = workspaces[i];
63
+ const isPrinted = printed.has(dep.cwd);
64
+ const isLast = i === workspaces.length - 1; // Format
65
+
66
+ let name = dep.name;
67
+ if (dep.version) name = (0, _chalk.default)`${name}{grey @${dep.version}}`;
68
+ if (isDev) name = _chalk.default.blue(`${name} (dev)`);
69
+ if (isPrinted) name = _chalk.default.italic(name);
70
+ const branchFmt = dev ? _chalk.default.blue : s => s;
71
+ this.log(`${level}${branchFmt(`${isLast ? '└' : '├'}─ `)}${name}`); // Print deps of dep
72
+
73
+ if (!isPrinted) {
74
+ printed.add(dep.cwd);
75
+ await this.printTree(dep, level + (isLast ? ' ' : branchFmt('│ ')), isDev, printed);
76
+ }
77
+ }
78
+ }
79
+
80
+ }
81
+
82
+ exports.InfoCommand = InfoCommand;
83
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmRzL2luZm8uY29tbWFuZC50cyJdLCJuYW1lcyI6WyJJbmZvQ29tbWFuZCIsIldvcmtzcGFjZUNvbW1hbmQiLCJydW4iLCJhcmdzIiwic3Bpbm5lciIsInN0b3AiLCJsb2ciLCJ3b3Jrc3BhY2UiLCJuYW1lIiwibWFuaWZlc3QiLCJ2ZXJzaW9uIiwiY2hhbGsiLCJncmV5IiwicGF0aCIsInJlbGF0aXZlIiwicHJvY2VzcyIsImN3ZCIsInByaW50RGVwc1RyZWUiLCJwcmludGVkIiwiU2V0IiwicHJpbnRUcmVlIiwic2l6ZSIsIndrcyIsImxldmVsIiwiZGV2Iiwid29ya3NwYWNlcyIsImRlcCIsImRlcGVuZGVuY2llcyIsInB1c2giLCJkZXZEZXBlbmRlbmNpZXMiLCJpIiwibGVuZ3RoIiwiaXNEZXYiLCJpc1ByaW50ZWQiLCJoYXMiLCJpc0xhc3QiLCJibHVlIiwiaXRhbGljIiwiYnJhbmNoRm10IiwicyIsImFkZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQUNBOztBQUdBOzs7Ozs7QUFFQTtBQUNPLE1BQU1BLFdBQU4sU0FBMEJDLDJCQUExQixDQUEyQztBQUFBO0FBQUE7O0FBQUEsa0NBRWhDLE1BRmdDOztBQUFBLHlDQUd6QixzQkFIeUI7QUFBQTs7QUFLaEQ7QUFDbUIsUUFBSEMsR0FBRyxDQUFDQyxJQUFELEVBQXlEO0FBQzFFLFVBQU0sTUFBTUQsR0FBTixDQUFVQyxJQUFWLENBQU47QUFDQSxTQUFLQyxPQUFMLENBQWFDLElBQWIsR0FGMEUsQ0FJMUU7O0FBQ0EsU0FBS0MsR0FBTCxDQUFTLG1CQUFNLG1CQUFrQixLQUFLQyxTQUFMLENBQWVDLElBQUssSUFBckQ7QUFDQSxTQUFLRixHQUFMLENBQVMsbUJBQU0scUJBQW9CLEtBQUtDLFNBQUwsQ0FBZUUsUUFBZixDQUF3QkMsT0FBeEIsSUFBbUNDLGVBQU1DLElBQU4sQ0FBVyxPQUFYLENBQW9CLEVBQTFGO0FBQ0EsU0FBS04sR0FBTCxDQUFTLG1CQUFNLHFCQUFvQk8sY0FB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ZCxPQUF4RSxDQUFOO0FBQ0Q7QUFDRjtBQUNGOztBQTdEK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXb3Jrc3BhY2UgfSBmcm9tICdAanVqdWxlZ28vamlsbC1jb3JlJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgQXJndW1lbnRzIH0gZnJvbSAnLi4vY29tbWFuZCc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VBcmdzLCBXb3Jrc3BhY2VDb21tYW5kIH0gZnJvbSAnLi4vd29ya3NwYWNlLmNvbW1hbmQnO1xuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgSW5mb0NvbW1hbmQgZXh0ZW5kcyBXb3Jrc3BhY2VDb21tYW5kIHtcbiAgLy8gQXR0cmlidXRlc1xuICByZWFkb25seSBuYW1lID0gJ2luZm8nO1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9ICdQcmludCB3b3Jrc3BhY2UgZGF0YSc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgYXN5bmMgcnVuKGFyZ3M6IEFyZ3VtZW50czxXb3Jrc3BhY2VBcmdzPik6IFByb21pc2U8bnVtYmVyIHwgdm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcbiAgICB0aGlzLnNwaW5uZXIuc3RvcCgpO1xuXG4gICAgLy8gUHJpbnQgZGF0YVxuICAgIHRoaXMubG9nKGNoYWxrYFdvcmtzcGFjZSB7Ym9sZCAke3RoaXMud29ya3NwYWNlLm5hbWV9fTpgKTtcbiAgICB0aGlzLmxvZyhjaGFsa2B7Ym9sZCBWZXJzaW9uOn0gICAke3RoaXMud29ya3NwYWNlLm1hbmlmZXN0LnZlcnNpb24gfHwgY2hhbGsuZ3JleSgndW5zZXQnKX1gKTtcbiAgICB0aGlzLmxvZyhjaGFsa2B7Ym9sZCBEaXJlY3Rvcnk6fSAke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgdGhpcy53b3Jrc3BhY2UuY3dkKSB8fCAnLid9YCk7XG4gICAgdGhpcy5sb2coJycpO1xuICAgIGF3YWl0IHRoaXMucHJpbnREZXBzVHJlZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmludERlcHNUcmVlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nKGNoYWxrYHtib2xkIERlcGVuZGVuY2llczp9YCk7XG4gICAgY29uc3QgcHJpbnRlZCA9IG5ldyBTZXQoW3RoaXMud29ya3NwYWNlLm5hbWVdKTtcblxuICAgIGF3YWl0IHRoaXMucHJpbnRUcmVlKHRoaXMud29ya3NwYWNlLCAnJywgZmFsc2UsIHByaW50ZWQpO1xuXG4gICAgaWYgKHByaW50ZWQuc2l6ZSA9PT0gMSkge1xuICAgICAgdGhpcy5sb2coY2hhbGsuZ3JleShgICAgTm8gZGVwZW5kZW5jaWVzIGZvciAke3RoaXMud29ya3NwYWNlLm5hbWV9YCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJpbnRUcmVlKHdrczogV29ya3NwYWNlLCBsZXZlbDogc3RyaW5nLCBkZXY6IGJvb2xlYW4sIHByaW50ZWQ6IFNldDxzdHJpbmc+KSB7XG4gICAgY29uc3Qgd29ya3NwYWNlczogW1dvcmtzcGFjZSwgYm9vbGVhbl1bXSA9IFtdO1xuXG4gICAgZm9yIGF3YWl0IChjb25zdCBkZXAgb2Ygd2tzLmRlcGVuZGVuY2llcygpKSB7XG4gICAgICB3b3Jrc3BhY2VzLnB1c2goW2RlcCwgZGV2XSk7XG4gICAgfVxuXG4gICAgZm9yIGF3YWl0IChjb25zdCBkZXAgb2Ygd2tzLmRldkRlcGVuZGVuY2llcygpKSB7XG4gICAgICB3b3Jrc3BhY2VzLnB1c2goW2RlcCwgdHJ1ZV0pO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29ya3NwYWNlcy5sZW5ndGg7ICsraSkge1xuICAgICAgY29uc3QgW2RlcCwgaXNEZXZdID0gd29ya3NwYWNlc1tpXTtcbiAgICAgIGNvbnN0IGlzUHJpbnRlZCA9IHByaW50ZWQuaGFzKGRlcC5jd2QpO1xuICAgICAgY29uc3QgaXNMYXN0ID0gaSA9PT0gd29ya3NwYWNlcy5sZW5ndGggLSAxO1xuXG4gICAgICAvLyBGb3JtYXRcbiAgICAgIGxldCBuYW1lID0gZGVwLm5hbWU7XG4gICAgICBpZiAoZGVwLnZlcnNpb24pIG5hbWUgPSBjaGFsa2Ake25hbWV9e2dyZXkgQCR7ZGVwLnZlcnNpb259fWA7XG4gICAgICBpZiAoaXNEZXYpIG5hbWUgPSBjaGFsay5ibHVlKGAke25hbWV9IChkZXYpYCk7XG4gICAgICBpZiAoaXNQcmludGVkKSBuYW1lID0gY2hhbGsuaXRhbGljKG5hbWUpO1xuXG4gICAgICBjb25zdCBicmFuY2hGbXQgPSBkZXYgPyBjaGFsay5ibHVlIDogKHM6IHN0cmluZykgPT4gcztcblxuICAgICAgdGhpcy5sb2coYCR7bGV2ZWx9JHticmFuY2hGbXQoYCR7aXNMYXN0ID8gJ+KUlCcgOiAn4pScJyB94pSAIGApfSR7bmFtZX1gKTtcblxuICAgICAgLy8gUHJpbnQgZGVwcyBvZiBkZXBcbiAgICAgIGlmICghaXNQcmludGVkKSB7XG4gICAgICAgIHByaW50ZWQuYWRkKGRlcC5jd2QpO1xuICAgICAgICBhd2FpdCB0aGlzLnByaW50VHJlZShkZXAsIGxldmVsICsgKGlzTGFzdCA/ICcgICAnIDogYnJhbmNoRm10KCfilIIgICcpKSwgaXNEZXYsIHByaW50ZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSJdLCJmaWxlIjoiY29tbWFuZHMvaW5mby5jb21tYW5kLmpzIn0=
@@ -0,0 +1,22 @@
1
+ import { ProjectArgs, ProjectCommand } from '../project.command';
2
+ import { Arguments, Builder } from '../command';
3
+ export declare type Attribute = 'name' | 'version' | 'root' | 'slug';
4
+ export declare type Data = Partial<Record<Attribute, string>>;
5
+ export interface ListArgs extends ProjectArgs {
6
+ private: boolean | undefined;
7
+ 'with-script': string[] | undefined;
8
+ affected: string | undefined;
9
+ 'affected-rev-sort': string | undefined;
10
+ 'affected-rev-fallback': string;
11
+ attrs: Attribute[];
12
+ headers: boolean | undefined;
13
+ long: boolean | undefined;
14
+ json: boolean | undefined;
15
+ }
16
+ export declare class ListCommand extends ProjectCommand<ListArgs> {
17
+ readonly name: string[];
18
+ readonly description = "List workspaces";
19
+ private buildExtractor;
20
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs>;
21
+ protected run(args: Arguments<ListArgs>): Promise<number | void>;
22
+ }
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ListCommand = void 0;
7
+
8
+ var _chalk = _interopRequireDefault(require("chalk"));
9
+
10
+ var _slugify = _interopRequireDefault(require("slugify"));
11
+
12
+ var _path = _interopRequireDefault(require("path"));
13
+
14
+ var _project = require("../project.command");
15
+
16
+ var _pipeline = require("../pipeline");
17
+
18
+ var _filters = require("../filters");
19
+
20
+ var _cliList = require("../utils/cli-list");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+
26
+ // Constants
27
+ const LONG_ATTRIBUTES = ['name', 'version', 'root'];
28
+ const JSON_ATTRIBUTES = ['name', 'version', 'slug', 'root'];
29
+ const DEFAULT_ATTRIBUTES = ['name'];
30
+ const EXTRACTORS = {
31
+ name: wks => wks.name,
32
+ version: (wks, json) => wks.manifest.version || (json ? undefined : _chalk.default.grey('unset')),
33
+ root: wks => wks.cwd,
34
+ slug: wks => (0, _slugify.default)(wks.name)
35
+ }; // Command
36
+
37
+ class ListCommand extends _project.ProjectCommand {
38
+ constructor(...args) {
39
+ super(...args);
40
+
41
+ _defineProperty(this, "name", ['list', 'ls']);
42
+
43
+ _defineProperty(this, "description", 'List workspaces');
44
+ }
45
+
46
+ // Methods
47
+ buildExtractor(attrs) {
48
+ return (wks, json) => {
49
+ const data = {};
50
+
51
+ for (const attr of attrs) {
52
+ data[attr] = EXTRACTORS[attr](wks, json);
53
+ }
54
+
55
+ return data;
56
+ };
57
+ }
58
+
59
+ define(builder) {
60
+ return super.define(y => builder(y).option('private', {
61
+ type: 'boolean',
62
+ group: 'Filters:',
63
+ desc: 'Print only private workspaces'
64
+ }).option('with-script', {
65
+ type: 'array',
66
+ string: true,
67
+ group: 'Filters:',
68
+ desc: 'Print only workspaces having the given script'
69
+ }).option('affected', {
70
+ alias: 'a',
71
+ type: 'string',
72
+ coerce: rev => rev === '' ? 'master' : rev,
73
+ group: 'Affected:',
74
+ desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\n' + 'Replaces %name by workspace name.'
75
+ }).option('affected-rev-sort', {
76
+ type: 'string',
77
+ group: 'Affected:',
78
+ desc: 'Sort applied to git tag / git branch command'
79
+ }).option('affected-rev-fallback', {
80
+ type: 'string',
81
+ default: 'master',
82
+ group: 'Affected:',
83
+ desc: 'Fallback revision, used if no revision matching the given format is found'
84
+ }).option('attrs', {
85
+ type: 'array',
86
+ choices: ['name', 'version', 'root', 'slug'],
87
+ default: [],
88
+ group: 'Format:',
89
+ desc: 'Select printed attributes'
90
+ }).option('headers', {
91
+ type: 'boolean',
92
+ group: 'Format:',
93
+ desc: 'Prints columns headers'
94
+ }).option('long', {
95
+ alias: 'l',
96
+ type: 'boolean',
97
+ group: 'Format:',
98
+ desc: 'Prints name, version and root of all workspaces'
99
+ }).option('json', {
100
+ type: 'boolean',
101
+ group: 'Format:',
102
+ desc: 'Prints data as a JSON array'
103
+ }));
104
+ }
105
+
106
+ async run(args) {
107
+ await super.run(args); // Setup pipeline
108
+
109
+ const pipeline = new _pipeline.Pipeline();
110
+
111
+ if (args.private !== undefined) {
112
+ pipeline.add(_filters.Filter.privateWorkspace(args.private));
113
+ }
114
+
115
+ if (args['with-script'] !== undefined) {
116
+ pipeline.add(_filters.Filter.scripts(args['with-script']));
117
+ }
118
+
119
+ if (args.affected !== undefined) {
120
+ pipeline.add(new _filters.AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));
121
+ } // Filter
122
+
123
+
124
+ const workspaces = [];
125
+
126
+ for await (const wks of pipeline.filter(this.project.workspaces())) {
127
+ workspaces.push(wks);
128
+ }
129
+
130
+ this.spinner.stop(); // Build data
131
+
132
+ let attrs = args.attrs;
133
+
134
+ if (args.attrs.length === 0) {
135
+ if (args.long) {
136
+ attrs = LONG_ATTRIBUTES;
137
+ } else if (args.json) {
138
+ attrs = JSON_ATTRIBUTES;
139
+ } else {
140
+ attrs = DEFAULT_ATTRIBUTES;
141
+ }
142
+ }
143
+
144
+ const data = workspaces.map(wks => this.buildExtractor(attrs)(wks, args.json || false)); // Print data
145
+
146
+ if (args.json) {
147
+ if (process.stdout.isTTY) {
148
+ // Pretty print for ttys
149
+ this.log(JSON.stringify(data, null, 2));
150
+ } else {
151
+ this.log(JSON.stringify(data));
152
+ }
153
+ } else {
154
+ const list = new _cliList.CliList();
155
+
156
+ if (args.headers ?? attrs.length > 1) {
157
+ list.setHeaders(attrs);
158
+ }
159
+
160
+ for (const d of data) {
161
+ if (d.root) {
162
+ d.root = _path.default.relative(process.cwd(), d.root) || '.';
163
+ }
164
+
165
+ list.add(attrs.map(attr => d[attr] || ''));
166
+ }
167
+
168
+ for (const d of list.lines()) {
169
+ this.log(d);
170
+ }
171
+ }
172
+ }
173
+
174
+ }
175
+
176
+ exports.ListCommand = ListCommand;
177
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmRzL2xpc3QuY29tbWFuZC50cyJdLCJuYW1lcyI6WyJMT05HX0FUVFJJQlVURVMiLCJKU09OX0FUVFJJQlVURVMiLCJERUZBVUxUX0FUVFJJQlVURVMiLCJFWFRSQUNUT1JTIiwibmFtZSIsIndrcyIsInZlcnNpb24iLCJqc29uIiwibWFuaWZlc3QiLCJ1bmRlZmluZWQiLCJjaGFsayIsImdyZXkiLCJyb290IiwiY3dkIiwic2x1ZyIsIkxpc3RDb21tYW5kIiwiUHJvamVjdENvbW1hbmQiLCJidWlsZEV4dHJhY3RvciIsImF0dHJzIiwiZGF0YSIsImF0dHIiLCJkZWZpbmUiLCJidWlsZGVyIiwieSIsIm9wdGlvbiIsInR5cGUiLCJncm91cCIsImRlc2MiLCJzdHJpbmciLCJhbGlhcyIsImNvZXJjZSIsInJldiIsImRlZmF1bHQiLCJjaG9pY2VzIiwicnVuIiwiYXJncyIsInBpcGVsaW5lIiwiUGlwZWxpbmUiLCJwcml2YXRlIiwiYWRkIiwiRmlsdGVyIiwicHJpdmF0ZVdvcmtzcGFjZSIsInNjcmlwdHMiLCJhZmZlY3RlZCIsIkFmZmVjdGVkRmlsdGVyIiwid29ya3NwYWNlcyIsImZpbHRlciIsInByb2plY3QiLCJwdXNoIiwic3Bpbm5lciIsInN0b3AiLCJsZW5ndGgiLCJsb25nIiwibWFwIiwicHJvY2VzcyIsInN0ZG91dCIsImlzVFRZIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsImxpc3QiLCJDbGlMaXN0IiwiaGVhZGVycyIsInNldEhlYWRlcnMiLCJkIiwicGF0aCIsInJlbGF0aXZlIiwibGluZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBdUJBO0FBQ0EsTUFBTUEsZUFBNEIsR0FBRyxDQUFDLE1BQUQsRUFBUyxTQUFULEVBQW9CLE1BQXBCLENBQXJDO0FBQ0EsTUFBTUMsZUFBNEIsR0FBRyxDQUFDLE1BQUQsRUFBUyxTQUFULEVBQW9CLE1BQXBCLEVB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QUFlQyxLQUFuQixFQUEwQjtBQUFFO0FBQzFCLGFBQUtDLEdBQUwsQ0FBU0MsSUFBSSxDQUFDQyxTQUFMLENBQWV4QyxJQUFmLEVBQXFCLElBQXJCLEVBQTJCLENBQTNCLENBQVQ7QUFDRCxPQUZELE1BRU87QUFDTCxhQUFLc0MsR0FBTCxDQUFTQyxJQUFJLENBQUNDLFNBQUwsQ0FBZXhDLElBQWYsQ0FBVDtBQUNEO0FBQ0YsS0FORCxNQU1PO0FBQ0wsWUFBTXlDLElBQUksR0FBRyxJQUFJQyxnQkFBSixFQUFiOztBQUVBLFVBQUkxQixJQUFJLENBQUMyQixPQUFMLElBQWlCNUMsS0FBSyxDQUFDaUMsTUFBTixHQUFlLENBQXBDLEVBQXdDO0FBQ3RDUyxRQUFBQSxJQUFJLENBQUNHLFVBQUwsQ0FBZ0I3QyxLQUFoQjtBQUNEOztBQUVELFdBQUssTUFBTThDLENBQVgsSUFBZ0I3QyxJQUFoQixFQUFzQjtBQUNwQixZQUFJNkMsQ0FBQyxDQUFDcEQsSUFBTixFQUFZO0FBQ1ZvRCxVQUFBQSxDQUFDLENBQUNwRCxJQUFGLEdBQVNxRCxjQUFLQyxRQUFMLENBQWNaLE9BQU8sQ0FBQ3pDLEdBQVIsRUFBZCxFQUE2Qm1ELENBQUMsQ0FBQ3BELElBQS9CLEtBQXdDLEdBQWpEO0FBQ0Q7O0FBRURnRCxRQUFBQSxJQUFJLENBQUNyQixHQUFMLENBQVNyQixLQUFLLENBQUNtQyxHQUFOLENBQVVqQyxJQUFJLElBQUk0QyxDQUFDLENBQUM1QyxJQUFELENBQUQsSUFBVyxFQUE3QixDQUFUO0FBQ0Q7O0FBRUQsV0FBSyxNQUFNNEMsQ0FBWCxJQUFnQkosSUFBSSxDQUFDTyxLQUFMLEVBQWhCLEVBQThCO0FBQzVCLGFBQUtWLEdBQUwsQ0FBU08sQ0FBVDtBQUNEO0FBQ0Y7QUFDRjs7QUFwSnVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHNsdWdpZnkgZnJvbSAnc2x1Z2lmeSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgUHJvamVjdEFyZ3MsIFByb2plY3RDb21tYW5kIH0gZnJvbSAnLi4vcHJvamVjdC5jb21tYW5kJztcbmltcG9ydCB7IFBpcGVsaW5lIH0gZnJvbSAnLi4vcGlwZWxpbmUnO1xuaW1wb3J0IHsgQWZmZWN0ZWRGaWx0ZXIsIEZpbHRlciB9IGZyb20gJy4uL2ZpbHRlcnMnO1xuaW1wb3J0IHsgQ2xpTGlzdCB9IGZyb20gJy4uL3V0aWxzL2NsaS1saXN0JztcbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uL2NvbW1hbmQnO1xuXG4vLyBUeXBlc1xuZXhwb3J0IHR5cGUgQXR0cmlidXRlID0gJ25hbWUnIHwgJ3ZlcnNpb24nIHwgJ3Jvb3QnIHwgJ3NsdWcnO1xuZXhwb3J0IHR5cGUgRGF0YSA9IFBhcnRpYWw8UmVjb3JkPEF0dHJpYnV0ZSwgc3RyaW5nPj47XG5cbnR5cGUgRXh0cmFjdG9yPFQ+ID0gKHdrczogV29ya3NwYWNlLCBqc29uOiBib29sZWFuKSA9PiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBcmdzIGV4dGVuZHMgUHJvamVjdEFyZ3Mge1xuICBwcml2YXRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAnd2l0aC1zY3JpcHQnOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICBhZmZlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAnYWZmZWN0ZWQtcmV2LXNvcnQnOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICdhZmZlY3RlZC1yZXYtZmFsbGJhY2snOiBzdHJpbmc7XG5cbiAgYXR0cnM6IEF0dHJpYnV0ZVtdO1xuICBoZWFkZXJzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBsb25nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBqc29uOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBDb25zdGFudHNcbmNvbnN0IExPTkdfQVRUUklCVVRFUzogQXR0cmlidXRlW10gPSBbJ25hbWUnLCAndmVyc2lvbicsICdyb290J107XG5jb25zdCBKU09OX0FUVFJJQlVURVM6IEF0dHJpYnV0ZVtdID0gWyduYW1lJywgJ3ZlcnNpb24nLCAnc2x1ZycsICdyb290J107XG5jb25zdCBERUZBVUxUX0FUVFJJQlVURVM6IEF0dHJpYnV0ZVtdID0gWyduYW1lJ107XG5cbmNvbnN0IEVYVFJBQ1RPUlM6IFJlY29yZDxBdHRyaWJ1dGUsIEV4dHJhY3RvcjxzdHJpbmcgfCB1bmRlZmluZWQ+PiA9IHtcbiAgbmFtZTogd2tzID0+IHdrcy5uYW1lLFxuICB2ZXJzaW9uOiAod2tzLCBqc29uKSA9PiB3a3MubWFuaWZlc3QudmVyc2lvbiB8fCAoanNvbiA/IHVuZGVmaW5lZCA6IGNoYWxrLmdyZXkoJ3Vuc2V0JykpLFxuICByb290OiB3a3MgPT4gd2tzLmN3ZCxcbiAgc2x1Zzogd2tzID0+IHNsdWdpZnkod2tzLm5hbWUpXG59O1xuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgTGlzdENvbW1hbmQgZXh0ZW5kcyBQcm9qZWN0Q29tbWFuZDxMaXN0QXJncz4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IG5hbWUgPSBbJ2xpc3QnLCAnbHMnXTtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSAnTGlzdCB3b3Jrc3BhY2VzJztcblxuICAvLyBNZXRob2RzXG4gIHByaXZhdGUgYnVpbGRFeHRyYWN0b3IoYXR0cnM6IEF0dHJpYnV0ZVtdKTogRXh0cmFjdG9yPERhdGE+IHtcbiAgICByZXR1cm4gKHdrcywganNvbjogYm9vbGVhbikgPT4ge1xuICAgICAgY29uc3QgZGF0YTogRGF0YSA9IHt9O1xuXG4gICAgICBmb3IgKGNvbnN0IGF0dHIgb2YgYXR0cnMpIHtcbiAgICAgICAgZGF0YVthdHRyXSA9IEVYVFJBQ1RPUlNbYXR0cl0od2tzLCBqc29uKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWZpbmU8VCwgVT4oYnVpbGRlcjogQnVpbGRlcjxULCBVPik6IEJ1aWxkZXI8VCwgVSAmIExpc3RBcmdzPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlZmluZSh5ID0+IGJ1aWxkZXIoeSlcbiAgICAgIC5vcHRpb24oJ3ByaXZhdGUnLCB7XG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZ3JvdXA6ICdGaWx0ZXJzOicsXG4gICAgICAgIGRlc2M6ICdQcmludCBvbmx5IHByaXZhdGUgd29ya3NwYWNlcycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignd2l0aC1zY3JpcHQnLCB7XG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIHN0cmluZzogdHJ1ZSxcbiAgICAgICAgZ3JvdXA6ICdGaWx0ZXJzOicsXG4gICAgICAgIGRlc2M6ICdQcmludCBvbmx5IHdvcmtzcGFjZXMgaGF2aW5nIHRoZSBnaXZlbiBzY3JpcHQnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2FmZmVjdGVkJywge1xuICAgICAgICBhbGlhczogJ2EnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgY29lcmNlOiAocmV2OiBzdHJpbmcpID0+IHJldiA9PT0gJycgPyAnbWFzdGVyJyA6IHJldixcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnUHJpbnQgb25seSBhZmZlY3RlZCB3b3Jrc3BhY2VzIHRvd2FyZHMgZ2l2ZW4gZ2l0IHJldmlzaW9uLiBJZiBubyByZXZpc2lvbiBpcyBnaXZlbiwgaXQgd2lsbCBjaGVjayB0b3dhcmRzIG1hc3Rlci5cXG4nICtcbiAgICAgICAgICAnUmVwbGFjZXMgJW5hbWUgYnkgd29ya3NwYWNlIG5hbWUuJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtc29ydCcsIHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGdyb3VwOiAnQWZmZWN0ZWQ6JyxcbiAgICAgICAgZGVzYzogJ1NvcnQgYXBwbGllZCB0byBnaXQgdGFnIC8gZ2l0IGJyYW5jaCBjb21tYW5kJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtZmFsbGJhY2snLCB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0OiAnbWFzdGVyJyxcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnRmFsbGJhY2sgcmV2aXNpb24sIHVzZWQgaWYgbm8gcmV2aXNpb24gbWF0Y2hpbmcgdGhlIGdpdmVuIGZvcm1hdCBpcyBmb3VuZCcsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignYXR0cnMnLCB7XG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIGNob2ljZXM6IFsnbmFtZScsICd2ZXJzaW9uJywgJ3Jvb3QnLCAnc2x1ZyddLFxuICAgICAgICBkZWZhdWx0OiBbXSBhcyBBdHRyaWJ1dGVbXSxcbiAgICAgICAgZ3JvdXA6ICdGb3JtYXQ6JyxcbiAgICAgICAgZGVzYzogJ1NlbGVjdCBwcmludGVkIGF0dHJpYnV0ZXMnXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignaGVhZGVycycsIHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBncm91cDogJ0Zvcm1hdDonLFxuICAgICAgICBkZXNjOiAnUHJpbnRzIGNvbHVtbnMgaGVhZGVycydcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdsb25nJywge1xuICAgICAgICBhbGlhczogJ2wnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGdyb3VwOiAnRm9ybWF0OicsXG4gICAgICAgIGRlc2M6ICdQcmludHMgbmFtZSwgdmVyc2lvbiBhbmQgcm9vdCBvZiBhbGwgd29ya3NwYWNlcycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignanNvbicsIHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBncm91cDogJ0Zvcm1hdDonLFxuICAgICAgICBkZXNjOiAnUHJpbnRzIGRhdGEgYXMgYSBKU09OIGFycmF5JyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW4oYXJnczogQXJndW1lbnRzPExpc3RBcmdzPik6IFByb21pc2U8bnVtYmVyIHwgdm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcblxuICAgIC8vIFNldHVwIHBpcGVsaW5lXG4gICAgY29uc3QgcGlwZWxpbmUgPSBuZXcgUGlwZWxpbmUoKTtcblxuICAgIGlmIChhcmdzLnByaXZhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGlwZWxpbmUuYWRkKEZpbHRlci5wcml2YXRlV29ya3NwYWNlKGFyZ3MucHJpdmF0ZSkpO1xuICAgIH1cblxuICAgIGlmIChhcmdzWyd3aXRoLXNjcmlwdCddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBpcGVsaW5lLmFkZChGaWx0ZXIuc2NyaXB0cyhhcmdzWyd3aXRoLXNjcmlwdCddKSk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3MuYWZmZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGlwZWxpbmUuYWRkKG5ldyBBZmZlY3RlZEZpbHRlcihcbiAgICAgICAgYXJncy5hZmZlY3RlZCxcbiAgICAgICAgYXJnc1snYWZmZWN0ZWQtcmV2LWZhbGxiYWNrJ10sXG4gICAgICAgIGFyZ3NbJ2FmZmVjdGVkLXJldi1zb3J0J11cbiAgICAgICkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlclxuICAgIGNvbnN0IHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdID0gW107XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IHdrcyBvZiBwaXBlbGluZS5maWx0ZXIodGhpcy5wcm9qZWN0LndvcmtzcGFjZXMoKSkpIHtcbiAgICAgIHdvcmtzcGFjZXMucHVzaCh3a3MpO1xuICAgIH1cblxuICAgIHRoaXMuc3Bpbm5lci5zdG9wKCk7XG5cbiAgICAvLyBCdWlsZCBkYXRhXG4gICAgbGV0IGF0dHJzID0gYXJncy5hdHRycztcblxuICAgIGlmIChhcmdzLmF0dHJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKGFyZ3MubG9uZykge1xuICAgICAgICBhdHRycyA9IExPTkdfQVRUUklCVVRFUztcbiAgICAgIH0gZWxzZSBpZiAoYXJncy5qc29uKSB7XG4gICAgICAgIGF0dHJzID0gSlNPTl9BVFRSSUJVVEVTO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXR0cnMgPSBERUZBVUxUX0FUVFJJQlVURVM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IHdvcmtzcGFjZXMubWFwKHdrcyA9PiB0aGlzLmJ1aWxkRXh0cmFjdG9yKGF0dHJzKSh3a3MsIGFyZ3MuanNvbiB8fCBmYWxzZSkpO1xuXG4gICAgLy8gUHJpbnQgZGF0YVxuICAgIGlmIChhcmdzLmpzb24pIHtcbiAgICAgIGlmIChwcm9jZXNzLnN0ZG91dC5pc1RUWSkgeyAvLyBQcmV0dHkgcHJpbnQgZm9yIHR0eXNcbiAgICAgICAgdGhpcy5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsaXN0ID0gbmV3IENsaUxpc3QoKTtcblxuICAgICAgaWYgKGFyZ3MuaGVhZGVycyA/PyAoYXR0cnMubGVuZ3RoID4gMSkpIHtcbiAgICAgICAgbGlzdC5zZXRIZWFkZXJzKGF0dHJzKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBkIG9mIGRhdGEpIHtcbiAgICAgICAgaWYgKGQucm9vdCkge1xuICAgICAgICAgIGQucm9vdCA9IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZC5yb290KSB8fCAnLic7XG4gICAgICAgIH1cblxuICAgICAgICBsaXN0LmFkZChhdHRycy5tYXAoYXR0ciA9PiBkW2F0dHJdIHx8ICcnKSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgZCBvZiBsaXN0LmxpbmVzKCkpIHtcbiAgICAgICAgdGhpcy5sb2coZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59Il0sImZpbGUiOiJjb21tYW5kcy9saXN0LmNvbW1hbmQuanMifQ==
@@ -0,0 +1,13 @@
1
+ import { WorkspaceDepsMode } from '@jujulego/jill-core';
2
+ import { Arguments, Builder } from '../command';
3
+ import { WorkspaceArgs, WorkspaceCommand } from '../workspace.command';
4
+ export interface RunArgs extends WorkspaceArgs {
5
+ script: string;
6
+ 'deps-mode': WorkspaceDepsMode;
7
+ }
8
+ export declare class RunCommand extends WorkspaceCommand<RunArgs> {
9
+ readonly name = "run <script>";
10
+ readonly description = "Run script inside workspace";
11
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & RunArgs>;
12
+ protected run(args: Arguments<RunArgs>): Promise<number>;
13
+ }