@cubist-labs/cubesigner-sdk 0.1.26 → 0.1.77
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 +94 -33
- package/dist/src/ethers/index.d.ts +25 -5
- package/dist/src/ethers/index.js +58 -16
- package/dist/src/fido.d.ts +76 -0
- package/dist/src/fido.js +148 -0
- package/dist/src/index.d.ts +148 -35
- package/dist/src/index.js +320 -53
- package/dist/src/key.d.ts +64 -8
- package/dist/src/key.js +91 -19
- package/dist/src/org.d.ts +98 -9
- package/dist/src/org.js +144 -29
- package/dist/src/paginator.d.ts +76 -0
- package/dist/src/paginator.js +99 -0
- package/dist/src/role.d.ts +20 -8
- package/dist/src/role.js +7 -5
- package/dist/src/schema.d.ts +2395 -393
- package/dist/src/schema.js +1 -1
- package/dist/src/session/cognito_manager.d.ts +59 -0
- package/dist/src/session/cognito_manager.js +111 -0
- package/dist/src/session/session_manager.d.ts +15 -0
- package/dist/src/session/session_manager.js +21 -2
- package/dist/src/session/session_storage.js +1 -1
- package/dist/src/session/signer_session_manager.d.ts +24 -12
- package/dist/src/session/signer_session_manager.js +45 -20
- package/dist/src/signer_session.d.ts +136 -38
- package/dist/src/signer_session.js +187 -80
- package/dist/src/util.d.ts +20 -0
- package/dist/src/util.js +31 -2
- package/package.json +12 -7
- package/src/ethers/index.ts +88 -16
- package/src/fido.ts +166 -0
- package/src/index.ts +366 -77
- package/src/key.ts +112 -16
- package/src/org.ts +200 -37
- package/src/paginator.ts +122 -0
- package/src/role.ts +24 -11
- package/src/schema.ts +2458 -449
- package/src/session/{management_session_manager.ts → cognito_manager.ts} +13 -15
- package/src/session/session_manager.ts +25 -1
- package/src/session/session_storage.ts +1 -1
- package/src/session/signer_session_manager.ts +57 -27
- package/src/signer_session.ts +266 -89
- package/src/util.ts +41 -0
- package/src/session/oidc_session_manager.ts +0 -193
package/dist/src/fido.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
4
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
5
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
6
|
+
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");
|
|
7
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
8
|
+
};
|
|
9
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
10
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
11
|
+
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");
|
|
12
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
13
|
+
};
|
|
14
|
+
var _AddFidoChallenge_cs, _MfaFidoChallenge_ss;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.MfaFidoChallenge = exports.AddFidoChallenge = void 0;
|
|
17
|
+
const util_1 = require("./util");
|
|
18
|
+
/**
|
|
19
|
+
* Returned after creating a request to add a new FIDO device.
|
|
20
|
+
* Provides some helper methods for answering this challenge.
|
|
21
|
+
*/
|
|
22
|
+
class AddFidoChallenge {
|
|
23
|
+
/**
|
|
24
|
+
* Constructor
|
|
25
|
+
* @param {CubeSigner} cs CubeSigner instance used to request to add a FIDO device
|
|
26
|
+
* @param {ApiAddFidoChallenge} challenge The challenge returned by the remote end.
|
|
27
|
+
*/
|
|
28
|
+
constructor(cs, challenge) {
|
|
29
|
+
_AddFidoChallenge_cs.set(this, void 0);
|
|
30
|
+
__classPrivateFieldSet(this, _AddFidoChallenge_cs, cs, "f");
|
|
31
|
+
this.challengeId = challenge.challenge_id;
|
|
32
|
+
// fix options returned from the server: rename fields and decode base64 fields to uint8[]
|
|
33
|
+
this.options = {
|
|
34
|
+
...challenge.options,
|
|
35
|
+
challenge: (0, util_1.decodeBase64Url)(challenge.options.challenge),
|
|
36
|
+
};
|
|
37
|
+
this.options.pubKeyCredParams ??= challenge.options.pub_key_cred_params;
|
|
38
|
+
this.options.excludeCredentials ??= challenge.options.exclude_credentials;
|
|
39
|
+
this.options.authenticatorSelection ??= challenge.options.authenticator_selection;
|
|
40
|
+
delete this.options.pub_key_cred_params;
|
|
41
|
+
delete this.options.exclude_credentials;
|
|
42
|
+
delete this.options.authenticator_selection;
|
|
43
|
+
if (challenge.options.user) {
|
|
44
|
+
this.options.user.id = (0, util_1.decodeBase64Url)(challenge.options.user.id);
|
|
45
|
+
}
|
|
46
|
+
for (const credential of this.options.excludeCredentials ?? []) {
|
|
47
|
+
credential.id = (0, util_1.decodeBase64Url)(credential.id);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Answers this challenge by using the `CredentialsContainer` API to create a credential
|
|
52
|
+
* based on the the public key credential creation options from this challenge.
|
|
53
|
+
*/
|
|
54
|
+
async createCredentialAndAnswer() {
|
|
55
|
+
const cred = await navigator.credentials.create({ publicKey: this.options });
|
|
56
|
+
await this.answer(cred);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Answers this challenge using a given credential `cred`;
|
|
60
|
+
* the credential should be obtained by calling
|
|
61
|
+
*
|
|
62
|
+
* ```
|
|
63
|
+
* const cred = await navigator.credentials.create({ publicKey: this.options });
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* @param {any} cred Credential created by calling the `CredentialContainer`'s `create` method
|
|
67
|
+
* based on the public key creation options from this challenge.
|
|
68
|
+
*/
|
|
69
|
+
async answer(cred) {
|
|
70
|
+
const answer = {
|
|
71
|
+
id: cred.id,
|
|
72
|
+
response: {
|
|
73
|
+
clientDataJSON: (0, util_1.encodeToBase64Url)(cred.response.clientDataJSON),
|
|
74
|
+
attestationObject: (0, util_1.encodeToBase64Url)(cred.response.attestationObject),
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
await __classPrivateFieldGet(this, _AddFidoChallenge_cs, "f").addFidoComplete(this.challengeId, answer);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.AddFidoChallenge = AddFidoChallenge;
|
|
81
|
+
_AddFidoChallenge_cs = new WeakMap();
|
|
82
|
+
/**
|
|
83
|
+
* Returned after initiating MFA approval using FIDO.
|
|
84
|
+
* Provides some helper methods for answering this challenge.
|
|
85
|
+
*/
|
|
86
|
+
class MfaFidoChallenge {
|
|
87
|
+
/**
|
|
88
|
+
* @param {SignerSession} ss The session used to initiate MFA approval using FIDO
|
|
89
|
+
* @param {string} mfaId The MFA request id.
|
|
90
|
+
* @param {ApiMfaFidoChallenge} challenge The challenge returned by the remote end
|
|
91
|
+
*/
|
|
92
|
+
constructor(ss, mfaId, challenge) {
|
|
93
|
+
_MfaFidoChallenge_ss.set(this, void 0);
|
|
94
|
+
__classPrivateFieldSet(this, _MfaFidoChallenge_ss, ss, "f");
|
|
95
|
+
this.mfaId = mfaId;
|
|
96
|
+
this.challengeId = challenge.challenge_id;
|
|
97
|
+
// fix options returned from the server: rename fields and decode base64 fields into uint8[]
|
|
98
|
+
this.options = {
|
|
99
|
+
...challenge.options,
|
|
100
|
+
challenge: (0, util_1.decodeBase64Url)(challenge.options.challenge),
|
|
101
|
+
};
|
|
102
|
+
this.options.rpId ??= challenge.options.rp_id;
|
|
103
|
+
this.options.allowCredentials ??= challenge.options.allow_credentials;
|
|
104
|
+
this.options.userVerification ??= challenge.options.user_verification;
|
|
105
|
+
delete this.options.rp_id;
|
|
106
|
+
delete this.options.allow_credentials;
|
|
107
|
+
delete this.options.user_verification;
|
|
108
|
+
for (const credential of this.options.allowCredentials ?? []) {
|
|
109
|
+
credential.id = (0, util_1.decodeBase64Url)(credential.id);
|
|
110
|
+
if (credential.transports === null) {
|
|
111
|
+
delete credential.transports;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Answers this challenge by using the `CredentialsContainer` API to get a credential
|
|
117
|
+
* based on the the public key credential request options from this challenge.
|
|
118
|
+
*/
|
|
119
|
+
async createCredentialAndAnswer() {
|
|
120
|
+
const cred = await navigator.credentials.get({ publicKey: this.options });
|
|
121
|
+
return await this.answer(cred);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Answers this challenge using a given credential `cred`.
|
|
125
|
+
* To obtain this credential, for example, call
|
|
126
|
+
*
|
|
127
|
+
* ```
|
|
128
|
+
* const cred = await navigator.credentials.get({ publicKey: this.options });
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @param {any} cred Credential created by calling the `CredentialContainer`'s `get` method
|
|
132
|
+
* based on the public key credential request options from this challenge.
|
|
133
|
+
*/
|
|
134
|
+
async answer(cred) {
|
|
135
|
+
const answer = {
|
|
136
|
+
id: cred.id,
|
|
137
|
+
response: {
|
|
138
|
+
clientDataJSON: (0, util_1.encodeToBase64Url)(cred.response.clientDataJSON),
|
|
139
|
+
authenticatorData: (0, util_1.encodeToBase64Url)(cred.response.authenticatorData),
|
|
140
|
+
signature: (0, util_1.encodeToBase64Url)(cred.response.signature),
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
return await __classPrivateFieldGet(this, _MfaFidoChallenge_ss, "f").fidoApproveComplete(this.mfaId, this.challengeId, answer);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.MfaFidoChallenge = MfaFidoChallenge;
|
|
147
|
+
_MfaFidoChallenge_ss = new WeakMap();
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlkby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7Ozs7Ozs7Ozs7Ozs7OztBQUl2RCxpQ0FBNEQ7QUFtQjVEOzs7R0FHRztBQUNILE1BQWEsZ0JBQWdCO0lBSzNCOzs7O09BSUc7SUFDSCxZQUFZLEVBQWMsRUFBRSxTQUE4QjtRQVRqRCx1Q0FBZ0I7UUFVdkIsdUJBQUEsSUFBSSx3QkFBTyxFQUFFLE1BQUEsQ0FBQztRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQztRQUUxQywwRkFBMEY7UUFDMUYsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsU0FBUyxDQUFDLE9BQU87WUFDcEIsU0FBUyxFQUFFLElBQUEsc0JBQWUsRUFBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUN4RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEtBQUssU0FBUyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztRQUMxRSxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixLQUFLLFNBQVMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUM7UUFFNUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBQSxzQkFBZSxFQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBRTtZQUM5RCxVQUFVLENBQUMsRUFBRSxHQUFHLElBQUEsc0JBQWUsRUFBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHlCQUF5QjtRQUM3QixNQUFNLElBQUksR0FBRyxNQUFNLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBUztRQUNwQixNQUFNLE1BQU0sR0FBd0I7WUFDbEMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsUUFBUSxFQUFFO2dCQUNSLGNBQWMsRUFBRSxJQUFBLHdCQUFpQixFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO2dCQUMvRCxpQkFBaUIsRUFBRSxJQUFBLHdCQUFpQixFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7YUFDdEU7U0FDRixDQUFDO1FBQ0YsTUFBTSx1QkFBQSxJQUFJLDRCQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGO0FBakVELDRDQWlFQzs7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLGdCQUFnQjtJQU0zQjs7OztPQUlHO0lBQ0gsWUFBWSxFQUFpQixFQUFFLEtBQWEsRUFBRSxTQUE4QjtRQVZuRSx1Q0FBbUI7UUFXMUIsdUJBQUEsSUFBSSx3QkFBTyxFQUFFLE1BQUEsQ0FBQztRQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQztRQUUxQyw0RkFBNEY7UUFDNUYsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsU0FBUyxDQUFDLE9BQU87WUFDcEIsU0FBUyxFQUFFLElBQUEsc0JBQWUsRUFBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUN4RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1FBQ3RFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFFdEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBRTtZQUM1RCxVQUFVLENBQUMsRUFBRSxHQUFHLElBQUEsc0JBQWUsRUFBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0MsSUFBSSxVQUFVLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtnQkFDbEMsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDO2FBQzlCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHlCQUF5QjtRQUM3QixNQUFNLElBQUksR0FBRyxNQUFNLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFTO1FBQ3BCLE1BQU0sTUFBTSxHQUF3QjtZQUNsQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxRQUFRLEVBQUU7Z0JBQ1IsY0FBYyxFQUFFLElBQUEsd0JBQWlCLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7Z0JBQy9ELGlCQUFpQixFQUFFLElBQUEsd0JBQWlCLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDckUsU0FBUyxFQUFFLElBQUEsd0JBQWlCLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7YUFDdEQ7U0FDRixDQUFDO1FBQ0YsT0FBTyxNQUFNLHVCQUFBLElBQUksNEJBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNGO0FBbkVELDRDQW1FQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgQ3ViZVNpZ25lciwgTWZhUmVxdWVzdEluZm8sIFNpZ25lclNlc3Npb24gfSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgY29tcG9uZW50cyB9IGZyb20gXCIuL3NjaGVtYVwiO1xuaW1wb3J0IHsgZGVjb2RlQmFzZTY0VXJsLCBlbmNvZGVUb0Jhc2U2NFVybCB9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IHR5cGUgQXBpQWRkRmlkb0NoYWxsZW5nZSA9XG4gIGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl1bXCJjb250ZW50XCJdW1wiYXBwbGljYXRpb24vanNvblwiXTtcblxuZXhwb3J0IHR5cGUgQXBpTWZhRmlkb0NoYWxsZW5nZSA9XG4gIGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQXNzZXJ0Q2hhbGxlbmdlXCJdW1wiY29udGVudFwiXVtcImFwcGxpY2F0aW9uL2pzb25cIl07XG5cbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgPVxuICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNcIl07XG5leHBvcnQgdHlwZSBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgPVxuICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzID0gY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVyc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yID0gY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvclwiXTtcbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSA9XG4gIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhXCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkgPSBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5XCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbCA9IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFwiXTtcblxuLyoqXG4gKiBSZXR1cm5lZCBhZnRlciBjcmVhdGluZyBhIHJlcXVlc3QgdG8gYWRkIGEgbmV3IEZJRE8gZGV2aWNlLlxuICogUHJvdmlkZXMgc29tZSBoZWxwZXIgbWV0aG9kcyBmb3IgYW5zd2VyaW5nIHRoaXMgY2hhbGxlbmdlLlxuICovXG5leHBvcnQgY2xhc3MgQWRkRmlkb0NoYWxsZW5nZSB7XG4gIHJlYWRvbmx5ICNjczogQ3ViZVNpZ25lcjtcbiAgcmVhZG9ubHkgY2hhbGxlbmdlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgb3B0aW9uczogYW55O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge0N1YmVTaWduZXJ9IGNzIEN1YmVTaWduZXIgaW5zdGFuY2UgdXNlZCB0byByZXF1ZXN0IHRvIGFkZCBhIEZJRE8gZGV2aWNlXG4gICAqIEBwYXJhbSB7QXBpQWRkRmlkb0NoYWxsZW5nZX0gY2hhbGxlbmdlIFRoZSBjaGFsbGVuZ2UgcmV0dXJuZWQgYnkgdGhlIHJlbW90ZSBlbmQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihjczogQ3ViZVNpZ25lciwgY2hhbGxlbmdlOiBBcGlBZGRGaWRvQ2hhbGxlbmdlKSB7XG4gICAgdGhpcy4jY3MgPSBjcztcbiAgICB0aGlzLmNoYWxsZW5nZUlkID0gY2hhbGxlbmdlLmNoYWxsZW5nZV9pZDtcblxuICAgIC8vIGZpeCBvcHRpb25zIHJldHVybmVkIGZyb20gdGhlIHNlcnZlcjogcmVuYW1lIGZpZWxkcyBhbmQgZGVjb2RlIGJhc2U2NCBmaWVsZHMgdG8gdWludDhbXVxuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLmNoYWxsZW5nZS5vcHRpb25zLFxuICAgICAgY2hhbGxlbmdlOiBkZWNvZGVCYXNlNjRVcmwoY2hhbGxlbmdlLm9wdGlvbnMuY2hhbGxlbmdlKSxcbiAgICB9O1xuICAgIHRoaXMub3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1zID8/PSBjaGFsbGVuZ2Uub3B0aW9ucy5wdWJfa2V5X2NyZWRfcGFyYW1zO1xuICAgIHRoaXMub3B0aW9ucy5leGNsdWRlQ3JlZGVudGlhbHMgPz89IGNoYWxsZW5nZS5vcHRpb25zLmV4Y2x1ZGVfY3JlZGVudGlhbHM7XG4gICAgdGhpcy5vcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24gPz89IGNoYWxsZW5nZS5vcHRpb25zLmF1dGhlbnRpY2F0b3Jfc2VsZWN0aW9uO1xuICAgIGRlbGV0ZSB0aGlzLm9wdGlvbnMucHViX2tleV9jcmVkX3BhcmFtcztcbiAgICBkZWxldGUgdGhpcy5vcHRpb25zLmV4Y2x1ZGVfY3JlZGVudGlhbHM7XG4gICAgZGVsZXRlIHRoaXMub3B0aW9ucy5hdXRoZW50aWNhdG9yX3NlbGVjdGlvbjtcblxuICAgIGlmIChjaGFsbGVuZ2Uub3B0aW9ucy51c2VyKSB7XG4gICAgICB0aGlzLm9wdGlvbnMudXNlci5pZCA9IGRlY29kZUJhc2U2NFVybChjaGFsbGVuZ2Uub3B0aW9ucy51c2VyLmlkKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNyZWRlbnRpYWwgb2YgdGhpcy5vcHRpb25zLmV4Y2x1ZGVDcmVkZW50aWFscyA/PyBbXSkge1xuICAgICAgY3JlZGVudGlhbC5pZCA9IGRlY29kZUJhc2U2NFVybChjcmVkZW50aWFsLmlkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQW5zd2VycyB0aGlzIGNoYWxsZW5nZSBieSB1c2luZyB0aGUgYENyZWRlbnRpYWxzQ29udGFpbmVyYCBBUEkgdG8gY3JlYXRlIGEgY3JlZGVudGlhbFxuICAgKiBiYXNlZCBvbiB0aGUgdGhlIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBjcmVhdGlvbiBvcHRpb25zIGZyb20gdGhpcyBjaGFsbGVuZ2UuXG4gICAqL1xuICBhc3luYyBjcmVhdGVDcmVkZW50aWFsQW5kQW5zd2VyKCkge1xuICAgIGNvbnN0IGNyZWQgPSBhd2FpdCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKHsgcHVibGljS2V5OiB0aGlzLm9wdGlvbnMgfSk7XG4gICAgYXdhaXQgdGhpcy5hbnN3ZXIoY3JlZCk7XG4gIH1cblxuICAvKipcbiAgICogQW5zd2VycyB0aGlzIGNoYWxsZW5nZSB1c2luZyBhIGdpdmVuIGNyZWRlbnRpYWwgYGNyZWRgO1xuICAgKiB0aGUgY3JlZGVudGlhbCBzaG91bGQgYmUgb2J0YWluZWQgYnkgY2FsbGluZ1xuICAgKlxuICAgKiBgYGBcbiAgICogY29uc3QgY3JlZCA9IGF3YWl0IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoeyBwdWJsaWNLZXk6IHRoaXMub3B0aW9ucyB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSBjcmVkIENyZWRlbnRpYWwgY3JlYXRlZCBieSBjYWxsaW5nIHRoZSBgQ3JlZGVudGlhbENvbnRhaW5lcmAncyBgY3JlYXRlYCBtZXRob2RcbiAgICogICAgICAgICAgICAgICAgICAgYmFzZWQgb24gdGhlIHB1YmxpYyBrZXkgY3JlYXRpb24gb3B0aW9ucyBmcm9tIHRoaXMgY2hhbGxlbmdlLlxuICAgKi9cbiAgYXN5bmMgYW5zd2VyKGNyZWQ6IGFueSkge1xuICAgIGNvbnN0IGFuc3dlciA9IDxQdWJsaWNLZXlDcmVkZW50aWFsPntcbiAgICAgIGlkOiBjcmVkLmlkLFxuICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgY2xpZW50RGF0YUpTT046IGVuY29kZVRvQmFzZTY0VXJsKGNyZWQucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLFxuICAgICAgICBhdHRlc3RhdGlvbk9iamVjdDogZW5jb2RlVG9CYXNlNjRVcmwoY3JlZC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCksXG4gICAgICB9LFxuICAgIH07XG4gICAgYXdhaXQgdGhpcy4jY3MuYWRkRmlkb0NvbXBsZXRlKHRoaXMuY2hhbGxlbmdlSWQsIGFuc3dlcik7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5lZCBhZnRlciBpbml0aWF0aW5nIE1GQSBhcHByb3ZhbCB1c2luZyBGSURPLlxuICogUHJvdmlkZXMgc29tZSBoZWxwZXIgbWV0aG9kcyBmb3IgYW5zd2VyaW5nIHRoaXMgY2hhbGxlbmdlLlxuICovXG5leHBvcnQgY2xhc3MgTWZhRmlkb0NoYWxsZW5nZSB7XG4gIHJlYWRvbmx5ICNzczogU2lnbmVyU2Vzc2lvbjtcbiAgcmVhZG9ubHkgbWZhSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY2hhbGxlbmdlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgb3B0aW9uczogYW55O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1NpZ25lclNlc3Npb259IHNzIFRoZSBzZXNzaW9uIHVzZWQgdG8gaW5pdGlhdGUgTUZBIGFwcHJvdmFsIHVzaW5nIEZJRE9cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1mYUlkIFRoZSBNRkEgcmVxdWVzdCBpZC5cbiAgICogQHBhcmFtIHtBcGlNZmFGaWRvQ2hhbGxlbmdlfSBjaGFsbGVuZ2UgVGhlIGNoYWxsZW5nZSByZXR1cm5lZCBieSB0aGUgcmVtb3RlIGVuZFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc3M6IFNpZ25lclNlc3Npb24sIG1mYUlkOiBzdHJpbmcsIGNoYWxsZW5nZTogQXBpTWZhRmlkb0NoYWxsZW5nZSkge1xuICAgIHRoaXMuI3NzID0gc3M7XG4gICAgdGhpcy5tZmFJZCA9IG1mYUlkO1xuICAgIHRoaXMuY2hhbGxlbmdlSWQgPSBjaGFsbGVuZ2UuY2hhbGxlbmdlX2lkO1xuXG4gICAgLy8gZml4IG9wdGlvbnMgcmV0dXJuZWQgZnJvbSB0aGUgc2VydmVyOiByZW5hbWUgZmllbGRzIGFuZCBkZWNvZGUgYmFzZTY0IGZpZWxkcyBpbnRvIHVpbnQ4W11cbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi5jaGFsbGVuZ2Uub3B0aW9ucyxcbiAgICAgIGNoYWxsZW5nZTogZGVjb2RlQmFzZTY0VXJsKGNoYWxsZW5nZS5vcHRpb25zLmNoYWxsZW5nZSksXG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMucnBJZCA/Pz0gY2hhbGxlbmdlLm9wdGlvbnMucnBfaWQ7XG4gICAgdGhpcy5vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPz89IGNoYWxsZW5nZS5vcHRpb25zLmFsbG93X2NyZWRlbnRpYWxzO1xuICAgIHRoaXMub3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uID8/PSBjaGFsbGVuZ2Uub3B0aW9ucy51c2VyX3ZlcmlmaWNhdGlvbjtcbiAgICBkZWxldGUgdGhpcy5vcHRpb25zLnJwX2lkO1xuICAgIGRlbGV0ZSB0aGlzLm9wdGlvbnMuYWxsb3dfY3JlZGVudGlhbHM7XG4gICAgZGVsZXRlIHRoaXMub3B0aW9ucy51c2VyX3ZlcmlmaWNhdGlvbjtcblxuICAgIGZvciAoY29uc3QgY3JlZGVudGlhbCBvZiB0aGlzLm9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA/PyBbXSkge1xuICAgICAgY3JlZGVudGlhbC5pZCA9IGRlY29kZUJhc2U2NFVybChjcmVkZW50aWFsLmlkKTtcbiAgICAgIGlmIChjcmVkZW50aWFsLnRyYW5zcG9ydHMgPT09IG51bGwpIHtcbiAgICAgICAgZGVsZXRlIGNyZWRlbnRpYWwudHJhbnNwb3J0cztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQW5zd2VycyB0aGlzIGNoYWxsZW5nZSBieSB1c2luZyB0aGUgYENyZWRlbnRpYWxzQ29udGFpbmVyYCBBUEkgdG8gZ2V0IGEgY3JlZGVudGlhbFxuICAgKiBiYXNlZCBvbiB0aGUgdGhlIHB1YmxpYyBrZXkgY3JlZGVudGlhbCByZXF1ZXN0IG9wdGlvbnMgZnJvbSB0aGlzIGNoYWxsZW5nZS5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUNyZWRlbnRpYWxBbmRBbnN3ZXIoKTogUHJvbWlzZTxNZmFSZXF1ZXN0SW5mbz4ge1xuICAgIGNvbnN0IGNyZWQgPSBhd2FpdCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KHsgcHVibGljS2V5OiB0aGlzLm9wdGlvbnMgfSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYW5zd2VyKGNyZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuc3dlcnMgdGhpcyBjaGFsbGVuZ2UgdXNpbmcgYSBnaXZlbiBjcmVkZW50aWFsIGBjcmVkYC5cbiAgICogVG8gb2J0YWluIHRoaXMgY3JlZGVudGlhbCwgZm9yIGV4YW1wbGUsIGNhbGxcbiAgICpcbiAgICogYGBgXG4gICAqIGNvbnN0IGNyZWQgPSBhd2FpdCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KHsgcHVibGljS2V5OiB0aGlzLm9wdGlvbnMgfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gY3JlZCBDcmVkZW50aWFsIGNyZWF0ZWQgYnkgY2FsbGluZyB0aGUgYENyZWRlbnRpYWxDb250YWluZXJgJ3MgYGdldGAgbWV0aG9kXG4gICAqICAgICAgICAgICAgICAgICAgIGJhc2VkIG9uIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgcmVxdWVzdCBvcHRpb25zIGZyb20gdGhpcyBjaGFsbGVuZ2UuXG4gICAqL1xuICBhc3luYyBhbnN3ZXIoY3JlZDogYW55KTogUHJvbWlzZTxNZmFSZXF1ZXN0SW5mbz4ge1xuICAgIGNvbnN0IGFuc3dlciA9IDxQdWJsaWNLZXlDcmVkZW50aWFsPntcbiAgICAgIGlkOiBjcmVkLmlkLFxuICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgY2xpZW50RGF0YUpTT046IGVuY29kZVRvQmFzZTY0VXJsKGNyZWQucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLFxuICAgICAgICBhdXRoZW50aWNhdG9yRGF0YTogZW5jb2RlVG9CYXNlNjRVcmwoY3JlZC5yZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSksXG4gICAgICAgIHNpZ25hdHVyZTogZW5jb2RlVG9CYXNlNjRVcmwoY3JlZC5yZXNwb25zZS5zaWduYXR1cmUpLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNzcy5maWRvQXBwcm92ZUNvbXBsZXRlKHRoaXMubWZhSWQsIHRoaXMuY2hhbGxlbmdlSWQsIGFuc3dlcik7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,34 +1,63 @@
|
|
|
1
1
|
import { EnvInterface } from "./env";
|
|
2
|
-
import { components, Client } from "./client";
|
|
2
|
+
import { components, Client, paths } from "./client";
|
|
3
3
|
import { Org } from "./org";
|
|
4
|
-
import { SignerSessionStorage } from "./session/signer_session_manager";
|
|
5
|
-
import { SignerSession } from "./signer_session";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import { SignerSessionStorage, SignerSessionManager } from "./session/signer_session_manager";
|
|
5
|
+
import { MfaRequestInfo, SignResponse, SignerSession } from "./signer_session";
|
|
6
|
+
import { CognitoSessionManager, CognitoSessionStorage } from "./session/cognito_manager";
|
|
7
|
+
import { AddFidoChallenge, PublicKeyCredential } from "./fido";
|
|
8
8
|
/** CubeSigner constructor options */
|
|
9
9
|
export interface CubeSignerOptions {
|
|
10
10
|
/** The environment to use */
|
|
11
11
|
env?: EnvInterface;
|
|
12
12
|
/** The management authorization token */
|
|
13
|
-
sessionMgr?:
|
|
13
|
+
sessionMgr?: CognitoSessionManager | SignerSessionManager;
|
|
14
|
+
/** Optional organization id */
|
|
15
|
+
orgId?: string;
|
|
14
16
|
}
|
|
15
17
|
export type UserInfo = components["schemas"]["UserInfo"];
|
|
16
18
|
export type TotpInfo = components["responses"]["TotpInfo"]["content"]["application/json"];
|
|
17
19
|
export type ConfiguredMfa = components["schemas"]["ConfiguredMfa"];
|
|
20
|
+
export type RatchetConfig = components["schemas"]["RatchetConfig"];
|
|
21
|
+
export type IdentityProof = components["schemas"]["IdentityProof"];
|
|
22
|
+
type OidcAuthResponse = paths["/v0/org/{org_id}/oidc"]["post"]["responses"]["200"]["content"]["application/json"];
|
|
23
|
+
/** TOTP challenge that must be answered before user's TOTP is updated */
|
|
24
|
+
export declare class TotpChallenge {
|
|
25
|
+
#private;
|
|
26
|
+
/** The id of the challenge */
|
|
27
|
+
get totpId(): string;
|
|
28
|
+
/** The new TOTP configuration */
|
|
29
|
+
get totpUrl(): string;
|
|
30
|
+
/**
|
|
31
|
+
* @param {CubeSigner} cs Used when answering the challenge.
|
|
32
|
+
* @param {TotpInfo} totpInfo TOTP challenge information.
|
|
33
|
+
*/
|
|
34
|
+
constructor(cs: CubeSigner, totpInfo: TotpInfo);
|
|
35
|
+
/**
|
|
36
|
+
* Answer the challenge with the code that corresponds to this `this.totpUrl`.
|
|
37
|
+
* @param {string} code 6-digit code that corresponds to this `this.totpUrl`.
|
|
38
|
+
*/
|
|
39
|
+
answer(code: string): Promise<void>;
|
|
40
|
+
}
|
|
18
41
|
/** CubeSigner client */
|
|
19
42
|
export declare class CubeSigner {
|
|
20
43
|
#private;
|
|
21
|
-
readonly sessionMgr?:
|
|
44
|
+
readonly sessionMgr?: CognitoSessionManager | SignerSessionManager;
|
|
22
45
|
/** @return {EnvInterface} The CubeSigner environment of this client */
|
|
23
46
|
get env(): EnvInterface;
|
|
47
|
+
/**
|
|
48
|
+
* Set the organization ID
|
|
49
|
+
* @param {string} orgId The new organization id.
|
|
50
|
+
*/
|
|
51
|
+
setOrgId(orgId: string): void;
|
|
24
52
|
/**
|
|
25
53
|
* Loads an existing management session and creates a CubeSigner instance.
|
|
26
|
-
*
|
|
54
|
+
*
|
|
55
|
+
* @param {CognitoSessionStorage} storage Optional session storage to load
|
|
27
56
|
* the session from. If not specified, the management session from the config
|
|
28
57
|
* directory will be loaded.
|
|
29
58
|
* @return {Promise<CubeSigner>} New CubeSigner instance
|
|
30
59
|
*/
|
|
31
|
-
static loadManagementSession(storage?:
|
|
60
|
+
static loadManagementSession(storage?: CognitoSessionStorage): Promise<CubeSigner>;
|
|
32
61
|
/**
|
|
33
62
|
* Loads a signer session from a session storage (e.g., session file).
|
|
34
63
|
* @param {SignerSessionStorage} storage Optional session storage to load
|
|
@@ -37,42 +66,77 @@ export declare class CubeSigner {
|
|
|
37
66
|
* @return {Promise<SignerSession>} New signer session
|
|
38
67
|
*/
|
|
39
68
|
static loadSignerSession(storage?: SignerSessionStorage): Promise<SignerSession>;
|
|
40
|
-
/**
|
|
41
|
-
* Loads a signer session from OIDC storage
|
|
42
|
-
* @param {OidcSessionStorage} storage The storage to load from
|
|
43
|
-
* @return {Promise<SignerSession>} New signer session
|
|
44
|
-
*/
|
|
45
|
-
static loadOidcSession(storage: OidcSessionStorage): Promise<SignerSession>;
|
|
46
69
|
/**
|
|
47
70
|
* Create a new CubeSigner instance.
|
|
48
|
-
* @param {CubeSignerOptions} options The options for the CubeSigner instance.
|
|
71
|
+
* @param {CubeSignerOptions} options The optional configuraiton options for the CubeSigner instance.
|
|
49
72
|
*/
|
|
50
|
-
constructor(options
|
|
73
|
+
constructor(options?: CubeSignerOptions);
|
|
51
74
|
/**
|
|
52
|
-
* Authenticate an OIDC user and create a new
|
|
75
|
+
* Authenticate an OIDC user and create a new session manager for them.
|
|
53
76
|
* @param {string} oidcToken The OIDC token
|
|
54
77
|
* @param {string} orgId The id of the organization that the user is in
|
|
55
78
|
* @param {List<string>} scopes The scopes of the resulting session
|
|
56
|
-
* @param {
|
|
57
|
-
* @
|
|
79
|
+
* @param {RatchetConfig} lifetimes Lifetimes of the new session.
|
|
80
|
+
* @param {SignerSessionStorage?} storage Optional signer session storage (defaults to in-memory storage)
|
|
81
|
+
* @return {Promise<SignerSessionManager>} The signer session manager
|
|
58
82
|
*/
|
|
59
|
-
|
|
83
|
+
oidcAuth(oidcToken: string, orgId: string, scopes: Array<string>, lifetimes?: RatchetConfig, storage?: SignerSessionStorage): Promise<SignerSessionManager>;
|
|
60
84
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* @
|
|
64
|
-
* @param {List<string>} scopes The scopes of the resulting session
|
|
65
|
-
* @param {OidcSessionStorage} storage The signer session storage
|
|
66
|
-
* @return {Promise<SignerSession>} The signer session
|
|
85
|
+
* Retrieves information about the current user.
|
|
86
|
+
*
|
|
87
|
+
* @return {Promise<UserInfo>} User information.
|
|
67
88
|
*/
|
|
68
|
-
createOidcSession(oidcToken: string, orgId: string, scopes: Array<string>, storage?: OidcSessionStorage): Promise<SignerSession>;
|
|
69
|
-
/** Retrieves information about the current user. */
|
|
70
89
|
aboutMe(): Promise<UserInfo>;
|
|
71
90
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
91
|
+
* Retrieves existing MFA request.
|
|
92
|
+
*
|
|
93
|
+
* @param {string} orgId Organization ID
|
|
94
|
+
* @param {string} mfaId MFA request ID
|
|
95
|
+
* @return {Promise<MfaRequestInfo>} MFA request information
|
|
96
|
+
*/
|
|
97
|
+
mfaGet(orgId: string, mfaId: string): Promise<MfaRequestInfo>;
|
|
98
|
+
/**
|
|
99
|
+
* List pending MFA requests accessible to the current user.
|
|
100
|
+
* @param {string} orgId Organization ID
|
|
101
|
+
* @return {Promise<MfaRequestInfo[]>} The MFA requests.
|
|
102
|
+
*/
|
|
103
|
+
mfaList(orgId: string): Promise<MfaRequestInfo[]>;
|
|
104
|
+
/**
|
|
105
|
+
* Approve a pending MFA request.
|
|
106
|
+
*
|
|
107
|
+
* @param {string} orgId The org id of the MFA request
|
|
108
|
+
* @param {string} mfaId The id of the MFA request
|
|
109
|
+
* @return {Promise<MfaRequestInfo>} The result of the MFA request
|
|
110
|
+
*/
|
|
111
|
+
mfaApprove(orgId: string, mfaId: string): Promise<MfaRequestInfo>;
|
|
112
|
+
/**
|
|
113
|
+
* Initiate adding a new FIDO device. MFA may be required.
|
|
114
|
+
* @param {string} name The name of the new device.
|
|
115
|
+
* @param {MfaReceipt} mfaReceipt Optional MFA receipt to include in HTTP headers
|
|
116
|
+
* @return {Promise<SignResponse<AddFidoChallenge>>} A challenge that must be answered in order to complete FIDO registration.
|
|
117
|
+
*/
|
|
118
|
+
addFidoStart(name: string, mfaReceipt?: MfaReceipt): Promise<SignResponse<AddFidoChallenge>>;
|
|
119
|
+
/**
|
|
120
|
+
* Complete a previously initiated request to add a new FIDO device.
|
|
121
|
+
* @param {string} challengeId The ID of the challenge returned by the remote end.
|
|
122
|
+
* @param {PublicKeyCredential} credential The answer to the challenge.
|
|
74
123
|
*/
|
|
75
|
-
|
|
124
|
+
addFidoComplete(challengeId: string, credential: PublicKeyCredential): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Creates a request to change user's TOTP. This request returns a new TOTP challenge
|
|
127
|
+
* that must be answered by calling `resetTotpComplete`
|
|
128
|
+
*
|
|
129
|
+
* @param {MfaReceipt} mfaReceipt MFA receipt to include in HTTP headers
|
|
130
|
+
*/
|
|
131
|
+
resetTotpStart(mfaReceipt?: MfaReceipt): Promise<SignResponse<TotpChallenge>>;
|
|
132
|
+
/**
|
|
133
|
+
* Answer the TOTP challenge issued by `resetTotpStart`. If successful, user's
|
|
134
|
+
* TOTP configuration will be updated to that of the TOTP challenge.
|
|
135
|
+
*
|
|
136
|
+
* @param {string} totpId - The ID of the TOTP challenge
|
|
137
|
+
* @param {string} code - The TOTP code that should verify against the TOTP configuration from the challenge.
|
|
138
|
+
*/
|
|
139
|
+
resetTotpComplete(totpId: string, code: string): Promise<void>;
|
|
76
140
|
/**
|
|
77
141
|
* Verifies a given TOTP code against the current user's TOTP configuration.
|
|
78
142
|
* Throws an error if the verification fails.
|
|
@@ -84,11 +148,58 @@ export declare class CubeSigner {
|
|
|
84
148
|
* @return {Org} The organization.
|
|
85
149
|
* */
|
|
86
150
|
getOrg(orgId: string): Promise<Org>;
|
|
151
|
+
/**
|
|
152
|
+
* Deletes a given key.
|
|
153
|
+
* @param {string} orgId - Organization id
|
|
154
|
+
* @param {string} keyId - Key id
|
|
155
|
+
*/
|
|
156
|
+
deleteKey(orgId: string, keyId: string): Promise<void>;
|
|
87
157
|
/** Get the management client.
|
|
88
158
|
* @return {Client} The client.
|
|
89
159
|
* @internal
|
|
90
160
|
* */
|
|
91
161
|
management(): Promise<Client>;
|
|
162
|
+
/**
|
|
163
|
+
* Obtain a proof of authentication.
|
|
164
|
+
*
|
|
165
|
+
* @param {string} orgId The id of the organization that the user is in
|
|
166
|
+
* @return {Promise<IdentityProof>} Proof of authentication
|
|
167
|
+
*/
|
|
168
|
+
proveIdentity(orgId: string): Promise<IdentityProof>;
|
|
169
|
+
/**
|
|
170
|
+
* Exchange an OIDC token for a proof of authentication.
|
|
171
|
+
*
|
|
172
|
+
* @param {string} oidcToken The OIDC token
|
|
173
|
+
* @param {string} orgId The id of the organization that the user is in
|
|
174
|
+
* @return {Promise<IdentityProof>} Proof of authentication
|
|
175
|
+
*/
|
|
176
|
+
oidcProveIdentity(oidcToken: string, orgId: string): Promise<IdentityProof>;
|
|
177
|
+
/**
|
|
178
|
+
* Checks if a given identity proof is valid.
|
|
179
|
+
*
|
|
180
|
+
* @param {string} orgId The id of the organization that the user is in.
|
|
181
|
+
* @param {IdentityProof} identityProof The proof of authentication.
|
|
182
|
+
*/
|
|
183
|
+
verifyIdentity(orgId: string, identityProof: IdentityProof): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Exchange an OIDC token for a CubeSigner session token.
|
|
186
|
+
* @param {string} oidcToken The OIDC token
|
|
187
|
+
* @param {string} orgId The id of the organization that the user is in
|
|
188
|
+
* @param {List<string>} scopes The scopes of the resulting session
|
|
189
|
+
* @param {RatchetConfig} lifetimes Lifetimes of the new session.
|
|
190
|
+
* @param {MfaReceipt} mfaReceipt Optional MFA receipt (id + confirmation code)
|
|
191
|
+
* @return {Promise<SignResponse<OidcAuthResponse>>} The session data.
|
|
192
|
+
*/
|
|
193
|
+
oidcLogin(oidcToken: string, orgId: string, scopes: Array<string>, lifetimes?: RatchetConfig, mfaReceipt?: MfaReceipt): Promise<SignResponse<OidcAuthResponse>>;
|
|
194
|
+
}
|
|
195
|
+
/** MFA receipt */
|
|
196
|
+
export interface MfaReceipt {
|
|
197
|
+
/** MFA request ID */
|
|
198
|
+
mfaId: string;
|
|
199
|
+
/** Corresponding org ID */
|
|
200
|
+
mfaOrgId: string;
|
|
201
|
+
/** MFA confirmation code */
|
|
202
|
+
mfaConf: string;
|
|
92
203
|
}
|
|
93
204
|
/** Organizations */
|
|
94
205
|
export * from "./org";
|
|
@@ -98,6 +209,10 @@ export * from "./key";
|
|
|
98
209
|
export * from "./role";
|
|
99
210
|
/** Env */
|
|
100
211
|
export * from "./env";
|
|
212
|
+
/** Fido */
|
|
213
|
+
export * from "./fido";
|
|
214
|
+
/** Pagination */
|
|
215
|
+
export * from "./paginator";
|
|
101
216
|
/** Sessions */
|
|
102
217
|
export * from "./signer_session";
|
|
103
218
|
/** Session storage */
|
|
@@ -105,9 +220,7 @@ export * from "./session/session_storage";
|
|
|
105
220
|
/** Session manager */
|
|
106
221
|
export * from "./session/session_manager";
|
|
107
222
|
/** Management session manager */
|
|
108
|
-
export * from "./session/
|
|
109
|
-
/** OIDC session manager */
|
|
110
|
-
export * from "./session/oidc_session_manager";
|
|
223
|
+
export * from "./session/cognito_manager";
|
|
111
224
|
/** Signer session manager */
|
|
112
225
|
export * from "./session/signer_session_manager";
|
|
113
226
|
/** Export ethers.js Signer */
|