@jujulego/jill 1.1.14 → 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 (69) 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 +3 -4
  14. package/dist/filters/filter.js +2 -1
  15. package/dist/filters/index.js +2 -1
  16. package/dist/index.d.ts +4 -9
  17. package/dist/index.js +13 -26
  18. package/dist/logger.d.ts +6 -23
  19. package/dist/logger.js +29 -119
  20. package/dist/main.js +19 -132
  21. package/dist/myr/commands/kill.command.d.ts +11 -0
  22. package/dist/myr/commands/kill.command.js +52 -0
  23. package/dist/myr/commands/list.command.d.ts +18 -0
  24. package/dist/myr/commands/list.command.js +127 -0
  25. package/dist/myr/commands/logs.command.d.ts +11 -0
  26. package/dist/myr/commands/logs.command.js +83 -0
  27. package/dist/myr/commands/spawn.command.d.ts +11 -0
  28. package/dist/myr/commands/spawn.command.js +45 -0
  29. package/dist/myr/commands/stop.command.d.ts +7 -0
  30. package/dist/myr/commands/stop.command.js +43 -0
  31. package/dist/myr/myr-client.d.ts +12 -5
  32. package/dist/myr/myr-client.js +106 -281
  33. package/dist/myr/myr.command.d.ts +8 -0
  34. package/dist/myr/myr.command.js +46 -0
  35. package/dist/myr/myr.process.js +3 -2
  36. package/dist/myr/watch.command.d.ts +13 -0
  37. package/dist/myr/watch.command.js +87 -0
  38. package/dist/pipeline.js +2 -1
  39. package/dist/plugin.d.ts +11 -0
  40. package/dist/plugin.js +40 -0
  41. package/dist/project.command.d.ts +13 -0
  42. package/dist/project.command.js +58 -0
  43. package/dist/task-logger.js +6 -5
  44. package/dist/utils/cli-list.js +2 -1
  45. package/dist/workspace.command.d.ts +12 -0
  46. package/dist/workspace.command.js +55 -0
  47. package/package.json +32 -22
  48. package/dist/commands/each.d.ts +0 -12
  49. package/dist/commands/each.js +0 -74
  50. package/dist/commands/info.d.ts +0 -5
  51. package/dist/commands/info.js +0 -42
  52. package/dist/commands/list.d.ts +0 -15
  53. package/dist/commands/list.js +0 -119
  54. package/dist/commands/run.d.ts +0 -9
  55. package/dist/commands/run.js +0 -43
  56. package/dist/myr/command.d.ts +0 -2
  57. package/dist/myr/command.js +0 -50
  58. package/dist/myr/commands/kill.d.ts +0 -5
  59. package/dist/myr/commands/kill.js +0 -34
  60. package/dist/myr/commands/list.d.ts +0 -10
  61. package/dist/myr/commands/list.js +0 -91
  62. package/dist/myr/commands/spawn.d.ts +0 -7
  63. package/dist/myr/commands/spawn.js +0 -39
  64. package/dist/myr/watch.d.ts +0 -8
  65. package/dist/myr/watch.js +0 -79
  66. package/dist/utils/deps-tree.d.ts +0 -2
  67. package/dist/utils/deps-tree.js +0 -51
  68. package/dist/wrapper.d.ts +0 -9
  69. package/dist/wrapper.js +0 -38
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WatchCommand = void 0;
7
+
8
+ var _jillCore = require("@jujulego/jill-core");
9
+
10
+ var _workspace = require("../workspace.command");
11
+
12
+ var _myrClient = require("./myr-client");
13
+
14
+ 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; }
15
+
16
+ // Command
17
+ class WatchCommand extends _workspace.WorkspaceCommand {
18
+ constructor(...args) {
19
+ super(...args);
20
+
21
+ _defineProperty(this, "name", 'watch <script>');
22
+
23
+ _defineProperty(this, "description", 'Run script with watcher inside workspace and watch over deps');
24
+ }
25
+
26
+ // Methods
27
+ async spawnDepsTree(myr, wks, set) {
28
+ let count = 0;
29
+
30
+ for await (const ws of (0, _jillCore.combine)(wks.dependencies(), wks.devDependencies())) {
31
+ if (set.has(ws.cwd)) continue;
32
+ set.add(ws.cwd); // Spawn dependencies
33
+
34
+ count += await this.spawnDepsTree(myr, ws, set); // Spawn task
35
+
36
+ const tsk = await myr.spawnScript(ws, 'watch');
37
+ this.logger.log('info', `Task ${tsk.id} spawned`, {
38
+ label: ws.name
39
+ });
40
+ count++;
41
+ }
42
+
43
+ return count;
44
+ }
45
+
46
+ define(builder) {
47
+ return super.define(y => builder(y).positional('script', {
48
+ type: 'string',
49
+ demandOption: true
50
+ }).option('daemon', {
51
+ alias: 'd',
52
+ boolean: true,
53
+ default: false,
54
+ desc: 'Run watch script also in background'
55
+ }));
56
+ }
57
+
58
+ async run(args) {
59
+ await super.run(args); // Spawn watch
60
+
61
+ this.spinner.start('Spawning dependencies watch tasks');
62
+ const myr = new _myrClient.MyrClient(this.project);
63
+ const count = await this.spawnDepsTree(myr, this.workspace, new Set()); // Spawn task
64
+
65
+ if (args.daemon) {
66
+ this.spinner.start(`Spawning ${args.script} task`);
67
+ const tsk = await myr.spawnScript(this.workspace, args.script, args['--']?.map(arg => arg.toString()));
68
+ this.logger.log('info', `Task ${tsk.id} spawned`, {
69
+ label: this.workspace.name
70
+ });
71
+ this.spinner.succeed(`${count + 1} watch tasks spawned`);
72
+ return 0;
73
+ } else {
74
+ this.spinner.succeed(`${count} watch tasks spawned`);
75
+ const tsk = await this.workspace.run(args.script, args['--']?.map(arg => arg.toString()), {
76
+ buildDeps: 'none'
77
+ });
78
+ tsk.start();
79
+ await tsk.waitFor('done', 'failed');
80
+ return tsk.exitCode === 0 ? 0 : 1;
81
+ }
82
+ }
83
+
84
+ }
85
+
86
+ exports.WatchCommand = WatchCommand;
87
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci93YXRjaC5jb21tYW5kLnRzIl0sIm5hbWVzIjpbIldhdGNoQ29tbWFuZCIsIldvcmtzcGFjZUNvbW1hbmQiLCJzcGF3bkRlcHNUcmVlIiwibXlyIiwid2tzIiwic2V0IiwiY291bnQiLCJ3cyIsImRlcGVuZGVuY2llcyIsImRldkRlcGVuZGVuY2llcyIsImhhcyIsImN3ZCIsImFkZCIsInRzayIsInNwYXduU2NyaXB0IiwibG9nZ2VyIiwibG9nIiwiaWQiLCJsYWJlbCIsIm5hbWUiLCJkZWZpbmUiLCJidWlsZGVyIiwieSIsInBvc2l0aW9uYWwiLCJ0eXBlIiwiZGVtYW5kT3B0aW9uIiwib3B0aW9uIiwiYWxpYXMiLCJib29sZWFuIiwiZGVmYXVsdCIsImRlc2MiLCJydW4iLCJhcmdzIiwic3Bpbm5lciIsInN0YXJ0IiwiTXlyQ2xpZW50IiwicHJvamVjdCIsIndvcmtzcGFjZSIsIlNldCIsImRhZW1vbiIsInNjcmlwdCIsIm1hcCIsImFyZyIsInRvU3RyaW5nIiwic3VjY2VlZCIsImJ1aWxkRGVwcyIsIndhaXRGb3IiLCJleGl0Q29kZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUdBOztBQUNBOzs7O0FBUUE7QUFDTyxNQUFNQSxZQUFOLFNBQTJCQywyQkFBM0IsQ0FBdUQ7QUFBQTtBQUFBOztBQUFBLGtDQUU1QyxnQkFGNEM7O0FBQUEseUNBR3JDLDhEQUhxQztBQUFBOztBQUs1RDtBQUMyQixRQUFiQyxhQUFhLENBQUNDLEdBQUQsRUFBaUJDLEdBQWpCLEVBQWlDQyxHQUFqQyxFQUFvRTtBQUM3RixRQUFJQyxLQUFLLEdBQUcsQ0FBWjs7QUFFQSxlQUFXLE1BQU1DLEVBQWpCLElBQXVCLHVCQUFRSCxHQUFHLENBQUNJLFlBQUosRUFBUixFQUE0QkosR0FBRyxDQUFDSyxlQUFKLEVBQTVCLENBQXZCLEVBQTJFO0FBQ3pFLFVBQUlKLEdBQUcsQ0FBQ0ssR0FBSixDQUFRSCxFQUFFLENBQUNJLEdBQVgsQ0FBSixFQUFxQjtBQUNyQk4sTUFB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Q0FBQ3FCLEtBQUo7QUFFQSxZQUFNckIsR0FBRyxDQUFDaUMsT0FBSixDQUFZLE1BQVosRUFBb0IsUUFBcEIsQ0FBTjtBQUNBLGFBQU9qQyxHQUFHLENBQUNrQyxRQUFKLEtBQWlCLENBQWpCLEdBQXFCLENBQXJCLEdBQXlCLENBQWhDO0FBQ0Q7QUFDRjs7QUEvRDJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZSwgV29ya3NwYWNlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5cbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uL2NvbW1hbmQnO1xuaW1wb3J0IHsgV29ya3NwYWNlQXJncywgV29ya3NwYWNlQ29tbWFuZCB9IGZyb20gJy4uL3dvcmtzcGFjZS5jb21tYW5kJztcbmltcG9ydCB7IE15ckNsaWVudCB9IGZyb20gJy4vbXlyLWNsaWVudCc7XG5cbi8vIFR5cGVzXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoQXJncyBleHRlbmRzIFdvcmtzcGFjZUFyZ3Mge1xuICBzY3JpcHQ6IHN0cmluZztcbiAgZGFlbW9uOiBib29sZWFuO1xufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgV2F0Y2hDb21tYW5kIGV4dGVuZHMgV29ya3NwYWNlQ29tbWFuZDxXYXRjaEFyZ3M+IHtcbiAgLy8gQXR0cmlidXRlc1xuICByZWFkb25seSBuYW1lID0gJ3dhdGNoIDxzY3JpcHQ+JztcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSAnUnVuIHNjcmlwdCB3aXRoIHdhdGNoZXIgaW5zaWRlIHdvcmtzcGFjZSBhbmQgd2F0Y2ggb3ZlciBkZXBzJztcblxuICAvLyBNZXRob2RzXG4gIHByaXZhdGUgYXN5bmMgc3Bhd25EZXBzVHJlZShteXI6IE15ckNsaWVudCwgd2tzOiBXb3Jrc3BhY2UsIHNldDogU2V0PHN0cmluZz4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IHdzIG9mIGNvbWJpbmUod2tzLmRlcGVuZGVuY2llcygpLCB3a3MuZGV2RGVwZW5kZW5jaWVzKCkpKSB7XG4gICAgICBpZiAoc2V0Lmhhcyh3cy5jd2QpKSBjb250aW51ZTtcbiAgICAgIHNldC5hZGQod3MuY3dkKTtcblxuICAgICAgLy8gU3Bhd24gZGVwZW5kZW5jaWVzXG4gICAgICBjb3VudCArPSBhd2FpdCB0aGlzLnNwYXduRGVwc1RyZWUobXlyLCB3cywgc2V0KTtcblxuICAgICAgLy8gU3Bhd24gdGFza1xuICAgICAgY29uc3QgdHNrID0gYXdhaXQgbXlyLnNwYXduU2NyaXB0KHdzLCAnd2F0Y2gnKTtcbiAgICAgIHRoaXMubG9nZ2VyLmxvZygnaW5mbycsIGBUYXNrICR7dHNrLmlkfSBzcGF3bmVkYCwgeyBsYWJlbDogd3MubmFtZSB9KTtcblxuICAgICAgY291bnQrKztcbiAgICB9XG5cbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBXYXRjaEFyZ3M+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVmaW5lKHkgPT4gYnVpbGRlcih5KVxuICAgICAgLnBvc2l0aW9uYWwoJ3NjcmlwdCcsIHsgdHlwZTogJ3N0cmluZycsIGRlbWFuZE9wdGlvbjogdHJ1ZSB9KVxuICAgICAgLm9wdGlvbignZGFlbW9uJywge1xuICAgICAgICBhbGlhczogJ2QnLFxuICAgICAgICBib29sZWFuOiB0cnVlLFxuICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgZGVzYzogJ1J1biB3YXRjaCBzY3JpcHQgYWxzbyBpbiBiYWNrZ3JvdW5kJ1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bihhcmdzOiBBcmd1bWVudHM8V2F0Y2hBcmdzPik6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgYXdhaXQgc3VwZXIucnVuKGFyZ3MpO1xuXG4gICAgLy8gU3Bhd24gd2F0Y2hcbiAgICB0aGlzLnNwaW5uZXIuc3RhcnQoJ1NwYXduaW5nIGRlcGVuZGVuY2llcyB3YXRjaCB0YXNrcycpO1xuICAgIGNvbnN0IG15ciA9IG5ldyBNeXJDbGllbnQodGhpcy5wcm9qZWN0KTtcbiAgICBjb25zdCBjb3VudCA9IGF3YWl0IHRoaXMuc3Bhd25EZXBzVHJlZShteXIsIHRoaXMud29ya3NwYWNlLCBuZXcgU2V0KCkpO1xuXG4gICAgLy8gU3Bhd24gdGFza1xuICAgIGlmIChhcmdzLmRhZW1vbikge1xuICAgICAgdGhpcy5zcGlubmVyLnN0YXJ0KGBTcGF3bmluZyAke2FyZ3Muc2NyaXB0fSB0YXNrYCk7XG4gICAgICBjb25zdCB0c2sgPSBhd2FpdCBteXIuc3Bhd25TY3JpcHQodGhpcy53b3Jrc3BhY2UsIGFyZ3Muc2NyaXB0LCBhcmdzWyctLSddPy5tYXAoYXJnID0+IGFyZy50b1N0cmluZygpKSk7XG4gICAgICB0aGlzLmxvZ2dlci5sb2coJ2luZm8nLCBgVGFzayAke3Rzay5pZH0gc3Bhd25lZGAsIHsgbGFiZWw6IHRoaXMud29ya3NwYWNlLm5hbWUgfSk7XG4gICAgICB0aGlzLnNwaW5uZXIuc3VjY2VlZChgJHtjb3VudCArIDF9IHdhdGNoIHRhc2tzIHNwYXduZWRgKTtcblxuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Bpbm5lci5zdWNjZWVkKGAke2NvdW50fSB3YXRjaCB0YXNrcyBzcGF3bmVkYCk7XG5cbiAgICAgIGNvbnN0IHRzayA9IGF3YWl0IHRoaXMud29ya3NwYWNlLnJ1bihhcmdzLnNjcmlwdCwgYXJnc1snLS0nXT8ubWFwKGFyZyA9PiBhcmcudG9TdHJpbmcoKSksIHsgYnVpbGREZXBzOiAnbm9uZScgfSk7XG4gICAgICB0c2suc3RhcnQoKTtcblxuICAgICAgYXdhaXQgdHNrLndhaXRGb3IoJ2RvbmUnLCAnZmFpbGVkJyk7XG4gICAgICByZXR1cm4gdHNrLmV4aXRDb2RlID09PSAwID8gMCA6IDE7XG4gICAgfVxuICB9XG59Il0sImZpbGUiOiJteXIvd2F0Y2guY29tbWFuZC5qcyJ9
package/dist/pipeline.js CHANGED
@@ -49,4 +49,5 @@ class Pipeline {
49
49
 
50
50
  }
