@sprucelabs/spruce-cli 18.0.0 → 18.1.0

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 (158) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +1 -1
  3. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  4. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +1 -1
  5. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  6. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +4 -4
  7. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  8. package/build/__tests__/behavioral/WatchingSkillViews.test.js +3 -3
  9. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  10. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
  11. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  12. package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
  13. package/build/__tests__/behavioral/events/CreatingAListener.test.js +118 -59
  14. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  15. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.d.ts +17 -0
  16. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js +137 -0
  17. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js.map +1 -0
  18. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +46 -45
  19. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  20. package/build/__tests__/behavioral/tests/CreatingATest.test.js +1 -1
  21. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  22. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +4 -4
  23. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  24. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +2 -2
  25. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  26. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +2 -2
  27. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  28. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +2 -2
  29. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  30. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +2 -2
  31. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  32. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  33. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  34. package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
  35. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  36. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.d.ts +3 -3
  37. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +153 -156
  38. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  39. package/build/__tests__/implementation/ActionExecuter.test.js +2 -2
  40. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  41. package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
  42. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  43. package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
  44. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  45. package/build/__tests__/implementation/FeatureInstaller.test.js +8 -4
  46. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  47. package/build/__tests__/implementation/GlobalEmitter.d.ts +1 -1
  48. package/build/__tests__/implementation/GlobalEmitter.js +9 -10
  49. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  50. package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
  51. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  52. package/build/__tests__/implementation/SkillStore.test.d.ts +3 -1
  53. package/build/__tests__/implementation/SkillStore.test.js +67 -50
  54. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  55. package/build/__tests__/implementation/StoreFeature.test.js +1 -1
  56. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  57. package/build/cli.js +3 -3
  58. package/build/cli.js.map +1 -1
  59. package/build/features/AbstractAction.d.ts +2 -2
  60. package/build/features/AbstractAction.js.map +1 -1
  61. package/build/features/AbstractFeature.d.ts +22 -22
  62. package/build/features/AbstractFeature.js.map +1 -1
  63. package/build/features/ActionExecuter.d.ts +8 -8
  64. package/build/features/ActionExecuter.js.map +1 -1
  65. package/build/features/FeatureInstaller.d.ts +15 -2
  66. package/build/features/FeatureInstaller.js +36 -36
  67. package/build/features/FeatureInstaller.js.map +1 -1
  68. package/build/features/FeatureInstallerFactory.d.ts +12 -10
  69. package/build/features/FeatureInstallerFactory.js +2 -2
  70. package/build/features/FeatureInstallerFactory.js.map +1 -1
  71. package/build/features/OverrideActionDecorator.js +4 -5
  72. package/build/features/OverrideActionDecorator.js.map +1 -1
  73. package/build/features/event/actions/ListenAction.js.map +1 -1
  74. package/build/features/event/actions/SetRemoteAction.d.ts +1 -0
  75. package/build/features/event/actions/SetRemoteAction.js +2 -1
  76. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  77. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  78. package/build/features/node/NodeFeature.js.map +1 -1
  79. package/build/features/skill/SkillFeature.js.map +1 -1
  80. package/build/features/skill/stores/SkillStore.d.ts +4 -1
  81. package/build/features/skill/stores/SkillStore.js +127 -100
  82. package/build/features/skill/stores/SkillStore.js.map +1 -1
  83. package/build/features/watch/WatchFeature.js +1 -1
  84. package/build/features/watch/WatchFeature.js.map +1 -1
  85. package/build/interfaces/SpyInterface.d.ts +2 -0
  86. package/build/interfaces/SpyInterface.js +16 -4
  87. package/build/interfaces/SpyInterface.js.map +1 -1
  88. package/build/stores/AbstractStore.d.ts +9 -7
  89. package/build/stores/AbstractStore.js.map +1 -1
  90. package/build/stores/StoreFactory.d.ts +19 -13
  91. package/build/stores/StoreFactory.js +15 -13
  92. package/build/stores/StoreFactory.js.map +1 -1
  93. package/build/tests/AbstractCliTest.d.ts +9 -6
  94. package/build/tests/AbstractCliTest.js +53 -45
  95. package/build/tests/AbstractCliTest.js.map +1 -1
  96. package/build/tests/AbstractSchemaTest.js +18 -20
  97. package/build/tests/AbstractSchemaTest.js.map +1 -1
  98. package/build/utilities/action.utility.js +3 -1
  99. package/build/utilities/action.utility.js.map +1 -1
  100. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  101. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  102. package/node_modules/@typescript-eslint/types/package.json +2 -2
  103. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  104. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  105. package/package.json +28 -86
  106. package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +1 -1
  107. package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +1 -1
  108. package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +4 -4
  109. package/src/__tests__/behavioral/WatchingSkillViews.test.ts +3 -3
  110. package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +1 -1
  111. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +41 -14
  112. package/src/__tests__/behavioral/events/EverythingInstalledInstaller.ts +46 -0
  113. package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +10 -5
  114. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +1 -1
  115. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +4 -4
  116. package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +2 -2
  117. package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +2 -2
  118. package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +2 -2
  119. package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +2 -2
  120. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +1 -1
  121. package/src/__tests__/behavioral/views/CreatingATheme.test.ts +1 -1
  122. package/src/__tests__/behavioral/watchers/WatchingForChanges.test.ts +35 -35
  123. package/src/__tests__/implementation/ActionExecuter.test.ts +2 -2
  124. package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
  125. package/src/__tests__/implementation/ActionExecuter4.test.ts +1 -1
  126. package/src/__tests__/implementation/FeatureInstaller.test.ts +8 -1
  127. package/src/__tests__/implementation/GlobalEmitter.ts +2 -4
  128. package/src/__tests__/implementation/SettingUpANodeModule.test.ts +1 -1
  129. package/src/__tests__/implementation/SkillStore.test.ts +23 -24
  130. package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
  131. package/src/cli.ts +7 -3
  132. package/src/features/AbstractAction.ts +3 -3
  133. package/src/features/AbstractFeature.ts +26 -26
  134. package/src/features/ActionExecuter.ts +9 -9
  135. package/src/features/FeatureInstaller.ts +32 -12
  136. package/src/features/FeatureInstallerFactory.ts +17 -13
  137. package/src/features/OverrideActionDecorator.ts +2 -5
  138. package/src/features/event/actions/ListenAction.ts +1 -0
  139. package/src/features/event/actions/SetRemoteAction.ts +2 -1
  140. package/src/features/event/actions/SyncListenersAction.ts +0 -1
  141. package/src/features/node/NodeFeature.ts +3 -1
  142. package/src/features/skill/SkillFeature.ts +3 -3
  143. package/src/features/skill/stores/SkillStore.ts +18 -11
  144. package/src/features/watch/WatchFeature.ts +1 -1
  145. package/src/interfaces/SpyInterface.ts +10 -0
  146. package/src/stores/AbstractStore.ts +14 -8
  147. package/src/stores/StoreFactory.ts +56 -44
  148. package/src/tests/AbstractCliTest.ts +53 -45
  149. package/src/tests/AbstractSchemaTest.ts +1 -3
  150. package/src/utilities/action.utility.ts +3 -1
  151. package/.DS_Store +0 -0
  152. package/.env +0 -25
  153. package/.eslintcache +0 -1
  154. package/build/.spruce/tmp/cached-skills.json +0 -3
  155. package/junit.xml +0 -7
  156. package/src/.DS_Store +0 -0
  157. package/src/.spruce/tmp/cached-skills.json +0 -3
  158. package/yarn-error.log +0 -12174
