@sprucelabs/spruce-cli 14.29.26 → 14.29.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [14.29.27](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.26...v14.29.27) (2022-01-08)
7
+
8
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
9
+
10
+
11
+
12
+
13
+
6
14
  ## [14.29.26](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.25...v14.29.26) (2022-01-06)
7
15
 
8
16
  **Note:** Version bump only for package @sprucelabs/spruce-cli
package/build/cli.d.ts CHANGED
@@ -44,6 +44,7 @@ export default class Cli implements CliInterface {
44
44
  on(...args: any[]): Promise<void>;
45
45
  off(...args: any[]): Promise<number>;
46
46
  emit(...args: any[]): Promise<import("@sprucelabs/mercury-types").MercuryAggregateResponse<import("@sprucelabs/schema").SchemaStaticValues<any, false, string, import("@sprucelabs/schema").StaticSchemaAllValues<any, false>>>>;
47
+ emitAndFlattenResponses(...args: any[]): Promise<import("@sprucelabs/schema").SchemaStaticValues<any, false, string, import("@sprucelabs/schema").StaticSchemaAllValues<any, false>>[]>;
47
48
  installFeatures(options: InstallFeatureOptions): Promise<import("./features/features.types").FeatureInstallResponse>;
48
49
  getFeature<C extends FeatureCode>(code: C): import("./features/features.types").FeatureMap[C];
49
50
  checkHealth(options?: HealthOptions): Promise<HealthCheckResults>;
package/build/cli.js CHANGED
@@ -183,14 +183,17 @@ var Cli = /*#__PURE__*/function () {
183
183
  return emit;
184
184
  }()
185
185
  }, {
186
- key: "installFeatures",
186
+ key: "emitAndFlattenResponses",
187
187
  value: function () {
188
- var _installFeatures = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(options) {
188
+ var _emitAndFlattenResponses = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
189
+ var _this$emitter4;
190
+
191
+ var _args4 = arguments;
189
192
  return _regenerator["default"].wrap(function _callee4$(_context4) {
190
193
  while (1) {
191
194
  switch (_context4.prev = _context4.next) {
192
195
  case 0:
193
- return _context4.abrupt("return", this.featureInstaller.install(options));
196
+ return _context4.abrupt("return", (_this$emitter4 = this.emitter).emitAndFlattenResponses.apply(_this$emitter4, _args4));
194
197
 
195
198
  case 1:
196
199
  case "end":
@@ -200,6 +203,30 @@ var Cli = /*#__PURE__*/function () {
200
203
  }, _callee4, this);
201
204
  }));
202
205
 
206
+ function emitAndFlattenResponses() {
207
+ return _emitAndFlattenResponses.apply(this, arguments);
208
+ }
209
+
210
+ return emitAndFlattenResponses;
211
+ }()
212
+ }, {
213
+ key: "installFeatures",
214
+ value: function () {
215
+ var _installFeatures = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(options) {
216
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
217
+ while (1) {
218
+ switch (_context5.prev = _context5.next) {
219
+ case 0:
220
+ return _context5.abrupt("return", this.featureInstaller.install(options));
221
+
222
+ case 1:
223
+ case "end":
224
+ return _context5.stop();
225
+ }
226
+ }
227
+ }, _callee5, this);
228
+ }));
229
+
203
230
  function installFeatures(_x) {
204
231
  return _installFeatures.apply(this, arguments);
205
232
  }
