@cubist-labs/cubesigner-sdk 0.1.50 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +66 -13
  2. package/dist/src/client.d.ts +434 -7
  3. package/dist/src/client.js +1022 -18
  4. package/dist/src/ethers/index.d.ts +2 -4
  5. package/dist/src/ethers/index.js +11 -9
  6. package/dist/src/fido.d.ts +76 -0
  7. package/dist/src/fido.js +148 -0
  8. package/dist/src/index.d.ts +102 -30
  9. package/dist/src/index.js +126 -72
  10. package/dist/src/key.d.ts +15 -45
  11. package/dist/src/key.js +31 -93
  12. package/dist/src/mfa.d.ts +85 -14
  13. package/dist/src/mfa.js +158 -40
  14. package/dist/src/org.d.ts +237 -123
  15. package/dist/src/org.js +108 -213
  16. package/dist/src/paginator.d.ts +76 -0
  17. package/dist/src/paginator.js +99 -0
  18. package/dist/src/role.d.ts +76 -74
  19. package/dist/src/role.js +79 -136
  20. package/dist/src/schema.d.ts +1672 -520
  21. package/dist/src/schema.js +1 -1
  22. package/dist/src/schema_types.d.ts +103 -0
  23. package/dist/src/schema_types.js +3 -0
  24. package/dist/src/session/session_manager.js +2 -2
  25. package/dist/src/session/session_storage.js +1 -1
  26. package/dist/src/session/signer_session_manager.d.ts +16 -29
  27. package/dist/src/session/signer_session_manager.js +27 -78
  28. package/dist/src/signer_session.d.ts +232 -125
  29. package/dist/src/signer_session.js +149 -250
  30. package/dist/src/util.d.ts +20 -0
  31. package/dist/src/util.js +31 -2
  32. package/package.json +13 -11
  33. package/src/client.ts +1217 -7
  34. package/src/ethers/index.ts +11 -18
  35. package/src/index.ts +149 -101
  36. package/src/key.ts +28 -121
  37. package/src/mfa.ts +202 -0
  38. package/src/org.ts +126 -275
  39. package/src/paginator.ts +122 -0
  40. package/src/role.ts +108 -181
  41. package/src/schema.ts +1673 -520
  42. package/src/schema_types.ts +103 -0
  43. package/src/session/session_manager.ts +2 -2
  44. package/src/session/session_storage.ts +1 -1
  45. package/src/session/signer_session_manager.ts +38 -108
  46. package/src/signer_session.ts +164 -323
  47. package/src/util.ts +41 -0
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _Paginator_listFn, _Paginator_itemsFn, _Paginator_lastFn, _Paginator_opts, _Paginator_last, _Paginator_done;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Paginator = exports.Page = void 0;
16
+ /** Static constructors for `IPage` */
17
+ class Page {
18
+ /**
19
+ * The default is to fetch the entire result set
20
+ * (by repeatedly calling the remote endpoint until all pages are retrieved).
21
+ *
22
+ * @return {PageOpts} Pagination options.
23
+ */
24
+ static default() {
25
+ return {
26
+ all: true,
27
+ };
28
+ }
29
+ }
30
+ exports.Page = Page;
31
+ /**
32
+ * Helper class for fetching paginated results.
33
+ */
34
+ class Paginator {
35
+ /**
36
+ * @param {PageOpts} pageOpts Pagination options
37
+ * @param {ListFn<U>} listFn Calls a remote endpoint that returns a paginated response
38
+ * @param {ItemsFn<U, T>} itemsFn Extracts items from the paginated response
39
+ * @param {LastFn<U>} lastFn Extracts the last evaluated key from the paginated response
40
+ */
41
+ constructor(pageOpts, listFn, itemsFn, lastFn) {
42
+ _Paginator_listFn.set(this, void 0);
43
+ _Paginator_itemsFn.set(this, void 0);
44
+ _Paginator_lastFn.set(this, void 0);
45
+ _Paginator_opts.set(this, void 0);
46
+ _Paginator_last.set(this, void 0);
47
+ _Paginator_done.set(this, void 0);
48
+ __classPrivateFieldSet(this, _Paginator_listFn, listFn, "f");
49
+ __classPrivateFieldSet(this, _Paginator_itemsFn, itemsFn, "f");
50
+ __classPrivateFieldSet(this, _Paginator_lastFn, lastFn, "f");
51
+ __classPrivateFieldSet(this, _Paginator_opts, pageOpts, "f");
52
+ __classPrivateFieldSet(this, _Paginator_last, pageOpts.start, "f");
53
+ __classPrivateFieldSet(this, _Paginator_done, false, "f");
54
+ }
55
+ /**
56
+ * Fetches either a single page or the entire result set, depending on
57
+ * the `all` property of the pagination options.
58
+ *
59
+ * @return {Promise<T[]>} A single page or the entire result set.
60
+ */
61
+ async fetch() {
62
+ return __classPrivateFieldGet(this, _Paginator_opts, "f").all ? await this.fetchAll() : await this.fetchPage();
63
+ }
64
+ /**
65
+ * Fetches a single page of the result set from where it previously left off.
66
+ * Mutates self to remember where it left off.
67
+ *
68
+ * @return {Promise<T[]>} The next page of the result set.
69
+ */
70
+ async fetchPage() {
71
+ if (__classPrivateFieldGet(this, _Paginator_done, "f")) {
72
+ return [];
73
+ }
74
+ const resp = await __classPrivateFieldGet(this, _Paginator_listFn, "f").call(this, {
75
+ "page.size": __classPrivateFieldGet(this, _Paginator_opts, "f").size,
76
+ "page.start": __classPrivateFieldGet(this, _Paginator_last, "f"),
77
+ });
78
+ __classPrivateFieldSet(this, _Paginator_last, __classPrivateFieldGet(this, _Paginator_lastFn, "f").call(this, resp), "f");
79
+ __classPrivateFieldSet(this, _Paginator_done, !__classPrivateFieldGet(this, _Paginator_last, "f"), "f");
80
+ return __classPrivateFieldGet(this, _Paginator_itemsFn, "f").call(this, resp);
81
+ }
82
+ /**
83
+ * Fetches the entire result set starting from where it previously left off
84
+ * by iterating through the pages returned by the remote end.
85
+ *
86
+ * @return {Promise<T[]>} The entire result set.
87
+ */
88
+ async fetchAll() {
89
+ const result = [];
90
+ while (!__classPrivateFieldGet(this, _Paginator_done, "f")) {
91
+ const items = await this.fetchPage();
92
+ result.push(...items);
93
+ }
94
+ return result;
95
+ }
96
+ }
97
+ exports.Paginator = Paginator;
98
+ _Paginator_listFn = new WeakMap(), _Paginator_itemsFn = new WeakMap(), _Paginator_lastFn = new WeakMap(), _Paginator_opts = new WeakMap(), _Paginator_last = new WeakMap(), _Paginator_done = new WeakMap();
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhZ2luYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFhQSxzQ0FBc0M7QUFDdEMsTUFBYSxJQUFJO0lBQ2Y7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsT0FBTztRQUNaLE9BQWlCO1lBQ2YsR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBWkQsb0JBWUM7QUF5QkQ7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFRcEI7Ozs7O09BS0c7SUFDSCxZQUFZLFFBQWtCLEVBQUUsTUFBaUIsRUFBRSxPQUFzQixFQUFFLE1BQWlCO1FBYm5GLG9DQUFtQjtRQUNuQixxQ0FBd0I7UUFDeEIsb0NBQW1CO1FBQzVCLGtDQUFnQjtRQUNoQixrQ0FBaUM7UUFDakMsa0NBQWU7UUFTYix1QkFBQSxJQUFJLHFCQUFXLE1BQU0sTUFBQSxDQUFDO1FBQ3RCLHVCQUFBLElBQUksc0JBQVksT0FBTyxNQUFBLENBQUM7UUFDeEIsdUJBQUEsSUFBSSxxQkFBVyxNQUFNLE1BQUEsQ0FBQztRQUN0Qix1QkFBQSxJQUFJLG1CQUFTLFFBQVEsTUFBQSxDQUFDO1FBQ3RCLHVCQUFBLElBQUksbUJBQVMsUUFBUSxDQUFDLEtBQUssTUFBQSxDQUFDO1FBQzVCLHVCQUFBLElBQUksbUJBQVMsS0FBSyxNQUFBLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLEtBQUs7UUFDVCxPQUFPLHVCQUFBLElBQUksdUJBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsU0FBUztRQUNiLElBQUksdUJBQUEsSUFBSSx1QkFBTSxFQUFFO1lBQ2QsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sdUJBQUEsSUFBSSx5QkFBUSxNQUFaLElBQUksRUFBUztZQUM5QixXQUFXLEVBQUUsdUJBQUEsSUFBSSx1QkFBTSxDQUFDLElBQUk7WUFDNUIsWUFBWSxFQUFFLHVCQUFBLElBQUksdUJBQU07U0FDekIsQ0FBQyxDQUFDO1FBQ0gsdUJBQUEsSUFBSSxtQkFBUyx1QkFBQSxJQUFJLHlCQUFRLE1BQVosSUFBSSxFQUFTLElBQUksQ0FBQyxNQUFBLENBQUM7UUFDaEMsdUJBQUEsSUFBSSxtQkFBUyxDQUFDLHVCQUFBLElBQUksdUJBQU0sTUFBQSxDQUFDO1FBQ3pCLE9BQU8sdUJBQUEsSUFBSSwwQkFBUyxNQUFiLElBQUksRUFBVSxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsdUJBQUEsSUFBSSx1QkFBTSxFQUFFO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUN2QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQW5FRCw4QkFtRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGFnaW5hdGlvbiBvcHRpb25zLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWdlT3B0cyB7XG4gIC8qKiBNYXggbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlLiAqL1xuICBzaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogU3RhcnRpbmcgcG9pbnQgKGkuZS4sICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHByZXZpb3VzIHBhZ2UpLlxuICAgKiBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZy5cbiAgICovXG4gIHN0YXJ0Pzogc3RyaW5nO1xuICAvKiogSXRlcmF0ZSB1bnRpbCByZXRyaWV2aW5nIHRoZSBlbnRpcmUgcmVzdWx0IHNldC4gKi9cbiAgYWxsOiBib29sZWFuO1xufVxuXG4vKiogU3RhdGljIGNvbnN0cnVjdG9ycyBmb3IgYElQYWdlYCAqL1xuZXhwb3J0IGNsYXNzIFBhZ2Uge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgaXMgdG8gZmV0Y2ggdGhlIGVudGlyZSByZXN1bHQgc2V0XG4gICAqIChieSByZXBlYXRlZGx5IGNhbGxpbmcgdGhlIHJlbW90ZSBlbmRwb2ludCB1bnRpbCBhbGwgcGFnZXMgYXJlIHJldHJpZXZlZCkuXG4gICAqXG4gICAqIEByZXR1cm4ge1BhZ2VPcHRzfSBQYWdpbmF0aW9uIG9wdGlvbnMuXG4gICAqL1xuICBzdGF0aWMgZGVmYXVsdCgpOiBQYWdlT3B0cyB7XG4gICAgcmV0dXJuIDxQYWdlT3B0cz57XG4gICAgICBhbGw6IHRydWUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VRdWVyeUFyZ3Mge1xuICAvKipcbiAgICogTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAqXG4gICAqIFRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAqL1xuICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuXG4gICAqXG4gICAqIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSB0aGUgZXhhY3RcbiAgICogdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgKi9cbiAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBMaXN0Rm48VT4gPSAocGFnZVF1ZXJ5QXJnczogUGFnZVF1ZXJ5QXJncykgPT4gUHJvbWlzZTxVPjtcbmV4cG9ydCB0eXBlIEl0ZW1zRm48VSwgVD4gPSAocmVzcDogVSkgPT4gVFtdO1xuZXhwb3J0IHR5cGUgTGFzdEZuPFU+ID0gKHJlc3A6IFUpID0+IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIGZvciBmZXRjaGluZyBwYWdpbmF0ZWQgcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhZ2luYXRvcjxVLCBUPiB7XG4gIHJlYWRvbmx5ICNsaXN0Rm46IExpc3RGbjxVPjtcbiAgcmVhZG9ubHkgI2l0ZW1zRm46IEl0ZW1zRm48VSwgVD47XG4gIHJlYWRvbmx5ICNsYXN0Rm46IExhc3RGbjxVPjtcbiAgI29wdHM6IFBhZ2VPcHRzO1xuICAjbGFzdDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgI2RvbmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UGFnZU9wdHN9IHBhZ2VPcHRzIFBhZ2luYXRpb24gb3B0aW9uc1xuICAgKiBAcGFyYW0ge0xpc3RGbjxVPn0gbGlzdEZuIENhbGxzIGEgcmVtb3RlIGVuZHBvaW50IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCByZXNwb25zZVxuICAgKiBAcGFyYW0ge0l0ZW1zRm48VSwgVD59IGl0ZW1zRm4gRXh0cmFjdHMgaXRlbXMgZnJvbSB0aGUgcGFnaW5hdGVkIHJlc3BvbnNlXG4gICAqIEBwYXJhbSB7TGFzdEZuPFU+fSBsYXN0Rm4gRXh0cmFjdHMgdGhlIGxhc3QgZXZhbHVhdGVkIGtleSBmcm9tIHRoZSBwYWdpbmF0ZWQgcmVzcG9uc2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHBhZ2VPcHRzOiBQYWdlT3B0cywgbGlzdEZuOiBMaXN0Rm48VT4sIGl0ZW1zRm46IEl0ZW1zRm48VSwgVD4sIGxhc3RGbjogTGFzdEZuPFU+KSB7XG4gICAgdGhpcy4jbGlzdEZuID0gbGlzdEZuO1xuICAgIHRoaXMuI2l0ZW1zRm4gPSBpdGVtc0ZuO1xuICAgIHRoaXMuI2xhc3RGbiA9IGxhc3RGbjtcbiAgICB0aGlzLiNvcHRzID0gcGFnZU9wdHM7XG4gICAgdGhpcy4jbGFzdCA9IHBhZ2VPcHRzLnN0YXJ0O1xuICAgIHRoaXMuI2RvbmUgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGVpdGhlciBhIHNpbmdsZSBwYWdlIG9yIHRoZSBlbnRpcmUgcmVzdWx0IHNldCwgZGVwZW5kaW5nIG9uXG4gICAqIHRoZSBgYWxsYCBwcm9wZXJ0eSBvZiB0aGUgcGFnaW5hdGlvbiBvcHRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFRbXT59IEEgc2luZ2xlIHBhZ2Ugb3IgdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgKi9cbiAgYXN5bmMgZmV0Y2goKTogUHJvbWlzZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy4jb3B0cy5hbGwgPyBhd2FpdCB0aGlzLmZldGNoQWxsKCkgOiBhd2FpdCB0aGlzLmZldGNoUGFnZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBzaW5nbGUgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCBmcm9tIHdoZXJlIGl0IHByZXZpb3VzbHkgbGVmdCBvZmYuXG4gICAqIE11dGF0ZXMgc2VsZiB0byByZW1lbWJlciB3aGVyZSBpdCBsZWZ0IG9mZi5cbiAgICpcbiAgICogQHJldHVybiB7UHJvbWlzZTxUW10+fSBUaGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LlxuICAgKi9cbiAgYXN5bmMgZmV0Y2hQYWdlKCk6IFByb21pc2U8VFtdPiB7XG4gICAgaWYgKHRoaXMuI2RvbmUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwID0gYXdhaXQgdGhpcy4jbGlzdEZuKHtcbiAgICAgIFwicGFnZS5zaXplXCI6IHRoaXMuI29wdHMuc2l6ZSxcbiAgICAgIFwicGFnZS5zdGFydFwiOiB0aGlzLiNsYXN0LFxuICAgIH0pO1xuICAgIHRoaXMuI2xhc3QgPSB0aGlzLiNsYXN0Rm4ocmVzcCk7XG4gICAgdGhpcy4jZG9uZSA9ICF0aGlzLiNsYXN0O1xuICAgIHJldHVybiB0aGlzLiNpdGVtc0ZuKHJlc3ApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGVudGlyZSByZXN1bHQgc2V0IHN0YXJ0aW5nIGZyb20gd2hlcmUgaXQgcHJldmlvdXNseSBsZWZ0IG9mZlxuICAgKiBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgcGFnZXMgcmV0dXJuZWQgYnkgdGhlIHJlbW90ZSBlbmQuXG4gICAqXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VFtdPn0gVGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgKi9cbiAgYXN5bmMgZmV0Y2hBbGwoKTogUHJvbWlzZTxUW10+IHtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICB3aGlsZSAoIXRoaXMuI2RvbmUpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgdGhpcy5mZXRjaFBhZ2UoKTtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLml0ZW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
@@ -1,10 +1,10 @@
1
- import { CubeSigner, Key, MfaType, SignerSession, SignerSessionInfo, SignerSessionLifetime, SignerSessionStorage } from ".";
2
- import { components } from "./client";
3
- type KeyWithPoliciesInfo = components["schemas"]["KeyWithPolicies"];
4
- export type RoleInfo = components["schemas"]["RoleInfo"];
5
- /** Restrict transaction receiver.
1
+ import { Key, KeyWithPoliciesInfo, MfaType, PageOpts, RoleInfo, SignerSession, SignerSessionInfo, SignerSessionLifetime, SignerSessionStorage } from ".";
2
+ import { CubeSignerClient } from "./client";
3
+ /**
4
+ * Restrict transaction receiver.
5
+ *
6
6
  * @example { TxReceiver: "0x8c594691c0e592ffa21f153a16ae41db5befcaaa" }
7
- * */
7
+ */
8
8
  export type TxReceiver = {
9
9
  TxReceiver: string;
10
10
  };
