@sprucelabs/spruce-cli 18.1.8 → 18.2.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 +6 -0
- package/build/__tests__/behavioral/permissions/PermissionStore.test.d.ts +9 -0
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +204 -25
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
- package/build/__tests__/support/EventFaker.d.ts +5 -0
- package/build/__tests__/support/EventFaker.js +48 -0
- package/build/__tests__/support/EventFaker.js.map +1 -0
- package/build/features/permission/stores/PermissionStore.d.ts +2 -1
- package/build/features/permission/stores/PermissionStore.js +57 -0
- package/build/features/permission/stores/PermissionStore.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +6 -6
- package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js +9 -9
- package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/Definition.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/Definition.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js +21 -7
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.d.ts +3 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.d.ts.map +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.js +12 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.js.map +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.js +2 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js +2 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js +2 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js +39 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.d.ts +2 -2
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js +9 -9
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js +17 -17
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/Scope.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/Scope.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/package.json +12 -12
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +8 -2
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/lib.d.ts +1 -1
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/parser-options.d.ts +3 -3
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +8 -2
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +1 -0
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/lib.d.ts +1 -1
- package/node_modules/@typescript-eslint/types/dist/lib.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts +3 -3
- package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/package.json +3 -3
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/shared.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parseSettings/index.d.ts +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parser-options.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parser.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/simple-traverse.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +7 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js +9 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/package.json +6 -6
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +1 -0
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/package.json +4 -4
- package/package.json +11 -11
- package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +133 -9
- package/src/__tests__/support/EventFaker.ts +23 -0
- package/src/features/permission/stores/PermissionStore.ts +23 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [18.2.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.1.8...v18.2.0) (2022-11-22)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- permissions store ([cefd737](https://github.com/sprucelabsai/spruce-cli-workspace/commit/cefd737))
|
|
11
|
+
|
|
6
12
|
## [18.1.8](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.1.7...v18.1.8) (2022-11-21)
|
|
7
13
|
|
|
8
14
|
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
@@ -4,12 +4,21 @@ export default class PermissionStoreTest extends AbstractPermissionsTest {
|
|
|
4
4
|
private static permissions;
|
|
5
5
|
private static contractName1;
|
|
6
6
|
private static contractName2;
|
|
7
|
+
private static eventFaker;
|
|
7
8
|
protected static beforeAll(): Promise<void>;
|
|
8
9
|
protected static beforeEach(): Promise<void>;
|
|
9
10
|
protected static loadsNoLocalByDefault(): Promise<void>;
|
|
10
11
|
protected static loadsOneContract(): Promise<void>;
|
|
11
12
|
protected static loadsSecondContract(): Promise<void>;
|
|
12
13
|
protected static mixesInAllPermissions(): Promise<void>;
|
|
14
|
+
protected static remotePermsEmitsListContracts(): Promise<void>;
|
|
15
|
+
protected static passesThroughDependentSkills(): Promise<void>;
|
|
16
|
+
protected static returnsDependencyMapFromRemoteContracts(): Promise<void>;
|
|
17
|
+
private static updateFirstContractBuilder;
|
|
18
|
+
private static generateContractRowValues;
|
|
19
|
+
private static generatePermValues;
|
|
20
|
+
private static addRandomDependency;
|
|
21
|
+
private static fetchContracts;
|
|
13
22
|
private static assertLocalPermissionsEqual;
|
|
14
23
|
private static loadLocalPermissions;
|
|
15
24
|
}
|
|
@@ -15,13 +15,15 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
15
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
17
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
|
|
18
|
+
var _mercuryClient = require("@sprucelabs/mercury-client");
|
|
18
19
|
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
19
20
|
var _testUtils = require("@sprucelabs/test-utils");
|
|
21
|
+
var _EventFaker = _interopRequireDefault(require("../../support/EventFaker"));
|
|
20
22
|
var _AbstractPermissionsTest = _interopRequireDefault(require("./AbstractPermissionsTest"));
|
|
21
|
-
var _dec, _dec2, _dec3, _dec4, _class, _class2;
|
|
23
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2;
|
|
22
24
|
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); }; }
|
|
23
25
|
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; } }
|
|
24
|
-
var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test)(), _dec3 = (0, _testUtils.test)(), _dec4 = (0, _testUtils.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractPermissionsT) {
|
|
26
|
+
var PermissionStoreTest = (_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 (_AbstractPermissionsT) {
|
|
25
27
|
(0, _inherits2["default"])(PermissionStoreTest, _AbstractPermissionsT);
|
|
26
28
|
var _super = _createSuper(PermissionStoreTest);
|
|
27
29
|
function PermissionStoreTest() {
|
|
@@ -64,8 +66,10 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
64
66
|
_context2.next = 2;
|
|
65
67
|
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(PermissionStoreTest), "beforeEach", this).call(this);
|
|
66
68
|
case 2:
|
|
69
|
+
_mercuryClient.MercuryClientFactory.setIsTestMode(true);
|
|
67
70
|
this.permissions = this.Store('permission');
|
|
68
|
-
|
|
71
|
+
this.eventFaker = new _EventFaker["default"]();
|
|
72
|
+
case 5:
|
|
69
73
|
case "end":
|
|
70
74
|
return _context2.stop();
|
|
71
75
|
}
|
|
@@ -159,16 +163,18 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
159
163
|
value: function () {
|
|
160
164
|
var _mixesInAllPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
161
165
|
var _this$assertLocalPerm3;
|
|
162
|
-
var
|
|
166
|
+
var contractId, perm1Id, perm2Id;
|
|
163
167
|
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
164
168
|
while (1) {
|
|
165
169
|
switch (_context6.prev = _context6.next) {
|
|
166
170
|
case 0:
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
171
|
+
contractId = 'oeu-aoeuao';
|
|
172
|
+
perm1Id = 'what-the';
|
|
173
|
+
perm2Id = 'go-dogs';
|
|
174
|
+
this.updateFirstContractBuilder(contractId, perm1Id, perm2Id);
|
|
175
|
+
_context6.next = 6;
|
|
176
|
+
return this.assertLocalPermissionsEqual((_this$assertLocalPerm3 = {}, (0, _defineProperty2["default"])(_this$assertLocalPerm3, contractId, [perm1Id, perm2Id]), (0, _defineProperty2["default"])(_this$assertLocalPerm3, this.contractName2, ['can-high-five']), _this$assertLocalPerm3));
|
|
177
|
+
case 6:
|
|
172
178
|
case "end":
|
|
173
179
|
return _context6.stop();
|
|
174
180
|
}
|
|
@@ -181,25 +187,193 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
181
187
|
return mixesInAllPermissions;
|
|
182
188
|
}()
|
|
183
189
|
}, {
|
|
184
|
-
key: "
|
|
190
|
+
key: "remotePermsEmitsListContracts",
|
|
185
191
|
value: function () {
|
|
186
|
-
var
|
|
187
|
-
var
|
|
192
|
+
var _remotePermsEmitsListContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
193
|
+
var wasHit;
|
|
188
194
|
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
189
195
|
while (1) {
|
|
190
196
|
switch (_context7.prev = _context7.next) {
|
|
191
197
|
case 0:
|
|
192
|
-
|
|
198
|
+
wasHit = false;
|
|
199
|
+
_context7.next = 3;
|
|
200
|
+
return this.eventFaker.fakeListPermissionContracts(function () {
|
|
201
|
+
wasHit = true;
|
|
202
|
+
});
|
|
203
|
+
case 3:
|
|
204
|
+
_context7.next = 5;
|
|
205
|
+
return PermissionStoreTest.fetchContracts();
|
|
206
|
+
case 5:
|
|
207
|
+
_testUtils.assert.isTrue(wasHit);
|
|
208
|
+
case 6:
|
|
209
|
+
case "end":
|
|
210
|
+
return _context7.stop();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}, _callee7, this);
|
|
214
|
+
}));
|
|
215
|
+
function remotePermsEmitsListContracts() {
|
|
216
|
+
return _remotePermsEmitsListContracts.apply(this, arguments);
|
|
217
|
+
}
|
|
218
|
+
return remotePermsEmitsListContracts;
|
|
219
|
+
}()
|
|
220
|
+
}, {
|
|
221
|
+
key: "passesThroughDependentSkills",
|
|
222
|
+
value: function () {
|
|
223
|
+
var _passesThroughDependentSkills = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
224
|
+
var namespace, passedTarget;
|
|
225
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
226
|
+
while (1) {
|
|
227
|
+
switch (_context8.prev = _context8.next) {
|
|
228
|
+
case 0:
|
|
229
|
+
namespace = this.addRandomDependency();
|
|
230
|
+
_context8.next = 3;
|
|
231
|
+
return this.eventFaker.fakeListPermissionContracts(function (_ref) {
|
|
232
|
+
var target = _ref.target;
|
|
233
|
+
passedTarget = target;
|
|
234
|
+
});
|
|
235
|
+
case 3:
|
|
236
|
+
_context8.next = 5;
|
|
237
|
+
return this.fetchContracts();
|
|
238
|
+
case 5:
|
|
239
|
+
_testUtils.assert.isEqualDeep(passedTarget, {
|
|
240
|
+
namespaces: [namespace]
|
|
241
|
+
});
|
|
242
|
+
case 6:
|
|
243
|
+
case "end":
|
|
244
|
+
return _context8.stop();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}, _callee8, this);
|
|
248
|
+
}));
|
|
249
|
+
function passesThroughDependentSkills() {
|
|
250
|
+
return _passesThroughDependentSkills.apply(this, arguments);
|
|
251
|
+
}
|
|
252
|
+
return passesThroughDependentSkills;
|
|
253
|
+
}()
|
|
254
|
+
}, {
|
|
255
|
+
key: "returnsDependencyMapFromRemoteContracts",
|
|
256
|
+
value: function () {
|
|
257
|
+
var _returnsDependencyMapFromRemoteContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
258
|
+
var _assert$isEqualDeep;
|
|
259
|
+
var perm, perm2, perm3, _this$generateContrac, contract, contractId, _this$generateContrac2, contract2, contractId2, map;
|
|
260
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
261
|
+
while (1) {
|
|
262
|
+
switch (_context9.prev = _context9.next) {
|
|
263
|
+
case 0:
|
|
264
|
+
perm = this.generatePermValues();
|
|
265
|
+
perm2 = this.generatePermValues();
|
|
266
|
+
perm3 = this.generatePermValues();
|
|
267
|
+
_this$generateContrac = this.generateContractRowValues([perm, perm2]), contract = _this$generateContrac.contract, contractId = _this$generateContrac.contractId;
|
|
268
|
+
_this$generateContrac2 = this.generateContractRowValues([perm3]), contract2 = _this$generateContrac2.contract, contractId2 = _this$generateContrac2.contractId;
|
|
269
|
+
_context9.next = 7;
|
|
270
|
+
return this.eventFaker.fakeListPermissionContracts(function () {
|
|
271
|
+
return [contract, contract2];
|
|
272
|
+
});
|
|
273
|
+
case 7:
|
|
274
|
+
_context9.next = 9;
|
|
275
|
+
return this.fetchContracts();
|
|
276
|
+
case 9:
|
|
277
|
+
map = _context9.sent;
|
|
278
|
+
_testUtils.assert.isEqualDeep(map, (_assert$isEqualDeep = {}, (0, _defineProperty2["default"])(_assert$isEqualDeep, contractId, [perm.id, perm2.id]), (0, _defineProperty2["default"])(_assert$isEqualDeep, contractId2, [perm3.id]), (0, _defineProperty2["default"])(_assert$isEqualDeep, this.contractName2, ['can-high-five']), (0, _defineProperty2["default"])(_assert$isEqualDeep, 'oeu-aoeuao', ['what-the', 'go-dogs']), _assert$isEqualDeep));
|
|
279
|
+
case 11:
|
|
280
|
+
case "end":
|
|
281
|
+
return _context9.stop();
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}, _callee9, this);
|
|
285
|
+
}));
|
|
286
|
+
function returnsDependencyMapFromRemoteContracts() {
|
|
287
|
+
return _returnsDependencyMapFromRemoteContracts.apply(this, arguments);
|
|
288
|
+
}
|
|
289
|
+
return returnsDependencyMapFromRemoteContracts;
|
|
290
|
+
}()
|
|
291
|
+
}, {
|
|
292
|
+
key: "updateFirstContractBuilder",
|
|
293
|
+
value: function updateFirstContractBuilder(contractId, perm1Id, perm2Id) {
|
|
294
|
+
var file = this.resolvePath('src', 'permissions', "".concat(this.contractName1, ".permissions.ts"));
|
|
295
|
+
_spruceSkillUtils.diskUtil.writeFile(file, generateContractBuilder(contractId, perm1Id, perm2Id));
|
|
296
|
+
}
|
|
297
|
+
}, {
|
|
298
|
+
key: "generateContractRowValues",
|
|
299
|
+
value: function generateContractRowValues(permissions) {
|
|
300
|
+
var contractId = (0, _testUtils.generateId)();
|
|
301
|
+
var contract = {
|
|
302
|
+
id: (0, _testUtils.generateId)(),
|
|
303
|
+
contract: {
|
|
304
|
+
id: contractId,
|
|
305
|
+
name: (0, _testUtils.generateId)(),
|
|
306
|
+
permissions: permissions
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
return {
|
|
310
|
+
contract: contract,
|
|
311
|
+
contractId: contractId
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
}, {
|
|
315
|
+
key: "generatePermValues",
|
|
316
|
+
value: function generatePermValues() {
|
|
317
|
+
var permissionId = (0, _testUtils.generateId)();
|
|
318
|
+
var perm = {
|
|
319
|
+
id: permissionId,
|
|
320
|
+
name: (0, _testUtils.generateId)(),
|
|
321
|
+
defaults: {}
|
|
322
|
+
};
|
|
323
|
+
return perm;
|
|
324
|
+
}
|
|
325
|
+
}, {
|
|
326
|
+
key: "addRandomDependency",
|
|
327
|
+
value: function addRandomDependency() {
|
|
328
|
+
var dep = this.Service('dependency');
|
|
329
|
+
var namespace = (0, _testUtils.generateId)();
|
|
330
|
+
dep.add({
|
|
331
|
+
id: (0, _testUtils.generateId)(),
|
|
332
|
+
namespace: namespace
|
|
333
|
+
});
|
|
334
|
+
return namespace;
|
|
335
|
+
}
|
|
336
|
+
}, {
|
|
337
|
+
key: "fetchContracts",
|
|
338
|
+
value: function () {
|
|
339
|
+
var _fetchContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
340
|
+
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
341
|
+
while (1) {
|
|
342
|
+
switch (_context10.prev = _context10.next) {
|
|
343
|
+
case 0:
|
|
344
|
+
return _context10.abrupt("return", this.permissions.fetchContracts());
|
|
345
|
+
case 1:
|
|
346
|
+
case "end":
|
|
347
|
+
return _context10.stop();
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}, _callee10, this);
|
|
351
|
+
}));
|
|
352
|
+
function fetchContracts() {
|
|
353
|
+
return _fetchContracts.apply(this, arguments);
|
|
354
|
+
}
|
|
355
|
+
return fetchContracts;
|
|
356
|
+
}()
|
|
357
|
+
}, {
|
|
358
|
+
key: "assertLocalPermissionsEqual",
|
|
359
|
+
value: function () {
|
|
360
|
+
var _assertLocalPermissionsEqual = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(expected) {
|
|
361
|
+
var perms;
|
|
362
|
+
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
363
|
+
while (1) {
|
|
364
|
+
switch (_context11.prev = _context11.next) {
|
|
365
|
+
case 0:
|
|
366
|
+
_context11.next = 2;
|
|
193
367
|
return this.loadLocalPermissions();
|
|
194
368
|
case 2:
|
|
195
|
-
perms =
|
|
369
|
+
perms = _context11.sent;
|
|
196
370
|
_testUtils.assert.isEqualDeep(perms, expected);
|
|
197
371
|
case 4:
|
|
198
372
|
case "end":
|
|
199
|
-
return
|
|
373
|
+
return _context11.stop();
|
|
200
374
|
}
|
|
201
375
|
}
|
|
202
|
-
},
|
|
376
|
+
}, _callee11, this);
|
|
203
377
|
}));
|
|
204
378
|
function assertLocalPermissionsEqual(_x) {
|
|
205
379
|
return _assertLocalPermissionsEqual.apply(this, arguments);
|
|
@@ -209,21 +383,21 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
209
383
|
}, {
|
|
210
384
|
key: "loadLocalPermissions",
|
|
211
385
|
value: function () {
|
|
212
|
-
var _loadLocalPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
213
|
-
return _regenerator["default"].wrap(function
|
|
386
|
+
var _loadLocalPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
387
|
+
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
214
388
|
while (1) {
|
|
215
|
-
switch (
|
|
389
|
+
switch (_context12.prev = _context12.next) {
|
|
216
390
|
case 0:
|
|
217
|
-
|
|
391
|
+
_context12.next = 2;
|
|
218
392
|
return this.permissions.loadLocalPermissions();
|
|
219
393
|
case 2:
|
|
220
|
-
return
|
|
394
|
+
return _context12.abrupt("return", _context12.sent);
|
|
221
395
|
case 3:
|
|
222
396
|
case "end":
|
|
223
|
-
return
|
|
397
|
+
return _context12.stop();
|
|
224
398
|
}
|
|
225
399
|
}
|
|
226
|
-
},
|
|
400
|
+
}, _callee12, this);
|
|
227
401
|
}));
|
|
228
402
|
function loadLocalPermissions() {
|
|
229
403
|
return _loadLocalPermissions.apply(this, arguments);
|
|
@@ -232,10 +406,15 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
232
406
|
}()
|
|
233
407
|
}]);
|
|
234
408
|
return PermissionStoreTest;
|
|
235
|
-
}(_AbstractPermissionsTest["default"]), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'permissions'), (0, _defineProperty2["default"])(_class2, "permissions", void 0), (0, _defineProperty2["default"])(_class2, "contractName1", void 0), (0, _defineProperty2["default"])(_class2, "contractName2", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "loadsNoLocalByDefault", [_dec], Object.getOwnPropertyDescriptor(_class, "loadsNoLocalByDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsOneContract", [_dec2], Object.getOwnPropertyDescriptor(_class, "loadsOneContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsSecondContract", [_dec3], Object.getOwnPropertyDescriptor(_class, "loadsSecondContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "mixesInAllPermissions", [_dec4], Object.getOwnPropertyDescriptor(_class, "mixesInAllPermissions"), _class)), _class));
|
|
409
|
+
}(_AbstractPermissionsTest["default"]), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'permissions'), (0, _defineProperty2["default"])(_class2, "permissions", void 0), (0, _defineProperty2["default"])(_class2, "contractName1", void 0), (0, _defineProperty2["default"])(_class2, "contractName2", void 0), (0, _defineProperty2["default"])(_class2, "eventFaker", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "loadsNoLocalByDefault", [_dec], Object.getOwnPropertyDescriptor(_class, "loadsNoLocalByDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsOneContract", [_dec2], Object.getOwnPropertyDescriptor(_class, "loadsOneContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsSecondContract", [_dec3], Object.getOwnPropertyDescriptor(_class, "loadsSecondContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "mixesInAllPermissions", [_dec4], Object.getOwnPropertyDescriptor(_class, "mixesInAllPermissions"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "remotePermsEmitsListContracts", [_dec5], Object.getOwnPropertyDescriptor(_class, "remotePermsEmitsListContracts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "passesThroughDependentSkills", [_dec6], Object.getOwnPropertyDescriptor(_class, "passesThroughDependentSkills"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "returnsDependencyMapFromRemoteContracts", [_dec7], Object.getOwnPropertyDescriptor(_class, "returnsDependencyMapFromRemoteContracts"), _class)), _class));
|
|
236
410
|
exports["default"] = PermissionStoreTest;
|
|
237
411
|
function generateShortAlphaId() {
|
|
238
412
|
return (0, _testUtils.generateId)().replace(/[0-9]/g, '').substring(0, 5);
|
|
239
413
|
}
|
|
240
|
-
|
|
414
|
+
function generateContractBuilder() {
|
|
415
|
+
var contractId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'oeu-aoeuao';
|
|
416
|
+
var perm1Id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'what-the';
|
|
417
|
+
var perm2Id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'go-dogs';
|
|
418
|
+
return "import {\n buildPermissionContract\n} from '@sprucelabs/mercury-types'\n\nconst debeePermissions = buildPermissionContract({\n id: '".concat(contractId, "',\n name: 'debee',\n description: '',\n requireAllPermissions: false,\n permissions: [\n {\n id: '").concat(perm1Id, "',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n },\n {\n id: '").concat(perm2Id, "',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n }\n ]\n})\n\nexport default debeePermissions\n");
|
|
419
|
+
}
|
|
241
420
|
//# sourceMappingURL=PermissionStore.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionStore.test.js","names":["PermissionStoreTest","test","contractName1","generateShortAlphaId","contractName2","permissions","Store","loadLocalPermissions","assert","isEqualDeep","createPermissionContract","assertLocalPermissionsEqual","file","resolvePath","diskUtil","writeFile","contract1","expected","perms","AbstractPermissionsTest","generateId","replace","substring"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionStore.test.ts"],"sourcesContent":["import { PermissionContractMap } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert, generateId } from '@sprucelabs/test-utils'\nimport PermissionStore from '../../../features/permission/stores/PermissionStore'\nimport AbstractPermissionsTest from './AbstractPermissionsTest'\n\nexport default class PermissionStoreTest extends AbstractPermissionsTest {\n\tprotected static skillCacheKey = 'permissions'\n\tprivate static permissions: PermissionStore\n\tprivate static contractName1: string\n\tprivate static contractName2: string\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.contractName1 = generateShortAlphaId()\n\t\tthis.contractName2 = generateShortAlphaId()\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.permissions = this.Store('permission')\n\t}\n\n\t@test()\n\tprotected static async loadsNoLocalByDefault() {\n\t\tconst permissions = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(permissions, {})\n\t}\n\n\t@test()\n\tprotected static async loadsOneContract() {\n\t\tawait this.createPermissionContract(this.contractName1)\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[this.contractName1]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async loadsSecondContract() {\n\t\tawait this.createPermissionContract(this.contractName2)\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[this.contractName1]: ['can-high-five'],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async mixesInAllPermissions() {\n\t\tconst file = this.resolvePath(\n\t\t\t'src',\n\t\t\t'permissions',\n\t\t\t`${this.contractName1}.permissions.ts`\n\t\t)\n\t\tdiskUtil.writeFile(file, contract1)\n\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t['oeu-aoeuao']: ['what-the', 'go-dogs'],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t})\n\t}\n\n\tprivate static async assertLocalPermissionsEqual(\n\t\texpected: PermissionContractMap\n\t) {\n\t\tconst perms = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(perms, expected)\n\t}\n\n\tprivate static async loadLocalPermissions() {\n\t\treturn await this.permissions.loadLocalPermissions()\n\t}\n}\nfunction generateShortAlphaId() {\n\treturn generateId().replace(/[0-9]/g, '').substring(0, 5)\n}\n\nconst contract1 = `import {\n buildPermissionContract\n} from '@sprucelabs/mercury-types'\n\nconst debeePermissions = buildPermissionContract({\n id: 'oeu-aoeuao',\n name: 'debee',\n description: '',\n requireAllPermissions: false,\n permissions: [\n {\n id: 'what-the',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n },\n {\n id: 'go-dogs',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n }\n ]\n})\n\nexport default debeePermissions\n`\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PermissionStore.test.js","names":["PermissionStoreTest","test","contractName1","generateShortAlphaId","contractName2","MercuryClientFactory","setIsTestMode","permissions","Store","eventFaker","EventFaker","loadLocalPermissions","assert","isEqualDeep","createPermissionContract","assertLocalPermissionsEqual","contractId","perm1Id","perm2Id","updateFirstContractBuilder","wasHit","fakeListPermissionContracts","fetchContracts","isTrue","namespace","addRandomDependency","target","passedTarget","namespaces","perm","generatePermValues","perm2","perm3","generateContractRowValues","contract","contract2","contractId2","map","id","file","resolvePath","diskUtil","writeFile","generateContractBuilder","generateId","name","permissionId","defaults","dep","Service","add","expected","perms","AbstractPermissionsTest","replace","substring"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionStore.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { PermissionContractMap, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert, generateId } from '@sprucelabs/test-utils'\nimport PermissionStore from '../../../features/permission/stores/PermissionStore'\nimport EventFaker, {\n\tListPermContractsTargetAndPayload,\n} from '../../support/EventFaker'\nimport AbstractPermissionsTest from './AbstractPermissionsTest'\n\nexport default class PermissionStoreTest extends AbstractPermissionsTest {\n\tprotected static skillCacheKey = 'permissions'\n\tprivate static permissions: PermissionStore\n\tprivate static contractName1: string\n\tprivate static contractName2: string\n\tprivate static eventFaker: EventFaker\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.contractName1 = generateShortAlphaId()\n\t\tthis.contractName2 = generateShortAlphaId()\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tthis.permissions = this.Store('permission')\n\t\tthis.eventFaker = new EventFaker()\n\t}\n\n\t@test()\n\tprotected static async loadsNoLocalByDefault() {\n\t\tconst permissions = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(permissions, {})\n\t}\n\n\t@test()\n\tprotected static async loadsOneContract() {\n\t\tawait this.createPermissionContract(this.contractName1)\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[this.contractName1]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async loadsSecondContract() {\n\t\tawait this.createPermissionContract(this.contractName2)\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[this.contractName1]: ['can-high-five'],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async mixesInAllPermissions() {\n\t\tconst contractId = 'oeu-aoeuao'\n\t\tconst perm1Id = 'what-the'\n\t\tconst perm2Id = 'go-dogs'\n\n\t\tthis.updateFirstContractBuilder(contractId, perm1Id, perm2Id)\n\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[contractId]: [perm1Id, perm2Id],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async remotePermsEmitsListContracts() {\n\t\tlet wasHit = false\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {\n\t\t\twasHit = true\n\t\t})\n\n\t\tawait PermissionStoreTest.fetchContracts()\n\t\tassert.isTrue(wasHit)\n\t}\n\n\t@test()\n\tprotected static async passesThroughDependentSkills() {\n\t\tconst namespace = this.addRandomDependency()\n\n\t\tlet passedTarget: ListPermContractsTargetAndPayload['target']\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(({ target }) => {\n\t\t\tpassedTarget = target\n\t\t})\n\n\t\tawait this.fetchContracts()\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsDependencyMapFromRemoteContracts() {\n\t\tconst perm = this.generatePermValues()\n\t\tconst perm2 = this.generatePermValues()\n\t\tconst perm3 = this.generatePermValues()\n\n\t\tconst { contract, contractId } = this.generateContractRowValues([\n\t\t\tperm,\n\t\t\tperm2,\n\t\t])\n\n\t\tconst { contract: contract2, contractId: contractId2 } =\n\t\t\tthis.generateContractRowValues([perm3])\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {\n\t\t\treturn [contract, contract2]\n\t\t})\n\n\t\tconst map = await this.fetchContracts()\n\t\tassert.isEqualDeep(map, {\n\t\t\t[contractId]: [perm.id, perm2.id],\n\t\t\t[contractId2]: [perm3.id],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t\t'oeu-aoeuao': ['what-the', 'go-dogs'],\n\t\t})\n\t}\n\n\tprivate static updateFirstContractBuilder(\n\t\tcontractId: string,\n\t\tperm1Id: string,\n\t\tperm2Id: string\n\t) {\n\t\tconst file = this.resolvePath(\n\t\t\t'src',\n\t\t\t'permissions',\n\t\t\t`${this.contractName1}.permissions.ts`\n\t\t)\n\t\tdiskUtil.writeFile(\n\t\t\tfile,\n\t\t\tgenerateContractBuilder(contractId, perm1Id, perm2Id)\n\t\t)\n\t}\n\n\tprivate static generateContractRowValues(\n\t\tpermissions: SpruceSchemas.Mercury.v2020_12_25.Permission[]\n\t) {\n\t\tconst contractId = generateId()\n\t\tconst contract = {\n\t\t\tid: generateId(),\n\t\t\tcontract: {\n\t\t\t\tid: contractId,\n\t\t\t\tname: generateId(),\n\t\t\t\tpermissions,\n\t\t\t},\n\t\t}\n\t\treturn { contract, contractId }\n\t}\n\n\tprivate static generatePermValues() {\n\t\tconst permissionId = generateId()\n\t\tconst perm = {\n\t\t\tid: permissionId,\n\t\t\tname: generateId(),\n\t\t\tdefaults: {},\n\t\t}\n\t\treturn perm\n\t}\n\n\tprivate static addRandomDependency() {\n\t\tconst dep = this.Service('dependency')\n\t\tconst namespace = generateId()\n\t\tdep.add({\n\t\t\tid: generateId(),\n\t\t\tnamespace,\n\t\t})\n\t\treturn namespace\n\t}\n\n\tprivate static async fetchContracts() {\n\t\treturn this.permissions.fetchContracts()\n\t}\n\n\tprivate static async assertLocalPermissionsEqual(\n\t\texpected: PermissionContractMap\n\t) {\n\t\tconst perms = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(perms, expected)\n\t}\n\n\tprivate static async loadLocalPermissions() {\n\t\t//@ts-ignore\n\t\treturn await this.permissions.loadLocalPermissions()\n\t}\n}\nfunction generateShortAlphaId() {\n\treturn generateId().replace(/[0-9]/g, '').substring(0, 5)\n}\n\nfunction generateContractBuilder(\n\tcontractId = 'oeu-aoeuao',\n\tperm1Id = 'what-the',\n\tperm2Id = 'go-dogs'\n) {\n\treturn `import {\n buildPermissionContract\n} from '@sprucelabs/mercury-types'\n\nconst debeePermissions = buildPermissionContract({\n id: '${contractId}',\n name: 'debee',\n description: '',\n requireAllPermissions: false,\n permissions: [\n {\n id: '${perm1Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n },\n {\n id: '${perm2Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n }\n ]\n})\n\nexport default debeePermissions\n`\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SpruceSchemas } from '@sprucelabs/mercury-types';
|
|
2
|
+
export declare type ListPermContractsTargetAndPayload = SpruceSchemas.Mercury.v2020_12_25.ListPermissionContractsEmitTargetAndPayload;
|
|
3
|
+
export default class EventFaker {
|
|
4
|
+
fakeListPermissionContracts(cb?: (targetAndPayload: ListPermContractsTargetAndPayload) => void | SpruceSchemas.Mercury.v2020_12_25.ListPermissionContractsResponsePayload['permissionContracts']): Promise<void>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _spruceTestFixtures = require("@sprucelabs/spruce-test-fixtures");
|
|
13
|
+
var EventFaker = /*#__PURE__*/function () {
|
|
14
|
+
function EventFaker() {
|
|
15
|
+
(0, _classCallCheck2["default"])(this, EventFaker);
|
|
16
|
+
}
|
|
17
|
+
(0, _createClass2["default"])(EventFaker, [{
|
|
18
|
+
key: "fakeListPermissionContracts",
|
|
19
|
+
value: function () {
|
|
20
|
+
var _fakeListPermissionContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(cb) {
|
|
21
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
22
|
+
while (1) {
|
|
23
|
+
switch (_context.prev = _context.next) {
|
|
24
|
+
case 0:
|
|
25
|
+
_context.next = 2;
|
|
26
|
+
return _spruceTestFixtures.eventFaker.on('list-permission-contracts::v2020_12_25', function (targetAndPayload) {
|
|
27
|
+
var _cb;
|
|
28
|
+
return {
|
|
29
|
+
permissionContracts: (_cb = cb === null || cb === void 0 ? void 0 : cb(targetAndPayload)) !== null && _cb !== void 0 ? _cb : []
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
case 2:
|
|
33
|
+
case "end":
|
|
34
|
+
return _context.stop();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}, _callee);
|
|
38
|
+
}));
|
|
39
|
+
function fakeListPermissionContracts(_x) {
|
|
40
|
+
return _fakeListPermissionContracts.apply(this, arguments);
|
|
41
|
+
}
|
|
42
|
+
return fakeListPermissionContracts;
|
|
43
|
+
}()
|
|
44
|
+
}]);
|
|
45
|
+
return EventFaker;
|
|
46
|
+
}();
|
|
47
|
+
exports["default"] = EventFaker;
|
|
48
|
+
//# sourceMappingURL=EventFaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventFaker.js","names":["EventFaker","cb","eventFaker","on","targetAndPayload","permissionContracts"],"sources":["../../../src/__tests__/support/EventFaker.ts"],"sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { eventFaker } from '@sprucelabs/spruce-test-fixtures'\n\nexport type ListPermContractsTargetAndPayload =\n\tSpruceSchemas.Mercury.v2020_12_25.ListPermissionContractsEmitTargetAndPayload\nexport default class EventFaker {\n\tpublic async fakeListPermissionContracts(\n\t\tcb?: (\n\t\t\ttargetAndPayload: ListPermContractsTargetAndPayload\n\t\t) =>\n\t\t\t| void\n\t\t\t| SpruceSchemas.Mercury.v2020_12_25.ListPermissionContractsResponsePayload['permissionContracts']\n\t) {\n\t\tawait eventFaker.on(\n\t\t\t'list-permission-contracts::v2020_12_25',\n\t\t\t(targetAndPayload) => {\n\t\t\t\treturn {\n\t\t\t\t\tpermissionContracts: cb?.(targetAndPayload) ?? [],\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t}\n}\n"],"mappings":";;;;;;;;;;;AACA;AAA6D,IAIxCA,UAAU;EAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,iHAC9B,iBACCC,EAIkG;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAE5FC,8BAAU,CAACC,EAAE,CAClB,wCAAwC,EACxC,UAACC,gBAAgB,EAAK;kBAAA;kBACrB,OAAO;oBACNC,mBAAmB,SAAEJ,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAGG,gBAAgB,CAAC,qCAAI;kBAChD,CAAC;gBACF,CAAC,CACD;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA;AAAA"}
|
|
@@ -2,5 +2,6 @@ import { PermissionContractMap } from '@sprucelabs/mercury-types';
|
|
|
2
2
|
import AbstractStore from '../../../stores/AbstractStore';
|
|
3
3
|
export default class PermissionStore extends AbstractStore {
|
|
4
4
|
name: string;
|
|
5
|
-
loadLocalPermissions
|
|
5
|
+
private loadLocalPermissions;
|
|
6
|
+
fetchContracts(): Promise<PermissionContractMap>;
|
|
6
7
|
}
|
|
@@ -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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
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"));
|
|
@@ -95,6 +96,62 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
95
96
|
}
|
|
96
97
|
return loadLocalPermissions;
|
|
97
98
|
}()
|
|
99
|
+
}, {
|
|
100
|
+
key: "fetchContracts",
|
|
101
|
+
value: function () {
|
|
102
|
+
var _fetchContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
103
|
+
var client, deps, _yield$client$emitAnd, _yield$client$emitAnd2, permissionContracts, map, _iterator2, _step2, result;
|
|
104
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
105
|
+
while (1) {
|
|
106
|
+
switch (_context2.prev = _context2.next) {
|
|
107
|
+
case 0:
|
|
108
|
+
_context2.next = 2;
|
|
109
|
+
return this.connectToApi();
|
|
110
|
+
case 2:
|
|
111
|
+
client = _context2.sent;
|
|
112
|
+
deps = this.Service('dependency').get();
|
|
113
|
+
_context2.next = 6;
|
|
114
|
+
return client.emitAndFlattenResponses('list-permission-contracts::v2020_12_25', {
|
|
115
|
+
target: {
|
|
116
|
+
namespaces: deps.map(function (d) {
|
|
117
|
+
return d.namespace;
|
|
118
|
+
})
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
case 6:
|
|
122
|
+
_yield$client$emitAnd = _context2.sent;
|
|
123
|
+
_yield$client$emitAnd2 = (0, _slicedToArray2["default"])(_yield$client$emitAnd, 1);
|
|
124
|
+
permissionContracts = _yield$client$emitAnd2[0].permissionContracts;
|
|
125
|
+
_context2.next = 11;
|
|
126
|
+
return this.loadLocalPermissions();
|
|
127
|
+
case 11:
|
|
128
|
+
map = _context2.sent;
|
|
129
|
+
_iterator2 = _createForOfIteratorHelper(permissionContracts);
|
|
130
|
+
try {
|
|
131
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
132
|
+
result = _step2.value;
|
|
133
|
+
map[result.contract.id] = result.contract.permissions.map(function (p) {
|
|
134
|
+
return p.id;
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
} catch (err) {
|
|
138
|
+
_iterator2.e(err);
|
|
139
|
+
} finally {
|
|
140
|
+
_iterator2.f();
|
|
141
|
+
}
|
|
142
|
+
return _context2.abrupt("return", map);
|
|
143
|
+
case 15:
|
|
144
|
+
case "end":
|
|
145
|
+
return _context2.stop();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}, _callee2, this);
|
|
149
|
+
}));
|
|
150
|
+
function fetchContracts() {
|
|
151
|
+
return _fetchContracts.apply(this, arguments);
|
|
152
|
+
}
|
|
153
|
+
return fetchContracts;
|
|
154
|
+
}()
|
|
98
155
|
}]);
|
|
99
156
|
return PermissionStore;
|
|
100
157
|
}(_AbstractStore2["default"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionStore.js","names":["PermissionStore","globby","cwd","matches","map","file","Service","importDefault","diskUtil","resolvePath","contract","id","permissions","p","AbstractStore"],"sources":["../../../../src/features/permission/stores/PermissionStore.ts"],"sourcesContent":["import {\n\tPermissionContract,\n\tPermissionContractMap,\n} from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport AbstractStore from '../../../stores/AbstractStore'\n\nexport default class PermissionStore extends AbstractStore {\n\tpublic name = 'permission'\n\n\
|
|
1
|
+
{"version":3,"file":"PermissionStore.js","names":["PermissionStore","globby","cwd","matches","map","file","Service","importDefault","diskUtil","resolvePath","contract","id","permissions","p","connectToApi","client","deps","get","emitAndFlattenResponses","target","namespaces","d","namespace","permissionContracts","loadLocalPermissions","result","AbstractStore"],"sources":["../../../../src/features/permission/stores/PermissionStore.ts"],"sourcesContent":["import {\n\tPermissionContract,\n\tPermissionContractMap,\n} from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport AbstractStore from '../../../stores/AbstractStore'\n\nexport default class PermissionStore extends AbstractStore {\n\tpublic name = 'permission'\n\n\tprivate async loadLocalPermissions() {\n\t\tconst matches = await globby('**/*.permissions.ts', {\n\t\t\tcwd: this.cwd,\n\t\t})\n\n\t\tconst map: PermissionContractMap = {}\n\n\t\tfor (const file of matches) {\n\t\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\t\tdiskUtil.resolvePath(this.cwd, file)\n\t\t\t)) as PermissionContract\n\n\t\t\tmap[contract.id] = contract.permissions.map((p) => p.id)\n\t\t}\n\n\t\treturn map\n\t}\n\n\tpublic async fetchContracts() {\n\t\tconst client = await this.connectToApi()\n\t\tconst deps = this.Service('dependency').get()\n\n\t\tconst [{ permissionContracts }] = await client.emitAndFlattenResponses(\n\t\t\t'list-permission-contracts::v2020_12_25',\n\t\t\t{\n\t\t\t\ttarget: {\n\t\t\t\t\tnamespaces: deps.map((d) => d.namespace),\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tconst map: PermissionContractMap = await this.loadLocalPermissions()\n\n\t\tfor (const result of permissionContracts) {\n\t\t\tmap[result.contract.id] = result.contract.permissions.map((p) => p.id)\n\t\t}\n\n\t\treturn map\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AAAyD;AAAA;AAAA;AAAA;AAAA;AAAA,IAEpCA,eAAe;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,yFACrB,YAAY;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,0GAE1B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACuB,IAAAC,kBAAM,EAAC,qBAAqB,EAAE;kBACnDC,GAAG,EAAE,IAAI,CAACA;gBACX,CAAC,CAAC;cAAA;gBAFIC,OAAO;gBAIPC,GAA0B,GAAG,CAAC,CAAC;gBAAA,uCAElBD,OAAO;gBAAA;gBAAA;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAfE,IAAI;gBAAA;gBAAA,OACU,IAAI,CAACC,OAAO,CAAC,QAAQ,CAAC,CAACC,aAAa,CAC3DC,0BAAQ,CAACC,WAAW,CAAC,IAAI,CAACP,GAAG,EAAEG,IAAI,CAAC,CACpC;cAAA;gBAFKK,QAAQ;gBAIdN,GAAG,CAACM,QAAQ,CAACC,EAAE,CAAC,GAAGD,QAAQ,CAACE,WAAW,CAACR,GAAG,CAAC,UAACS,CAAC;kBAAA,OAAKA,CAAC,CAACF,EAAE;gBAAA,EAAC;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA,iCAGlDP,GAAG;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACV;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACsB,IAAI,CAACU,YAAY,EAAE;cAAA;gBAAlCC,MAAM;gBACNC,IAAI,GAAG,IAAI,CAACV,OAAO,CAAC,YAAY,CAAC,CAACW,GAAG,EAAE;gBAAA;gBAAA,OAELF,MAAM,CAACG,uBAAuB,CACrE,wCAAwC,EACxC;kBACCC,MAAM,EAAE;oBACPC,UAAU,EAAEJ,IAAI,CAACZ,GAAG,CAAC,UAACiB,CAAC;sBAAA,OAAKA,CAAC,CAACC,SAAS;oBAAA;kBACxC;gBACD,CAAC,CACD;cAAA;gBAAA;gBAAA;gBAPQC,mBAAmB,6BAAnBA,mBAAmB;gBAAA;gBAAA,OASa,IAAI,CAACC,oBAAoB,EAAE;cAAA;gBAA9DpB,GAA0B;gBAAA,wCAEXmB,mBAAmB;gBAAA;kBAAxC,uDAA0C;oBAA/BE,MAAM;oBAChBrB,GAAG,CAACqB,MAAM,CAACf,QAAQ,CAACC,EAAE,CAAC,GAAGc,MAAM,CAACf,QAAQ,CAACE,WAAW,CAACR,GAAG,CAAC,UAACS,CAAC;sBAAA,OAAKA,CAAC,CAACF,EAAE;oBAAA,EAAC;kBACvE;gBAAC;kBAAA;gBAAA;kBAAA;gBAAA;gBAAA,kCAEMP,GAAG;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACV;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAzC2CsB,0BAAa;AAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typescript-eslint/parser",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.44.0",
|
|
4
4
|
"description": "An ESLint custom parser which leverages TypeScript ESTree",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"clean": "tsc -b tsconfig.build.json --clean",
|
|
38
38
|
"postclean": "rimraf dist && rimraf _ts3.4 && rimraf coverage",
|
|
39
39
|
"format": "prettier --write \"./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}\" --ignore-path ../../.prettierignore",
|
|
40
|
-
"lint": "
|
|
40
|
+
"lint": "nx lint",
|
|
41
41
|
"test": "jest --coverage",
|
|
42
42
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
43
43
|
},
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@typescript-eslint/scope-manager": "5.
|
|
49
|
-
"@typescript-eslint/types": "5.
|
|
50
|
-
"@typescript-eslint/typescript-estree": "5.
|
|
48
|
+
"@typescript-eslint/scope-manager": "5.44.0",
|
|
49
|
+
"@typescript-eslint/types": "5.44.0",
|
|
50
|
+
"@typescript-eslint/typescript-estree": "5.44.0",
|
|
51
51
|
"debug": "^4.3.4"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
]
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "01159d204154e31acf86162268ff27d95b7fc783"
|
|
75
75
|
}
|
|
@@ -18,15 +18,6 @@ const scope_1 = require("./scope");
|
|
|
18
18
|
const ClassFieldInitializerScope_1 = require("./scope/ClassFieldInitializerScope");
|
|
19
19
|
const ClassStaticBlockScope_1 = require("./scope/ClassStaticBlockScope");
|
|
20
20
|
class ScopeManager {
|
|
21
|
-
constructor(options) {
|
|
22
|
-
_ScopeManager_options.set(this, void 0);
|
|
23
|
-
this.scopes = [];
|
|
24
|
-
this.globalScope = null;
|
|
25
|
-
this.nodeToScope = new WeakMap();
|
|
26
|
-
this.currentScope = null;
|
|
27
|
-
__classPrivateFieldSet(this, _ScopeManager_options, options, "f");
|
|
28
|
-
this.declaredVariables = new WeakMap();
|
|
29
|
-
}
|
|
30
21
|
get variables() {
|
|
31
22
|
const variables = new Set();
|
|
32
23
|
function recurse(scope) {
|
|
@@ -36,6 +27,15 @@ class ScopeManager {
|
|
|
36
27
|
this.scopes.forEach(recurse);
|
|
37
28
|
return Array.from(variables).sort((a, b) => a.$id - b.$id);
|
|
38
29
|
}
|
|
30
|
+
constructor(options) {
|
|
31
|
+
_ScopeManager_options.set(this, void 0);
|
|
32
|
+
this.scopes = [];
|
|
33
|
+
this.globalScope = null;
|
|
34
|
+
this.nodeToScope = new WeakMap();
|
|
35
|
+
this.currentScope = null;
|
|
36
|
+
__classPrivateFieldSet(this, _ScopeManager_options, options, "f");
|
|
37
|
+
this.declaredVariables = new WeakMap();
|
|
38
|
+
}
|
|
39
39
|
isGlobalReturn() {
|
|
40
40
|
return __classPrivateFieldGet(this, _ScopeManager_options, "f").globalReturn === true;
|
|
41
41
|
}
|