@sprucelabs/spruce-cli 18.3.1 → 19.0.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.
- package/CHANGELOG.md +12 -0
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.d.ts +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +20 -39
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +53 -18
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.d.ts +2 -0
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +75 -30
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/views/WatchingSkillViews.test.js +1 -1
- package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/support/EventFaker.d.ts +1 -1
- package/build/__tests__/support/EventFaker.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +1 -0
- package/build/features/event/EventFeature.js +90 -68
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js +1 -4
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.d.ts +1 -0
- package/build/features/eventContract/actions/PullAction.js +52 -9
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/permission/PermissionFeature.js +19 -9
- package/build/features/permission/PermissionFeature.js.map +1 -1
- package/build/features/permission/actions/SyncAction.d.ts +22 -3
- package/build/features/permission/actions/SyncAction.js +58 -16
- package/build/features/permission/actions/SyncAction.js.map +1 -1
- package/build/features/permission/stores/PermissionStore.d.ts +6 -2
- package/build/features/permission/stores/PermissionStore.js +25 -21
- package/build/features/permission/stores/PermissionStore.js.map +1 -1
- package/build/features/view/actions/WatchAction.js +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/LICENSE +5 -5
- package/node_modules/@typescript-eslint/parser/README.md +6 -300
- package/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/parser/dist/parser.js +15 -17
- package/node_modules/@typescript-eslint/parser/dist/parser.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +5 -5
- package/node_modules/@typescript-eslint/scope-manager/LICENSE +1 -1
- package/node_modules/@typescript-eslint/scope-manager/README.md +5 -117
- package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
- package/node_modules/@typescript-eslint/types/LICENSE +1 -1
- package/node_modules/@typescript-eslint/types/README.md +6 -11
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +0 -6
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +0 -6
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/package.json +3 -3
- package/node_modules/@typescript-eslint/typescript-estree/LICENSE +5 -5
- package/node_modules/@typescript-eslint/typescript-estree/README.md +6 -379
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/{createWatchProgram.d.ts → getWatchProgramsForProjects.d.ts} +3 -4
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/index.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js +3 -3
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/{createWatchProgram.d.ts → getWatchProgramsForProjects.d.ts} +3 -4
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.d.ts.map +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/{createWatchProgram.js → getWatchProgramsForProjects.js} +4 -5
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.js.map +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/index.js +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
- package/node_modules/@typescript-eslint/visitor-keys/LICENSE +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/README.md +6 -9
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- package/package.json +27 -27
- package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +6 -18
- package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +1 -1
- package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +21 -3
- package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +13 -0
- package/src/__tests__/behavioral/views/WatchingSkillViews.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter2.test.ts +0 -2
- package/src/__tests__/support/EventFaker.ts +1 -2
- package/src/features/event/EventFeature.ts +10 -4
- package/src/features/eventContract/EventContractFeature.ts +1 -6
- package/src/features/eventContract/actions/PullAction.ts +24 -4
- package/src/features/permission/PermissionFeature.ts +2 -7
- package/src/features/permission/actions/SyncAction.ts +42 -5
- package/src/features/permission/stores/PermissionStore.ts +25 -11
- package/src/features/view/actions/WatchAction.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map +0 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map +0 -1
|
@@ -64,46 +64,68 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
64
64
|
key: "afterPackageInstall",
|
|
65
65
|
value: function () {
|
|
66
66
|
var _afterPackageInstall = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
67
|
-
var isSkillInstalled;
|
|
68
67
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
69
68
|
while (1) {
|
|
70
69
|
switch (_context.prev = _context.next) {
|
|
71
70
|
case 0:
|
|
72
71
|
_spruceSkillUtils.diskUtil.createDir(_spruceSkillUtils.diskUtil.resolvePath(this.cwd, 'src', 'events'));
|
|
73
|
-
_context.
|
|
72
|
+
return _context.abrupt("return", this.optionallySyncListeners());
|
|
73
|
+
case 2:
|
|
74
|
+
case "end":
|
|
75
|
+
return _context.stop();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}, _callee, this);
|
|
79
|
+
}));
|
|
80
|
+
function afterPackageInstall() {
|
|
81
|
+
return _afterPackageInstall.apply(this, arguments);
|
|
82
|
+
}
|
|
83
|
+
return afterPackageInstall;
|
|
84
|
+
}()
|
|
85
|
+
}, {
|
|
86
|
+
key: "optionallySyncListeners",
|
|
87
|
+
value: function () {
|
|
88
|
+
var _optionallySyncListeners = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
89
|
+
var results, isSkillInstalled;
|
|
90
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
91
|
+
while (1) {
|
|
92
|
+
switch (_context2.prev = _context2.next) {
|
|
93
|
+
case 0:
|
|
94
|
+
results = {};
|
|
95
|
+
_context2.next = 3;
|
|
74
96
|
return this.features.isInstalled('skill');
|
|
75
97
|
case 3:
|
|
76
|
-
isSkillInstalled =
|
|
98
|
+
isSkillInstalled = _context2.sent;
|
|
77
99
|
if (!isSkillInstalled) {
|
|
78
|
-
|
|
100
|
+
_context2.next = 8;
|
|
79
101
|
break;
|
|
80
102
|
}
|
|
81
|
-
|
|
103
|
+
_context2.next = 7;
|
|
82
104
|
return this.Action('event', 'sync.listeners').execute({});
|
|
83
105
|
case 7:
|
|
84
|
-
|
|
106
|
+
results = _context2.sent;
|
|
85
107
|
case 8:
|
|
86
|
-
return
|
|
108
|
+
return _context2.abrupt("return", results);
|
|
87
109
|
case 9:
|
|
88
110
|
case "end":
|
|
89
|
-
return
|
|
111
|
+
return _context2.stop();
|
|
90
112
|
}
|
|
91
113
|
}
|
|
92
|
-
},
|
|
114
|
+
}, _callee2, this);
|
|
93
115
|
}));
|
|
94
|
-
function
|
|
95
|
-
return
|
|
116
|
+
function optionallySyncListeners() {
|
|
117
|
+
return _optionallySyncListeners.apply(this, arguments);
|
|
96
118
|
}
|
|
97
|
-
return
|
|
119
|
+
return optionallySyncListeners;
|
|
98
120
|
}()
|
|
99
121
|
}, {
|
|
100
122
|
key: "handleWillExecute",
|
|
101
123
|
value: function () {
|
|
102
|
-
var _handleWillExecute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
124
|
+
var _handleWillExecute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(payload) {
|
|
103
125
|
var featureCode, actionCode, results, combined, settings, isInstalled, isRemoteRelevant, remoteResults;
|
|
104
|
-
return _regenerator["default"].wrap(function
|
|
126
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
105
127
|
while (1) {
|
|
106
|
-
switch (
|
|
128
|
+
switch (_context3.prev = _context3.next) {
|
|
107
129
|
case 0:
|
|
108
130
|
featureCode = payload.featureCode, actionCode = payload.actionCode;
|
|
109
131
|
results = {};
|
|
@@ -116,28 +138,28 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
116
138
|
settings = this.Service('eventSettings');
|
|
117
139
|
settings.clearListenerCache();
|
|
118
140
|
}
|
|
119
|
-
|
|
141
|
+
_context3.next = 6;
|
|
120
142
|
return this.features.isInstalled('event');
|
|
121
143
|
case 6:
|
|
122
|
-
isInstalled =
|
|
144
|
+
isInstalled = _context3.sent;
|
|
123
145
|
isRemoteRelevant = isInstalled && (featureCode === 'event' || featureCode === 'eventContract' || actionCode === 'login') && actionCode !== 'setRemote';
|
|
124
146
|
if (!isRemoteRelevant) {
|
|
125
|
-
|
|
147
|
+
_context3.next = 13;
|
|
126
148
|
break;
|
|
127
149
|
}
|
|
128
|
-
|
|
150
|
+
_context3.next = 11;
|
|
129
151
|
return this.appendRemoteToResultsOrPrompt();
|
|
130
152
|
case 11:
|
|
131
|
-
remoteResults =
|
|
153
|
+
remoteResults = _context3.sent;
|
|
132
154
|
results = _action["default"].mergeActionResults(results, remoteResults);
|
|
133
155
|
case 13:
|
|
134
|
-
return
|
|
156
|
+
return _context3.abrupt("return", results);
|
|
135
157
|
case 14:
|
|
136
158
|
case "end":
|
|
137
|
-
return
|
|
159
|
+
return _context3.stop();
|
|
138
160
|
}
|
|
139
161
|
}
|
|
140
|
-
},
|
|
162
|
+
}, _callee3, this);
|
|
141
163
|
}));
|
|
142
164
|
function handleWillExecute(_x) {
|
|
143
165
|
return _handleWillExecute.apply(this, arguments);
|
|
@@ -147,24 +169,24 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
147
169
|
}, {
|
|
148
170
|
key: "syncListenersAndMixinResults",
|
|
149
171
|
value: function () {
|
|
150
|
-
var _syncListenersAndMixinResults = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
172
|
+
var _syncListenersAndMixinResults = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(results) {
|
|
151
173
|
var syncResults;
|
|
152
|
-
return _regenerator["default"].wrap(function
|
|
174
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
153
175
|
while (1) {
|
|
154
|
-
switch (
|
|
176
|
+
switch (_context4.prev = _context4.next) {
|
|
155
177
|
case 0:
|
|
156
|
-
|
|
157
|
-
return this.
|
|
178
|
+
_context4.next = 2;
|
|
179
|
+
return this.optionallySyncListeners();
|
|
158
180
|
case 2:
|
|
159
|
-
syncResults =
|
|
181
|
+
syncResults = _context4.sent;
|
|
160
182
|
results = _action["default"].mergeActionResults(results, syncResults);
|
|
161
|
-
return
|
|
183
|
+
return _context4.abrupt("return", results);
|
|
162
184
|
case 5:
|
|
163
185
|
case "end":
|
|
164
|
-
return
|
|
186
|
+
return _context4.stop();
|
|
165
187
|
}
|
|
166
188
|
}
|
|
167
|
-
},
|
|
189
|
+
}, _callee4, this);
|
|
168
190
|
}));
|
|
169
191
|
function syncListenersAndMixinResults(_x2) {
|
|
170
192
|
return _syncListenersAndMixinResults.apply(this, arguments);
|
|
@@ -174,42 +196,42 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
174
196
|
}, {
|
|
175
197
|
key: "handleDidExecute",
|
|
176
198
|
value: function () {
|
|
177
|
-
var _handleDidExecute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
199
|
+
var _handleDidExecute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(payload) {
|
|
178
200
|
var featureCode, actionCode, isInstalled, results, isUpgrade;
|
|
179
|
-
return _regenerator["default"].wrap(function
|
|
201
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
180
202
|
while (1) {
|
|
181
|
-
switch (
|
|
203
|
+
switch (_context5.prev = _context5.next) {
|
|
182
204
|
case 0:
|
|
183
205
|
featureCode = payload.featureCode, actionCode = payload.actionCode;
|
|
184
|
-
|
|
206
|
+
_context5.next = 3;
|
|
185
207
|
return this.features.isInstalled('event');
|
|
186
208
|
case 3:
|
|
187
|
-
isInstalled =
|
|
209
|
+
isInstalled = _context5.sent;
|
|
188
210
|
results = {};
|
|
189
211
|
isUpgrade = isInstalled && featureCode === 'node' && actionCode === 'upgrade';
|
|
190
212
|
if (!isUpgrade) {
|
|
191
|
-
|
|
213
|
+
_context5.next = 13;
|
|
192
214
|
break;
|
|
193
215
|
}
|
|
194
|
-
|
|
216
|
+
_context5.next = 9;
|
|
195
217
|
return this.Action('event', 'sync').execute({});
|
|
196
218
|
case 9:
|
|
197
|
-
results =
|
|
198
|
-
|
|
219
|
+
results = _context5.sent;
|
|
220
|
+
_context5.next = 12;
|
|
199
221
|
return this.syncListenersAndMixinResults(results);
|
|
200
222
|
case 12:
|
|
201
|
-
results =
|
|
223
|
+
results = _context5.sent;
|
|
202
224
|
case 13:
|
|
203
225
|
if (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {
|
|
204
226
|
_EventStore["default"].clearCache();
|
|
205
227
|
}
|
|
206
|
-
return
|
|
228
|
+
return _context5.abrupt("return", results);
|
|
207
229
|
case 15:
|
|
208
230
|
case "end":
|
|
209
|
-
return
|
|
231
|
+
return _context5.stop();
|
|
210
232
|
}
|
|
211
233
|
}
|
|
212
|
-
},
|
|
234
|
+
}, _callee5, this);
|
|
213
235
|
}));
|
|
214
236
|
function handleDidExecute(_x3) {
|
|
215
237
|
return _handleDidExecute.apply(this, arguments);
|
|
@@ -224,41 +246,41 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
224
246
|
}, {
|
|
225
247
|
key: "appendRemoteToResultsOrPrompt",
|
|
226
248
|
value: function () {
|
|
227
|
-
var _appendRemoteToResultsOrPrompt = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
249
|
+
var _appendRemoteToResultsOrPrompt = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
228
250
|
var remote, r, results;
|
|
229
|
-
return _regenerator["default"].wrap(function
|
|
251
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
230
252
|
while (1) {
|
|
231
|
-
switch (
|
|
253
|
+
switch (_context6.prev = _context6.next) {
|
|
232
254
|
case 0:
|
|
233
255
|
remote = this.Service('remote');
|
|
234
256
|
r = remote.getRemote();
|
|
235
257
|
if (r) {
|
|
236
|
-
|
|
258
|
+
_context6.next = 13;
|
|
237
259
|
break;
|
|
238
260
|
}
|
|
239
261
|
if (_TerminalInterface["default"].doesSupportColor()) {
|
|
240
|
-
|
|
262
|
+
_context6.next = 5;
|
|
241
263
|
break;
|
|
242
264
|
}
|
|
243
265
|
throw new Error("Dang! I couldn't find env.HOST. Once that is set, lets try again!");
|
|
244
266
|
case 5:
|
|
245
267
|
this.ui.stopLoading();
|
|
246
268
|
this.ui.renderLine("Uh oh! It looks like you haven't configured your remote! We gotta do that.");
|
|
247
|
-
|
|
269
|
+
_context6.next = 9;
|
|
248
270
|
return this.Action('event', 'setRemote').execute({});
|
|
249
271
|
case 9:
|
|
250
|
-
results =
|
|
251
|
-
return
|
|
272
|
+
results = _context6.sent;
|
|
273
|
+
return _context6.abrupt("return", results);
|
|
252
274
|
case 13:
|
|
253
|
-
return
|
|
275
|
+
return _context6.abrupt("return", {
|
|
254
276
|
summaryLines: ["Remote: ".concat(r), "Host: ".concat(remote.getHost())]
|
|
255
277
|
});
|
|
256
278
|
case 14:
|
|
257
279
|
case "end":
|
|
258
|
-
return
|
|
280
|
+
return _context6.stop();
|
|
259
281
|
}
|
|
260
282
|
}
|
|
261
|
-
},
|
|
283
|
+
}, _callee6, this);
|
|
262
284
|
}));
|
|
263
285
|
function appendRemoteToResultsOrPrompt() {
|
|
264
286
|
return _appendRemoteToResultsOrPrompt.apply(this, arguments);
|
|
@@ -268,39 +290,39 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
268
290
|
}, {
|
|
269
291
|
key: "handleDidFetchSchemas",
|
|
270
292
|
value: function () {
|
|
271
|
-
var _handleDidFetchSchemas = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
293
|
+
var _handleDidFetchSchemas = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(payload) {
|
|
272
294
|
var isInstalled, lastSync, _payload$schemas, _uniqueSchemas$schema, writer, uniqueSchemas;
|
|
273
|
-
return _regenerator["default"].wrap(function
|
|
295
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
274
296
|
while (1) {
|
|
275
|
-
switch (
|
|
297
|
+
switch (_context7.prev = _context7.next) {
|
|
276
298
|
case 0:
|
|
277
|
-
|
|
299
|
+
_context7.next = 2;
|
|
278
300
|
return this.features.isInstalled(this.code);
|
|
279
301
|
case 2:
|
|
280
|
-
isInstalled =
|
|
302
|
+
isInstalled = _context7.sent;
|
|
281
303
|
lastSync = this.Service('eventSettings').getLastSyncOptions();
|
|
282
304
|
if (!(lastSync && isInstalled)) {
|
|
283
|
-
|
|
305
|
+
_context7.next = 10;
|
|
284
306
|
break;
|
|
285
307
|
}
|
|
286
308
|
writer = this.getEventContractBuilder();
|
|
287
|
-
|
|
309
|
+
_context7.next = 8;
|
|
288
310
|
return writer.fetchContractsAndGenerateUniqueSchemas((_payload$schemas = payload.schemas) !== null && _payload$schemas !== void 0 ? _payload$schemas : [], lastSync.shouldSyncOnlyCoreEvents);
|
|
289
311
|
case 8:
|
|
290
|
-
uniqueSchemas =
|
|
291
|
-
return
|
|
312
|
+
uniqueSchemas = _context7.sent;
|
|
313
|
+
return _context7.abrupt("return", {
|
|
292
314
|
schemas: (_uniqueSchemas$schema = uniqueSchemas.schemas) !== null && _uniqueSchemas$schema !== void 0 ? _uniqueSchemas$schema : []
|
|
293
315
|
});
|
|
294
316
|
case 10:
|
|
295
|
-
return
|
|
317
|
+
return _context7.abrupt("return", {
|
|
296
318
|
schemas: []
|
|
297
319
|
});
|
|
298
320
|
case 11:
|
|
299
321
|
case "end":
|
|
300
|
-
return
|
|
322
|
+
return _context7.stop();
|
|
301
323
|
}
|
|
302
324
|
}
|
|
303
|
-
},
|
|
325
|
+
}, _callee7, this);
|
|
304
326
|
}));
|
|
305
327
|
function handleDidFetchSchemas(_x4) {
|
|
306
328
|
return _handleDidFetchSchemas.apply(this, arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventFeature.js","names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","features","isInstalled","isSkillInstalled","Action","execute","payload","featureCode","actionCode","results","initiatingAction","EventStore","clearCache","combined","combineCodes","settings","Service","clearListenerCache","isRemoteRelevant","appendRemoteToResultsOrPrompt","remoteResults","actionUtil","mergeActionResults","syncResults","isUpgrade","syncListenersAndMixinResults","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"sources":["../../../src/features/event/EventFeature.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport actionUtil from '../../utilities/action.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t\t{ code: 'permission', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\tconst isSkillInstalled = await this.features.isInstalled('skill')\n\t\tif (isSkillInstalled) {\n\t\t\treturn await this.Action('event', 'sync.listeners').execute({})\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tconst isInstalled = await this.features.isInstalled('event')\n\t\tconst isRemoteRelevant =\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\n\t\tif (isRemoteRelevant) {\n\t\t\tconst remoteResults = await this.appendRemoteToResultsOrPrompt()\n\t\t\tresults = actionUtil.mergeActionResults(results, remoteResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async syncListenersAndMixinResults(results: FeatureActionResponse) {\n\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute({})\n\t\tresults = actionUtil.mergeActionResults(results, syncResults)\n\t\treturn results\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.features.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tconst isUpgrade =\n\t\t\tisInstalled && featureCode === 'node' && actionCode === 'upgrade'\n\n\t\tif (isUpgrade) {\n\t\t\tresults = await this.Action('event', 'sync').execute({})\n\t\t\tresults = await this.syncListenersAndMixinResults(results)\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.features.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EventFeature.js","names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","optionallySyncListeners","results","features","isInstalled","isSkillInstalled","Action","execute","payload","featureCode","actionCode","initiatingAction","EventStore","clearCache","combined","combineCodes","settings","Service","clearListenerCache","isRemoteRelevant","appendRemoteToResultsOrPrompt","remoteResults","actionUtil","mergeActionResults","syncResults","isUpgrade","syncListenersAndMixinResults","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"sources":["../../../src/features/event/EventFeature.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport actionUtil from '../../utilities/action.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t\t{ code: 'permission', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\treturn this.optionallySyncListeners()\n\t}\n\n\tprivate async optionallySyncListeners() {\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tconst isSkillInstalled = await this.features.isInstalled('skill')\n\n\t\tif (isSkillInstalled) {\n\t\t\tresults = await this.Action('event', 'sync.listeners').execute({})\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tconst isInstalled = await this.features.isInstalled('event')\n\t\tconst isRemoteRelevant =\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\n\t\tif (isRemoteRelevant) {\n\t\t\tconst remoteResults = await this.appendRemoteToResultsOrPrompt()\n\t\t\tresults = actionUtil.mergeActionResults(results, remoteResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async syncListenersAndMixinResults(results: FeatureActionResponse) {\n\t\tconst syncResults = await this.optionallySyncListeners()\n\t\tresults = actionUtil.mergeActionResults(results, syncResults)\n\t\treturn results\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.features.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tconst isUpgrade =\n\t\t\tisInstalled && featureCode === 'node' && actionCode === 'upgrade'\n\n\t\tif (isUpgrade) {\n\t\t\tresults = await this.Action('event', 'sync').execute({})\n\t\t\tresults = await this.syncListenersAndMixinResults(results)\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.features.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -31,10 +31,7 @@ var EventContractFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
31
31
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "code", 'eventContract');
|
|
32
32
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "nameReadable", 'Event Contract');
|
|
33
33
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "description", 'Pull core Mercury events down and write to single, portable, dependency-free, strongly typed contract.');
|
|
34
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dependencies", [
|
|
35
|
-
code: 'permission',
|
|
36
|
-
isRequired: true
|
|
37
|
-
}]);
|
|
34
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dependencies", []);
|
|
38
35
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "packageDependencies", []);
|
|
39
36
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "actionsDir", _spruceSkillUtils.diskUtil.resolvePath(__dirname, 'actions'));
|
|
40
37
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "fileDescriptions", []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventContractFeature.js","names":["EventContractFeature","
|
|
1
|
+
{"version":3,"file":"EventContractFeature.js","names":["EventContractFeature","diskUtil","resolvePath","__dirname","AbstractFeature"],"sources":["../../../src/features/eventContract/EventContractFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\teventContract: EventContractFeature\n\t}\n}\n\nexport default class EventContractFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'eventContract'\n\tpublic nameReadable = 'Event Contract'\n\tpublic description =\n\t\t'Pull core Mercury events down and write to single, portable, dependency-free, strongly typed contract.'\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic packageDependencies = []\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\n\tpublic isInstalled = async () => true\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAEA;AAAuE;AAAA;AAAA,IASlDA,oBAAoB;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,yFACb,eAAe;IAAA,iGACpB,gBAAgB;IAAA,gGAErC,wGAAwG;IAAA,iGAC9D,EAAE;IAAA,wGAChB,EAAE;IAAA,+FAEXC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAAA,qGACR,EAAE;IAAA,2LAEnC;MAAA;QAAA;UAAA;YAAA;cAAA,iCAAY,IAAI;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;EAAA;EAAA;AAAA,EAXYC,4BAAe;AAAA"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -16,8 +17,9 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
16
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
18
|
var _schema = require("@sprucelabs/schema");
|
|
18
19
|
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
19
|
-
var _action = _interopRequireDefault(require("../../../utilities/action.utility"));
|
|
20
20
|
var _AbstractAction2 = _interopRequireDefault(require("../../AbstractAction"));
|
|
21
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
23
|
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); }; }
|
|
22
24
|
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; } }
|
|
23
25
|
var pullOptionsSchema = (0, _schema.buildSchema)({
|
|
@@ -50,7 +52,7 @@ var PullAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
50
52
|
key: "execute",
|
|
51
53
|
value: function () {
|
|
52
54
|
var _execute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(options) {
|
|
53
|
-
var _this$validateAndNorm, _this$validateAndNorm2, destination, filename, _yield$this$Store$fet, contracts, buildEventContractImport, contents, action,
|
|
55
|
+
var _this$validateAndNorm, _this$validateAndNorm2, destination, filename, _yield$this$Store$fet, contracts, buildEventContractImport, contents, action, typesFiles;
|
|
54
56
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
55
57
|
while (1) {
|
|
56
58
|
switch (_context.prev = _context.next) {
|
|
@@ -59,7 +61,9 @@ var PullAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
59
61
|
filename = 'events.contract.ts';
|
|
60
62
|
destination = _spruceSkillUtils.diskUtil.resolvePath(this.cwd, destination, filename);
|
|
61
63
|
_context.next = 5;
|
|
62
|
-
return this.Store('event').fetchEventContracts(
|
|
64
|
+
return this.Store('event').fetchEventContracts({
|
|
65
|
+
namespaces: ['core']
|
|
66
|
+
});
|
|
63
67
|
case 5:
|
|
64
68
|
_yield$this$Store$fet = _context.sent;
|
|
65
69
|
contracts = _yield$this$Store$fet.contracts;
|
|
@@ -72,17 +76,17 @@ var PullAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
72
76
|
action = _spruceSkillUtils.diskUtil.doesFileExist(destination) ? 'updated' : 'generated';
|
|
73
77
|
_spruceSkillUtils.diskUtil.writeFile(destination, contents);
|
|
74
78
|
_context.next = 13;
|
|
75
|
-
return this.
|
|
79
|
+
return this.syncPermissions();
|
|
76
80
|
case 13:
|
|
77
|
-
|
|
78
|
-
return _context.abrupt("return",
|
|
79
|
-
files: [{
|
|
81
|
+
typesFiles = _context.sent;
|
|
82
|
+
return _context.abrupt("return", {
|
|
83
|
+
files: [].concat((0, _toConsumableArray2["default"])(typesFiles), [{
|
|
80
84
|
name: filename,
|
|
81
85
|
path: destination,
|
|
82
86
|
action: action,
|
|
83
87
|
description: 'All your Mercury core events ready for testing!'
|
|
84
|
-
}]
|
|
85
|
-
})
|
|
88
|
+
}])
|
|
89
|
+
});
|
|
86
90
|
case 15:
|
|
87
91
|
case "end":
|
|
88
92
|
return _context.stop();
|
|
@@ -95,6 +99,45 @@ var PullAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
95
99
|
}
|
|
96
100
|
return execute;
|
|
97
101
|
}()
|
|
102
|
+
}, {
|
|
103
|
+
key: "syncPermissions",
|
|
104
|
+
value: function () {
|
|
105
|
+
var _syncPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
106
|
+
var permissions, coreMap, heartwoodMap, typesFiles;
|
|
107
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
108
|
+
while (1) {
|
|
109
|
+
switch (_context2.prev = _context2.next) {
|
|
110
|
+
case 0:
|
|
111
|
+
permissions = this.Store('permission');
|
|
112
|
+
_context2.next = 3;
|
|
113
|
+
return permissions.fetchContracts({
|
|
114
|
+
shouldSyncCorePermissions: true
|
|
115
|
+
});
|
|
116
|
+
case 3:
|
|
117
|
+
coreMap = _context2.sent;
|
|
118
|
+
_context2.next = 6;
|
|
119
|
+
return permissions.fetchContracts({
|
|
120
|
+
shouldSyncCorePermissions: true
|
|
121
|
+
});
|
|
122
|
+
case 6:
|
|
123
|
+
heartwoodMap = _context2.sent;
|
|
124
|
+
_context2.next = 9;
|
|
125
|
+
return this.Writer('permission').writeTypesFile(this.cwd, _objectSpread(_objectSpread({}, coreMap), heartwoodMap));
|
|
126
|
+
case 9:
|
|
127
|
+
typesFiles = _context2.sent;
|
|
128
|
+
return _context2.abrupt("return", typesFiles);
|
|
129
|
+
case 11:
|
|
130
|
+
case "end":
|
|
131
|
+
return _context2.stop();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}, _callee2, this);
|
|
135
|
+
}));
|
|
136
|
+
function syncPermissions() {
|
|
137
|
+
return _syncPermissions.apply(this, arguments);
|
|
138
|
+
}
|
|
139
|
+
return syncPermissions;
|
|
140
|
+
}()
|
|
98
141
|
}]);
|
|
99
142
|
return PullAction;
|
|
100
143
|
}(_AbstractAction2["default"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PullAction.js","names":["pullOptionsSchema","buildSchema","id","description","fields","destination","type","label","hint","PullAction","options","validateAndNormalizeOptions","filename","diskUtil","resolvePath","cwd","Store","fetchEventContracts","contracts","buildEventContractImport","contents","map","c","JSON","stringify","join","_","idx","action","doesFileExist","writeFile","
|
|
1
|
+
{"version":3,"file":"PullAction.js","names":["pullOptionsSchema","buildSchema","id","description","fields","destination","type","label","hint","PullAction","options","validateAndNormalizeOptions","filename","diskUtil","resolvePath","cwd","Store","fetchEventContracts","namespaces","contracts","buildEventContractImport","contents","map","c","JSON","stringify","join","_","idx","action","doesFileExist","writeFile","syncPermissions","typesFiles","files","name","path","permissions","fetchContracts","shouldSyncCorePermissions","coreMap","heartwoodMap","Writer","writeTypesFile","AbstractAction"],"sources":["../../../../src/features/eventContract/actions/PullAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst pullOptionsSchema = buildSchema({\n\tid: 'pullActionSchema',\n\tdescription:\n\t\t'Pulls the event contracts from Mercury down to a single file for easy distribution.',\n\tfields: {\n\t\tdestination: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Destination',\n\t\t\thint: 'File is always named `events.contract.ts`.',\n\t\t},\n\t},\n})\ntype PullOptionsSchema = typeof pullOptionsSchema\ntype Options = SchemaValues<PullOptionsSchema>\n\nexport default class PullAction extends AbstractAction<PullOptionsSchema> {\n\tpublic commandAliases = ['pull.event.contracts']\n\tpublic optionsSchema = pullOptionsSchema\n\tpublic invocationMessage = 'Pulling combined event contract... 🜒'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tlet { destination = '.' } = this.validateAndNormalizeOptions(options)\n\n\t\tconst filename = 'events.contract.ts'\n\t\tdestination = diskUtil.resolvePath(this.cwd, destination, filename)\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tnamespaces: ['core'],\n\t\t})\n\t\tlet buildEventContractImport = `import { buildEventContract } from '@sprucelabs/mercury-types'\nimport '${'#spruce'}/permissions/permissions.types'`\n\n\t\tconst contents = `${buildEventContractImport}\nconst eventContracts = [${contracts\n\t\t\t.map((c) => `buildEventContract(${JSON.stringify(c, null, 2)})`)\n\t\t\t.join(',\\n')}] as const\n\n\nexport default eventContracts\nexport type CoreEventContract = ${contracts\n\t\t\t.map((_, idx) => `typeof eventContracts[${idx}]`)\n\t\t\t.join(' & ')}\n`\n\n\t\tconst action = diskUtil.doesFileExist(destination) ? 'updated' : 'generated'\n\n\t\tdiskUtil.writeFile(destination, contents)\n\n\t\tconst typesFiles = await this.syncPermissions()\n\n\t\treturn {\n\t\t\tfiles: [\n\t\t\t\t...typesFiles,\n\t\t\t\t{\n\t\t\t\t\tname: filename,\n\t\t\t\t\tpath: destination,\n\t\t\t\t\taction,\n\t\t\t\t\tdescription: 'All your Mercury core events ready for testing!',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t}\n\n\tprivate async syncPermissions() {\n\t\tconst permissions = this.Store('permission')\n\n\t\tconst coreMap = await permissions.fetchContracts({\n\t\t\tshouldSyncCorePermissions: true,\n\t\t})\n\n\t\tconst heartwoodMap = await permissions.fetchContracts({\n\t\t\tshouldSyncCorePermissions: true,\n\t\t})\n\n\t\tconst typesFiles = await this.Writer('permission').writeTypesFile(\n\t\t\tthis.cwd,\n\t\t\t{ ...coreMap, ...heartwoodMap }\n\t\t)\n\t\treturn typesFiles\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -57,23 +57,33 @@ var PermissionFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
57
57
|
return this.features.isInstalled('skill');
|
|
58
58
|
case 6:
|
|
59
59
|
isSkillInstalled = _context.sent;
|
|
60
|
-
if (!(
|
|
61
|
-
_context.next =
|
|
60
|
+
if (!(isInstalled && featureCode === 'node' && actionCode === 'upgrade')) {
|
|
61
|
+
_context.next = 21;
|
|
62
62
|
break;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
if (!isSkillInstalled) {
|
|
65
|
+
_context.next = 14;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
_context.next = 11;
|
|
65
69
|
return this.writePlugin();
|
|
66
|
-
case
|
|
67
|
-
|
|
68
|
-
_context.next =
|
|
70
|
+
case 11:
|
|
71
|
+
_context.t0 = _context.sent;
|
|
72
|
+
_context.next = 15;
|
|
73
|
+
break;
|
|
74
|
+
case 14:
|
|
75
|
+
_context.t0 = [];
|
|
76
|
+
case 15:
|
|
77
|
+
combinedFile = _context.t0;
|
|
78
|
+
_context.next = 18;
|
|
69
79
|
return this.Action('permission', 'sync').execute({});
|
|
70
|
-
case
|
|
80
|
+
case 18:
|
|
71
81
|
results = _context.sent;
|
|
72
82
|
results.files = [].concat((0, _toConsumableArray2["default"])((_results$files = results.files) !== null && _results$files !== void 0 ? _results$files : []), (0, _toConsumableArray2["default"])(combinedFile));
|
|
73
83
|
return _context.abrupt("return", results);
|
|
74
|
-
case
|
|
84
|
+
case 21:
|
|
75
85
|
return _context.abrupt("return", {});
|
|
76
|
-
case
|
|
86
|
+
case 22:
|
|
77
87
|
case "end":
|
|
78
88
|
return _context.stop();
|
|
79
89
|
}
|