@@ -23,18 +23,22 @@ export type TxDepositBase = {
23
23
  kind: DepositContract;
24
24
  };
25
25
  };
26
- /** Restrict transactions to calls to deposit contract with fixed validator (pubkey):
27
- * @example { TxDeposit: { kind: DespositContract.Canonical, validator: { pubkey: "8879...8"} }}
28
- * */
26
+ /**
27
+ * Restrict transactions to calls to deposit contract with fixed validator (pubkey):
28
+ *
29
+ * @example { TxDeposit: { kind: DespositContract.Canonical, validator: { pubkey: "8879...8"} }}
30
+ */
29
31
  export type TxDepositPubkey = {
30
32
  TxDeposit: {
31
33
  kind: DepositContract;
32
34
  pubkey: string;
33
35
  };
34
36
  };
35
- /** Restrict transactions to calls to deposit contract with any validator key in a role:
37
+ /**
38
+ * Restrict transactions to calls to deposit contract with any validator key in a role:
39
+ *
36
40
  * @example { TxDeposit: { kind: DespositContract.Canonical, validator: { role_id: "Role#c63...af"} }}
37
- * */
41
+ */
38
42
  export type TxDepositRole = {
39
43
  TxDeposit: {
40
44
  kind: DepositContract;
@@ -50,7 +54,9 @@ export declare enum OperationKind {
50
54
  Eth2Unstake = "Eth2Unstake",
51
55
  SolanaSign = "SolanaSign"
52
56
  }
53
- /** MFA policy
57
+ /**
58
+ * MFA policy
59
+ *
54
60
  * @example {
55
61
  * {
56
62
  * count: 1,
@@ -58,7 +64,7 @@ export declare enum OperationKind {
58
64
  * allowed_mfa_types: [ "Totp" ],
59
65
  * allowed_approvers: [ "User#123" ],
60
66
  * }
61
- * */
67
+ */
62
68
  export type MfaPolicy = {
63
69
  count?: number;
64
70
  num_auth_factors?: number;
@@ -85,7 +91,9 @@ export type RequireMfa = {
85
91
  /** Allow raw blob signing */
86
92
  export declare const AllowRawBlobSigning: "AllowRawBlobSigning";
87
93
  export type AllowRawBlobSigning = typeof AllowRawBlobSigning;
88
- /** Key policy
94
+ /**
95
+ * Key policy
96
+ *
89
97
  * @example [
90
98
  * {
91
99
  * "TxReceiver": "0x8c594691c0e592ffa21f153a16ae41db5befcaaa"
@@ -106,7 +114,7 @@ export type AllowRawBlobSigning = typeof AllowRawBlobSigning;
106
114
  * }
107
115
  * }
108
116
  * ]
109
- * */
117
+ */
110
118
  export type KeyPolicy = (TxReceiver | TxDeposit | RequireMfa | AllowRawBlobSigning)[];
111
119
  /** A key guarded by a policy. */
112
120
  export declare class KeyWithPolicies {
@@ -115,13 +123,13 @@ export declare class KeyWithPolicies {
115
123
  readonly policy?: KeyPolicy;
116
124
  /** @return {Promise<Key>} The key */
117
125
  getKey(): Promise<Key>;
118
- /** Constructor.
119
- * @param {CubeSigner} cs The CubeSigner instance to use for signing.
120
- * @param {string} orgId The id of the organization to which the key belongs.
126
+ /**
127
+ * Constructor.
128
+ * @param {CubeSignerClient} csc The CubeSigner instance to use for signing.
121
129
  * @param {KeyWithPoliciesInfo} keyWithPolicies The key and its policies
122
130
  * @internal
123
- * */
124
- constructor(cs: CubeSigner, orgId: string, keyWithPolicies: KeyWithPoliciesInfo);
131
+ */
132
+ constructor(csc: CubeSignerClient, keyWithPolicies: KeyWithPoliciesInfo);
125
133
  }
126
134
  /** Roles. */
127
135
  export declare class Role {
@@ -141,96 +149,90 @@ export declare class Role {
141
149
  enable(): Promise<void>;
142
150
  /** Disable the role. */
143
151
  disable(): Promise<void>;
144
- /** The list of users with access to the role.
152
+ /**
153
+ * The list of all users with access to the role.
145
154
  * @example [
146
155
  * "User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f",
147
156
  * "User#5593c25b-52e2-4fb5-b39b-96d41d681d82"
148
157
  * ]
149
- * */
150
- users(): Promise<string[]>;
151
- /** Add a user to the role.
152
- * Adds an existing user to an existing role.
158
+ *
159
+ * @param {PageOpts} page Optional pagination options; by default, retrieves all users.
160
+ */
161
+ users(page?: PageOpts): Promise<string[]>;
162
+ /**
163
+ * Add an existing user to an existing role.
164
+ *
153
165
  * @param {string} userId The user-id of the user to add to the role.
154
- * */
166
+ */
155
167
  addUser(userId: string): Promise<void>;
156
- /** The list of keys in the role.
168
+ /**
169
+ * The list of keys in the role.
157
170
  * @example [
158
171
  * {
159
172
  * id: "Key#bfe3eccb-731e-430d-b1e5-ac1363e6b06b",
160
173
  * policy: { TxReceiver: "0x8c594691c0e592ffa21f153a16ae41db5befcaaa" }
161
174
  * },
162
175
  * ]
163
- * */
164
- keys(): Promise<KeyWithPolicies[]>;
165
- /** Add keys to the role.
166
- * Adds a list of existing keys to an existing role.
176
+ *
177
+ * @param {PageOpts} page Optional pagination options; by default, retrieves all keys in this role.
178
+ */
179
+ keys(page?: PageOpts): Promise<KeyWithPolicies[]>;
180
+ /**
181
+ * Add a list of existing keys to an existing role.
182
+ *
167
183
  * @param {Key[]} keys The list of keys to add to the role.
168
184
  * @param {KeyPolicy?} policy The optional policy to apply to each key.
169
- * */
185
+ */
170
186
  addKeys(keys: Key[], policy?: KeyPolicy): Promise<void>;
171
- /** Add a key to the role.
172
- * Adds an existing key to an existing role.
187
+ /**
188
+ * Add an existing key to an existing role.
189
+ *
173
190
  * @param {Key} key The key to add to the role.
174
191
  * @param {KeyPolicy?} policy The optional policy to apply to the key.
175
- * */
192
+ */
176
193
  addKey(key: Key, policy?: KeyPolicy): Promise<void>;
177
- /** Remove key from the role.
178
- * Removes an existing key from an existing role.
194
+ /**
195
+ * Remove an existing key from an existing role.
196
+ *
179
197
  * @param {Key} key The key to remove from the role.
180
- * */
198
+ */
181
199
  removeKey(key: Key): Promise<void>;
182
200
  /**
183
201
  * Create a new session for this role.
184
202
  * @param {SignerSessionStorage} storage The session storage to use
185
203
  * @param {string} purpose Descriptive purpose.
186
- * @param {SignerSessionLifetime} ttl Optional session lifetimes.
204
+ * @param {SignerSessionLifetime} lifetimes Optional session lifetimes.
205
+ * @param {string[]} scopes Session scopes. Only `sign:*` scopes are allowed.
187
206
  * @return {Promise<SignerSession>} New signer session.
188
207
  */
189
- createSession(storage: SignerSessionStorage, purpose: string, ttl?: SignerSessionLifetime): Promise<SignerSession>;
208
+ createSession(storage: SignerSessionStorage, purpose: string, lifetimes?: SignerSessionLifetime, scopes?: string[]): Promise<SignerSession>;
190
209
  /**
191
210
  * List all signer sessions for this role. Returned objects can be used to
192
211
  * revoke individual sessions, but they cannot be used for authentication.
212
+ *
213
+ * @param {PageOpts} page Optional pagination options; by default, retrieves all sessions.
193
214
  * @return {Promise<SignerSessionInfo[]>} Signer sessions for this role.
194
215
  */
195
- sessions(): Promise<SignerSessionInfo[]>;
196
- /** Create a new role.
197
- * @param {CubeSigner} cs The CubeSigner instance to use for signing.
198
- * @param {string} orgId The id of the organization to which the role belongs.
216
+ sessions(page?: PageOpts): Promise<SignerSessionInfo[]>;
217
+ /**
218
+ * Constructor.
219
+ * @param {CubeSignerClient} csc The CubeSigner instance to use for signing.
199
220
  * @param {RoleInfo} data The JSON response from the API server.
200
221
  * @internal
201
- * */
202
- constructor(cs: CubeSigner, orgId: string, data: RoleInfo);
203
- /** Update the role.
222
+ */
223
+ constructor(csc: CubeSignerClient, data: RoleInfo);
224
+ /**
225
+ * Update the role.
226
+ *
204
227
  * @param {UpdateRoleRequest} request The JSON request to send to the API server.
205
- * */
228
+ * @return {Promise<RoleInfo>} The updated role information.
229
+ */
206
230
  private update;
207
- /** Create new role.
208
- * @param {CubeSigner} cs The CubeSigner instance to use for signing.
209
- * @param {string} orgId The id of the organization to which the role belongs.
210
- * @param {string?} name The optional name of the role.
211
- * @return {Role} The new role.
212
- * @internal
213
- * */
214
- static createRole(cs: CubeSigner, orgId: string, name?: string): Promise<Role>;
215
- /** Get a role by id.
216
- * @param {CubeSigner} cs The CubeSigner instance to use for signing.
217
- * @param {string} orgId The id of the organization to which the role belongs.
218
- * @param {string} roleId The id of the role to get.
219
- * @return {Role} The role.
220
- * @internal
221
- * */
222
- static getRole(cs: CubeSigner, orgId: string, roleId: string): Promise<Role>;
223
- /** Fetches the role information.
231
+ /**
232
+ * Fetches the role information.
233
+ *
224
234
  * @return {RoleInfo} The role information.
225
235
  * @internal
226
- * */
236
+ */
227
237
  private fetch;
228
- /** Delete role.
229
- * @param {CubeSigner} cs The CubeSigner instance to use for signing.
230
- * @param {string} orgId The id of the organization to which the role belongs.
231
- * @param {string} roleId The id of the role to delete.
232
- * @internal
233
- * */
234
- private static deleteRole;
235
238
  }
236
- export {};