@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.
- package/README.md +66 -13
- package/dist/src/client.d.ts +434 -7
- package/dist/src/client.js +1022 -18
- package/dist/src/ethers/index.d.ts +2 -4
- package/dist/src/ethers/index.js +11 -9
- package/dist/src/fido.d.ts +76 -0
- package/dist/src/fido.js +148 -0
- package/dist/src/index.d.ts +102 -30
- package/dist/src/index.js +126 -72
- package/dist/src/key.d.ts +15 -45
- package/dist/src/key.js +31 -93
- package/dist/src/mfa.d.ts +85 -14
- package/dist/src/mfa.js +158 -40
- package/dist/src/org.d.ts +237 -123
- package/dist/src/org.js +108 -213
- package/dist/src/paginator.d.ts +76 -0
- package/dist/src/paginator.js +99 -0
- package/dist/src/role.d.ts +76 -74
- package/dist/src/role.js +79 -136
- package/dist/src/schema.d.ts +1672 -520
- package/dist/src/schema.js +1 -1
- package/dist/src/schema_types.d.ts +103 -0
- package/dist/src/schema_types.js +3 -0
- package/dist/src/session/session_manager.js +2 -2
- package/dist/src/session/session_storage.js +1 -1
- package/dist/src/session/signer_session_manager.d.ts +16 -29
- package/dist/src/session/signer_session_manager.js +27 -78
- package/dist/src/signer_session.d.ts +232 -125
- package/dist/src/signer_session.js +149 -250
- package/dist/src/util.d.ts +20 -0
- package/dist/src/util.js +31 -2
- package/package.json +13 -11
- package/src/client.ts +1217 -7
- package/src/ethers/index.ts +11 -18
- package/src/index.ts +149 -101
- package/src/key.ts +28 -121
- package/src/mfa.ts +202 -0
- package/src/org.ts +126 -275
- package/src/paginator.ts +122 -0
- package/src/role.ts +108 -181
- package/src/schema.ts +1673 -520
- package/src/schema_types.ts +103 -0
- package/src/session/session_manager.ts +2 -2
- package/src/session/session_storage.ts +1 -1
- package/src/session/signer_session_manager.ts +38 -108
- package/src/signer_session.ts +164 -323
- 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
|
package/dist/src/role.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
/**
|
|
27
|
-
*
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
119
|
-
*
|
|
120
|
-
* @param {
|
|
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(
|
|
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
|
-
/**
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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
|
-
/**
|
|
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
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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
|
-
/**
|
|
172
|
-
*
|
|
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
|
-
/**
|
|
178
|
-
*
|
|
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}
|
|
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,
|
|
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
|
-
/**
|
|
197
|
-
*
|
|
198
|
-
* @param {
|
|
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(
|
|
203
|
-
/**
|
|
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
|
-
/**
|
|
208
|
-
*
|
|
209
|
-
*
|
|
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 {};
|