@jujulego/jill 1.1.18 → 1.1.19

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 (82) hide show
  1. package/dist/commands/each.command.d.ts +1 -2
  2. package/dist/commands/each.command.d.ts.map +1 -0
  3. package/dist/commands/each.command.js +147 -59
  4. package/dist/commands/each.command.js.map +1 -0
  5. package/dist/commands/info.command.d.ts +1 -2
  6. package/dist/commands/info.command.d.ts.map +1 -0
  7. package/dist/commands/info.command.js +146 -51
  8. package/dist/commands/info.command.js.map +1 -0
  9. package/dist/commands/list.command.d.ts +1 -2
  10. package/dist/commands/list.command.d.ts.map +1 -0
  11. package/dist/commands/list.command.js +134 -60
  12. package/dist/commands/list.command.js.map +1 -0
  13. package/dist/commands/run.command.d.ts +1 -2
  14. package/dist/commands/run.command.d.ts.map +1 -0
  15. package/dist/commands/run.command.js +77 -26
  16. package/dist/commands/run.command.js.map +1 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +1 -1
  19. package/dist/index.js.map +1 -0
  20. package/dist/main.d.ts.map +1 -0
  21. package/dist/main.js +41 -9
  22. package/dist/main.js.map +1 -0
  23. package/dist/myr/commands/kill.command.d.ts +1 -2
  24. package/dist/myr/commands/kill.command.d.ts.map +1 -0
  25. package/dist/myr/commands/kill.command.js +60 -23
  26. package/dist/myr/commands/kill.command.js.map +1 -0
  27. package/dist/myr/commands/list.command.d.ts +2 -3
  28. package/dist/myr/commands/list.command.d.ts.map +1 -0
  29. package/dist/myr/commands/list.command.js +77 -37
  30. package/dist/myr/commands/list.command.js.map +1 -0
  31. package/dist/myr/commands/logs.command.d.ts +1 -2
  32. package/dist/myr/commands/logs.command.d.ts.map +1 -0
  33. package/dist/myr/commands/logs.command.js +110 -28
  34. package/dist/myr/commands/logs.command.js.map +1 -0
  35. package/dist/myr/commands/spawn.command.d.ts +1 -2
  36. package/dist/myr/commands/spawn.command.d.ts.map +1 -0
  37. package/dist/myr/commands/spawn.command.js +56 -17
  38. package/dist/myr/commands/spawn.command.js.map +1 -0
  39. package/dist/myr/commands/stop.command.d.ts +1 -2
  40. package/dist/myr/commands/stop.command.d.ts.map +1 -0
  41. package/dist/myr/commands/stop.command.js +58 -21
  42. package/dist/myr/commands/stop.command.js.map +1 -0
  43. package/dist/myr/myr-client.d.ts.map +1 -0
  44. package/dist/myr/myr-client.js +224 -80
  45. package/dist/myr/myr-client.js.map +1 -0
  46. package/dist/myr/myr.command.d.ts +1 -1
  47. package/dist/myr/myr.command.d.ts.map +1 -0
  48. package/dist/myr/myr.command.js +9 -13
  49. package/dist/myr/myr.command.js.map +1 -0
  50. package/dist/myr/myr.process.d.ts.map +1 -0
  51. package/dist/myr/myr.process.js +41 -7
  52. package/dist/myr/myr.process.js.map +1 -0
  53. package/dist/myr/watch.command.d.ts +1 -2
  54. package/dist/myr/watch.command.d.ts.map +1 -0
  55. package/dist/myr/watch.command.js +132 -50
  56. package/dist/myr/watch.command.js.map +1 -0
  57. package/dist/task-logger.d.ts.map +1 -0
  58. package/dist/task-logger.js +27 -17
  59. package/dist/task-logger.js.map +1 -0
  60. package/package.json +8 -12
  61. package/dist/base.command.d.ts +0 -8
  62. package/dist/base.command.js +0 -33
  63. package/dist/command.d.ts +0 -21
  64. package/dist/command.js +0 -69
  65. package/dist/filters/affected.d.ts +0 -10
  66. package/dist/filters/affected.js +0 -80
  67. package/dist/filters/filter.d.ts +0 -8
  68. package/dist/filters/filter.js +0 -36
  69. package/dist/filters/index.d.ts +0 -2
  70. package/dist/filters/index.js +0 -22
  71. package/dist/logger.d.ts +0 -15
  72. package/dist/logger.js +0 -99
  73. package/dist/pipeline.d.ts +0 -9
  74. package/dist/pipeline.js +0 -53
  75. package/dist/plugin.d.ts +0 -11
  76. package/dist/plugin.js +0 -40
  77. package/dist/project.command.d.ts +0 -13
  78. package/dist/project.command.js +0 -58
  79. package/dist/utils/cli-list.d.ts +0 -15
  80. package/dist/utils/cli-list.js +0 -87
  81. package/dist/workspace.command.d.ts +0 -12
  82. package/dist/workspace.command.js +0 -55
@@ -27,43 +27,154 @@ var _ws = _interopRequireDefault(require("ws"));
27
27
 
28
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
29
 
30
- 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; }
30
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
31
+ function adopt(value) {
32
+ return value instanceof P ? value : new P(function (resolve) {
33
+ resolve(value);
34
+ });
35
+ }
36
+
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) {
39
+ try {
40
+ step(generator.next(value));
41
+ } catch (e) {
42
+ reject(e);
43
+ }
44
+ }
45
+
46
+ function rejected(value) {
47
+ try {
48
+ step(generator["throw"](value));
49
+ } catch (e) {
50
+ reject(e);
51
+ }
52
+ }
53
+
54
+ function step(result) {
55
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
56
+ }
57
+
58
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
59
+ });
60
+ };
61
+
62
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
63
+ var t = {};
64
+
65
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
66
+
67
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
68
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
69
+ }
70
+ return t;
71
+ };
72
+
73
+ var __asyncValues = void 0 && (void 0).__asyncValues || function (o) {
74
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
75
+ var m = o[Symbol.asyncIterator],
76
+ i;
77
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
78
+ return this;
79
+ }, i);
80
+
81
+ function verb(n) {
82
+ i[n] = o[n] && function (v) {
83
+ return new Promise(function (resolve, reject) {
84
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
85
+ });
86
+ };
87
+ }
88
+
89
+ function settle(resolve, reject, d, v) {
90
+ Promise.resolve(v).then(function (v) {
91
+ resolve({
92
+ value: v,
93
+ done: d
94
+ });
95
+ }, reject);
96
+ }
97
+ };
98
+
99
+ var __await = void 0 && (void 0).__await || function (v) {
100
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
101
+ };
102
+
103
+ var __asyncGenerator = void 0 && (void 0).__asyncGenerator || function (thisArg, _arguments, generator) {
104
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
105
+ var g = generator.apply(thisArg, _arguments || []),
106
+ i,
107
+ q = [];
108
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
109
+ return this;
110
+ }, i;
111
+
112
+ function verb(n) {
113
+ if (g[n]) i[n] = function (v) {
114
+ return new Promise(function (a, b) {
115
+ q.push([n, v, a, b]) > 1 || resume(n, v);
116
+ });
117
+ };
118
+ }
119
+
120
+ function resume(n, v) {
121
+ try {
122
+ step(g[n](v));
123
+ } catch (e) {
124
+ settle(q[0][3], e);
125
+ }
126
+ }
127
+
128
+ function step(r) {
129
+ r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
130
+ }
131
+
132
+ function fulfill(value) {
133
+ resume("next", value);
134
+ }
135
+
136
+ function reject(value) {
137
+ resume("throw", value);
138
+ }
139
+
140
+ function settle(f, v) {
141
+ if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
142
+ }
143
+ };
31
144
 
32
145
  // Class
