@sprucelabs/spruce-test-fixtures 52.5.73 → 52.6.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.
@@ -18,6 +18,8 @@ export default class CheckingPermissionsTest extends AbstractSpruceFixtureTest {
18
18
  protected static canHandleMulplePermissionsWithDifferentContracts(): Promise<void>;
19
19
  protected static sameAuthorizerAsViews(): Promise<void>;
20
20
  protected static sameAuthenticatorAsViews(): Promise<void>;
21
+ protected static canSpyOnSavePermissions(): Promise<void>;
22
+ private static assertSpysOnOptionsWhenSaving;
21
23
  private static assertPermNotFound;
22
24
  private static changeContractId;
23
25
  private static assertThrowsFakeError;
@@ -25,4 +27,5 @@ export default class CheckingPermissionsTest extends AbstractSpruceFixtureTest {
25
27
  private static can;
26
28
  private static setupEmptyViewFixture;
27
29
  private static get instance();
30
+ private static get auth();
28
31
  }
@@ -70,7 +70,7 @@ class CheckingPermissionsTest extends AbstractSpruceFixtureTest_1.default {
70
70
  }
71
71
  static async fixtureAndLoadOptionsShareAuthorizer() {
72
72
  this.setupEmptyViewFixture();
73
- const auth = this.permissions.getAuthorizer();
73
+ const auth = this.auth;
74
74
  const router = this.views.getRouter();
75
75
  test_utils_1.assert.isEqual(auth, router.buildLoadOptions().authorizer);
76
76
  }
@@ -114,6 +114,32 @@ class CheckingPermissionsTest extends AbstractSpruceFixtureTest_1.default {
114
114
  const auth2 = this.permissions.getAuthenticator();
115
115
  test_utils_1.assert.isEqual(auth1, auth2);
116
116
  }
117
+ static async canSpyOnSavePermissions() {
118
+ await this.assertSpysOnOptionsWhenSaving({
119
+ contractId: 'events-contract',
120
+ target: {},
121
+ permissions: [],
122
+ });
123
+ await this.assertSpysOnOptionsWhenSaving({
124
+ contractId: 'feed-contract',
125
+ target: {
126
+ locationId: (0, test_utils_2.generateId)(),
127
+ personId: (0, test_utils_2.generateId)(),
128
+ },
129
+ permissions: [
130
+ {
131
+ id: 'can-see-other-persons-feed',
132
+ can: {
133
+ clockedIn: true,
134
+ },
135
+ },
136
+ ],
137
+ });
138
+ }
139
+ static async assertSpysOnOptionsWhenSaving(options) {
140
+ await this.auth.savePermissions(options);
141
+ test_utils_1.assert.isEqualDeep(this.auth.getLastSavePermissionsOptions(), options);
142
+ }
117
143
  static async assertPermNotFound(checkIds, id) {
118
144
  await test_utils_1.assert.doesThrowAsync(() => this.can(checkIds), id);
119
145
  }
@@ -143,6 +169,9 @@ class CheckingPermissionsTest extends AbstractSpruceFixtureTest_1.default {
143
169
  static get instance() {
144
170
  return this.permissions.getAuthorizer();
145
171
  }
172
+ static get auth() {
173
+ return this.permissions.getAuthorizer();
174
+ }
146
175
  }
147
176
  __decorate([
148
177
  (0, test_utils_1.test)()
@@ -195,4 +224,7 @@ __decorate([
195
224
  __decorate([
196
225
  (0, test_utils_1.test)()
197
226
  ], CheckingPermissionsTest, "sameAuthenticatorAsViews", null);
227
+ __decorate([
228
+ (0, test_utils_1.test)()
229
+ ], CheckingPermissionsTest, "canSpyOnSavePermissions", null);
198
230
  exports.default = CheckingPermissionsTest;
@@ -18,6 +18,8 @@ export default class CheckingPermissionsTest extends AbstractSpruceFixtureTest {
18
18
  protected static canHandleMulplePermissionsWithDifferentContracts(): Promise<void>;
19
19
  protected static sameAuthorizerAsViews(): Promise<void>;
20
20
  protected static sameAuthenticatorAsViews(): Promise<void>;
21
+ protected static canSpyOnSavePermissions(): Promise<void>;
22
+ private static assertSpysOnOptionsWhenSaving;
21
23
  private static assertPermNotFound;
22
24
  private static changeContractId;
23
25
  private static assertThrowsFakeError;
@@ -25,4 +27,5 @@ export default class CheckingPermissionsTest extends AbstractSpruceFixtureTest {
25
27
  private static can;
26
28
  private static setupEmptyViewFixture;
27
29
  private static get instance();
30
+ private static get auth();
28
31
  }
@@ -100,7 +100,7 @@ export default class CheckingPermissionsTest extends AbstractSpruceFixtureTest {
100
100
  static fixtureAndLoadOptionsShareAuthorizer() {
101
101
  return __awaiter(this, void 0, void 0, function* () {
102
102
  this.setupEmptyViewFixture();
103
- const auth = this.permissions.getAuthorizer();
103
+ const auth = this.auth;
104
104
  const router = this.views.getRouter();
105
105
  assert.isEqual(auth, router.buildLoadOptions().authorizer);
106
106
  });
@@ -155,6 +155,36 @@ export default class CheckingPermissionsTest extends AbstractSpruceFixtureTest {
155
155
  assert.isEqual(auth1, auth2);
156
156
  });
157
157
  }
158
+ static canSpyOnSavePermissions() {
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ yield this.assertSpysOnOptionsWhenSaving({
161
+ contractId: 'events-contract',
162
+ target: {},
163
+ permissions: [],
164
+ });
165
+ yield this.assertSpysOnOptionsWhenSaving({
166
+ contractId: 'feed-contract',
167
+ target: {
168
+ locationId: generateId(),
169
+ personId: generateId(),
170
+ },
171
+ permissions: [
172
+ {
173
+ id: 'can-see-other-persons-feed',
174
+ can: {
175
+ clockedIn: true,
176
+ },
177
+ },
178
+ ],
179
+ });
180
+ });
181
+ }
182
+ static assertSpysOnOptionsWhenSaving(options) {
183
+ return __awaiter(this, void 0, void 0, function* () {
184
+ yield this.auth.savePermissions(options);
185
+ assert.isEqualDeep(this.auth.getLastSavePermissionsOptions(), options);
186
+ });
187
+ }
158
188
  static assertPermNotFound(checkIds, id) {
159
189
  return __awaiter(this, void 0, void 0, function* () {
160
190
  yield assert.doesThrowAsync(() => this.can(checkIds), id);
@@ -188,6 +218,9 @@ export default class CheckingPermissionsTest extends AbstractSpruceFixtureTest {
188
218
  static get instance() {
189
219
  return this.permissions.getAuthorizer();
190
220
  }
221
+ static get auth() {
222
+ return this.permissions.getAuthorizer();
223
+ }
191
224
  }
192
225
  __decorate([
193
226
  test()
@@ -240,3 +273,6 @@ __decorate([
240
273
  __decorate([
241
274
  test()
242
275
  ], CheckingPermissionsTest, "sameAuthenticatorAsViews", null);
276
+ __decorate([
277
+ test()
278
+ ], CheckingPermissionsTest, "canSpyOnSavePermissions", null);
@@ -1,9 +1,12 @@
1
- import { Authorizer, AuthorizerCanOptions } from '@sprucelabs/heartwood-view-controllers';
1
+ import { Authorizer, AuthorizerCanOptions, SavePermissionsOptions } from '@sprucelabs/heartwood-view-controllers';
2
2
  import { PermissionContractId, PermissionId } from '@sprucelabs/mercury-types';
3
3
  export default class FakeAuthorizer implements Authorizer {
4
4
  private fakedContracts;
5
+ private lastSavePermissionOptions?;
5
6
  fakePermissions<ContractId extends PermissionContractId = PermissionContractId>(options: FakeOptions<ContractId>): void;
6
7
  can<ContractId extends PermissionContractId, Ids extends PermissionId<ContractId>>(options: AuthorizerCanOptions<ContractId, Ids>): Promise<Record<Ids, boolean>>;
8
+ savePermissions<ContractId extends PermissionContractId, Ids extends PermissionId<ContractId>>(options: SavePermissionsOptions<ContractId, Ids>): Promise<void>;
9
+ getLastSavePermissionsOptions(): SavePermissionsOptions<any, any> | undefined;
7
10
  private assertValidPermission;
8
11
  private assertValidContractId;
9
12
  }
@@ -31,6 +31,14 @@ export default class FakeAuthorizer {
31
31
  return results;
32
32
  });
33
33
  }
34
+ savePermissions(options) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ this.lastSavePermissionOptions = options;
37
+ });
38
+ }
39
+ getLastSavePermissionsOptions() {
40
+ return this.lastSavePermissionOptions;
41
+ }
34
42
  assertValidPermission(fakedPerm, actual, faked) {
35
43
  assert.isTruthy(fakedPerm, `Oops! I could not find the permissionId '${actual}'! Make sure you faked it with 'this.views.getAuthorizer().fakePermissions(...)'
36
44
 
@@ -2,9 +2,9 @@
2
2
  * @deprecated Name change: eventMocker -> eventFaker
3
3
  */
4
4
  declare const eventMocker: {
5
- makeEventThrow(fqen: "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25", error?: any): Promise<void>;
6
- handleReactiveEvent(fqen: "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25"): Promise<void>;
7
- on<E extends "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25">(fqen: E, cb: (targetAndPayload: import("@sprucelabs/schema").SchemaValues<{
5
+ makeEventThrow(fqen: "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "save-permissions::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25", error?: any): Promise<void>;
6
+ handleReactiveEvent(fqen: "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "save-permissions::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25"): Promise<void>;
7
+ on<E extends "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "save-permissions::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25">(fqen: E, cb: (targetAndPayload: import("@sprucelabs/schema").SchemaValues<{
8
8
  "add-role::v2020_12_25": {
9
9
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.AddRoleEmitTargetAndPayloadSchema;
10
10
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.AddRoleResponsePayloadSchema;
@@ -277,6 +277,10 @@ declare const eventMocker: {
277
277
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
278
278
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
279
279
  };
280
+ "save-permissions::v2020_12_25": {
281
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
282
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
283
+ };
280
284
  "scramble-account::v2020_12_25": {
281
285
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
282
286
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -617,6 +621,10 @@ declare const eventMocker: {
617
621
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
618
622
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
619
623
  };
624
+ "save-permissions::v2020_12_25": {
625
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
626
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
627
+ };
620
628
  "scramble-account::v2020_12_25": {
621
629
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
622
630
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -957,6 +965,10 @@ declare const eventMocker: {
957
965
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
958
966
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
959
967
  };
968
+ "save-permissions::v2020_12_25": {
969
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
970
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
971
+ };
960
972
  "scramble-account::v2020_12_25": {
961
973
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
962
974
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -1297,6 +1309,10 @@ declare const eventMocker: {
1297
1309
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
1298
1310
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
1299
1311
  };
1312
+ "save-permissions::v2020_12_25": {
1313
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
1314
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
1315
+ };
1300
1316
  "scramble-account::v2020_12_25": {
1301
1317
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
1302
1318
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -1637,6 +1653,10 @@ declare const eventMocker: {
1637
1653
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
1638
1654
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
1639
1655
  };
1656
+ "save-permissions::v2020_12_25": {
1657
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
1658
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
1659
+ };
1640
1660
  "scramble-account::v2020_12_25": {
1641
1661
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
1642
1662
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -1977,6 +1997,10 @@ declare const eventMocker: {
1977
1997
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
1978
1998
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
1979
1999
  };
2000
+ "save-permissions::v2020_12_25": {
2001
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
2002
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
2003
+ };
1980
2004
  "scramble-account::v2020_12_25": {
1981
2005
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
1982
2006
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -2317,6 +2341,10 @@ declare const eventMocker: {
2317
2341
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
2318
2342
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
2319
2343
  };
2344
+ "save-permissions::v2020_12_25": {
2345
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
2346
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
2347
+ };
2320
2348
  "scramble-account::v2020_12_25": {
2321
2349
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
2322
2350
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -2657,6 +2685,10 @@ declare const eventMocker: {
2657
2685
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
2658
2686
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
2659
2687
  };
2688
+ "save-permissions::v2020_12_25": {
2689
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
2690
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
2691
+ };
2660
2692
  "scramble-account::v2020_12_25": {
2661
2693
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
2662
2694
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -2997,6 +3029,10 @@ declare const eventMocker: {
2997
3029
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
2998
3030
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
2999
3031
  };
3032
+ "save-permissions::v2020_12_25": {
3033
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
3034
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
3035
+ };
3000
3036
  "scramble-account::v2020_12_25": {
3001
3037
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
3002
3038
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -3337,6 +3373,10 @@ declare const eventMocker: {
3337
3373
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
3338
3374
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
3339
3375
  };
3376
+ "save-permissions::v2020_12_25": {
3377
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
3378
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
3379
+ };
3340
3380
  "scramble-account::v2020_12_25": {
3341
3381
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
3342
3382
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -1,9 +1,12 @@
1
- import { Authorizer, AuthorizerCanOptions } from '@sprucelabs/heartwood-view-controllers';
1
+ import { Authorizer, AuthorizerCanOptions, SavePermissionsOptions } from '@sprucelabs/heartwood-view-controllers';
2
2
  import { PermissionContractId, PermissionId } from '@sprucelabs/mercury-types';
3
3
  export default class FakeAuthorizer implements Authorizer {
4
4
  private fakedContracts;
5
+ private lastSavePermissionOptions?;
5
6
  fakePermissions<ContractId extends PermissionContractId = PermissionContractId>(options: FakeOptions<ContractId>): void;
6
7
  can<ContractId extends PermissionContractId, Ids extends PermissionId<ContractId>>(options: AuthorizerCanOptions<ContractId, Ids>): Promise<Record<Ids, boolean>>;
8
+ savePermissions<ContractId extends PermissionContractId, Ids extends PermissionId<ContractId>>(options: SavePermissionsOptions<ContractId, Ids>): Promise<void>;
9
+ getLastSavePermissionsOptions(): SavePermissionsOptions<any, any> | undefined;
7
10
  private assertValidPermission;
8
11
  private assertValidContractId;
9
12
  }
@@ -22,6 +22,12 @@ class FakeAuthorizer {
22
22
  }
23
23
  return results;
24
24
  }
25
+ async savePermissions(options) {
26
+ this.lastSavePermissionOptions = options;
27
+ }
28
+ getLastSavePermissionsOptions() {
29
+ return this.lastSavePermissionOptions;
30
+ }
25
31
  assertValidPermission(fakedPerm, actual, faked) {
26
32
  test_utils_1.assert.isTruthy(fakedPerm, `Oops! I could not find the permissionId '${actual}'! Make sure you faked it with 'this.views.getAuthorizer().fakePermissions(...)'
27
33
 
@@ -2,9 +2,9 @@
2
2
  * @deprecated Name change: eventMocker -> eventFaker
3
3
  */
4
4
  declare const eventMocker: {
5
- makeEventThrow(fqen: "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25", error?: any): Promise<void>;
6
- handleReactiveEvent(fqen: "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25"): Promise<void>;
7
- on<E extends "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25">(fqen: E, cb: (targetAndPayload: import("@sprucelabs/schema").SchemaValues<{
5
+ makeEventThrow(fqen: "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "save-permissions::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25", error?: any): Promise<void>;
6
+ handleReactiveEvent(fqen: "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "save-permissions::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25"): Promise<void>;
7
+ on<E extends "add-role::v2020_12_25" | "authenticate::v2020_12_25" | "can-listen::v2020_12_25" | "confirm-pin::v2020_12_25" | "create-location::v2020_12_25" | "create-organization::v2020_12_25" | "create-person::v2020_12_25" | "create-role::v2020_12_25" | "delete-location::v2020_12_25" | "delete-organization::v2020_12_25" | "delete-role::v2020_12_25" | "did-install::v2020_12_25" | "did-join-organization::v2020_12_25" | "did-leave-organization::v2020_12_25" | "did-message::v2020_12_25" | "did-signup::v2020_12_25" | "did-update-feed::v2020_12_25" | "did-update-person::v2020_12_25" | "does-honor-permission-contract::v2020_12_25" | "get-anonymous-person::v2020_12_25" | "get-conversation-topics::v2020_12_25" | "get-event-contracts::v2020_12_25" | "get-feed::v2020_12_25" | "get-location::v2020_12_25" | "get-organization::v2020_12_25" | "get-permission-contract::v2020_12_25" | "get-person::v2020_12_25" | "get-resolved-permissions-contract::v2020_12_25" | "get-role::v2020_12_25" | "get-skill::v2020_12_25" | "health::v2020_12_25" | "install-skill::v2020_12_25" | "is-skill-installed::v2020_12_25" | "list-installed-skills::v2020_12_25" | "list-locations::v2020_12_25" | "list-organizations::v2020_12_25" | "list-people::v2020_12_25" | "list-permission-contracts::v2020_12_25" | "list-roles::v2020_12_25" | "list-skills::v2020_12_25" | "logout::v2020_12_25" | "register-conversation-topics::v2020_12_25" | "register-events::v2020_12_25" | "register-listeners::v2020_12_25" | "register-proxy-token::v2020_12_25" | "register-skill::v2020_12_25" | "remove-role::v2020_12_25" | "request-pin::v2020_12_25" | "save-permissions::v2020_12_25" | "scramble-account::v2020_12_25" | "send-message::v2020_12_25" | "submit-error-message-feedback::v2020_12_25" | "sync-event-contracts::v2020_12_25" | "sync-permission-contracts::v2020_12_25" | "uninstall-skill::v2020_12_25" | "unregister-conversation-topics::v2020_12_25" | "unregister-events::v2020_12_25" | "unregister-listeners::v2020_12_25" | "unregister-skill::v2020_12_25" | "update-location::v2020_12_25" | "update-organization::v2020_12_25" | "update-person::v2020_12_25" | "update-role::v2020_12_25" | "upsert-permission-contract::v2020_12_25" | "vote-for-feature::v2020_12_25" | "whoami::v2020_12_25">(fqen: E, cb: (targetAndPayload: import("@sprucelabs/schema").SchemaValues<{
8
8
  "add-role::v2020_12_25": {
9
9
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.AddRoleEmitTargetAndPayloadSchema;
10
10
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.AddRoleResponsePayloadSchema;
@@ -277,6 +277,10 @@ declare const eventMocker: {
277
277
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
278
278
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
279
279
  };
280
+ "save-permissions::v2020_12_25": {
281
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
282
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
283
+ };
280
284
  "scramble-account::v2020_12_25": {
281
285
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
282
286
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -617,6 +621,10 @@ declare const eventMocker: {
617
621
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
618
622
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
619
623
  };
624
+ "save-permissions::v2020_12_25": {
625
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
626
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
627
+ };
620
628
  "scramble-account::v2020_12_25": {
621
629
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
622
630
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -957,6 +965,10 @@ declare const eventMocker: {
957
965
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
958
966
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
959
967
  };
968
+ "save-permissions::v2020_12_25": {
969
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
970
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
971
+ };
960
972
  "scramble-account::v2020_12_25": {
961
973
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
962
974
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -1297,6 +1309,10 @@ declare const eventMocker: {
1297
1309
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
1298
1310
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
1299
1311
  };
1312
+ "save-permissions::v2020_12_25": {
1313
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
1314
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
1315
+ };
1300
1316
  "scramble-account::v2020_12_25": {
1301
1317
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
1302
1318
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -1637,6 +1653,10 @@ declare const eventMocker: {
1637
1653
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
1638
1654
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
1639
1655
  };
1656
+ "save-permissions::v2020_12_25": {
1657
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
1658
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
1659
+ };
1640
1660
  "scramble-account::v2020_12_25": {
1641
1661
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
1642
1662
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -1977,6 +1997,10 @@ declare const eventMocker: {
1977
1997
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
1978
1998
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
1979
1999
  };
2000
+ "save-permissions::v2020_12_25": {
2001
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
2002
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
2003
+ };
1980
2004
  "scramble-account::v2020_12_25": {
1981
2005
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
1982
2006
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -2317,6 +2341,10 @@ declare const eventMocker: {
2317
2341
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
2318
2342
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
2319
2343
  };
2344
+ "save-permissions::v2020_12_25": {
2345
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
2346
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
2347
+ };
2320
2348
  "scramble-account::v2020_12_25": {
2321
2349
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
2322
2350
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -2657,6 +2685,10 @@ declare const eventMocker: {
2657
2685
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
2658
2686
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
2659
2687
  };
2688
+ "save-permissions::v2020_12_25": {
2689
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
2690
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
2691
+ };
2660
2692
  "scramble-account::v2020_12_25": {
2661
2693
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
2662
2694
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -2997,6 +3029,10 @@ declare const eventMocker: {
2997
3029
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
2998
3030
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
2999
3031
  };
3032
+ "save-permissions::v2020_12_25": {
3033
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
3034
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
3035
+ };
3000
3036
  "scramble-account::v2020_12_25": {
3001
3037
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
3002
3038
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
@@ -3337,6 +3373,10 @@ declare const eventMocker: {
3337
3373
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinEmitTargetAndPayloadSchema;
3338
3374
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.RequestPinResponsePayloadSchema;
3339
3375
  };
3376
+ "save-permissions::v2020_12_25": {
3377
+ emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsEmitTargetAndPayloadSchema;
3378
+ responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.SavePermissionsResponsePayloadSchema;
3379
+ };
3340
3380
  "scramble-account::v2020_12_25": {
3341
3381
  emitPayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountEmitTargetAndPayloadSchema;
3342
3382
  responsePayloadSchema: import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ScrambleAccountResponsePayloadSchema;
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "@sprucelabs/spruce-test-fixtures"
14
14
  ]
15
15
  },
16
- "version": "52.5.73",
16
+ "version": "52.6.0",
17
17
  "files": [
18
18
  "build/**/*",
19
19
  "!build/__tests__",
@@ -62,30 +62,30 @@
62
62
  "lint.tsc": "tsc -p . --noEmit"
63
63
  },
64
64
  "dependencies": {
65
- "@sprucelabs/data-stores": "^19.1.53",
66
- "@sprucelabs/error": "^5.0.574",
67
- "@sprucelabs/heartwood-view-controllers": "^99.3.3",
68
- "@sprucelabs/mercury-client": "^35.0.124",
69
- "@sprucelabs/mercury-core-events": "^15.0.238",
70
- "@sprucelabs/mercury-event-emitter": "^35.0.124",
71
- "@sprucelabs/schema": "^28.5.117",
72
- "@sprucelabs/spruce-core-schemas": "^35.1.154",
73
- "@sprucelabs/spruce-event-utils": "^30.0.104",
74
- "@sprucelabs/spruce-permission-utils": "^1.1.128",
75
- "@sprucelabs/spruce-skill-booter": "^52.5.73",
76
- "@sprucelabs/spruce-skill-utils": "^28.1.67",
77
- "@sprucelabs/test-utils": "^3.2.106",
65
+ "@sprucelabs/data-stores": "^19.1.55",
66
+ "@sprucelabs/error": "^5.0.576",
67
+ "@sprucelabs/heartwood-view-controllers": "^100.0.3",
68
+ "@sprucelabs/mercury-client": "^35.0.126",
69
+ "@sprucelabs/mercury-core-events": "^15.1.3",
70
+ "@sprucelabs/mercury-event-emitter": "^35.0.126",
71
+ "@sprucelabs/schema": "^28.5.119",
72
+ "@sprucelabs/spruce-core-schemas": "^35.1.156",
73
+ "@sprucelabs/spruce-event-utils": "^30.0.106",
74
+ "@sprucelabs/spruce-permission-utils": "^1.2.0",
75
+ "@sprucelabs/spruce-skill-booter": "^52.6.0",
76
+ "@sprucelabs/spruce-skill-utils": "^28.1.69",
77
+ "@sprucelabs/test-utils": "^3.2.108",
78
78
  "dotenv": "^16.0.3",
79
79
  "unique-names-generator": "^4.7.1"
80
80
  },
81
81
  "devDependencies": {
82
- "@sprucelabs/esm-postbuild": "^2.0.79",
82
+ "@sprucelabs/esm-postbuild": "^2.0.80",
83
83
  "@sprucelabs/jest-json-reporter": "^6.0.554",
84
84
  "@sprucelabs/jest-sheets-reporter": "^2.0.21",
85
- "@sprucelabs/mercury-types": "^38.0.91",
85
+ "@sprucelabs/mercury-types": "^38.0.93",
86
86
  "@sprucelabs/resolve-path-aliases": "^1.1.170",
87
87
  "@sprucelabs/semantic-release": "^4.0.8",
88
- "@sprucelabs/test": "^7.7.415",
88
+ "@sprucelabs/test": "^7.7.416",
89
89
  "@types/node": "17.0.5",
90
90
  "calendar-utils": "^0.10.4",
91
91
  "chokidar-cli": "^3.0.0",
@@ -98,7 +98,7 @@
98
98
  "ts-node": "^10.9.1",
99
99
  "tsc-watch": "^6.0.0",
100
100
  "tsconfig-paths": "^4.1.2",
101
- "typescript": "^4.9.4"
101
+ "typescript": "^4.9.5"
102
102
  },
103
103
  "jest": {
104
104
  "maxWorkers": 2,
@@ -132,5 +132,5 @@
132
132
  ]
133
133
  ]
134
134
  },
135
- "gitHead": "84972275b9b0a98c3b1a75b7239d427965387db4"
135
+ "gitHead": "ce5d87360a614dd6efa9c2fec263ac4c1af0c094"
136
136
  }