51
51
 
52
- exports.Pipeline = Pipeline;
52
+ exports.Pipeline = Pipeline;
53
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBpcGVsaW5lLnRzIl0sIm5hbWVzIjpbIlBpcGVsaW5lIiwiYWRkIiwiZmlsdGVyIiwiX2ZpbHRlcnMiLCJwdXNoIiwiX3Rlc3QiLCJ3b3Jrc3BhY2UiLCJyZXMiLCJ0ZXN0Iiwid29ya3NwYWNlcyIsIlJlcGVhdGVyIiwic3RvcCIsInByb21zIiwid2tzIiwidGhlbiIsIlByb21pc2UiLCJhbGwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7OztBQUlBO0FBQ08sTUFBTUEsUUFBTixDQUFlO0FBQUE7QUFBQSxzQ0FFUyxFQUZUO0FBQUE7O0FBSXBCO0FBQ0FDLEVBQUFBLEdBQUcsQ0FBQ0MsTUFBRCxFQUF1QjtBQUN4QixTQUFLQyxRQUFMLENBQWNDLElBQWQsQ0FBbUJGLE1BQW5CO0FBQ0Q7O0FBRWtCLFFBQUxHLEtBQUssQ0FBQ0MsU0FBRCxFQUF5QztBQUMxRCxTQUFLLE1BQU1KLE1BQVgsSUFBcUIsS0FBS0MsUUFBMUIsRUFBb0M7QUFDbEMsWUFBTUksR0FBRyxHQUFHLE1BQU1MLE1BQU0sQ0FBQ00sSUFBUCxDQUFZRixTQUFaLENBQWxCOztBQUVBLFVBQUksQ0FBQ0MsR0FBTCxFQUFVO0FBQ1IsZUFBTyxLQUFQO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPLElBQVA7QUFDRDs7QUFFREwsRUFBQUEsTUFBTSxDQUFDTyxVQUFELEVBQTZEO0FBQ2pFLFdBQU8sSUFBSUMsa0JBQUosQ0FBYSxPQUFPTixJQUFQLEVBQWFPLElBQWIsS0FBc0I7QUFDeEMsWUFBTUMsS0FBeUIsR0FBRyxFQUFsQzs7QUFFQSxpQkFBVyxNQUFNQyxHQUFqQixJQUF3QkosVUFBeEIsRUFBb0M7QUFDbENHLFFBQUFBLEtBQUssQ0FBQ1IsSUFBTixDQUFXLEtBQUtDLEtBQUwsQ0FBV1EsR0FBWCxFQUNSQyxJQURRLENBQ0ZQLEdBQUQsSUFBUztBQUNiLGNBQUlBLEdBQUosRUFBU0gsSUFBSSxDQUFDUyxHQUFELENBQUo7QUFDVixTQUhRLENBQVg7QUFLRDs7QUFFRCxZQUFNRSxPQUFPLENBQUNDLEdBQVIsQ0FBWUosS0FBWixDQUFOO0FBQ0FELE1BQUFBLElBQUk7QUFDTCxLQWJNLENBQVA7QUFjRDs7QUFwQ21CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5pbXBvcnQgeyBSZXBlYXRlciB9IGZyb20gJ0ByZXBlYXRlcmpzL3JlcGVhdGVyJztcblxuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXJzJztcblxuLy8gQ2xhc3NcbmV4cG9ydCBjbGFzcyBQaXBlbGluZSB7XG4gIC8vIEF0dHJpYnV0ZXNcbiAgcHJpdmF0ZSBfZmlsdGVyczogRmlsdGVyW10gPSBbXTtcblxuICAvLyBNZXRob2RzXG4gIGFkZChmaWx0ZXI6IEZpbHRlcik6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlcnMucHVzaChmaWx0ZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdGVzdCh3b3Jrc3BhY2U6IFdvcmtzcGFjZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIHRoaXMuX2ZpbHRlcnMpIHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZpbHRlci50ZXN0KHdvcmtzcGFjZSk7XG5cbiAgICAgIGlmICghcmVzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGZpbHRlcih3b3Jrc3BhY2VzOiBBc3luY0dlbmVyYXRvcjxXb3Jrc3BhY2U+KTogUmVwZWF0ZXI8V29ya3NwYWNlPiB7XG4gICAgcmV0dXJuIG5ldyBSZXBlYXRlcihhc3luYyAocHVzaCwgc3RvcCkgPT4ge1xuICAgICAgY29uc3QgcHJvbXM6IFByb21pc2U8dW5rbm93bj5bXSA9IFtdO1xuXG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IHdrcyBvZiB3b3Jrc3BhY2VzKSB7XG4gICAgICAgIHByb21zLnB1c2godGhpcy5fdGVzdCh3a3MpXG4gICAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcykgcHVzaCh3a3MpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21zKTtcbiAgICAgIHN0b3AoKTtcbiAgICB9KTtcbiAgfVxufSJdLCJmaWxlIjoicGlwZWxpbmUuanMifQ==
@@ -0,0 +1,11 @@
1
+ import yargs from 'yargs';
2
+ import { Command } from './command';
3
+ export declare type CommandType = {
4
+ new (): Command;
5
+ };
6
+ export declare abstract class Plugin {
7
+ static createPlugin(name: string, commands: CommandType[]): Plugin;
8
+ setup<T>(yargs: yargs.Argv<T>): yargs.Argv<T>;
9
+ abstract get name(): string;
10
+ abstract get commands(): readonly Command[];
11
+ }
package/dist/plugin.js ADDED
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Plugin = void 0;
7
+
8
+ 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; }
9
+
10
+ // Types
11
+ // Class
12
+ class Plugin {
13
+ // Statics
14
+ static createPlugin(name, commands) {
15
+ return new class extends Plugin {
16
+ constructor(...args) {
17
+ super(...args);
18
+
19
+ _defineProperty(this, "name", name);
20
+
21
+ _defineProperty(this, "commands", commands.map(Cmd => new Cmd()));
22
+ }
23
+
24
+ }();
25
+ } // Methods
26
+
27
+
28
+ setup(yargs) {
29
+ for (const cmd of this.commands) {
30
+ cmd.setup(yargs);
31
+ }
32
+
33
+ return yargs;
34
+ } // Properties
35
+
36
+
37
+ }
38
+
39
+ exports.Plugin = Plugin;
40
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsdWdpbi50cyJdLCJuYW1lcyI6WyJQbHVnaW4iLCJjcmVhdGVQbHVnaW4iLCJuYW1lIiwiY29tbWFuZHMiLCJtYXAiLCJDbWQiLCJzZXR1cCIsInlhcmdzIiwiY21kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFJQTtBQUdBO0FBQ08sTUFBZUEsTUFBZixDQUFzQjtBQUMzQjtBQUNtQixTQUFaQyxZQUFZLENBQUNDLElBQUQsRUFBZUMsUUFBZixFQUFnRDtBQUNqRSxXQUFPLElBQUksY0FBY0gsTUFBZCxDQUFxQjtBQUFBO0FBQUE7O0FBQUEsc0NBQ2RFLElBRGM7O0FBQUEsMENBRVZDLFFBQVEsQ0FBQ0MsR0FBVCxDQUFhQyxHQUFHLElBQUksSUFBSUEsR0FBSixFQUFwQixDQUZVO0FBQUE7O0FBQUEsS0FBekIsRUFBUDtBQUlELEdBUDBCLENBUzNCOzs7QUFDQUMsRUFBQUEsS0FBSyxDQUFJQyxLQUFKLEVBQXlDO0FBQzVDLFNBQUssTUFBTUMsR0FBWCxJQUFrQixLQUFLTCxRQUF2QixFQUFpQztBQUMvQkssTUFBQUEsR0FBRyxDQUFDRixLQUFKLENBQVVDLEtBQVY7QUFDRDs7QUFFRCxXQUFPQSxLQUFQO0FBQ0QsR0FoQjBCLENBa0IzQjs7O0FBbEIyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB5YXJncyBmcm9tICd5YXJncyc7XG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmQnO1xuXG4vLyBUeXBlc1xuZXhwb3J0IHR5cGUgQ29tbWFuZFR5cGUgPSB7IG5ldygpOiBDb21tYW5kIH07XG5cbi8vIENsYXNzXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIHtcbiAgLy8gU3RhdGljc1xuICBzdGF0aWMgY3JlYXRlUGx1Z2luKG5hbWU6IHN0cmluZywgY29tbWFuZHM6IENvbW1hbmRUeXBlW10pOiBQbHVnaW4ge1xuICAgIHJldHVybiBuZXcgY2xhc3MgZXh0ZW5kcyBQbHVnaW4ge1xuICAgICAgcmVhZG9ubHkgbmFtZSA9IG5hbWU7XG4gICAgICByZWFkb25seSBjb21tYW5kcyA9IGNvbW1hbmRzLm1hcChDbWQgPT4gbmV3IENtZCgpKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gTWV0aG9kc1xuICBzZXR1cDxUPih5YXJnczogeWFyZ3MuQXJndjxUPik6IHlhcmdzLkFyZ3Y8VD4ge1xuICAgIGZvciAoY29uc3QgY21kIG9mIHRoaXMuY29tbWFuZHMpIHtcbiAgICAgIGNtZC5zZXR1cCh5YXJncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHlhcmdzO1xuICB9XG5cbiAgLy8gUHJvcGVydGllc1xuICBhYnN0cmFjdCBnZXQgbmFtZSgpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGdldCBjb21tYW5kcygpOiByZWFkb25seSBDb21tYW5kW107XG59Il0sImZpbGUiOiJwbHVnaW4uanMifQ==
@@ -0,0 +1,13 @@
1
+ import { PackageManager, Project } from '@jujulego/jill-core';
2
+ import { Arguments, Builder } from './command';
3
+ import { BaseArgs, BaseCommand } from './base.command';
4
+ export interface ProjectArgs extends BaseArgs {
5
+ project: string | undefined;
6
+ 'package-manager': PackageManager | undefined;
7
+ }
8
+ export declare abstract class ProjectCommand<A extends ProjectArgs = ProjectArgs> extends BaseCommand<A> {
9
+ private _project?;
10
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ProjectArgs>;
11
+ protected run(args: Arguments<A>): Promise<number | void>;
12
+ get project(): Project;
13
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ProjectCommand = void 0;
7
+
8
+ var _jillCore = require("@jujulego/jill-core");
9
+
10
+ var _base = require("./base.command");
11
+
12
+ 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; }
13
+
14
+ // Command
15
+ class ProjectCommand extends _base.BaseCommand {
16
+ constructor(...args) {
17
+ super(...args);
18
+
19
+ _defineProperty(this, "_project", void 0);
20
+ }
21
+
22
+ // Methods
23
+ define(builder) {
24
+ return super.define(y => builder(y).option('project', {
25
+ alias: 'p',
26
+ type: 'string',
27
+ description: 'Project root directory'
28
+ }).option('package-manager', {
29
+ choices: ['yarn', 'npm'],
30
+ default: undefined,
31
+ type: 'string',
32
+ description: 'Force package manager'
33
+ }));
34
+ }
35
+
36
+ async run(args) {
37
+ super.run(args); // Load project
38
+
39
+ this.spinner.start('Loading project');
40
+ const dir = args.project ?? (await _jillCore.Project.searchProjectRoot(process.cwd()));
41
+ this._project = new _jillCore.Project(dir, {
42
+ packageManager: args['package-manager']
43
+ });
44
+ } // Properties
45
+
46
+
47
+ get project() {
48
+ if (!this._project) {
49
+ throw new Error('Project not yet loaded !');
50
+ }
51
+
52
+ return this._project;
53
+ }
54
+
55
+ }
56
+
57
+ exports.ProjectCommand = ProjectCommand;
58
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3QuY29tbWFuZC50cyJdLCJuYW1lcyI6WyJQcm9qZWN0Q29tbWFuZCIsIkJhc2VDb21tYW5kIiwiZGVmaW5lIiwiYnVpbGRlciIsInkiLCJvcHRpb24iLCJhbGlhcyIsInR5cGUiLCJkZXNjcmlwdGlvbiIsImNob2ljZXMiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwicnVuIiwiYXJncyIsInNwaW5uZXIiLCJzdGFydCIsImRpciIsInByb2plY3QiLCJQcm9qZWN0Iiwic2VhcmNoUHJvamVjdFJvb3QiLCJwcm9jZXNzIiwiY3dkIiwiX3Byb2plY3QiLCJwYWNrYWdlTWFuYWdlciIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBR0E7Ozs7QUFRQTtBQUNPLE1BQWVBLGNBQWYsU0FBMkVDLGlCQUEzRSxDQUEwRjtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFJL0Y7QUFDVUMsRUFBQUEsTUFBTSxDQUFPQyxPQUFQLEVBQTREO0FBQzFFLFdBQU8sTUFBTUQsTUFBTixDQUFhRSxDQUFDLElBQUlELE9BQU8sQ0FBQ0MsQ0FBRCxDQUFQLENBQ3RCQyxNQURzQixDQUNmLFNBRGUsRUFDSjtBQUNqQkMsTUFBQUEsS0FBSyxFQUFFLEdBRFU7QUFFakJDLE1BQUFBLElBQUksRUFBRSxRQUZXO0FBR2pCQyxNQUFBQSxXQUFXLEVBQUU7QUFISSxLQURJLEVBTXRCSCxNQU5zQixDQU1mLGlCQU5lLEVBTUk7QUFDekJJLE1BQUFBLE9BQU8sRUFBRSxDQUFDLE1BQUQsRUFBUyxLQUFULENBRGdCO0FBRXpCQyxNQUFBQSxPQUFPLEVBQUVDLFNBRmdCO0FBR3pCSixNQUFBQSxJQUFJLEVBQUUsUUFIbUI7QUFJekJDLE1BQUFBLFdBQVcsRUFBRTtBQUpZLEtBTkosQ0FBbEIsQ0FBUDtBQWFEOztBQUVrQixRQUFISSxHQUFHLENBQUNDLElBQUQsRUFBNkM7QUFDOUQsVUFBTUQsR0FBTixDQUFVQyxJQUFWLEVBRDhELENBRzlEOztBQUNBLFNBQUtDLE9BQUwsQ0FBYUMsS0FBYixDQUFtQixpQkFBbkI7QUFDQSxVQUFNQyxHQUFHLEdBQUdILElBQUksQ0FBQ0ksT0FBTCxLQUFnQixNQUFNQyxrQkFBUUMsaUJBQVIsQ0FBMEJDLE9BQU8sQ0FBQ0MsR0FBUixFQUExQixDQUF0QixDQUFaO0FBRUEsU0FBS0MsUUFBTCxHQUFnQixJQUFJSixpQkFBSixDQUFZRixHQUFaLEVBQWlCO0FBQy9CTyxNQUFBQSxjQUFjLEVBQUVWLElBQUksQ0FBQyxpQkFBRDtBQURXLEtBQWpCLENBQWhCO0FBR0QsR0EvQjhGLENBaUMvRjs7O0FBQ1csTUFBUEksT0FBTyxHQUFZO0FBQ3JCLFFBQUksQ0FBQyxLQUFLSyxRQUFWLEVBQW9CO0FBQ2xCLFlBQU0sSUFBSUUsS0FBSixDQUFVLDBCQUFWLENBQU47QUFDRDs7QUFFRCxXQUFPLEtBQUtGLFFBQVo7QUFDRDs7QUF4QzhGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFja2FnZU1hbmFnZXIsIFByb2plY3QgfSBmcm9tICdAanVqdWxlZ28vamlsbC1jb3JlJztcblxuaW1wb3J0IHsgQXJndW1lbnRzLCBCdWlsZGVyIH0gZnJvbSAnLi9jb21tYW5kJztcbmltcG9ydCB7IEJhc2VBcmdzLCBCYXNlQ29tbWFuZCB9IGZyb20gJy4vYmFzZS5jb21tYW5kJztcblxuLy8gVHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdEFyZ3MgZXh0ZW5kcyBCYXNlQXJncyB7XG4gIHByb2plY3Q6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgJ3BhY2thZ2UtbWFuYWdlcic6IFBhY2thZ2VNYW5hZ2VyIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJvamVjdENvbW1hbmQ8QSBleHRlbmRzIFByb2plY3RBcmdzID0gUHJvamVjdEFyZ3M+IGV4dGVuZHMgQmFzZUNvbW1hbmQ8QT4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHByaXZhdGUgX3Byb2plY3Q/OiBQcm9qZWN0O1xuXG4gIC8vIE1ldGhvZHNcbiAgcHJvdGVjdGVkIGRlZmluZTxULCBVPihidWlsZGVyOiBCdWlsZGVyPFQsIFU+KTogQnVpbGRlcjxULCBVICYgUHJvamVjdEFyZ3M+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVmaW5lKHkgPT4gYnVpbGRlcih5KVxuICAgICAgLm9wdGlvbigncHJvamVjdCcsIHtcbiAgICAgICAgYWxpYXM6ICdwJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUHJvamVjdCByb290IGRpcmVjdG9yeSdcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdwYWNrYWdlLW1hbmFnZXInLCB7XG4gICAgICAgIGNob2ljZXM6IFsneWFybicsICducG0nXSxcbiAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkIGFzIFBhY2thZ2VNYW5hZ2VyIHwgdW5kZWZpbmVkLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGb3JjZSBwYWNrYWdlIG1hbmFnZXInXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcnVuKGFyZ3M6IEFyZ3VtZW50czxBPik6IFByb21pc2U8bnVtYmVyIHwgdm9pZD4ge1xuICAgIHN1cGVyLnJ1bihhcmdzKTtcblxuICAgIC8vIExvYWQgcHJvamVjdFxuICAgIHRoaXMuc3Bpbm5lci5zdGFydCgnTG9hZGluZyBwcm9qZWN0Jyk7XG4gICAgY29uc3QgZGlyID0gYXJncy5wcm9qZWN0ID8/IGF3YWl0IFByb2plY3Quc2VhcmNoUHJvamVjdFJvb3QocHJvY2Vzcy5jd2QoKSk7XG5cbiAgICB0aGlzLl9wcm9qZWN0ID0gbmV3IFByb2plY3QoZGlyLCB7XG4gICAgICBwYWNrYWdlTWFuYWdlcjogYXJnc1sncGFja2FnZS1tYW5hZ2VyJ11cbiAgICB9KTtcbiAgfVxuXG4gIC8vIFByb3BlcnRpZXNcbiAgZ2V0IHByb2plY3QoKTogUHJvamVjdCB7XG4gICAgaWYgKCF0aGlzLl9wcm9qZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb2plY3Qgbm90IHlldCBsb2FkZWQgIScpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wcm9qZWN0O1xuICB9XG59Il0sImZpbGUiOiJwcm9qZWN0LmNvbW1hbmQuanMifQ==
@@ -25,11 +25,11 @@ class TaskLogger {
25
25
  // Methods
26
26
  _refreshSpinner() {
27
27
  if (this._running.size > 1) {
28
- _logger.logger.spin(this._formats['spin-multiple'](this._running.size));
28
+ _logger.transport.spin(this._formats['spin-multiple'](this._running.size));
29
29
  } else if (this._running.size > 0) {
30
30
  const tsk = this._running.values().next().value;
31
31
 
32
- _logger.logger.spin(this._formats['spin-simple'](tsk));
32
+ _logger.transport.spin(this._formats['spin-simple'](tsk));
33
33
  }
34
34
  }
35
35
 
@@ -43,9 +43,9 @@ class TaskLogger {
43
43
  this._running.delete(task);
44
44
 
45
45
  if (task.status === 'failed') {
46
- _logger.logger.fail(this._formats['fail'](task));
46
+ _logger.transport.fail(this._formats['fail'](task));
47
47
  } else {
48
- _logger.logger.succeed(this._formats['succeed'](task));
48
+ _logger.transport.succeed(this._formats['succeed'](task));
49
49
  }
50
50
 
51
51
  this._refreshSpinner();
@@ -62,4 +62,5 @@ class TaskLogger {
62
62
 
63
63
  }
64
64
 
65
- exports.TaskLogger = TaskLogger;
65
+ exports.TaskLogger = TaskLogger;
66
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhc2stbG9nZ2VyLnRzIl0sIm5hbWVzIjpbIlRhc2tMb2dnZXIiLCJTZXQiLCJjb3VudCIsInRzayIsImNvbnRleHQiLCJ3b3Jrc3BhY2UiLCJuYW1lIiwiX3JlZnJlc2hTcGlubmVyIiwiX3J1bm5pbmciLCJzaXplIiwidHJhbnNwb3J0Iiwic3BpbiIsIl9mb3JtYXRzIiwidmFsdWVzIiwibmV4dCIsInZhbHVlIiwiX2hhbmRsZVN0YXJ0ZWQiLCJ0YXNrIiwiYWRkIiwiX2hhbmRsZUNvbXBsZXRlZCIsImRlbGV0ZSIsInN0YXR1cyIsImZhaWwiLCJzdWNjZWVkIiwiY29ubmVjdCIsInNldCIsIm9uIiwic3RhdGUiLCJmb3JtYXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7OztBQUtBO0FBQ08sTUFBTUEsVUFBTixDQUFpQjtBQUFBO0FBQUEsc0NBRU0sSUFBSUMsR0FBSixFQUZOOztBQUFBLHNDQUdNO0FBQzFCLHVCQUFrQkMsS0FBRCxJQUFvQixZQUFXQSxLQUFNLGlCQUQ1QjtBQUUxQixxQkFBZ0JDLEdBQUQsSUFBZ0IsWUFBV0EsR0FBRyxDQUFDQyxPQUFKLENBQVlDLFNBQVosRUFBdUJDLElBQUssTUFGNUM7QUFHMUIsY0FBU0gsR0FBRCxJQUFnQixtQkFBa0JBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZQyxTQUFaLEVBQXVCQyxJQUFLLEVBSDVDO0FBSTFCLGlCQUFZSCxHQUFELElBQWdCLEdBQUVBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZQyxTQUFaLEVBQXVCQyxJQUFLO0FBSi9CLEtBSE47QUFBQTs7QUFVdEI7QUFDUUMsRUFBQUEsZUFBZSxHQUFHO0FBQ3hCLFFBQUksS0FBS0MsUUFBTCxDQUFjQyxJQUFkLEdBQXFCLENBQXpCLEVBQTRCO0FBQzFCQyx3QkFBVUMsSUFBVixDQUFlLEtBQUtDLFFBQUwsQ0FBYyxlQUFkLEVBQStCLEtBQUtKLFFBQUwsQ0FBY0MsSUFBN0MsQ0FBZjtBQUNELEtBRkQsTUFFTyxJQUFJLEtBQUtELFFBQUwsQ0FBY0MsSUFBZCxHQUFxQixDQUF6QixFQUE0QjtBQUNqQyxZQUFNTixHQUFHLEdBQUcsS0FBS0ssUUFBTCxDQUFjSyxNQUFkLEdBQXVCQyxJQUF2QixHQUE4QkMsS0FBMUM7O0FBQ0FMLHdCQUFVQyxJQUFWLENBQWUsS0FBS0MsUUFBTCxDQUFjLGFBQWQsRUFBNkJULEdBQTdCLENBQWY7QUFDRDtBQUNGOztBQUVPYSxFQUFBQSxjQUFjLENBQUNDLElBQUQsRUFBYTtBQUNqQyxTQUFLVCxRQUFMLENBQWNVLEdBQWQsQ0FBa0JELElBQWxCOztBQUVBLFNBQUtWLGVBQUw7QUFDRDs7QUFFT1ksRUFBQUEsZ0JBQWdCLENBQUNGLElBQUQsRUFBYTtBQUNuQyxTQUFLVCxRQUFMLENBQWNZLE1BQWQsQ0FBcUJILElBQXJCOztBQUVBLFFBQUlBLElBQUksQ0FBQ0ksTUFBTCxLQUFnQixRQUFwQixFQUE4QjtBQUM1Qlgsd0JBQVVZLElBQVYsQ0FBZSxLQUFLVixRQUFMLENBQWMsTUFBZCxFQUFzQkssSUFBdEIsQ0FBZjtBQUNELEtBRkQsTUFFTztBQUNMUCx3QkFBVWEsT0FBVixDQUFrQixLQUFLWCxRQUFMLENBQWMsU0FBZCxFQUF5QkssSUFBekIsQ0FBbEI7QUFDRDs7QUFFRCxTQUFLVixlQUFMO0FBQ0Q7O0FBRURpQixFQUFBQSxPQUFPLENBQUNDLEdBQUQsRUFBcUI7QUFDMUJBLElBQUFBLEdBQUcsQ0FBQ0MsRUFBSixDQUFPLFNBQVAsRUFBbUJULElBQUQsSUFBVSxLQUFLRCxjQUFMLENBQW9CQyxJQUFwQixDQUE1QjtBQUNBUSxJQUFBQSxHQUFHLENBQUNDLEVBQUosQ0FBTyxXQUFQLEVBQXFCVCxJQUFELElBQVUsS0FBS0UsZ0JBQUwsQ0FBc0JGLElBQXRCLENBQTlCO0FBQ0Q7O0FBTURTLEVBQUFBLEVBQUUsQ0FBQ0MsS0FBRCxFQUF5QkMsTUFBekIsRUFBK0Q7QUFDL0QsU0FBS2hCLFFBQUwsQ0FBY2UsS0FBZCxJQUF1QkMsTUFBdkI7QUFDRDs7QUFqRHFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFzaywgVGFza1NldCB9IGZyb20gJ0BqdWp1bGVnby9qaWxsLWNvcmUnO1xuXG5pbXBvcnQgeyB0cmFuc3BvcnQgfSBmcm9tICcuL2xvZ2dlcic7XG5cbi8vIFR5cGVzXG5leHBvcnQgdHlwZSBUYXNrTG9nZ2VyU3RhdGUgPSAnc3Bpbi1tdWx0aXBsZScgfCAnc3Bpbi1zaW1wbGUnIHwgJ2ZhaWwnIHwgJ3N1Y2NlZWQnO1xuXG4vLyBDbGFzc1xuZXhwb3J0IGNsYXNzIFRhc2tMb2dnZXIge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHByaXZhdGUgcmVhZG9ubHkgX3J1bm5pbmcgPSBuZXcgU2V0PFRhc2s+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1hdHMgPSB7XG4gICAgJ3NwaW4tbXVsdGlwbGUnOiAoY291bnQ6IG51bWJlcikgPT4gYEJ1aWxkaW5nICR7Y291bnR9IHdvcmtzcGFjZXMgLi4uYCxcbiAgICAnc3Bpbi1zaW1wbGUnOiAodHNrOiBUYXNrKSA9PiBgQnVpbGRpbmcgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9IC4uLmAsXG4gICAgJ2ZhaWwnOiAodHNrOiBUYXNrKSA9PiBgRmFpbGVkIHRvIGJ1aWxkICR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfWAsXG4gICAgJ3N1Y2NlZWQnOiAodHNrOiBUYXNrKSA9PiBgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9IGJ1aWx0YCxcbiAgfTtcblxuICAvLyBNZXRob2RzXG4gIHByaXZhdGUgX3JlZnJlc2hTcGlubmVyKCkge1xuICAgIGlmICh0aGlzLl9ydW5uaW5nLnNpemUgPiAxKSB7XG4gICAgICB0cmFuc3BvcnQuc3Bpbih0aGlzLl9mb3JtYXRzWydzcGluLW11bHRpcGxlJ10odGhpcy5fcnVubmluZy5zaXplKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9ydW5uaW5nLnNpemUgPiAwKSB7XG4gICAgICBjb25zdCB0c2sgPSB0aGlzLl9ydW5uaW5nLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcbiAgICAgIHRyYW5zcG9ydC5zcGluKHRoaXMuX2Zvcm1hdHNbJ3NwaW4tc2ltcGxlJ10odHNrKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU3RhcnRlZCh0YXNrOiBUYXNrKSB7XG4gICAgdGhpcy5fcnVubmluZy5hZGQodGFzayk7XG5cbiAgICB0aGlzLl9yZWZyZXNoU3Bpbm5lcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ29tcGxldGVkKHRhc2s6IFRhc2spIHtcbiAgICB0aGlzLl9ydW5uaW5nLmRlbGV0ZSh0YXNrKTtcblxuICAgIGlmICh0YXNrLnN0YXR1cyA9PT0gJ2ZhaWxlZCcpIHtcbiAgICAgIHRyYW5zcG9ydC5mYWlsKHRoaXMuX2Zvcm1hdHNbJ2ZhaWwnXSh0YXNrKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYW5zcG9ydC5zdWNjZWVkKHRoaXMuX2Zvcm1hdHNbJ3N1Y2NlZWQnXSh0YXNrKSk7XG4gICAgfVxuXG4gICAgdGhpcy5fcmVmcmVzaFNwaW5uZXIoKTtcbiAgfVxuXG4gIGNvbm5lY3Qoc2V0OiBUYXNrU2V0KTogdm9pZCB7XG4gICAgc2V0Lm9uKCdzdGFydGVkJywgKHRhc2spID0+IHRoaXMuX2hhbmRsZVN0YXJ0ZWQodGFzaykpO1xuICAgIHNldC5vbignY29tcGxldGVkJywgKHRhc2spID0+IHRoaXMuX2hhbmRsZUNvbXBsZXRlZCh0YXNrKSk7XG4gIH1cblxuICBvbihzdGF0ZTogJ3NwaW4tbXVsdGlwbGUnLCBmb3JtYXQ6IChjb3VudDogbnVtYmVyKSA9PiBzdHJpbmcpOiB2b2lkO1xuICBvbihzdGF0ZTogJ3NwaW4tc2ltcGxlJywgZm9ybWF0OiAodHNrOiBUYXNrKSA9PiBzdHJpbmcpOiB2b2lkO1xuICBvbihzdGF0ZTogJ2ZhaWwnLCBmb3JtYXQ6ICh0c2s6IFRhc2spID0+IHN0cmluZyk6IHZvaWQ7XG4gIG9uKHN0YXRlOiAnc3VjY2VlZCcsIGZvcm1hdDogKHRzazogVGFzaykgPT4gc3RyaW5nKTogdm9pZDtcbiAgb24oc3RhdGU6IFRhc2tMb2dnZXJTdGF0ZSwgZm9ybWF0OiAoYXJnOiBuZXZlcikgPT4gc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybWF0c1tzdGF0ZV0gPSBmb3JtYXQ7XG4gIH1cbn1cbiJdLCJmaWxlIjoidGFzay1sb2dnZXIuanMifQ==
@@ -83,4 +83,5 @@ class CliList {
83
83
 
84
84
  }
85
85
 
86
- exports.CliList = CliList;
86
+ exports.CliList = CliList;
87
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL2NsaS1saXN0LnRzIl0sIm5hbWVzIjpbIkNsaUxpc3QiLCJfY2FwaXRhbGl6ZSIsInR4dCIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic3Vic3RyaW5nIiwidG9Mb3dlckNhc2UiLCJfbGVuZ3RoIiwicmVwbGFjZSIsImxlbmd0aCIsIl91cGRhdGVDb2x1bW5zIiwiZGF0YSIsIl9jb2x1bW5zIiwicHVzaCIsImkiLCJNYXRoIiwibWF4IiwiX2Zvcm1hdFZhbHVlIiwidmFsdWUiLCJpZHgiLCJyZXBlYXQiLCJzZXRIZWFkZXJzIiwiaGVhZGVycyIsIl9oZWFkZXJzIiwibWFwIiwiYWRkIiwiX2RhdGEiLCJsaW5lcyIsInYiLCJjaGFsayIsImJvbGQiLCJqb2luIiwiY29sdW1ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7Ozs7QUFFQTtBQUNPLE1BQU1BLE9BQU4sQ0FBYztBQUFBO0FBQUE7O0FBQUEsbUNBR2tCLEVBSGxCOztBQUFBLHNDQUltQixFQUpuQjtBQUFBOztBQU1uQjtBQUMwQixTQUFYQyxXQUFXLENBQUNDLEdBQUQsRUFBc0I7QUFDOUMsV0FBT0EsR0FBRyxDQUFDQyxNQUFKLENBQVcsQ0FBWCxFQUFjQyxXQUFkLEtBQThCRixHQUFHLENBQUNHLFNBQUosQ0FBYyxDQUFkLEVBQWlCQyxXQUFqQixFQUFyQztBQUNEOztBQUVxQixTQUFQQyxPQUFPLENBQUNMLEdBQUQsRUFBc0I7QUFDMUMsV0FBT0EsR0FBRyxDQUFDTSxPQUFKLENBQVksZUFBWixFQUE2QixFQUE3QixFQUFpQ0MsTUFBeEM7QUFDRDs7QUFFT0MsRUFBQUEsY0FBYyxDQUFDQyxJQUFELEVBQXVCO0FBQzNDO0FBQ0EsV0FBT0EsSUFBSSxDQUFDRixNQUFMLEdBQWMsS0FBS0csUUFBTCxDQUFjSCxNQUFuQyxFQUEyQztBQUN6QyxXQUFLRyxRQUFMLENBQWNDLElBQWQsQ0FBbUIsQ0FBbkI7QUFDRCxLQUowQyxDQU0zQzs7O0FBQ0EsU0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSCxJQUFJLENBQUNGLE1BQXpCLEVBQWlDLEVBQUVLLENBQW5DLEVBQXNDO0FBQ3BDLFdBQUtGLFFBQUwsQ0FBY0UsQ0FBZCxJQUFtQkMsSUFBSSxDQUFDQyxHQUFMLENBQVMsS0FBS0osUUFBTCxDQUFjRSxDQUFkLENBQVQsRUFBMkJkLE9BQU8sQ0FBQ08sT0FBUixDQUFnQkksSUFBSSxDQUFDRyxDQUFELENBQXBCLENBQTNCLENBQW5CO0FBQ0Q7QUFDRjs7QUFFT0csRUFBQUEsWUFBWSxDQUFDQyxLQUFELEVBQWdCQyxHQUFoQixFQUFxQztBQUN2RCxXQUFPRCxLQUFLLEdBQUcsSUFBSUUsTUFBSixDQUFXLEtBQUtSLFFBQUwsQ0FBY08sR0FBZCxJQUFxQm5CLE9BQU8sQ0FBQ08sT0FBUixDQUFnQlcsS0FBaEIsQ0FBaEMsQ0FBZjtBQUNEOztBQUVERyxFQUFBQSxVQUFVLENBQUNDLE9BQUQsRUFBMEI7QUFDbEMsU0FBS1osY0FBTCxDQUFvQlksT0FBcEI7O0FBQ0EsU0FBS0MsUUFBTCxHQUFnQkQsT0FBTyxDQUFDRSxHQUFSLENBQVl4QixPQUFPLENBQUNDLFdBQXBCLENBQWhCO0FBQ0Q7O0FBRUR3QixFQUFBQSxHQUFHLENBQUNkLElBQUQsRUFBdUI7QUFDeEIsU0FBS0QsY0FBTCxDQUFvQkMsSUFBcEI7O0FBQ0EsU0FBS2UsS0FBTCxDQUFXYixJQUFYLENBQWdCRixJQUFoQjtBQUNEOztBQUVLLEdBQUxnQixLQUFLLEdBQTRCO0FBQ2hDLFFBQUksS0FBS0osUUFBVCxFQUFtQjtBQUNqQixZQUFNLEtBQUtBLFFBQUwsQ0FBY0MsR0FBZCxDQUFrQixDQUFDSSxDQUFELEVBQUlkLENBQUosS0FBVWUsZUFBTUMsSUFBTixDQUFXLEtBQUtiLFlBQUwsQ0FBa0JXLENBQWxCLEVBQXFCZCxDQUFyQixDQUFYLENBQTVCLEVBQ0RpQixJQURDLENBQ0ksSUFESixDQUFOO0FBRUQ7O0FBRUQsU0FBSyxNQUFNcEIsSUFBWCxJQUFtQixLQUFLZSxLQUF4QixFQUErQjtBQUM3QixZQUFNZixJQUFJLENBQUNhLEdBQUwsQ0FBUyxDQUFDSSxDQUFELEVBQUlkLENBQUosS0FBVSxLQUFLRyxZQUFMLENBQWtCVyxDQUFsQixFQUFxQmQsQ0FBckIsQ0FBbkIsRUFDSGlCLElBREcsQ0FDRSxJQURGLENBQU47QUFFRDtBQUNGLEdBbkRrQixDQXFEbkI7OztBQUNXLE1BQVBDLE9BQU8sR0FBYTtBQUN0QixXQUFPLEtBQUtwQixRQUFaO0FBQ0Q7O0FBRVUsTUFBUFUsT0FBTyxHQUFhO0FBQ3RCLFdBQU8sS0FBS0MsUUFBTCxJQUFpQixFQUF4QjtBQUNEOztBQUVPLE1BQUpaLElBQUksR0FBZTtBQUNyQixXQUFPLEtBQUtlLEtBQVo7QUFDRDs7QUFoRWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcblxuLy8gQ2xhc3NcbmV4cG9ydCBjbGFzcyBDbGlMaXN0IHtcbiAgLy8gQXR0cmlidXRlc1xuICBwcml2YXRlIF9oZWFkZXJzPzogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGE6IHN0cmluZ1tdW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uczogbnVtYmVyW10gPSBbXTtcblxuICAvLyBNZXRob2RzXG4gIHByaXZhdGUgc3RhdGljIF9jYXBpdGFsaXplKHR4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdHh0LnN1YnN0cmluZygxKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2xlbmd0aCh0eHQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHR4dC5yZXBsYWNlKC9cXDAzM1xcW1tebV0qbS9nLCAnJykubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ29sdW1ucyhkYXRhOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIC8vIEFkZCBtaXNzaW5nIGNvbHVtbnNcbiAgICB3aGlsZSAoZGF0YS5sZW5ndGggPiB0aGlzLl9jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKDApO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBjb2x1bW5zXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKSB7XG4gICAgICB0aGlzLl9jb2x1bW5zW2ldID0gTWF0aC5tYXgodGhpcy5fY29sdW1uc1tpXSwgQ2xpTGlzdC5fbGVuZ3RoKGRhdGFbaV0pKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9mb3JtYXRWYWx1ZSh2YWx1ZTogc3RyaW5nLCBpZHg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlICsgJyAnLnJlcGVhdCh0aGlzLl9jb2x1bW5zW2lkeF0gLSBDbGlMaXN0Ll9sZW5ndGgodmFsdWUpKTtcbiAgfVxuICBcbiAgc2V0SGVhZGVycyhoZWFkZXJzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZUNvbHVtbnMoaGVhZGVycyk7XG4gICAgdGhpcy5faGVhZGVycyA9IGhlYWRlcnMubWFwKENsaUxpc3QuX2NhcGl0YWxpemUpO1xuICB9XG4gIFxuICBhZGQoZGF0YTogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVDb2x1bW5zKGRhdGEpO1xuICAgIHRoaXMuX2RhdGEucHVzaChkYXRhKTtcbiAgfVxuXG4gICpsaW5lcygpOiBHZW5lcmF0b3I8c3RyaW5nLCB2b2lkPiB7XG4gICAgaWYgKHRoaXMuX2hlYWRlcnMpIHtcbiAgICAgIHlpZWxkIHRoaXMuX2hlYWRlcnMubWFwKCh2LCBpKSA9PiBjaGFsay5ib2xkKHRoaXMuX2Zvcm1hdFZhbHVlKHYsIGkpKSlcbiAgICAgICAgICAuam9pbignICAnKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRhdGEgb2YgdGhpcy5fZGF0YSkge1xuICAgICAgeWllbGQgZGF0YS5tYXAoKHYsIGkpID0+IHRoaXMuX2Zvcm1hdFZhbHVlKHYsIGkpKVxuICAgICAgICAuam9pbignICAnKTtcbiAgICB9XG4gIH1cblxuICAvLyBQcm9wZXJ0aWVzXG4gIGdldCBjb2x1bW5zKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgfVxuXG4gIGdldCBoZWFkZXJzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5faGVhZGVycyB8fCBbXTtcbiAgfVxuXG4gIGdldCBkYXRhKCk6IHN0cmluZ1tdW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG59Il0sImZpbGUiOiJ1dGlscy9jbGktbGlzdC5qcyJ9
@@ -0,0 +1,12 @@
1
+ import { Workspace } from '@jujulego/jill-core';
2
+ import { Arguments, Builder } from './command';
3
+ import { ProjectArgs, ProjectCommand } from './project.command';
4
+ export interface WorkspaceArgs extends ProjectArgs {
5
+ workspace: string | undefined;
6
+ }
7
+ export declare abstract class WorkspaceCommand<A extends WorkspaceArgs = WorkspaceArgs> extends ProjectCommand<WorkspaceArgs> {
8
+ private _workspace?;
9
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & WorkspaceArgs>;
10
+ protected run(args: Arguments<A>): Promise<number | void>;
11
+ get workspace(): Workspace;
12
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WorkspaceCommand = void 0;
7
+
8
+ var _command = require("./command");
9
+
10
+ var _project = require("./project.command");
11
+
12
+ 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; }
13
+
14
+ // Command
15
+ class WorkspaceCommand extends _project.ProjectCommand {
16
+ constructor(...args) {
17
+ super(...args);
18
+
19
+ _defineProperty(this, "_workspace", void 0);
20
+ }
21
+
22
+ // Methods
23
+ define(builder) {
24
+ return super.define(y => builder(y).option('workspace', {
25
+ alias: 'w',
26
+ type: 'string',
27
+ desc: 'Workspace to use'
28
+ }));
29
+ }
30
+
31
+ async run(args) {
32
+ await super.run(args); // Load workspace
33
+
34
+ this.spinner.start(`Loading "${args.workspace || '.'}" workspace`);
35
+ this._workspace = await (args.workspace ? this.project.workspace(args.workspace) : this.project.currentWorkspace());
36
+
37
+ if (!this._workspace) {
38
+ this.spinner.fail(`Workspace "${args.workspace || '.'}" not found`);
39
+ throw new _command.Exit(1);
40
+ }
41
+ } // Properties
42
+
43
+
44
+ get workspace() {
45
+ if (!this._workspace) {
46
+ throw new Error('Workspace not yet loaded !');
47
+ }
48
+
49
+ return this._workspace;
50
+ }
51
+
52
+ }
53
+
54
+ exports.WorkspaceCommand = WorkspaceCommand;
55
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndvcmtzcGFjZS5jb21tYW5kLnRzIl0sIm5hbWVzIjpbIldvcmtzcGFjZUNvbW1hbmQiLCJQcm9qZWN0Q29tbWFuZCIsImRlZmluZSIsImJ1aWxkZXIiLCJ5Iiwib3B0aW9uIiwiYWxpYXMiLCJ0eXBlIiwiZGVzYyIsInJ1biIsImFyZ3MiLCJzcGlubmVyIiwic3RhcnQiLCJ3b3Jrc3BhY2UiLCJfd29ya3NwYWNlIiwicHJvamVjdCIsImN1cnJlbnRXb3Jrc3BhY2UiLCJmYWlsIiwiRXhpdCIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBQ0E7Ozs7QUFPQTtBQUNPLE1BQWVBLGdCQUFmLFNBQWlGQyx1QkFBakYsQ0FBK0c7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBSXBIO0FBQ1VDLEVBQUFBLE1BQU0sQ0FBT0MsT0FBUCxFQUE4RDtBQUM1RSxXQUFPLE1BQU1ELE1BQU4sQ0FBYUUsQ0FBQyxJQUFJRCxPQUFPLENBQUNDLENBQUQsQ0FBUCxDQUN0QkMsTUFEc0IsQ0FDZixXQURlLEVBQ0Y7QUFDbkJDLE1BQUFBLEtBQUssRUFBRSxHQURZO0FBRW5CQyxNQUFBQSxJQUFJLEVBQUUsUUFGYTtBQUduQkMsTUFBQUEsSUFBSSxFQUFFO0FBSGEsS0FERSxDQUFsQixDQUFQO0FBT0Q7O0FBRWtCLFFBQUhDLEdBQUcsQ0FBQ0MsSUFBRCxFQUE2QztBQUM5RCxVQUFNLE1BQU1ELEdBQU4sQ0FBVUMsSUFBVixDQUFOLENBRDhELENBRzlEOztBQUNBLFNBQUtDLE9BQUwsQ0FBYUMsS0FBYixDQUFvQixZQUFXRixJQUFJLENBQUNHLFNBQUwsSUFBa0IsR0FBSSxhQUFyRDtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsT0FBT0osSUFBSSxDQUFDRyxTQUFMLEdBQWlCLEtBQUtFLE9BQUwsQ0FBYUYsU0FBYixDQUF1QkgsSUFBSSxDQUFDRyxTQUE1QixDQUFqQixHQUEwRCxLQUFLRSxPQUFMLENBQWFDLGdCQUFiLEVBQWpFLENBQWxCOztBQUVBLFFBQUksQ0FBQyxLQUFLRixVQUFWLEVBQXNCO0FBQ3BCLFdBQUtILE9BQUwsQ0FBYU0sSUFBYixDQUFtQixjQUFhUCxJQUFJLENBQUNHLFNBQUwsSUFBa0IsR0FBSSxhQUF0RDtBQUNBLFlBQU0sSUFBSUssYUFBSixDQUFTLENBQVQsQ0FBTjtBQUNEO0FBQ0YsR0ExQm1ILENBNEJwSDs7O0FBQ2EsTUFBVEwsU0FBUyxHQUFjO0FBQ3pCLFFBQUksQ0FBQyxLQUFLQyxVQUFWLEVBQXNCO0FBQ3BCLFlBQU0sSUFBSUssS0FBSixDQUFVLDRCQUFWLENBQU47QUFDRDs7QUFFRCxXQUFPLEtBQUtMLFVBQVo7QUFDRDs7QUFuQ21IIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5cbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciwgRXhpdCB9IGZyb20gJy4vY29tbWFuZCc7XG5pbXBvcnQgeyBQcm9qZWN0QXJncywgUHJvamVjdENvbW1hbmQgfSBmcm9tICcuL3Byb2plY3QuY29tbWFuZCc7XG5cbi8vIFR5cGVzXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZUFyZ3MgZXh0ZW5kcyBQcm9qZWN0QXJncyB7XG4gIHdvcmtzcGFjZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya3NwYWNlQ29tbWFuZDxBIGV4dGVuZHMgV29ya3NwYWNlQXJncyA9IFdvcmtzcGFjZUFyZ3M+IGV4dGVuZHMgUHJvamVjdENvbW1hbmQ8V29ya3NwYWNlQXJncz4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHByaXZhdGUgX3dvcmtzcGFjZT86IFdvcmtzcGFjZSB8IG51bGw7XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBXb3Jrc3BhY2VBcmdzPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlZmluZSh5ID0+IGJ1aWxkZXIoeSlcbiAgICAgIC5vcHRpb24oJ3dvcmtzcGFjZScsIHtcbiAgICAgICAgYWxpYXM6ICd3JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlc2M6ICdXb3Jrc3BhY2UgdG8gdXNlJ1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bihhcmdzOiBBcmd1bWVudHM8QT4pOiBQcm9taXNlPG51bWJlciB8IHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5ydW4oYXJncyk7XG5cbiAgICAvLyBMb2FkIHdvcmtzcGFjZVxuICAgIHRoaXMuc3Bpbm5lci5zdGFydChgTG9hZGluZyBcIiR7YXJncy53b3Jrc3BhY2UgfHwgJy4nfVwiIHdvcmtzcGFjZWApO1xuICAgIHRoaXMuX3dvcmtzcGFjZSA9IGF3YWl0IChhcmdzLndvcmtzcGFjZSA/IHRoaXMucHJvamVjdC53b3Jrc3BhY2UoYXJncy53b3Jrc3BhY2UpIDogdGhpcy5wcm9qZWN0LmN1cnJlbnRXb3Jrc3BhY2UoKSk7XG5cbiAgICBpZiAoIXRoaXMuX3dvcmtzcGFjZSkge1xuICAgICAgdGhpcy5zcGlubmVyLmZhaWwoYFdvcmtzcGFjZSBcIiR7YXJncy53b3Jrc3BhY2UgfHwgJy4nfVwiIG5vdCBmb3VuZGApO1xuICAgICAgdGhyb3cgbmV3IEV4aXQoMSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJvcGVydGllc1xuICBnZXQgd29ya3NwYWNlKCk6IFdvcmtzcGFjZSB7XG4gICAgaWYgKCF0aGlzLl93b3Jrc3BhY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignV29ya3NwYWNlIG5vdCB5ZXQgbG9hZGVkICEnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fd29ya3NwYWNlO1xuICB9XG59Il0sImZpbGUiOiJ3b3Jrc3BhY2UuY29tbWFuZC5qcyJ9
package/package.json CHANGED
@@ -1,14 +1,18 @@
1
1
  {
2
2
  "name": "@jujulego/jill",
3
- "version": "1.1.14",
3
+ "version": "1.1.18",
4
4
  "license": "MIT",
5
- "bin": "./bin/jill.js",
6
- "main": "./dist/main.js",
7
5
  "repository": {
8
6
  "type": "git",
9
7
  "url": "https://github.com/Jujulego/jill",
10
8
  "directory": "packages/cli"
11
9
  },
10
+ "bin": "./bin/jill.js",
11
+ "main": "./dist/main.js",
12
+ "files": [
13
+ "bin",
14
+ "dist"
15
+ ],
12
16
  "scripts": {
13
17
  "lint": "eslint {src,tests}/**/*.*",
14
18
  "clean": "gulp clean",
@@ -21,43 +25,49 @@
21
25
  "node": "^14"
22
26
  },
23
27
  "dependencies": {
24
- "@jujulego/jill-core": "^1.1.11",
25
- "@jujulego/jill-myr": "^0.0.3",
28
+ "@jujulego/jill-core": "^1.1.12",
29
+ "@jujulego/jill-myr": "^0.1.0",
26
30
  "@repeaterjs/repeater": "^3.0.4",
27
31
  "chalk": "^4.1.1",
28
32
  "graphql": "^15.7.2",
29
33
  "graphql-request": "^3.6.1",
34
+ "graphql-tag": "^2.12.6",
35
+ "graphql-ws": "^5.5.5",
30
36
  "ora": "^5.4.1",
31
37
  "slugify": "^1.6.0",
32
38
  "winston": "^3.3.3",
33
39
  "winston-transport": "^4.4.0",
40
+ "ws": "^8.3.0",
34
41
  "yargs": "^17.0.1"
35
42
  },
36
43
  "devDependencies": {
37
- "@babel/core": "7.16.0",
38
- "@babel/plugin-proposal-class-properties": "7.16.0",
39
- "@babel/preset-env": "7.16.0",
40
- "@babel/preset-typescript": "7.16.0",
41
- "@babel/runtime": "7.16.3",
42
- "@types/jest": "27.0.2",
43
- "@types/node": "14.17.33",
44
- "@types/yargs": "17.0.5",
45
- "@typescript-eslint/eslint-plugin": "5.4.0",
46
- "@typescript-eslint/parser": "5.4.0",
47
- "babel-jest": "27.3.1",
48
- "babel-plugin-macros": "3.1.0",
44
+ "@babel/core": "7.16.5",
45
+ "@babel/plugin-proposal-class-properties": "7.16.5",
46
+ "@babel/preset-env": "7.16.5",
47
+ "@babel/preset-typescript": "7.16.5",
48
+ "@babel/runtime": "7.16.5",
49
+ "@types/gulp": "4.0.9",
50
+ "@types/gulp-babel": "6.1.30",
51
+ "@types/gulp-sourcemaps": "0.0.35",
52
+ "@types/jest": "27.0.3",
53
+ "@types/node": "14.18.1",
54
+ "@types/ws": "8.2.1",
55
+ "@types/yargs": "17.0.7",
56
+ "@typescript-eslint/eslint-plugin": "5.8.0",
57
+ "@typescript-eslint/parser": "5.8.0",
49
58
  "del": "6.0.0",
50
59
  "eslint": "7.32.0",
51
- "eslint-plugin-jest": "25.2.4",
60
+ "eslint-plugin-jest": "25.3.0",
52
61
  "eslint-plugin-workspaces": "0.7.0",
53
- "graphql.macro": "1.4.2",
54
62
  "gulp": "4.0.2",
55
63
  "gulp-babel": "8.0.0",
56
64
  "gulp-cli": "2.3.0",
65
+ "gulp-sourcemaps": "3.0.0",
57
66
  "gulp-typescript": "6.0.0-alpha.1",
58
- "jest": "27.3.1",
59
- "msw": "0.35.0",
67
+ "jest": "27.4.5",
68
+ "msw": "0.36.3",
69
+ "ts-jest": "27.1.1",
60
70
  "ts-node": "10.4.0",
61
- "typescript": "4.4.4"
71
+ "typescript": "4.5.4"
62
72
  }
63
73
  }
@@ -1,12 +0,0 @@
1
- import { WorkspaceDepsMode } from '@jujulego/jill-core';
2
- import { CommandHandler } from '../wrapper';
3
- export interface EachArgs {
4
- script: string;
5
- 'deps-mode': WorkspaceDepsMode;
6
- '--': (string | number)[] | undefined;
7
- private: boolean | undefined;
8
- affected: string | undefined;
9
- 'affected-rev-fallback': string;
10
- 'affected-rev-sort': string | undefined;
11
- }
12
- export declare const eachCommand: CommandHandler<EachArgs>;
@@ -1,74 +0,0 @@
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 _logger = require("../logger");
13
-
14
- var _taskLogger = require("../task-logger");
15
-
16
- var _pipeline = require("../pipeline");
17
-
18
- // Handler
19
- const eachCommand = async (prj, argv) => {
20
- _logger.logger.spin('Loading project'); // Setup pipeline
21
-
22
-
23
- const pipeline = new _pipeline.Pipeline();
24
- pipeline.add(_filters.Filter.scripts([argv.script]));
25
-
26
- if (argv.private !== undefined) {
27
- pipeline.add(_filters.Filter.privateWorkspace(argv.private));
28
- }
29
-
30
- if (argv.affected !== undefined) {
31
- pipeline.add(new _filters.AffectedFilter(argv.affected, argv['affected-rev-fallback'], argv['affected-rev-sort']));
32
- } // Filter
33
-
34
-
35
- const workspaces = [];
36
-
37
- for await (const wks of pipeline.filter(prj.workspaces())) {
38
- workspaces.push(wks);
39
- }
40
-
41
- _logger.logger.stop();
42
-
43
- if (workspaces.length === 0) {
44
- _logger.logger.fail('No workspace found !');
45
-
46
- return 1;
47
- }
48
-
49
- _logger.logger.verbose(`Will run ${argv.script} in ${workspaces.map(wks => wks.name).join(', ')}`); // Run tasks
50
-
51
-
52
- const set = new _jillCore.TaskSet();
53
- const tasks = [];
54
-
55
- for (const wks of workspaces) {
56
- const task = await wks.run(argv.script, argv['--']?.map(arg => arg.toString()), {
57
- buildDeps: argv['deps-mode']
58
- });
59
- tasks.push(task);
60
- set.add(task);
61
- }
62
-
63
- const tlogger = new _taskLogger.TaskLogger();
64
- tlogger.on('spin-multiple', count => `Working in ${count} packages ...`);
65
- tlogger.on('spin-simple', tsk => tasks.includes(tsk) ? `Running ${argv.script} in ${tsk.context.workspace?.name} ...` : `Building ${tsk.context.workspace?.name} ...`);
66
- tlogger.on('fail', tsk => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${argv.script} failed` : `Failed to build ${tsk.context.workspace?.name}`);
67
- tlogger.on('succeed', tsk => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${argv.script} done` : `${tsk.context.workspace?.name} built`);
68
- tlogger.connect(set);
69
- set.start();
70
- const [result] = await set.waitFor('finished');
71
- return result.failed === 0 ? 0 : 1;
72
- };
73
-
74
- exports.eachCommand = eachCommand;
@@ -1,5 +0,0 @@
1
- import { CommandHandler } from '../wrapper';
2
- export interface InfoArgs {
3
- workspace: string | undefined;
4
- }
5
- export declare const infoCommand: CommandHandler<InfoArgs>;
@@ -1,42 +0,0 @@
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 _logger = require("../logger");
13
-
14
- var _depsTree = require("../utils/deps-tree");
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- // Handler
19
- const infoCommand = async (prj, argv) => {
20
- // Get workspace
21
- _logger.logger.spin('Loading project');
22
-
23
- const wks = await (argv.workspace ? prj.workspace(argv.workspace) : prj.currentWorkspace());
24
-
25
- if (!wks) {
26
- _logger.logger.fail(`Workspace ${argv.workspace || '.'} not found`);
27
-
28
- return 1;
29
- }
30
-
31
- _logger.logger.stop(); // Print data
32
-
33
-
34
- console.log((0, _chalk.default)`Workspace {bold ${wks.name}}:`);
35
- console.log((0, _chalk.default)`{bold Version:} ${wks.manifest.version || _chalk.default.grey('unset')}`);
36
- console.log((0, _chalk.default)`{bold Directory:} ${_path.default.relative(process.cwd(), wks.cwd) || '.'}`);
37
- console.log('');
38
- await (0, _depsTree.printDepsTree)(wks);
39
- return 0;
40
- };
41
-
42
- exports.infoCommand = infoCommand;
@@ -1,15 +0,0 @@
1
- import { CommandHandler } from '../wrapper';
2
- export declare type Attribute = 'name' | 'version' | 'root' | 'slug';
3
- export declare type Data = Partial<Record<Attribute, string>>;
4
- export interface ListArgs {
5
- private: boolean | undefined;
6
- 'with-script': string[] | undefined;
7
- affected: string | undefined;
8
- 'affected-rev-fallback': string;
9
- 'affected-rev-sort': string | undefined;
10
- attrs: Attribute[] | undefined;
11
- headers: boolean | undefined;
12
- long: boolean;
13
- json: boolean;
14
- }
15
- export declare const listCommand: CommandHandler<ListArgs>;