@cubist-labs/cubesigner-sdk 0.2.28 → 0.3.1
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 +30 -28
- package/dist/cjs/package.json +41 -0
- package/dist/cjs/spec/env/beta.json +9 -0
- package/dist/cjs/spec/env/gamma.json +9 -0
- package/dist/cjs/spec/env/prod.json +9 -0
- package/dist/cjs/src/api.d.ts +634 -0
- package/dist/cjs/src/api.js +1309 -0
- package/dist/cjs/src/client.d.ts +575 -0
- package/dist/cjs/src/client.js +378 -0
- package/dist/cjs/src/env.d.ts +15 -0
- package/dist/cjs/src/env.js +35 -0
- package/dist/cjs/src/error.d.ts +29 -0
- package/dist/cjs/src/error.js +36 -0
- package/dist/cjs/src/events.d.ts +84 -0
- package/dist/cjs/src/events.js +195 -0
- package/dist/cjs/src/index.d.ts +203 -0
- package/dist/cjs/src/index.js +298 -0
- package/dist/cjs/src/key.d.ts +152 -0
- package/dist/cjs/src/key.js +242 -0
- package/dist/{src/fido.d.ts → cjs/src/mfa.d.ts} +33 -15
- package/dist/cjs/src/mfa.js +169 -0
- package/dist/cjs/src/org.d.ts +99 -0
- package/dist/cjs/src/org.js +95 -0
- package/dist/cjs/src/paginator.d.ts +76 -0
- package/dist/cjs/src/paginator.js +99 -0
- package/dist/cjs/src/response.d.ts +101 -0
- package/dist/cjs/src/response.js +164 -0
- package/dist/cjs/src/role.d.ts +283 -0
- package/dist/cjs/src/role.js +253 -0
- package/dist/cjs/src/schema.d.ts +6209 -0
- package/dist/cjs/src/schema.js +7 -0
- package/dist/cjs/src/schema_types.d.ts +113 -0
- package/dist/cjs/src/schema_types.js +3 -0
- package/dist/cjs/src/session/session_storage.d.ts +27 -0
- package/dist/cjs/src/session/session_storage.js +47 -0
- package/dist/cjs/src/session/signer_session_manager.d.ts +125 -0
- package/dist/cjs/src/session/signer_session_manager.js +239 -0
- package/dist/cjs/src/signer_session.d.ts +41 -0
- package/dist/cjs/src/signer_session.js +77 -0
- package/dist/cjs/src/user_export.d.ts +52 -0
- package/dist/cjs/src/user_export.js +129 -0
- package/dist/cjs/src/util.d.ts +56 -0
- package/dist/cjs/src/util.js +86 -0
- package/dist/esm/package.json +41 -0
- package/dist/esm/spec/env/beta.json +9 -0
- package/dist/esm/spec/env/gamma.json +9 -0
- package/dist/esm/spec/env/prod.json +9 -0
- package/dist/esm/src/api.d.ts +634 -0
- package/dist/esm/src/api.js +1299 -0
- package/dist/esm/src/client.d.ts +575 -0
- package/dist/esm/src/client.js +374 -0
- package/dist/esm/src/env.d.ts +15 -0
- package/dist/esm/src/env.js +9 -0
- package/dist/esm/src/error.d.ts +29 -0
- package/dist/esm/src/error.js +31 -0
- package/dist/esm/src/events.d.ts +84 -0
- package/dist/esm/src/events.js +189 -0
- package/dist/esm/src/index.d.ts +203 -0
- package/dist/esm/src/index.js +276 -0
- package/dist/esm/src/key.d.ts +152 -0
- package/dist/esm/src/key.js +236 -0
- package/dist/esm/src/mfa.d.ts +94 -0
- package/dist/esm/src/mfa.js +163 -0
- package/dist/esm/src/org.d.ts +99 -0
- package/dist/esm/src/org.js +91 -0
- package/dist/esm/src/paginator.d.ts +76 -0
- package/dist/esm/src/paginator.js +94 -0
- package/dist/esm/src/response.d.ts +101 -0
- package/dist/esm/src/response.js +159 -0
- package/dist/esm/src/role.d.ts +283 -0
- package/dist/esm/src/role.js +248 -0
- package/dist/esm/src/schema.d.ts +6209 -0
- package/dist/esm/src/schema.js +6 -0
- package/dist/esm/src/schema_types.d.ts +113 -0
- package/dist/esm/src/schema_types.js +2 -0
- package/dist/esm/src/session/session_storage.d.ts +27 -0
- package/dist/esm/src/session/session_storage.js +43 -0
- package/dist/esm/src/session/signer_session_manager.d.ts +125 -0
- package/dist/esm/src/session/signer_session_manager.js +235 -0
- package/dist/esm/src/signer_session.d.ts +41 -0
- package/dist/esm/src/signer_session.js +72 -0
- package/dist/esm/src/user_export.d.ts +52 -0
- package/dist/esm/src/user_export.js +99 -0
- package/dist/esm/src/util.d.ts +56 -0
- package/dist/esm/src/util.js +76 -0
- package/dist/package.json +13 -45
- package/dist/src/api.d.ts +29 -1
- package/dist/src/api.js +66 -1
- package/dist/src/client.d.ts +35 -14
- package/dist/src/client.js +12 -8
- package/dist/src/events.js +1 -1
- package/dist/src/index.d.ts +6 -11
- package/dist/src/index.js +9 -25
- package/dist/src/key.d.ts +18 -7
- package/dist/src/key.js +52 -19
- package/dist/src/role.d.ts +46 -3
- package/dist/src/role.js +60 -8
- package/dist/src/schema.d.ts +206 -72
- package/dist/src/schema.js +1 -1
- package/dist/src/schema_types.d.ts +3 -0
- package/dist/src/schema_types.js +1 -1
- package/dist/src/session/signer_session_manager.d.ts +38 -14
- package/dist/src/session/signer_session_manager.js +93 -33
- package/dist/src/util.d.ts +14 -0
- package/dist/src/util.js +24 -27
- package/package.json +19 -46
- package/src/api.ts +79 -0
- package/src/client.ts +12 -8
- package/src/events.ts +2 -0
- package/src/index.ts +10 -24
- package/src/key.ts +36 -18
- package/src/role.ts +78 -7
- package/src/schema.ts +269 -110
- package/src/schema_types.ts +3 -0
- package/src/session/session_storage.ts +0 -32
- package/src/session/signer_session_manager.ts +124 -36
- package/src/util.ts +19 -10
- package/tsconfig.json +1 -21
- package/LICENSE-APACHE +0 -177
- package/LICENSE-MIT +0 -25
- package/NOTICE +0 -13
- package/dist/examples/ethers.d.ts +0 -1
- package/dist/examples/ethers.js +0 -142
- package/dist/src/ethers/index.d.ts +0 -95
- package/dist/src/ethers/index.js +0 -215
- package/dist/src/fido.js +0 -148
- package/dist/src/session/cognito_manager.d.ts +0 -71
- package/dist/src/session/cognito_manager.js +0 -129
- package/dist/src/session/generic.d.ts +0 -47
- package/dist/src/session/generic.js +0 -3
- package/dist/src/session/management_session_manager.d.ts +0 -59
- package/dist/src/session/management_session_manager.js +0 -111
- package/dist/src/session/oidc_session_manager.d.ts +0 -78
- package/dist/src/session/oidc_session_manager.js +0 -142
- package/dist/src/session/session_manager.d.ts +0 -99
- package/dist/src/session/session_manager.js +0 -136
- package/dist/src/sign.d.ts +0 -114
- package/dist/src/sign.js +0 -248
- package/dist/test/sessions.d.ts +0 -35
- package/dist/test/sessions.js +0 -56
- package/src/ethers/index.ts +0 -253
- package/src/session/cognito_manager.ts +0 -161
- package/src/session/session_manager.ts +0 -165
package/dist/src/fido.js
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
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,71 +0,0 @@
|
|
|
1
|
-
import { Client } from "../api";
|
|
2
|
-
import { HasEnv, OrgSessionManager } from "./session_manager";
|
|
3
|
-
import { SessionStorage } from "./session_storage";
|
|
4
|
-
/** JSON representation of our "management session" file format */
|
|
5
|
-
export interface CognitoSessionObject {
|
|
6
|
-
/** The organization ID */
|
|
7
|
-
org_id: string;
|
|
8
|
-
/** The email address of the user */
|
|
9
|
-
email: string;
|
|
10
|
-
/** The ID token */
|
|
11
|
-
id_token: string;
|
|
12
|
-
/** The access token */
|
|
13
|
-
access_token: string;
|
|
14
|
-
/** The refresh token */
|
|
15
|
-
refresh_token: string;
|
|
16
|
-
/** The expiration time of the access token */
|
|
17
|
-
expiration: string;
|
|
18
|
-
}
|
|
19
|
-
export interface CognitoSessionInfo extends CognitoSessionObject, HasEnv {
|
|
20
|
-
}
|
|
21
|
-
/** Type of storage required for cognito (management) sessions */
|
|
22
|
-
export type CognitoSessionStorage = SessionStorage<CognitoSessionInfo>;
|
|
23
|
-
/** The session manager for cognito (management) sessions */
|
|
24
|
-
export declare class CognitoSessionManager extends OrgSessionManager<CognitoSessionInfo> {
|
|
25
|
-
#private;
|
|
26
|
-
/**
|
|
27
|
-
* @return {string} The current auth token.
|
|
28
|
-
* @internal
|
|
29
|
-
*/
|
|
30
|
-
token(): Promise<string>;
|
|
31
|
-
/**
|
|
32
|
-
* Returns a client with the current session and refreshes the current
|
|
33
|
-
* session.
|
|
34
|
-
*/
|
|
35
|
-
client(): Promise<Client>;
|
|
36
|
-
/** Revokes the session. */
|
|
37
|
-
revoke(): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* Returns whether it's time to refresh this token.
|
|
40
|
-
* @return {boolean} Whether it's time to refresh this token.
|
|
41
|
-
* @internal
|
|
42
|
-
*/
|
|
43
|
-
isStale(): Promise<boolean>;
|
|
44
|
-
/**
|
|
45
|
-
* Refreshes the session and **UPDATES/MUTATES** self.
|
|
46
|
-
*/
|
|
47
|
-
refresh(): Promise<void>;
|
|
48
|
-
/**
|
|
49
|
-
* Loads an existing cognito (management) session from storage.
|
|
50
|
-
* @param {CognitoSessionStorage} storage The storage back end to use
|
|
51
|
-
* @return {Promise<SingerSession>} New token
|
|
52
|
-
*/
|
|
53
|
-
static loadFromStorage(storage: CognitoSessionStorage): Promise<CognitoSessionManager>;
|
|
54
|
-
/**
|
|
55
|
-
* Loads an existing management session and creates a Cognito session manager for it.
|
|
56
|
-
*
|
|
57
|
-
* @param {CognitoSessionStorage} storage Optional session storage to load
|
|
58
|
-
* the session from. If not specified, the management session from the config
|
|
59
|
-
* directory will be loaded.
|
|
60
|
-
* @return {Promise<CognitoSessionManager>} Cognito session manager
|
|
61
|
-
*/
|
|
62
|
-
static loadManagementSession(storage?: CognitoSessionStorage): Promise<CognitoSessionManager>;
|
|
63
|
-
/**
|
|
64
|
-
* Constructor.
|
|
65
|
-
* @param {EnvInterface} env The environment of the session
|
|
66
|
-
* @param {string} orgId The id of the org associated with this session
|
|
67
|
-
* @param {string} token The current token of the session
|
|
68
|
-
* @param {CognitoSessionStorage} storage The storage back end to use
|
|
69
|
-
*/
|
|
70
|
-
private constructor();
|
|
71
|
-
}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
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");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
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");
|
|
11
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
var _CognitoSessionManager_client;
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.CognitoSessionManager = void 0;
|
|
19
|
-
const path_1 = __importDefault(require("path"));
|
|
20
|
-
const session_manager_1 = require("./session_manager");
|
|
21
|
-
const session_storage_1 = require("./session_storage");
|
|
22
|
-
const util_1 = require("../util");
|
|
23
|
-
/** The session manager for cognito (management) sessions */
|
|
24
|
-
class CognitoSessionManager extends session_manager_1.OrgSessionManager {
|
|
25
|
-
/**
|
|
26
|
-
* @return {string} The current auth token.
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
|
-
async token() {
|
|
30
|
-
const session = await this.storage.retrieve();
|
|
31
|
-
return session.id_token;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Returns a client with the current session and refreshes the current
|
|
35
|
-
* session.
|
|
36
|
-
*/
|
|
37
|
-
async client() {
|
|
38
|
-
this.refreshIfNeeded();
|
|
39
|
-
return __classPrivateFieldGet(this, _CognitoSessionManager_client, "f");
|
|
40
|
-
}
|
|
41
|
-
/** Revokes the session. */
|
|
42
|
-
async revoke() {
|
|
43
|
-
const idp = require("@aws-sdk/client-cognito-identity-provider"); // eslint-disable-line @typescript-eslint/no-var-requires
|
|
44
|
-
const session = await this.storage.retrieve();
|
|
45
|
-
const client = new idp.CognitoIdentityProviderClient({
|
|
46
|
-
region: this.env.Region,
|
|
47
|
-
signer: { sign: async (request) => request }, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
48
|
-
});
|
|
49
|
-
const input = {
|
|
50
|
-
Token: session.refresh_token,
|
|
51
|
-
ClientId: this.env.ClientId,
|
|
52
|
-
};
|
|
53
|
-
await client.send(new idp.RevokeTokenCommand(input));
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Returns whether it's time to refresh this token.
|
|
57
|
-
* @return {boolean} Whether it's time to refresh this token.
|
|
58
|
-
* @internal
|
|
59
|
-
*/
|
|
60
|
-
async isStale() {
|
|
61
|
-
const session = await this.storage.retrieve();
|
|
62
|
-
return session_manager_1.SessionManager.isStale(new Date(session.expiration));
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Refreshes the session and **UPDATES/MUTATES** self.
|
|
66
|
-
*/
|
|
67
|
-
async refresh() {
|
|
68
|
-
const idp = require("@aws-sdk/client-cognito-identity-provider"); // eslint-disable-line @typescript-eslint/no-var-requires
|
|
69
|
-
const session = await this.storage.retrieve();
|
|
70
|
-
const client = new idp.CognitoIdentityProviderClient({ region: this.env.Region });
|
|
71
|
-
const resp = await client.send(new idp.InitiateAuthCommand({
|
|
72
|
-
AuthFlow: "REFRESH_TOKEN_AUTH",
|
|
73
|
-
AuthParameters: {
|
|
74
|
-
REFRESH_TOKEN: session.refresh_token,
|
|
75
|
-
},
|
|
76
|
-
ClientId: this.env.ClientId,
|
|
77
|
-
}));
|
|
78
|
-
if (!resp.AuthenticationResult ||
|
|
79
|
-
!resp.AuthenticationResult.ExpiresIn ||
|
|
80
|
-
!resp.AuthenticationResult.IdToken) {
|
|
81
|
-
throw new Error("Refresh failed");
|
|
82
|
-
}
|
|
83
|
-
const expiresInMs = resp.AuthenticationResult.ExpiresIn * 1000;
|
|
84
|
-
const expiration = new Date(new Date().getTime() + expiresInMs).toISOString();
|
|
85
|
-
const idToken = resp.AuthenticationResult.IdToken;
|
|
86
|
-
await this.storage.save({
|
|
87
|
-
...session,
|
|
88
|
-
id_token: idToken,
|
|
89
|
-
access_token: resp.AuthenticationResult.AccessToken,
|
|
90
|
-
expiration,
|
|
91
|
-
});
|
|
92
|
-
__classPrivateFieldSet(this, _CognitoSessionManager_client, this.createClient(idToken), "f");
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Loads an existing cognito (management) session from storage.
|
|
96
|
-
* @param {CognitoSessionStorage} storage The storage back end to use
|
|
97
|
-
* @return {Promise<SingerSession>} New token
|
|
98
|
-
*/
|
|
99
|
-
static async loadFromStorage(storage) {
|
|
100
|
-
const sessionInfo = await storage.retrieve();
|
|
101
|
-
return new CognitoSessionManager(sessionInfo.env["Dev-CubeSignerStack"], sessionInfo.org_id, sessionInfo.id_token, storage);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Loads an existing management session and creates a Cognito session manager for it.
|
|
105
|
-
*
|
|
106
|
-
* @param {CognitoSessionStorage} storage Optional session storage to load
|
|
107
|
-
* the session from. If not specified, the management session from the config
|
|
108
|
-
* directory will be loaded.
|
|
109
|
-
* @return {Promise<CognitoSessionManager>} Cognito session manager
|
|
110
|
-
*/
|
|
111
|
-
static async loadManagementSession(storage) {
|
|
112
|
-
return await CognitoSessionManager.loadFromStorage(storage ?? new session_storage_1.JsonFileSessionStorage(path_1.default.join((0, util_1.configDir)(), "management-session.json")));
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Constructor.
|
|
116
|
-
* @param {EnvInterface} env The environment of the session
|
|
117
|
-
* @param {string} orgId The id of the org associated with this session
|
|
118
|
-
* @param {string} token The current token of the session
|
|
119
|
-
* @param {CognitoSessionStorage} storage The storage back end to use
|
|
120
|
-
*/
|
|
121
|
-
constructor(env, orgId, token, storage) {
|
|
122
|
-
super(env, orgId, storage);
|
|
123
|
-
_CognitoSessionManager_client.set(this, void 0);
|
|
124
|
-
__classPrivateFieldSet(this, _CognitoSessionManager_client, this.createClient(token), "f");
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
exports.CognitoSessionManager = CognitoSessionManager;
|
|
128
|
-
_CognitoSessionManager_client = new WeakMap();
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0b19tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nlc3Npb24vY29nbml0b19tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUF3QjtBQUd4Qix1REFBOEU7QUFDOUUsdURBQTJFO0FBQzNFLGtDQUFvQztBQXVCcEMsNERBQTREO0FBQzVELE1BQWEscUJBQXNCLFNBQVEsbUNBQXFDO0lBRzlFOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFLO1FBQ1QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsT0FBTyx1QkFBQSxJQUFJLHFDQUFRLENBQUM7SUFDdEIsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixLQUFLLENBQUMsTUFBTTtRQUNWLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLENBQUMseURBQXlEO1FBQzNILE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQztZQUNuRCxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQ3ZCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSx5REFBeUQ7U0FDN0csQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUc7WUFDWixLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDNUIsUUFBUSxFQUFFLElBQUks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RixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFlBQ0UsR0FBaUIsRUFDakIsS0FBYSxFQUNiLEtBQWEsRUFDYixPQUE4QjtRQUU5QixLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQS9IN0IsZ0RBQWdCO1FBZ0lkLHVCQUFBLElBQUksaUNBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBQSxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQW5JRCxzREFtSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcIi4uL2FwaVwiO1xuaW1wb3J0IHsgRW52SW50ZXJmYWNlIH0gZnJvbSBcIi4uL2VudlwiO1xuaW1wb3J0IHsgSGFzRW52LCBPcmdTZXNzaW9uTWFuYWdlciwgU2Vzc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi9zZXNzaW9uX21hbmFnZXJcIjtcbmltcG9ydCB7IEpzb25GaWxlU2Vzc2lvblN0b3JhZ2UsIFNlc3Npb25TdG9yYWdlIH0gZnJvbSBcIi4vc2Vzc2lvbl9zdG9yYWdlXCI7XG5pbXBvcnQgeyBjb25maWdEaXIgfSBmcm9tIFwiLi4vdXRpbFwiO1xuXG4vKiogSlNPTiByZXByZXNlbnRhdGlvbiBvZiBvdXIgXCJtYW5hZ2VtZW50IHNlc3Npb25cIiBmaWxlIGZvcm1hdCAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2duaXRvU2Vzc2lvbk9iamVjdCB7XG4gIC8qKiBUaGUgb3JnYW5pemF0aW9uIElEICovXG4gIG9yZ19pZDogc3RyaW5nO1xuICAvKiogVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgKi9cbiAgZW1haWw6IHN0cmluZztcbiAgLyoqIFRoZSBJRCB0b2tlbiAqL1xuICBpZF90b2tlbjogc3RyaW5nO1xuICAvKiogVGhlIGFjY2VzcyB0b2tlbiAqL1xuICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgLyoqIFRoZSByZWZyZXNoIHRva2VuICovXG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbiAgLyoqIFRoZSBleHBpcmF0aW9uIHRpbWUgb2YgdGhlIGFjY2VzcyB0b2tlbiAqL1xuICBleHBpcmF0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b1Nlc3Npb25JbmZvIGV4dGVuZHMgQ29nbml0b1Nlc3Npb25PYmplY3QsIEhhc0VudiB7fVxuXG4vKiogVHlwZSBvZiBzdG9yYWdlIHJlcXVpcmVkIGZvciBjb2duaXRvIChtYW5hZ2VtZW50KSBzZXNzaW9ucyAqL1xuZXhwb3J0IHR5cGUgQ29nbml0b1Nlc3Npb25TdG9yYWdlID0gU2Vzc2lvblN0b3JhZ2U8Q29nbml0b1Nlc3Npb25JbmZvPjtcblxuLyoqIFRoZSBzZXNzaW9uIG1hbmFnZXIgZm9yIGNvZ25pdG8gKG1hbmFnZW1lbnQpIHNlc3Npb25zICovXG5leHBvcnQgY2xhc3MgQ29nbml0b1Nlc3Npb25NYW5hZ2VyIGV4dGVuZHMgT3JnU2Vzc2lvbk1hbmFnZXI8Q29nbml0b1Nlc3Npb25JbmZvPiB7XG4gICNjbGllbnQ6IENsaWVudDtcblxuICAvKipcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgY3VycmVudCBhdXRoIHRva2VuLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFzeW5jIHRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHRoaXMuc3RvcmFnZS5yZXRyaWV2ZSgpO1xuICAgIHJldHVybiBzZXNzaW9uLmlkX3Rva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjbGllbnQgd2l0aCB0aGUgY3VycmVudCBzZXNzaW9uIGFuZCByZWZyZXNoZXMgdGhlIGN1cnJlbnRcbiAgICogc2Vzc2lvbi5cbiAgICovXG4gIGFzeW5jIGNsaWVudCgpOiBQcm9taXNlPENsaWVudD4ge1xuICAgIHRoaXMucmVmcmVzaElmTmVlZGVkKCk7XG4gICAgcmV0dXJuIHRoaXMuI2NsaWVudDtcbiAgfVxuXG4gIC8qKiBSZXZva2VzIHRoZSBzZXNzaW9uLiAqL1xuICBhc3luYyByZXZva2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaWRwID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5LXByb3ZpZGVyXCIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5zdG9yYWdlLnJldHJpZXZlKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IGlkcC5Db2duaXRvSWRlbnRpdHlQcm92aWRlckNsaWVudCh7XG4gICAgICByZWdpb246IHRoaXMuZW52LlJlZ2lvbixcbiAgICAgIHNpZ25lcjogeyBzaWduOiBhc3luYyAocmVxdWVzdDogYW55KSA9PiByZXF1ZXN0IH0sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIH0pO1xuICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgVG9rZW46IHNlc3Npb24ucmVmcmVzaF90b2tlbixcbiAgICAgIENsaWVudElkOiB0aGlzLmVudi5DbGllbnRJZCxcbiAgICB9O1xuICAgIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBpZHAuUmV2b2tlVG9rZW5Db21tYW5kKGlucHV0KSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIGl0J3MgdGltZSB0byByZWZyZXNoIHRoaXMgdG9rZW4uXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgaXQncyB0aW1lIHRvIHJlZnJlc2ggdGhpcyB0b2tlbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBpc1N0YWxlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCB0aGlzLnN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gU2Vzc2lvbk1hbmFnZXIuaXNTdGFsZShuZXcgRGF0ZShzZXNzaW9uLmV4cGlyYXRpb24pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIHNlc3Npb24gYW5kICoqVVBEQVRFUy9NVVRBVEVTKiogc2VsZi5cbiAgICovXG4gIGFzeW5jIHJlZnJlc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaWRwID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5LXByb3ZpZGVyXCIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5zdG9yYWdlLnJldHJpZXZlKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IGlkcC5Db2duaXRvSWRlbnRpdHlQcm92aWRlckNsaWVudCh7IHJlZ2lvbjogdGhpcy5lbnYuUmVnaW9uIH0pO1xuICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBjbGllbnQuc2VuZChcbiAgICAgIG5ldyBpZHAuSW5pdGlhdGVBdXRoQ29tbWFuZCh7XG4gICAgICAgIEF1dGhGbG93OiBcIlJFRlJFU0hfVE9LRU5fQVVUSFwiLFxuICAgICAgICBBdXRoUGFyYW1ldGVyczoge1xuICAgICAgICAgIFJFRlJFU0hfVE9LRU46IHNlc3Npb24ucmVmcmVzaF90b2tlbixcbiAgICAgICAgfSxcbiAgICAgICAgQ2xpZW50SWQ6IHRoaXMuZW52LkNsaWVudElkLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgICFyZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0IHx8XG4gICAgICAhcmVzcC5BdXRoZW50aWNhdGlvblJlc3VsdC5FeHBpcmVzSW4gfHxcbiAgICAgICFyZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0LklkVG9rZW5cbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZnJlc2ggZmFpbGVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGlyZXNJbk1zID0gcmVzcC5BdXRoZW50aWNhdGlvblJlc3VsdC5FeHBpcmVzSW4gKiAxMDAwO1xuICAgIGNvbnN0IGV4cGlyYXRpb24gPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGV4cGlyZXNJbk1zKS50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IGlkVG9rZW4gPSByZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0LklkVG9rZW47XG5cbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2F2ZSg8Q29nbml0b1Nlc3Npb25JbmZvPntcbiAgICAgIC4uLnNlc3Npb24sXG4gICAgICBpZF90b2tlbjogaWRUb2tlbixcbiAgICAgIGFjY2Vzc190b2tlbjogcmVzcC5BdXRoZW50aWNhdGlvblJlc3VsdC5BY2Nlc3NUb2tlbixcbiAgICAgIGV4cGlyYXRpb24sXG4gICAgfSk7XG4gICAgdGhpcy4jY2xpZW50ID0gdGhpcy5jcmVhdGVDbGllbnQoaWRUb2tlbik7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgYW4gZXhpc3RpbmcgY29nbml0byAobWFuYWdlbWVudCkgc2Vzc2lvbiBmcm9tIHN0b3JhZ2UuXG4gICAqIEBwYXJhbSB7Q29nbml0b1Nlc3Npb25TdG9yYWdlfSBzdG9yYWdlIFRoZSBzdG9yYWdlIGJhY2sgZW5kIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFNpbmdlclNlc3Npb24+fSBOZXcgdG9rZW5cbiAgICovXG4gIHN0YXRpYyBhc3luYyBsb2FkRnJvbVN0b3JhZ2Uoc3RvcmFnZTogQ29nbml0b1Nlc3Npb25TdG9yYWdlKTogUHJvbWlzZTxDb2duaXRvU2Vzc2lvbk1hbmFnZXI+IHtcbiAgICBjb25zdCBzZXNzaW9uSW5mbyA9IGF3YWl0IHN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gbmV3IENvZ25pdG9TZXNzaW9uTWFuYWdlcihcbiAgICAgIHNlc3Npb25JbmZvLmVudltcIkRldi1DdWJlU2lnbmVyU3RhY2tcIl0sXG4gICAgICBzZXNzaW9uSW5mby5vcmdfaWQsXG4gICAgICBzZXNzaW9uSW5mby5pZF90b2tlbixcbiAgICAgIHN0b3JhZ2UsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBhbiBleGlzdGluZyBtYW5hZ2VtZW50IHNlc3Npb24gYW5kIGNyZWF0ZXMgYSBDb2duaXRvIHNlc3Npb24gbWFuYWdlciBmb3IgaXQuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29nbml0b1Nlc3Npb25TdG9yYWdlfSBzdG9yYWdlIE9wdGlvbmFsIHNlc3Npb24gc3RvcmFnZSB0byBsb2FkXG4gICAqIHRoZSBzZXNzaW9uIGZyb20uIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBtYW5hZ2VtZW50IHNlc3Npb24gZnJvbSB0aGUgY29uZmlnXG4gICAqIGRpcmVjdG9yeSB3aWxsIGJlIGxvYWRlZC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDb2duaXRvU2Vzc2lvbk1hbmFnZXI+fSBDb2duaXRvIHNlc3Npb24gbWFuYWdlclxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGxvYWRNYW5hZ2VtZW50U2Vzc2lvbihcbiAgICBzdG9yYWdlPzogQ29nbml0b1Nlc3Npb25TdG9yYWdlLFxuICApOiBQcm9taXNlPENvZ25pdG9TZXNzaW9uTWFuYWdlcj4ge1xuICAgIHJldHVybiBhd2FpdCBDb2duaXRvU2Vzc2lvbk1hbmFnZXIubG9hZEZyb21TdG9yYWdlKFxuICAgICAgc3RvcmFnZSA/PyBuZXcgSnNvbkZpbGVTZXNzaW9uU3RvcmFnZShwYXRoLmpvaW4oY29uZmlnRGlyKCksIFwibWFuYWdlbWVudC1zZXNzaW9uLmpzb25cIikpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7RW52SW50ZXJmYWNlfSBlbnYgVGhlIGVudmlyb25tZW50IG9mIHRoZSBzZXNzaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcmdJZCBUaGUgaWQgb2YgdGhlIG9yZyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZXNzaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbiBUaGUgY3VycmVudCB0b2tlbiBvZiB0aGUgc2Vzc2lvblxuICAgKiBAcGFyYW0ge0NvZ25pdG9TZXNzaW9uU3RvcmFnZX0gc3RvcmFnZSBUaGUgc3RvcmFnZSBiYWNrIGVuZCB0byB1c2VcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgZW52OiBFbnZJbnRlcmZhY2UsXG4gICAgb3JnSWQ6IHN0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIHN0b3JhZ2U6IENvZ25pdG9TZXNzaW9uU3RvcmFnZSxcbiAgKSB7XG4gICAgc3VwZXIoZW52LCBvcmdJZCwgc3RvcmFnZSk7XG4gICAgdGhpcy4jY2xpZW50ID0gdGhpcy5jcmVhdGVDbGllbnQodG9rZW4pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { EnvInterface } from "../env";
|
|
2
|
-
import { ClientSessionInfo } from "../signer_session";
|
|
3
|
-
/** Generic session interface. */
|
|
4
|
-
export interface Session {
|
|
5
|
-
/** Revoke the session. */
|
|
6
|
-
revoke: () => Promise<void>;
|
|
7
|
-
/** Refresh the session token. */
|
|
8
|
-
refresh: () => Promise<void>;
|
|
9
|
-
/** Get the authorization token. */
|
|
10
|
-
getAuthToken: () => Promise<string>;
|
|
11
|
-
}
|
|
12
|
-
/** JSON representation of our "management session" file format */
|
|
13
|
-
export interface ManagementSessionObject {
|
|
14
|
-
/** The email address of the user */
|
|
15
|
-
email: string;
|
|
16
|
-
/** The ID token */
|
|
17
|
-
id_token: string;
|
|
18
|
-
/** The access token */
|
|
19
|
-
access_token: string;
|
|
20
|
-
/** The refresh token */
|
|
21
|
-
refresh_token: string;
|
|
22
|
-
/** The expiration time of the access token */
|
|
23
|
-
expiration: string;
|
|
24
|
-
}
|
|
25
|
-
/** JSON representation of our "signer session" file format */
|
|
26
|
-
export interface SignerSessionObject {
|
|
27
|
-
/** The organization ID */
|
|
28
|
-
org_id: string;
|
|
29
|
-
/** The role ID */
|
|
30
|
-
role_id: string;
|
|
31
|
-
/** The purpose of the session token */
|
|
32
|
-
purpose: string;
|
|
33
|
-
/** The token to include in Authorization header */
|
|
34
|
-
token: string;
|
|
35
|
-
/** Session info */
|
|
36
|
-
session_info: ClientSessionInfo;
|
|
37
|
-
}
|
|
38
|
-
export interface HasEnv {
|
|
39
|
-
/** The environment */
|
|
40
|
-
env: {
|
|
41
|
-
["Dev-CubeSignerStack"]: EnvInterface;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
export interface ManagementSessionFile extends ManagementSessionObject, HasEnv {
|
|
45
|
-
}
|
|
46
|
-
export interface SignerSessionFile extends SignerSessionObject, HasEnv {
|
|
47
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXNzaW9uL2dlbmVyaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudkludGVyZmFjZSB9IGZyb20gXCIuLi9lbnZcIjtcbmltcG9ydCB7IENsaWVudFNlc3Npb25JbmZvIH0gZnJvbSBcIi4uL3NpZ25lcl9zZXNzaW9uXCI7XG5cbi8qKiBHZW5lcmljIHNlc3Npb24gaW50ZXJmYWNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uIHtcbiAgLyoqIFJldm9rZSB0aGUgc2Vzc2lvbi4gKi9cbiAgcmV2b2tlOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAvKiogUmVmcmVzaCB0aGUgc2Vzc2lvbiB0b2tlbi4gKi9cbiAgcmVmcmVzaDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgLyoqIEdldCB0aGUgYXV0aG9yaXphdGlvbiB0b2tlbi4gKi9cbiAgZ2V0QXV0aFRva2VuOiAoKSA9PiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8qKiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIG91ciBcIm1hbmFnZW1lbnQgc2Vzc2lvblwiIGZpbGUgZm9ybWF0ICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZW1lbnRTZXNzaW9uT2JqZWN0IHtcbiAgLyoqIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyICovXG4gIGVtYWlsOiBzdHJpbmc7XG4gIC8qKiBUaGUgSUQgdG9rZW4gKi9cbiAgaWRfdG9rZW46IHN0cmluZztcbiAgLyoqIFRoZSBhY2Nlc3MgdG9rZW4gKi9cbiAgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gIC8qKiBUaGUgcmVmcmVzaCB0b2tlbiAqL1xuICByZWZyZXNoX3Rva2VuOiBzdHJpbmc7XG4gIC8qKiBUaGUgZXhwaXJhdGlvbiB0aW1lIG9mIHRoZSBhY2Nlc3MgdG9rZW4gKi9cbiAgZXhwaXJhdGlvbjogc3RyaW5nO1xufVxuXG4vKiogSlNPTiByZXByZXNlbnRhdGlvbiBvZiBvdXIgXCJzaWduZXIgc2Vzc2lvblwiIGZpbGUgZm9ybWF0ICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lclNlc3Npb25PYmplY3Qge1xuICAvKiogVGhlIG9yZ2FuaXphdGlvbiBJRCAqL1xuICBvcmdfaWQ6IHN0cmluZztcbiAgLyoqIFRoZSByb2xlIElEICovXG4gIHJvbGVfaWQ6IHN0cmluZztcbiAgLyoqIFRoZSBwdXJwb3NlIG9mIHRoZSBzZXNzaW9uIHRva2VuICovXG4gIHB1cnBvc2U6IHN0cmluZztcbiAgLyoqIFRoZSB0b2tlbiB0byBpbmNsdWRlIGluIEF1dGhvcml6YXRpb24gaGVhZGVyICovXG4gIHRva2VuOiBzdHJpbmc7XG4gIC8qKiBTZXNzaW9uIGluZm8gKi9cbiAgc2Vzc2lvbl9pbmZvOiBDbGllbnRTZXNzaW9uSW5mbztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYXNFbnYge1xuICAvKiogVGhlIGVudmlyb25tZW50ICovXG4gIGVudjoge1xuICAgIFtcIkRldi1DdWJlU2lnbmVyU3RhY2tcIl06IEVudkludGVyZmFjZTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYW5hZ2VtZW50U2Vzc2lvbkZpbGUgZXh0ZW5kcyBNYW5hZ2VtZW50U2Vzc2lvbk9iamVjdCwgSGFzRW52IHt9XG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lclNlc3Npb25GaWxlIGV4dGVuZHMgU2lnbmVyU2Vzc2lvbk9iamVjdCwgSGFzRW52IHt9XG4iXX0=
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Client } from "../client";
|
|
2
|
-
import { HasEnv, SessionManager } from "./session_manager";
|
|
3
|
-
import { SessionStorage } from "./session_storage";
|
|
4
|
-
/** JSON representation of our "management session" file format */
|
|
5
|
-
export interface ManagementSessionObject {
|
|
6
|
-
/** The email address of the user */
|
|
7
|
-
email: string;
|
|
8
|
-
/** The ID token */
|
|
9
|
-
id_token: string;
|
|
10
|
-
/** The access token */
|
|
11
|
-
access_token: string;
|
|
12
|
-
/** The refresh token */
|
|
13
|
-
refresh_token: string;
|
|
14
|
-
/** The expiration time of the access token */
|
|
15
|
-
expiration: string;
|
|
16
|
-
}
|
|
17
|
-
export interface ManagementSessionInfo extends ManagementSessionObject, HasEnv {
|
|
18
|
-
}
|
|
19
|
-
/** Type of storage required for management sessions */
|
|
20
|
-
export type ManagementSessionStorage = SessionStorage<ManagementSessionInfo>;
|
|
21
|
-
/** The session manager for management sessions */
|
|
22
|
-
export declare class ManagementSessionManager extends SessionManager<ManagementSessionInfo> {
|
|
23
|
-
#private;
|
|
24
|
-
/**
|
|
25
|
-
* @return {string} The current auth token.
|
|
26
|
-
* @internal
|
|
27
|
-
*/
|
|
28
|
-
token(): Promise<string>;
|
|
29
|
-
/**
|
|
30
|
-
* Returns a client with the current session and refreshes the current
|
|
31
|
-
* session.
|
|
32
|
-
*/
|
|
33
|
-
client(): Promise<Client>;
|
|
34
|
-
/** Revokes the session. */
|
|
35
|
-
revoke(): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Returns whether it's time to refresh this token.
|
|
38
|
-
* @return {boolean} Whether it's time to refresh this token.
|
|
39
|
-
* @internal
|
|
40
|
-
*/
|
|
41
|
-
isStale(): Promise<boolean>;
|
|
42
|
-
/**
|
|
43
|
-
* Refreshes the session and **UPDATES/MUTATES** self.
|
|
44
|
-
*/
|
|
45
|
-
refresh(): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Loads an existing management session from storage.
|
|
48
|
-
* @param {ManagementSessionStorage} storage The storage back end to use
|
|
49
|
-
* @return {Promise<SingerSession>} New token
|
|
50
|
-
*/
|
|
51
|
-
static loadFromStorage(storage: ManagementSessionStorage): Promise<ManagementSessionManager>;
|
|
52
|
-
/**
|
|
53
|
-
* Constructor.
|
|
54
|
-
* @param {EnvInterface} env The environment of the session
|
|
55
|
-
* @param {string} token The current token of the session
|
|
56
|
-
* @param {ManagementSessionStorage} storage The storage back end to use
|
|
57
|
-
*/
|
|
58
|
-
private constructor();
|
|
59
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
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");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
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");
|
|
11
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
-
};
|
|
13
|
-
var _ManagementSessionManager_client;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ManagementSessionManager = void 0;
|
|
16
|
-
const session_manager_1 = require("./session_manager");
|
|
17
|
-
/** The session manager for management sessions */
|
|
18
|
-
class ManagementSessionManager extends session_manager_1.SessionManager {
|
|
19
|
-
/**
|
|
20
|
-
* @return {string} The current auth token.
|
|
21
|
-
* @internal
|
|
22
|
-
*/
|
|
23
|
-
async token() {
|
|
24
|
-
const session = await this.storage.retrieve();
|
|
25
|
-
return session.id_token;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Returns a client with the current session and refreshes the current
|
|
29
|
-
* session.
|
|
30
|
-
*/
|
|
31
|
-
async client() {
|
|
32
|
-
this.refreshIfNeeded();
|
|
33
|
-
return __classPrivateFieldGet(this, _ManagementSessionManager_client, "f");
|
|
34
|
-
}
|
|
35
|
-
/** Revokes the session. */
|
|
36
|
-
async revoke() {
|
|
37
|
-
const idp = require("@aws-sdk/client-cognito-identity-provider"); // eslint-disable-line @typescript-eslint/no-var-requires
|
|
38
|
-
const session = await this.storage.retrieve();
|
|
39
|
-
const client = new idp.CognitoIdentityProviderClient({
|
|
40
|
-
region: this.env.Region,
|
|
41
|
-
signer: { sign: async (request) => request }, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
42
|
-
});
|
|
43
|
-
const input = {
|
|
44
|
-
Token: session.refresh_token,
|
|
45
|
-
ClientId: this.env.ClientId,
|
|
46
|
-
};
|
|
47
|
-
await client.send(new idp.RevokeTokenCommand(input));
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Returns whether it's time to refresh this token.
|
|
51
|
-
* @return {boolean} Whether it's time to refresh this token.
|
|
52
|
-
* @internal
|
|
53
|
-
*/
|
|
54
|
-
async isStale() {
|
|
55
|
-
const session = await this.storage.retrieve();
|
|
56
|
-
return this.hasExpired(new Date(session.expiration).getTime());
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Refreshes the session and **UPDATES/MUTATES** self.
|
|
60
|
-
*/
|
|
61
|
-
async refresh() {
|
|
62
|
-
const idp = require("@aws-sdk/client-cognito-identity-provider"); // eslint-disable-line @typescript-eslint/no-var-requires
|
|
63
|
-
const session = await this.storage.retrieve();
|
|
64
|
-
const client = new idp.CognitoIdentityProviderClient({ region: this.env.Region });
|
|
65
|
-
const resp = await client.send(new idp.InitiateAuthCommand({
|
|
66
|
-
AuthFlow: "REFRESH_TOKEN_AUTH",
|
|
67
|
-
AuthParameters: {
|
|
68
|
-
REFRESH_TOKEN: session.refresh_token,
|
|
69
|
-
},
|
|
70
|
-
ClientId: this.env.ClientId,
|
|
71
|
-
}));
|
|
72
|
-
if (!resp.AuthenticationResult ||
|
|
73
|
-
!resp.AuthenticationResult.ExpiresIn ||
|
|
74
|
-
!resp.AuthenticationResult.IdToken) {
|
|
75
|
-
throw new Error("Refresh failed");
|
|
76
|
-
}
|
|
77
|
-
const expiresInMs = resp.AuthenticationResult.ExpiresIn * 1000;
|
|
78
|
-
const expiration = new Date(new Date().getTime() + expiresInMs).toISOString();
|
|
79
|
-
const idToken = resp.AuthenticationResult.IdToken;
|
|
80
|
-
await this.storage.save({
|
|
81
|
-
...session,
|
|
82
|
-
id_token: idToken,
|
|
83
|
-
access_token: resp.AuthenticationResult.AccessToken,
|
|
84
|
-
expiration,
|
|
85
|
-
});
|
|
86
|
-
__classPrivateFieldSet(this, _ManagementSessionManager_client, this.createClient(idToken), "f");
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Loads an existing management session from storage.
|
|
90
|
-
* @param {ManagementSessionStorage} storage The storage back end to use
|
|
91
|
-
* @return {Promise<SingerSession>} New token
|
|
92
|
-
*/
|
|
93
|
-
static async loadFromStorage(storage) {
|
|
94
|
-
const sessionInfo = await storage.retrieve();
|
|
95
|
-
return new ManagementSessionManager(sessionInfo.env["Dev-CubeSignerStack"], sessionInfo.id_token, storage);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Constructor.
|
|
99
|
-
* @param {EnvInterface} env The environment of the session
|
|
100
|
-
* @param {string} token The current token of the session
|
|
101
|
-
* @param {ManagementSessionStorage} storage The storage back end to use
|
|
102
|
-
*/
|
|
103
|
-
constructor(env, token, storage) {
|
|
104
|
-
super(env, storage);
|
|
105
|
-
_ManagementSessionManager_client.set(this, void 0);
|
|
106
|
-
__classPrivateFieldSet(this, _ManagementSessionManager_client, this.createClient(token), "f");
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
exports.ManagementSessionManager = ManagementSessionManager;
|
|
110
|
-
_ManagementSessionManager_client = new WeakMap();
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlbWVudF9zZXNzaW9uX21hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Vzc2lvbi9tYW5hZ2VtZW50X3Nlc3Npb25fbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSx1REFBMkQ7QUFzQjNELGtEQUFrRDtBQUNsRCxNQUFhLHdCQUF5QixTQUFRLGdDQUFxQztJQUdqRjs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFNO1FBQ1YsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sdUJBQUEsSUFBSSx3Q0FBUSxDQUFDO0lBQ3RCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsS0FBSyxDQUFDLE1BQU07UUFDVixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsMkNBQTJDLENBQUMsQ0FBQyxDQUFDLHlEQUF5RDtRQUMzSCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsNkJBQTZCLENBQUM7WUFDbkQsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtZQUN2QixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUseURBQXlEO1NBQzdHLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHO1lBQ1osS0FBSyxFQUFFLE9BQU8sQ0FBQyxhQUFhO1lBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVE7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dCB7IENsaWVudCB9IGZyb20gXCIuLi9jbGllbnRcIjtcbmltcG9ydCB7IEVudkludGVyZmFjZSB9IGZyb20gXCIuLi9lbnZcIjtcbmltcG9ydCB7IEhhc0VudiwgU2Vzc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi9zZXNzaW9uX21hbmFnZXJcIjtcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlIH0gZnJvbSBcIi4vc2Vzc2lvbl9zdG9yYWdlXCI7XG5cbi8qKiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIG91ciBcIm1hbmFnZW1lbnQgc2Vzc2lvblwiIGZpbGUgZm9ybWF0ICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZW1lbnRTZXNzaW9uT2JqZWN0IHtcbiAgLyoqIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyICovXG4gIGVtYWlsOiBzdHJpbmc7XG4gIC8qKiBUaGUgSUQgdG9rZW4gKi9cbiAgaWRfdG9rZW46IHN0cmluZztcbiAgLyoqIFRoZSBhY2Nlc3MgdG9rZW4gKi9cbiAgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gIC8qKiBUaGUgcmVmcmVzaCB0b2tlbiAqL1xuICByZWZyZXNoX3Rva2VuOiBzdHJpbmc7XG4gIC8qKiBUaGUgZXhwaXJhdGlvbiB0aW1lIG9mIHRoZSBhY2Nlc3MgdG9rZW4gKi9cbiAgZXhwaXJhdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZW1lbnRTZXNzaW9uSW5mbyBleHRlbmRzIE1hbmFnZW1lbnRTZXNzaW9uT2JqZWN0LCBIYXNFbnYge31cblxuLyoqIFR5cGUgb2Ygc3RvcmFnZSByZXF1aXJlZCBmb3IgbWFuYWdlbWVudCBzZXNzaW9ucyAqL1xuZXhwb3J0IHR5cGUgTWFuYWdlbWVudFNlc3Npb25TdG9yYWdlID0gU2Vzc2lvblN0b3JhZ2U8TWFuYWdlbWVudFNlc3Npb25JbmZvPjtcblxuLyoqIFRoZSBzZXNzaW9uIG1hbmFnZXIgZm9yIG1hbmFnZW1lbnQgc2Vzc2lvbnMgKi9cbmV4cG9ydCBjbGFzcyBNYW5hZ2VtZW50U2Vzc2lvbk1hbmFnZXIgZXh0ZW5kcyBTZXNzaW9uTWFuYWdlcjxNYW5hZ2VtZW50U2Vzc2lvbkluZm8+IHtcbiAgI2NsaWVudDogQ2xpZW50O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBjdXJyZW50IGF1dGggdG9rZW4uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYXN5bmMgdG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5zdG9yYWdlLnJldHJpZXZlKCk7XG4gICAgcmV0dXJuIHNlc3Npb24uaWRfdG9rZW47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNsaWVudCB3aXRoIHRoZSBjdXJyZW50IHNlc3Npb24gYW5kIHJlZnJlc2hlcyB0aGUgY3VycmVudFxuICAgKiBzZXNzaW9uLlxuICAgKi9cbiAgYXN5bmMgY2xpZW50KCk6IFByb21pc2U8Q2xpZW50PiB7XG4gICAgdGhpcy5yZWZyZXNoSWZOZWVkZWQoKTtcbiAgICByZXR1cm4gdGhpcy4jY2xpZW50O1xuICB9XG5cbiAgLyoqIFJldm9rZXMgdGhlIHNlc3Npb24uICovXG4gIGFzeW5jIHJldm9rZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpZHAgPSByZXF1aXJlKFwiQGF3cy1zZGsvY2xpZW50LWNvZ25pdG8taWRlbnRpdHktcHJvdmlkZXJcIik7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCB0aGlzLnN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgaWRwLkNvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50KHtcbiAgICAgIHJlZ2lvbjogdGhpcy5lbnYuUmVnaW9uLFxuICAgICAgc2lnbmVyOiB7IHNpZ246IGFzeW5jIChyZXF1ZXN0OiBhbnkpID0+IHJlcXVlc3QgfSwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgfSk7XG4gICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICBUb2tlbjogc2Vzc2lvbi5yZWZyZXNoX3Rva2VuLFxuICAgICAgQ2xpZW50SWQ6IHRoaXMuZW52LkNsaWVudElkLFxuICAgIH07XG4gICAgYXdhaXQgY2xpZW50LnNlbmQobmV3IGlkcC5SZXZva2VUb2tlbkNvbW1hbmQoaW5wdXQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgaXQncyB0aW1lIHRvIHJlZnJlc2ggdGhpcyB0b2tlbi5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciBpdCdzIHRpbWUgdG8gcmVmcmVzaCB0aGlzIHRva2VuLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFzeW5jIGlzU3RhbGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHRoaXMuc3RvcmFnZS5yZXRyaWV2ZSgpO1xuICAgIHJldHVybiB0aGlzLmhhc0V4cGlyZWQobmV3IERhdGUoc2Vzc2lvbi5leHBpcmF0aW9uKS5nZXRUaW1lKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgc2Vzc2lvbiBhbmQgKipVUERBVEVTL01VVEFURVMqKiBzZWxmLlxuICAgKi9cbiAgYXN5bmMgcmVmcmVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpZHAgPSByZXF1aXJlKFwiQGF3cy1zZGsvY2xpZW50LWNvZ25pdG8taWRlbnRpdHktcHJvdmlkZXJcIik7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCB0aGlzLnN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgaWRwLkNvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50KHsgcmVnaW9uOiB0aGlzLmVudi5SZWdpb24gfSk7XG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IGNsaWVudC5zZW5kKFxuICAgICAgbmV3IGlkcC5Jbml0aWF0ZUF1dGhDb21tYW5kKHtcbiAgICAgICAgQXV0aEZsb3c6IFwiUkVGUkVTSF9UT0tFTl9BVVRIXCIsXG4gICAgICAgIEF1dGhQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgUkVGUkVTSF9UT0tFTjogc2Vzc2lvbi5yZWZyZXNoX3Rva2VuLFxuICAgICAgICB9LFxuICAgICAgICBDbGllbnRJZDogdGhpcy5lbnYuQ2xpZW50SWQsXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgIXJlc3AuQXV0aGVudGljYXRpb25SZXN1bHQgfHxcbiAgICAgICFyZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0LkV4cGlyZXNJbiB8fFxuICAgICAgIXJlc3AuQXV0aGVudGljYXRpb25SZXN1bHQuSWRUb2tlblxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVmcmVzaCBmYWlsZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZXhwaXJlc0luTXMgPSByZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0LkV4cGlyZXNJbiAqIDEwMDA7XG4gICAgY29uc3QgZXhwaXJhdGlvbiA9IG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgZXhwaXJlc0luTXMpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgaWRUb2tlbiA9IHJlc3AuQXV0aGVudGljYXRpb25SZXN1bHQuSWRUb2tlbjtcblxuICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5zYXZlKDxNYW5hZ2VtZW50U2Vzc2lvbkluZm8+e1xuICAgICAgLi4uc2Vzc2lvbixcbiAgICAgIGlkX3Rva2VuOiBpZFRva2VuLFxuICAgICAgYWNjZXNzX3Rva2VuOiByZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0LkFjY2Vzc1Rva2VuLFxuICAgICAgZXhwaXJhdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLiNjbGllbnQgPSB0aGlzLmNyZWF0ZUNsaWVudChpZFRva2VuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBhbiBleGlzdGluZyBtYW5hZ2VtZW50IHNlc3Npb24gZnJvbSBzdG9yYWdlLlxuICAgKiBAcGFyYW0ge01hbmFnZW1lbnRTZXNzaW9uU3RvcmFnZX0gc3RvcmFnZSBUaGUgc3RvcmFnZSBiYWNrIGVuZCB0byB1c2VcbiAgICogQHJldHVybiB7UHJvbWlzZTxTaW5nZXJTZXNzaW9uPn0gTmV3IHRva2VuXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgbG9hZEZyb21TdG9yYWdlKFxuICAgIHN0b3JhZ2U6IE1hbmFnZW1lbnRTZXNzaW9uU3RvcmFnZSxcbiAgKTogUHJvbWlzZTxNYW5hZ2VtZW50U2Vzc2lvbk1hbmFnZXI+IHtcbiAgICBjb25zdCBzZXNzaW9uSW5mbyA9IGF3YWl0IHN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gbmV3IE1hbmFnZW1lbnRTZXNzaW9uTWFuYWdlcihcbiAgICAgIHNlc3Npb25JbmZvLmVudltcIkRldi1DdWJlU2lnbmVyU3RhY2tcIl0sXG4gICAgICBzZXNzaW9uSW5mby5pZF90b2tlbixcbiAgICAgIHN0b3JhZ2UsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtFbnZJbnRlcmZhY2V9IGVudiBUaGUgZW52aXJvbm1lbnQgb2YgdGhlIHNlc3Npb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRva2VuIFRoZSBjdXJyZW50IHRva2VuIG9mIHRoZSBzZXNzaW9uXG4gICAqIEBwYXJhbSB7TWFuYWdlbWVudFNlc3Npb25TdG9yYWdlfSBzdG9yYWdlIFRoZSBzdG9yYWdlIGJhY2sgZW5kIHRvIHVzZVxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihlbnY6IEVudkludGVyZmFjZSwgdG9rZW46IHN0cmluZywgc3RvcmFnZTogTWFuYWdlbWVudFNlc3Npb25TdG9yYWdlKSB7XG4gICAgc3VwZXIoZW52LCBzdG9yYWdlKTtcbiAgICB0aGlzLiNjbGllbnQgPSB0aGlzLmNyZWF0ZUNsaWVudCh0b2tlbik7XG4gIH1cbn1cbiJdfQ==
|