@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,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.KillCommand = void 0;
7
+
8
+ var _project = require("../../project.command");
9
+
10
+ var _myrClient = require("../myr-client");
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 KillCommand extends _project.ProjectCommand {
16
+ constructor(...args) {
17
+ super(...args);
18
+
19
+ _defineProperty(this, "name", 'kill <id>');
20
+
21
+ _defineProperty(this, "description", 'Kill task');
22
+ }
23
+
24
+ // Methods
25
+ define(builder) {
26
+ return super.define(y => builder(y).positional('id', {
27
+ type: 'string',
28
+ demandOption: true
29
+ }));
30
+ }
31
+
32
+ async run(args) {
33
+ await super.run(args); // Spawn task
34
+
35
+ this.spinner.start('Connecting to myr');
36
+ const client = new _myrClient.MyrClient(this.project);
37
+ this.spinner.start('Killing task');
38
+ const task = await client.kill(args.id);
39
+
40
+ if (task) {
41
+ this.spinner.succeed(`Task ${task.id} killed`);
42
+ return 0;
43
+ } else {
44
+ this.spinner.fail(`Task ${args.id} not found`);
45
+ return 1;
46
+ }
47
+ }
48
+
49
+ }
50
+
51
+ exports.KillCommand = KillCommand;
52
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9jb21tYW5kcy9raWxsLmNvbW1hbmQudHMiXSwibmFtZXMiOlsiS2lsbENvbW1hbmQiLCJQcm9qZWN0Q29tbWFuZCIsImRlZmluZSIsImJ1aWxkZXIiLCJ5IiwicG9zaXRpb25hbCIsInR5cGUiLCJkZW1hbmRPcHRpb24iLCJydW4iLCJhcmdzIiwic3Bpbm5lciIsInN0YXJ0IiwiY2xpZW50IiwiTXlyQ2xpZW50IiwicHJvamVjdCIsInRhc2siLCJraWxsIiwiaWQiLCJzdWNjZWVkIiwiZmFpbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOzs7O0FBUUE7QUFDTyxNQUFNQSxXQUFOLFNBQTBCQyx1QkFBMUIsQ0FBbUQ7QUFBQTtBQUFBOztBQUFBLGtDQUV4QyxXQUZ3Qzs7QUFBQSx5Q0FHakMsV0FIaUM7QUFBQTs7QUFLeEQ7QUFDVUMsRUFBQUEsTUFBTSxDQUFPQyxPQUFQLEVBQXlEO0FBQ3ZFLFdBQU8sTUFBTUQsTUFBTixDQUFhRSxDQUFDLElBQUlELE9BQU8sQ0FBQ0MsQ0FBRCxDQUFQLENBQ3RCQyxVQURzQixDQUNYLElBRFcsRUFDTDtBQUFFQyxNQUFBQSxJQUFJLEVBQUUsUUFBUjtBQUFrQkMsTUFBQUEsWUFBWSxFQUFFO0FBQWhDLEtBREssQ0FBbEIsQ0FBUDtBQUdEOztBQUVrQixRQUFIQyxHQUFHLENBQUNDLElBQUQsRUFBNkM7QUFDOUQsVUFBTSxNQUFNRCxHQUFOLENBQVVDLElBQVYsQ0FBTixDQUQ4RCxDQUc5RDs7QUFDQSxTQUFLQyxPQUFMLENBQWFDLEtBQWIsQ0FBbUIsbUJBQW5CO0FBQ0EsVUFBTUMsTUFBTSxHQUFHLElBQUlDLG9CQUFKLENBQWMsS0FBS0MsT0FBbkIsQ0FBZjtBQUVBLFNBQUtKLE9BQUwsQ0FBYUMsS0FBYixDQUFtQixjQUFuQjtBQUNBLFVBQU1JLElBQUksR0FBRyxNQUFNSCxNQUFNLENBQUNJLElBQVAsQ0FBWVAsSUFBSSxDQUFDUSxFQUFqQixDQUFuQjs7QUFFQSxRQUFJRixJQUFKLEVBQVU7QUFDUixXQUFLTCxPQUFMLENBQWFRLE9BQWIsQ0FBc0IsUUFBT0gsSUFBSSxDQUFDRSxFQUFHLFNBQXJDO0FBQ0EsYUFBTyxDQUFQO0FBQ0QsS0FIRCxNQUdPO0FBQ0wsV0FBS1AsT0FBTCxDQUFhUyxJQUFiLENBQW1CLFFBQU9WLElBQUksQ0FBQ1EsRUFBRyxZQUFsQztBQUNBLGFBQU8sQ0FBUDtBQUNEO0FBQ0Y7O0FBN0J1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3RBcmdzLCBQcm9qZWN0Q29tbWFuZCB9IGZyb20gJy4uLy4uL3Byb2plY3QuY29tbWFuZCc7XG5pbXBvcnQgeyBNeXJDbGllbnQgfSBmcm9tICcuLi9teXItY2xpZW50JztcbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uLy4uL2NvbW1hbmQnO1xuXG4vLyBUeXBlc1xuZXhwb3J0IGludGVyZmFjZSBLaWxsQXJncyBleHRlbmRzIFByb2plY3RBcmdzIHtcbiAgaWQ6IHN0cmluZztcbn1cblxuLy8gQ29tbWFuZFxuZXhwb3J0IGNsYXNzIEtpbGxDb21tYW5kIGV4dGVuZHMgUHJvamVjdENvbW1hbmQ8S2lsbEFyZ3M+IHtcbiAgLy8gQXR0cmlidXRlc1xuICByZWFkb25seSBuYW1lID0gJ2tpbGwgPGlkPic7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gJ0tpbGwgdGFzayc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBLaWxsQXJncz4ge1xuICAgIHJldHVybiBzdXBlci5kZWZpbmUoeSA9PiBidWlsZGVyKHkpXG4gICAgICAucG9zaXRpb25hbCgnaWQnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bihhcmdzOiBBcmd1bWVudHM8S2lsbEFyZ3M+KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBhd2FpdCBzdXBlci5ydW4oYXJncyk7XG5cbiAgICAvLyBTcGF3biB0YXNrXG4gICAgdGhpcy5zcGlubmVyLnN0YXJ0KCdDb25uZWN0aW5nIHRvIG15cicpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBNeXJDbGllbnQodGhpcy5wcm9qZWN0KTtcblxuICAgIHRoaXMuc3Bpbm5lci5zdGFydCgnS2lsbGluZyB0YXNrJyk7XG4gICAgY29uc3QgdGFzayA9IGF3YWl0IGNsaWVudC5raWxsKGFyZ3MuaWQpO1xuXG4gICAgaWYgKHRhc2spIHtcbiAgICAgIHRoaXMuc3Bpbm5lci5zdWNjZWVkKGBUYXNrICR7dGFzay5pZH0ga2lsbGVkYCk7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGlubmVyLmZhaWwoYFRhc2sgJHthcmdzLmlkfSBub3QgZm91bmRgKTtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxufSJdLCJmaWxlIjoibXlyL2NvbW1hbmRzL2tpbGwuY29tbWFuZC5qcyJ9
@@ -0,0 +1,18 @@
1
+ import { ProjectArgs, ProjectCommand } from '../../project.command';
2
+ import { Arguments, Builder } from '../../command';
3
+ export declare type Attribute = 'identifier' | 'status' | 'cwd' | 'command' | 'cmd' | 'args';
4
+ export declare type Data = Partial<Record<Attribute, string>>;
5
+ export interface ListArgs extends ProjectArgs {
6
+ all: boolean | undefined;
7
+ attrs: Attribute[] | undefined;
8
+ headers: boolean | undefined;
9
+ long: boolean | undefined;
10
+ json: boolean | undefined;
11
+ }
12
+ export declare class ListCommand extends ProjectCommand<ListArgs> {
13
+ readonly name: string[];
14
+ readonly description = "List myr tasks";
15
+ private buildExtractor;
16
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs>;
17
+ protected run(args: Arguments<ListArgs>): Promise<void>;
18
+ }
@@ -0,0 +1,127 @@
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 _path = _interopRequireDefault(require("path"));
11
+
12
+ var _project = require("../../project.command");
13
+
14
+ var _myrClient = require("../myr-client");
15
+
16
+ var _cliList = require("../../utils/cli-list");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ 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; }
21
+
22
+ // Constants
23
+ const COLORED_STATUS = {
24
+ blocked: _chalk.default.yellow('blocked'),
25
+ ready: _chalk.default.blue('ready'),
26
+ running: 'running',
27
+ failed: _chalk.default.red('failed'),
28
+ done: _chalk.default.green('done')
29
+ };
30
+ const LONG_ATTRIBUTES = ['identifier', 'status', 'cwd', 'command'];
31
+ const DEFAULT_ATTRIBUTES = ['identifier', 'command'];
32
+ const EXTRACTORS = {
33
+ identifier: tsk => _chalk.default.grey(tsk.id),
34
+ status: tsk => COLORED_STATUS[tsk.status],
35
+ cwd: tsk => _path.default.relative(process.cwd(), tsk.cwd) || '.',
36
+ command: tsk => `${tsk.cmd} ${tsk.args.join(' ')}`,
37
+ cmd: tsk => tsk.cmd,
38
+ args: tsk => tsk.args.join(' ')
39
+ }; // Command
40
+
41
+ class ListCommand extends _project.ProjectCommand {
42
+ constructor(...args) {
43
+ super(...args);
44
+
45
+ _defineProperty(this, "name", ['list', 'ls']);
46
+
47
+ _defineProperty(this, "description", 'List myr tasks');
48
+ }
49
+
50
+ // Methods
51
+ buildExtractor(attrs) {
52
+ return tsk => {
53
+ const data = {};
54
+
55
+ for (const attr of attrs) {
56
+ data[attr] = EXTRACTORS[attr](tsk);
57
+ }
58
+
59
+ return data;
60
+ };
61
+ }
62
+
63
+ define(builder) {
64
+ return super.define(y => builder(y).option('all', {
65
+ alias: 'a',
66
+ type: 'boolean',
67
+ group: 'Filters:',
68
+ desc: 'Show all tasks (by default list shows only running tasks)'
69
+ }).option('attrs', {
70
+ type: 'array',
71
+ choices: ['identifier', 'status', 'cwd', 'command', 'cmd', 'args'],
72
+ default: undefined,
73
+ group: 'Format:',
74
+ desc: 'Select printed attributes'
75
+ }).option('headers', {
76
+ type: 'boolean',
77
+ group: 'Format:',
78
+ desc: 'Prints columns headers'
79
+ }).option('long', {
80
+ alias: 'l',
81
+ type: 'boolean',
82
+ conflicts: 'attrs',
83
+ group: 'Format:',
84
+ desc: 'Prints name, version and root of all workspaces'
85
+ }).option('json', {
86
+ type: 'boolean',
87
+ group: 'Format:',
88
+ desc: 'Prints data as a JSON array'
89
+ }));
90
+ }
91
+
92
+ async run(args) {
93
+ await super.run(args); // Spawn task
94
+
95
+ this.spinner.start('Connecting to myr');
96
+ const client = new _myrClient.MyrClient(this.project);
97
+ this.spinner.start('Requesting tasks');
98
+ const tasks = await client.tasks();
99
+ this.spinner.stop(); // Build data
100
+
101
+ let attrs = args.attrs || DEFAULT_ATTRIBUTES;
102
+
103
+ if (!args.attrs && args.long) {
104
+ attrs = LONG_ATTRIBUTES;
105
+ }
106
+
107
+ const data = tasks.filter(tsk => args.all || tsk.status === 'running').map(tsk => this.buildExtractor(attrs)(tsk)); // Print data
108
+
109
+ const list = new _cliList.CliList();
110
+
111
+ if (args.headers ?? attrs.length > 1) {
112
+ list.setHeaders(attrs);
113
+ }
114
+
115
+ for (const d of data) {
116
+ list.add(attrs.map(attr => d[attr] || ''));
117
+ }
118
+
119
+ for (const d of list.lines()) {
120
+ this.log(d);
121
+ }
122
+ }
123
+
124
+ }
125
+
126
+ exports.ListCommand = ListCommand;
127
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9jb21tYW5kcy9saXN0LmNvbW1hbmQudHMiXSwibmFtZXMiOlsiQ09MT1JFRF9TVEFUVVMiLCJibG9ja2VkIiwiY2hhbGsiLCJ5ZWxsb3ciLCJyZWFkeSIsImJsdWUiLCJydW5uaW5nIiwiZmFpbGVkIiwicmVkIiwiZG9uZSIsImdyZWVuIiwiTE9OR19BVFRSSUJVVEVTIiwiREVGQVVMVF9BVFRSSUJVVEVTIiwiRVhUUkFDVE9SUyIsImlkZW50aWZpZXIiLCJ0c2siLCJncmV5IiwiaWQiLCJzdGF0dXMiLCJjd2QiLCJwYXRoIiwicmVsYXRpdmUiLCJwcm9jZXNzIiwiY29tbWFuZCIsImNtZCIsImFyZ3MiLCJqb2luIiwiTGlzdENvbW1hbmQiLCJQcm9qZWN0Q29tbWFuZCIsImJ1aWxkRXh0cmFjdG9yIiwiYXR0cnMiLCJkYXRhIiwiYXR0ciIsImRlZmluZSIsImJ1aWxkZXIiLCJ5Iiwib3B0aW9uIiwiYWxpYXMiLCJ0eXBlIiwiZ3JvdXAiLCJkZXNjIiwiY2hvaWNlcyIsImRlZmF1bHQiLCJ1bmRlZmluZWQiLCJjb25mbGljdHMiLCJydW4iLCJzcGlubmVyIiwic3RhcnQiLCJjbGllbnQiLCJNeXJDbGllbnQiLCJwcm9qZWN0IiwidGFza3MiLCJzdG9wIiwibG9uZyIsImZpbHRlciIsImFsbCIsIm1hcCIsImxpc3QiLCJDbGlMaXN0IiwiaGVhZGVycyIsImxlbmd0aCIsInNldEhlYWRlcnMiLCJkIiwiYWRkIiwibGluZXMiLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7O0FBa0JBO0FBQ0EsTUFBTUEsY0FBMEMsR0FBRztBQUNqREMsRUFBQUEsT0FBTyxFQUFFQyxlQUFNQyxNQUFOLENBQWEsU0FBYixDQUR3QztBQUVqREMsRUFBQUEsS0FBSyxFQUFFRixlQUFNRyxJQUFOLENBQVcsT0FBWCxDQUYwQztBQUdqREMsRUFBQUEsT0FBTyxFQUFFLFNBSHdDO0FBSWpEQyxFQUFBQSxNQUFNLEVB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LEVBQWI7O0FBRUEsUUFBSWpDLElBQUksQ0FBQ2tDLE9BQUwsSUFBaUI3QixLQUFLLENBQUM4QixNQUFOLEdBQWUsQ0FBcEMsRUFBd0M7QUFDdENILE1BQUFBLElBQUksQ0FBQ0ksVUFBTCxDQUFnQi9CLEtBQWhCO0FBQ0Q7O0FBRUQsU0FBSyxNQUFNZ0MsQ0FBWCxJQUFnQi9CLElBQWhCLEVBQXNCO0FBQ3BCMEIsTUFBQUEsSUFBSSxDQUFDTSxHQUFMLENBQVNqQyxLQUFLLENBQUMwQixHQUFOLENBQVV4QixJQUFJLElBQUk4QixDQUFDLENBQUM5QixJQUFELENBQUQsSUFBVyxFQUE3QixDQUFUO0FBQ0Q7O0FBRUQsU0FBSyxNQUFNOEIsQ0FBWCxJQUFnQkwsSUFBSSxDQUFDTyxLQUFMLEVBQWhCLEVBQThCO0FBQzVCLFdBQUtDLEdBQUwsQ0FBU0gsQ0FBVDtBQUNEO0FBQ0Y7O0FBMUZ1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhc2tTdGF0dXMgfSBmcm9tICdAanVqdWxlZ28vamlsbC1jb3JlJztcbmltcG9ydCB7IFRhc2sgfSBmcm9tICdAanVqdWxlZ28vamlsbC1teXInO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyBQcm9qZWN0QXJncywgUHJvamVjdENvbW1hbmQgfSBmcm9tICcuLi8uLi9wcm9qZWN0LmNvbW1hbmQnO1xuaW1wb3J0IHsgTXlyQ2xpZW50IH0gZnJvbSAnLi4vbXlyLWNsaWVudCc7XG5pbXBvcnQgeyBDbGlMaXN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xpLWxpc3QnO1xuaW1wb3J0IHsgQXJndW1lbnRzLCBCdWlsZGVyIH0gZnJvbSAnLi4vLi4vY29tbWFuZCc7XG5cbi8vIFR5cGVzXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGUgPSAnaWRlbnRpZmllcicgfCAnc3RhdHVzJyB8ICdjd2QnIHwgJ2NvbW1hbmQnIHwgJ2NtZCcgfCAnYXJncyc7XG5leHBvcnQgdHlwZSBEYXRhID0gUGFydGlhbDxSZWNvcmQ8QXR0cmlidXRlLCBzdHJpbmc+PjtcblxudHlwZSBFeHRyYWN0b3I8VD4gPSAodHNrOiBUYXNrKSA9PiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBcmdzIGV4dGVuZHMgUHJvamVjdEFyZ3Mge1xuICBhbGw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgYXR0cnM6IEF0dHJpYnV0ZVtdIHwgdW5kZWZpbmVkO1xuICBoZWFkZXJzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBsb25nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBqc29uOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBDb25zdGFudHNcbmNvbnN0IENPTE9SRURfU1RBVFVTOiBSZWNvcmQ8VGFza1N0YXR1cywgc3RyaW5nPiA9IHtcbiAgYmxvY2tlZDogY2hhbGsueWVsbG93KCdibG9ja2VkJyksXG4gIHJlYWR5OiBjaGFsay5ibHVlKCdyZWFkeScpLFxuICBydW5uaW5nOiAncnVubmluZycsXG4gIGZhaWxlZDogY2hhbGsucmVkKCdmYWlsZWQnKSxcbiAgZG9uZTogY2hhbGsuZ3JlZW4oJ2RvbmUnKVxufTtcblxuY29uc3QgTE9OR19BVFRSSUJVVEVTOiBBdHRyaWJ1dGVbXSA9IFsnaWRlbnRpZmllcicsICdzdGF0dXMnLCAnY3dkJywgJ2NvbW1hbmQnXTtcbmNvbnN0IERFRkFVTFRfQVRUUklCVVRFUzogQXR0cmlidXRlW10gPSBbJ2lkZW50aWZpZXInLCAnY29tbWFuZCddO1xuXG5jb25zdCBFWFRSQUNUT1JTOiBSZWNvcmQ8QXR0cmlidXRlLCBFeHRyYWN0b3I8c3RyaW5nIHwgdW5kZWZpbmVkPj4gPSB7XG4gIGlkZW50aWZpZXI6IHRzayA9PiBjaGFsay5ncmV5KHRzay5pZCksXG4gIHN0YXR1czogdHNrID0+IENPTE9SRURfU1RBVFVTW3Rzay5zdGF0dXNdLFxuICBjd2Q6IHRzayA9PiBwYXRoLnJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIHRzay5jd2QpIHx8ICcuJyxcbiAgY29tbWFuZDogdHNrID0+IGAke3Rzay5jbWR9ICR7dHNrLmFyZ3Muam9pbignICcpfWAsXG4gIGNtZDogdHNrID0+IHRzay5jbWQsXG4gIGFyZ3M6IHRzayA9PiB0c2suYXJncy5qb2luKCcgJylcbn07XG5cbi8vIENvbW1hbmRcbmV4cG9ydCBjbGFzcyBMaXN0Q29tbWFuZCBleHRlbmRzIFByb2plY3RDb21tYW5kPExpc3RBcmdzPiB7XG4gIC8vIEF0dHJpYnV0ZXNcbiAgcmVhZG9ubHkgbmFtZSA9IFsnbGlzdCcsICdscyddO1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9ICdMaXN0IG15ciB0YXNrcyc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcml2YXRlIGJ1aWxkRXh0cmFjdG9yKGF0dHJzOiBBdHRyaWJ1dGVbXSk6IEV4dHJhY3RvcjxEYXRhPiB7XG4gICAgcmV0dXJuICh0c2spID0+IHtcbiAgICAgIGNvbnN0IGRhdGE6IERhdGEgPSB7fTtcblxuICAgICAgZm9yIChjb25zdCBhdHRyIG9mIGF0dHJzKSB7XG4gICAgICAgIGRhdGFbYXR0cl0gPSBFWFRSQUNUT1JTW2F0dHJdKHRzayk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBMaXN0QXJncz4ge1xuICAgIHJldHVybiBzdXBlci5kZWZpbmUoeSA9PiBidWlsZGVyKHkpXG4gICAgICAub3B0aW9uKCdhbGwnLCB7XG4gICAgICAgIGFsaWFzOiAnYScsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZ3JvdXA6ICdGaWx0ZXJzOicsXG4gICAgICAgIGRlc2M6ICdTaG93IGFsbCB0YXNrcyAoYnkgZGVmYXVsdCBsaXN0IHNob3dzIG9ubHkgcnVubmluZyB0YXNrcyknLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2F0dHJzJywge1xuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBjaG9pY2VzOiBbJ2lkZW50aWZpZXInLCAnc3RhdHVzJywgJ2N3ZCcgLCdjb21tYW5kJywgJ2NtZCcsICdhcmdzJ10sXG4gICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCBhcyBBdHRyaWJ1dGVbXSB8IHVuZGVmaW5lZCxcbiAgICAgICAgZ3JvdXA6ICdGb3JtYXQ6JyxcbiAgICAgICAgZGVzYzogJ1NlbGVjdCBwcmludGVkIGF0dHJpYnV0ZXMnXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignaGVhZGVycycsIHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBncm91cDogJ0Zvcm1hdDonLFxuICAgICAgICBkZXNjOiAnUHJpbnRzIGNvbHVtbnMgaGVhZGVycydcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdsb25nJywge1xuICAgICAgICBhbGlhczogJ2wnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGNvbmZsaWN0czogJ2F0dHJzJyxcbiAgICAgICAgZ3JvdXA6ICdGb3JtYXQ6JyxcbiAgICAgICAgZGVzYzogJ1ByaW50cyBuYW1lLCB2ZXJzaW9uIGFuZCByb290IG9mIGFsbCB3b3Jrc3BhY2VzJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdqc29uJywge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGdyb3VwOiAnRm9ybWF0OicsXG4gICAgICAgIGRlc2M6ICdQcmludHMgZGF0YSBhcyBhIEpTT04gYXJyYXknLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bihhcmdzOiBBcmd1bWVudHM8TGlzdEFyZ3M+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIucnVuKGFyZ3MpO1xuXG4gICAgLy8gU3Bhd24gdGFza1xuICAgIHRoaXMuc3Bpbm5lci5zdGFydCgnQ29ubmVjdGluZyB0byBteXInKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgTXlyQ2xpZW50KHRoaXMucHJvamVjdCk7XG5cbiAgICB0aGlzLnNwaW5uZXIuc3RhcnQoJ1JlcXVlc3RpbmcgdGFza3MnKTtcbiAgICBjb25zdCB0YXNrcyA9IGF3YWl0IGNsaWVudC50YXNrcygpO1xuXG4gICAgdGhpcy5zcGlubmVyLnN0b3AoKTtcblxuICAgIC8vIEJ1aWxkIGRhdGFcbiAgICBsZXQgYXR0cnMgPSBhcmdzLmF0dHJzIGFzIEF0dHJpYnV0ZVtdIHx8IERFRkFVTFRfQVRUUklCVVRFUztcblxuICAgIGlmICghYXJncy5hdHRycyAmJiBhcmdzLmxvbmcpIHtcbiAgICAgIGF0dHJzID0gTE9OR19BVFRSSUJVVEVTO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSB0YXNrc1xuICAgICAgLmZpbHRlcih0c2sgPT4gYXJncy5hbGwgfHwgdHNrLnN0YXR1cyA9PT0gJ3J1bm5pbmcnKVxuICAgICAgLm1hcCh0c2sgPT4gdGhpcy5idWlsZEV4dHJhY3RvcihhdHRycykodHNrKSk7XG5cbiAgICAvLyBQcmludCBkYXRhXG4gICAgY29uc3QgbGlzdCA9IG5ldyBDbGlMaXN0KCk7XG5cbiAgICBpZiAoYXJncy5oZWFkZXJzID8/IChhdHRycy5sZW5ndGggPiAxKSkge1xuICAgICAgbGlzdC5zZXRIZWFkZXJzKGF0dHJzKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGQgb2YgZGF0YSkge1xuICAgICAgbGlzdC5hZGQoYXR0cnMubWFwKGF0dHIgPT4gZFthdHRyXSB8fCAnJykpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZCBvZiBsaXN0LmxpbmVzKCkpIHtcbiAgICAgIHRoaXMubG9nKGQpO1xuICAgIH1cbiAgfVxufSJdLCJmaWxlIjoibXlyL2NvbW1hbmRzL2xpc3QuY29tbWFuZC5qcyJ9
@@ -0,0 +1,11 @@
1
+ import { ProjectArgs, ProjectCommand } from '../../project.command';
2
+ import { Arguments, Builder } from '../../command';
3
+ export interface LogsArgs extends ProjectArgs {
4
+ follow: boolean;
5
+ }
6
+ export declare class LogsCommand extends ProjectCommand<LogsArgs> {
7
+ readonly name = "logs";
8
+ readonly description = "Request myr logs";
9
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & LogsArgs>;
10
+ protected run(args: Arguments<LogsArgs>): Promise<void>;
11
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LogsCommand = void 0;
7
+
8
+ var _winston = require("winston");
9
+
10
+ var _chalk = _interopRequireDefault(require("chalk"));
11
+
12
+ var _project = require("../../project.command");
13
+
14
+ var _myrClient = require("../myr-client");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
+ // Utils
21
+ const printLog = _winston.format.combine({
22
+ transform: info => Object.assign(info, {
23
+ [Symbol.for('level')]: info.level
24
+ })
25
+ }, {
26
+ transform: info => Object.assign(info, {
27
+ context: info.task?.substr(0, 8) || info.context
28
+ })
29
+ }, _winston.format.printf(({
30
+ context,
31
+ message,
32
+ timestamp
33
+ }) => context ? (0, _chalk.default)`[jill-myr] {white ${new Date(timestamp).toLocaleString()}} {grey [${context}]} ${message}` : (0, _chalk.default)`[jill-myr] {white ${new Date(timestamp).toLocaleString()}} ${message}`), _winston.format.colorize({
34
+ all: true
35
+ })); // Command
36
+
37
+
38
+ class LogsCommand extends _project.ProjectCommand {
39
+ constructor(...args) {
40
+ super(...args);
41
+
42
+ _defineProperty(this, "name", 'logs');
43
+
44
+ _defineProperty(this, "description", 'Request myr logs');
45
+ }
46
+
47
+ // Methods
48
+ define(builder) {
49
+ return super.define(y => builder(y).option('follow', {
50
+ alias: 'f',
51
+ type: 'boolean',
52
+ default: false,
53
+ description: 'Subscribe to logs stream'
54
+ }));
55
+ }
56
+
57
+ async run(args) {
58
+ await super.run(args); // Spawn task
59
+
60
+ this.spinner.start('Connecting to myr');
61
+ const client = new _myrClient.MyrClient(this.project);
62
+ this.spinner.start('Requesting logs');
63
+ const logs = await client.logs();
64
+ this.spinner.stop();
65
+
66
+ for (const log of logs) {
67
+ printLog.transform(log);
68
+ this.log(log[Symbol.for('message')]);
69
+ } // Follow
70
+
71
+
72
+ if (args.follow) {
73
+ for await (const log of client.logs$()) {
74
+ printLog.transform(log);
75
+ this.log(log[Symbol.for('message')]);
76
+ }
77
+ }
78
+ }
79
+
80
+ }
81
+
82
+ exports.LogsCommand = LogsCommand;
83
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9jb21tYW5kcy9sb2dzLmNvbW1hbmQudHMiXSwibmFtZXMiOlsicHJpbnRMb2ciLCJmb3JtYXQiLCJjb21iaW5lIiwidHJhbnNmb3JtIiwiaW5mbyIsIk9iamVjdCIsImFzc2lnbiIsIlN5bWJvbCIsImZvciIsImxldmVsIiwiY29udGV4dCIsInRhc2siLCJzdWJzdHIiLCJwcmludGYiLCJtZXNzYWdlIiwidGltZXN0YW1wIiwiRGF0ZSIsInRvTG9jYWxlU3RyaW5nIiwiY29sb3JpemUiLCJhbGwiLCJMb2dzQ29tbWFuZCIsIlByb2plY3RDb21tYW5kIiwiZGVmaW5lIiwiYnVpbGRlciIsInkiLCJvcHRpb24iLCJhbGlhcyIsInR5cGUiLCJkZWZhdWx0IiwiZGVzY3JpcHRpb24iLCJydW4iLCJhcmdzIiwic3Bpbm5lciIsInN0YXJ0IiwiY2xpZW50IiwiTXlyQ2xpZW50IiwicHJvamVjdCIsImxvZ3MiLCJzdG9wIiwibG9nIiwiZm9sbG93IiwibG9ncyQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7O0FBUUE7QUFDQSxNQUFNQSxRQUFRLEdBQUdDLGdCQUFPQyxPQUFQLENBQ2Y7QUFBRUMsRUFBQUEsU0FBUyxFQUFHQyxJQUFELElBQVVDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjRixJQUFkLEVBQW9CO0FBQUUsS0FBQ0csTUFBTSxDQUFDQyxHQUFQLENBQVcsT0FBWCxDQUFELEdBQXVCSixJQUFJLENBQUNLO0FBQTlCLEdBQXBCO0FBQXZCLENBRGUsRUFFZjtBQUFFTixFQUFBQSxTQUFTLEVBQUdDLElBQUQsSUFBVUMsTUFBTSxDQUFDQyxNQUFQLENBQWNGLElBQWQsRUFBb0I7QUFBRU0sSUFBQUEsT0FBTyxFQUFFTixJQUFJLENBQUNPLElBQUwsRUFBV0MsTUFBWCxDQUFrQixDQUFsQixFQUFxQixDQUFyQixLQUEyQlIsSUFBSSxDQUFDTTtBQUEzQyxHQUFwQjtBQUF2QixDQUZlLEVBR2ZULGdCQUFPWSxNQUFQLENBQWMsQ0FBQztBQUFFSCxFQUFBQSxPQUFGO0FBQVdJLEVBQUFBLE9BQVg7QUFBb0JDLEVBQUFBO0FBQXBCLENBQUQsS0FBcUNMLE9BQU8sR0FDdEQsbUJBQU0scUJBQW9CLElBQUlNLElBQUosQ0FBU0QsU0FBVCxFQUFvQkUsY0FBcEIsRUFBcUMsWUFBV1AsT0FBUSxNQUFLSSxPQUFRLEVBRHpDLEdBRXRELG1CQUFNLHFCQUFvQixJQUFJRSxJQUFKLENBQVNELFNBQVQsRUFBb0JFLGNBQXBCLEVBQXFDLEtBQUlILE9BQVEsRUFGL0UsQ0FIZSxFQU9mYixnQkFBT2lCLFFBQVAsQ0FBZ0I7QUFBRUMsRUFBQUEsR0FBRyxFQUFFO0FBQVAsQ0FBaEIsQ0FQZSxDQUFqQixDLENBVUE7OztBQUNPLE1BQU1DLFdBQU4sU0FBMEJDLHVCQUExQixDQUFtRDtBQUFBO0FBQUE7O0FBQUEsa0NBRXhDLE1BRndDOztBQUFBLHlDQUdqQyxrQkFIaUM7QUFBQTs7QUFLeEQ7QUFDVUMsRUFBQUEsTUFBTSxDQUFPQyxPQUFQLEVBQXlEO0FBQ3ZFLFdBQU8sTUFBTUQsTUFBTixDQUFhRSxDQUFDLElBQUlELE9BQU8sQ0FBQ0MsQ0FBRCxDQUFQLENBQ3RCQyxNQURzQixDQUNmLFFBRGUsRUFDTDtBQUNoQkMsTUFBQUEsS0FBSyxFQUFFLEdBRFM7QUFFaEJDLE1BQUFBLElBQUksRUFBRSxTQUZVO0FBR2hCQyxNQUFBQSxPQUFPLEVBQUUsS0FITztBQUloQkMsTUFBQUEsV0FBVyxFQUFFO0FBSkcsS0FESyxDQUFsQixDQUFQO0FBUUQ7O0FBRWtCLFFBQUhDLEdBQUcsQ0FBQ0MsSUFBRCxFQUEyQztBQUM1RCxVQUFNLE1BQU1ELEdBQU4sQ0FBVUMsSUFBVixDQUFOLENBRDRELENBRzVEOztBQUNBLFNBQUtDLE9BQUwsQ0FBYUMsS0FBYixDQUFtQixtQkFBbkI7QUFDQSxVQUFNQyxNQUFNLEdBQUcsSUFBSUMsb0JBQUosQ0FBYyxLQUFLQyxPQUFuQixDQUFmO0FBRUEsU0FBS0osT0FBTCxDQUFhQyxLQUFiLENBQW1CLGlCQUFuQjtBQUNBLFVBQU1JLElBQUksR0FBRyxNQUFNSCxNQUFNLENBQUNHLElBQVAsRUFBbkI7QUFDQSxTQUFLTCxPQUFMLENBQWFNLElBQWI7O0FBRUEsU0FBSyxNQUFNQyxHQUFYLElBQWtCRixJQUFsQixFQUF3QjtBQUN0QnJDLE1BQUFBLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQm9DLEdBQW5CO0FBQ0EsV0FBS0EsR0FBTCxDQUFTQSxHQUFHLENBQUNoQyxNQUFNLENBQUNDLEdBQVAsQ0FBVyxTQUFYLENBQUQsQ0FBWjtBQUNELEtBZDJELENBZ0I1RDs7O0FBQ0EsUUFBSXVCLElBQUksQ0FBQ1MsTUFBVCxFQUFpQjtBQUNmLGlCQUFXLE1BQU1ELEdBQWpCLElBQXdCTCxNQUFNLENBQUNPLEtBQVAsRUFBeEIsRUFBd0M7QUFDdEN6QyxRQUFBQSxRQUFRLENBQUNHLFNBQVQsQ0FBbUJvQyxHQUFuQjtBQUNBLGFBQUtBLEdBQUwsQ0FBU0EsR0FBRyxDQUFDaEMsTUFBTSxDQUFDQyxHQUFQLENBQVcsU0FBWCxDQUFELENBQVo7QUFDRDtBQUNGO0FBQ0Y7O0FBeEN1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcblxuaW1wb3J0IHsgUHJvamVjdEFyZ3MsIFByb2plY3RDb21tYW5kIH0gZnJvbSAnLi4vLi4vcHJvamVjdC5jb21tYW5kJztcbmltcG9ydCB7IE15ckNsaWVudCB9IGZyb20gJy4uL215ci1jbGllbnQnO1xuaW1wb3J0IHsgQXJndW1lbnRzLCBCdWlsZGVyIH0gZnJvbSAnLi4vLi4vY29tbWFuZCc7XG5cbi8vIFR5cGVzXG5leHBvcnQgaW50ZXJmYWNlIExvZ3NBcmdzIGV4dGVuZHMgUHJvamVjdEFyZ3Mge1xuICBmb2xsb3c6IGJvb2xlYW47XG59XG5cbi8vIFV0aWxzXG5jb25zdCBwcmludExvZyA9IGZvcm1hdC5jb21iaW5lKFxuICB7IHRyYW5zZm9ybTogKGluZm8pID0+IE9iamVjdC5hc3NpZ24oaW5mbywgeyBbU3ltYm9sLmZvcignbGV2ZWwnKV06IGluZm8ubGV2ZWwgfSkgfSxcbiAgeyB0cmFuc2Zvcm06IChpbmZvKSA9PiBPYmplY3QuYXNzaWduKGluZm8sIHsgY29udGV4dDogaW5mby50YXNrPy5zdWJzdHIoMCwgOCkgfHwgaW5mby5jb250ZXh0IH0pIH0sXG4gIGZvcm1hdC5wcmludGYoKHsgY29udGV4dCwgbWVzc2FnZSwgdGltZXN0YW1wIH0pID0+IGNvbnRleHRcbiAgICA/IGNoYWxrYFtqaWxsLW15cl0ge3doaXRlICR7bmV3IERhdGUodGltZXN0YW1wKS50b0xvY2FsZVN0cmluZygpfX0ge2dyZXkgWyR7Y29udGV4dH1dfSAke21lc3NhZ2V9YFxuICAgIDogY2hhbGtgW2ppbGwtbXlyXSB7d2hpdGUgJHtuZXcgRGF0ZSh0aW1lc3RhbXApLnRvTG9jYWxlU3RyaW5nKCl9fSAke21lc3NhZ2V9YFxuICApLFxuICBmb3JtYXQuY29sb3JpemUoeyBhbGw6IHRydWUgfSksXG4pO1xuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgTG9nc0NvbW1hbmQgZXh0ZW5kcyBQcm9qZWN0Q29tbWFuZDxMb2dzQXJncz4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IG5hbWUgPSAnbG9ncyc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gJ1JlcXVlc3QgbXlyIGxvZ3MnO1xuXG4gIC8vIE1ldGhvZHNcbiAgcHJvdGVjdGVkIGRlZmluZTxULCBVPihidWlsZGVyOiBCdWlsZGVyPFQsIFU+KTogQnVpbGRlcjxULCBVICYgTG9nc0FyZ3M+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVmaW5lKHkgPT4gYnVpbGRlcih5KVxuICAgICAgLm9wdGlvbignZm9sbG93Jywge1xuICAgICAgICBhbGlhczogJ2YnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1N1YnNjcmliZSB0byBsb2dzIHN0cmVhbSdcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW4oYXJnczogQXJndW1lbnRzPExvZ3NBcmdzPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcblxuICAgIC8vIFNwYXduIHRhc2tcbiAgICB0aGlzLnNwaW5uZXIuc3RhcnQoJ0Nvbm5lY3RpbmcgdG8gbXlyJyk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IE15ckNsaWVudCh0aGlzLnByb2plY3QpO1xuXG4gICAgdGhpcy5zcGlubmVyLnN0YXJ0KCdSZXF1ZXN0aW5nIGxvZ3MnKTtcbiAgICBjb25zdCBsb2dzID0gYXdhaXQgY2xpZW50LmxvZ3MoKTtcbiAgICB0aGlzLnNwaW5uZXIuc3RvcCgpO1xuXG4gICAgZm9yIChjb25zdCBsb2cgb2YgbG9ncykge1xuICAgICAgcHJpbnRMb2cudHJhbnNmb3JtKGxvZyk7XG4gICAgICB0aGlzLmxvZyhsb2dbU3ltYm9sLmZvcignbWVzc2FnZScpXSk7XG4gICAgfVxuXG4gICAgLy8gRm9sbG93XG4gICAgaWYgKGFyZ3MuZm9sbG93KSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGxvZyBvZiBjbGllbnQubG9ncyQoKSkge1xuICAgICAgICBwcmludExvZy50cmFuc2Zvcm0obG9nKTtcbiAgICAgICAgdGhpcy5sb2cobG9nW1N5bWJvbC5mb3IoJ21lc3NhZ2UnKV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSJdLCJmaWxlIjoibXlyL2NvbW1hbmRzL2xvZ3MuY29tbWFuZC5qcyJ9
@@ -0,0 +1,11 @@
1
+ import { Arguments, Builder } from '../../command';
2
+ import { WorkspaceArgs, WorkspaceCommand } from '../../workspace.command';
3
+ export interface SpawnArgs extends WorkspaceArgs {
4
+ command: string;
5
+ }
6
+ export declare class SpawnCommand extends WorkspaceCommand<SpawnArgs> {
7
+ readonly name = "spawn <command>";
8
+ readonly description = "Spawn new task";
9
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & SpawnArgs>;
10
+ protected run(args: Arguments<SpawnArgs>): Promise<number | void>;
11
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SpawnCommand = void 0;
7
+
8
+ var _workspace = require("../../workspace.command");
9
+
10
+ var _myrClient = require("../myr-client");
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 SpawnCommand extends _workspace.WorkspaceCommand {
16
+ constructor(...args) {
17
+ super(...args);
18
+
19
+ _defineProperty(this, "name", 'spawn <command>');
20
+
21
+ _defineProperty(this, "description", 'Spawn new task');
22
+ }
23
+
24
+ // Methods
25
+ define(builder) {
26
+ return super.define(y => builder(y).positional('command', {
27
+ type: 'string',
28
+ demandOption: true
29
+ }));
30
+ }
31
+
32
+ async run(args) {
33
+ await super.run(args); // Spawn task
34
+
35
+ this.spinner.start('Connecting to myr');
36
+ const client = new _myrClient.MyrClient(this.project);
37
+ this.spinner.start('Spawning task');
38
+ const task = await client.spawn(this.workspace.cwd, args.command, args['--']?.map(arg => arg.toString()));
39
+ this.spinner.succeed(`Task ${task.id} spawned`);
40
+ }
41
+
42
+ }
43
+
44
+ exports.SpawnCommand = SpawnCommand;
45
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9jb21tYW5kcy9zcGF3bi5jb21tYW5kLnRzIl0sIm5hbWVzIjpbIlNwYXduQ29tbWFuZCIsIldvcmtzcGFjZUNvbW1hbmQiLCJkZWZpbmUiLCJidWlsZGVyIiwieSIsInBvc2l0aW9uYWwiLCJ0eXBlIiwiZGVtYW5kT3B0aW9uIiwicnVuIiwiYXJncyIsInNwaW5uZXIiLCJzdGFydCIsImNsaWVudCIsIk15ckNsaWVudCIsInByb2plY3QiLCJ0YXNrIiwic3Bhd24iLCJ3b3Jrc3BhY2UiLCJjd2QiLCJjb21tYW5kIiwibWFwIiwiYXJnIiwidG9TdHJpbmciLCJzdWNjZWVkIiwiaWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7OztBQU9BO0FBQ08sTUFBTUEsWUFBTixTQUEyQkMsMkJBQTNCLENBQXVEO0FBQUE7QUFBQTs7QUFBQSxrQ0FFNUMsaUJBRjRDOztBQUFBLHlDQUdyQyxnQkFIcUM7QUFBQTs7QUFLNUQ7QUFDVUMsRUFBQUEsTUFBTSxDQUFPQyxPQUFQLEVBQTBEO0FBQ3hFLFdBQU8sTUFBTUQsTUFBTixDQUFhRSxDQUFDLElBQUlELE9BQU8sQ0FBQ0MsQ0FBRCxDQUFQLENBQ3RCQyxVQURzQixDQUNYLFNBRFcsRUFDQTtBQUFFQyxNQUFBQSxJQUFJLEVBQUUsUUFBUjtBQUFrQkMsTUFBQUEsWUFBWSxFQUFFO0FBQWhDLEtBREEsQ0FBbEIsQ0FBUDtBQUdEOztBQUVrQixRQUFIQyxHQUFHLENBQUNDLElBQUQsRUFBcUQ7QUFDdEUsVUFBTSxNQUFNRCxHQUFOLENBQVVDLElBQVYsQ0FBTixDQURzRSxDQUd0RTs7QUFDQSxTQUFLQyxPQUFMLENBQWFDLEtBQWIsQ0FBbUIsbUJBQW5CO0FBQ0EsVUFBTUMsTUFBTSxHQUFHLElBQUlDLG9CQUFKLENBQWMsS0FBS0MsT0FBbkIsQ0FBZjtBQUVBLFNBQUtKLE9BQUwsQ0FBYUMsS0FBYixDQUFtQixlQUFuQjtBQUNBLFVBQU1JLElBQUksR0FBRyxNQUFNSCxNQUFNLENBQUNJLEtBQVAsQ0FBYSxLQUFLQyxTQUFMLENBQWVDLEdBQTVCLEVBQWlDVCxJQUFJLENBQUNVLE9BQXRDLEVBQStDVixJQUFJLENBQUMsSUFBRCxDQUFKLEVBQVlXLEdBQVosQ0FBZ0JDLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxRQUFKLEVBQXZCLENBQS9DLENBQW5CO0FBRUEsU0FBS1osT0FBTCxDQUFhYSxPQUFiLENBQXNCLFFBQU9SLElBQUksQ0FBQ1MsRUFBRyxVQUFyQztBQUNEOztBQXZCMkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmd1bWVudHMsIEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9jb21tYW5kJztcbmltcG9ydCB7IFdvcmtzcGFjZUFyZ3MsIFdvcmtzcGFjZUNvbW1hbmQgfSBmcm9tICcuLi8uLi93b3Jrc3BhY2UuY29tbWFuZCc7XG5pbXBvcnQgeyBNeXJDbGllbnQgfSBmcm9tICcuLi9teXItY2xpZW50JztcblxuLy8gVHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgU3Bhd25BcmdzIGV4dGVuZHMgV29ya3NwYWNlQXJncyB7XG4gIGNvbW1hbmQ6IHN0cmluZztcbn1cblxuLy8gQ29tbWFuZFxuZXhwb3J0IGNsYXNzIFNwYXduQ29tbWFuZCBleHRlbmRzIFdvcmtzcGFjZUNvbW1hbmQ8U3Bhd25BcmdzPiB7XG4gIC8vIEF0dHJpYnV0ZXNcbiAgcmVhZG9ubHkgbmFtZSA9ICdzcGF3biA8Y29tbWFuZD4nO1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9ICdTcGF3biBuZXcgdGFzayc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBTcGF3bkFyZ3M+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVmaW5lKHkgPT4gYnVpbGRlcih5KVxuICAgICAgLnBvc2l0aW9uYWwoJ2NvbW1hbmQnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bihhcmdzOiBBcmd1bWVudHM8U3Bhd25BcmdzPik6IFByb21pc2U8bnVtYmVyIHwgdm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcblxuICAgIC8vIFNwYXduIHRhc2tcbiAgICB0aGlzLnNwaW5uZXIuc3RhcnQoJ0Nvbm5lY3RpbmcgdG8gbXlyJyk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IE15ckNsaWVudCh0aGlzLnByb2plY3QpO1xuXG4gICAgdGhpcy5zcGlubmVyLnN0YXJ0KCdTcGF3bmluZyB0YXNrJyk7XG4gICAgY29uc3QgdGFzayA9IGF3YWl0IGNsaWVudC5zcGF3bih0aGlzLndvcmtzcGFjZS5jd2QsIGFyZ3MuY29tbWFuZCwgYXJnc1snLS0nXT8ubWFwKGFyZyA9PiBhcmcudG9TdHJpbmcoKSkpO1xuXG4gICAgdGhpcy5zcGlubmVyLnN1Y2NlZWQoYFRhc2sgJHt0YXNrLmlkfSBzcGF3bmVkYCk7XG4gIH1cbn0iXSwiZmlsZSI6Im15ci9jb21tYW5kcy9zcGF3bi5jb21tYW5kLmpzIn0=
@@ -0,0 +1,7 @@
1
+ import { Arguments } from '../../command';
2
+ import { ProjectArgs, ProjectCommand } from '../../project.command';
3
+ export declare class StopCommand extends ProjectCommand {
4
+ readonly name = "stop";
5
+ readonly description = "Stop myr server. This will kill all running tasks";
6
+ protected run(argv: Arguments<ProjectArgs>): Promise<void>;
7
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StopCommand = void 0;
7
+
8
+ var _project = require("../../project.command");
9
+
10
+ var _myrClient = require("../myr-client");
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 StopCommand extends _project.ProjectCommand {
16
+ constructor(...args) {
17
+ super(...args);
18
+
19
+ _defineProperty(this, "name", 'stop');
20
+
21
+ _defineProperty(this, "description", 'Stop myr server. This will kill all running tasks');
22
+ }
23
+
24
+ // Methods
25
+ async run(argv) {
26
+ await super.run(argv); // Spawn task
27
+
28
+ this.spinner.start('Stopping myr');
29
+ const client = new _myrClient.MyrClient(this.project);
30
+ const ok = await client.stop();
31
+
32
+ if (ok) {
33
+ this.spinner.succeed('myr stopped');
34
+ } else {
35
+ this.spinner.stop();
36
+ this.logger.warn('myr was not running');
37
+ }
38
+ }
39
+
40
+ }
41
+
42
+ exports.StopCommand = StopCommand;
43
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9jb21tYW5kcy9zdG9wLmNvbW1hbmQudHMiXSwibmFtZXMiOlsiU3RvcENvbW1hbmQiLCJQcm9qZWN0Q29tbWFuZCIsInJ1biIsImFyZ3YiLCJzcGlubmVyIiwic3RhcnQiLCJjbGllbnQiLCJNeXJDbGllbnQiLCJwcm9qZWN0Iiwib2siLCJzdG9wIiwic3VjY2VlZCIsImxvZ2dlciIsIndhcm4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7OztBQUVBO0FBQ08sTUFBTUEsV0FBTixTQUEwQkMsdUJBQTFCLENBQXlDO0FBQUE7QUFBQTs7QUFBQSxrQ0FFOUIsTUFGOEI7O0FBQUEseUNBR3ZCLG1EQUh1QjtBQUFBOztBQUs5QztBQUNtQixRQUFIQyxHQUFHLENBQUNDLElBQUQsRUFBOEM7QUFDL0QsVUFBTSxNQUFNRCxHQUFOLENBQVVDLElBQVYsQ0FBTixDQUQrRCxDQUcvRDs7QUFDQSxTQUFLQyxPQUFMLENBQWFDLEtBQWIsQ0FBbUIsY0FBbkI7QUFDQSxVQUFNQyxNQUFNLEdBQUcsSUFBSUMsb0JBQUosQ0FBYyxLQUFLQyxPQUFuQixDQUFmO0FBQ0EsVUFBTUMsRUFBRSxHQUFHLE1BQU1ILE1BQU0sQ0FBQ0ksSUFBUCxFQUFqQjs7QUFFQSxRQUFJRCxFQUFKLEVBQVE7QUFDTixXQUFLTCxPQUFMLENBQWFPLE9BQWIsQ0FBcUIsYUFBckI7QUFDRCxLQUZELE1BRU87QUFDTCxXQUFLUCxPQUFMLENBQWFNLElBQWI7QUFDQSxXQUFLRSxNQUFMLENBQVlDLElBQVosQ0FBaUIscUJBQWpCO0FBQ0Q7QUFDRjs7QUFwQjZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJndW1lbnRzIH0gZnJvbSAnLi4vLi4vY29tbWFuZCc7XG5pbXBvcnQgeyBQcm9qZWN0QXJncywgUHJvamVjdENvbW1hbmQgfSBmcm9tICcuLi8uLi9wcm9qZWN0LmNvbW1hbmQnO1xuaW1wb3J0IHsgTXlyQ2xpZW50IH0gZnJvbSAnLi4vbXlyLWNsaWVudCc7XG5cbi8vIENvbW1hbmRcbmV4cG9ydCBjbGFzcyBTdG9wQ29tbWFuZCBleHRlbmRzIFByb2plY3RDb21tYW5kIHtcbiAgLy8gQXR0cmlidXRlc1xuICByZWFkb25seSBuYW1lID0gJ3N0b3AnO1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9ICdTdG9wIG15ciBzZXJ2ZXIuIFRoaXMgd2lsbCBraWxsIGFsbCBydW5uaW5nIHRhc2tzJztcblxuICAvLyBNZXRob2RzXG4gIHByb3RlY3RlZCBhc3luYyBydW4oYXJndjogQXJndW1lbnRzPFByb2plY3RBcmdzPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmd2KTtcblxuICAgIC8vIFNwYXduIHRhc2tcbiAgICB0aGlzLnNwaW5uZXIuc3RhcnQoJ1N0b3BwaW5nIG15cicpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBNeXJDbGllbnQodGhpcy5wcm9qZWN0KTtcbiAgICBjb25zdCBvayA9IGF3YWl0IGNsaWVudC5zdG9wKCk7XG5cbiAgICBpZiAob2spIHtcbiAgICAgIHRoaXMuc3Bpbm5lci5zdWNjZWVkKCdteXIgc3RvcHBlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNwaW5uZXIuc3RvcCgpO1xuICAgICAgdGhpcy5sb2dnZXIud2FybignbXlyIHdhcyBub3QgcnVubmluZycpO1xuICAgIH1cbiAgfVxufSJdLCJmaWxlIjoibXlyL2NvbW1hbmRzL3N0b3AuY29tbWFuZC5qcyJ9
@@ -1,15 +1,22 @@
1
1
  import { Project, Workspace } from '@jujulego/jill-core';
2
- import { ITask } from '@jujulego/jill-myr';
2
+ import { Task } from '@jujulego/jill-myr';
3
+ import { Repeater } from '@repeaterjs/repeater';
4
+ import { DocumentNode } from 'graphql';
3
5
  export declare class MyrClient {
4
6
  readonly project: Project;
5
7
  private readonly _logger;
6
8
  private readonly _endpoint;
7
9
  private readonly _qclient;
10
+ private readonly _sclient;
8
11
  constructor(project: Project);
9
12
  protected _autoStart<T>(fn: () => Promise<T>): Promise<T>;
13
+ protected _subscription<T>(query: DocumentNode, variables: Record<string, unknown>): Repeater<T>;
10
14
  start(): Promise<void>;
11
- tasks(): Promise<ITask[]>;
12
- spawn(cwd: string, cmd: string, args?: string[]): Promise<ITask>;
13
- spawnScript(wks: Workspace, script: string, args?: string[]): Promise<ITask>;
14
- kill(id: string): Promise<ITask | undefined>;
15
+ stop(): Promise<boolean>;
16
+ tasks(): Promise<Task[]>;
17
+ spawn(cwd: string, cmd: string, args?: string[]): Promise<Task>;
18
+ spawnScript(wks: Workspace, script: string, args?: string[]): Promise<Task>;
19
+ logs(): Promise<any[]>;
20
+ logs$(): AsyncGenerator<any>;
21
+ kill(id: string): Promise<Task | undefined>;
15
22
  }