33
146
  class MyrClient {
34
- // Attributes
35
147
  // Constructor
36
148
  constructor(project) {
37
- this.project = project;
149
+ this.project = project; // Attributes
38
150
 
39
- _defineProperty(this, "_logger", _jillCore.logger.child({
151
+ this._logger = _jillCore.logger.child({
40
152
  context: MyrClient.name
41
- }));
42
-
43
- _defineProperty(this, "_endpoint", 'http://localhost:5001/graphql');
44
-
45
- _defineProperty(this, "_qclient", new _graphqlRequest.GraphQLClient(this._endpoint));
46
-
47
- _defineProperty(this, "_sclient", (0, _graphqlWs.createClient)({
153
+ });
154
+ this._endpoint = 'http://localhost:5001/graphql';
155
+ this._qclient = new _graphqlRequest.GraphQLClient(this._endpoint);
156
+ this._sclient = (0, _graphqlWs.createClient)({
48
157
  url: this._endpoint.replace(/^http/, 'ws'),
49
158
  webSocketImpl: _ws.default,
50
159
  lazy: true
51
- }));
160
+ });
52
161
  } // Methods
53
162
 
54
163
 
55
- async _autoStart(fn) {
56
- try {
57
- return await fn();
58
- } catch (error) {
59
- if (error.code !== 'ECONNREFUSED') throw error; // Start myr if connection impossible
164
+ _autoStart(fn) {
165
+ return __awaiter(this, void 0, void 0, function* () {
166
+ try {
167
+ return yield fn();
168
+ } catch (error) {
169
+ if (error.code !== 'ECONNREFUSED') throw error; // Start myr if connection impossible
60
170
 
61
- this._logger.verbose('Unable to connect to myr server, trying to start it');
171
+ this._logger.verbose('Unable to connect to myr server, trying to start it');
62
172
 
63
- await this.start(); // Retry
173
+ yield this.start(); // Retry
64
174
 
65
- return await fn();
66
- }
175
+ return yield fn();
176
+ }
177
+ });
67
178
  }
68
179
 
69
180
  _subscription(query, variables) {
@@ -89,25 +200,29 @@ class MyrClient {
89
200
  }
90
201
 
91
202
  start() {
203
+ var _a, _b;
204
+
92
205
  const child = (0, _child_process.fork)(_path.default.resolve(__dirname, './myr.process'), [], {
93
206
  cwd: this.project.root,
94
207
  detached: true,
95
208
  stdio: ['ignore', 'pipe', 'pipe', 'ipc']
96
209
  }); // Transmit logs to logger
97
210
 
98
- child.stdout?.on('data', msg => {
211
+ (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.on('data', msg => {
99
212
  for (const line of msg.toString('utf-8').split('\n')) {
100
213
  if (!line) continue;
101
- const {
214
+
215
+ const _a = JSON.parse(line),
216
+ {
102
217
  level,
103
- message,
104
- ...meta
105
- } = JSON.parse(line);
218
+ message
219
+ } = _a,
220
+ meta = __rest(_a, ["level", "message"]);
106
221
 
107
222
  _jillCore.logger.log(level, message, meta);
108
223
  }
109
224
  });
110
- child.stderr?.on('data', msg => {
225
+ (_b = child.stderr) === null || _b === void 0 ? void 0 : _b.on('data', msg => {
111
226
  _jillCore.logger.error(msg.toString('utf-8'));
112
227
  }); // Start server
113
228
 
@@ -126,25 +241,28 @@ class MyrClient {
126
241
  });
127
242
  }
128
243
 
129
- async stop() {
130
- try {
131
- await this._qclient.request((0, _graphqlTag.default)`
244
+ stop() {
245
+ return __awaiter(this, void 0, void 0, function* () {
246
+ try {
247
+ yield this._qclient.request((0, _graphqlTag.default)`
132
248
  mutation Shutdown {
133
249
  shutdown
134
250
  }
135
251
  `);
136
- return true;
137
- } catch (error) {
138
- if (error.code !== 'ECONNREFUSED') throw error;
139
- return false;
140
- }
252
+ return true;
253
+ } catch (error) {
254
+ if (error.code !== 'ECONNREFUSED') throw error;
255
+ return false;
256
+ }
257
+ });
141
258
  }
142
259
 
143
- async tasks() {
144
- return await this._autoStart(async () => {
145
- const {
146
- tasks
147
- } = await this._qclient.request((0, _graphqlTag.default)`
260
+ tasks() {
261
+ return __awaiter(this, void 0, void 0, function* () {
262
+ return yield this._autoStart(() => __awaiter(this, void 0, void 0, function* () {
263
+ const {
264
+ tasks
265
+ } = yield this._qclient.request((0, _graphqlTag.default)`
148
266
  query Tasks {
149
267
  tasks {
150
268
  ...Task
@@ -153,15 +271,17 @@ class MyrClient {
153
271
 
154
272
  ${_jillMyr.TaskFragment}
155
273
  `);
156
- return tasks;
274
+ return tasks;
275
+ }));
157
276
  });
158
277
  }
159
278
 
160
- async spawn(cwd, cmd, args = []) {
161
- return await this._autoStart(async () => {
162
- const {
163
- spawn
164
- } = await this._qclient.request((0, _graphqlTag.default)`
279
+ spawn(cwd, cmd, args = []) {
280
+ return __awaiter(this, void 0, void 0, function* () {
281
+ return yield this._autoStart(() => __awaiter(this, void 0, void 0, function* () {
282
+ const {
283
+ spawn
284
+ } = yield this._qclient.request((0, _graphqlTag.default)`
165
285
  mutation Spawn($cwd: String!, $cmd: String!, $args: [String!]!) {
166
286
  spawn(cwd: $cwd, cmd: $cmd, args: $args) {
167
287
  ...Task
@@ -170,50 +290,73 @@ class MyrClient {
170
290
 
171
291
  ${_jillMyr.TaskFragment}
172
292
  `, {
173
- cwd,
174
- cmd,
175
- args
176
- });
177
- return spawn;
293
+ cwd,
294
+ cmd,
295
+ args
296
+ });
297
+ return spawn;
298
+ }));
178
299
  });
179
300
  }
180
301
 
181
- async spawnScript(wks, script, args = []) {
182
- return await this.spawn(wks.cwd, await wks.project.packageManager(), [script, ...args]);
302
+ spawnScript(wks, script, args = []) {
303
+ return __awaiter(this, void 0, void 0, function* () {
304
+ return yield this.spawn(wks.cwd, yield wks.project.packageManager(), [script, ...args]);
305
+ });
183
306
  }
184
307
 
185
- async logs() {
186
- try {
187
- const res = await this._qclient.request((0, _graphqlTag.default)`
308
+ logs() {
309
+ return __awaiter(this, void 0, void 0, function* () {
310
+ try {
311
+ const res = yield this._qclient.request((0, _graphqlTag.default)`
188
312
  query Logs {
189
313
  logs
190
314
  }
191
315
  `);
192
- return res.logs;
193
- } catch (error) {
194
- if (error.code !== 'ECONNREFUSED') throw error;
195
- return [];
196
- }
316
+ return res.logs;
317
+ } catch (error) {
318
+ if (error.code !== 'ECONNREFUSED') throw error;
319
+ return [];
320
+ }
321
+ });
197
322
  }
198
323
 
199
- async *logs$() {
200
- try {
201
- for await (const {
202
- log
203
- } of this._subscription((0, _graphqlTag.default)`subscription Logs { log }`, {})) {
204
- yield log;
324
+ logs$() {
325
+ return __asyncGenerator(this, arguments, function* logs$_1() {
326
+ var e_1, _a;
327
+
328
+ try {
329
+ try {
330
+ for (var _b = __asyncValues(this._subscription((0, _graphqlTag.default)`subscription Logs { log }`, {})), _c; _c = yield __await(_b.next()), !_c.done;) {
331
+ const {
332
+ log
333
+ } = _c.value;
334
+ yield yield __await(log);
335
+ }
336
+ } catch (e_1_1) {
337
+ e_1 = {
338
+ error: e_1_1
339
+ };
340
+ } finally {
341
+ try {
342
+ if (_c && !_c.done && (_a = _b.return)) yield __await(_a.call(_b));
343
+ } finally {
344
+ if (e_1) throw e_1.error;
345
+ }
346
+ }
347
+ } catch (error) {
348
+ if (error.code !== 'ECONNREFUSED') throw error;
349
+ return yield __await(void 0);
205
350
  }
206
- } catch (error) {
207
- if (error.code !== 'ECONNREFUSED') throw error;
208
- return;
209
- }
351
+ });
210
352
  }
211
353
 
212
- async kill(id) {
213
- return await this._autoStart(async () => {
214
- const {
215
- kill
216
- } = await this._qclient.request((0, _graphqlTag.default)`
354
+ kill(id) {
355
+ return __awaiter(this, void 0, void 0, function* () {
356
+ return yield this._autoStart(() => __awaiter(this, void 0, void 0, function* () {
357
+ const {
358
+ kill
359
+ } = yield this._qclient.request((0, _graphqlTag.default)`
217
360
  mutation Kill($id: ID!) {
218
361
  kill(id: $id) {
219
362
  ...Task
@@ -222,13 +365,14 @@ class MyrClient {
222
365
 
223
366
  ${_jillMyr.TaskFragment}
224
367
  `, {
225
- id
226
- });
227
- return kill;
368
+ id
369
+ });
370
+ return kill;
371
+ }));
228
372
  });
229
373
  }
230
374
 
231
375
  }
232
376
 
233
377
  exports.MyrClient = MyrClient;
234
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9teXItY2xpZW50LnRzIl0sIm5hbWVzIjpbIk15ckNsaWVudCIsImNvbnN0cnVjdG9yIiwicHJvamVjdCIsImxvZ2dlciIsImNoaWxkIiwiY29udGV4dCIsIm5hbWUiLCJHcmFwaFFMQ2xpZW50IiwiX2VuZHBvaW50IiwidXJsIiwicmVwbGFjZSIsIndlYlNvY2tldEltcGwiLCJXZWJTb2NrZXQiLCJsYXp5IiwiX2F1dG9TdGFydCIsImZuIiwiZXJyb3IiLCJjb2RlIiwiX2xvZ2dlciIsInZlcmJvc2UiLCJzdGFydCIsIl9zdWJzY3JpcHRpb24iLCJxdWVyeSIsInZhcmlhYmxlcyIsIlJlcGVhdGVyIiwicHVzaCIsInN0b3AiLCJfc2NsaWVudCIsInN1YnNjcmliZSIsIm5leHQiLCJ2YWx1ZSIsImRhdGEiLCJ0aGVuIiwiY29tcGxldGUiLCJwYXRoIiwicmVzb2x2ZSIsIl9fZGlybmFtZSIsImN3ZCIsInJvb3QiLCJkZXRhY2hlZCIsInN0ZGlvIiwic3Rkb3V0Iiwib24iLCJtc2ciLCJsaW5lIiwidG9TdHJpbmciLCJzcGxpdCIsImxldmVsIiwibWVzc2FnZSIsIm1ldGEiLCJKU09OIiwicGFyc2UiLCJsb2ciLCJzdGRlcnIiLCJQcm9taXNlIiwicmVqZWN0Iiwic2lnbmFsIiwiRXJyb3IiLCJzZW5kIiwiX3FjbGllbnQiLCJyZXF1ZXN0IiwidGFza3MiLCJUYXNrRnJhZ21lbnQiLCJzcGF3biIsImNtZCIsImFyZ3MiLCJzcGF3blNjcmlwdCIsIndrcyIsInNjcmlwdCIsInBhY2thZ2VNYW5hZ2VyIiwibG9ncyIsInJlcyIsImxvZ3MkIiwia2lsbCIsImlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQVVBO0FBQ08sTUFBTUEsU0FBTixDQUFnQjtBQUNyQjtBQVVBO0FBQ0FDLEVBQUFBLFdBQVcsQ0FDQUMsT0FEQSxFQUVUO0FBQUEsU0FE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O0FBQ2QsVUFBSUEsS0FBSyxDQUFDQyxJQUFOLEtBQWUsY0FBbkIsRUFBbUMsTUFBTUQsS0FBTjtBQUVuQyxhQUFPLEVBQVA7QUFDRDtBQUNGOztBQUVXLFNBQUx3RCxLQUFLLEdBQXdCO0FBQ2xDLFFBQUk7QUFDRixpQkFBVyxNQUFNO0FBQUVwQixRQUFBQTtBQUFGLE9BQWpCLElBQTRCLEtBQUsvQixhQUFMLENBQWlDLHdCQUFJLDJCQUFyQyxFQUFpRSxFQUFqRSxDQUE1QixFQUFrRztBQUNoRyxjQUFNK0IsR0FBTjtBQUNEO0FBQ0YsS0FKRCxDQUlFLE9BQU9wQyxLQUFQLEVBQWM7QUFDZCxVQUFJQSxLQUFLLENBQUNDLElBQU4sS0FBZSxjQUFuQixFQUFtQyxNQUFNRCxLQUFOO0FBRW5DO0FBQ0Q7QUFDRjs7QUFFUyxRQUFKeUQsSUFBSSxDQUFDQyxFQUFELEVBQXdDO0FBQ2hELFdBQU8sTUFBTSxLQUFLNUQsVUFBTCxDQUFnQixZQUFZO0FBQ3ZDLFlBQU07QUFBRTJELFFBQUFBO0FBQUYsVUFBVyxNQUFNLEtBQUtkLFFBQUwsQ0FBY0MsT0FBZCxDQUFrRCx3QkFBSTtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZRSxxQkFBYTtBQUN6QixPQVI2QixFQVFwQjtBQUFFWSxRQUFBQTtBQUFGLE9BUm9CLENBQXZCO0FBVUEsYUFBT0QsSUFBUDtBQUNELEtBWlksQ0FBYjtBQWFEOztBQXJMb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dnZXIsIFByb2plY3QsIFdvcmtzcGFjZSB9IGZyb20gJ0BqdWp1bGVnby9qaWxsLWNvcmUnO1xuaW1wb3J0IHsgU3Bhd25BcmdzLCBUYXNrLCBUYXNrRnJhZ21lbnQgfSBmcm9tICdAanVqdWxlZ28vamlsbC1teXInO1xuaW1wb3J0IHsgUmVwZWF0ZXIgfSBmcm9tICdAcmVwZWF0ZXJqcy9yZXBlYXRlcic7XG5pbXBvcnQgeyBmb3JrIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBEb2N1bWVudE5vZGUsIHByaW50IH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBHcmFwaFFMQ2xpZW50IH0gZnJvbSAnZ3JhcGhxbC1yZXF1ZXN0JztcbmltcG9ydCB7IGNyZWF0ZUNsaWVudCB9IGZyb20gJ2dyYXBocWwtd3MnO1xuaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBXZWJTb2NrZXQgZnJvbSAnd3MnO1xuXG5cbi8vIFR5cGVzXG50eXBlIElMb2cgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiAmIHtcbiAgLy8gQXR0cmlidXRlc1xuICBsZXZlbDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuXG4vLyBDbGFzc1xuZXhwb3J0IGNsYXNzIE15ckNsaWVudCB7XG4gIC8vIEF0dHJpYnV0ZXNcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9nZ2VyID0gbG9nZ2VyLmNoaWxkKHsgY29udGV4dDogTXlyQ2xpZW50Lm5hbWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VuZHBvaW50ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMS9ncmFwaHFsJztcbiAgcHJpdmF0ZSByZWFkb25seSBfcWNsaWVudCA9IG5ldyBHcmFwaFFMQ2xpZW50KHRoaXMuX2VuZHBvaW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2NsaWVudCA9IGNyZWF0ZUNsaWVudCh7XG4gICAgdXJsOiB0aGlzLl9lbmRwb2ludC5yZXBsYWNlKC9eaHR0cC8sICd3cycpLFxuICAgIHdlYlNvY2tldEltcGw6IFdlYlNvY2tldCxcbiAgICBsYXp5OiB0cnVlXG4gIH0pO1xuXG4gIC8vIENvbnN0cnVjdG9yXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IHByb2plY3Q6IFByb2plY3QsXG4gICkge31cblxuICAvLyBNZXRob2RzXG4gIHByb3RlY3RlZCBhc3luYyBfYXV0b1N0YXJ0PFQ+KGZuOiAoKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmbigpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IuY29kZSAhPT0gJ0VDT05OUkVGVVNFRCcpIHRocm93IGVycm9yO1xuXG4gICAgICAvLyBTdGFydCBteXIgaWYgY29ubmVjdGlvbiBpbXBvc3NpYmxlXG4gICAgICB0aGlzLl9sb2dnZXIudmVyYm9zZSgnVW5hYmxlIHRvIGNvbm5lY3QgdG8gbXlyIHNlcnZlciwgdHJ5aW5nIHRvIHN0YXJ0IGl0Jyk7XG4gICAgICBhd2FpdCB0aGlzLnN0YXJ0KCk7XG5cbiAgICAgIC8vIFJldHJ5XG4gICAgICByZXR1cm4gYXdhaXQgZm4oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX3N1YnNjcmlwdGlvbjxUPihxdWVyeTogRG9jdW1lbnROb2RlLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUmVwZWF0ZXI8VD4ge1xuICAgIHJldHVybiBuZXcgUmVwZWF0ZXI8VD4oKHB1c2gsIHN0b3ApID0+IHtcbiAgICAgIHRoaXMuX3NjbGllbnQuc3Vic2NyaWJlPFQ+KHsgcXVlcnk6IHByaW50KHF1ZXJ5KSwgdmFyaWFibGVzIH0sIHtcbiAgICAgICAgbmV4dCh2YWx1ZSkge1xuICAgICAgICAgIHB1c2godmFsdWUuZGF0YSEpLnRoZW4oKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IoZXJyb3IpIHtcbiAgICAgICAgICBzdG9wKGVycm9yKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNoaWxkID0gZm9yayhwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi9teXIucHJvY2VzcycpLCBbXSwge1xuICAgICAgY3dkOiB0aGlzLnByb2plY3Qucm9vdCxcbiAgICAgIGRldGFjaGVkOiB0cnVlLFxuICAgICAgc3RkaW86IFsnaWdub3JlJywgJ3BpcGUnLCAncGlwZScsICdpcGMnXSxcbiAgICB9KTtcblxuICAgIC8vIFRyYW5zbWl0IGxvZ3MgdG8gbG9nZ2VyXG4gICAgY2hpbGQuc3Rkb3V0Py5vbignZGF0YScsIChtc2c6IEJ1ZmZlcikgPT4ge1xuICAgICAgZm9yIChjb25zdCBsaW5lIG9mIG1zZy50b1N0cmluZygndXRmLTgnKS5zcGxpdCgnXFxuJykpIHtcbiAgICAgICAgaWYgKCFsaW5lKSBjb250aW51ZTtcblxuICAgICAgICBjb25zdCB7IGxldmVsLCBtZXNzYWdlLCAuLi5tZXRhIH0gPSBKU09OLnBhcnNlKGxpbmUpIGFzIElMb2c7XG4gICAgICAgIGxvZ2dlci5sb2cobGV2ZWwsIG1lc3NhZ2UsIG1ldGEpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY2hpbGQuc3RkZXJyPy5vbignZGF0YScsIChtc2c6IEJ1ZmZlcikgPT4ge1xuICAgICAgbG9nZ2VyLmVycm9yKG1zZy50b1N0cmluZygndXRmLTgnKSk7XG4gICAgfSk7XG5cbiAgICAvLyBTdGFydCBzZXJ2ZXJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY2hpbGQub24oJ21lc3NhZ2UnLCAobXNnOiAnc3RhcnRlZCcgfCBFcnJvcikgPT4ge1xuICAgICAgICBpZiAobXNnID09PSAnc3RhcnRlZCcpIHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KG1zZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBjaGlsZC5vbignY2xvc2UnLCAoY29kZSwgc2lnbmFsKSA9PiB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoYE15ciBwcm9jZXNzIGVuZGVkIHdpdGggY29kZSAke2NvZGV9IGJ5IHNpZ25hbCAke3NpZ25hbH1gKSk7XG4gICAgICB9KTtcblxuICAgICAgY2hpbGQuc2VuZCgnc3RhcnQnKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuX3FjbGllbnQucmVxdWVzdChncWxgXG4gICAgICAgIG11dGF0aW9uIFNodXRkb3duIHtcbiAgICAgICAgICAgIHNodXRkb3duXG4gICAgICAgIH1cbiAgICBgKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvci5jb2RlICE9PSAnRUNPTk5SRUZVU0VEJykgdGhyb3cgZXJyb3I7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB0YXNrcygpOiBQcm9taXNlPFRhc2tbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9hdXRvU3RhcnQoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyB0YXNrcyB9ID0gYXdhaXQgdGhpcy5fcWNsaWVudC5yZXF1ZXN0PHsgdGFza3M6IFRhc2tbXSB9PihncWxgXG4gICAgICAgICAgcXVlcnkgVGFza3Mge1xuICAgICAgICAgICAgICB0YXNrcyB7XG4gICAgICAgICAgICAgICAgICAuLi5UYXNrXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAke1Rhc2tGcmFnbWVudH1cbiAgICAgIGApO1xuXG4gICAgICByZXR1cm4gdGFza3M7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzcGF3bihjd2Q6IHN0cmluZywgY21kOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPFRhc2s+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fYXV0b1N0YXJ0KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgc3Bhd24gfSA9IGF3YWl0IHRoaXMuX3FjbGllbnQucmVxdWVzdDx7IHNwYXduOlRhc2sgfSxTcGF3bkFyZ3M+KGdxbGBcbiAgICAgICAgICBtdXRhdGlvbiBTcGF3bigkY3dkOiBTdHJpbmchLCAkY21kOiBTdHJpbmchLCAkYXJnczogW1N0cmluZyFdISkge1xuICAgICAgICAgICAgICBzcGF3bihjd2Q6ICRjd2QsIGNtZDogJGNtZCwgYXJnczogJGFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgIC4uLlRhc2tcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICR7VGFza0ZyYWdtZW50fVxuICAgICAgYCwgeyBjd2QsIGNtZCwgYXJncyB9KTtcblxuICAgICAgcmV0dXJuIHNwYXduO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc3Bhd25TY3JpcHQod2tzOiBXb3Jrc3BhY2UsIHNjcmlwdDogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSA9IFtdKTogUHJvbWlzZTxUYXNrPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc3Bhd24od2tzLmN3ZCwgYXdhaXQgd2tzLnByb2plY3QucGFja2FnZU1hbmFnZXIoKSwgW3NjcmlwdCwgLi4uYXJnc10pO1xuICB9XG5cbiAgYXN5bmMgbG9ncygpOiBQcm9taXNlPGFueVtdPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuX3FjbGllbnQucmVxdWVzdDx7IGxvZ3M6IGFueVtdIH0+KGdxbGBcbiAgICAgICAgICBxdWVyeSBMb2dzIHtcbiAgICAgICAgICAgICAgbG9nc1xuICAgICAgICAgIH1cbiAgICAgIGApO1xuXG4gICAgICByZXR1cm4gcmVzLmxvZ3M7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvci5jb2RlICE9PSAnRUNPTk5SRUZVU0VEJykgdGhyb3cgZXJyb3I7XG5cbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBhc3luYyogbG9ncyQoKTogQXN5bmNHZW5lcmF0b3I8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgeyBsb2cgfSBvZiB0aGlzLl9zdWJzY3JpcHRpb248eyBsb2c6IGFueSB9PihncWxgc3Vic2NyaXB0aW9uIExvZ3MgeyBsb2cgfWAsIHt9KSkge1xuICAgICAgICB5aWVsZCBsb2c7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvci5jb2RlICE9PSAnRUNPTk5SRUZVU0VEJykgdGhyb3cgZXJyb3I7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBhc3luYyBraWxsKGlkOiBzdHJpbmcpOiBQcm9taXNlPFRhc2sgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fYXV0b1N0YXJ0KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsga2lsbCB9ID0gYXdhaXQgdGhpcy5fcWNsaWVudC5yZXF1ZXN0PHsga2lsbDogVGFzayB8IHVuZGVmaW5lZCB9PihncWxgXG4gICAgICAgICAgbXV0YXRpb24gS2lsbCgkaWQ6IElEISkge1xuICAgICAgICAgICAgICBraWxsKGlkOiAkaWQpIHtcbiAgICAgICAgICAgICAgICAgIC4uLlRhc2tcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICR7VGFza0ZyYWdtZW50fVxuICAgICAgYCwgeyBpZCB9KTtcblxuICAgICAgcmV0dXJuIGtpbGw7XG4gICAgfSk7XG4gIH1cbn0iXSwiZmlsZSI6Im15ci9teXItY2xpZW50LmpzIn0=
378
+ //# sourceMappingURL=myr-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/myr-client.ts","myr/myr-client.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__rest","s","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__asyncValues","o","Symbol","asyncIterator","TypeError","m","__values","iterator","verb","n","v","settle","d","__await","__asyncGenerator","g","q","a","b","push","resume","r","fulfill","f","shift","MyrClient","constructor","project","_logger","logger","child","context","name","_endpoint","_qclient","GraphQLClient","_sclient","url","replace","webSocketImpl","WebSocket","lazy","_autoStart","fn","error","code","verbose","start","_subscription","query","variables","Repeater","stop","subscribe","data","complete","_a","_b","path","__dirname","cwd","root","detached","stdio","stdout","on","msg","line","toString","split","JSON","parse","level","message","meta","log","stderr","signal","Error","send","request","tasks","TaskFragment","spawn","cmd","args","spawnScript","wks","script","packageManager","logs","res","logs$","arguments","logs$_1","e_1","_c","e_1_1","return","kill","id"],"mappings":"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","file":"myr-client.js","sourcesContent":["import { logger, Project, Workspace } from '@jujulego/jill-core';\nimport { SpawnArgs, Task, TaskFragment } from '@jujulego/jill-myr';\nimport { Repeater } from '@repeaterjs/repeater';\nimport { fork } from 'child_process';\nimport { DocumentNode, print } from 'graphql';\nimport { GraphQLClient } from 'graphql-request';\nimport { createClient } from 'graphql-ws';\nimport gql from 'graphql-tag';\nimport path from 'path';\nimport WebSocket from 'ws';\n\n\n// Types\ntype ILog = Record<string, unknown> & {\n // Attributes\n level: string;\n message: string;\n};\n\n// Class\nexport class MyrClient {\n // Attributes\n private readonly _logger = logger.child({ context: MyrClient.name });\n private readonly _endpoint = 'http://localhost:5001/graphql';\n private readonly _qclient = new GraphQLClient(this._endpoint);\n private readonly _sclient = createClient({\n url: this._endpoint.replace(/^http/, 'ws'),\n webSocketImpl: WebSocket,\n lazy: true\n });\n\n // Constructor\n constructor(\n readonly project: Project,\n ) {}\n\n // Methods\n protected async _autoStart<T>(fn: () => Promise<T>): Promise<T> {\n try {\n return await fn();\n } catch (error) {\n if (error.code !== 'ECONNREFUSED') throw error;\n\n // Start myr if connection impossible\n this._logger.verbose('Unable to connect to myr server, trying to start it');\n await this.start();\n\n // Retry\n return await fn();\n }\n }\n\n protected _subscription<T>(query: DocumentNode, variables: Record<string, unknown>): Repeater<T> {\n return new Repeater<T>((push, stop) => {\n this._sclient.subscribe<T>({ query: print(query), variables }, {\n next(value) {\n push(value.data!).then();\n },\n error(error) {\n stop(error);\n },\n complete() {\n stop();\n }\n });\n });\n }\n\n start(): Promise<void> {\n const child = fork(path.resolve(__dirname, './myr.process'), [], {\n cwd: this.project.root,\n detached: true,\n stdio: ['ignore', 'pipe', 'pipe', 'ipc'],\n });\n\n // Transmit logs to logger\n child.stdout?.on('data', (msg: Buffer) => {\n for (const line of msg.toString('utf-8').split('\\n')) {\n if (!line) continue;\n\n const { level, message, ...meta } = JSON.parse(line) as ILog;\n logger.log(level, message, meta);\n }\n });\n\n child.stderr?.on('data', (msg: Buffer) => {\n logger.error(msg.toString('utf-8'));\n });\n\n // Start server\n return new Promise<void>((resolve, reject) => {\n child.on('message', (msg: 'started' | Error) => {\n if (msg === 'started') {\n resolve();\n } else {\n reject(msg);\n }\n });\n\n child.on('close', (code, signal) => {\n reject(new Error(`Myr process ended with code ${code} by signal ${signal}`));\n });\n\n child.send('start');\n });\n }\n\n async stop(): Promise<boolean> {\n try {\n await this._qclient.request(gql`\n mutation Shutdown {\n shutdown\n }\n `);\n\n return true;\n } catch (error) {\n if (error.code !== 'ECONNREFUSED') throw error;\n\n return false;\n }\n }\n\n async tasks(): Promise<Task[]> {\n return await this._autoStart(async () => {\n const { tasks } = await this._qclient.request<{ tasks: Task[] }>(gql`\n query Tasks {\n tasks {\n ...Task\n }\n }\n\n ${TaskFragment}\n `);\n\n return tasks;\n });\n }\n\n async spawn(cwd: string, cmd: string, args: string[] = []): Promise<Task> {\n return await this._autoStart(async () => {\n const { spawn } = await this._qclient.request<{ spawn:Task },SpawnArgs>(gql`\n mutation Spawn($cwd: String!, $cmd: String!, $args: [String!]!) {\n spawn(cwd: $cwd, cmd: $cmd, args: $args) {\n ...Task\n }\n }\n\n ${TaskFragment}\n `, { cwd, cmd, args });\n\n return spawn;\n });\n }\n\n async spawnScript(wks: Workspace, script: string, args: string[] = []): Promise<Task> {\n return await this.spawn(wks.cwd, await wks.project.packageManager(), [script, ...args]);\n }\n\n async logs(): Promise<any[]> {\n try {\n const res = await this._qclient.request<{ logs: any[] }>(gql`\n query Logs {\n logs\n }\n `);\n\n return res.logs;\n } catch (error) {\n if (error.code !== 'ECONNREFUSED') throw error;\n\n return [];\n }\n }\n\n async* logs$(): AsyncGenerator<any> {\n try {\n for await (const { log } of this._subscription<{ log: any }>(gql`subscription Logs { log }`, {})) {\n yield log;\n }\n } catch (error) {\n if (error.code !== 'ECONNREFUSED') throw error;\n\n return;\n }\n }\n\n async kill(id: string): Promise<Task | undefined> {\n return await this._autoStart(async () => {\n const { kill } = await this._qclient.request<{ kill: Task | undefined }>(gql`\n mutation Kill($id: ID!) {\n kill(id: $id) {\n ...Task\n }\n }\n\n ${TaskFragment}\n `, { id });\n\n return kill;\n });\n }\n}","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { logger } from '@jujulego/jill-core';\nimport { TaskFragment } from '@jujulego/jill-myr';\nimport { Repeater } from '@repeaterjs/repeater';\nimport { fork } from 'child_process';\nimport { print } from 'graphql';\nimport { GraphQLClient } from 'graphql-request';\nimport { createClient } from 'graphql-ws';\nimport gql from 'graphql-tag';\nimport path from 'path';\nimport WebSocket from 'ws';\n// Class\nexport class MyrClient {\n // Constructor\n constructor(project) {\n this.project = project;\n // Attributes\n this._logger = logger.child({ context: MyrClient.name });\n this._endpoint = 'http://localhost:5001/graphql';\n this._qclient = new GraphQLClient(this._endpoint);\n this._sclient = createClient({\n url: this._endpoint.replace(/^http/, 'ws'),\n webSocketImpl: WebSocket,\n lazy: true\n });\n }\n // Methods\n _autoStart(fn) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield fn();\n }\n catch (error) {\n if (error.code !== 'ECONNREFUSED')\n throw error;\n // Start myr if connection impossible\n this._logger.verbose('Unable to connect to myr server, trying to start it');\n yield this.start();\n // Retry\n return yield fn();\n }\n });\n }\n _subscription(query, variables) {\n return new Repeater((push, stop) => {\n this._sclient.subscribe({ query: print(query), variables }, {\n next(value) {\n push(value.data).then();\n },\n error(error) {\n stop(error);\n },\n complete() {\n stop();\n }\n });\n });\n }\n start() {\n var _a, _b;\n const child = fork(path.resolve(__dirname, './myr.process'), [], {\n cwd: this.project.root,\n detached: true,\n stdio: ['ignore', 'pipe', 'pipe', 'ipc'],\n });\n // Transmit logs to logger\n (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.on('data', (msg) => {\n for (const line of msg.toString('utf-8').split('\\n')) {\n if (!line)\n continue;\n const _a = JSON.parse(line), { level, message } = _a, meta = __rest(_a, [\"level\", \"message\"]);\n logger.log(level, message, meta);\n }\n });\n (_b = child.stderr) === null || _b === void 0 ? void 0 : _b.on('data', (msg) => {\n logger.error(msg.toString('utf-8'));\n });\n // Start server\n return new Promise((resolve, reject) => {\n child.on('message', (msg) => {\n if (msg === 'started') {\n resolve();\n }\n else {\n reject(msg);\n }\n });\n child.on('close', (code, signal) => {\n reject(new Error(`Myr process ended with code ${code} by signal ${signal}`));\n });\n child.send('start');\n });\n }\n stop() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield this._qclient.request(gql `\n mutation Shutdown {\n shutdown\n }\n `);\n return true;\n }\n catch (error) {\n if (error.code !== 'ECONNREFUSED')\n throw error;\n return false;\n }\n });\n }\n tasks() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this._autoStart(() => __awaiter(this, void 0, void 0, function* () {\n const { tasks } = yield this._qclient.request(gql `\n query Tasks {\n tasks {\n ...Task\n }\n }\n\n ${TaskFragment}\n `);\n return tasks;\n }));\n });\n }\n spawn(cwd, cmd, args = []) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this._autoStart(() => __awaiter(this, void 0, void 0, function* () {\n const { spawn } = yield this._qclient.request(gql `\n mutation Spawn($cwd: String!, $cmd: String!, $args: [String!]!) {\n spawn(cwd: $cwd, cmd: $cmd, args: $args) {\n ...Task\n }\n }\n\n ${TaskFragment}\n `, { cwd, cmd, args });\n return spawn;\n }));\n });\n }\n spawnScript(wks, script, args = []) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.spawn(wks.cwd, yield wks.project.packageManager(), [script, ...args]);\n });\n }\n logs() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const res = yield this._qclient.request(gql `\n query Logs {\n logs\n }\n `);\n return res.logs;\n }\n catch (error) {\n if (error.code !== 'ECONNREFUSED')\n throw error;\n return [];\n }\n });\n }\n logs$() {\n return __asyncGenerator(this, arguments, function* logs$_1() {\n var e_1, _a;\n try {\n try {\n for (var _b = __asyncValues(this._subscription(gql `subscription Logs { log }`, {})), _c; _c = yield __await(_b.next()), !_c.done;) {\n const { log } = _c.value;\n yield yield __await(log);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) yield __await(_a.call(_b));\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n catch (error) {\n if (error.code !== 'ECONNREFUSED')\n throw error;\n return yield __await(void 0);\n }\n });\n }\n kill(id) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this._autoStart(() => __awaiter(this, void 0, void 0, function* () {\n const { kill } = yield this._qclient.request(gql `\n mutation Kill($id: ID!) {\n kill(id: $id) {\n ...Task\n }\n }\n\n ${TaskFragment}\n `, { id });\n return kill;\n }));\n });\n }\n}"]}
@@ -1,4 +1,4 @@
1
- import { Builder, Command } from '../command';
1
+ import { Builder, Command } from '@jujulego/jill-common';
2
2
  export declare class MyrCommand extends Command {
3
3
  readonly name = "myr";
4
4
  readonly description = "Interact with myr server";
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/myr.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AASzD,qBAAa,UAAW,SAAQ,OAAO;IAErC,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,WAAW,8BAA8B;IAElD,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAMnC;IAGF,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAI7D,SAAS,CAAC,GAAG,IAAI,MAAM;CAGxB","file":"myr.command.d.ts","sourcesContent":["import { Builder, Command } from '@jujulego/jill-common';\n\nimport { KillCommand } from './commands/kill.command';\nimport { ListCommand } from './commands/list.command';\nimport { LogsCommand } from './commands/logs.command';\nimport { SpawnCommand } from './commands/spawn.command';\nimport { StopCommand } from './commands/stop.command';\n\n// Command\nexport class MyrCommand extends Command {\n // Properties\n readonly name = 'myr';\n readonly description = 'Interact with myr server';\n\n readonly commands: readonly Command[] = [\n new KillCommand(),\n new ListCommand(),\n new LogsCommand(),\n new SpawnCommand(),\n new StopCommand(),\n ];\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U> {\n return yargs => this.commands.reduce((y, cmd) => cmd.setup(y), builder(yargs));\n }\n\n protected run(): number {\n return 0;\n }\n}\n"]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.MyrCommand = void 0;
7
7
 
8
- var _command = require("../command");
8
+ var _jillCommon = require("@jujulego/jill-common");
9
9
 
10
10
  var _kill = require("./commands/kill.command");
11
11
 
@@ -17,21 +17,17 @@ var _spawn = require("./commands/spawn.command");
17
17
 
18
18
  var _stop = require("./commands/stop.command");
19
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
20
  // Command
23
- class MyrCommand extends _command.Command {
24
- constructor(...args) {
25
- super(...args);
26
-
27
- _defineProperty(this, "name", 'myr');
21
+ class MyrCommand extends _jillCommon.Command {
22
+ constructor() {
23
+ super(...arguments); // Properties
28
24
 
29
- _defineProperty(this, "description", 'Interact with myr server');
25
+ this.name = 'myr';
26
+ this.description = 'Interact with myr server';
27
+ this.commands = [new _kill.KillCommand(), new _list.ListCommand(), new _logs.LogsCommand(), new _spawn.SpawnCommand(), new _stop.StopCommand()];
28
+ } // Methods
30
29
 
31
- _defineProperty(this, "commands", [new _kill.KillCommand(), new _list.ListCommand(), new _logs.LogsCommand(), new _spawn.SpawnCommand(), new _stop.StopCommand()]);
32
- }
33
30
 
34
- // Methods
35
31
  define(builder) {
36
32
  return yargs => this.commands.reduce((y, cmd) => cmd.setup(y), builder(yargs));
37
33
  }
@@ -43,4 +39,4 @@ class MyrCommand extends _command.Command {
43
39
  }
44
40
 
45
41
  exports.MyrCommand = MyrCommand;
46
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9teXIuY29tbWFuZC50cyJdLCJuYW1lcyI6WyJNeXJDb21tYW5kIiwiQ29tbWFuZCIsIktpbGxDb21tYW5kIiwiTGlzdENvbW1hbmQiLCJMb2dzQ29tbWFuZCIsIlNwYXduQ29tbWFuZCIsIlN0b3BDb21tYW5kIiwiZGVmaW5lIiwiYnVpbGRlciIsInlhcmdzIiwiY29tbWFuZHMiLCJyZWR1Y2UiLCJ5IiwiY21kIiwic2V0dXAiLCJydW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBO0FBQ08sTUFBTUEsVUFBTixTQUF5QkMsZ0JBQXpCLENBQWlDO0FBQUE7QUFBQTs7QUFBQSxrQ0FFdEIsS0FGc0I7O0FBQUEseUNBR2YsMEJBSGU7O0FBQUEsc0NBS0UsQ0FDdEMsSUFBSUMsaUJBQUosRUFEc0MsRUFFdEMsSUFBSUMsaUJBQUosRUFGc0MsRUFHdEMsSUFBSUMsaUJBQUosRUFIc0MsRUFJdEMsSUFBSUMsbUJBQUosRUFKc0MsRUFLdEMsSUFBSUMsaUJBQUosRUFMc0MsQ0FMRjtBQUFBOztBQWF0QztBQUNVQyxFQUFBQSxNQUFNLENBQU9DLE9BQVAsRUFBOEM7QUFDNUQsV0FBT0MsS0FBSyxJQUFJLEtBQUtDLFFBQUwsQ0FBY0MsTUFBZCxDQUFxQixDQUFDQyxDQUFELEVBQUlDLEdBQUosS0FBWUEsR0FBRyxDQUFDQyxLQUFKLENBQVVGLENBQVYsQ0FBakMsRUFBK0NKLE9BQU8sQ0FBQ0MsS0FBRCxDQUF0RCxDQUFoQjtBQUNEOztBQUVTTSxFQUFBQSxHQUFHLEdBQVc7QUFDdEIsV0FBTyxDQUFQO0FBQ0Q7O0FBcEJxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWxkZXIsIENvbW1hbmQgfSBmcm9tICcuLi9jb21tYW5kJztcbmltcG9ydCB7IEtpbGxDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9raWxsLmNvbW1hbmQnO1xuaW1wb3J0IHsgTGlzdENvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL2xpc3QuY29tbWFuZCc7XG5pbXBvcnQgeyBMb2dzQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvbG9ncy5jb21tYW5kJztcbmltcG9ydCB7IFNwYXduQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvc3Bhd24uY29tbWFuZCc7XG5pbXBvcnQgeyBTdG9wQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvc3RvcC5jb21tYW5kJztcblxuLy8gQ29tbWFuZFxuZXhwb3J0IGNsYXNzIE15ckNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kIHtcbiAgLy8gUHJvcGVydGllc1xuICByZWFkb25seSBuYW1lID0gJ215cic7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gJ0ludGVyYWN0IHdpdGggbXlyIHNlcnZlcic7XG5cbiAgcmVhZG9ubHkgY29tbWFuZHM6IHJlYWRvbmx5IENvbW1hbmRbXSA9IFtcbiAgICBuZXcgS2lsbENvbW1hbmQoKSxcbiAgICBuZXcgTGlzdENvbW1hbmQoKSxcbiAgICBuZXcgTG9nc0NvbW1hbmQoKSxcbiAgICBuZXcgU3Bhd25Db21tYW5kKCksXG4gICAgbmV3IFN0b3BDb21tYW5kKCksXG4gIF07XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFU+IHtcbiAgICByZXR1cm4geWFyZ3MgPT4gdGhpcy5jb21tYW5kcy5yZWR1Y2UoKHksIGNtZCkgPT4gY21kLnNldHVwKHkpLCBidWlsZGVyKHlhcmdzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcnVuKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbn0iXSwiZmlsZSI6Im15ci9teXIuY29tbWFuZC5qcyJ9
42
+ //# sourceMappingURL=myr.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/myr.command.ts","myr/myr.command.js"],"names":["MyrCommand","Command","constructor","arguments","name","description","commands","KillCommand","ListCommand","LogsCommand","SpawnCommand","StopCommand","define","builder","yargs","reduce","y","cmd","setup","run"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;AACM,MAAOA,UAAP,SAA0BC,mBAA1B,CAAiC;AAAvCC,EAAAA,WAAA,GAAA;ACAQ,UAAM,GAAGC,SAAT,EDAR,CACE;;AACS,SAAAC,IAAA,GAAO,KAAP;AACA,SAAAC,WAAA,GAAc,0BAAd;AAEA,SAAAC,QAAA,GAA+B,CACtC,IAAIC,iBAAJ,EADsC,EAEtC,IAAIC,iBAAJ,EAFsC,EAGtC,IAAIC,iBAAJ,EAHsC,EAItC,IAAIC,mBAAJ,EAJsC,EAKtC,IAAIC,iBAAJ,EALsC,CAA/B;AAgBV,GArBsC,CAarC;;;AACUC,EAAAA,MAAM,CAAOC,OAAP,EAA6B;AAC3C,WAAOC,KAAK,IAAI,KAAKR,QAAL,CAAcS,MAAd,CAAqB,CAACC,CAAD,EAAIC,GAAJ,KAAYA,GAAG,CAACC,KAAJ,CAAUF,CAAV,CAAjC,EAA+CH,OAAO,CAACC,KAAD,CAAtD,CAAhB;AACD;;AAESK,EAAAA,GAAG,GAAA;AACX,WAAO,CAAP;AACD;;AApBoC","file":"myr.command.js","sourcesContent":["import { Builder, Command } from '@jujulego/jill-common';\n\nimport { KillCommand } from './commands/kill.command';\nimport { ListCommand } from './commands/list.command';\nimport { LogsCommand } from './commands/logs.command';\nimport { SpawnCommand } from './commands/spawn.command';\nimport { StopCommand } from './commands/stop.command';\n\n// Command\nexport class MyrCommand extends Command {\n // Properties\n readonly name = 'myr';\n readonly description = 'Interact with myr server';\n\n readonly commands: readonly Command[] = [\n new KillCommand(),\n new ListCommand(),\n new LogsCommand(),\n new SpawnCommand(),\n new StopCommand(),\n ];\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U> {\n return yargs => this.commands.reduce((y, cmd) => cmd.setup(y), builder(yargs));\n }\n\n protected run(): number {\n return 0;\n }\n}\n","import { Command } from '@jujulego/jill-common';\nimport { KillCommand } from './commands/kill.command';\nimport { ListCommand } from './commands/list.command';\nimport { LogsCommand } from './commands/logs.command';\nimport { SpawnCommand } from './commands/spawn.command';\nimport { StopCommand } from './commands/stop.command';\n// Command\nexport class MyrCommand extends Command {\n constructor() {\n super(...arguments);\n // Properties\n this.name = 'myr';\n this.description = 'Interact with myr server';\n this.commands = [\n new KillCommand(),\n new ListCommand(),\n new LogsCommand(),\n new SpawnCommand(),\n new StopCommand(),\n ];\n }\n // Methods\n define(builder) {\n return yargs => this.commands.reduce((y, cmd) => cmd.setup(y), builder(yargs));\n }\n run() {\n return 0;\n }\n}"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/myr.process.ts"],"names":[],"mappings":"","file":"myr.process.d.ts","sourcesContent":["import { logger } from '@jujulego/jill-core';\nimport { MyrServer } from '@jujulego/jill-myr';\nimport winston, { format } from 'winston';\n\n// Setup logger\nconst trans = new winston.transports.Console({\n level: 'debug',\n format: format.combine(\n format.timestamp({ format: () => new Date().toLocaleString() }),\n format.errors(),\n format.json()\n ),\n consoleWarnLevels: [],\n stderrLevels: []\n});\nlogger.add(trans);\n\n// Start server when parent is ready\nprocess.once('message', async () => {\n try {\n // Start server\n const server = await MyrServer.createServer();\n await server.start();\n\n logger.remove(trans);\n process.send?.('started');\n } catch (error) {\n process.send?.({ name: error.name, message: error.message });\n process.exit(1);\n }\n});"]}
@@ -10,6 +10,38 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
10
10
 
11
11
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
12
 
13
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) {
15
+ return value instanceof P ? value : new P(function (resolve) {
16
+ resolve(value);
17
+ });
18
+ }
19
+
20
+ return new (P || (P = Promise))(function (resolve, reject) {
21
+ function fulfilled(value) {
22
+ try {
23
+ step(generator.next(value));
24
+ } catch (e) {
25
+ reject(e);
26
+ }
27
+ }
28
+
29
+ function rejected(value) {
30
+ try {
31
+ step(generator["throw"](value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ }
36
+
37
+ function step(result) {
38
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
39
+ }
40
+
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+
13
45
  // Setup logger
14
46
  const trans = new _winston.default.transports.Console({
15
47
  level: 'debug',
@@ -23,21 +55,23 @@ const trans = new _winston.default.transports.Console({
23
55
  _jillCore.logger.add(trans); // Start server when parent is ready
24
56
 
25
57
 
26
- process.once('message', async () => {
58
+ process.once('message', () => __awaiter(void 0, void 0, void 0, function* () {
59
+ var _a, _b;
60
+
27
61
  try {
28
62
  // Start server
29
- const server = await _jillMyr.MyrServer.createServer();
30
- await server.start();
63
+ const server = yield _jillMyr.MyrServer.createServer();
64
+ yield server.start();
31
65
 
32
66
  _jillCore.logger.remove(trans);
33
67
 
34
- process.send?.('started');
68
+ (_a = process.send) === null || _a === void 0 ? void 0 : _a.call(process, 'started');
35
69
  } catch (error) {
36
- process.send?.({
70
+ (_b = process.send) === null || _b === void 0 ? void 0 : _b.call(process, {
37
71
  name: error.name,
38
72
  message: error.message
39
73
  });
40
74
  process.exit(1);
41
75
  }
42
- });
43
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9teXIucHJvY2Vzcy50cyJdLCJuYW1lcyI6WyJ0cmFucyIsIndpbnN0b24iLCJ0cmFuc3BvcnRzIiwiQ29uc29sZSIsImxldmVsIiwiZm9ybWF0IiwiY29tYmluZSIsInRpbWVzdGFtcCIsIkRhdGUiLCJ0b0xvY2FsZVN0cmluZyIsImVycm9ycyIsImpzb24iLCJjb25zb2xlV2FybkxldmVscyIsInN0ZGVyckxldmVscyIsImxvZ2dlciIsImFkZCIsInByb2Nlc3MiLCJvbmNlIiwic2VydmVyIiwiTXlyU2VydmVyIiwiY3JlYXRlU2VydmVyIiwic3RhcnQiLCJyZW1vdmUiLCJzZW5kIiwiZXJyb3IiLCJuYW1lIiwibWVzc2FnZSIsImV4aXQiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBO0FBQ0EsTUFBTUEsS0FBSyxHQUFHLElBQUlDLGlCQUFRQyxVQUFSLENBQW1CQyxPQUF2QixDQUErQjtBQUMzQ0MsRUFBQUEsS0FBSyxFQUFFLE9BRG9DO0FBRTNDQyxFQUFBQSxNQUFNLEVBQUVBLGdCQUFPQyxPQUFQLENBQ05ELGdCQUFPRSxTQUFQLENBQWlCO0FBQUVGLElBQUFBLE1BQU0sRUFBRSxNQUFNLElBQUlHLElBQUosR0FBV0MsY0FBWDtBQUFoQixHQUFqQixDQURNLEVBRU5KLGdCQUFPSyxNQUFQLEVBRk0sRUFHTkwsZ0JBQU9NLElBQVAsRUFITSxDQUZtQztBQU8zQ0MsRUFBQUEsaUJBQWlCLEVBQUUsRUFQd0I7QUFRM0NDLEVBQUFBLFlBQVksRUFBRTtBQVI2QixDQUEvQixDQUFkOztBQVVBQyxpQkFBT0MsR0FBUCxDQUFXZixLQUFYLEUsQ0FFQTs7O0FBQ0FnQixPQUFPLENBQUNDLElBQVIsQ0FBYSxTQUFiLEVBQXdCLFlBQVk7QUFDbEMsTUFBSTtBQUNGO0FBQ0EsVUFBTUMsTUFBTSxHQUFHLE1BQU1DLG1CQUFVQyxZQUFWLEVBQXJCO0FBQ0EsVUFBTUYsTUFBTSxDQUFDRyxLQUFQLEVBQU47O0FBRUFQLHFCQUFPUSxNQUFQLENBQWN0QixLQUFkOztBQUNBZ0IsSUFBQUEsT0FBTyxDQUFDTyxJQUFSLEdBQWUsU0FBZjtBQUNELEdBUEQsQ0FPRSxPQUFPQyxLQUFQLEVBQWM7QUFDZFIsSUFBQUEsT0FBTyxDQUFDTyxJQUFSLEdBQWU7QUFBRUUsTUFBQUEsSUFBSSxFQUFFRCxLQUFLLENBQUNDLElBQWQ7QUFBb0JDLE1BQUFBLE9BQU8sRUFBRUYsS0FBSyxDQUFDRTtBQUFuQyxLQUFmO0FBQ0FWLElBQUFBLE9BQU8sQ0FBQ1csSUFBUixDQUFhLENBQWI7QUFDRDtBQUNGLENBWkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAanVqdWxlZ28vamlsbC1jb3JlJztcbmltcG9ydCB7IE15clNlcnZlciB9IGZyb20gJ0BqdWp1bGVnby9qaWxsLW15cic7XG5pbXBvcnQgd2luc3RvbiwgeyBmb3JtYXQgfSBmcm9tICd3aW5zdG9uJztcblxuLy8gU2V0dXAgbG9nZ2VyXG5jb25zdCB0cmFucyA9IG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gIGxldmVsOiAnZGVidWcnLFxuICBmb3JtYXQ6IGZvcm1hdC5jb21iaW5lKFxuICAgIGZvcm1hdC50aW1lc3RhbXAoeyBmb3JtYXQ6ICgpID0+IG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSB9KSxcbiAgICBmb3JtYXQuZXJyb3JzKCksXG4gICAgZm9ybWF0Lmpzb24oKVxuICApLFxuICBjb25zb2xlV2FybkxldmVsczogW10sXG4gIHN0ZGVyckxldmVsczogW11cbn0pO1xubG9nZ2VyLmFkZCh0cmFucyk7XG5cbi8vIFN0YXJ0IHNlcnZlciB3aGVuIHBhcmVudCBpcyByZWFkeVxucHJvY2Vzcy5vbmNlKCdtZXNzYWdlJywgYXN5bmMgKCkgPT4ge1xuICB0cnkge1xuICAgIC8vIFN0YXJ0IHNlcnZlclxuICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IE15clNlcnZlci5jcmVhdGVTZXJ2ZXIoKTtcbiAgICBhd2FpdCBzZXJ2ZXIuc3RhcnQoKTtcblxuICAgIGxvZ2dlci5yZW1vdmUodHJhbnMpO1xuICAgIHByb2Nlc3Muc2VuZD8uKCdzdGFydGVkJyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcHJvY2Vzcy5zZW5kPy4oeyBuYW1lOiBlcnJvci5uYW1lLCBtZXNzYWdlOiBlcnJvci5tZXNzYWdlIH0pO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxufSk7Il0sImZpbGUiOiJteXIvbXlyLnByb2Nlc3MuanMifQ==
76
+ }));
77
+ //# sourceMappingURL=myr.process.js.map