@cubist-labs/cubesigner-sdk 0.2.24 → 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 -18
- package/dist/src/api.js +70 -17
- package/dist/src/client.d.ts +35 -14
- package/dist/src/client.js +12 -8
- package/dist/src/error.d.ts +29 -0
- package/dist/src/error.js +36 -0
- package/dist/src/events.d.ts +1 -1
- package/dist/src/events.js +1 -1
- package/dist/src/index.d.ts +8 -11
- package/dist/src/index.js +11 -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 +49 -13
- package/dist/src/session/signer_session_manager.js +104 -26
- package/dist/src/util.d.ts +14 -0
- package/dist/src/util.js +24 -27
- package/package.json +19 -46
- package/src/api.ts +81 -23
- package/src/client.ts +12 -8
- package/src/error.ts +42 -0
- package/src/events.ts +3 -1
- package/src/index.ts +12 -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 +137 -28
- 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 -208
- 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 -249
- package/src/session/cognito_manager.ts +0 -161
- package/src/session/session_manager.ts +0 -165
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { Client } from "../client";
|
|
2
|
-
import { EnvInterface } from "..";
|
|
3
|
-
import { OrgSessionManager } from "./session_manager";
|
|
4
|
-
import { SessionStorage } from "./session_storage";
|
|
5
|
-
/** JSON representation of the OIDC token */
|
|
6
|
-
export interface OidcSessionData {
|
|
7
|
-
/** The environment that this token is for */
|
|
8
|
-
env: EnvInterface;
|
|
9
|
-
/** The organization ID */
|
|
10
|
-
org_id: string;
|
|
11
|
-
/** The OIDC token that this session was created from */
|
|
12
|
-
oidc_token: string;
|
|
13
|
-
/** The token to include in Authorization header */
|
|
14
|
-
token: string;
|
|
15
|
-
/** Token expiration timestamp */
|
|
16
|
-
token_exp: number;
|
|
17
|
-
/** The scopes of the token */
|
|
18
|
-
scopes: Array<string>;
|
|
19
|
-
}
|
|
20
|
-
/** Type of storage required for OIDC sessions */
|
|
21
|
-
export type OidcSessionStorage = SessionStorage<OidcSessionData>;
|
|
22
|
-
/** Manager for OIDC sessions. */
|
|
23
|
-
export declare class OidcSessionManager extends OrgSessionManager<OidcSessionData> {
|
|
24
|
-
#private;
|
|
25
|
-
/**
|
|
26
|
-
* @return {string} The current auth token.
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
|
-
token(): Promise<string>;
|
|
30
|
-
/**
|
|
31
|
-
* Returns a client with the current session and refreshes the current
|
|
32
|
-
* session. May **UPDATE/MUTATE** self.
|
|
33
|
-
*/
|
|
34
|
-
client(): Promise<Client>;
|
|
35
|
-
/** Revokes the session. */
|
|
36
|
-
revoke(): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Refreshes the session and **UPDATES/MUTATES** self.
|
|
39
|
-
*/
|
|
40
|
-
refresh(): Promise<void>;
|
|
41
|
-
/**
|
|
42
|
-
* Returns whether it's time to refresh this token.
|
|
43
|
-
* @return {boolean} Whether it's time to refresh this token.
|
|
44
|
-
* @internal
|
|
45
|
-
*/
|
|
46
|
-
isStale(): Promise<boolean>;
|
|
47
|
-
/**
|
|
48
|
-
* Refreshes the session if it is about to expire.
|
|
49
|
-
* @return {boolean} Whether the session token was refreshed.
|
|
50
|
-
* @internal
|
|
51
|
-
*/
|
|
52
|
-
refreshIfNeeded(): Promise<boolean>;
|
|
53
|
-
/**
|
|
54
|
-
* Authenticate an OIDC user and create a new session for them.
|
|
55
|
-
* @param {EnvInterface} env The environment of the session
|
|
56
|
-
* @param {SessionStorage<SignerSessionObject>} storage The signer session storage
|
|
57
|
-
* @param {string} oidcToken The OIDC token
|
|
58
|
-
* @param {string} orgId The id of the organization that the user is in
|
|
59
|
-
* @param {List<string>} scopes The scopes of the resulting session
|
|
60
|
-
* @return {Promise<OidcSessionManager>} The signer session
|
|
61
|
-
*/
|
|
62
|
-
static create(env: EnvInterface, storage: SessionStorage<OidcSessionData>, oidcToken: string, orgId: string, scopes: Array<string>): Promise<OidcSessionManager>;
|
|
63
|
-
/**
|
|
64
|
-
* Load from storage
|
|
65
|
-
* @param {OidcSessionStorage} storage The storage to load from
|
|
66
|
-
* @return {Promise<OidcSessionManager>} New OIDC session manager
|
|
67
|
-
*/
|
|
68
|
-
static loadFromStorage(storage: OidcSessionStorage): Promise<OidcSessionManager>;
|
|
69
|
-
/**
|
|
70
|
-
* Constructor.
|
|
71
|
-
* @param {EnvInterface} env The environment of the session
|
|
72
|
-
* @param {string} orgId The id of the org associated with this session
|
|
73
|
-
* @param {string} token The authorization token to use
|
|
74
|
-
* @param {SessionStorage<U>} storage The storage back end to use for storing
|
|
75
|
-
* session information
|
|
76
|
-
*/
|
|
77
|
-
private constructor();
|
|
78
|
-
}
|
|
@@ -1,142 +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 _a, _OidcSessionManager_client, _OidcSessionManager_exchangeToken;
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.OidcSessionManager = void 0;
|
|
19
|
-
const util_1 = require("../util");
|
|
20
|
-
const session_manager_1 = require("./session_manager");
|
|
21
|
-
const openapi_fetch_1 = __importDefault(require("openapi-fetch"));
|
|
22
|
-
// An token obtained from an OIDC token is valid for 5 minutes
|
|
23
|
-
const OIDC_TOKEN_EXP_SECS = 300;
|
|
24
|
-
/** Manager for OIDC sessions. */
|
|
25
|
-
class OidcSessionManager extends session_manager_1.OrgSessionManager {
|
|
26
|
-
/**
|
|
27
|
-
* @return {string} The current auth token.
|
|
28
|
-
* @internal
|
|
29
|
-
*/
|
|
30
|
-
async token() {
|
|
31
|
-
const session = await this.storage.retrieve();
|
|
32
|
-
return session.token;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Returns a client with the current session and refreshes the current
|
|
36
|
-
* session. May **UPDATE/MUTATE** self.
|
|
37
|
-
*/
|
|
38
|
-
async client() {
|
|
39
|
-
await this.refreshIfNeeded();
|
|
40
|
-
return __classPrivateFieldGet(this, _OidcSessionManager_client, "f");
|
|
41
|
-
}
|
|
42
|
-
/** Revokes the session. */
|
|
43
|
-
async revoke() {
|
|
44
|
-
this.unsupported("revoke");
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Refreshes the session and **UPDATES/MUTATES** self.
|
|
48
|
-
*/
|
|
49
|
-
async refresh() {
|
|
50
|
-
const session = await this.storage.retrieve();
|
|
51
|
-
const [token, tokenExp] = await __classPrivateFieldGet(OidcSessionManager, _a, "m", _OidcSessionManager_exchangeToken).call(OidcSessionManager, session.env, session.oidc_token, session.org_id, session.scopes);
|
|
52
|
-
await this.storage.save({
|
|
53
|
-
...session,
|
|
54
|
-
token: token,
|
|
55
|
-
token_exp: tokenExp,
|
|
56
|
-
});
|
|
57
|
-
__classPrivateFieldSet(this, _OidcSessionManager_client, this.createClient(token), "f");
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Returns whether it's time to refresh this token.
|
|
61
|
-
* @return {boolean} Whether it's time to refresh this token.
|
|
62
|
-
* @internal
|
|
63
|
-
*/
|
|
64
|
-
async isStale() {
|
|
65
|
-
const session = await this.storage.retrieve();
|
|
66
|
-
return this.hasExpired(session.token_exp);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Refreshes the session if it is about to expire.
|
|
70
|
-
* @return {boolean} Whether the session token was refreshed.
|
|
71
|
-
* @internal
|
|
72
|
-
*/
|
|
73
|
-
async refreshIfNeeded() {
|
|
74
|
-
if (await this.isStale()) {
|
|
75
|
-
await this.refresh();
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Authenticate an OIDC user and create a new session for them.
|
|
82
|
-
* @param {EnvInterface} env The environment of the session
|
|
83
|
-
* @param {SessionStorage<SignerSessionObject>} storage The signer session storage
|
|
84
|
-
* @param {string} oidcToken The OIDC token
|
|
85
|
-
* @param {string} orgId The id of the organization that the user is in
|
|
86
|
-
* @param {List<string>} scopes The scopes of the resulting session
|
|
87
|
-
* @return {Promise<OidcSessionManager>} The signer session
|
|
88
|
-
*/
|
|
89
|
-
static async create(env, storage, oidcToken, orgId, scopes) {
|
|
90
|
-
const [token, tokenExp] = await __classPrivateFieldGet(OidcSessionManager, _a, "m", _OidcSessionManager_exchangeToken).call(OidcSessionManager, env, oidcToken, orgId, scopes);
|
|
91
|
-
await storage.save({
|
|
92
|
-
env,
|
|
93
|
-
org_id: orgId,
|
|
94
|
-
oidc_token: oidcToken,
|
|
95
|
-
token,
|
|
96
|
-
token_exp: tokenExp,
|
|
97
|
-
scopes,
|
|
98
|
-
});
|
|
99
|
-
return new OidcSessionManager(env, orgId, token, storage);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Load from storage
|
|
103
|
-
* @param {OidcSessionStorage} storage The storage to load from
|
|
104
|
-
* @return {Promise<OidcSessionManager>} New OIDC session manager
|
|
105
|
-
*/
|
|
106
|
-
static async loadFromStorage(storage) {
|
|
107
|
-
const info = await storage.retrieve();
|
|
108
|
-
return new OidcSessionManager(info.env, info.org_id, info.token, storage);
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Constructor.
|
|
112
|
-
* @param {EnvInterface} env The environment of the session
|
|
113
|
-
* @param {string} orgId The id of the org associated with this session
|
|
114
|
-
* @param {string} token The authorization token to use
|
|
115
|
-
* @param {SessionStorage<U>} storage The storage back end to use for storing
|
|
116
|
-
* session information
|
|
117
|
-
*/
|
|
118
|
-
constructor(env, orgId, token, storage) {
|
|
119
|
-
super(env, orgId, storage);
|
|
120
|
-
_OidcSessionManager_client.set(this, void 0);
|
|
121
|
-
__classPrivateFieldSet(this, _OidcSessionManager_client, this.createClient(token), "f");
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
exports.OidcSessionManager = OidcSessionManager;
|
|
125
|
-
_a = OidcSessionManager, _OidcSessionManager_client = new WeakMap(), _OidcSessionManager_exchangeToken = async function _OidcSessionManager_exchangeToken(env, oidcToken, orgId, scopes) {
|
|
126
|
-
const client = (0, openapi_fetch_1.default)({
|
|
127
|
-
baseUrl: env.SignerApiRoot,
|
|
128
|
-
headers: {
|
|
129
|
-
Authorization: oidcToken,
|
|
130
|
-
},
|
|
131
|
-
});
|
|
132
|
-
const resp = await client.post("/v0/org/{org_id}/oidc", {
|
|
133
|
-
params: { path: { org_id: orgId } },
|
|
134
|
-
body: {
|
|
135
|
-
scopes,
|
|
136
|
-
},
|
|
137
|
-
parseAs: "json",
|
|
138
|
-
});
|
|
139
|
-
const data = (0, util_1.assertOk)(resp);
|
|
140
|
-
return [data.token, new Date().getTime() / 1000 + OIDC_TOKEN_EXP_SECS];
|
|
141
|
-
};
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkY19zZXNzaW9uX21hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Vzc2lvbi9vaWRjX3Nlc3Npb25fbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxrQ0FBbUM7QUFDbkMsdURBQXNEO0FBRXRELGtFQUF5QztBQUV6Qyw4REFBOEQ7QUFDOUQsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUF3QmhDLGlDQUFpQztBQUNqQyxNQUFhLGtCQUFtQixTQUFRLG1DQUFrQztJQUd4RTs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFNO1FBQ1YsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDN0IsT0FBTyx1QkFBQSxJQUFJLGtDQUFRLENBQUM7SUFDdEIsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxNQUFNLHVCQUFBLGtCQUFrQiw2Q0FBZSxNQUFqQyxrQkFBa0IsRUFDaEQsT0FBTyxDQUFDLEdBQUcsRUFDWCxPQUFPLENBQUMsVUFBVSxFQUNsQixPQUFPLENBQUMsTUFBTSxFQUNkLE9BQU8sQ0FBQyxNQUFNLENBQ2YsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFD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QXFCLENBQUM7SUFDaEQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF0aHMsIENsaWVudCB9IGZyb20gXCIuLi9jbGllbnRcIjtcbmltcG9ydCB7IEVudkludGVyZmFjZSB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgYXNzZXJ0T2sgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHsgT3JnU2Vzc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi9zZXNzaW9uX21hbmFnZXJcIjtcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlIH0gZnJvbSBcIi4vc2Vzc2lvbl9zdG9yYWdlXCI7XG5pbXBvcnQgY3JlYXRlQ2xpZW50IGZyb20gXCJvcGVuYXBpLWZldGNoXCI7XG5cbi8vIEFuIHRva2VuIG9idGFpbmVkIGZyb20gYW4gT0lEQyB0b2tlbiBpcyB2YWxpZCBmb3IgNSBtaW51dGVzXG5jb25zdCBPSURDX1RPS0VOX0VYUF9TRUNTID0gMzAwO1xuXG50eXBlIE9pZGNBdXRoUmVzcG9uc2UgPVxuICBwYXRoc1tcIi92MC9vcmcve29yZ19pZH0vb2lkY1wiXVtcInBvc3RcIl1bXCJyZXNwb25zZXNcIl1bXCIyMDBcIl1bXCJjb250ZW50XCJdW1wiYXBwbGljYXRpb24vanNvblwiXTtcblxuLyoqIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIE9JREMgdG9rZW4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2lkY1Nlc3Npb25EYXRhIHtcbiAgLyoqIFRoZSBlbnZpcm9ubWVudCB0aGF0IHRoaXMgdG9rZW4gaXMgZm9yICovXG4gIGVudjogRW52SW50ZXJmYWNlO1xuICAvKiogVGhlIG9yZ2FuaXphdGlvbiBJRCAqL1xuICBvcmdfaWQ6IHN0cmluZztcbiAgLyoqIFRoZSBPSURDIHRva2VuIHRoYXQgdGhpcyBzZXNzaW9uIHdhcyBjcmVhdGVkIGZyb20gKi9cbiAgb2lkY190b2tlbjogc3RyaW5nO1xuICAvKiogVGhlIHRva2VuIHRvIGluY2x1ZGUgaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIgKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIFRva2VuIGV4cGlyYXRpb24gdGltZXN0YW1wICovXG4gIHRva2VuX2V4cDogbnVtYmVyO1xuICAvKiogVGhlIHNjb3BlcyBvZiB0aGUgdG9rZW4gKi9cbiAgc2NvcGVzOiBBcnJheTxzdHJpbmc+O1xufVxuXG4vKiogVHlwZSBvZiBzdG9yYWdlIHJlcXVpcmVkIGZvciBPSURDIHNlc3Npb25zICovXG5leHBvcnQgdHlwZSBPaWRjU2Vzc2lvblN0b3JhZ2UgPSBTZXNzaW9uU3RvcmFnZTxPaWRjU2Vzc2lvbkRhdGE+O1xuXG4vKiogTWFuYWdlciBmb3IgT0lEQyBzZXNzaW9ucy4gKi9cbmV4cG9ydCBjbGFzcyBPaWRjU2Vzc2lvbk1hbmFnZXIgZXh0ZW5kcyBPcmdTZXNzaW9uTWFuYWdlcjxPaWRjU2Vzc2lvbkRhdGE+IHtcbiAgI2NsaWVudDogQ2xpZW50O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBjdXJyZW50IGF1dGggdG9rZW4uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYXN5bmMgdG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5zdG9yYWdlLnJldHJpZXZlKCk7XG4gICAgcmV0dXJuIHNlc3Npb24udG9rZW47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNsaWVudCB3aXRoIHRoZSBjdXJyZW50IHNlc3Npb24gYW5kIHJlZnJlc2hlcyB0aGUgY3VycmVudFxuICAgKiBzZXNzaW9uLiBNYXkgKipVUERBVEUvTVVUQVRFKiogc2VsZi5cbiAgICovXG4gIGFzeW5jIGNsaWVudCgpOiBQcm9taXNlPENsaWVudD4ge1xuICAgIGF3YWl0IHRoaXMucmVmcmVzaElmTmVlZGVkKCk7XG4gICAgcmV0dXJuIHRoaXMuI2NsaWVudDtcbiAgfVxuXG4gIC8qKiBSZXZva2VzIHRoZSBzZXNzaW9uLiAqL1xuICBhc3luYyByZXZva2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy51bnN1cHBvcnRlZChcInJldm9rZVwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIHNlc3Npb24gYW5kICoqVVBEQVRFUy9NVVRBVEVTKiogc2VsZi5cbiAgICovXG4gIGFzeW5jIHJlZnJlc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHRoaXMuc3RvcmFnZS5yZXRyaWV2ZSgpO1xuICAgIGNvbnN0IFt0b2tlbiwgdG9rZW5FeHBdID0gYXdhaXQgT2lkY1Nlc3Npb25NYW5hZ2VyLiNleGNoYW5nZVRva2VuKFxuICAgICAgc2Vzc2lvbi5lbnYsXG4gICAgICBzZXNzaW9uLm9pZGNfdG9rZW4sXG4gICAgICBzZXNzaW9uLm9yZ19pZCxcbiAgICAgIHNlc3Npb24uc2NvcGVzLFxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNhdmUoPE9pZGNTZXNzaW9uRGF0YT57XG4gICAgICAuLi5zZXNzaW9uLFxuICAgICAgdG9rZW46IHRva2VuLFxuICAgICAgdG9rZW5fZXhwOiB0b2tlbkV4cCxcbiAgICB9KTtcbiAgICB0aGlzLiNjbGllbnQgPSB0aGlzLmNyZWF0ZUNsaWVudCh0b2tlbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIGl0J3MgdGltZSB0byByZWZyZXNoIHRoaXMgdG9rZW4uXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgaXQncyB0aW1lIHRvIHJlZnJlc2ggdGhpcyB0b2tlbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBpc1N0YWxlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCB0aGlzLnN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gdGhpcy5oYXNFeHBpcmVkKHNlc3Npb24udG9rZW5fZXhwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIHNlc3Npb24gaWYgaXQgaXMgYWJvdXQgdG8gZXhwaXJlLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoZSBzZXNzaW9uIHRva2VuIHdhcyByZWZyZXNoZWQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYXN5bmMgcmVmcmVzaElmTmVlZGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmIChhd2FpdCB0aGlzLmlzU3RhbGUoKSkge1xuICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZSBhbiBPSURDIHVzZXIgYW5kIGNyZWF0ZSBhIG5ldyBzZXNzaW9uIGZvciB0aGVtLlxuICAgKiBAcGFyYW0ge0VudkludGVyZmFjZX0gZW52IFRoZSBlbnZpcm9ubWVudCBvZiB0aGUgc2Vzc2lvblxuICAgKiBAcGFyYW0ge1Nlc3Npb25TdG9yYWdlPFNpZ25lclNlc3Npb25PYmplY3Q+fSBzdG9yYWdlIFRoZSBzaWduZXIgc2Vzc2lvbiBzdG9yYWdlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvaWRjVG9rZW4gVGhlIE9JREMgdG9rZW5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9yZ0lkIFRoZSBpZCBvZiB0aGUgb3JnYW5pemF0aW9uIHRoYXQgdGhlIHVzZXIgaXMgaW5cbiAgICogQHBhcmFtIHtMaXN0PHN0cmluZz59IHNjb3BlcyBUaGUgc2NvcGVzIG9mIHRoZSByZXN1bHRpbmcgc2Vzc2lvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPE9pZGNTZXNzaW9uTWFuYWdlcj59IFRoZSBzaWduZXIgc2Vzc2lvblxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZShcbiAgICBlbnY6IEVudkludGVyZmFjZSxcbiAgICBzdG9yYWdlOiBTZXNzaW9uU3RvcmFnZTxPaWRjU2Vzc2lvbkRhdGE+LFxuICAgIG9pZGNUb2tlbjogc3RyaW5nLFxuICAgIG9yZ0lkOiBzdHJpbmcsXG4gICAgc2NvcGVzOiBBcnJheTxzdHJpbmc+LFxuICApOiBQcm9taXNlPE9pZGNTZXNzaW9uTWFuYWdlcj4ge1xuICAgIGNvbnN0IFt0b2tlbiwgdG9rZW5FeHBdID0gYXdhaXQgT2lkY1Nlc3Npb25NYW5hZ2VyLiNleGNoYW5nZVRva2VuKFxuICAgICAgZW52LFxuICAgICAgb2lkY1Rva2VuLFxuICAgICAgb3JnSWQsXG4gICAgICBzY29wZXMsXG4gICAgKTtcbiAgICBhd2FpdCBzdG9yYWdlLnNhdmUoPE9pZGNTZXNzaW9uRGF0YT57XG4gICAgICBlbnYsXG4gICAgICBvcmdfaWQ6IG9yZ0lkLFxuICAgICAgb2lkY190b2tlbjogb2lkY1Rva2VuLFxuICAgICAgdG9rZW4sXG4gICAgICB0b2tlbl9leHA6IHRva2VuRXhwLFxuICAgICAgc2NvcGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgT2lkY1Nlc3Npb25NYW5hZ2VyKGVudiwgb3JnSWQsIHRva2VuLCBzdG9yYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGZyb20gc3RvcmFnZVxuICAgKiBAcGFyYW0ge09pZGNTZXNzaW9uU3RvcmFnZX0gc3RvcmFnZSBUaGUgc3RvcmFnZSB0byBsb2FkIGZyb21cbiAgICogQHJldHVybiB7UHJvbWlzZTxPaWRjU2Vzc2lvbk1hbmFnZXI+fSBOZXcgT0lEQyBzZXNzaW9uIG1hbmFnZXJcbiAgICovXG4gIHN0YXRpYyBhc3luYyBsb2FkRnJvbVN0b3JhZ2Uoc3RvcmFnZTogT2lkY1Nlc3Npb25TdG9yYWdlKTogUHJvbWlzZTxPaWRjU2Vzc2lvbk1hbmFnZXI+IHtcbiAgICBjb25zdCBpbmZvID0gYXdhaXQgc3RvcmFnZS5yZXRyaWV2ZSgpO1xuICAgIHJldHVybiBuZXcgT2lkY1Nlc3Npb25NYW5hZ2VyKGluZm8uZW52LCBpbmZvLm9yZ19pZCwgaW5mby50b2tlbiwgc3RvcmFnZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7RW52SW50ZXJmYWNlfSBlbnYgVGhlIGVudmlyb25tZW50IG9mIHRoZSBzZXNzaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcmdJZCBUaGUgaWQgb2YgdGhlIG9yZyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZXNzaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbiBUaGUgYXV0aG9yaXphdGlvbiB0b2tlbiB0byB1c2VcbiAgICogQHBhcmFtIHtTZXNzaW9uU3RvcmFnZTxVPn0gc3RvcmFnZSBUaGUgc3RvcmFnZSBiYWNrIGVuZCB0byB1c2UgZm9yIHN0b3JpbmdcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAqL1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIGVudjogRW52SW50ZXJmYWNlLFxuICAgIG9yZ0lkOiBzdHJpbmcsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBzdG9yYWdlOiBTZXNzaW9uU3RvcmFnZTxPaWRjU2Vzc2lvbkRhdGE+LFxuICApIHtcbiAgICBzdXBlcihlbnYsIG9yZ0lkLCBzdG9yYWdlKTtcbiAgICB0aGlzLiNjbGllbnQgPSB0aGlzLmNyZWF0ZUNsaWVudCh0b2tlbik7XG4gIH1cblxuICAvKipcbiAgICogRXhjaGFuZ2UgYW4gT0lEQyB0b2tlbiBmb3IgYSBDdWJlU2lnbmVyIHNlc3Npb24gdG9rZW4uXG4gICAqIEBwYXJhbSB7RW52SW50ZXJmYWNlfSBlbnYgVGhlIEN1YmVTaWduZXIgZW52aXJvbm1lbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9pZGNUb2tlbiBUaGUgT0lEQyB0b2tlblxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3JnSWQgVGhlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gdGhhdCB0aGUgdXNlciBpcyBpblxuICAgKiBAcGFyYW0ge0xpc3Q8c3RyaW5nPn0gc2NvcGVzIFRoZSBzY29wZXMgb2YgdGhlIHJlc3VsdGluZyBzZXNzaW9uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8W3N0cmluZywgbnVtYmVyXT59IFRoZSBzZXNzaW9uIHRva2VuIGFuZCBpdHMgZXhwaXJhdGlvbiB0aW1lXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgI2V4Y2hhbmdlVG9rZW4oXG4gICAgZW52OiBFbnZJbnRlcmZhY2UsXG4gICAgb2lkY1Rva2VuOiBzdHJpbmcsXG4gICAgb3JnSWQ6IHN0cmluZyxcbiAgICBzY29wZXM6IEFycmF5PHN0cmluZz4sXG4gICk6IFByb21pc2U8W3N0cmluZywgbnVtYmVyXT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGNyZWF0ZUNsaWVudDxwYXRocz4oe1xuICAgICAgYmFzZVVybDogZW52LlNpZ25lckFwaVJvb3QsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IG9pZGNUb2tlbixcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IGNsaWVudC5wb3N0KFwiL3YwL29yZy97b3JnX2lkfS9vaWRjXCIsIHtcbiAgICAgIHBhcmFtczogeyBwYXRoOiB7IG9yZ19pZDogb3JnSWQgfSB9LFxuICAgICAgYm9keToge1xuICAgICAgICBzY29wZXMsXG4gICAgICB9LFxuICAgICAgcGFyc2VBczogXCJqc29uXCIsXG4gICAgfSk7XG4gICAgY29uc3QgZGF0YSA9IGFzc2VydE9rKHJlc3ApIGFzIE9pZGNBdXRoUmVzcG9uc2U7XG4gICAgcmV0dXJuIFtkYXRhLnRva2VuLCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgKyBPSURDX1RPS0VOX0VYUF9TRUNTXTtcbiAgfVxufVxuIl19
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { Events } from "../events";
|
|
2
|
-
import { EnvInterface } from "../env";
|
|
3
|
-
import { Client } from "../api";
|
|
4
|
-
import { SessionStorage } from "./session_storage";
|
|
5
|
-
/** Generic session manager interface. */
|
|
6
|
-
export declare abstract class SessionManager<U> {
|
|
7
|
-
#private;
|
|
8
|
-
readonly env: EnvInterface;
|
|
9
|
-
readonly storage: SessionStorage<U>;
|
|
10
|
-
readonly events: Events;
|
|
11
|
-
/**
|
|
12
|
-
* @return {string} The current auth token.
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
|
-
abstract token(): Promise<string>;
|
|
16
|
-
/** Returns a client instance that uses the token. */
|
|
17
|
-
abstract client(): Promise<Client>;
|
|
18
|
-
/** Revokes the session. */
|
|
19
|
-
abstract revoke(): Promise<void>;
|
|
20
|
-
/** Refreshes the session. */
|
|
21
|
-
abstract refresh(): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Returns whether it's time to refresh this token.
|
|
24
|
-
* @return {boolean} Whether it's time to refresh this token.
|
|
25
|
-
* @internal
|
|
26
|
-
*/
|
|
27
|
-
abstract isStale(): Promise<boolean>;
|
|
28
|
-
/**
|
|
29
|
-
* Refreshes the session if it is about to expire.
|
|
30
|
-
* @return {boolean} Whether the session token was refreshed.
|
|
31
|
-
* @internal
|
|
32
|
-
*/
|
|
33
|
-
refreshIfNeeded(): Promise<boolean>;
|
|
34
|
-
/**
|
|
35
|
-
* Automatically refreshes the session in the background.
|
|
36
|
-
* The default implementation refreshes (if needed) every minute.
|
|
37
|
-
* Base implementations can, instead use the token expirations timestamps
|
|
38
|
-
* to refresh less often. This is a simple wrapper around `setInterval`.
|
|
39
|
-
* @return {number} The interval ID of the refresh timer.
|
|
40
|
-
*/
|
|
41
|
-
autoRefresh(): RefreshId;
|
|
42
|
-
/**
|
|
43
|
-
* Clears the auto refresh timer.
|
|
44
|
-
* @param {number} timer The timer ID to clear.
|
|
45
|
-
*/
|
|
46
|
-
clearAutoRefresh(timer: RefreshId): void;
|
|
47
|
-
/**
|
|
48
|
-
* Constructor.
|
|
49
|
-
* @param {EnvInterface} env The environment of the session
|
|
50
|
-
* @param {SessionStorage<U>} storage The storage back end to use for storing
|
|
51
|
-
* session information
|
|
52
|
-
*/
|
|
53
|
-
constructor(env: EnvInterface, storage: SessionStorage<U>);
|
|
54
|
-
/**
|
|
55
|
-
* Creates a new REST client with a given token
|
|
56
|
-
* @param {string} token The authorization token to use for the client
|
|
57
|
-
* @return {Client} The new REST client
|
|
58
|
-
*/
|
|
59
|
-
protected createClient(token: string): Client;
|
|
60
|
-
/**
|
|
61
|
-
* Check if a timestamp is within {@link bufferSeconds} seconds from expiration.
|
|
62
|
-
* @param {Date} exp The timestamp to check
|
|
63
|
-
* @param {number} bufferSeconds Time buffer in seconds (defaults to 0s)
|
|
64
|
-
* @return {boolean} True if the timestamp has expired
|
|
65
|
-
*/
|
|
66
|
-
protected static hasExpired(exp: Date, bufferSeconds?: number): boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Check if a timestamp is stale, i.e., it's within {@link bufferSeconds} seconds from expiration.
|
|
69
|
-
* @param {Date} exp The timestamp to check
|
|
70
|
-
* @param {number} bufferSeconds Time buffer in seconds (defaults to 30s)
|
|
71
|
-
* @return {boolean} True if the timestamp is stale
|
|
72
|
-
*/
|
|
73
|
-
protected static isStale(exp: Date, bufferSeconds?: number): boolean;
|
|
74
|
-
/**
|
|
75
|
-
* Throws an error that says that some feature is unsupported.
|
|
76
|
-
* @param {string} name The name of the feature that is not supported
|
|
77
|
-
*/
|
|
78
|
-
protected unsupported(name: string): never;
|
|
79
|
-
}
|
|
80
|
-
/** Interface for a session manager that knows about the org that the session is in. */
|
|
81
|
-
export declare abstract class OrgSessionManager<U> extends SessionManager<U> {
|
|
82
|
-
readonly orgId: string;
|
|
83
|
-
/**
|
|
84
|
-
* Constructor.
|
|
85
|
-
* @param {EnvInterface} env The environment of the session
|
|
86
|
-
* @param {string} orgId The id of the org associated with this session
|
|
87
|
-
* @param {SessionStorage<U>} storage The storage back end to use for storing
|
|
88
|
-
* session information
|
|
89
|
-
*/
|
|
90
|
-
constructor(env: EnvInterface, orgId: string, storage: SessionStorage<U>);
|
|
91
|
-
}
|
|
92
|
-
export interface HasEnv {
|
|
93
|
-
/** The environment */
|
|
94
|
-
env: {
|
|
95
|
-
["Dev-CubeSignerStack"]: EnvInterface;
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
/** Type of the refresh timer ID. */
|
|
99
|
-
export type RefreshId = ReturnType<typeof setInterval>;
|
|
@@ -1,136 +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 _SessionManager_refreshing;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.OrgSessionManager = exports.SessionManager = void 0;
|
|
16
|
-
const events_1 = require("../events");
|
|
17
|
-
const api_1 = require("../api");
|
|
18
|
-
const util_1 = require("../util");
|
|
19
|
-
const DEFAULT_EXPIRATION_BUFFER_SECS = 30;
|
|
20
|
-
/** Generic session manager interface. */
|
|
21
|
-
class SessionManager {
|
|
22
|
-
/**
|
|
23
|
-
* Refreshes the session if it is about to expire.
|
|
24
|
-
* @return {boolean} Whether the session token was refreshed.
|
|
25
|
-
* @internal
|
|
26
|
-
*/
|
|
27
|
-
async refreshIfNeeded() {
|
|
28
|
-
if (await this.isStale()) {
|
|
29
|
-
if (__classPrivateFieldGet(this, _SessionManager_refreshing, "f")) {
|
|
30
|
-
// wait until done refreshing
|
|
31
|
-
while (__classPrivateFieldGet(this, _SessionManager_refreshing, "f")) {
|
|
32
|
-
await (0, util_1.delay)(100);
|
|
33
|
-
}
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
// refresh
|
|
38
|
-
__classPrivateFieldSet(this, _SessionManager_refreshing, true, "f");
|
|
39
|
-
try {
|
|
40
|
-
await this.refresh();
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
finally {
|
|
44
|
-
__classPrivateFieldSet(this, _SessionManager_refreshing, false, "f");
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Automatically refreshes the session in the background.
|
|
52
|
-
* The default implementation refreshes (if needed) every minute.
|
|
53
|
-
* Base implementations can, instead use the token expirations timestamps
|
|
54
|
-
* to refresh less often. This is a simple wrapper around `setInterval`.
|
|
55
|
-
* @return {number} The interval ID of the refresh timer.
|
|
56
|
-
*/
|
|
57
|
-
autoRefresh() {
|
|
58
|
-
return setInterval(async () => {
|
|
59
|
-
await this.refreshIfNeeded();
|
|
60
|
-
}, 60 * 1000);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Clears the auto refresh timer.
|
|
64
|
-
* @param {number} timer The timer ID to clear.
|
|
65
|
-
*/
|
|
66
|
-
clearAutoRefresh(timer) {
|
|
67
|
-
clearInterval(timer);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Constructor.
|
|
71
|
-
* @param {EnvInterface} env The environment of the session
|
|
72
|
-
* @param {SessionStorage<U>} storage The storage back end to use for storing
|
|
73
|
-
* session information
|
|
74
|
-
*/
|
|
75
|
-
constructor(env, storage) {
|
|
76
|
-
this.events = new events_1.Events();
|
|
77
|
-
_SessionManager_refreshing.set(this, false);
|
|
78
|
-
this.env = env;
|
|
79
|
-
this.storage = storage;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Creates a new REST client with a given token
|
|
83
|
-
* @param {string} token The authorization token to use for the client
|
|
84
|
-
* @return {Client} The new REST client
|
|
85
|
-
*/
|
|
86
|
-
createClient(token) {
|
|
87
|
-
return (0, api_1.createHttpClient)(this.env.SignerApiRoot, token);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Check if a timestamp is within {@link bufferSeconds} seconds from expiration.
|
|
91
|
-
* @param {Date} exp The timestamp to check
|
|
92
|
-
* @param {number} bufferSeconds Time buffer in seconds (defaults to 0s)
|
|
93
|
-
* @return {boolean} True if the timestamp has expired
|
|
94
|
-
*/
|
|
95
|
-
static hasExpired(exp, bufferSeconds) {
|
|
96
|
-
bufferSeconds ??= 0;
|
|
97
|
-
const expMsSinceEpoch = exp.getTime();
|
|
98
|
-
const nowMsSinceEpoch = new Date().getTime();
|
|
99
|
-
const bufferMs = bufferSeconds * 1000;
|
|
100
|
-
return expMsSinceEpoch < nowMsSinceEpoch + bufferMs;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Check if a timestamp is stale, i.e., it's within {@link bufferSeconds} seconds from expiration.
|
|
104
|
-
* @param {Date} exp The timestamp to check
|
|
105
|
-
* @param {number} bufferSeconds Time buffer in seconds (defaults to 30s)
|
|
106
|
-
* @return {boolean} True if the timestamp is stale
|
|
107
|
-
*/
|
|
108
|
-
static isStale(exp, bufferSeconds) {
|
|
109
|
-
return this.hasExpired(exp, bufferSeconds ?? DEFAULT_EXPIRATION_BUFFER_SECS);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Throws an error that says that some feature is unsupported.
|
|
113
|
-
* @param {string} name The name of the feature that is not supported
|
|
114
|
-
*/
|
|
115
|
-
unsupported(name) {
|
|
116
|
-
throw new Error(`'${name}' not supported`);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
exports.SessionManager = SessionManager;
|
|
120
|
-
_SessionManager_refreshing = new WeakMap();
|
|
121
|
-
/** Interface for a session manager that knows about the org that the session is in. */
|
|
122
|
-
class OrgSessionManager extends SessionManager {
|
|
123
|
-
/**
|
|
124
|
-
* Constructor.
|
|
125
|
-
* @param {EnvInterface} env The environment of the session
|
|
126
|
-
* @param {string} orgId The id of the org associated with this session
|
|
127
|
-
* @param {SessionStorage<U>} storage The storage back end to use for storing
|
|
128
|
-
* session information
|
|
129
|
-
*/
|
|
130
|
-
constructor(env, orgId, storage) {
|
|
131
|
-
super(env, storage);
|
|
132
|
-
this.orgId = orgId;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
exports.OrgSessionManager = OrgSessionManager;
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbl9tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nlc3Npb24vc2Vzc2lvbl9tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUFtQztBQUVuQyxnQ0FBa0Q7QUFFbEQsa0NBQWdDO0FBRWhDLE1BQU0sOEJBQThCLEdBQUcsRUFBRSxDQUFDO0FBRTFDLHlDQUF5QztBQUN6QyxNQUFzQixjQUFjO0lBNEJsQzs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWU7UUFDbkIsSUFBSSxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLElBQUksdUJBQUEsSUFBSSxrQ0FBWSxFQUFFLENBQUM7Z0JBQ3JCLDZCQUE2QjtnQkFDN0IsT0FBTyx1QkFBQSxJQUFJLGtDQUFZLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxJQUFBLFlBQUssRUFBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkIsQ0FBQztnQkFDRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVO2dCQUNWLHVCQUFBLElBQUksOEJBQWUsSUFBSSxNQUFBLENBQUM7Z0JBQ3hCLElBQUksQ0FBQztvQkFDSCxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQzt3QkFBUyxDQUFDO29CQUNULHVCQUFBLElBQUksOEJBQWUsS0FBSyxNQUFBLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVc7UUFDVCxPQUFPLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvQixDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFnQjtRQUMvQixhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxHQUFpQixFQUFFLE9BQTBCO1FBaEZoRCxXQUFNLEdBQUcsSUFBSSxlQUFNLEVBQUUsQ0FBQztRQUMvQixxQ0FBdUIsS0FBSyxFQUFDO1FBZ0YzQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sWUFBWSxDQUFDLEtBQWE7UUFDbEMsT0FBTyxJQUFBLHNCQUFnQixFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBUyxFQUFFLGFBQXNCO1FBQzNELGFBQWEsS0FBSyxDQUFDLENBQUM7UUFDcEIsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sZUFBZSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0MsTUFBTSxRQUFRLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQztRQUN0QyxPQUFPLGVBQWUsR0FBRyxlQUFlLEdBQUcsUUFBUSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBUyxFQUFFLGFBQXNCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsYUFBYSxJQUFJLDhCQUE4QixDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFdBQVcsQ0FBQyxJQUFZO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLGlCQUFpQixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBaElELHdDQWdJQzs7QUFFRCx1RkFBdUY7QUFDdkYsTUFBc0IsaUJBQXFCLFNBQVEsY0FBaUI7SUFHbEU7Ozs7OztPQU1HO0lBQ0gsWUFBWSxHQUFpQixFQUFFLEtBQWEsRUFBRSxPQUEwQjtRQUN0RSxLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQWRELDhDQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRzIH0gZnJvbSBcIi4uL2V2ZW50c1wiO1xuaW1wb3J0IHsgRW52SW50ZXJmYWNlIH0gZnJvbSBcIi4uL2VudlwiO1xuaW1wb3J0IHsgQ2xpZW50LCBjcmVhdGVIdHRwQ2xpZW50IH0gZnJvbSBcIi4uL2FwaVwiO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2UgfSBmcm9tIFwiLi9zZXNzaW9uX3N0b3JhZ2VcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcIi4uL3V0aWxcIjtcblxuY29uc3QgREVGQVVMVF9FWFBJUkFUSU9OX0JVRkZFUl9TRUNTID0gMzA7XG5cbi8qKiBHZW5lcmljIHNlc3Npb24gbWFuYWdlciBpbnRlcmZhY2UuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2Vzc2lvbk1hbmFnZXI8VT4ge1xuICByZWFkb25seSBlbnY6IEVudkludGVyZmFjZTtcbiAgcmVhZG9ubHkgc3RvcmFnZTogU2Vzc2lvblN0b3JhZ2U8VT47XG4gIHJlYWRvbmx5IGV2ZW50cyA9IG5ldyBFdmVudHMoKTtcbiAgI3JlZnJlc2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgY3VycmVudCBhdXRoIHRva2VuLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFic3RyYWN0IHRva2VuKCk6IFByb21pc2U8c3RyaW5nPjtcblxuICAvKiogUmV0dXJucyBhIGNsaWVudCBpbnN0YW5jZSB0aGF0IHVzZXMgdGhlIHRva2VuLiAqL1xuICBhYnN0cmFjdCBjbGllbnQoKTogUHJvbWlzZTxDbGllbnQ+O1xuXG4gIC8qKiBSZXZva2VzIHRoZSBzZXNzaW9uLiAqL1xuICBhYnN0cmFjdCByZXZva2UoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKiogUmVmcmVzaGVzIHRoZSBzZXNzaW9uLiAqL1xuICBhYnN0cmFjdCByZWZyZXNoKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBpdCdzIHRpbWUgdG8gcmVmcmVzaCB0aGlzIHRva2VuLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIGl0J3MgdGltZSB0byByZWZyZXNoIHRoaXMgdG9rZW4uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYWJzdHJhY3QgaXNTdGFsZSgpOiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIHNlc3Npb24gaWYgaXQgaXMgYWJvdXQgdG8gZXhwaXJlLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoZSBzZXNzaW9uIHRva2VuIHdhcyByZWZyZXNoZWQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYXN5bmMgcmVmcmVzaElmTmVlZGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmIChhd2FpdCB0aGlzLmlzU3RhbGUoKSkge1xuICAgICAgaWYgKHRoaXMuI3JlZnJlc2hpbmcpIHtcbiAgICAgICAgLy8gd2FpdCB1bnRpbCBkb25lIHJlZnJlc2hpbmdcbiAgICAgICAgd2hpbGUgKHRoaXMuI3JlZnJlc2hpbmcpIHtcbiAgICAgICAgICBhd2FpdCBkZWxheSgxMDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHJlZnJlc2hcbiAgICAgICAgdGhpcy4jcmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgdGhpcy4jcmVmcmVzaGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgcmVmcmVzaGVzIHRoZSBzZXNzaW9uIGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZWZyZXNoZXMgKGlmIG5lZWRlZCkgZXZlcnkgbWludXRlLlxuICAgKiBCYXNlIGltcGxlbWVudGF0aW9ucyBjYW4sIGluc3RlYWQgdXNlIHRoZSB0b2tlbiBleHBpcmF0aW9ucyB0aW1lc3RhbXBzXG4gICAqIHRvIHJlZnJlc2ggbGVzcyBvZnRlbi4gVGhpcyBpcyBhIHNpbXBsZSB3cmFwcGVyIGFyb3VuZCBgc2V0SW50ZXJ2YWxgLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBpbnRlcnZhbCBJRCBvZiB0aGUgcmVmcmVzaCB0aW1lci5cbiAgICovXG4gIGF1dG9SZWZyZXNoKCk6IFJlZnJlc2hJZCB7XG4gICAgcmV0dXJuIHNldEludGVydmFsKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaElmTmVlZGVkKCk7XG4gICAgfSwgNjAgKiAxMDAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGF1dG8gcmVmcmVzaCB0aW1lci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWVyIFRoZSB0aW1lciBJRCB0byBjbGVhci5cbiAgICovXG4gIGNsZWFyQXV0b1JlZnJlc2godGltZXI6IFJlZnJlc2hJZCk6IHZvaWQge1xuICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge0VudkludGVyZmFjZX0gZW52IFRoZSBlbnZpcm9ubWVudCBvZiB0aGUgc2Vzc2lvblxuICAgKiBAcGFyYW0ge1Nlc3Npb25TdG9yYWdlPFU+fSBzdG9yYWdlIFRoZSBzdG9yYWdlIGJhY2sgZW5kIHRvIHVzZSBmb3Igc3RvcmluZ1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24gaW5mb3JtYXRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKGVudjogRW52SW50ZXJmYWNlLCBzdG9yYWdlOiBTZXNzaW9uU3RvcmFnZTxVPikge1xuICAgIHRoaXMuZW52ID0gZW52O1xuICAgIHRoaXMuc3RvcmFnZSA9IHN0b3JhZ2U7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSRVNUIGNsaWVudCB3aXRoIGEgZ2l2ZW4gdG9rZW5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRva2VuIFRoZSBhdXRob3JpemF0aW9uIHRva2VuIHRvIHVzZSBmb3IgdGhlIGNsaWVudFxuICAgKiBAcmV0dXJuIHtDbGllbnR9IFRoZSBuZXcgUkVTVCBjbGllbnRcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVDbGllbnQodG9rZW46IHN0cmluZyk6IENsaWVudCB7XG4gICAgcmV0dXJuIGNyZWF0ZUh0dHBDbGllbnQodGhpcy5lbnYuU2lnbmVyQXBpUm9vdCwgdG9rZW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgdGltZXN0YW1wIGlzIHdpdGhpbiB7QGxpbmsgYnVmZmVyU2Vjb25kc30gc2Vjb25kcyBmcm9tIGV4cGlyYXRpb24uXG4gICAqIEBwYXJhbSB7RGF0ZX0gZXhwIFRoZSB0aW1lc3RhbXAgdG8gY2hlY2tcbiAgICogQHBhcmFtIHtudW1iZXJ9IGJ1ZmZlclNlY29uZHMgVGltZSBidWZmZXIgaW4gc2Vjb25kcyAoZGVmYXVsdHMgdG8gMHMpXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIHRpbWVzdGFtcCBoYXMgZXhwaXJlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHN0YXRpYyBoYXNFeHBpcmVkKGV4cDogRGF0ZSwgYnVmZmVyU2Vjb25kcz86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGJ1ZmZlclNlY29uZHMgPz89IDA7XG4gICAgY29uc3QgZXhwTXNTaW5jZUVwb2NoID0gZXhwLmdldFRpbWUoKTtcbiAgICBjb25zdCBub3dNc1NpbmNlRXBvY2ggPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBidWZmZXJNcyA9IGJ1ZmZlclNlY29uZHMgKiAxMDAwO1xuICAgIHJldHVybiBleHBNc1NpbmNlRXBvY2ggPCBub3dNc1NpbmNlRXBvY2ggKyBidWZmZXJNcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHRpbWVzdGFtcCBpcyBzdGFsZSwgaS5lLiwgaXQncyB3aXRoaW4ge0BsaW5rIGJ1ZmZlclNlY29uZHN9IHNlY29uZHMgZnJvbSBleHBpcmF0aW9uLlxuICAgKiBAcGFyYW0ge0RhdGV9IGV4cCBUaGUgdGltZXN0YW1wIHRvIGNoZWNrXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBidWZmZXJTZWNvbmRzIFRpbWUgYnVmZmVyIGluIHNlY29uZHMgKGRlZmF1bHRzIHRvIDMwcylcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgdGltZXN0YW1wIGlzIHN0YWxlXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIGlzU3RhbGUoZXhwOiBEYXRlLCBidWZmZXJTZWNvbmRzPzogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRXhwaXJlZChleHAsIGJ1ZmZlclNlY29uZHMgPz8gREVGQVVMVF9FWFBJUkFUSU9OX0JVRkZFUl9TRUNTKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgdGhhdCBzYXlzIHRoYXQgc29tZSBmZWF0dXJlIGlzIHVuc3VwcG9ydGVkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZmVhdHVyZSB0aGF0IGlzIG5vdCBzdXBwb3J0ZWRcbiAgICovXG4gIHByb3RlY3RlZCB1bnN1cHBvcnRlZChuYW1lOiBzdHJpbmcpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAnJHtuYW1lfScgbm90IHN1cHBvcnRlZGApO1xuICB9XG59XG5cbi8qKiBJbnRlcmZhY2UgZm9yIGEgc2Vzc2lvbiBtYW5hZ2VyIHRoYXQga25vd3MgYWJvdXQgdGhlIG9yZyB0aGF0IHRoZSBzZXNzaW9uIGlzIGluLiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9yZ1Nlc3Npb25NYW5hZ2VyPFU+IGV4dGVuZHMgU2Vzc2lvbk1hbmFnZXI8VT4ge1xuICByZWFkb25seSBvcmdJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtFbnZJbnRlcmZhY2V9IGVudiBUaGUgZW52aXJvbm1lbnQgb2YgdGhlIHNlc3Npb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9yZ0lkIFRoZSBpZCBvZiB0aGUgb3JnIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHNlc3Npb25cbiAgICogQHBhcmFtIHtTZXNzaW9uU3RvcmFnZTxVPn0gc3RvcmFnZSBUaGUgc3RvcmFnZSBiYWNrIGVuZCB0byB1c2UgZm9yIHN0b3JpbmdcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihlbnY6IEVudkludGVyZmFjZSwgb3JnSWQ6IHN0cmluZywgc3RvcmFnZTogU2Vzc2lvblN0b3JhZ2U8VT4pIHtcbiAgICBzdXBlcihlbnYsIHN0b3JhZ2UpO1xuICAgIHRoaXMub3JnSWQgPSBvcmdJZDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0VudiB7XG4gIC8qKiBUaGUgZW52aXJvbm1lbnQgKi9cbiAgZW52OiB7XG4gICAgW1wiRGV2LUN1YmVTaWduZXJTdGFja1wiXTogRW52SW50ZXJmYWNlO1xuICB9O1xufVxuXG4vKiogVHlwZSBvZiB0aGUgcmVmcmVzaCB0aW1lciBJRC4gKi9cbmV4cG9ydCB0eXBlIFJlZnJlc2hJZCA9IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiJdfQ==
|
package/dist/src/sign.d.ts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { CubeSigner, Key, SignerSession } from ".";
|
|
2
|
-
import { components, paths } from "./client";
|
|
3
|
-
export type Eth1SignRequest = paths["/v1/org/{org_id}/eth1/sign/{pubkey}"]["post"]["requestBody"]["content"]["application/json"];
|
|
4
|
-
export type Eth2SignRequest = paths["/v1/org/{org_id}/eth2/sign/{pubkey}"]["post"]["requestBody"]["content"]["application/json"];
|
|
5
|
-
export type Eth2StakeRequest = paths["/v1/org/{org_id}/eth2/stake"]["post"]["requestBody"]["content"]["application/json"];
|
|
6
|
-
export type Eth2UnstakeRequest = paths["/v1/org/{org_id}/eth2/unstake/{pubkey}"]["post"]["requestBody"]["content"]["application/json"];
|
|
7
|
-
export type BlobSignRequest = paths["/v1/org/{org_id}/blob/sign/{key_id}"]["post"]["requestBody"]["content"]["application/json"];
|
|
8
|
-
export type BtcSignRequest = paths["/v0/org/{org_id}/btc/sign/{pubkey}"]["post"]["requestBody"]["content"]["application/json"];
|
|
9
|
-
export type SolanaSignRequest = paths["/v1/org/{org_id}/solana/sign/{pubkey}"]["post"]["requestBody"]["content"]["application/json"];
|
|
10
|
-
export type Eth1SignResponse = components["responses"]["Eth1SignResponse"]["content"]["application/json"];
|
|
11
|
-
export type Eth2SignResponse = components["responses"]["Eth2SignResponse"]["content"]["application/json"];
|
|
12
|
-
export type Eth2StakeResponse = components["responses"]["StakeResponse"]["content"]["application/json"];
|
|
13
|
-
export type Eth2UnstakeResponse = components["responses"]["UnstakeResponse"]["content"]["application/json"];
|
|
14
|
-
export type BlobSignResponse = components["responses"]["BlobSignResponse"]["content"]["application/json"];
|
|
15
|
-
export type BtcSignResponse = components["responses"]["BtcSignResponse"]["content"]["application/json"];
|
|
16
|
-
export type SolanaSignResponse = components["responses"]["SolanaSignResponse"]["content"]["application/json"];
|
|
17
|
-
export type MfaRequestInfo = components["responses"]["MfaRequestInfo"]["content"]["application/json"];
|
|
18
|
-
export type AcceptedResponse = components["schemas"]["AcceptedResponse"];
|
|
19
|
-
export type ErrorResponse = components["schemas"]["ErrorResponse"];
|
|
20
|
-
export type BtcSignatureKind = components["schemas"]["BtcSignatureKind"];
|
|
21
|
-
type SignFn<U> = (headers?: HeadersInit) => Promise<U | AcceptedResponse>;
|
|
22
|
-
/**
|
|
23
|
-
* A response of a signing request.
|
|
24
|
-
*/
|
|
25
|
-
export declare class SignResponse<U> {
|
|
26
|
-
#private;
|
|
27
|
-
/** @return {boolean} True if this signing request requires an MFA approval */
|
|
28
|
-
requiresMfa(): boolean;
|
|
29
|
-
/** @return {U} The signed data */
|
|
30
|
-
data(): U;
|
|
31
|
-
/**
|
|
32
|
-
* Approves the MFA request.
|
|
33
|
-
*
|
|
34
|
-
* Note: This only works for MFA requests that require a single approval.
|
|
35
|
-
*
|
|
36
|
-
* @return {SignResponse<U>} The result of signing with the approval
|
|
37
|
-
*/
|
|
38
|
-
approve(): Promise<SignResponse<U>>;
|
|
39
|
-
/**
|
|
40
|
-
* Constructor.
|
|
41
|
-
*
|
|
42
|
-
* @param {CubeSigner} cs The CubeSigner instance to use for requests
|
|
43
|
-
* @param {string} orgId The org id of the corresponding signing request
|
|
44
|
-
* @param {string} roleId The role id of the corresponding signing request
|
|
45
|
-
* @param {SignFn} signFn The signing function that this response is from.
|
|
46
|
-
* This argument is used to resend requests with
|
|
47
|
-
* different headers if needed.
|
|
48
|
-
* @param {U | AcceptedResponse} resp The response as returned by the OpenAPI
|
|
49
|
-
* client.
|
|
50
|
-
*/
|
|
51
|
-
constructor(cs: CubeSigner, orgId: string, roleId: string, signFn: SignFn<U>, resp: U | AcceptedResponse);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Wrapper around sign operations.
|
|
55
|
-
*/
|
|
56
|
-
export declare class Sign {
|
|
57
|
-
#private;
|
|
58
|
-
/**
|
|
59
|
-
* Submit an 'eth1' sign request.
|
|
60
|
-
* @param {Key | string} key The key to sign with (either {@link Key} or its material ID).
|
|
61
|
-
* @param {Eth1SignRequest} req What to sign.
|
|
62
|
-
* @return {Promise<Eth1SignResponse | AcceptedResponse>} Signature
|
|
63
|
-
*/
|
|
64
|
-
eth1(key: Key | string, req: Eth1SignRequest): Promise<SignResponse<Eth1SignResponse>>;
|
|
65
|
-
/**
|
|
66
|
-
* Submit an 'eth2' sign request.
|
|
67
|
-
* @param {Key | string} key The key to sign with (either {@link Key} or its material ID).
|
|
68
|
-
* @param {Eth2SignRequest} req What to sign.
|
|
69
|
-
* @return {Promise<Eth2SignResponse | AcceptedResponse>} Signature
|
|
70
|
-
*/
|
|
71
|
-
eth2(key: Key | string, req: Eth2SignRequest): Promise<SignResponse<Eth2SignResponse>>;
|
|
72
|
-
/**
|
|
73
|
-
* Sign a stake request.
|
|
74
|
-
* @param {Eth2StakeRequest} req The request to sign.
|
|
75
|
-
* @return {Promise<Eth2StakeResponse | AcceptedResponse>} The response.
|
|
76
|
-
*/
|
|
77
|
-
stake(req: Eth2StakeRequest): Promise<SignResponse<Eth2StakeResponse>>;
|
|
78
|
-
/**
|
|
79
|
-
* Sign an unstake request.
|
|
80
|
-
* @param {Key | string} key The key to sign with (either {@link Key} or its material ID).
|
|
81
|
-
* @param {Eth2UnstakeRequest} req The request to sign.
|
|
82
|
-
* @return {Promise<Eth2UnstakeResponse | AcceptedResponse>} The response.
|
|
83
|
-
*/
|
|
84
|
-
unstake(key: Key | string, req: Eth2UnstakeRequest): Promise<SignResponse<Eth2UnstakeResponse>>;
|
|
85
|
-
/**
|
|
86
|
-
* Sign a raw blob.
|
|
87
|
-
* @param {Key | string} key The key to sign with (either {@link Key} or its ID).
|
|
88
|
-
* @param {BlobSignRequest} req What to sign
|
|
89
|
-
* @return {Promise<BlobSignResponse | AcceptedResponse>} The response.
|
|
90
|
-
*/
|
|
91
|
-
blob(key: Key | string, req: BlobSignRequest): Promise<SignResponse<BlobSignResponse>>;
|
|
92
|
-
/**
|
|
93
|
-
* Sign a bitcoin message.
|
|
94
|
-
* @param {Key | string} key The key to sign with (either {@link Key} or its material ID).
|
|
95
|
-
* @param {BtcSignRequest} req What to sign
|
|
96
|
-
* @return {Promise<BtcSignResponse | AcceptedResponse>} The response.
|
|
97
|
-
*/
|
|
98
|
-
btc(key: Key | string, req: BtcSignRequest): Promise<SignResponse<BtcSignResponse>>;
|
|
99
|
-
/**
|
|
100
|
-
* Sign a solana message.
|
|
101
|
-
* @param {Key | string} key The key to sign with (either {@link Key} or its material ID).
|
|
102
|
-
* @param {SolanaSignRequest} req What to sign
|
|
103
|
-
* @return {Promise<SolanaSignResponse | AcceptedResponse>} The response.
|
|
104
|
-
*/
|
|
105
|
-
solana(key: Key | string, req: SolanaSignRequest): Promise<SignResponse<SolanaSignResponse>>;
|
|
106
|
-
/**
|
|
107
|
-
* Constructor.
|
|
108
|
-
*
|
|
109
|
-
* @param {string} orgId Organization ID
|
|
110
|
-
* @param {SignerSession} ss The signer session to use for signing requests
|
|
111
|
-
*/
|
|
112
|
-
constructor(orgId: string, ss: SignerSession);
|
|
113
|
-
}
|
|
114
|
-
export {};
|