@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.
Files changed (44) hide show
  1. package/README.md +94 -33
  2. package/dist/src/ethers/index.d.ts +25 -5
  3. package/dist/src/ethers/index.js +58 -16
  4. package/dist/src/fido.d.ts +76 -0
  5. package/dist/src/fido.js +148 -0
  6. package/dist/src/index.d.ts +148 -35
  7. package/dist/src/index.js +320 -53
  8. package/dist/src/key.d.ts +64 -8
  9. package/dist/src/key.js +91 -19
  10. package/dist/src/org.d.ts +98 -9
  11. package/dist/src/org.js +144 -29
  12. package/dist/src/paginator.d.ts +76 -0
  13. package/dist/src/paginator.js +99 -0
  14. package/dist/src/role.d.ts +20 -8
  15. package/dist/src/role.js +7 -5
  16. package/dist/src/schema.d.ts +2395 -393
  17. package/dist/src/schema.js +1 -1
  18. package/dist/src/session/cognito_manager.d.ts +59 -0
  19. package/dist/src/session/cognito_manager.js +111 -0
  20. package/dist/src/session/session_manager.d.ts +15 -0
  21. package/dist/src/session/session_manager.js +21 -2
  22. package/dist/src/session/session_storage.js +1 -1
  23. package/dist/src/session/signer_session_manager.d.ts +24 -12
  24. package/dist/src/session/signer_session_manager.js +45 -20
  25. package/dist/src/signer_session.d.ts +136 -38
  26. package/dist/src/signer_session.js +187 -80
  27. package/dist/src/util.d.ts +20 -0
  28. package/dist/src/util.js +31 -2
  29. package/package.json +12 -7
  30. package/src/ethers/index.ts +88 -16
  31. package/src/fido.ts +166 -0
  32. package/src/index.ts +366 -77
  33. package/src/key.ts +112 -16
  34. package/src/org.ts +200 -37
  35. package/src/paginator.ts +122 -0
  36. package/src/role.ts +24 -11
  37. package/src/schema.ts +2458 -449
  38. package/src/session/{management_session_manager.ts → cognito_manager.ts} +13 -15
  39. package/src/session/session_manager.ts +25 -1
  40. package/src/session/session_storage.ts +1 -1
  41. package/src/session/signer_session_manager.ts +57 -27
  42. package/src/signer_session.ts +266 -89
  43. package/src/util.ts +41 -0
  44. package/src/session/oidc_session_manager.ts +0 -193
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlkby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7Ozs7Ozs7Ozs7Ozs7OztBQUl2RCxpQ0FBNEQ7QUFtQjVEOzs7R0FHRztBQUNILE1BQWEsZ0JBQWdCO0lBSzNCOzs7O09BSUc7SUFDSCxZQUFZLEVBQWMsRUFBRSxTQUE4QjtRQVRqRCx1Q0FBZ0I7UUFVdkIsdUJBQUEsSUFBSSx3QkFBTyxFQUFFLE1BQUEsQ0FBQztRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQztRQUUxQywwRkFBMEY7UUFDMUYsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsU0FBUyxDQUFDLE9BQU87WUFDcEIsU0FBUyxFQUFFLElBQUEsc0JBQWUsRUFBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUN4RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEtBQUssU0FBUyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztRQUMxRSxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixLQUFLLFNBQVMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUM7UUFFNUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBQSxzQkFBZSxFQUFDLFNBQVMsQ0FBQyxPQUFP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LE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFTO1FBQ3BCLE1BQU0sTUFBTSxHQUF3QjtZQUNsQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxRQUFRLEVBQUU7Z0JBQ1IsY0FBYyxFQUFFLElBQUEsd0JBQWlCLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7Z0JBQy9ELGlCQUFpQixFQUFFLElBQUEsd0JBQWlCLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDckUsU0FBUyxFQUFFLElBQUEsd0JBQWlCLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7YUFDdEQ7U0FDRixDQUFDO1FBQ0YsT0FBTyxNQUFNLHVCQUFBLElBQUksNEJBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNGO0FBbkVELDRDQW1FQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgQ3ViZVNpZ25lciwgTWZhUmVxdWVzdEluZm8sIFNpZ25lclNlc3Npb24gfSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgY29tcG9uZW50cyB9IGZyb20gXCIuL3NjaGVtYVwiO1xuaW1wb3J0IHsgZGVjb2RlQmFzZTY0VXJsLCBlbmNvZGVUb0Jhc2U2NFVybCB9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IHR5cGUgQXBpQWRkRmlkb0NoYWxsZW5nZSA9XG4gIGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl1bXCJjb250ZW50XCJdW1wiYXBwbGljYXRpb24vanNvblwiXTtcblxuZXhwb3J0IHR5cGUgQXBpTWZhRmlkb0NoYWxsZW5nZSA9XG4gIGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQXNzZXJ0Q2hhbGxlbmdlXCJdW1wiY29udGVudFwiXVtcImFwcGxpY2F0aW9uL2pzb25cIl07XG5cbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgPVxuICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNcIl07XG5leHBvcnQgdHlwZSBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgPVxuICBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzID0gY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVyc1wiXTtcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yID0gY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvclwiXTtcbmV4cG9ydCB0eXBlIEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSA9XG4gIGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhXCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkgPSBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5XCJdO1xuZXhwb3J0IHR5cGUgUHVibGljS2V5Q3JlZGVudGlhbCA9IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFwiXTtcblxuLyoqXG4gKiBSZXR1cm5lZCBhZnRlciBjcmVhdGluZyBhIHJlcXVlc3QgdG8gYWRkIGEgbmV3IEZJRE8gZGV2aWNlLlxuICogUHJvdmlkZXMgc29tZSBoZWxwZXIgbWV0aG9kcyBmb3IgYW5zd2VyaW5nIHRoaXMgY2hhbGxlbmdlLlxuICovXG5leHBvcnQgY2xhc3MgQWRkRmlkb0NoYWxsZW5nZSB7XG4gIHJlYWRvbmx5ICNjczogQ3ViZVNpZ25lcjtcbiAgcmVhZG9ubHkgY2hhbGxlbmdlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgb3B0aW9uczogYW55O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge0N1YmVTaWduZXJ9IGNzIEN1YmVTaWduZXIgaW5zdGFuY2UgdXNlZCB0byByZXF1ZXN0IHRvIGFkZCBhIEZJRE8gZGV2aWNlXG4gICAqIEBwYXJhbSB7QXBpQWRkRmlkb0NoYWxsZW5nZX0gY2hhbGxlbmdlIFRoZSBjaGFsbGVuZ2UgcmV0dXJuZWQgYnkgdGhlIHJlbW90ZSBlbmQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihjczogQ3ViZVNpZ25lciwgY2hhbGxlbmdlOiBBcGlBZGRGaWRvQ2hhbGxlbmdlKSB7XG4gICAgdGhpcy4jY3MgPSBjcztcbiAgICB0aGlzLmNoYWxsZW5nZUlkID0gY2hhbGxlbmdlLmNoYWxsZW5nZV9pZDtcblxuICAgIC8vIGZpeCBvcHRpb25zIHJldHVybmVkIGZyb20gdGhlIHNlcnZlcjogcmVuYW1lIGZpZWxkcyBhbmQgZGVjb2RlIGJhc2U2NCBmaWVsZHMgdG8gdWludDhbXVxuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLmNoYWxsZW5nZS5vcHRpb25zLFxuICAgICAgY2hhbGxlbmdlOiBkZWNvZGVCYXNlNjRVcmwoY2hhbGxlbmdlLm9wdGlvbnMuY2hhbGxlbmdlKSxcbiAgICB9O1xuICAgIHRoaXMub3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1zID8/PSBjaGFsbGVuZ2Uub3B0aW9ucy5wdWJfa2V5X2NyZWRfcGFyYW1zO1xuICAgIHRoaXMub3B0aW9ucy5leGNsdWRlQ3JlZGVudGlhbHMgPz89IGNoYWxsZW5nZS5vcHRpb25zLmV4Y2x1ZGVfY3JlZGVudGlhbHM7XG4gICAgdGhpcy5vcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24gPz89IGNoYWxsZW5nZS5vcHRpb25zLmF1dGhlbnRpY2F0b3Jfc2VsZWN0aW9uO1xuICAgIGRlbGV0ZSB0aGlzLm9wdGlvbnMucHViX2tleV9jcmVkX3BhcmFtcztcbiAgICBkZWxldGUgdGhpcy5vcHRpb25zLmV4Y2x1ZGVfY3JlZGVudGlhbHM7XG4gICAgZGVsZXRlIHRoaXMub3B0aW9ucy5hdXRoZW50aWNhdG9yX3NlbGVjdGlvbjtcblxuICAgIGlmIChjaGFsbGVuZ2Uub3B0aW9ucy51c2VyKSB7XG4gICAgICB0aGlzLm9wdGlvbnMudXNlci5pZCA9IGRlY29kZUJhc2U2NFVybChjaGFsbGVuZ2Uub3B0aW9ucy51c2VyLmlkKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNyZWRlbnRpYWwgb2YgdGhpcy5vcHRpb25zLmV4Y2x1ZGVDcmVkZW50aWFscyA/PyBbXSkge1xuICAgICAgY3JlZGVudGlhbC5pZCA9IGRlY29kZUJhc2U2NFVybChjcmVkZW50aWFsLmlkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQW5zd2VycyB0aGlzIGNoYWxsZW5nZSBieSB1c2luZyB0aGUgYENyZWRlbnRpYWxzQ29udGFpbmVyYCBBUEkgdG8gY3JlYXRlIGEgY3JlZGVudGlhbFxuICAgKiBiYXNlZCBvbiB0aGUgdGhlIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBjcmVhdGlvbiBvcHRpb25zIGZyb20gdGhpcyBjaGFsbGVuZ2UuXG4gICAqL1xuICBhc3luYyBjcmVhdGVDcmVkZW50aWFsQW5kQW5zd2VyKCkge1xuICAgIGNvbnN0IGNyZWQgPSBhd2FpdCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKHsgcHVibGljS2V5OiB0aGlzLm9wdGlvbnMgfSk7XG4gICAgYXdhaXQgdGhpcy5hbnN3ZXIoY3JlZCk7XG4gIH1cblxuICAvKipcbiAgICogQW5zd2VycyB0aGlzIGNoYWxsZW5nZSB1c2luZyBhIGdpdmVuIGNyZWRlbnRpYWwgYGNyZWRgO1xuICAgKiB0aGUgY3JlZGVudGlhbCBzaG91bGQgYmUgb2J0YWluZWQgYnkgY2FsbGluZ1xuICAgKlxuICAgKiBgYGBcbiAgICogY29uc3QgY3JlZCA9IGF3YWl0IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoeyBwdWJsaWNLZXk6IHRoaXMub3B0aW9ucyB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSBjcmVkIENyZWRlbnRpYWwgY3JlYXRlZCBieSBjYWxsaW5nIHRoZSBgQ3JlZGVudGlhbENvbnRhaW5lcmAncyBgY3JlYXRlYCBtZXRob2RcbiAgICogICAgICAgICAgICAgICAgICAgYmFzZWQgb24gdGhlIHB1YmxpYyBrZXkgY3JlYXRpb24gb3B0aW9ucyBmcm9tIHRoaXMgY2hhbGxlbmdlLlxuICAgKi9cbiAgYXN5bmMgYW5zd2VyKGNyZWQ6IGFueSkge1xuICAgIGNvbnN0IGFuc3dlciA9IDxQdWJsaWNLZXlDcmVkZW50aWFsPntcbiAgICAgIGlkOiBjcmVkLmlkLFxuICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgY2xpZW50RGF0YUpTT046IGVuY29kZVRvQmFzZTY0VXJsKGNyZWQucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLFxuICAgICAgICBhdHRlc3RhdGlvbk9iamVjdDogZW5jb2RlVG9CYXNlNjRVcmwoY3JlZC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCksXG4gICAgICB9LFxuICAgIH07XG4gICAgYXdhaXQgdGhpcy4jY3MuYWRkRmlkb0NvbXBsZXRlKHRoaXMuY2hhbGxlbmdlSWQsIGFuc3dlcik7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5lZCBhZnRlciBpbml0aWF0aW5nIE1GQSBhcHByb3ZhbCB1c2luZyBGSURPLlxuICogUHJvdmlkZXMgc29tZSBoZWxwZXIgbWV0aG9kcyBmb3IgYW5zd2VyaW5nIHRoaXMgY2hhbGxlbmdlLlxuICovXG5leHBvcnQgY2xhc3MgTWZhRmlkb0NoYWxsZW5nZSB7XG4gIHJlYWRvbmx5ICNzczogU2lnbmVyU2Vzc2lvbjtcbiAgcmVhZG9ubHkgbWZhSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY2hhbGxlbmdlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgb3B0aW9uczogYW55O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1NpZ25lclNlc3Npb259IHNzIFRoZSBzZXNzaW9uIHVzZWQgdG8gaW5pdGlhdGUgTUZBIGFwcHJvdmFsIHVzaW5nIEZJRE9cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1mYUlkIFRoZSBNRkEgcmVxdWVzdCBpZC5cbiAgICogQHBhcmFtIHtBcGlNZmFGaWRvQ2hhbGxlbmdlfSBjaGFsbGVuZ2UgVGhlIGNoYWxsZW5nZSByZXR1cm5lZCBieSB0aGUgcmVtb3RlIGVuZFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc3M6IFNpZ25lclNlc3Npb24sIG1mYUlkOiBzdHJpbmcsIGNoYWxsZW5nZTogQXBpTWZhRmlkb0NoYWxsZW5nZSkge1xuICAgIHRoaXMuI3NzID0gc3M7XG4gICAgdGhpcy5tZmFJZCA9IG1mYUlkO1xuICAgIHRoaXMuY2hhbGxlbmdlSWQgPSBjaGFsbGVuZ2UuY2hhbGxlbmdlX2lkO1xuXG4gICAgLy8gZml4IG9wdGlvbnMgcmV0dXJuZWQgZnJvbSB0aGUgc2VydmVyOiByZW5hbWUgZmllbGRzIGFuZCBkZWNvZGUgYmFzZTY0IGZpZWxkcyBpbnRvIHVpbnQ4W11cbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi5jaGFsbGVuZ2Uub3B0aW9ucyxcbiAgICAgIGNoYWxsZW5nZTogZGVjb2RlQmFzZTY0VXJsKGNoYWxsZW5nZS5vcHRpb25zLmNoYWxsZW5nZSksXG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMucnBJZCA/Pz0gY2hhbGxlbmdlLm9wdGlvbnMucnBfaWQ7XG4gICAgdGhpcy5vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPz89IGNoYWxsZW5nZS5vcHRpb25zLmFsbG93X2NyZWRlbnRpYWxzO1xuICAgIHRoaXMub3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uID8/PSBjaGFsbGVuZ2Uub3B0aW9ucy51c2VyX3ZlcmlmaWNhdGlvbjtcbiAgICBkZWxldGUgdGhpcy5vcHRpb25zLnJwX2lkO1xuICAgIGRlbGV0ZSB0aGlzLm9wdGlvbnMuYWxsb3dfY3JlZGVudGlhbHM7XG4gICAgZGVsZXRlIHRoaXMub3B0aW9ucy51c2VyX3ZlcmlmaWNhdGlvbjtcblxuICAgIGZvciAoY29uc3QgY3JlZGVudGlhbCBvZiB0aGlzLm9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA/PyBbXSkge1xuICAgICAgY3JlZGVudGlhbC5pZCA9IGRlY29kZUJhc2U2NFVybChjcmVkZW50aWFsLmlkKTtcbiAgICAgIGlmIChjcmVkZW50aWFsLnRyYW5zcG9ydHMgPT09IG51bGwpIHtcbiAgICAgICAgZGVsZXRlIGNyZWRlbnRpYWwudHJhbnNwb3J0cztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQW5zd2VycyB0aGlzIGNoYWxsZW5nZSBieSB1c2luZyB0aGUgYENyZWRlbnRpYWxzQ29udGFpbmVyYCBBUEkgdG8gZ2V0IGEgY3JlZGVudGlhbFxuICAgKiBiYXNlZCBvbiB0aGUgdGhlIHB1YmxpYyBrZXkgY3JlZGVudGlhbCByZXF1ZXN0IG9wdGlvbnMgZnJvbSB0aGlzIGNoYWxsZW5nZS5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUNyZWRlbnRpYWxBbmRBbnN3ZXIoKTogUHJvbWlzZTxNZmFSZXF1ZXN0SW5mbz4ge1xuICAgIGNvbnN0IGNyZWQgPSBhd2FpdCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KHsgcHVibGljS2V5OiB0aGlzLm9wdGlvbnMgfSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYW5zd2VyKGNyZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuc3dlcnMgdGhpcyBjaGFsbGVuZ2UgdXNpbmcgYSBnaXZlbiBjcmVkZW50aWFsIGBjcmVkYC5cbiAgICogVG8gb2J0YWluIHRoaXMgY3JlZGVudGlhbCwgZm9yIGV4YW1wbGUsIGNhbGxcbiAgICpcbiAgICogYGBgXG4gICAqIGNvbnN0IGNyZWQgPSBhd2FpdCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KHsgcHVibGljS2V5OiB0aGlzLm9wdGlvbnMgfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gY3JlZCBDcmVkZW50aWFsIGNyZWF0ZWQgYnkgY2FsbGluZyB0aGUgYENyZWRlbnRpYWxDb250YWluZXJgJ3MgYGdldGAgbWV0aG9kXG4gICAqICAgICAgICAgICAgICAgICAgIGJhc2VkIG9uIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgcmVxdWVzdCBvcHRpb25zIGZyb20gdGhpcyBjaGFsbGVuZ2UuXG4gICAqL1xuICBhc3luYyBhbnN3ZXIoY3JlZDogYW55KTogUHJvbWlzZTxNZmFSZXF1ZXN0SW5mbz4ge1xuICAgIGNvbnN0IGFuc3dlciA9IDxQdWJsaWNLZXlDcmVkZW50aWFsPntcbiAgICAgIGlkOiBjcmVkLmlkLFxuICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgY2xpZW50RGF0YUpTT046IGVuY29kZVRvQmFzZTY0VXJsKGNyZWQucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLFxuICAgICAgICBhdXRoZW50aWNhdG9yRGF0YTogZW5jb2RlVG9CYXNlNjRVcmwoY3JlZC5yZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSksXG4gICAgICAgIHNpZ25hdHVyZTogZW5jb2RlVG9CYXNlNjRVcmwoY3JlZC5yZXNwb25zZS5zaWduYXR1cmUpLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNzcy5maWRvQXBwcm92ZUNvbXBsZXRlKHRoaXMubWZhSWQsIHRoaXMuY2hhbGxlbmdlSWQsIGFuc3dlcik7XG4gIH1cbn1cbiJdfQ==
@@ -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 { ManagementSessionManager, ManagementSessionStorage } from "./session/management_session_manager";
7
- import { OidcSessionManager, OidcSessionStorage } from "./session/oidc_session_manager";
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?: ManagementSessionManager | OidcSessionManager;
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?: ManagementSessionManager | OidcSessionManager;
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
- * @param {ManagementSessionStorage} storage Optional session storage to load
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?: ManagementSessionStorage): Promise<CubeSigner>;
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: CubeSignerOptions);
73
+ constructor(options?: CubeSignerOptions);
51
74
  /**
52
- * Authenticate an OIDC user and create a new OIDC session manager for them.
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 {OidcSessionStorage} storage The signer session storage
57
- * @return {Promise<OidcSessionManager>} The OIDC session manager
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
- createOidcManager(oidcToken: string, orgId: string, scopes: Array<string>, storage?: OidcSessionStorage): Promise<OidcSessionManager>;
83
+ oidcAuth(oidcToken: string, orgId: string, scopes: Array<string>, lifetimes?: RatchetConfig, storage?: SignerSessionStorage): Promise<SignerSessionManager>;
60
84
  /**
61
- * Authenticate an OIDC user and create a new session for them.
62
- * @param {string} oidcToken The OIDC token
63
- * @param {string} orgId The id of the organization that the user is in
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
- * Creates and sets a new TOTP configuration for the logged-in user,
73
- * overriding the existing one (if any).
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
- resetTotp(): Promise<TotpInfo>;
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/management_session_manager";
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 */