@@ -26,10 +26,10 @@ var _testUtils = require("@sprucelabs/test-utils");
26
26
  var _ListenAction = require("../../../features/event/actions/ListenAction");
27
27
  var _AbstractEventTest2 = _interopRequireDefault(require("../../../tests/AbstractEventTest"));
28
28
  var _test = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
29
- var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _class, _class2;
29
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _class, _class2;
30
30
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
31
31
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
32
- var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test)(), _dec3 = (0, _testUtils.test)(), _dec4 = (0, _testUtils.test)(), _dec5 = (0, _testUtils.test)(), _dec6 = (0, _testUtils.test)(), _dec7 = (0, _testUtils.test)(), _dec8 = (0, _testUtils.test)(), _dec9 = (0, _testUtils.test)(), _dec10 = (0, _testUtils.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractEventTest) {
32
+ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test)(), _dec3 = (0, _testUtils.test)(), _dec4 = (0, _testUtils.test)(), _dec5 = (0, _testUtils.test)(), _dec6 = (0, _testUtils.test)(), _dec7 = (0, _testUtils.test)(), _dec8 = (0, _testUtils.test)(), _dec9 = (0, _testUtils.test)(), _dec10 = (0, _testUtils.test)(), _dec11 = (0, _testUtils.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractEventTest) {
33
33
  (0, _inherits2["default"])(CreatingAListenerTest, _AbstractEventTest);
34
34
  var _super = _createSuper(CreatingAListenerTest);
35
35
  function CreatingAListenerTest() {
@@ -135,20 +135,18 @@ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUti
135
135
  key: "generatesMapFile",
136
136
  value: function () {
137
137
  var _generatesMapFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
138
- var _yield$this$installEv, results, match;
138
+ var match;
139
139
  return _regenerator["default"].wrap(function _callee4$(_context4) {
140
140
  while (1) {
141
141
  switch (_context4.prev = _context4.next) {
142
142
  case 0:
143
143
  _context4.next = 2;
144
- return this.installEventsAndCreateListener();
144
+ return this.installEventsCreateListenerAndGetListenerMap();
145
145
  case 2:
146
- _yield$this$installEv = _context4.sent;
147
- results = _yield$this$installEv.results;
148
- match = _test["default"].assertFileByNameInGeneratedFiles("listeners.ts", results.files);
149
- _context4.next = 7;
146
+ match = _context4.sent;
147
+ _context4.next = 5;
150
148
  return this.Service('typeChecker').check(match);
151
- case 7:
149
+ case 5:
152
150
  case "end":
153
151
  return _context4.stop();
154
152
  }
@@ -165,7 +163,7 @@ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUti
165
163
  value: function () {
166
164
  var _createsValidListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
167
165
  var _health$event;
168
- var _yield$this$installEv2, version, results, cli, match, health;
166
+ var _yield$this$installEv, version, results, cli, match, health;
169
167
  return _regenerator["default"].wrap(function _callee5$(_context5) {
170
168
  while (1) {
171
169
  switch (_context5.prev = _context5.next) {
@@ -173,10 +171,10 @@ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUti
173
171
  _context5.next = 2;
174
172
  return this.installEventsAndCreateListener();
175
173
  case 2:
176
- _yield$this$installEv2 = _context5.sent;
177
- version = _yield$this$installEv2.version;
178
- results = _yield$this$installEv2.results;
179
- cli = _yield$this$installEv2.cli;
174
+ _yield$this$installEv = _context5.sent;
175
+ version = _yield$this$installEv.version;
176
+ results = _yield$this$installEv.results;
177
+ cli = _yield$this$installEv.cli;
180
178
  match = _test["default"].assertFileByNameInGeneratedFiles("will-boot.".concat(version, ".listener.ts"), results.files);
181
179
  _testUtils.assert.doesInclude(match, version);
182
180
  _context5.next = 10;
@@ -255,20 +253,22 @@ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUti
255
253
  while (1) {
256
254
  switch (_context7.prev = _context7.next) {
257
255
  case 0:
258
- _context7.next = 2;
256
+ _mercuryClient.MercuryClientFactory.setIsTestMode(true);
257
+ _mercuryClient.MercuryTestClient.setShouldRequireLocalListeners(true);
258
+ _context7.next = 4;
259
259
  return this.fakeGetEventContracts(function (target) {
260
260
  passedTarget = target;
261
261
  });
262
- case 2:
263
- namespace = 'waka';
264
- _context7.next = 5;
262
+ case 4:
263
+ namespace = (0, _testUtils.generateId)();
264
+ _context7.next = 7;
265
265
  return this.installAddDependencyExecuteAndWaitForInput(namespace);
266
- case 5:
266
+ case 7:
267
267
  _testUtils.assert.isEqualDeep(passedTarget, {
268
268
  namespaces: [namespace, _ListenAction.CORE_EVENT_NAMESPACE]
269
269
  });
270
270
  this.ui.reset();
271
- case 7:
271
+ case 9:
272
272
  case "end":
273
273
  return _context7.stop();
274
274
  }
@@ -545,28 +545,54 @@ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUti
545
545
  return listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener;
546
546
  }()
547
547
  }, {
548
- key: "installAddDependencyExecuteAndWaitForInput",
548
+ key: "hasIsGlobalCheck",
549
549
  value: function () {
550
- var _installAddDependencyExecuteAndWaitForInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13(namespace) {
550
+ var _hasIsGlobalCheck = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
551
+ var match, contents;
551
552
  return _regenerator["default"].wrap(function _callee13$(_context13) {
552
553
  while (1) {
553
554
  switch (_context13.prev = _context13.next) {
554
555
  case 0:
555
556
  _context13.next = 2;
557
+ return this.installEventsCreateListenerAndGetListenerMap();
558
+ case 2:
559
+ match = _context13.sent;
560
+ contents = _spruceSkillUtils.diskUtil.readFile(match);
561
+ _testUtils.assert.doesInclude(contents, "isGlobal: require('../../listeners/skill/will-boot.v2020_01_01.listener').isGlobal,");
562
+ case 5:
563
+ case "end":
564
+ return _context13.stop();
565
+ }
566
+ }
567
+ }, _callee13, this);
568
+ }));
569
+ function hasIsGlobalCheck() {
570
+ return _hasIsGlobalCheck.apply(this, arguments);
571
+ }
572
+ return hasIsGlobalCheck;
573
+ }()
574
+ }, {
575
+ key: "installAddDependencyExecuteAndWaitForInput",
576
+ value: function () {
577
+ var _installAddDependencyExecuteAndWaitForInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14(namespace) {
578
+ return _regenerator["default"].wrap(function _callee14$(_context14) {
579
+ while (1) {
580
+ switch (_context14.prev = _context14.next) {
581
+ case 0:
582
+ _context14.next = 2;
556
583
  return this.installEventFeature('events');
557
584
  case 2:
558
- _mercuryClient.MercuryClientFactory.setIsTestMode(true);
559
585
  this.addDependency(namespace);
560
- _context13.next = 6;
586
+ _context14.next = 5;
561
587
  return this.executeAndWaitForInput();
588
+ case 5:
589
+ return _context14.abrupt("return", this.ui.getLastInvocation());
562
590
  case 6:
563
- return _context13.abrupt("return", this.ui.getLastInvocation());
564
- case 7:
565
591
  case "end":
566
- return _context13.stop();
592
+ return _context14.stop();
567
593
  }
568
594
  }
569
- }, _callee13, this);
595
+ }, _callee14, this);
570
596
  }));
571
597
  function installAddDependencyExecuteAndWaitForInput(_x3) {
572
598
  return _installAddDependencyExecuteAndWaitForInput.apply(this, arguments);
@@ -576,20 +602,25 @@ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUti
576
602
  }, {
577
603
  key: "executeAndWaitForInput",
578
604
  value: function () {
579
- var _executeAndWaitForInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14() {
580
- return _regenerator["default"].wrap(function _callee14$(_context14) {
605
+ var _executeAndWaitForInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee15() {
606
+ var _this = this;
607
+ return _regenerator["default"].wrap(function _callee15$(_context15) {
581
608
  while (1) {
582
- switch (_context14.prev = _context14.next) {
609
+ switch (_context15.prev = _context15.next) {
583
610
  case 0:
584
- void this.listen.execute({});
585
- _context14.next = 3;
611
+ void this.listen.execute({}).then(function (results) {
612
+ if (results.errors) {
613
+ _this.ui.setError(results.errors[0]);
614
+ }
615
+ });
616
+ _context15.next = 3;
586
617
  return this.waitForInput();
587
618
  case 3:
588
619
  case "end":
589
- return _context14.stop();
620
+ return _context15.stop();
590
621
  }
591
622
  }
592
- }, _callee14, this);
623
+ }, _callee15, this);
593
624
  }));
594
625
  function executeAndWaitForInput() {
595
626
  return _executeAndWaitForInput.apply(this, arguments);
@@ -602,43 +633,43 @@ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUti
602
633
  var dependencies = this.Service('dependency');
603
634
  dependencies.add({
604
635
  id: namespace,
605
- namespace: 'waka'
636
+ namespace: namespace
606
637
  });
607
638
  }
608
639
  }, {
609
640
  key: "installEventsAndCreateListener",
610
641
  value: function () {
611
- var _installEventsAndCreateListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee15() {
642
+ var _installEventsAndCreateListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16() {
612
643
  var cli, version, results;
613
- return _regenerator["default"].wrap(function _callee15$(_context15) {
644
+ return _regenerator["default"].wrap(function _callee16$(_context16) {
614
645
  while (1) {
615
- switch (_context15.prev = _context15.next) {
646
+ switch (_context16.prev = _context16.next) {
616
647
  case 0:
617
- _context15.next = 2;
648
+ _context16.next = 2;
618
649
  return this.installEventFeature('events');
619
650
  case 2:
620
- cli = _context15.sent;
651
+ cli = _context16.sent;
621
652
  version = 'v2020_01_01';
622
- _context15.next = 6;
653
+ _context16.next = 6;
623
654
  return this.listen.execute({
624
655
  namespace: 'skill',
625
656
  eventName: 'will-boot',
626
657
  version: version
627
658
  });
628
659
  case 6:
629
- results = _context15.sent;
660
+ results = _context16.sent;
630
661
  _testUtils.assert.isFalsy(results.errors);
631
- return _context15.abrupt("return", {
662
+ return _context16.abrupt("return", {
632
663
  version: version,
633
664
  results: results,
634
665
  cli: cli
635
666
  });
636
667
  case 9:
637
668
  case "end":
638
- return _context15.stop();
669
+ return _context16.stop();
639
670
  }
640
671
  }
641
- }, _callee15, this);
672
+ }, _callee16, this);
642
673
  }));
643
674
  function installEventsAndCreateListener() {
644
675
  return _installEventsAndCreateListener.apply(this, arguments);
@@ -648,47 +679,47 @@ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUti
648
679
  }, {
649
680
  key: "setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener",
650
681
  value: function () {
651
- var _setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16(eventSignature) {
682
+ var _setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee17(eventSignature) {
652
683
  var expectedVersion, eventContract, _yield$this$seedDummy, skillFixture, skill2, currentSkill, cli, org, results, listener, contents;
653
- return _regenerator["default"].wrap(function _callee16$(_context16) {
684
+ return _regenerator["default"].wrap(function _callee17$(_context17) {
654
685
  while (1) {
655
- switch (_context16.prev = _context16.next) {
686
+ switch (_context17.prev = _context17.next) {
656
687
  case 0:
657
688
  expectedVersion = this.expectedVersion;
658
689
  eventContract = {
659
690
  eventSignatures: (0, _defineProperty2["default"])({}, "my-new-event::".concat(expectedVersion), eventSignature)
660
691
  };
661
- _context16.next = 4;
692
+ _context17.next = 4;
662
693
  return this.seedDummySkillRegisterCurrentSkillAndInstallToOrg();
663
694
  case 4:
664
- _yield$this$seedDummy = _context16.sent;
695
+ _yield$this$seedDummy = _context17.sent;
665
696
  skillFixture = _yield$this$seedDummy.skillFixture;
666
697
  skill2 = _yield$this$seedDummy.skill2;
667
698
  currentSkill = _yield$this$seedDummy.currentSkill;
668
699
  cli = _yield$this$seedDummy.cli;
669
700
  org = _yield$this$seedDummy.org;
670
- _context16.next = 12;
701
+ _context17.next = 12;
671
702
  return skillFixture.registerEventContract(skill2, eventContract);
672
703
  case 12:
673
704
  this.Service('dependency').add({
674
705
  id: skill2.id,
675
706
  namespace: skill2.slug
676
707
  });
677
- _context16.next = 15;
708
+ _context17.next = 15;
678
709
  return this.listen.execute({
679
710
  namespace: skill2.slug,
680
711
  eventName: "my-new-event",
681
712
  version: expectedVersion
682
713
  });
683
714
  case 15:
684
- results = _context16.sent;
715
+ results = _context17.sent;
685
716
  _testUtils.assert.isFalsy(results.errors);
686
717
  listener = _test["default"].assertFileByNameInGeneratedFiles("my-new-event.".concat(expectedVersion, ".listener.ts"), results.files);
687
- _context16.next = 20;
718
+ _context17.next = 20;
688
719
  return this.Service('typeChecker').check(listener);
689
720
  case 20:
690
721
  contents = _spruceSkillUtils.diskUtil.readFile(listener);
691
- return _context16.abrupt("return", {
722
+ return _context17.abrupt("return", {
692
723
  contents: contents,
693
724
  skill2: skill2,
694
725
  listenerPath: listener,
@@ -699,18 +730,46 @@ var CreatingAListenerTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUti
699
730
  });
700
731
  case 22:
701
732
  case "end":
702
- return _context16.stop();
733
+ return _context17.stop();
703
734
  }
704
735
  }
705
- }, _callee16, this);
736
+ }, _callee17, this);
706
737
  }));
707
738
  function setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(_x4) {
708
739
  return _setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener.apply(this, arguments);
709
740
  }
710
741
  return setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener;
711
742
  }()
743
+ }, {
744
+ key: "installEventsCreateListenerAndGetListenerMap",
745
+ value: function () {
746
+ var _installEventsCreateListenerAndGetListenerMap = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee18() {
747
+ var _yield$this$installEv2, results, match;
748
+ return _regenerator["default"].wrap(function _callee18$(_context18) {
749
+ while (1) {
750
+ switch (_context18.prev = _context18.next) {
751
+ case 0:
752
+ _context18.next = 2;
753
+ return this.installEventsAndCreateListener();
754
+ case 2:
755
+ _yield$this$installEv2 = _context18.sent;
756
+ results = _yield$this$installEv2.results;
757
+ match = _test["default"].assertFileByNameInGeneratedFiles("listeners.ts", results.files);
758
+ return _context18.abrupt("return", match);
759
+ case 6:
760
+ case "end":
761
+ return _context18.stop();
762
+ }
763
+ }
764
+ }, _callee18, this);
765
+ }));
766
+ function installEventsCreateListenerAndGetListenerMap() {
767
+ return _installEventsCreateListenerAndGetListenerMap.apply(this, arguments);
768
+ }
769
+ return installEventsCreateListenerAndGetListenerMap;
770
+ }()
712
771
  }]);
713
772
  return CreatingAListenerTest;
714
- }(_AbstractEventTest2["default"]), (0, _defineProperty2["default"])(_class2, "expectedVersion", _spruceSkillUtils.versionUtil.generateVersion().constValue), (0, _defineProperty2["default"])(_class2, "listen", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "throwsWithBadNamespace", [_dec], Object.getOwnPropertyDescriptor(_class, "throwsWithBadNamespace"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "throwsWithBadEventName", [_dec2], Object.getOwnPropertyDescriptor(_class, "throwsWithBadEventName"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesMapFile", [_dec3], Object.getOwnPropertyDescriptor(_class, "generatesMapFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "createsValidListener", [_dec4], Object.getOwnPropertyDescriptor(_class, "createsValidListener"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "creatingANewListenerAsksWhichEventToListenTo", [_dec5], Object.getOwnPropertyDescriptor(_class, "creatingANewListenerAsksWhichEventToListenTo"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsContractsFilteringByDependencies", [_dec6], Object.getOwnPropertyDescriptor(_class, "loadsContractsFilteringByDependencies"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesTypedListenerWithoutPayloads", [_dec7], Object.getOwnPropertyDescriptor(_class, "generatesTypedListenerWithoutPayloads"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesTypedListenerWithEmitPayload", [_dec8], Object.getOwnPropertyDescriptor(_class, "generatesTypedListenerWithEmitPayload"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "emittingEventTriggersListenerAndCrashesWithListenerNotImplemented", [_dec9], Object.getOwnPropertyDescriptor(_class, "emittingEventTriggersListenerAndCrashesWithListenerNotImplemented"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener", [_dec10], Object.getOwnPropertyDescriptor(_class, "listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener"), _class)), _class));
773
+ }(_AbstractEventTest2["default"]), (0, _defineProperty2["default"])(_class2, "expectedVersion", _spruceSkillUtils.versionUtil.generateVersion().constValue), (0, _defineProperty2["default"])(_class2, "listen", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "throwsWithBadNamespace", [_dec], Object.getOwnPropertyDescriptor(_class, "throwsWithBadNamespace"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "throwsWithBadEventName", [_dec2], Object.getOwnPropertyDescriptor(_class, "throwsWithBadEventName"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesMapFile", [_dec3], Object.getOwnPropertyDescriptor(_class, "generatesMapFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "createsValidListener", [_dec4], Object.getOwnPropertyDescriptor(_class, "createsValidListener"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "creatingANewListenerAsksWhichEventToListenTo", [_dec5], Object.getOwnPropertyDescriptor(_class, "creatingANewListenerAsksWhichEventToListenTo"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsContractsFilteringByDependencies", [_dec6], Object.getOwnPropertyDescriptor(_class, "loadsContractsFilteringByDependencies"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesTypedListenerWithoutPayloads", [_dec7], Object.getOwnPropertyDescriptor(_class, "generatesTypedListenerWithoutPayloads"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesTypedListenerWithEmitPayload", [_dec8], Object.getOwnPropertyDescriptor(_class, "generatesTypedListenerWithEmitPayload"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "emittingEventTriggersListenerAndCrashesWithListenerNotImplemented", [_dec9], Object.getOwnPropertyDescriptor(_class, "emittingEventTriggersListenerAndCrashesWithListenerNotImplemented"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener", [_dec10], Object.getOwnPropertyDescriptor(_class, "listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasIsGlobalCheck", [_dec11], Object.getOwnPropertyDescriptor(_class, "hasIsGlobalCheck"), _class)), _class));
715
774
  exports["default"] = CreatingAListenerTest;
716
775
  //# sourceMappingURL=CreatingAListener.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreatingAListener.test.js","names":["CreatingAListenerTest","test","listen","Action","installEventFeature","execute","namespace","results","assert","isTruthy","errors","err","errorAssert","assertError","namespaces","eventName","parameters","installEventsAndCreateListener","match","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","version","cli","doesInclude","checkHealth","health","isFalsy","event","skill","isUndefined","listeners","eventNamespace","executeAndWaitForInput","lastInvocation","ui","getLastInvocation","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","waitForInput","reset","fakeGetEventContracts","target","passedTarget","installAddDependencyExecuteAndWaitForInput","isEqualDeep","CORE_EVENT_NAMESPACE","cb","eventFaker","on","contracts","coreEventContracts","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","buildEmitTargetAndPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","buildSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","listenerPath","MercuryClientFactory","setIsTestMode","addDependency","dependencies","add","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","listener","diskUtil","readFile","AbstractEventTest","versionUtil","generateVersion","constValue"],"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport { EventSignature, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { eventFaker } from '@sprucelabs/spruce-test-fixtures'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport ListenAction, {\n\tCORE_EVENT_NAMESPACE,\n} from '../../../features/event/actions/ListenAction'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\tprivate static listen: ListenAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.listen = this.Action('event', 'listen')\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_NAMESPACES', {\n\t\t\tnamespaces: ['taco-bell'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'heartwood',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesMapFile() {\n\t\tconst { results } = await this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`listeners.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst { version, results, cli } =\n\t\t\tawait this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isFalsy(health?.event?.errors)\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\t\tawait this.executeAndWaitForInput()\n\n\t\tlet lastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async loadsContractsFilteringByDependencies() {\n\t\tlet passedTarget: any\n\t\tawait this.fakeGetEventContracts((target) => {\n\t\t\tpassedTarget = target\n\t\t})\n\n\t\tconst namespace = 'waka'\n\t\tawait this.installAddDependencyExecuteAndWaitForInput(namespace)\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace, CORE_EVENT_NAMESPACE],\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async fakeGetEventContracts(\n\t\tcb?: (\n\t\t\ttarget?: SpruceSchemas.Mercury.v2020_12_25.GetEventContractsTarget | null\n\t\t) => void,\n\t\tresults?: SpruceSchemas.Mercury.v2020_12_25.GetEventContractsResponsePayload['contracts']\n\t) {\n\t\tawait eventFaker.on('get-event-contracts::v2020_12_25', ({ target }) => {\n\t\t\tcb?.(target)\n\t\t\treturn {\n\t\t\t\tcontracts: results ?? [...(coreEventContracts as any)],\n\t\t\t}\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener() {\n\t\tconst { listenerPath } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\n\t\tawait this.Service('typeChecker').check(listenerPath)\n\t}\n\n\tprivate static async installAddDependencyExecuteAndWaitForInput(\n\t\tnamespace: string\n\t) {\n\t\tawait this.installEventFeature('events')\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tthis.addDependency(namespace)\n\t\tawait this.executeAndWaitForInput()\n\t\treturn this.ui.getLastInvocation()\n\t}\n\n\tprivate static async executeAndWaitForInput() {\n\t\tvoid this.listen.execute({})\n\t\tawait this.waitForInput()\n\t}\n\n\tprivate static addDependency(namespace: string) {\n\t\tconst dependencies = this.Service('dependency')\n\t\tdependencies.add({\n\t\t\tid: namespace,\n\t\t\tnamespace: 'waka',\n\t\t})\n\t}\n\n\tprivate static async installEventsAndCreateListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\treturn { version, results, cli }\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CreatingAListener.test.js","names":["CreatingAListenerTest","test","listen","Action","installEventFeature","execute","namespace","results","assert","isTruthy","errors","err","errorAssert","assertError","namespaces","eventName","parameters","installEventsCreateListenerAndGetListenerMap","match","Service","check","installEventsAndCreateListener","version","cli","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","checkHealth","health","isFalsy","event","skill","isUndefined","listeners","eventNamespace","executeAndWaitForInput","lastInvocation","ui","getLastInvocation","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","waitForInput","reset","MercuryClientFactory","setIsTestMode","MercuryTestClient","setShouldRequireLocalListeners","fakeGetEventContracts","target","passedTarget","generateId","installAddDependencyExecuteAndWaitForInput","isEqualDeep","CORE_EVENT_NAMESPACE","cb","eventFaker","on","contracts","coreEventContracts","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","buildEmitTargetAndPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","buildSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","listenerPath","diskUtil","readFile","addDependency","then","setError","dependencies","add","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","listener","AbstractEventTest","versionUtil","generateVersion","constValue"],"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"sourcesContent":["import {\n\tMercuryClientFactory,\n\tMercuryTestClient,\n} from '@sprucelabs/mercury-client'\nimport { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport { EventSignature, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { eventFaker } from '@sprucelabs/spruce-test-fixtures'\nimport { test, assert, generateId } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport ListenAction, {\n\tCORE_EVENT_NAMESPACE,\n} from '../../../features/event/actions/ListenAction'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\tprivate static listen: ListenAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.listen = this.Action('event', 'listen')\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_NAMESPACES', {\n\t\t\tnamespaces: ['taco-bell'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'heartwood',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesMapFile() {\n\t\tconst match = await this.installEventsCreateListenerAndGetListenerMap()\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst { version, results, cli } =\n\t\t\tawait this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isFalsy(health?.event?.errors)\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\t\tawait this.executeAndWaitForInput()\n\n\t\tlet lastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async loadsContractsFilteringByDependencies() {\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tMercuryTestClient.setShouldRequireLocalListeners(true)\n\n\t\tlet passedTarget: any\n\t\tawait this.fakeGetEventContracts((target) => {\n\t\t\tpassedTarget = target\n\t\t})\n\n\t\tconst namespace = generateId()\n\t\tawait this.installAddDependencyExecuteAndWaitForInput(namespace)\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace, CORE_EVENT_NAMESPACE],\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async fakeGetEventContracts(\n\t\tcb?: (\n\t\t\ttarget?: SpruceSchemas.Mercury.v2020_12_25.GetEventContractsTarget | null\n\t\t) => void,\n\t\tresults?: SpruceSchemas.Mercury.v2020_12_25.GetEventContractsResponsePayload['contracts']\n\t) {\n\t\tawait eventFaker.on('get-event-contracts::v2020_12_25', ({ target }) => {\n\t\t\tcb?.(target)\n\n\t\t\treturn {\n\t\t\t\tcontracts: results ?? [...(coreEventContracts as any)],\n\t\t\t}\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener() {\n\t\tconst { listenerPath } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\n\t\tawait this.Service('typeChecker').check(listenerPath)\n\t}\n\n\t@test()\n\tprotected static async hasIsGlobalCheck() {\n\t\tconst match = await this.installEventsCreateListenerAndGetListenerMap()\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"isGlobal: require('../../listeners/skill/will-boot.v2020_01_01.listener').isGlobal,\"\n\t\t)\n\t}\n\n\tprivate static async installAddDependencyExecuteAndWaitForInput(\n\t\tnamespace: string\n\t) {\n\t\tawait this.installEventFeature('events')\n\n\t\tthis.addDependency(namespace)\n\n\t\tawait this.executeAndWaitForInput()\n\t\treturn this.ui.getLastInvocation()\n\t}\n\n\tprivate static async executeAndWaitForInput() {\n\t\tvoid this.listen.execute({}).then((results) => {\n\t\t\tif (results.errors) {\n\t\t\t\tthis.ui.setError(results.errors[0])\n\t\t\t}\n\t\t})\n\n\t\tawait this.waitForInput()\n\t}\n\n\tprivate static addDependency(namespace: string) {\n\t\tconst dependencies = this.Service('dependency')\n\t\tdependencies.add({\n\t\t\tid: namespace,\n\t\t\tnamespace,\n\t\t})\n\t}\n\n\tprivate static async installEventsAndCreateListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\treturn { version, results, cli }\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n\n\tprivate static async installEventsCreateListenerAndGetListenerMap() {\n\t\tconst { results } = await this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`listeners.ts`,\n\t\t\tresults.files\n\t\t)\n\t\treturn match\n\t}\n}\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { FeatureDependency } from '../../../features/AbstractFeature';
2
+ import FeatureInstaller from '../../../features/FeatureInstaller';
3
+ import { FeatureCode, FeatureInstallResponse, FeatureMap } from '../../../features/features.types';
4
+ export default class EverythingInstalledInstaller implements FeatureInstaller {
5
+ private featureMap;
6
+ mapFeature<C extends keyof FeatureMap>(code: C, feature: FeatureMap[C]): void;
7
+ install(): Promise<FeatureInstallResponse>;
8
+ getInstalledFeatures(): Promise<(import("../../../features/schema/SchemaFeature").default | import("../../../features/test/TestFeature").default | import("../../../features/skill/SkillFeature").default<import("@sprucelabs/mercury-types").SpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema> | import("../../../features/error/ErrorFeature").default | import("../../../features/node/NodeFeature").default<import("@sprucelabs/mercury-types").SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema> | import("../../../features/dependencies/DependencyFeature").default | import("../../../features/cache/CacheFeature").default | import("../../../features/conversation/ConversationFeature").default | import("../../../features/deploy/DeployFeature").default | import("../../../features/event/EventFeature").default | import("../../../features/eventContract/EventContractFeature").default | import("../../../features/log/LogFeature").default | import("../../../features/onboard/OnboardFeature").default | import("../../../features/organization/OrganizationFeature").default | import("../../../features/permission/PermissionFeature").default | import("../../../features/person/PersonFeature").default | import("../../../features/polish/PolishFeature").default | import("../../../features/sandbox/SandboxFeature").default | import("../../../features/store/StoreFeature").default | import("../../../features/view/ViewFeature").default | import("../../../features/vscode/VsCodeFeature").default | import("../../../features/watch/WatchFeature").default)[]>;
9
+ getFeatureDependencies(): FeatureDependency[];
10
+ getAllCodes(): FeatureCode[];
11
+ isInstalled(_code: keyof FeatureMap): Promise<boolean>;
12
+ markAsSkippedThisRun(_code: keyof FeatureMap): void;
13
+ markAsPermanentlySkipped(_code: keyof FeatureMap): void;
14
+ isMarkedAsSkipped(_code: keyof FeatureMap): boolean;
15
+ getFeature<C extends keyof FeatureMap>(code: C): FeatureMap[C];
16
+ areInstalled(_codes: FeatureCode[]): Promise<boolean>;
17
+ }
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+ var EverythingInstalledInstaller = /*#__PURE__*/function () {
14
+ function EverythingInstalledInstaller() {
15
+ (0, _classCallCheck2["default"])(this, EverythingInstalledInstaller);
16
+ (0, _defineProperty2["default"])(this, "featureMap", {});
17
+ }
18
+ (0, _createClass2["default"])(EverythingInstalledInstaller, [{
19
+ key: "mapFeature",
20
+ value: function mapFeature(code, feature) {
21
+ this.featureMap[code] = feature;
22
+ }
23
+ }, {
24
+ key: "install",
25
+ value: function () {
26
+ var _install = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
27
+ return _regenerator["default"].wrap(function _callee$(_context) {
28
+ while (1) {
29
+ switch (_context.prev = _context.next) {
30
+ case 0:
31
+ return _context.abrupt("return", {});
32
+ case 1:
33
+ case "end":
34
+ return _context.stop();
35
+ }
36
+ }
37
+ }, _callee);
38
+ }));
39
+ function install() {
40
+ return _install.apply(this, arguments);
41
+ }
42
+ return install;
43
+ }()
44
+ }, {
45
+ key: "getInstalledFeatures",
46
+ value: function () {
47
+ var _getInstalledFeatures = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
48
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
49
+ while (1) {
50
+ switch (_context2.prev = _context2.next) {
51
+ case 0:
52
+ return _context2.abrupt("return", Object.values(this.featureMap));
53
+ case 1:
54
+ case "end":
55
+ return _context2.stop();
56
+ }
57
+ }
58
+ }, _callee2, this);
59
+ }));
60
+ function getInstalledFeatures() {
61
+ return _getInstalledFeatures.apply(this, arguments);
62
+ }
63
+ return getInstalledFeatures;
64
+ }()
65
+ }, {
66
+ key: "getFeatureDependencies",
67
+ value: function getFeatureDependencies() {
68
+ return [];
69
+ }
70
+ }, {
71
+ key: "getAllCodes",
72
+ value: function getAllCodes() {
73
+ return Object.keys(this.featureMap);
74
+ }
75
+ }, {
76
+ key: "isInstalled",
77
+ value: function () {
78
+ var _isInstalled = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(_code) {
79
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
80
+ while (1) {
81
+ switch (_context3.prev = _context3.next) {
82
+ case 0:
83
+ return _context3.abrupt("return", true);
84
+ case 1:
85
+ case "end":
86
+ return _context3.stop();
87
+ }
88
+ }
89
+ }, _callee3);
90
+ }));
91
+ function isInstalled(_x) {
92
+ return _isInstalled.apply(this, arguments);
93
+ }
94
+ return isInstalled;
95
+ }()
96
+ }, {
97
+ key: "markAsSkippedThisRun",
98
+ value: function markAsSkippedThisRun(_code) {}
99
+ }, {
100
+ key: "markAsPermanentlySkipped",
101
+ value: function markAsPermanentlySkipped(_code) {}
102
+ }, {
103
+ key: "isMarkedAsSkipped",
104
+ value: function isMarkedAsSkipped(_code) {
105
+ return false;
106
+ }
107
+ }, {
108
+ key: "getFeature",
109
+ value: function getFeature(code) {
110
+ return this.featureMap[code];
111
+ }
112
+ }, {
113
+ key: "areInstalled",
114
+ value: function () {
115
+ var _areInstalled = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(_codes) {
116
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
117
+ while (1) {
118
+ switch (_context4.prev = _context4.next) {
119
+ case 0:
120
+ return _context4.abrupt("return", true);
121
+ case 1:
122
+ case "end":
123
+ return _context4.stop();
124
+ }
125
+ }
126
+ }, _callee4);
127
+ }));
128
+ function areInstalled(_x2) {
129
+ return _areInstalled.apply(this, arguments);
130
+ }
131
+ return areInstalled;
132
+ }()
133
+ }]);
134
+ return EverythingInstalledInstaller;
135
+ }();
136
+ exports["default"] = EverythingInstalledInstaller;
137
+ //# sourceMappingURL=EverythingInstalledInstaller.js.map