@@ -214,24 +241,24 @@ var Cli = /*#__PURE__*/function () {
214
241
  }, {
215
242
  key: "checkHealth",
216
243
  value: function () {
217
- var _checkHealth = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(options) {
244
+ var _checkHealth = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(options) {
218
245
  var isInstalled, commandService, command, results, resultParts, error;
219
- return _regenerator["default"].wrap(function _callee5$(_context5) {
246
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
220
247
  while (1) {
221
- switch (_context5.prev = _context5.next) {
248
+ switch (_context6.prev = _context6.next) {
222
249
  case 0:
223
- _context5.next = 2;
250
+ _context6.next = 2;
224
251
  return this.featureInstaller.isInstalled('skill');
225
252
 
226
253
  case 2:
227
- isInstalled = _context5.sent;
254
+ isInstalled = _context6.sent;
228
255
 
229
256
  if (isInstalled) {
230
- _context5.next = 5;
257
+ _context6.next = 5;
231
258
  break;
232
259
  }
233
260
 
234
- return _context5.abrupt("return", {
261
+ return _context6.abrupt("return", {
235
262
  skill: {
236
263
  status: 'failed',
237
264
  errors: [new _SpruceError["default"]({
@@ -242,25 +269,25 @@ var Cli = /*#__PURE__*/function () {
242
269
  });
243
270
 
244
271
  case 5:
245
- _context5.prev = 5;
272
+ _context6.prev = 5;
246
273
  commandService = this.serviceFactory.Service(this.cwd, 'command');
247
274
  command = (options === null || options === void 0 ? void 0 : options.shouldRunOnSourceFiles) === false ? 'yarn health' : 'yarn health.local';
248
- _context5.next = 10;
275
+ _context6.next = 10;
249
276
  return commandService.execute(command);
250
277
 
251
278
  case 10:
252
- results = _context5.sent;
279
+ results = _context6.sent;
253
280
  resultParts = results.stdout.split(_spruceSkillUtils.HEALTH_DIVIDER);
254
- return _context5.abrupt("return", JSON.parse(resultParts[1]));
281
+ return _context6.abrupt("return", JSON.parse(resultParts[1]));
255
282
 
256
283
  case 15:
257
- _context5.prev = 15;
258
- _context5.t0 = _context5["catch"](5);
284
+ _context6.prev = 15;
285
+ _context6.t0 = _context6["catch"](5);
259
286
  error = new _SpruceError["default"]({
260
287
  code: 'BOOT_ERROR',
261
- originalError: _context5.t0
288
+ originalError: _context6.t0
262
289
  });
263
- return _context5.abrupt("return", {
290
+ return _context6.abrupt("return", {
264
291
  skill: {
265
292
  status: 'failed',
266
293
  errors: [error]
@@ -269,10 +296,10 @@ var Cli = /*#__PURE__*/function () {
269
296
 
270
297
  case 19:
271
298
  case "end":
272
- return _context5.stop();
299
+ return _context6.stop();
273
300
  }
274
301
  }
275
- }, _callee5, this, [[5, 15]]);
302
+ }, _callee6, this, [[5, 15]]);
276
303
  }));
277
304
 
278
305
  function checkHealth(_x2) {
@@ -284,30 +311,30 @@ var Cli = /*#__PURE__*/function () {
284
311
  }], [{
285
312
  key: "resetApiClients",
286
313
  value: function () {
287
- var _resetApiClients = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
314
+ var _resetApiClients = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
288
315
  var key;
289
- return _regenerator["default"].wrap(function _callee6$(_context6) {
316
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
290
317
  while (1) {
291
- switch (_context6.prev = _context6.next) {
318
+ switch (_context7.prev = _context7.next) {
292
319
  case 0:
293
- _context6.t0 = _regenerator["default"].keys(this.apiClients);
320
+ _context7.t0 = _regenerator["default"].keys(this.apiClients);
294
321
 
295
322
  case 1:
296
- if ((_context6.t1 = _context6.t0()).done) {
297
- _context6.next = 9;
323
+ if ((_context7.t1 = _context7.t0()).done) {
324
+ _context7.next = 9;
298
325
  break;
299
326
  }
300
327
 
301
- key = _context6.t1.value;
302
- _context6.next = 5;
328
+ key = _context7.t1.value;
329
+ _context7.next = 5;
303
330
  return this.apiClients[key];
304
331
 
305
332
  case 5:
306
- _context6.next = 7;
307
- return _context6.sent.disconnect();
333
+ _context7.next = 7;
334
+ return _context7.sent.disconnect();
308
335
 
309
336
  case 7:
310
- _context6.next = 1;
337
+ _context7.next = 1;
311
338
  break;
312
339
 
313
340
  case 9:
@@ -315,10 +342,10 @@ var Cli = /*#__PURE__*/function () {
315
342
 
316
343
  case 10:
317
344
  case "end":
318
- return _context6.stop();
345
+ return _context7.stop();
319
346
  }
320
347
  }
321
- }, _callee6, this);
348
+ }, _callee7, this);
322
349
  }));
323
350
 
324
351
  function resetApiClients() {
@@ -330,14 +357,14 @@ var Cli = /*#__PURE__*/function () {
330
357
  }, {
331
358
  key: "Boot",
332
359
  value: function () {
333
- var _Boot = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(options) {
360
+ var _Boot = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(options) {
334
361
  var _options$emitter, _options$cwd, _options$apiClientFac, _options$homeDir, _options$graphicsInte, _options$featureInsta;
335
362
 
336
363
  var program, emitter, cwd, serviceFactory, apiClientFactory, storeFactory, ui, featureInstaller, writerFactory, optionOverrides, blockedCommands, actionFactory, actionExecuter, attacher, codes, _iterator, _step, code, feature, cli;
337
364
 
338
- return _regenerator["default"].wrap(function _callee7$(_context7) {
365
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
339
366
  while (1) {
340
- switch (_context7.prev = _context7.next) {
367
+ switch (_context8.prev = _context8.next) {
341
368
  case 0:
342
369
  program = options === null || options === void 0 ? void 0 : options.program;
343
370
  emitter = (_options$emitter = options === null || options === void 0 ? void 0 : options.emitter) !== null && _options$emitter !== void 0 ? _options$emitter : _GlobalEmitter["default"].Emitter();
@@ -395,7 +422,7 @@ var Cli = /*#__PURE__*/function () {
395
422
  });
396
423
 
397
424
  if (!program) {
398
- _context7.next = 37;
425
+ _context8.next = 37;
399
426
  break;
400
427
  }
401
428
 
@@ -406,41 +433,41 @@ var Cli = /*#__PURE__*/function () {
406
433
  });
407
434
  codes = _FeatureInstallerFactory["default"].featureCodes;
408
435
  _iterator = _createForOfIteratorHelper(codes);
409
- _context7.prev = 18;
436
+ _context8.prev = 18;
410
437
 
411
438
  _iterator.s();
412
439
 
413
440
  case 20:
414
441
  if ((_step = _iterator.n()).done) {
415
- _context7.next = 27;
442
+ _context8.next = 27;
416
443
  break;
417
444
  }
418
445
 
419
446
  code = _step.value;
420
447
  feature = featureInstaller.getFeature(code);
421
- _context7.next = 25;
448
+ _context8.next = 25;
422
449
  return attacher.attachFeature(feature);
423
450
 
424
451
  case 25:
425
- _context7.next = 20;
452
+ _context8.next = 20;
426
453
  break;
427
454
 
428
455
  case 27:
429
- _context7.next = 32;
456
+ _context8.next = 32;
430
457
  break;
431
458
 
432
459
  case 29:
433
- _context7.prev = 29;
434
- _context7.t0 = _context7["catch"](18);
460
+ _context8.prev = 29;
461
+ _context8.t0 = _context8["catch"](18);
435
462
 
436
- _iterator.e(_context7.t0);
463
+ _iterator.e(_context8.t0);
437
464
 
438
465
  case 32:
439
- _context7.prev = 32;
466
+ _context8.prev = 32;
440
467
 
441
468
  _iterator.f();
442
469
 
443
- return _context7.finish(32);
470
+ return _context8.finish(32);
444
471
 
445
472
  case 35:
446
473
  program.commands.sort(function (a, b) {
@@ -455,14 +482,14 @@ var Cli = /*#__PURE__*/function () {
455
482
 
456
483
  case 37:
457
484
  cli = new Cli(cwd, featureInstaller, serviceFactory, emitter, attacher, actionExecuter);
458
- return _context7.abrupt("return", cli);
485
+ return _context8.abrupt("return", cli);
459
486
 
460
487
  case 39:
461
488
  case "end":
462
- return _context7.stop();
489
+ return _context8.stop();
463
490
  }
464
491
  }
465
- }, _callee7, this, [[18, 29, 32, 35]]);
492
+ }, _callee8, this, [[18, 29, 32, 35]]);
466
493
  }));
467
494
 
468
495
  function Boot(_x3) {
@@ -504,11 +531,11 @@ var Cli = /*#__PURE__*/function () {
504
531
  key: "buildApiClientFactory",
505
532
  value: function buildApiClientFactory(cwd, serviceFactory, bootOptions) {
506
533
  var apiClientFactory = /*#__PURE__*/function () {
507
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(options) {
534
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(options) {
508
535
  var key;
509
- return _regenerator["default"].wrap(function _callee8$(_context8) {
536
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
510
537
  while (1) {
511
- switch (_context8.prev = _context8.next) {
538
+ switch (_context9.prev = _context9.next) {
512
539
  case 0:
513
540
  key = _apiClient["default"].generateClientCacheKey(options);
514
541
 
@@ -516,14 +543,14 @@ var Cli = /*#__PURE__*/function () {
516
543
  Cli.apiClients[key] = Cli.connectToApi(cwd, serviceFactory, options, bootOptions);
517
544
  }
518
545
 
519
- return _context8.abrupt("return", Cli.apiClients[key]);
546
+ return _context9.abrupt("return", Cli.apiClients[key]);
520
547
 
521
548
  case 3:
522
549
  case "end":
523
- return _context8.stop();
550
+ return _context9.stop();
524
551
  }
525
552
  }
526
- }, _callee8);
553
+ }, _callee9);
527
554
  }));
528
555
 
529
556
  return function apiClientFactory(_x4) {
@@ -536,23 +563,23 @@ var Cli = /*#__PURE__*/function () {
536
563
  }, {
537
564
  key: "connectToApi",
538
565
  value: function () {
539
- var _connectToApi = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(cwd, serviceFactory, options, bootOptions) {
566
+ var _connectToApi = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(cwd, serviceFactory, options, bootOptions) {
540
567
  var connect, _ref3, _ref3$shouldAuthAsCur, shouldAuthAsCurrentSkill, _ref3$shouldAuthAsLog, shouldAuthAsLoggedInPerson, client, auth, pkg, doesPkgExist, skill, person;
541
568
 
542
- return _regenerator["default"].wrap(function _callee10$(_context10) {
569
+ return _regenerator["default"].wrap(function _callee11$(_context11) {
543
570
  while (1) {
544
- switch (_context10.prev = _context10.next) {
571
+ switch (_context11.prev = _context11.next) {
545
572
  case 0:
546
- connect = bootOptions !== null && bootOptions !== void 0 && bootOptions.apiClientFactory ? bootOptions.apiClientFactory : /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
573
+ connect = bootOptions !== null && bootOptions !== void 0 && bootOptions.apiClientFactory ? bootOptions.apiClientFactory : /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
547
574
  var _bootOptions$host;
548
575
 
549
576
  var eventsContracts, client;
550
- return _regenerator["default"].wrap(function _callee9$(_context9) {
577
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
551
578
  while (1) {
552
- switch (_context9.prev = _context9.next) {
579
+ switch (_context10.prev = _context10.next) {
553
580
  case 0:
554
581
  eventsContracts = require("./.spruce/events/events.contract")["default"];
555
- _context9.next = 3;
582
+ _context10.next = 3;
556
583
  return _mercuryClient.MercuryClientFactory.Client(_objectSpread({
557
584
  contracts: eventsContracts,
558
585
  host: (_bootOptions$host = bootOptions === null || bootOptions === void 0 ? void 0 : bootOptions.host) !== null && _bootOptions$host !== void 0 ? _bootOptions$host : _constants.DEFAULT_HOST,
@@ -560,22 +587,22 @@ var Cli = /*#__PURE__*/function () {
560
587
  }, bootOptions));
561
588
 
562
589
  case 3:
563
- client = _context9.sent;
564
- return _context9.abrupt("return", client);
590
+ client = _context10.sent;
591
+ return _context10.abrupt("return", client);
565
592
 
566
593
  case 5:
567
594
  case "end":
568
- return _context9.stop();
595
+ return _context10.stop();
569
596
  }
570
597
  }
571
- }, _callee9);
598
+ }, _callee10);
572
599
  }));
573
600
  _ref3 = options !== null && options !== void 0 ? options : {}, _ref3$shouldAuthAsCur = _ref3.shouldAuthAsCurrentSkill, shouldAuthAsCurrentSkill = _ref3$shouldAuthAsCur === void 0 ? false : _ref3$shouldAuthAsCur, _ref3$shouldAuthAsLog = _ref3.shouldAuthAsLoggedInPerson, shouldAuthAsLoggedInPerson = _ref3$shouldAuthAsLog === void 0 ? true : _ref3$shouldAuthAsLog;
574
- _context10.next = 4;
601
+ _context11.next = 4;
575
602
  return connect();
576
603
 
577
604
  case 4:
578
- client = _context10.sent;
605
+ client = _context11.sent;
579
606
  auth = {};
580
607
  pkg = serviceFactory.Service(cwd, 'pkg');
581
608
  doesPkgExist = pkg.doesExist();
@@ -603,11 +630,11 @@ var Cli = /*#__PURE__*/function () {
603
630
  }
604
631
 
605
632
  if (!(Object.keys(auth).length > 0)) {
606
- _context10.next = 13;
633
+ _context11.next = 13;
607
634
  break;
608
635
  }
609
636
 
610
- _context10.next = 12;
637
+ _context11.next = 12;
611
638
  return client.authenticate(_objectSpread({}, auth));
612
639
 
613
640
  case 12:
@@ -615,14 +642,14 @@ var Cli = /*#__PURE__*/function () {
615
642
  client.auth = auth;
616
643
 
617
644
  case 13:
618
- return _context10.abrupt("return", client);
645
+ return _context11.abrupt("return", client);
619
646
 
620
647
  case 14:
621
648
  case "end":
622
- return _context10.stop();
649
+ return _context11.stop();
623
650
  }
624
651
  }
625
- }, _callee10);
652
+ }, _callee11);
626
653
  }));
627
654
 
628
655
  function connectToApi(_x5, _x6, _x7, _x8) {
@@ -643,7 +670,7 @@ function run() {
643
670
  }
644
671
 
645
672
  function _run() {
646
- _run = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
673
+ _run = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
647
674
  var argv,
648
675
  program,
649
676
  cwd,
@@ -658,13 +685,13 @@ function _run() {
658
685
  _iterator2,
659
686
  _step2,
660
687
  client,
661
- _args11 = arguments;
688
+ _args12 = arguments;
662
689
 
663
- return _regenerator["default"].wrap(function _callee11$(_context11) {
690
+ return _regenerator["default"].wrap(function _callee12$(_context12) {
664
691
  while (1) {
665
- switch (_context11.prev = _context11.next) {
692
+ switch (_context12.prev = _context12.next) {
666
693
  case 0:
667
- argv = _args11.length > 0 && _args11[0] !== undefined ? _args11[0] : [];
694
+ argv = _args12.length > 0 && _args12[0] !== undefined ? _args12[0] : [];
668
695
  program = new _commander.Command();
669
696
  cwd = process.cwd();
670
697
  program.storeOptionsAsProperties(false);
@@ -689,16 +716,16 @@ function _run() {
689
716
  }) > -1;
690
717
 
691
718
  if (!isAskingForVersion) {
692
- _context11.next = 17;
719
+ _context12.next = 17;
693
720
  break;
694
721
  }
695
722
 
696
723
  json = require("../package.json");
697
724
  terminal.renderHeadline("Version ".concat(json.version));
698
- return _context11.abrupt("return");
725
+ return _context12.abrupt("return");
699
726
 
700
727
  case 17:
701
- _context11.next = 19;
728
+ _context12.next = 19;
702
729
  return Cli.Boot({
703
730
  program: program,
704
731
  cwd: cwd,
@@ -707,65 +734,65 @@ function _run() {
707
734
  });
708
735
 
709
736
  case 19:
710
- _context11.next = 21;
737
+ _context12.next = 21;
711
738
  return setupInFlightEntertainment(terminal);
712
739
 
713
740
  case 21:
714
- _context11.next = 23;
741
+ _context12.next = 23;
715
742
  return program.parseAsync(argv);
716
743
 
717
744
  case 23:
718
- command = _context11.sent;
719
- _context11.next = 26;
745
+ command = _context12.sent;
746
+ _context12.next = 26;
720
747
  return command._actionResults[0];
721
748
 
722
749
  case 26:
723
- results = _context11.sent;
750
+ results = _context12.sent;
724
751
  _iterator2 = _createForOfIteratorHelper(_mercuryClient.MercuryClientFactory.getClients());
725
- _context11.prev = 28;
752
+ _context12.prev = 28;
726
753
 
727
754
  _iterator2.s();
728
755
 
729
756
  case 30:
730
757
  if ((_step2 = _iterator2.n()).done) {
731
- _context11.next = 36;
758
+ _context12.next = 36;
732
759
  break;
733
760
  }
734
761
 
735
762
  client = _step2.value;
736
- _context11.next = 34;
763
+ _context12.next = 34;
737
764
  return client.disconnect();
738
765
 
739
766
  case 34:
740
- _context11.next = 30;
767
+ _context12.next = 30;
741
768
  break;
742
769
 
743
770
  case 36:
744
- _context11.next = 41;
771
+ _context12.next = 41;
745
772
  break;
746
773
 
747
774
  case 38:
748
- _context11.prev = 38;
749
- _context11.t0 = _context11["catch"](28);
775
+ _context12.prev = 38;
776
+ _context12.t0 = _context12["catch"](28);
750
777
 
751
- _iterator2.e(_context11.t0);
778
+ _iterator2.e(_context12.t0);
752
779
 
753
780
  case 41:
754
- _context11.prev = 41;
781
+ _context12.prev = 41;
755
782
 
756
783
  _iterator2.f();
757
784
 
758
- return _context11.finish(41);
785
+ return _context12.finish(41);
759
786
 
760
787
  case 44:
761
- return _context11.abrupt("return", results);
788
+ return _context12.abrupt("return", results);
762
789
 
763
790
  case 45:
764
791
  case "end":
765
- return _context11.stop();
792
+ return _context12.stop();
766
793
  }
767
794
  }
768
- }, _callee11, null, [[28, 38, 41, 44]]);
795
+ }, _callee12, null, [[28, 38, 41, 44]]);
769
796
  }));
770
797
  return _run.apply(this, arguments);
771
798
  }
@@ -775,11 +802,11 @@ function setupInFlightEntertainment(_x9) {
775
802
  }
776
803
 
777
804
  function _setupInFlightEntertainment() {
778
- _setupInFlightEntertainment = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(ui) {
805
+ _setupInFlightEntertainment = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13(ui) {
779
806
  var command;
780
- return _regenerator["default"].wrap(function _callee12$(_context12) {
807
+ return _regenerator["default"].wrap(function _callee13$(_context13) {
781
808
  while (1) {
782
- switch (_context12.prev = _context12.next) {
809
+ switch (_context13.prev = _context13.next) {
783
810
  case 0:
784
811
  if (_TerminalInterface["default"].doesSupportColor() && process.env.ENABLE_INSTALL_INTERTAINMENT !== 'false') {
785
812
  command = new _CommandService["default"](_spruceSkillUtils.diskUtil.resolvePath(__dirname, '../'));
@@ -804,10 +831,10 @@ function _setupInFlightEntertainment() {
804
831
 
805
832
  case 1:
806
833
  case "end":
807
- return _context12.stop();
834
+ return _context13.stop();
808
835
  }
809
836
  }
810
- }, _callee12);
837
+ }, _callee13);
811
838
  }));
812
839
  return _setupInFlightEntertainment.apply(this, arguments);
813
840
  }
package/build/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"names":["Cli","cwd","featureInstaller","serviceFactory","emitter","attacher","actionExecuter","on","off","emit","options","install","code","getFeature","isInstalled","skill","status","errors","SpruceError","commandService","Service","command","shouldRunOnSourceFiles","execute","results","resultParts","stdout","split","HEALTH_DIVIDER","JSON","parse","error","originalError","apiClients","key","disconnect","program","CliGlobalEmitter","Emitter","process","ImportService","enableCaching","ServiceFactory","apiClientFactory","buildApiClientFactory","storeFactory","StoreFactory","homeDir","osUtil","homedir","ui","graphicsInterface","TerminalInterface","writerFactory","WriterFactory","templates","settings","linter","optionOverrides","loadOptionOverrides","blockedCommands","loadCommandBlocks","actionFactory","ActionFactory","ActionExecuter","featureInstallerFactory","FeatureInstallerFactory","WithAllFeatures","FeatureCommandAttacher","codes","featureCodes","feature","attachFeature","commands","sort","a","b","_name","localeCompare","action","_","args","cli","pkg","blocks","doesExist","get","mapped","overrides","Object","keys","forEach","argParserUtil","bootOptions","apiClientUtil","generateClientCacheKey","connectToApi","connect","eventsContracts","require","MercuryClientFactory","Client","contracts","host","DEFAULT_HOST","allowSelfSignedCrt","client","shouldAuthAsCurrentSkill","shouldAuthAsLoggedInPerson","auth","doesPkgExist","skillId","apiKey","getCurrentSkill","id","person","getLoggedInPerson","token","length","authenticate","run","argv","Command","storeOptionsAsProperties","option","dirIdx","findIndex","v","dir","newCwd","diskUtil","resolvePath","terminal","env","CLI_RENDER_STACK_TRACES","clear","renderHero","CLI_HERO","isAskingForVersion","json","renderHeadline","version","Boot","HOST","setupInFlightEntertainment","parseAsync","_actionResults","getClients","doesSupportColor","ENABLE_INSTALL_INTERTAINMENT","CommandService","__dirname","InFlightEntertainment","setup","FeatureInstaller","startInFlightIntertainmentHandler","didUpdateHandler","start","message","writeStatus","stopInFlightIntertainmentHandler","stop"],"mappings":"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","sourcesContent":["import osUtil from 'os'\nimport {\n\tConnectionOptions,\n\tMercuryClientFactory,\n} from '@sprucelabs/mercury-client'\nimport { MercuryEventEmitter, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tdiskUtil,\n\tHealthCheckResults,\n\tHEALTH_DIVIDER,\n} from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport { Command, CommanderStatic } from 'commander'\nimport './addons/filePrompt.addon'\nimport { CLI_HERO, DEFAULT_HOST } from './constants'\nimport SpruceError from './errors/SpruceError'\nimport ActionExecuter from './features/ActionExecuter'\nimport ActionFactory from './features/ActionFactory'\nimport FeatureCommandAttacher, {\n\tBlockedCommands,\n\tOptionOverrides,\n} from './features/FeatureCommandAttacher'\nimport FeatureInstaller from './features/FeatureInstaller'\nimport FeatureInstallerFactory from './features/FeatureInstallerFactory'\nimport { FeatureCode, InstallFeatureOptions } from './features/features.types'\nimport CliGlobalEmitter, {\n\tGlobalEmitter,\n\tGlobalEventContract,\n} from './GlobalEmitter'\nimport InFlightEntertainment from './InFlightEntertainment'\nimport TerminalInterface from './interfaces/TerminalInterface'\nimport CommandService from './services/CommandService'\nimport ImportService from './services/ImportService'\nimport PkgService from './services/PkgService'\nimport ServiceFactory from './services/ServiceFactory'\nimport StoreFactory from './stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from './types/apiClient.types'\nimport { GraphicsInterface } from './types/cli.types'\nimport apiClientUtil from './utilities/apiClient.utility'\nimport { argParserUtil } from './utilities/argParser.utility'\nimport WriterFactory from './writers/WriterFactory'\n\ninterface HealthOptions {\n\tshouldRunOnSourceFiles?: boolean\n}\n\nexport interface CliInterface extends MercuryEventEmitter<GlobalEventContract> {\n\tinstallFeatures: FeatureInstaller['install']\n\tgetFeature: FeatureInstaller['getFeature']\n\tcheckHealth(options?: HealthOptions): Promise<HealthCheckResults>\n}\n\nexport interface CliBootOptions {\n\tcwd?: string\n\thomeDir?: string\n\tprogram?: CommanderStatic['program']\n\tgraphicsInterface?: GraphicsInterface\n\temitter?: GlobalEmitter\n\tapiClientFactory?: ApiClientFactory\n\tfeatureInstaller?: FeatureInstaller\n\thost?: string\n}\n\ntype PromiseCache = Record<string, Promise<ApiClient>>\n\nexport default class Cli implements CliInterface {\n\tprivate cwd: string\n\tprivate featureInstaller: FeatureInstaller\n\tprivate serviceFactory: ServiceFactory\n\tpublic readonly emitter: GlobalEmitter\n\tprivate static apiClients: PromiseCache = {}\n\tprivate attacher?: FeatureCommandAttacher\n\tprivate actionExecuter?: ActionExecuter\n\n\tprivate constructor(\n\t\tcwd: string,\n\t\tfeatureInstaller: FeatureInstaller,\n\t\tserviceFactory: ServiceFactory,\n\t\temitter: GlobalEmitter,\n\t\tattacher?: FeatureCommandAttacher,\n\t\tactionExecuter?: ActionExecuter\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.featureInstaller = featureInstaller\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.emitter = emitter\n\t\tthis.attacher = attacher\n\t\tthis.actionExecuter = actionExecuter\n\t}\n\n\tpublic static async resetApiClients() {\n\t\tfor (const key in this.apiClients) {\n\t\t\tawait (await this.apiClients[key]).disconnect()\n\t\t}\n\n\t\tthis.apiClients = {}\n\t}\n\n\tpublic getAttacher() {\n\t\treturn this.attacher\n\t}\n\n\tpublic getActionExecuter() {\n\t\treturn this.actionExecuter\n\t}\n\n\tpublic async on(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.on(...args)\n\t}\n\n\tpublic async off(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.off(...args)\n\t}\n\n\tpublic async emit(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emit(...args)\n\t}\n\n\tpublic async installFeatures(options: InstallFeatureOptions) {\n\t\treturn this.featureInstaller.install(options)\n\t}\n\n\tpublic getFeature<C extends FeatureCode>(code: C) {\n\t\treturn this.featureInstaller.getFeature(code)\n\t}\n\n\tpublic async checkHealth(\n\t\toptions?: HealthOptions\n\t): Promise<HealthCheckResults> {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tcode: 'SKILL_NOT_INSTALLED',\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst commandService = this.serviceFactory.Service(this.cwd, 'command')\n\t\t\tconst command =\n\t\t\t\toptions?.shouldRunOnSourceFiles === false\n\t\t\t\t\t? 'yarn health'\n\t\t\t\t\t: 'yarn health.local'\n\t\t\tconst results = await commandService.execute(command)\n\t\t\tconst resultParts = results.stdout.split(HEALTH_DIVIDER)\n\n\t\t\treturn JSON.parse(resultParts[1]) as HealthCheckResults\n\t\t} catch (originalError: any) {\n\t\t\tconst error = new SpruceError({\n\t\t\t\tcode: 'BOOT_ERROR',\n\t\t\t\toriginalError,\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [error],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic static async Boot(options?: CliBootOptions): Promise<CliInterface> {\n\t\tconst program = options?.program\n\t\tconst emitter = options?.emitter ?? CliGlobalEmitter.Emitter()\n\n\t\tlet cwd = options?.cwd ?? process.cwd()\n\n\t\tImportService.enableCaching()\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst apiClientFactory =\n\t\t\toptions?.apiClientFactory ??\n\t\t\tCli.buildApiClientFactory(cwd, serviceFactory, options)\n\n\t\tconst storeFactory = new StoreFactory({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: options?.homeDir ?? osUtil.homedir(),\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t})\n\n\t\tconst ui = options?.graphicsInterface ?? new TerminalInterface(cwd)\n\t\tlet featureInstaller: FeatureInstaller | undefined\n\n\t\tconst writerFactory = new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui,\n\t\t\tsettings: serviceFactory.Service(cwd, 'settings'),\n\t\t\tlinter: serviceFactory.Service(cwd, 'lint'),\n\t\t})\n\n\t\tconst optionOverrides = this.loadOptionOverrides(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst blockedCommands = this.loadCommandBlocks(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\tui,\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory,\n\t\t\ttemplates,\n\t\t\twriterFactory,\n\t\t\tblockedCommands,\n\t\t\toptionOverrides,\n\t\t})\n\n\t\tconst actionExecuter = new ActionExecuter({\n\t\t\tactionFactory,\n\t\t\tui,\n\t\t\temitter,\n\t\t\t//@ts-ignore\n\t\t\tfeatureInstallerFactory: () => featureInstaller,\n\t\t})\n\n\t\tfeatureInstaller =\n\t\t\toptions?.featureInstaller ??\n\t\t\tFeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\tlet attacher: FeatureCommandAttacher | undefined\n\n\t\tif (program) {\n\t\t\tattacher = new FeatureCommandAttacher({\n\t\t\t\tprogram,\n\t\t\t\tui,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\t\tconst codes = FeatureInstallerFactory.featureCodes\n\n\t\t\tfor (const code of codes) {\n\t\t\t\tconst feature = featureInstaller.getFeature(code)\n\t\t\t\tawait attacher.attachFeature(feature)\n\t\t\t}\n\n\t\t\tprogram.commands.sort((a: any, b: any) => a._name.localeCompare(b._name))\n\n\t\t\tprogram.action((_, command) => {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'INVALID_COMMAND',\n\t\t\t\t\targs: command.args || [],\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\n\t\tconst cli = new Cli(\n\t\t\tcwd,\n\t\t\tfeatureInstaller,\n\t\t\tserviceFactory,\n\t\t\temitter,\n\t\t\tattacher,\n\t\t\tactionExecuter\n\t\t)\n\n\t\treturn cli as CliInterface\n\t}\n\n\tprivate static loadCommandBlocks(pkg: PkgService): BlockedCommands {\n\t\tlet blocks: BlockedCommands = {}\n\t\tif (pkg.doesExist()) {\n\t\t\tblocks = pkg.get('skill.blockedCommands') ?? {}\n\t\t}\n\t\treturn blocks\n\t}\n\n\tprivate static loadOptionOverrides(pkg: PkgService): OptionOverrides {\n\t\tconst mapped: OptionOverrides = {}\n\n\t\tif (pkg.doesExist()) {\n\t\t\tconst overrides = pkg.get('skill.commandOverrides')\n\n\t\t\tObject.keys(overrides ?? {}).forEach((command) => {\n\t\t\t\tconst options = argParserUtil.parse(overrides[command])\n\t\t\t\tmapped[command] = options\n\t\t\t})\n\t\t}\n\t\treturn mapped\n\t}\n\n\tpublic static buildApiClientFactory(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): ApiClientFactory {\n\t\tconst apiClientFactory = async (options?: ApiClientFactoryOptions) => {\n\t\t\tconst key = apiClientUtil.generateClientCacheKey(options)\n\n\t\t\tif (!Cli.apiClients[key]) {\n\t\t\t\tCli.apiClients[key] = Cli.connectToApi(\n\t\t\t\t\tcwd,\n\t\t\t\t\tserviceFactory,\n\t\t\t\t\toptions,\n\t\t\t\t\tbootOptions\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn Cli.apiClients[key]\n\t\t}\n\n\t\treturn apiClientFactory\n\t}\n\n\tprivate static async connectToApi(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\toptions?: ApiClientFactoryOptions,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): Promise<ApiClient> {\n\t\tconst connect = bootOptions?.apiClientFactory\n\t\t\t? bootOptions.apiClientFactory\n\t\t\t: async () => {\n\t\t\t\t\tconst eventsContracts =\n\t\t\t\t\t\trequire('#spruce/events/events.contract').default\n\n\t\t\t\t\tconst client: ApiClient = await MercuryClientFactory.Client({\n\t\t\t\t\t\tcontracts: eventsContracts as any,\n\t\t\t\t\t\thost: bootOptions?.host ?? DEFAULT_HOST,\n\t\t\t\t\t\tallowSelfSignedCrt: true,\n\t\t\t\t\t\t...bootOptions,\n\t\t\t\t\t})\n\n\t\t\t\t\treturn client\n\t\t\t }\n\n\t\tconst {\n\t\t\tshouldAuthAsCurrentSkill = false,\n\t\t\tshouldAuthAsLoggedInPerson = true,\n\t\t} = options ?? {}\n\n\t\tconst client = await connect()\n\n\t\tlet auth: SpruceSchemas.Mercury.v2020_12_25.AuthenticateEmitPayload = {}\n\n\t\tconst pkg = serviceFactory.Service(cwd, 'pkg')\n\t\tconst doesPkgExist = pkg.doesExist()\n\n\t\tif (options?.skillId && options?.apiKey) {\n\t\t\tauth = {\n\t\t\t\tskillId: options.skillId,\n\t\t\t\tapiKey: options.apiKey,\n\t\t\t}\n\t\t} else if (shouldAuthAsCurrentSkill) {\n\t\t\tconst skill = serviceFactory.Service(cwd, 'auth').getCurrentSkill()\n\n\t\t\tif (skill) {\n\t\t\t\tauth = {\n\t\t\t\t\tskillId: skill.id,\n\t\t\t\t\tapiKey: skill.apiKey,\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (doesPkgExist && shouldAuthAsLoggedInPerson) {\n\t\t\tconst person = serviceFactory.Service(cwd, 'auth').getLoggedInPerson()\n\n\t\t\tif (person) {\n\t\t\t\tauth.token = person.token\n\t\t\t}\n\t\t}\n\n\t\tif (Object.keys(auth).length > 0) {\n\t\t\tawait client.authenticate({\n\t\t\t\t...(auth as any),\n\t\t\t})\n\n\t\t\t//@ts-ignore\n\t\t\tclient.auth = auth\n\t\t}\n\n\t\treturn client\n\t}\n}\n\nexport async function run(argv: string[] = []): Promise<void> {\n\tconst program = new Command()\n\tlet cwd = process.cwd()\n\n\tprogram.storeOptionsAsProperties(false)\n\tprogram.option('--no-color', 'Disable color output in the console')\n\tprogram.option(\n\t\t'-d, --directory <path>',\n\t\t'The working directory to execute the command'\n\t)\n\tprogram.option('-v, --version', 'The version of the cli')\n\n\tconst dirIdx = process.argv.findIndex(\n\t\t(v) => v === '--directory' || v === '-d'\n\t)\n\n\tif (dirIdx > -1) {\n\t\tconst dir = process.argv[dirIdx + 1]\n\t\tconst newCwd = diskUtil.resolvePath(cwd, dir)\n\t\tcwd = newCwd\n\t}\n\n\tconst terminal = new TerminalInterface(\n\t\tcwd,\n\t\tprocess.env.CLI_RENDER_STACK_TRACES !== 'false'\n\t)\n\tterminal.clear()\n\tterminal.renderHero(CLI_HERO)\n\n\tconst isAskingForVersion =\n\t\tprocess.argv.findIndex((v) => v === '--version' || v === '-v') > -1\n\n\tif (isAskingForVersion) {\n\t\tconst json = require('../package.json')\n\t\tterminal.renderHeadline(`Version ${json.version}`)\n\t\treturn\n\t}\n\n\tawait Cli.Boot({\n\t\tprogram,\n\t\tcwd,\n\t\thost: process.env.HOST,\n\t\tgraphicsInterface: terminal,\n\t})\n\n\tawait setupInFlightEntertainment(terminal)\n\n\tconst command = await program.parseAsync(argv)\n\n\t//@ts-ignore\n\tconst results = await command._actionResults[0]\n\n\tfor (const client of MercuryClientFactory.getClients()) {\n\t\tawait client.disconnect()\n\t}\n\n\treturn results\n}\n\nasync function setupInFlightEntertainment(ui: TerminalInterface) {\n\tif (\n\t\tTerminalInterface.doesSupportColor() &&\n\t\tprocess.env.ENABLE_INSTALL_INTERTAINMENT !== 'false'\n\t) {\n\t\tconst command = new CommandService(diskUtil.resolvePath(__dirname, '../'))\n\t\tInFlightEntertainment.setup({ command, ui })\n\n\t\tFeatureInstaller.startInFlightIntertainmentHandler = (didUpdateHandler) => {\n\t\t\tInFlightEntertainment.start()\n\t\t\tdidUpdateHandler((message) => {\n\t\t\t\tInFlightEntertainment.writeStatus(message)\n\t\t\t})\n\t\t}\n\n\t\tFeatureInstaller.stopInFlightIntertainmentHandler = () => {\n\t\t\tInFlightEntertainment.stop()\n\t\t}\n\t}\n}\n"],"file":"cli.js"}
1
+ {"version":3,"sources":["../src/cli.ts"],"names":["Cli","cwd","featureInstaller","serviceFactory","emitter","attacher","actionExecuter","on","off","emit","emitAndFlattenResponses","options","install","code","getFeature","isInstalled","skill","status","errors","SpruceError","commandService","Service","command","shouldRunOnSourceFiles","execute","results","resultParts","stdout","split","HEALTH_DIVIDER","JSON","parse","error","originalError","apiClients","key","disconnect","program","CliGlobalEmitter","Emitter","process","ImportService","enableCaching","ServiceFactory","apiClientFactory","buildApiClientFactory","storeFactory","StoreFactory","homeDir","osUtil","homedir","ui","graphicsInterface","TerminalInterface","writerFactory","WriterFactory","templates","settings","linter","optionOverrides","loadOptionOverrides","blockedCommands","loadCommandBlocks","actionFactory","ActionFactory","ActionExecuter","featureInstallerFactory","FeatureInstallerFactory","WithAllFeatures","FeatureCommandAttacher","codes","featureCodes","feature","attachFeature","commands","sort","a","b","_name","localeCompare","action","_","args","cli","pkg","blocks","doesExist","get","mapped","overrides","Object","keys","forEach","argParserUtil","bootOptions","apiClientUtil","generateClientCacheKey","connectToApi","connect","eventsContracts","require","MercuryClientFactory","Client","contracts","host","DEFAULT_HOST","allowSelfSignedCrt","client","shouldAuthAsCurrentSkill","shouldAuthAsLoggedInPerson","auth","doesPkgExist","skillId","apiKey","getCurrentSkill","id","person","getLoggedInPerson","token","length","authenticate","run","argv","Command","storeOptionsAsProperties","option","dirIdx","findIndex","v","dir","newCwd","diskUtil","resolvePath","terminal","env","CLI_RENDER_STACK_TRACES","clear","renderHero","CLI_HERO","isAskingForVersion","json","renderHeadline","version","Boot","HOST","setupInFlightEntertainment","parseAsync","_actionResults","getClients","doesSupportColor","ENABLE_INSTALL_INTERTAINMENT","CommandService","__dirname","InFlightEntertainment","setup","FeatureInstaller","startInFlightIntertainmentHandler","didUpdateHandler","start","message","writeStatus","stopInFlightIntertainmentHandler","stop"],"mappings":"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","sourcesContent":["import osUtil from 'os'\nimport {\n\tConnectionOptions,\n\tMercuryClientFactory,\n} from '@sprucelabs/mercury-client'\nimport { MercuryEventEmitter, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tdiskUtil,\n\tHealthCheckResults,\n\tHEALTH_DIVIDER,\n} from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport { Command, CommanderStatic } from 'commander'\nimport './addons/filePrompt.addon'\nimport { CLI_HERO, DEFAULT_HOST } from './constants'\nimport SpruceError from './errors/SpruceError'\nimport ActionExecuter from './features/ActionExecuter'\nimport ActionFactory from './features/ActionFactory'\nimport FeatureCommandAttacher, {\n\tBlockedCommands,\n\tOptionOverrides,\n} from './features/FeatureCommandAttacher'\nimport FeatureInstaller from './features/FeatureInstaller'\nimport FeatureInstallerFactory from './features/FeatureInstallerFactory'\nimport { FeatureCode, InstallFeatureOptions } from './features/features.types'\nimport CliGlobalEmitter, {\n\tGlobalEmitter,\n\tGlobalEventContract,\n} from './GlobalEmitter'\nimport InFlightEntertainment from './InFlightEntertainment'\nimport TerminalInterface from './interfaces/TerminalInterface'\nimport CommandService from './services/CommandService'\nimport ImportService from './services/ImportService'\nimport PkgService from './services/PkgService'\nimport ServiceFactory from './services/ServiceFactory'\nimport StoreFactory from './stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from './types/apiClient.types'\nimport { GraphicsInterface } from './types/cli.types'\nimport apiClientUtil from './utilities/apiClient.utility'\nimport { argParserUtil } from './utilities/argParser.utility'\nimport WriterFactory from './writers/WriterFactory'\n\ninterface HealthOptions {\n\tshouldRunOnSourceFiles?: boolean\n}\n\nexport interface CliInterface extends MercuryEventEmitter<GlobalEventContract> {\n\tinstallFeatures: FeatureInstaller['install']\n\tgetFeature: FeatureInstaller['getFeature']\n\tcheckHealth(options?: HealthOptions): Promise<HealthCheckResults>\n}\n\nexport interface CliBootOptions {\n\tcwd?: string\n\thomeDir?: string\n\tprogram?: CommanderStatic['program']\n\tgraphicsInterface?: GraphicsInterface\n\temitter?: GlobalEmitter\n\tapiClientFactory?: ApiClientFactory\n\tfeatureInstaller?: FeatureInstaller\n\thost?: string\n}\n\ntype PromiseCache = Record<string, Promise<ApiClient>>\n\nexport default class Cli implements CliInterface {\n\tprivate cwd: string\n\tprivate featureInstaller: FeatureInstaller\n\tprivate serviceFactory: ServiceFactory\n\tpublic readonly emitter: GlobalEmitter\n\tprivate static apiClients: PromiseCache = {}\n\tprivate attacher?: FeatureCommandAttacher\n\tprivate actionExecuter?: ActionExecuter\n\n\tprivate constructor(\n\t\tcwd: string,\n\t\tfeatureInstaller: FeatureInstaller,\n\t\tserviceFactory: ServiceFactory,\n\t\temitter: GlobalEmitter,\n\t\tattacher?: FeatureCommandAttacher,\n\t\tactionExecuter?: ActionExecuter\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.featureInstaller = featureInstaller\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.emitter = emitter\n\t\tthis.attacher = attacher\n\t\tthis.actionExecuter = actionExecuter\n\t}\n\n\tpublic static async resetApiClients() {\n\t\tfor (const key in this.apiClients) {\n\t\t\tawait (await this.apiClients[key]).disconnect()\n\t\t}\n\n\t\tthis.apiClients = {}\n\t}\n\n\tpublic getAttacher() {\n\t\treturn this.attacher\n\t}\n\n\tpublic getActionExecuter() {\n\t\treturn this.actionExecuter\n\t}\n\n\tpublic async on(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.on(...args)\n\t}\n\n\tpublic async off(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.off(...args)\n\t}\n\n\tpublic async emit(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emit(...args)\n\t}\n\n\tpublic async emitAndFlattenResponses(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emitAndFlattenResponses(...args)\n\t}\n\n\tpublic async installFeatures(options: InstallFeatureOptions) {\n\t\treturn this.featureInstaller.install(options)\n\t}\n\n\tpublic getFeature<C extends FeatureCode>(code: C) {\n\t\treturn this.featureInstaller.getFeature(code)\n\t}\n\n\tpublic async checkHealth(\n\t\toptions?: HealthOptions\n\t): Promise<HealthCheckResults> {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tcode: 'SKILL_NOT_INSTALLED',\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst commandService = this.serviceFactory.Service(this.cwd, 'command')\n\t\t\tconst command =\n\t\t\t\toptions?.shouldRunOnSourceFiles === false\n\t\t\t\t\t? 'yarn health'\n\t\t\t\t\t: 'yarn health.local'\n\t\t\tconst results = await commandService.execute(command)\n\t\t\tconst resultParts = results.stdout.split(HEALTH_DIVIDER)\n\n\t\t\treturn JSON.parse(resultParts[1]) as HealthCheckResults\n\t\t} catch (originalError: any) {\n\t\t\tconst error = new SpruceError({\n\t\t\t\tcode: 'BOOT_ERROR',\n\t\t\t\toriginalError,\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [error],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic static async Boot(options?: CliBootOptions): Promise<CliInterface> {\n\t\tconst program = options?.program\n\t\tconst emitter = options?.emitter ?? CliGlobalEmitter.Emitter()\n\n\t\tlet cwd = options?.cwd ?? process.cwd()\n\n\t\tImportService.enableCaching()\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst apiClientFactory =\n\t\t\toptions?.apiClientFactory ??\n\t\t\tCli.buildApiClientFactory(cwd, serviceFactory, options)\n\n\t\tconst storeFactory = new StoreFactory({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: options?.homeDir ?? osUtil.homedir(),\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t})\n\n\t\tconst ui = options?.graphicsInterface ?? new TerminalInterface(cwd)\n\t\tlet featureInstaller: FeatureInstaller | undefined\n\n\t\tconst writerFactory = new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui,\n\t\t\tsettings: serviceFactory.Service(cwd, 'settings'),\n\t\t\tlinter: serviceFactory.Service(cwd, 'lint'),\n\t\t})\n\n\t\tconst optionOverrides = this.loadOptionOverrides(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst blockedCommands = this.loadCommandBlocks(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\tui,\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory,\n\t\t\ttemplates,\n\t\t\twriterFactory,\n\t\t\tblockedCommands,\n\t\t\toptionOverrides,\n\t\t})\n\n\t\tconst actionExecuter = new ActionExecuter({\n\t\t\tactionFactory,\n\t\t\tui,\n\t\t\temitter,\n\t\t\t//@ts-ignore\n\t\t\tfeatureInstallerFactory: () => featureInstaller,\n\t\t})\n\n\t\tfeatureInstaller =\n\t\t\toptions?.featureInstaller ??\n\t\t\tFeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\tlet attacher: FeatureCommandAttacher | undefined\n\n\t\tif (program) {\n\t\t\tattacher = new FeatureCommandAttacher({\n\t\t\t\tprogram,\n\t\t\t\tui,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\t\tconst codes = FeatureInstallerFactory.featureCodes\n\n\t\t\tfor (const code of codes) {\n\t\t\t\tconst feature = featureInstaller.getFeature(code)\n\t\t\t\tawait attacher.attachFeature(feature)\n\t\t\t}\n\n\t\t\tprogram.commands.sort((a: any, b: any) => a._name.localeCompare(b._name))\n\n\t\t\tprogram.action((_, command) => {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'INVALID_COMMAND',\n\t\t\t\t\targs: command.args || [],\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\n\t\tconst cli = new Cli(\n\t\t\tcwd,\n\t\t\tfeatureInstaller,\n\t\t\tserviceFactory,\n\t\t\temitter,\n\t\t\tattacher,\n\t\t\tactionExecuter\n\t\t)\n\n\t\treturn cli as CliInterface\n\t}\n\n\tprivate static loadCommandBlocks(pkg: PkgService): BlockedCommands {\n\t\tlet blocks: BlockedCommands = {}\n\t\tif (pkg.doesExist()) {\n\t\t\tblocks = pkg.get('skill.blockedCommands') ?? {}\n\t\t}\n\t\treturn blocks\n\t}\n\n\tprivate static loadOptionOverrides(pkg: PkgService): OptionOverrides {\n\t\tconst mapped: OptionOverrides = {}\n\n\t\tif (pkg.doesExist()) {\n\t\t\tconst overrides = pkg.get('skill.commandOverrides')\n\n\t\t\tObject.keys(overrides ?? {}).forEach((command) => {\n\t\t\t\tconst options = argParserUtil.parse(overrides[command])\n\t\t\t\tmapped[command] = options\n\t\t\t})\n\t\t}\n\t\treturn mapped\n\t}\n\n\tpublic static buildApiClientFactory(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): ApiClientFactory {\n\t\tconst apiClientFactory = async (options?: ApiClientFactoryOptions) => {\n\t\t\tconst key = apiClientUtil.generateClientCacheKey(options)\n\n\t\t\tif (!Cli.apiClients[key]) {\n\t\t\t\tCli.apiClients[key] = Cli.connectToApi(\n\t\t\t\t\tcwd,\n\t\t\t\t\tserviceFactory,\n\t\t\t\t\toptions,\n\t\t\t\t\tbootOptions\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn Cli.apiClients[key]\n\t\t}\n\n\t\treturn apiClientFactory\n\t}\n\n\tprivate static async connectToApi(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\toptions?: ApiClientFactoryOptions,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): Promise<ApiClient> {\n\t\tconst connect = bootOptions?.apiClientFactory\n\t\t\t? bootOptions.apiClientFactory\n\t\t\t: async () => {\n\t\t\t\t\tconst eventsContracts =\n\t\t\t\t\t\trequire('#spruce/events/events.contract').default\n\n\t\t\t\t\tconst client: ApiClient = await MercuryClientFactory.Client({\n\t\t\t\t\t\tcontracts: eventsContracts as any,\n\t\t\t\t\t\thost: bootOptions?.host ?? DEFAULT_HOST,\n\t\t\t\t\t\tallowSelfSignedCrt: true,\n\t\t\t\t\t\t...bootOptions,\n\t\t\t\t\t})\n\n\t\t\t\t\treturn client\n\t\t\t }\n\n\t\tconst {\n\t\t\tshouldAuthAsCurrentSkill = false,\n\t\t\tshouldAuthAsLoggedInPerson = true,\n\t\t} = options ?? {}\n\n\t\tconst client = await connect()\n\n\t\tlet auth: SpruceSchemas.Mercury.v2020_12_25.AuthenticateEmitPayload = {}\n\n\t\tconst pkg = serviceFactory.Service(cwd, 'pkg')\n\t\tconst doesPkgExist = pkg.doesExist()\n\n\t\tif (options?.skillId && options?.apiKey) {\n\t\t\tauth = {\n\t\t\t\tskillId: options.skillId,\n\t\t\t\tapiKey: options.apiKey,\n\t\t\t}\n\t\t} else if (shouldAuthAsCurrentSkill) {\n\t\t\tconst skill = serviceFactory.Service(cwd, 'auth').getCurrentSkill()\n\n\t\t\tif (skill) {\n\t\t\t\tauth = {\n\t\t\t\t\tskillId: skill.id,\n\t\t\t\t\tapiKey: skill.apiKey,\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (doesPkgExist && shouldAuthAsLoggedInPerson) {\n\t\t\tconst person = serviceFactory.Service(cwd, 'auth').getLoggedInPerson()\n\n\t\t\tif (person) {\n\t\t\t\tauth.token = person.token\n\t\t\t}\n\t\t}\n\n\t\tif (Object.keys(auth).length > 0) {\n\t\t\tawait client.authenticate({\n\t\t\t\t...(auth as any),\n\t\t\t})\n\n\t\t\t//@ts-ignore\n\t\t\tclient.auth = auth\n\t\t}\n\n\t\treturn client\n\t}\n}\n\nexport async function run(argv: string[] = []): Promise<void> {\n\tconst program = new Command()\n\tlet cwd = process.cwd()\n\n\tprogram.storeOptionsAsProperties(false)\n\tprogram.option('--no-color', 'Disable color output in the console')\n\tprogram.option(\n\t\t'-d, --directory <path>',\n\t\t'The working directory to execute the command'\n\t)\n\tprogram.option('-v, --version', 'The version of the cli')\n\n\tconst dirIdx = process.argv.findIndex(\n\t\t(v) => v === '--directory' || v === '-d'\n\t)\n\n\tif (dirIdx > -1) {\n\t\tconst dir = process.argv[dirIdx + 1]\n\t\tconst newCwd = diskUtil.resolvePath(cwd, dir)\n\t\tcwd = newCwd\n\t}\n\n\tconst terminal = new TerminalInterface(\n\t\tcwd,\n\t\tprocess.env.CLI_RENDER_STACK_TRACES !== 'false'\n\t)\n\tterminal.clear()\n\tterminal.renderHero(CLI_HERO)\n\n\tconst isAskingForVersion =\n\t\tprocess.argv.findIndex((v) => v === '--version' || v === '-v') > -1\n\n\tif (isAskingForVersion) {\n\t\tconst json = require('../package.json')\n\t\tterminal.renderHeadline(`Version ${json.version}`)\n\t\treturn\n\t}\n\n\tawait Cli.Boot({\n\t\tprogram,\n\t\tcwd,\n\t\thost: process.env.HOST,\n\t\tgraphicsInterface: terminal,\n\t})\n\n\tawait setupInFlightEntertainment(terminal)\n\n\tconst command = await program.parseAsync(argv)\n\n\t//@ts-ignore\n\tconst results = await command._actionResults[0]\n\n\tfor (const client of MercuryClientFactory.getClients()) {\n\t\tawait client.disconnect()\n\t}\n\n\treturn results\n}\n\nasync function setupInFlightEntertainment(ui: TerminalInterface) {\n\tif (\n\t\tTerminalInterface.doesSupportColor() &&\n\t\tprocess.env.ENABLE_INSTALL_INTERTAINMENT !== 'false'\n\t) {\n\t\tconst command = new CommandService(diskUtil.resolvePath(__dirname, '../'))\n\t\tInFlightEntertainment.setup({ command, ui })\n\n\t\tFeatureInstaller.startInFlightIntertainmentHandler = (didUpdateHandler) => {\n\t\t\tInFlightEntertainment.start()\n\t\t\tdidUpdateHandler((message) => {\n\t\t\t\tInFlightEntertainment.writeStatus(message)\n\t\t\t})\n\t\t}\n\n\t\tFeatureInstaller.stopInFlightIntertainmentHandler = () => {\n\t\t\tInFlightEntertainment.stop()\n\t\t}\n\t}\n}\n"],"file":"cli.js"}
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  ]
19
19
  },
20
20
  "license": "MIT",
21
- "version": "14.29.26",
21
+ "version": "14.29.27",
22
22
  "bin": {
23
23
  "spruce": "./build/index.js"
24
24
  },
@@ -77,18 +77,18 @@
77
77
  "@babel/runtime": "^7.16.7",
78
78
  "@jest/reporters": "^27.4.6",
79
79
  "@sprucelabs/error": "^5.0.370",
80
- "@sprucelabs/heartwood-view-controllers": "^55.1.10",
80
+ "@sprucelabs/heartwood-view-controllers": "^55.6.8",
81
81
  "@sprucelabs/jest-json-reporter": "^6.0.305",
82
- "@sprucelabs/mercury-client": "^19.2.84",
83
- "@sprucelabs/mercury-event-emitter": "^19.2.84",
84
- "@sprucelabs/mercury-types": "^26.1.1175",
85
- "@sprucelabs/schema": "^25.6.4",
86
- "@sprucelabs/spruce-core-schemas": "^22.7.79",
87
- "@sprucelabs/spruce-event-plugin": "^20.3.0",
88
- "@sprucelabs/spruce-event-utils": "^17.1.464",
89
- "@sprucelabs/spruce-skill-booter": "^20.3.0",
90
- "@sprucelabs/spruce-skill-utils": "^22.2.128",
91
- "@sprucelabs/spruce-templates": "^14.29.26",
82
+ "@sprucelabs/mercury-client": "^19.3.8",
83
+ "@sprucelabs/mercury-event-emitter": "^19.3.8",
84
+ "@sprucelabs/mercury-types": "^26.2.14",
85
+ "@sprucelabs/schema": "^25.6.18",
86
+ "@sprucelabs/spruce-core-schemas": "^22.7.94",
87
+ "@sprucelabs/spruce-event-plugin": "^21.0.13",
88
+ "@sprucelabs/spruce-event-utils": "^17.1.479",
89
+ "@sprucelabs/spruce-skill-booter": "^21.0.13",
90
+ "@sprucelabs/spruce-skill-utils": "^22.2.143",
91
+ "@sprucelabs/spruce-templates": "^14.29.27",
92
92
  "@typescript-eslint/eslint-plugin": "^5.9.0",
93
93
  "@typescript-eslint/parser": "^5.9.0",
94
94
  "cfonts": "^2.10.0",
@@ -119,18 +119,18 @@
119
119
  "uuid": "^8.3.2"
120
120
  },
121
121
  "devDependencies": {
122
- "@sprucelabs/data-stores": "^7.2.129",
122
+ "@sprucelabs/data-stores": "^7.2.144",
123
123
  "@sprucelabs/jest-sheets-reporter": "^1.2.301",
124
- "@sprucelabs/mercury-core-events": "^1.7.79",
124
+ "@sprucelabs/mercury-core-events": "^1.7.81",
125
125
  "@sprucelabs/resolve-path-aliases": "^1.0.251",
126
- "@sprucelabs/spruce-conversation-plugin": "^20.3.0",
127
- "@sprucelabs/spruce-deploy-plugin": "^20.3.0",
128
- "@sprucelabs/spruce-store-plugin": "^20.3.0",
129
- "@sprucelabs/spruce-test-fixtures": "^20.3.0",
126
+ "@sprucelabs/spruce-conversation-plugin": "^21.0.13",
127
+ "@sprucelabs/spruce-deploy-plugin": "^21.0.13",
128
+ "@sprucelabs/spruce-store-plugin": "^21.0.13",
129
+ "@sprucelabs/spruce-test-fixtures": "^21.0.13",
130
130
  "@sprucelabs/test": "^7.7.271",
131
131
  "@sprucelabs/test-utils": "^3.0.372",
132
132
  "@types/blessed": "^0.1.19",
133
- "@types/eslint": "^8.2.1",
133
+ "@types/eslint": "^8.2.2",
134
134
  "@types/fs-extra": "^9.0.13",
135
135
  "@types/inflection": "^1.13.0",
136
136
  "@types/inquirer": "^8.1.3",
@@ -597,5 +597,5 @@
597
597
  "ora"
598
598
  ]
599
599
  },
600
- "gitHead": "ae2c320a256ffbb12e834e8ec8628c5becb4d01c"
600
+ "gitHead": "308752bd3f1531c2441777985e51dfa95d07cae7"
601
601
  }
package/src/cli.ts CHANGED
@@ -123,6 +123,11 @@ export default class Cli implements CliInterface {
123
123
  return this.emitter.emit(...args)
124
124
  }
125
125
 
126
+ public async emitAndFlattenResponses(...args: any[]) {
127
+ //@ts-ignore
128
+ return this.emitter.emitAndFlattenResponses(...args)
129
+ }
130
+
126
131
  public async installFeatures(options: InstallFeatureOptions) {
127
132
  return this.featureInstaller.install(options)
128
133
  }