@sprucelabs/spruce-cli 18.0.0 → 18.1.1
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 +10 -0
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +4 -4
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js +3 -3
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +118 -59
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.d.ts +17 -0
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js +137 -0
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js.map +1 -0
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +46 -45
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +4 -4
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.d.ts +3 -3
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +153 -156
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js +2 -2
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js +8 -4
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.d.ts +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js +9 -10
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.d.ts +3 -1
- package/build/__tests__/implementation/SkillStore.test.js +67 -50
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/cli.js +3 -3
- package/build/cli.js.map +1 -1
- package/build/features/AbstractAction.d.ts +2 -2
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.d.ts +22 -22
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.d.ts +8 -8
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/FeatureInstaller.d.ts +15 -2
- package/build/features/FeatureInstaller.js +36 -36
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.d.ts +12 -10
- package/build/features/FeatureInstallerFactory.js +2 -2
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js +4 -5
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.d.ts +1 -0
- package/build/features/event/actions/SetRemoteAction.js +2 -1
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/stores/SkillStore.d.ts +4 -1
- package/build/features/skill/stores/SkillStore.js +127 -100
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/watch/WatchFeature.js +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/interfaces/SpyInterface.d.ts +2 -0
- package/build/interfaces/SpyInterface.js +16 -4
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/stores/AbstractStore.d.ts +9 -7
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.d.ts +19 -13
- package/build/stores/StoreFactory.js +15 -13
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +9 -6
- package/build/tests/AbstractCliTest.js +53 -45
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js +18 -20
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/utilities/action.utility.js +3 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +5 -5
- package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
- package/node_modules/@typescript-eslint/types/package.json +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- package/package.json +32 -90
- package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +1 -1
- package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +1 -1
- package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +4 -4
- package/src/__tests__/behavioral/WatchingSkillViews.test.ts +3 -3
- package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +1 -1
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +41 -14
- package/src/__tests__/behavioral/events/EverythingInstalledInstaller.ts +46 -0
- package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +10 -5
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +1 -1
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +4 -4
- package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +2 -2
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +1 -1
- package/src/__tests__/behavioral/views/CreatingATheme.test.ts +1 -1
- package/src/__tests__/behavioral/watchers/WatchingForChanges.test.ts +35 -35
- package/src/__tests__/implementation/ActionExecuter.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter4.test.ts +1 -1
- package/src/__tests__/implementation/FeatureInstaller.test.ts +8 -1
- package/src/__tests__/implementation/GlobalEmitter.ts +2 -4
- package/src/__tests__/implementation/SettingUpANodeModule.test.ts +1 -1
- package/src/__tests__/implementation/SkillStore.test.ts +23 -24
- package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
- package/src/cli.ts +7 -3
- package/src/features/AbstractAction.ts +3 -3
- package/src/features/AbstractFeature.ts +26 -26
- package/src/features/ActionExecuter.ts +9 -9
- package/src/features/FeatureInstaller.ts +32 -12
- package/src/features/FeatureInstallerFactory.ts +17 -13
- package/src/features/OverrideActionDecorator.ts +2 -5
- package/src/features/event/actions/ListenAction.ts +1 -0
- package/src/features/event/actions/SetRemoteAction.ts +2 -1
- package/src/features/event/actions/SyncListenersAction.ts +0 -1
- package/src/features/node/NodeFeature.ts +3 -1
- package/src/features/skill/SkillFeature.ts +3 -3
- package/src/features/skill/stores/SkillStore.ts +18 -11
- package/src/features/watch/WatchFeature.ts +1 -1
- package/src/interfaces/SpyInterface.ts +10 -0
- package/src/stores/AbstractStore.ts +14 -8
- package/src/stores/StoreFactory.ts +56 -44
- package/src/tests/AbstractCliTest.ts +53 -45
- package/src/tests/AbstractSchemaTest.ts +1 -3
- package/src/utilities/action.utility.ts +3 -1
- package/.DS_Store +0 -0
- package/.env +0 -25
- package/.eslintcache +0 -1
- package/build/.spruce/tmp/cached-skills.json +0 -3
- package/junit.xml +0 -7
- package/src/.DS_Store +0 -0
- package/src/.spruce/tmp/cached-skills.json +0 -3
- package/yarn-error.log +0 -12174
|
@@ -9,16 +9,18 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
12
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
17
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
|
|
16
18
|
var _testUtils = require("@sprucelabs/test-utils");
|
|
17
19
|
var _AbstractCliTest2 = _interopRequireDefault(require("../../tests/AbstractCliTest"));
|
|
18
|
-
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7,
|
|
20
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2;
|
|
19
21
|
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); }; }
|
|
20
22
|
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; } }
|
|
21
|
-
var SkillStoreTest = (_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)(),
|
|
23
|
+
var SkillStoreTest = (_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)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractCliTest) {
|
|
22
24
|
(0, _inherits2["default"])(SkillStoreTest, _AbstractCliTest);
|
|
23
25
|
var _super = _createSuper(SkillStoreTest);
|
|
24
26
|
function SkillStoreTest() {
|
|
@@ -26,25 +28,28 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
26
28
|
return _super.apply(this, arguments);
|
|
27
29
|
}
|
|
28
30
|
(0, _createClass2["default"])(SkillStoreTest, null, [{
|
|
29
|
-
key: "
|
|
31
|
+
key: "beforeEach",
|
|
30
32
|
value: function () {
|
|
31
|
-
var
|
|
33
|
+
var _beforeEach = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
32
34
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
33
35
|
while (1) {
|
|
34
36
|
switch (_context.prev = _context.next) {
|
|
35
37
|
case 0:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
_context.next = 2;
|
|
39
|
+
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(SkillStoreTest), "beforeEach", this).call(this);
|
|
40
|
+
case 2:
|
|
41
|
+
this.store = this.SkillStore();
|
|
42
|
+
case 3:
|
|
38
43
|
case "end":
|
|
39
44
|
return _context.stop();
|
|
40
45
|
}
|
|
41
46
|
}
|
|
42
47
|
}, _callee, this);
|
|
43
48
|
}));
|
|
44
|
-
function
|
|
45
|
-
return
|
|
49
|
+
function beforeEach() {
|
|
50
|
+
return _beforeEach.apply(this, arguments);
|
|
46
51
|
}
|
|
47
|
-
return
|
|
52
|
+
return beforeEach;
|
|
48
53
|
}()
|
|
49
54
|
}, {
|
|
50
55
|
key: "hasRegisterMethod",
|
|
@@ -54,7 +59,7 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
54
59
|
while (1) {
|
|
55
60
|
switch (_context2.prev = _context2.next) {
|
|
56
61
|
case 0:
|
|
57
|
-
_testUtils.assert.isFunction(this.
|
|
62
|
+
_testUtils.assert.isFunction(this.store.register);
|
|
58
63
|
case 1:
|
|
59
64
|
case "end":
|
|
60
65
|
return _context2.stop();
|
|
@@ -79,7 +84,7 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
79
84
|
case 0:
|
|
80
85
|
_context3.next = 2;
|
|
81
86
|
return _testUtils.assert.doesThrowAsync(function () {
|
|
82
|
-
return _this.
|
|
87
|
+
return _this.store.register({
|
|
83
88
|
name: 'awesome skill',
|
|
84
89
|
slug: 'awesome-skill'
|
|
85
90
|
});
|
|
@@ -111,7 +116,7 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
111
116
|
case 0:
|
|
112
117
|
_context4.next = 2;
|
|
113
118
|
return _testUtils.assert.doesThrowAsync(function () {
|
|
114
|
-
return _this2.
|
|
119
|
+
return _this2.store.loadCurrentSkill();
|
|
115
120
|
});
|
|
116
121
|
case 2:
|
|
117
122
|
err = _context4.sent;
|
|
@@ -140,7 +145,7 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
140
145
|
case 0:
|
|
141
146
|
_context5.next = 2;
|
|
142
147
|
return _testUtils.assert.doesThrowAsync(function () {
|
|
143
|
-
return _this3.
|
|
148
|
+
return _this3.store.isCurrentSkillRegistered();
|
|
144
149
|
});
|
|
145
150
|
case 2:
|
|
146
151
|
err = _context5.sent;
|
|
@@ -170,7 +175,7 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
170
175
|
return this.FeatureFixture().installCachedFeatures('skills');
|
|
171
176
|
case 2:
|
|
172
177
|
_context6.next = 4;
|
|
173
|
-
return this.
|
|
178
|
+
return this.store.loadCurrentSkillsNamespace();
|
|
174
179
|
case 4:
|
|
175
180
|
namespace = _context6.sent;
|
|
176
181
|
_testUtils.assert.isEqual(namespace, 'TestSkill');
|
|
@@ -190,7 +195,7 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
190
195
|
key: "canSetNamespace",
|
|
191
196
|
value: function () {
|
|
192
197
|
var _canSetNamespace = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
193
|
-
var
|
|
198
|
+
var namespace;
|
|
194
199
|
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
195
200
|
while (1) {
|
|
196
201
|
switch (_context7.prev = _context7.next) {
|
|
@@ -198,20 +203,19 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
198
203
|
_context7.next = 2;
|
|
199
204
|
return this.FeatureFixture().installCachedFeatures('skills');
|
|
200
205
|
case 2:
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
case 5:
|
|
206
|
+
_context7.next = 4;
|
|
207
|
+
return this.store.loadCurrentSkillsNamespace();
|
|
208
|
+
case 4:
|
|
205
209
|
namespace = _context7.sent;
|
|
206
|
-
_context7.next =
|
|
207
|
-
return this.
|
|
208
|
-
case
|
|
209
|
-
_context7.next =
|
|
210
|
-
return store.loadCurrentSkillsNamespace();
|
|
211
|
-
case
|
|
210
|
+
_context7.next = 7;
|
|
211
|
+
return this.store.setCurrentSkillsNamespace('new-namespace');
|
|
212
|
+
case 7:
|
|
213
|
+
_context7.next = 9;
|
|
214
|
+
return this.store.loadCurrentSkillsNamespace();
|
|
215
|
+
case 9:
|
|
212
216
|
namespace = _context7.sent;
|
|
213
217
|
_testUtils.assert.isEqual(namespace, 'NewNamespace');
|
|
214
|
-
case
|
|
218
|
+
case 11:
|
|
215
219
|
case "end":
|
|
216
220
|
return _context7.stop();
|
|
217
221
|
}
|
|
@@ -227,8 +231,9 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
227
231
|
key: "canRegister",
|
|
228
232
|
value: function () {
|
|
229
233
|
var _canRegister = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
230
|
-
var _results$skill
|
|
231
|
-
|
|
234
|
+
var _results$skill,
|
|
235
|
+
_this4 = this;
|
|
236
|
+
var slug, isRegistered, skill, client, results, currentSkill, env, err, pkg, namespace;
|
|
232
237
|
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
233
238
|
while (1) {
|
|
234
239
|
switch (_context8.prev = _context8.next) {
|
|
@@ -240,44 +245,43 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
240
245
|
_context8.next = 5;
|
|
241
246
|
return this.people.loginAsDemoPerson();
|
|
242
247
|
case 5:
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
case 8:
|
|
248
|
+
_context8.next = 7;
|
|
249
|
+
return this.store.isCurrentSkillRegistered();
|
|
250
|
+
case 7:
|
|
247
251
|
isRegistered = _context8.sent;
|
|
248
252
|
_testUtils.assert.isFalse(isRegistered);
|
|
249
|
-
_context8.next =
|
|
250
|
-
return
|
|
253
|
+
_context8.next = 11;
|
|
254
|
+
return this.store.register({
|
|
251
255
|
name: 'awesome skill',
|
|
252
256
|
slug: slug
|
|
253
257
|
});
|
|
254
|
-
case
|
|
258
|
+
case 11:
|
|
255
259
|
skill = _context8.sent;
|
|
256
260
|
_testUtils.assert.isTruthy(skill);
|
|
257
261
|
_testUtils.assert.isEqual(skill.name, 'awesome skill');
|
|
258
262
|
_testUtils.assert.isEqual(skill.slug, slug);
|
|
259
263
|
_testUtils.assert.isString(skill.apiKey);
|
|
260
264
|
_testUtils.assert.isString(skill.id);
|
|
261
|
-
_context8.next =
|
|
265
|
+
_context8.next = 19;
|
|
262
266
|
return this.connectToApi();
|
|
263
|
-
case
|
|
267
|
+
case 19:
|
|
264
268
|
client = _context8.sent;
|
|
265
|
-
_context8.next =
|
|
269
|
+
_context8.next = 22;
|
|
266
270
|
return client.authenticate({
|
|
267
271
|
skillId: skill.id,
|
|
268
272
|
apiKey: skill.apiKey
|
|
269
273
|
});
|
|
270
|
-
case
|
|
274
|
+
case 22:
|
|
271
275
|
results = _context8.sent;
|
|
272
276
|
_testUtils.assert.isEqual((_results$skill = results.skill) === null || _results$skill === void 0 ? void 0 : _results$skill.id, skill.id);
|
|
273
|
-
_context8.next =
|
|
274
|
-
return
|
|
275
|
-
case
|
|
277
|
+
_context8.next = 26;
|
|
278
|
+
return this.store.isCurrentSkillRegistered();
|
|
279
|
+
case 26:
|
|
276
280
|
isRegistered = _context8.sent;
|
|
277
281
|
_testUtils.assert.isTrue(isRegistered);
|
|
278
|
-
_context8.next =
|
|
279
|
-
return
|
|
280
|
-
case
|
|
282
|
+
_context8.next = 30;
|
|
283
|
+
return this.store.loadCurrentSkill();
|
|
284
|
+
case 30:
|
|
281
285
|
currentSkill = _context8.sent;
|
|
282
286
|
_testUtils.assert.isEqual(currentSkill.id, skill.id);
|
|
283
287
|
_testUtils.assert.isTrue(currentSkill.isRegistered);
|
|
@@ -287,17 +291,17 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
287
291
|
env = this.Service('env');
|
|
288
292
|
_testUtils.assert.isEqual(env.get('SKILL_ID'), skill.id);
|
|
289
293
|
_testUtils.assert.isEqual(env.get('SKILL_API_KEY'), skill.apiKey);
|
|
290
|
-
_context8.next =
|
|
294
|
+
_context8.next = 41;
|
|
291
295
|
return _testUtils.assert.doesThrowAsync(function () {
|
|
292
|
-
return
|
|
296
|
+
return _this4.store.setCurrentSkillsNamespace('test');
|
|
293
297
|
});
|
|
294
|
-
case
|
|
298
|
+
case 41:
|
|
295
299
|
err = _context8.sent;
|
|
296
300
|
_testUtils.errorAssert.assertError(err, 'GENERIC');
|
|
297
301
|
pkg = this.Service('pkg');
|
|
298
302
|
namespace = pkg.get('skill.namespace');
|
|
299
303
|
_testUtils.assert.isEqual(namespace, slug);
|
|
300
|
-
case
|
|
304
|
+
case 46:
|
|
301
305
|
case "end":
|
|
302
306
|
return _context8.stop();
|
|
303
307
|
}
|
|
@@ -309,8 +313,21 @@ var SkillStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test
|
|
|
309
313
|
}
|
|
310
314
|
return canRegister;
|
|
311
315
|
}()
|
|
316
|
+
}, {
|
|
317
|
+
key: "SkillStore",
|
|
318
|
+
value: function (_SkillStore) {
|
|
319
|
+
function SkillStore() {
|
|
320
|
+
return _SkillStore.apply(this, arguments);
|
|
321
|
+
}
|
|
322
|
+
SkillStore.toString = function () {
|
|
323
|
+
return _SkillStore.toString();
|
|
324
|
+
};
|
|
325
|
+
return SkillStore;
|
|
326
|
+
}(function () {
|
|
327
|
+
return this.Store('skill', {});
|
|
328
|
+
})
|
|
312
329
|
}]);
|
|
313
330
|
return SkillStoreTest;
|
|
314
|
-
}(_AbstractCliTest2["default"]), (
|
|
331
|
+
}(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "store", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasRegisterMethod", [_dec], Object.getOwnPropertyDescriptor(_class, "hasRegisterMethod"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "cantRegisterIfNotInSkill", [_dec2], Object.getOwnPropertyDescriptor(_class, "cantRegisterIfNotInSkill"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "cantLoadcurrentSkillIfNotInSkill", [_dec3], Object.getOwnPropertyDescriptor(_class, "cantLoadcurrentSkillIfNotInSkill"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "cantCheckIfSkillIsRegisteredNotInSkill", [_dec4], Object.getOwnPropertyDescriptor(_class, "cantCheckIfSkillIsRegisteredNotInSkill"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canGetNamespace", [_dec5], Object.getOwnPropertyDescriptor(_class, "canGetNamespace"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSetNamespace", [_dec6], Object.getOwnPropertyDescriptor(_class, "canSetNamespace"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canRegister", [_dec7], Object.getOwnPropertyDescriptor(_class, "canRegister"), _class)), _class));
|
|
315
332
|
exports["default"] = SkillStoreTest;
|
|
316
333
|
//# sourceMappingURL=SkillStore.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillStore.test.js","names":["SkillStoreTest","test","
|
|
1
|
+
{"version":3,"file":"SkillStore.test.js","names":["SkillStoreTest","test","store","SkillStore","assert","isFunction","register","doesThrowAsync","name","slug","err","errorAssert","assertError","loadCurrentSkill","isCurrentSkillRegistered","FeatureFixture","installCachedFeatures","loadCurrentSkillsNamespace","namespace","isEqual","setCurrentSkillsNamespace","Date","getTime","people","loginAsDemoPerson","isRegistered","isFalse","skill","isTruthy","isString","apiKey","id","connectToApi","client","authenticate","skillId","results","isTrue","currentSkill","env","Service","get","pkg","Store","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/SkillStore.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport SkillStore from '../../features/skill/stores/SkillStore'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class SkillStoreTest extends AbstractCliTest {\n\tprivate static store: SkillStore\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.store = this.SkillStore()\n\t}\n\n\t@test()\n\tprotected static async hasRegisterMethod() {\n\t\tassert.isFunction(this.store.register)\n\t}\n\n\t@test()\n\tprotected static async cantRegisterIfNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.store.register({\n\t\t\t\tname: 'awesome skill',\n\t\t\t\tslug: 'awesome-skill',\n\t\t\t})\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async cantLoadcurrentSkillIfNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() => this.store.loadCurrentSkill())\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async cantCheckIfSkillIsRegisteredNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.store.isCurrentSkillRegistered()\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async canGetNamespace() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tconst namespace = await this.store.loadCurrentSkillsNamespace()\n\t\tassert.isEqual(namespace, 'TestSkill')\n\t}\n\n\t@test()\n\tprotected static async canSetNamespace() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tlet namespace = await this.store.loadCurrentSkillsNamespace()\n\t\tawait this.store.setCurrentSkillsNamespace('new-namespace')\n\t\tnamespace = await this.store.loadCurrentSkillsNamespace()\n\t\tassert.isEqual(namespace, 'NewNamespace')\n\t}\n\n\t@test()\n\tprotected static async canRegister() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst slug = `awesome-skill-${new Date().getTime()}`\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tlet isRegistered = await this.store.isCurrentSkillRegistered()\n\t\tassert.isFalse(isRegistered)\n\n\t\tconst skill = await this.store.register({\n\t\t\tname: 'awesome skill',\n\t\t\tslug,\n\t\t})\n\n\t\tassert.isTruthy(skill)\n\t\tassert.isEqual(skill.name, 'awesome skill')\n\t\tassert.isEqual(skill.slug, slug)\n\t\tassert.isString(skill.apiKey)\n\t\tassert.isString(skill.id)\n\n\t\tconst client = await this.connectToApi()\n\t\tconst results = await client.authenticate({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tassert.isEqual(results.skill?.id, skill.id)\n\n\t\tisRegistered = await this.store.isCurrentSkillRegistered()\n\t\tassert.isTrue(isRegistered)\n\n\t\tconst currentSkill = await this.store.loadCurrentSkill()\n\n\t\tassert.isEqual(currentSkill.id, skill.id)\n\t\tassert.isTrue(currentSkill.isRegistered)\n\t\tassert.isEqual(currentSkill.name, 'awesome skill')\n\t\tassert.isEqual(currentSkill.slug, slug)\n\t\tassert.isEqual(currentSkill.apiKey, skill.apiKey)\n\n\t\tconst env = this.Service('env')\n\n\t\tassert.isEqual(env.get('SKILL_ID'), skill.id)\n\t\tassert.isEqual(env.get('SKILL_API_KEY'), skill.apiKey)\n\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.store.setCurrentSkillsNamespace('test')\n\t\t)\n\n\t\terrorAssert.assertError(err, 'GENERIC')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst namespace = pkg.get('skill.namespace')\n\t\tassert.isEqual(namespace, slug)\n\t}\n\n\tprivate static SkillStore(): SkillStore {\n\t\treturn this.Store('skill', {})\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ var StoreFeatureTest = (_dec = (0, _testUtils.test)(), (_class = /*#__PURE__*/fu
|
|
|
42
42
|
code: 0
|
|
43
43
|
});
|
|
44
44
|
hitCount = 0;
|
|
45
|
-
emitter = this.
|
|
45
|
+
emitter = this.emitter;
|
|
46
46
|
_context2.next = 7;
|
|
47
47
|
return emitter.on('feature.will-execute', /*#__PURE__*/function () {
|
|
48
48
|
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreFeature.test.js","names":["StoreFeatureTest","test","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","code","hitCount","emitter","
|
|
1
|
+
{"version":3,"file":"StoreFeature.test.js","names":["StoreFeatureTest","test","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","code","hitCount","emitter","on","featureCode","actionCode","emit","assert","isEqual","results","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/StoreFeature.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport CommandService from '../../services/CommandService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class StoreFeatureTest extends AbstractCliTest {\n\t@test()\n\tprotected static async syncsOnWillExecute() {\n\t\tawait this.FeatureFixture().installCachedFeatures('stores')\n\n\t\tCommandService.fakeCommand(/yarn/, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tlet hitCount = 0\n\t\tconst emitter = this.emitter\n\t\tawait emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'store' && actionCode === 'sync') {\n\t\t\t\t\thitCount++\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tawait emitter.emit('feature.will-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode: 'upgrade',\n\t\t})\n\n\t\tassert.isEqual(hitCount, 0)\n\n\t\tawait emitter.emit('feature.did-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode: 'upgrade',\n\t\t\tresults: {},\n\t\t})\n\n\t\tassert.isEqual(hitCount, 1)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AAAyD;AAAA;AAAA;AAAA,IAEpCA,gBAAgB,WACnC,IAAAC,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,wGAAP;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACC,cAAc,EAAE,CAACC,qBAAqB,CAAC,QAAQ,CAAC;cAAA;gBAE3DC,0BAAc,CAACC,WAAW,CAAC,MAAM,EAAE;kBAClCC,IAAI,EAAE;gBACP,CAAC,CAAC;gBAEEC,QAAQ,GAAG,CAAC;gBACVC,OAAO,GAAG,IAAI,CAACA,OAAO;gBAAA;gBAAA,OACtBA,OAAO,CAACC,EAAE,CACf,sBAAsB;kBAAA,0FACtB;oBAAA;oBAAA;sBAAA;wBAAA;0BAAA;4BAASC,WAAW,QAAXA,WAAW,EAAEC,UAAU,QAAVA,UAAU;4BAC/B,IAAID,WAAW,KAAK,OAAO,IAAIC,UAAU,KAAK,MAAM,EAAE;8BACrDJ,QAAQ,EAAE;4BACX;0BAAC;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CACD;kBAAA;oBAAA;kBAAA;gBAAA,IACD;cAAA;gBAAA;gBAAA,OAEKC,OAAO,CAACI,IAAI,CAAC,sBAAsB,EAAE;kBAC1CF,WAAW,EAAE,MAAM;kBACnBC,UAAU,EAAE;gBACb,CAAC,CAAC;cAAA;gBAEFE,iBAAM,CAACC,OAAO,CAACP,QAAQ,EAAE,CAAC,CAAC;gBAAA;gBAAA,OAErBC,OAAO,CAACI,IAAI,CAAC,qBAAqB,EAAE;kBACzCF,WAAW,EAAE,MAAM;kBACnBC,UAAU,EAAE,SAAS;kBACrBI,OAAO,EAAE,CAAC;gBACX,CAAC,CAAC;cAAA;gBAEFF,iBAAM,CAACC,OAAO,CAACP,QAAQ,EAAE,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC3B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAlC4CS,4BAAe;AAAA"}
|
package/build/cli.js
CHANGED
|
@@ -22,7 +22,7 @@ var _SpruceError = _interopRequireDefault(require("./errors/SpruceError"));
|
|
|
22
22
|
var _ActionExecuter = _interopRequireDefault(require("./features/ActionExecuter"));
|
|
23
23
|
var _ActionFactory = _interopRequireDefault(require("./features/ActionFactory"));
|
|
24
24
|
var _FeatureCommandAttacher = _interopRequireDefault(require("./features/FeatureCommandAttacher"));
|
|
25
|
-
var _FeatureInstaller =
|
|
25
|
+
var _FeatureInstaller = require("./features/FeatureInstaller");
|
|
26
26
|
var _FeatureInstallerFactory = _interopRequireDefault(require("./features/FeatureInstallerFactory"));
|
|
27
27
|
var _GlobalEmitter = _interopRequireDefault(require("./GlobalEmitter"));
|
|
28
28
|
var _InFlightEntertainment = _interopRequireDefault(require("./InFlightEntertainment"));
|
|
@@ -668,13 +668,13 @@ function _setupInFlightEntertainment() {
|
|
|
668
668
|
command: command,
|
|
669
669
|
ui: ui
|
|
670
670
|
});
|
|
671
|
-
_FeatureInstaller
|
|
671
|
+
_FeatureInstaller.FeatureInstallerImpl.startInFlightIntertainmentHandler = function (didUpdateHandler) {
|
|
672
672
|
_InFlightEntertainment["default"].start();
|
|
673
673
|
didUpdateHandler(function (message) {
|
|
674
674
|
_InFlightEntertainment["default"].writeStatus(message);
|
|
675
675
|
});
|
|
676
676
|
};
|
|
677
|
-
_FeatureInstaller
|
|
677
|
+
_FeatureInstaller.FeatureInstallerImpl.stopInFlightIntertainmentHandler = function () {
|
|
678
678
|
_InFlightEntertainment["default"].stop();
|
|
679
679
|
};
|
|
680
680
|
}
|
package/build/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","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_ENTERTAINMENT","CommandService","__dirname","InFlightEntertainment","setup","FeatureInstaller","startInFlightIntertainmentHandler","didUpdateHandler","start","message","writeStatus","stopInFlightIntertainmentHandler","stop"],"sources":["../src/cli.ts"],"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_ENTERTAINMENT !== '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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","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_ENTERTAINMENT","CommandService","__dirname","InFlightEntertainment","setup","FeatureInstallerImpl","startInFlightIntertainmentHandler","didUpdateHandler","start","message","writeStatus","stopInFlightIntertainmentHandler","stop"],"sources":["../src/cli.ts"],"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, {\n\tFeatureInstallerImpl,\n} 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_ENTERTAINMENT !== 'false'\n\t) {\n\t\tconst command = new CommandService(diskUtil.resolvePath(__dirname, '../'))\n\t\tInFlightEntertainment.setup({ command, ui })\n\n\t\tFeatureInstallerImpl.startInFlightIntertainmentHandler = (\n\t\t\tdidUpdateHandler\n\t\t) => {\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\tFeatureInstallerImpl.stopInFlightIntertainmentHandler = () => {\n\t\t\tInFlightEntertainment.stop()\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema';
|
|
|
2
2
|
import { Templates } from '@sprucelabs/spruce-templates';
|
|
3
3
|
import { GlobalEmitter } from '../GlobalEmitter';
|
|
4
4
|
import { ServiceProvider, Service, ServiceMap } from '../services/ServiceFactory';
|
|
5
|
-
import { StoreCode,
|
|
5
|
+
import { StoreCode, CreateStoreOptions, StoreMap } from '../stores/StoreFactory';
|
|
6
6
|
import { ApiClient, ApiClientFactoryOptions } from '../types/apiClient.types';
|
|
7
7
|
import { GraphicsInterface } from '../types/cli.types';
|
|
8
8
|
import { WriterOptions } from '../writers/AbstractWriter';
|
|
@@ -29,7 +29,7 @@ export default abstract class AbstractAction<S extends Schema = Schema> implemen
|
|
|
29
29
|
abstract execute(options: SchemaValues<S>): Promise<FeatureActionResponse>;
|
|
30
30
|
protected Action(featureCode: string, actionCode: string): FeatureAction<Schema>;
|
|
31
31
|
Service<S extends Service>(type: S, cwd?: string): ServiceMap[S];
|
|
32
|
-
protected Store<C extends StoreCode>(code: C, options?:
|
|
32
|
+
protected Store<C extends StoreCode>(code: C, options?: CreateStoreOptions<C>): StoreMap[C];
|
|
33
33
|
protected Writer<C extends WriterCode>(code: C, options?: Partial<WriterOptions>): WriterMap[C];
|
|
34
34
|
protected getFeature<C extends FeatureCode>(code: C): import("./features.types").FeatureMap[C];
|
|
35
35
|
protected getFeatureCodes(): FeatureCode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAction.js","names":["AbstractAction","options","cwd","templates","parent","storeFactory","serviceFactory","featureInstaller","ui","writerFactory","apiClientFactory","emitter","actionExecuter","featureCode","actionCode","Action","type","Service","code","Store","Writer","fileDescriptions","linter","getFeature","getAllCodes","schema","optionsSchema","validateAndNormalizer","validateAndNormalize","userSuppliedVersion","resolvedDestination","resolvedVersion","versionUtil","generateVersion","undefined","constValue","askForVersionIfTodaysVersionDoesNotExist","assertValidVersion","dirValue","fallbackVersion","versions","getAllVersions","todaysVersion","version","alreadyHasToday","find","choices","push","label","value","sort","a","b","intValue","map","length","prompt","hint","isRequired"],"sources":["../../src/features/AbstractAction.ts"],"sourcesContent":["import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { Templates } from '@sprucelabs/spruce-templates'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\
|
|
1
|
+
{"version":3,"file":"AbstractAction.js","names":["AbstractAction","options","cwd","templates","parent","storeFactory","serviceFactory","featureInstaller","ui","writerFactory","apiClientFactory","emitter","actionExecuter","featureCode","actionCode","Action","type","Service","code","Store","Writer","fileDescriptions","linter","getFeature","getAllCodes","schema","optionsSchema","validateAndNormalizer","validateAndNormalize","userSuppliedVersion","resolvedDestination","resolvedVersion","versionUtil","generateVersion","undefined","constValue","askForVersionIfTodaysVersionDoesNotExist","assertValidVersion","dirValue","fallbackVersion","versions","getAllVersions","todaysVersion","version","alreadyHasToday","find","choices","push","label","value","sort","a","b","intValue","map","length","prompt","hint","isRequired"],"sources":["../../src/features/AbstractAction.ts"],"sourcesContent":["import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { Templates } from '@sprucelabs/spruce-templates'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tCreateStoreOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../types/apiClient.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport { WriterOptions } from '../writers/AbstractWriter'\nimport WriterFactory, { WriterCode, WriterMap } from '../writers/WriterFactory'\nimport AbstractFeature from './AbstractFeature'\nimport ActionExecuter from './ActionExecuter'\nimport FeatureInstaller from './FeatureInstaller'\nimport {\n\tFeatureAction,\n\tFeatureActionResponse,\n\tActionOptions,\n\tFeatureCode,\n} from './features.types'\nimport validateAndNormalizer from './validateAndNormalize.utility'\n\nexport default abstract class AbstractAction<S extends Schema = Schema>\n\timplements FeatureAction<S>, ServiceProvider\n{\n\tpublic abstract optionsSchema: S\n\tpublic readonly commandAliases: string[] = []\n\tpublic abstract invocationMessage: string\n\n\tprotected parent: AbstractFeature\n\tprotected featureInstaller: FeatureInstaller\n\tprotected cwd: string\n\tprotected templates: Templates\n\tprotected ui: GraphicsInterface\n\tprotected emitter: GlobalEmitter\n\n\tprivate serviceFactory: ServiceFactory\n\tprivate storeFactory: StoreFactory\n\tprivate writerFactory: WriterFactory\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate actionExecuter: ActionExecuter\n\n\tpublic constructor(options: ActionOptions) {\n\t\tthis.cwd = options.cwd\n\t\tthis.templates = options.templates\n\t\tthis.parent = options.parent\n\t\tthis.storeFactory = options.storeFactory\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.featureInstaller = options.featureInstaller\n\t\tthis.ui = options.ui\n\t\tthis.writerFactory = options.writerFactory\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.actionExecuter = options.actionExecuter\n\t}\n\n\tpublic abstract execute(\n\t\toptions: SchemaValues<S>\n\t): Promise<FeatureActionResponse>\n\n\tprotected Action(featureCode: string, actionCode: string) {\n\t\treturn this.actionExecuter.Action(featureCode as any, actionCode)\n\t}\n\n\tpublic Service<S extends Service>(type: S, cwd?: string): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: CreateStoreOptions<C>\n\t): StoreMap[C] {\n\t\treturn this.storeFactory.Store(code, { cwd: this.cwd, ...(options as any) })\n\t}\n\n\tprotected Writer<C extends WriterCode>(\n\t\tcode: C,\n\t\toptions?: Partial<WriterOptions>\n\t): WriterMap[C] {\n\t\treturn this.writerFactory.Writer(code, {\n\t\t\tfileDescriptions: this.parent.fileDescriptions,\n\t\t\tlinter: this.Service('lint'),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected getFeature<C extends FeatureCode>(code: C) {\n\t\treturn this.featureInstaller.getFeature(code)\n\t}\n\n\tprotected getFeatureCodes(): FeatureCode[] {\n\t\treturn this.featureInstaller.getAllCodes()\n\t}\n\n\tprotected validateAndNormalizeOptions(options: SchemaPartialValues<S>) {\n\t\tconst schema = this.optionsSchema\n\t\treturn validateAndNormalizer.validateAndNormalize(schema, options)\n\t}\n\n\tprotected async resolveVersion(\n\t\tuserSuppliedVersion: string | null | undefined,\n\t\tresolvedDestination: string\n\t) {\n\t\tlet resolvedVersion = versionUtil.generateVersion(\n\t\t\tuserSuppliedVersion ?? undefined\n\t\t).constValue\n\n\t\tif (!userSuppliedVersion) {\n\t\t\tresolvedVersion = await this.askForVersionIfTodaysVersionDoesNotExist(\n\t\t\t\tresolvedDestination,\n\t\t\t\tresolvedVersion\n\t\t\t)\n\t\t}\n\t\tversionUtil.assertValidVersion(resolvedVersion)\n\n\t\treturn versionUtil.generateVersion(resolvedVersion).dirValue\n\t}\n\n\tprivate async askForVersionIfTodaysVersionDoesNotExist(\n\t\tresolvedDestination: string,\n\t\tfallbackVersion: string\n\t) {\n\t\tconst versions = versionUtil.getAllVersions(resolvedDestination)\n\t\tconst todaysVersion = versionUtil.generateVersion()\n\n\t\tlet version = fallbackVersion\n\t\tconst alreadyHasToday = !!versions.find(\n\t\t\t(version) => version.dirValue === todaysVersion.dirValue\n\t\t)\n\t\tconst choices = []\n\n\t\tif (!alreadyHasToday) {\n\t\t\tchoices.push({\n\t\t\t\tlabel: 'New Version',\n\t\t\t\tvalue: todaysVersion.dirValue,\n\t\t\t})\n\t\t}\n\n\t\tchoices.push(\n\t\t\t...versions\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.intValue > b.intValue ? -1 : 1\n\t\t\t\t})\n\t\t\t\t.map((version) => ({\n\t\t\t\t\tvalue: version.dirValue,\n\t\t\t\t\tlabel: version.dirValue,\n\t\t\t\t}))\n\t\t)\n\n\t\tif (versions.length > 0) {\n\t\t\tversion = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Version',\n\t\t\t\thint: 'Confirm which version you want to use?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t\treturn version\n\t}\n\n\tprotected async connectToApi(\n\t\toptions?: ApiClientFactoryOptions\n\t): Promise<ApiClient> {\n\t\treturn this.apiClientFactory(options)\n\t}\n}\n"],"mappings":"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"}
|