@cubist-labs/cubesigner-sdk 0.2.21 → 0.2.28
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/dist/package.json +7 -7
- package/dist/src/api.d.ts +0 -17
- package/dist/src/api.js +7 -17
- package/dist/src/error.d.ts +29 -0
- package/dist/src/error.js +36 -0
- package/dist/src/ethers/index.js +10 -3
- package/dist/src/events.d.ts +1 -1
- package/dist/src/events.js +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +3 -1
- package/dist/src/org.d.ts +1 -0
- package/dist/src/schema.d.ts +61 -26
- package/dist/src/schema.js +1 -1
- package/dist/src/session/cognito_manager.js +2 -2
- package/dist/src/session/session_manager.d.ts +10 -2
- package/dist/src/session/session_manager.js +46 -6
- package/dist/src/session/signer_session_manager.d.ts +17 -3
- package/dist/src/session/signer_session_manager.js +36 -9
- package/dist/src/util.d.ts +7 -0
- package/dist/src/util.js +12 -2
- package/package.json +7 -7
- package/src/api.ts +4 -23
- package/src/error.ts +42 -0
- package/src/ethers/index.ts +6 -2
- package/src/events.ts +1 -1
- package/src/index.ts +2 -0
- package/src/schema.ts +61 -26
- package/src/session/cognito_manager.ts +1 -1
- package/src/session/session_manager.ts +32 -5
- package/src/session/signer_session_manager.ts +43 -9
- package/src/util.ts +10 -0
|
@@ -59,7 +59,7 @@ class CognitoSessionManager extends session_manager_1.OrgSessionManager {
|
|
|
59
59
|
*/
|
|
60
60
|
async isStale() {
|
|
61
61
|
const session = await this.storage.retrieve();
|
|
62
|
-
return session_manager_1.SessionManager.
|
|
62
|
+
return session_manager_1.SessionManager.isStale(new Date(session.expiration));
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* Refreshes the session and **UPDATES/MUTATES** self.
|
|
@@ -126,4 +126,4 @@ class CognitoSessionManager extends session_manager_1.OrgSessionManager {
|
|
|
126
126
|
}
|
|
127
127
|
exports.CognitoSessionManager = CognitoSessionManager;
|
|
128
128
|
_CognitoSessionManager_client = new WeakMap();
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0b19tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nlc3Npb24vY29nbml0b19tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUF3QjtBQUd4Qix1REFBOEU7QUFDOUUsdURBQTJFO0FBQzNFLGtDQUFvQztBQXVCcEMsNERBQTREO0FBQzVELE1BQWEscUJBQXNCLFNBQVEsbUNBQXFDO0lBRzlFOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFLO1FBQ1QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsT0FBTyx1QkFBQSxJQUFJLHFDQUFRLENBQUM7SUFDdEIsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixLQUFLLENBQUMsTUFBTTtRQUNWLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLENBQUMseURBQXlEO1FBQzNILE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQztZQUNuRCxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQ3ZCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSx5REFBeUQ7U0FDN0csQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUc7WUFDWixLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDNUIsUUFBUSxFQUFFLElBQUks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RixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFlBQ0UsR0FBaUIsRUFDakIsS0FBYSxFQUNiLEtBQWEsRUFDYixPQUE4QjtRQUU5QixLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQS9IN0IsZ0RBQWdCO1FBZ0lkLHVCQUFBLElBQUksaUNBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBQSxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQW5JRCxzREFtSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcIi4uL2FwaVwiO1xuaW1wb3J0IHsgRW52SW50ZXJmYWNlIH0gZnJvbSBcIi4uL2VudlwiO1xuaW1wb3J0IHsgSGFzRW52LCBPcmdTZXNzaW9uTWFuYWdlciwgU2Vzc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi9zZXNzaW9uX21hbmFnZXJcIjtcbmltcG9ydCB7IEpzb25GaWxlU2Vzc2lvblN0b3JhZ2UsIFNlc3Npb25TdG9yYWdlIH0gZnJvbSBcIi4vc2Vzc2lvbl9zdG9yYWdlXCI7XG5pbXBvcnQgeyBjb25maWdEaXIgfSBmcm9tIFwiLi4vdXRpbFwiO1xuXG4vKiogSlNPTiByZXByZXNlbnRhdGlvbiBvZiBvdXIgXCJtYW5hZ2VtZW50IHNlc3Npb25cIiBmaWxlIGZvcm1hdCAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2duaXRvU2Vzc2lvbk9iamVjdCB7XG4gIC8qKiBUaGUgb3JnYW5pemF0aW9uIElEICovXG4gIG9yZ19pZDogc3RyaW5nO1xuICAvKiogVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgKi9cbiAgZW1haWw6IHN0cmluZztcbiAgLyoqIFRoZSBJRCB0b2tlbiAqL1xuICBpZF90b2tlbjogc3RyaW5nO1xuICAvKiogVGhlIGFjY2VzcyB0b2tlbiAqL1xuICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgLyoqIFRoZSByZWZyZXNoIHRva2VuICovXG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbiAgLyoqIFRoZSBleHBpcmF0aW9uIHRpbWUgb2YgdGhlIGFjY2VzcyB0b2tlbiAqL1xuICBleHBpcmF0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b1Nlc3Npb25JbmZvIGV4dGVuZHMgQ29nbml0b1Nlc3Npb25PYmplY3QsIEhhc0VudiB7fVxuXG4vKiogVHlwZSBvZiBzdG9yYWdlIHJlcXVpcmVkIGZvciBjb2duaXRvIChtYW5hZ2VtZW50KSBzZXNzaW9ucyAqL1xuZXhwb3J0IHR5cGUgQ29nbml0b1Nlc3Npb25TdG9yYWdlID0gU2Vzc2lvblN0b3JhZ2U8Q29nbml0b1Nlc3Npb25JbmZvPjtcblxuLyoqIFRoZSBzZXNzaW9uIG1hbmFnZXIgZm9yIGNvZ25pdG8gKG1hbmFnZW1lbnQpIHNlc3Npb25zICovXG5leHBvcnQgY2xhc3MgQ29nbml0b1Nlc3Npb25NYW5hZ2VyIGV4dGVuZHMgT3JnU2Vzc2lvbk1hbmFnZXI8Q29nbml0b1Nlc3Npb25JbmZvPiB7XG4gICNjbGllbnQ6IENsaWVudDtcblxuICAvKipcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgY3VycmVudCBhdXRoIHRva2VuLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFzeW5jIHRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHRoaXMuc3RvcmFnZS5yZXRyaWV2ZSgpO1xuICAgIHJldHVybiBzZXNzaW9uLmlkX3Rva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjbGllbnQgd2l0aCB0aGUgY3VycmVudCBzZXNzaW9uIGFuZCByZWZyZXNoZXMgdGhlIGN1cnJlbnRcbiAgICogc2Vzc2lvbi5cbiAgICovXG4gIGFzeW5jIGNsaWVudCgpOiBQcm9taXNlPENsaWVudD4ge1xuICAgIHRoaXMucmVmcmVzaElmTmVlZGVkKCk7XG4gICAgcmV0dXJuIHRoaXMuI2NsaWVudDtcbiAgfVxuXG4gIC8qKiBSZXZva2VzIHRoZSBzZXNzaW9uLiAqL1xuICBhc3luYyByZXZva2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaWRwID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5LXByb3ZpZGVyXCIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5zdG9yYWdlLnJldHJpZXZlKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IGlkcC5Db2duaXRvSWRlbnRpdHlQcm92aWRlckNsaWVudCh7XG4gICAgICByZWdpb246IHRoaXMuZW52LlJlZ2lvbixcbiAgICAgIHNpZ25lcjogeyBzaWduOiBhc3luYyAocmVxdWVzdDogYW55KSA9PiByZXF1ZXN0IH0sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIH0pO1xuICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgVG9rZW46IHNlc3Npb24ucmVmcmVzaF90b2tlbixcbiAgICAgIENsaWVudElkOiB0aGlzLmVudi5DbGllbnRJZCxcbiAgICB9O1xuICAgIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBpZHAuUmV2b2tlVG9rZW5Db21tYW5kKGlucHV0KSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIGl0J3MgdGltZSB0byByZWZyZXNoIHRoaXMgdG9rZW4uXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgaXQncyB0aW1lIHRvIHJlZnJlc2ggdGhpcyB0b2tlbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBpc1N0YWxlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCB0aGlzLnN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gU2Vzc2lvbk1hbmFnZXIuaGFzRXhwaXJlZChuZXcgRGF0ZShzZXNzaW9uLmV4cGlyYXRpb24pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIHNlc3Npb24gYW5kICoqVVBEQVRFUy9NVVRBVEVTKiogc2VsZi5cbiAgICovXG4gIGFzeW5jIHJlZnJlc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaWRwID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5LXByb3ZpZGVyXCIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5zdG9yYWdlLnJldHJpZXZlKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IGlkcC5Db2duaXRvSWRlbnRpdHlQcm92aWRlckNsaWVudCh7IHJlZ2lvbjogdGhpcy5lbnYuUmVnaW9uIH0pO1xuICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBjbGllbnQuc2VuZChcbiAgICAgIG5ldyBpZHAuSW5pdGlhdGVBdXRoQ29tbWFuZCh7XG4gICAgICAgIEF1dGhGbG93OiBcIlJFRlJFU0hfVE9LRU5fQVVUSFwiLFxuICAgICAgICBBdXRoUGFyYW1ldGVyczoge1xuICAgICAgICAgIFJFRlJFU0hfVE9LRU46IHNlc3Npb24ucmVmcmVzaF90b2tlbixcbiAgICAgICAgfSxcbiAgICAgICAgQ2xpZW50SWQ6IHRoaXMuZW52LkNsaWVudElkLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgICFyZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0IHx8XG4gICAgICAhcmVzcC5BdXRoZW50aWNhdGlvblJlc3VsdC5FeHBpcmVzSW4gfHxcbiAgICAgICFyZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0LklkVG9rZW5cbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZnJlc2ggZmFpbGVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGlyZXNJbk1zID0gcmVzcC5BdXRoZW50aWNhdGlvblJlc3VsdC5FeHBpcmVzSW4gKiAxMDAwO1xuICAgIGNvbnN0IGV4cGlyYXRpb24gPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGV4cGlyZXNJbk1zKS50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IGlkVG9rZW4gPSByZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0LklkVG9rZW47XG5cbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2F2ZSg8Q29nbml0b1Nlc3Npb25JbmZvPntcbiAgICAgIC4uLnNlc3Npb24sXG4gICAgICBpZF90b2tlbjogaWRUb2tlbixcbiAgICAgIGFjY2Vzc190b2tlbjogcmVzcC5BdXRoZW50aWNhdGlvblJlc3VsdC5BY2Nlc3NUb2tlbixcbiAgICAgIGV4cGlyYXRpb24sXG4gICAgfSk7XG4gICAgdGhpcy4jY2xpZW50ID0gdGhpcy5jcmVhdGVDbGllbnQoaWRUb2tlbik7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgYW4gZXhpc3RpbmcgY29nbml0byAobWFuYWdlbWVudCkgc2Vzc2lvbiBmcm9tIHN0b3JhZ2UuXG4gICAqIEBwYXJhbSB7Q29nbml0b1Nlc3Npb25TdG9yYWdlfSBzdG9yYWdlIFRoZSBzdG9yYWdlIGJhY2sgZW5kIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFNpbmdlclNlc3Npb24+fSBOZXcgdG9rZW5cbiAgICovXG4gIHN0YXRpYyBhc3luYyBsb2FkRnJvbVN0b3JhZ2Uoc3RvcmFnZTogQ29nbml0b1Nlc3Npb25TdG9yYWdlKTogUHJvbWlzZTxDb2duaXRvU2Vzc2lvbk1hbmFnZXI+IHtcbiAgICBjb25zdCBzZXNzaW9uSW5mbyA9IGF3YWl0IHN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gbmV3IENvZ25pdG9TZXNzaW9uTWFuYWdlcihcbiAgICAgIHNlc3Npb25JbmZvLmVudltcIkRldi1DdWJlU2lnbmVyU3RhY2tcIl0sXG4gICAgICBzZXNzaW9uSW5mby5vcmdfaWQsXG4gICAgICBzZXNzaW9uSW5mby5pZF90b2tlbixcbiAgICAgIHN0b3JhZ2UsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBhbiBleGlzdGluZyBtYW5hZ2VtZW50IHNlc3Npb24gYW5kIGNyZWF0ZXMgYSBDb2duaXRvIHNlc3Npb24gbWFuYWdlciBmb3IgaXQuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29nbml0b1Nlc3Npb25TdG9yYWdlfSBzdG9yYWdlIE9wdGlvbmFsIHNlc3Npb24gc3RvcmFnZSB0byBsb2FkXG4gICAqIHRoZSBzZXNzaW9uIGZyb20uIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBtYW5hZ2VtZW50IHNlc3Npb24gZnJvbSB0aGUgY29uZmlnXG4gICAqIGRpcmVjdG9yeSB3aWxsIGJlIGxvYWRlZC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDb2duaXRvU2Vzc2lvbk1hbmFnZXI+fSBDb2duaXRvIHNlc3Npb24gbWFuYWdlclxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGxvYWRNYW5hZ2VtZW50U2Vzc2lvbihcbiAgICBzdG9yYWdlPzogQ29nbml0b1Nlc3Npb25TdG9yYWdlLFxuICApOiBQcm9taXNlPENvZ25pdG9TZXNzaW9uTWFuYWdlcj4ge1xuICAgIHJldHVybiBhd2FpdCBDb2duaXRvU2Vzc2lvbk1hbmFnZXIubG9hZEZyb21TdG9yYWdlKFxuICAgICAgc3RvcmFnZSA/PyBuZXcgSnNvbkZpbGVTZXNzaW9uU3RvcmFnZShwYXRoLmpvaW4oY29uZmlnRGlyKCksIFwibWFuYWdlbWVudC1zZXNzaW9uLmpzb25cIikpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7RW52SW50ZXJmYWNlfSBlbnYgVGhlIGVudmlyb25tZW50IG9mIHRoZSBzZXNzaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcmdJZCBUaGUgaWQgb2YgdGhlIG9yZyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZXNzaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbiBUaGUgY3VycmVudCB0b2tlbiBvZiB0aGUgc2Vzc2lvblxuICAgKiBAcGFyYW0ge0NvZ25pdG9TZXNzaW9uU3RvcmFnZX0gc3RvcmFnZSBUaGUgc3RvcmFnZSBiYWNrIGVuZCB0byB1c2VcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgZW52OiBFbnZJbnRlcmZhY2UsXG4gICAgb3JnSWQ6IHN0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIHN0b3JhZ2U6IENvZ25pdG9TZXNzaW9uU3RvcmFnZSxcbiAgKSB7XG4gICAgc3VwZXIoZW52LCBvcmdJZCwgc3RvcmFnZSk7XG4gICAgdGhpcy4jY2xpZW50ID0gdGhpcy5jcmVhdGVDbGllbnQodG9rZW4pO1xuICB9XG59XG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0b19tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nlc3Npb24vY29nbml0b19tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUF3QjtBQUd4Qix1REFBOEU7QUFDOUUsdURBQTJFO0FBQzNFLGtDQUFvQztBQXVCcEMsNERBQTREO0FBQzVELE1BQWEscUJBQXNCLFNBQVEsbUNBQXFDO0lBRzlFOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFLO1FBQ1QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsT0FBTyx1QkFBQSxJQUFJLHFDQUFRLENBQUM7SUFDdEIsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixLQUFLLENBQUMsTUFBTTtRQUNWLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLENBQUMseURBQXlEO1FBQzNILE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQztZQUNuRCxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQ3ZCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSx5REFBeUQ7U0FDN0csQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUc7WUFDWixLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDNUIsUUFBUSxFQUFFLElBQUks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RixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFlBQ0UsR0FBaUIsRUFDakIsS0FBYSxFQUNiLEtBQWEsRUFDYixPQUE4QjtRQUU5QixLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQS9IN0IsZ0RBQWdCO1FBZ0lkLHVCQUFBLElBQUksaUNBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBQSxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQW5JRCxzREFtSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcIi4uL2FwaVwiO1xuaW1wb3J0IHsgRW52SW50ZXJmYWNlIH0gZnJvbSBcIi4uL2VudlwiO1xuaW1wb3J0IHsgSGFzRW52LCBPcmdTZXNzaW9uTWFuYWdlciwgU2Vzc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi9zZXNzaW9uX21hbmFnZXJcIjtcbmltcG9ydCB7IEpzb25GaWxlU2Vzc2lvblN0b3JhZ2UsIFNlc3Npb25TdG9yYWdlIH0gZnJvbSBcIi4vc2Vzc2lvbl9zdG9yYWdlXCI7XG5pbXBvcnQgeyBjb25maWdEaXIgfSBmcm9tIFwiLi4vdXRpbFwiO1xuXG4vKiogSlNPTiByZXByZXNlbnRhdGlvbiBvZiBvdXIgXCJtYW5hZ2VtZW50IHNlc3Npb25cIiBmaWxlIGZvcm1hdCAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2duaXRvU2Vzc2lvbk9iamVjdCB7XG4gIC8qKiBUaGUgb3JnYW5pemF0aW9uIElEICovXG4gIG9yZ19pZDogc3RyaW5nO1xuICAvKiogVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgKi9cbiAgZW1haWw6IHN0cmluZztcbiAgLyoqIFRoZSBJRCB0b2tlbiAqL1xuICBpZF90b2tlbjogc3RyaW5nO1xuICAvKiogVGhlIGFjY2VzcyB0b2tlbiAqL1xuICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgLyoqIFRoZSByZWZyZXNoIHRva2VuICovXG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbiAgLyoqIFRoZSBleHBpcmF0aW9uIHRpbWUgb2YgdGhlIGFjY2VzcyB0b2tlbiAqL1xuICBleHBpcmF0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b1Nlc3Npb25JbmZvIGV4dGVuZHMgQ29nbml0b1Nlc3Npb25PYmplY3QsIEhhc0VudiB7fVxuXG4vKiogVHlwZSBvZiBzdG9yYWdlIHJlcXVpcmVkIGZvciBjb2duaXRvIChtYW5hZ2VtZW50KSBzZXNzaW9ucyAqL1xuZXhwb3J0IHR5cGUgQ29nbml0b1Nlc3Npb25TdG9yYWdlID0gU2Vzc2lvblN0b3JhZ2U8Q29nbml0b1Nlc3Npb25JbmZvPjtcblxuLyoqIFRoZSBzZXNzaW9uIG1hbmFnZXIgZm9yIGNvZ25pdG8gKG1hbmFnZW1lbnQpIHNlc3Npb25zICovXG5leHBvcnQgY2xhc3MgQ29nbml0b1Nlc3Npb25NYW5hZ2VyIGV4dGVuZHMgT3JnU2Vzc2lvbk1hbmFnZXI8Q29nbml0b1Nlc3Npb25JbmZvPiB7XG4gICNjbGllbnQ6IENsaWVudDtcblxuICAvKipcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgY3VycmVudCBhdXRoIHRva2VuLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFzeW5jIHRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHRoaXMuc3RvcmFnZS5yZXRyaWV2ZSgpO1xuICAgIHJldHVybiBzZXNzaW9uLmlkX3Rva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjbGllbnQgd2l0aCB0aGUgY3VycmVudCBzZXNzaW9uIGFuZCByZWZyZXNoZXMgdGhlIGN1cnJlbnRcbiAgICogc2Vzc2lvbi5cbiAgICovXG4gIGFzeW5jIGNsaWVudCgpOiBQcm9taXNlPENsaWVudD4ge1xuICAgIHRoaXMucmVmcmVzaElmTmVlZGVkKCk7XG4gICAgcmV0dXJuIHRoaXMuI2NsaWVudDtcbiAgfVxuXG4gIC8qKiBSZXZva2VzIHRoZSBzZXNzaW9uLiAqL1xuICBhc3luYyByZXZva2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaWRwID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5LXByb3ZpZGVyXCIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5zdG9yYWdlLnJldHJpZXZlKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IGlkcC5Db2duaXRvSWRlbnRpdHlQcm92aWRlckNsaWVudCh7XG4gICAgICByZWdpb246IHRoaXMuZW52LlJlZ2lvbixcbiAgICAgIHNpZ25lcjogeyBzaWduOiBhc3luYyAocmVxdWVzdDogYW55KSA9PiByZXF1ZXN0IH0sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIH0pO1xuICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgVG9rZW46IHNlc3Npb24ucmVmcmVzaF90b2tlbixcbiAgICAgIENsaWVudElkOiB0aGlzLmVudi5DbGllbnRJZCxcbiAgICB9O1xuICAgIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBpZHAuUmV2b2tlVG9rZW5Db21tYW5kKGlucHV0KSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIGl0J3MgdGltZSB0byByZWZyZXNoIHRoaXMgdG9rZW4uXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgaXQncyB0aW1lIHRvIHJlZnJlc2ggdGhpcyB0b2tlbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBpc1N0YWxlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCB0aGlzLnN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gU2Vzc2lvbk1hbmFnZXIuaXNTdGFsZShuZXcgRGF0ZShzZXNzaW9uLmV4cGlyYXRpb24pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIHNlc3Npb24gYW5kICoqVVBEQVRFUy9NVVRBVEVTKiogc2VsZi5cbiAgICovXG4gIGFzeW5jIHJlZnJlc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaWRwID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5LXByb3ZpZGVyXCIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgdGhpcy5zdG9yYWdlLnJldHJpZXZlKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IGlkcC5Db2duaXRvSWRlbnRpdHlQcm92aWRlckNsaWVudCh7IHJlZ2lvbjogdGhpcy5lbnYuUmVnaW9uIH0pO1xuICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBjbGllbnQuc2VuZChcbiAgICAgIG5ldyBpZHAuSW5pdGlhdGVBdXRoQ29tbWFuZCh7XG4gICAgICAgIEF1dGhGbG93OiBcIlJFRlJFU0hfVE9LRU5fQVVUSFwiLFxuICAgICAgICBBdXRoUGFyYW1ldGVyczoge1xuICAgICAgICAgIFJFRlJFU0hfVE9LRU46IHNlc3Npb24ucmVmcmVzaF90b2tlbixcbiAgICAgICAgfSxcbiAgICAgICAgQ2xpZW50SWQ6IHRoaXMuZW52LkNsaWVudElkLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgICFyZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0IHx8XG4gICAgICAhcmVzcC5BdXRoZW50aWNhdGlvblJlc3VsdC5FeHBpcmVzSW4gfHxcbiAgICAgICFyZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0LklkVG9rZW5cbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZnJlc2ggZmFpbGVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGlyZXNJbk1zID0gcmVzcC5BdXRoZW50aWNhdGlvblJlc3VsdC5FeHBpcmVzSW4gKiAxMDAwO1xuICAgIGNvbnN0IGV4cGlyYXRpb24gPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGV4cGlyZXNJbk1zKS50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IGlkVG9rZW4gPSByZXNwLkF1dGhlbnRpY2F0aW9uUmVzdWx0LklkVG9rZW47XG5cbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2F2ZSg8Q29nbml0b1Nlc3Npb25JbmZvPntcbiAgICAgIC4uLnNlc3Npb24sXG4gICAgICBpZF90b2tlbjogaWRUb2tlbixcbiAgICAgIGFjY2Vzc190b2tlbjogcmVzcC5BdXRoZW50aWNhdGlvblJlc3VsdC5BY2Nlc3NUb2tlbixcbiAgICAgIGV4cGlyYXRpb24sXG4gICAgfSk7XG4gICAgdGhpcy4jY2xpZW50ID0gdGhpcy5jcmVhdGVDbGllbnQoaWRUb2tlbik7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgYW4gZXhpc3RpbmcgY29nbml0byAobWFuYWdlbWVudCkgc2Vzc2lvbiBmcm9tIHN0b3JhZ2UuXG4gICAqIEBwYXJhbSB7Q29nbml0b1Nlc3Npb25TdG9yYWdlfSBzdG9yYWdlIFRoZSBzdG9yYWdlIGJhY2sgZW5kIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFNpbmdlclNlc3Npb24+fSBOZXcgdG9rZW5cbiAgICovXG4gIHN0YXRpYyBhc3luYyBsb2FkRnJvbVN0b3JhZ2Uoc3RvcmFnZTogQ29nbml0b1Nlc3Npb25TdG9yYWdlKTogUHJvbWlzZTxDb2duaXRvU2Vzc2lvbk1hbmFnZXI+IHtcbiAgICBjb25zdCBzZXNzaW9uSW5mbyA9IGF3YWl0IHN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gbmV3IENvZ25pdG9TZXNzaW9uTWFuYWdlcihcbiAgICAgIHNlc3Npb25JbmZvLmVudltcIkRldi1DdWJlU2lnbmVyU3RhY2tcIl0sXG4gICAgICBzZXNzaW9uSW5mby5vcmdfaWQsXG4gICAgICBzZXNzaW9uSW5mby5pZF90b2tlbixcbiAgICAgIHN0b3JhZ2UsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBhbiBleGlzdGluZyBtYW5hZ2VtZW50IHNlc3Npb24gYW5kIGNyZWF0ZXMgYSBDb2duaXRvIHNlc3Npb24gbWFuYWdlciBmb3IgaXQuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29nbml0b1Nlc3Npb25TdG9yYWdlfSBzdG9yYWdlIE9wdGlvbmFsIHNlc3Npb24gc3RvcmFnZSB0byBsb2FkXG4gICAqIHRoZSBzZXNzaW9uIGZyb20uIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBtYW5hZ2VtZW50IHNlc3Npb24gZnJvbSB0aGUgY29uZmlnXG4gICAqIGRpcmVjdG9yeSB3aWxsIGJlIGxvYWRlZC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDb2duaXRvU2Vzc2lvbk1hbmFnZXI+fSBDb2duaXRvIHNlc3Npb24gbWFuYWdlclxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGxvYWRNYW5hZ2VtZW50U2Vzc2lvbihcbiAgICBzdG9yYWdlPzogQ29nbml0b1Nlc3Npb25TdG9yYWdlLFxuICApOiBQcm9taXNlPENvZ25pdG9TZXNzaW9uTWFuYWdlcj4ge1xuICAgIHJldHVybiBhd2FpdCBDb2duaXRvU2Vzc2lvbk1hbmFnZXIubG9hZEZyb21TdG9yYWdlKFxuICAgICAgc3RvcmFnZSA/PyBuZXcgSnNvbkZpbGVTZXNzaW9uU3RvcmFnZShwYXRoLmpvaW4oY29uZmlnRGlyKCksIFwibWFuYWdlbWVudC1zZXNzaW9uLmpzb25cIikpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7RW52SW50ZXJmYWNlfSBlbnYgVGhlIGVudmlyb25tZW50IG9mIHRoZSBzZXNzaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcmdJZCBUaGUgaWQgb2YgdGhlIG9yZyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZXNzaW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbiBUaGUgY3VycmVudCB0b2tlbiBvZiB0aGUgc2Vzc2lvblxuICAgKiBAcGFyYW0ge0NvZ25pdG9TZXNzaW9uU3RvcmFnZX0gc3RvcmFnZSBUaGUgc3RvcmFnZSBiYWNrIGVuZCB0byB1c2VcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgZW52OiBFbnZJbnRlcmZhY2UsXG4gICAgb3JnSWQ6IHN0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIHN0b3JhZ2U6IENvZ25pdG9TZXNzaW9uU3RvcmFnZSxcbiAgKSB7XG4gICAgc3VwZXIoZW52LCBvcmdJZCwgc3RvcmFnZSk7XG4gICAgdGhpcy4jY2xpZW50ID0gdGhpcy5jcmVhdGVDbGllbnQodG9rZW4pO1xuICB9XG59XG4iXX0=
|
|
@@ -4,6 +4,7 @@ import { Client } from "../api";
|
|
|
4
4
|
import { SessionStorage } from "./session_storage";
|
|
5
5
|
/** Generic session manager interface. */
|
|
6
6
|
export declare abstract class SessionManager<U> {
|
|
7
|
+
#private;
|
|
7
8
|
readonly env: EnvInterface;
|
|
8
9
|
readonly storage: SessionStorage<U>;
|
|
9
10
|
readonly events: Events;
|
|
@@ -57,12 +58,19 @@ export declare abstract class SessionManager<U> {
|
|
|
57
58
|
*/
|
|
58
59
|
protected createClient(token: string): Client;
|
|
59
60
|
/**
|
|
60
|
-
* Check if a timestamp
|
|
61
|
+
* Check if a timestamp is within {@link bufferSeconds} seconds from expiration.
|
|
61
62
|
* @param {Date} exp The timestamp to check
|
|
62
|
-
* @param {number} bufferSeconds Time buffer in seconds (defaults to
|
|
63
|
+
* @param {number} bufferSeconds Time buffer in seconds (defaults to 0s)
|
|
63
64
|
* @return {boolean} True if the timestamp has expired
|
|
64
65
|
*/
|
|
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;
|
|
66
74
|
/**
|
|
67
75
|
* Throws an error that says that some feature is unsupported.
|
|
68
76
|
* @param {string} name The name of the feature that is not supported
|
|
@@ -1,8 +1,21 @@
|
|
|
1
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;
|
|
2
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
15
|
exports.OrgSessionManager = exports.SessionManager = void 0;
|
|
4
16
|
const events_1 = require("../events");
|
|
5
17
|
const api_1 = require("../api");
|
|
18
|
+
const util_1 = require("../util");
|
|
6
19
|
const DEFAULT_EXPIRATION_BUFFER_SECS = 30;
|
|
7
20
|
/** Generic session manager interface. */
|
|
8
21
|
class SessionManager {
|
|
@@ -13,8 +26,24 @@ class SessionManager {
|
|
|
13
26
|
*/
|
|
14
27
|
async refreshIfNeeded() {
|
|
15
28
|
if (await this.isStale()) {
|
|
16
|
-
|
|
17
|
-
|
|
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
|
+
}
|
|
18
47
|
}
|
|
19
48
|
return false;
|
|
20
49
|
}
|
|
@@ -45,6 +74,7 @@ class SessionManager {
|
|
|
45
74
|
*/
|
|
46
75
|
constructor(env, storage) {
|
|
47
76
|
this.events = new events_1.Events();
|
|
77
|
+
_SessionManager_refreshing.set(this, false);
|
|
48
78
|
this.env = env;
|
|
49
79
|
this.storage = storage;
|
|
50
80
|
}
|
|
@@ -57,18 +87,27 @@ class SessionManager {
|
|
|
57
87
|
return (0, api_1.createHttpClient)(this.env.SignerApiRoot, token);
|
|
58
88
|
}
|
|
59
89
|
/**
|
|
60
|
-
* Check if a timestamp
|
|
90
|
+
* Check if a timestamp is within {@link bufferSeconds} seconds from expiration.
|
|
61
91
|
* @param {Date} exp The timestamp to check
|
|
62
|
-
* @param {number} bufferSeconds Time buffer in seconds (defaults to
|
|
92
|
+
* @param {number} bufferSeconds Time buffer in seconds (defaults to 0s)
|
|
63
93
|
* @return {boolean} True if the timestamp has expired
|
|
64
94
|
*/
|
|
65
95
|
static hasExpired(exp, bufferSeconds) {
|
|
66
|
-
bufferSeconds ??=
|
|
96
|
+
bufferSeconds ??= 0;
|
|
67
97
|
const expMsSinceEpoch = exp.getTime();
|
|
68
98
|
const nowMsSinceEpoch = new Date().getTime();
|
|
69
99
|
const bufferMs = bufferSeconds * 1000;
|
|
70
100
|
return expMsSinceEpoch < nowMsSinceEpoch + bufferMs;
|
|
71
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
|
+
}
|
|
72
111
|
/**
|
|
73
112
|
* Throws an error that says that some feature is unsupported.
|
|
74
113
|
* @param {string} name The name of the feature that is not supported
|
|
@@ -78,6 +117,7 @@ class SessionManager {
|
|
|
78
117
|
}
|
|
79
118
|
}
|
|
80
119
|
exports.SessionManager = SessionManager;
|
|
120
|
+
_SessionManager_refreshing = new WeakMap();
|
|
81
121
|
/** Interface for a session manager that knows about the org that the session is in. */
|
|
82
122
|
class OrgSessionManager extends SessionManager {
|
|
83
123
|
/**
|
|
@@ -93,4 +133,4 @@ class OrgSessionManager extends SessionManager {
|
|
|
93
133
|
}
|
|
94
134
|
}
|
|
95
135
|
exports.OrgSessionManager = OrgSessionManager;
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbl9tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nlc3Npb24vc2Vzc2lvbl9tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUFtQztBQUVuQyxnQ0FBa0Q7QUFFbEQsa0NBQWdDO0FBRWhDLE1BQU0sOEJBQThCLEdBQUcsRUFBRSxDQUFDO0FBRTFDLHlDQUF5QztBQUN6QyxNQUFzQixjQUFjO0lBNEJsQzs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWU7UUFDbkIsSUFBSSxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLElBQUksdUJBQUEsSUFBSSxrQ0FBWSxFQUFFLENBQUM7Z0JBQ3JCLDZCQUE2QjtnQkFDN0IsT0FBTyx1QkFBQSxJQUFJLGtDQUFZLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxJQUFBLFlBQUssRUFBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkIsQ0FBQztnQkFDRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVO2dCQUNWLHVCQUFBLElBQUksOEJBQWUsSUFBSSxNQUFBLENBQUM7Z0JBQ3hCLElBQUksQ0FBQztvQkFDSCxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQzt3QkFBUyxDQUFDO29CQUNULHVCQUFBLElBQUksOEJBQWUsS0FBSyxNQUFBLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVc7UUFDVCxPQUFPLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvQixDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFnQjtRQUMvQixhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxHQUFpQixFQUFFLE9BQTBCO1FBaEZoRCxXQUFNLEdBQUcsSUFBSSxlQUFNLEVBQUUsQ0FBQztRQUMvQixxQ0FBdUIsS0FBSyxFQUFDO1FBZ0YzQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sWUFBWSxDQUFDLEtBQWE7UUFDbEMsT0FBTyxJQUFBLHNCQUFnQixFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBUyxFQUFFLGFBQXNCO1FBQzNELGFBQWEsS0FBSyxDQUFDLENBQUM7UUFDcEIsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sZUFBZSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0MsTUFBTSxRQUFRLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQztRQUN0QyxPQUFPLGVBQWUsR0FBRyxlQUFlLEdBQUcsUUFBUSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBUyxFQUFFLGFBQXNCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsYUFBYSxJQUFJLDhCQUE4QixDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFdBQVcsQ0FBQyxJQUFZO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLGlCQUFpQixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBaElELHdDQWdJQzs7QUFFRCx1RkFBdUY7QUFDdkYsTUFBc0IsaUJBQXFCLFNBQVEsY0FBaUI7SUFHbEU7Ozs7OztPQU1HO0lBQ0gsWUFBWSxHQUFpQixFQUFFLEtBQWEsRUFBRSxPQUEwQjtRQUN0RSxLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQWRELDhDQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRzIH0gZnJvbSBcIi4uL2V2ZW50c1wiO1xuaW1wb3J0IHsgRW52SW50ZXJmYWNlIH0gZnJvbSBcIi4uL2VudlwiO1xuaW1wb3J0IHsgQ2xpZW50LCBjcmVhdGVIdHRwQ2xpZW50IH0gZnJvbSBcIi4uL2FwaVwiO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2UgfSBmcm9tIFwiLi9zZXNzaW9uX3N0b3JhZ2VcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcIi4uL3V0aWxcIjtcblxuY29uc3QgREVGQVVMVF9FWFBJUkFUSU9OX0JVRkZFUl9TRUNTID0gMzA7XG5cbi8qKiBHZW5lcmljIHNlc3Npb24gbWFuYWdlciBpbnRlcmZhY2UuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2Vzc2lvbk1hbmFnZXI8VT4ge1xuICByZWFkb25seSBlbnY6IEVudkludGVyZmFjZTtcbiAgcmVhZG9ubHkgc3RvcmFnZTogU2Vzc2lvblN0b3JhZ2U8VT47XG4gIHJlYWRvbmx5IGV2ZW50cyA9IG5ldyBFdmVudHMoKTtcbiAgI3JlZnJlc2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgY3VycmVudCBhdXRoIHRva2VuLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFic3RyYWN0IHRva2VuKCk6IFByb21pc2U8c3RyaW5nPjtcblxuICAvKiogUmV0dXJucyBhIGNsaWVudCBpbnN0YW5jZSB0aGF0IHVzZXMgdGhlIHRva2VuLiAqL1xuICBhYnN0cmFjdCBjbGllbnQoKTogUHJvbWlzZTxDbGllbnQ+O1xuXG4gIC8qKiBSZXZva2VzIHRoZSBzZXNzaW9uLiAqL1xuICBhYnN0cmFjdCByZXZva2UoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKiogUmVmcmVzaGVzIHRoZSBzZXNzaW9uLiAqL1xuICBhYnN0cmFjdCByZWZyZXNoKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBpdCdzIHRpbWUgdG8gcmVmcmVzaCB0aGlzIHRva2VuLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIGl0J3MgdGltZSB0byByZWZyZXNoIHRoaXMgdG9rZW4uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYWJzdHJhY3QgaXNTdGFsZSgpOiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIHNlc3Npb24gaWYgaXQgaXMgYWJvdXQgdG8gZXhwaXJlLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoZSBzZXNzaW9uIHRva2VuIHdhcyByZWZyZXNoZWQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYXN5bmMgcmVmcmVzaElmTmVlZGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmIChhd2FpdCB0aGlzLmlzU3RhbGUoKSkge1xuICAgICAgaWYgKHRoaXMuI3JlZnJlc2hpbmcpIHtcbiAgICAgICAgLy8gd2FpdCB1bnRpbCBkb25lIHJlZnJlc2hpbmdcbiAgICAgICAgd2hpbGUgKHRoaXMuI3JlZnJlc2hpbmcpIHtcbiAgICAgICAgICBhd2FpdCBkZWxheSgxMDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHJlZnJlc2hcbiAgICAgICAgdGhpcy4jcmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgdGhpcy4jcmVmcmVzaGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgcmVmcmVzaGVzIHRoZSBzZXNzaW9uIGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZWZyZXNoZXMgKGlmIG5lZWRlZCkgZXZlcnkgbWludXRlLlxuICAgKiBCYXNlIGltcGxlbWVudGF0aW9ucyBjYW4sIGluc3RlYWQgdXNlIHRoZSB0b2tlbiBleHBpcmF0aW9ucyB0aW1lc3RhbXBzXG4gICAqIHRvIHJlZnJlc2ggbGVzcyBvZnRlbi4gVGhpcyBpcyBhIHNpbXBsZSB3cmFwcGVyIGFyb3VuZCBgc2V0SW50ZXJ2YWxgLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBpbnRlcnZhbCBJRCBvZiB0aGUgcmVmcmVzaCB0aW1lci5cbiAgICovXG4gIGF1dG9SZWZyZXNoKCk6IFJlZnJlc2hJZCB7XG4gICAgcmV0dXJuIHNldEludGVydmFsKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaElmTmVlZGVkKCk7XG4gICAgfSwgNjAgKiAxMDAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGF1dG8gcmVmcmVzaCB0aW1lci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWVyIFRoZSB0aW1lciBJRCB0byBjbGVhci5cbiAgICovXG4gIGNsZWFyQXV0b1JlZnJlc2godGltZXI6IFJlZnJlc2hJZCk6IHZvaWQge1xuICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge0VudkludGVyZmFjZX0gZW52IFRoZSBlbnZpcm9ubWVudCBvZiB0aGUgc2Vzc2lvblxuICAgKiBAcGFyYW0ge1Nlc3Npb25TdG9yYWdlPFU+fSBzdG9yYWdlIFRoZSBzdG9yYWdlIGJhY2sgZW5kIHRvIHVzZSBmb3Igc3RvcmluZ1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24gaW5mb3JtYXRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKGVudjogRW52SW50ZXJmYWNlLCBzdG9yYWdlOiBTZXNzaW9uU3RvcmFnZTxVPikge1xuICAgIHRoaXMuZW52ID0gZW52O1xuICAgIHRoaXMuc3RvcmFnZSA9IHN0b3JhZ2U7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSRVNUIGNsaWVudCB3aXRoIGEgZ2l2ZW4gdG9rZW5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRva2VuIFRoZSBhdXRob3JpemF0aW9uIHRva2VuIHRvIHVzZSBmb3IgdGhlIGNsaWVudFxuICAgKiBAcmV0dXJuIHtDbGllbnR9IFRoZSBuZXcgUkVTVCBjbGllbnRcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVDbGllbnQodG9rZW46IHN0cmluZyk6IENsaWVudCB7XG4gICAgcmV0dXJuIGNyZWF0ZUh0dHBDbGllbnQodGhpcy5lbnYuU2lnbmVyQXBpUm9vdCwgdG9rZW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgdGltZXN0YW1wIGlzIHdpdGhpbiB7QGxpbmsgYnVmZmVyU2Vjb25kc30gc2Vjb25kcyBmcm9tIGV4cGlyYXRpb24uXG4gICAqIEBwYXJhbSB7RGF0ZX0gZXhwIFRoZSB0aW1lc3RhbXAgdG8gY2hlY2tcbiAgICogQHBhcmFtIHtudW1iZXJ9IGJ1ZmZlclNlY29uZHMgVGltZSBidWZmZXIgaW4gc2Vjb25kcyAoZGVmYXVsdHMgdG8gMHMpXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIHRpbWVzdGFtcCBoYXMgZXhwaXJlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHN0YXRpYyBoYXNFeHBpcmVkKGV4cDogRGF0ZSwgYnVmZmVyU2Vjb25kcz86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGJ1ZmZlclNlY29uZHMgPz89IDA7XG4gICAgY29uc3QgZXhwTXNTaW5jZUVwb2NoID0gZXhwLmdldFRpbWUoKTtcbiAgICBjb25zdCBub3dNc1NpbmNlRXBvY2ggPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBidWZmZXJNcyA9IGJ1ZmZlclNlY29uZHMgKiAxMDAwO1xuICAgIHJldHVybiBleHBNc1NpbmNlRXBvY2ggPCBub3dNc1NpbmNlRXBvY2ggKyBidWZmZXJNcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHRpbWVzdGFtcCBpcyBzdGFsZSwgaS5lLiwgaXQncyB3aXRoaW4ge0BsaW5rIGJ1ZmZlclNlY29uZHN9IHNlY29uZHMgZnJvbSBleHBpcmF0aW9uLlxuICAgKiBAcGFyYW0ge0RhdGV9IGV4cCBUaGUgdGltZXN0YW1wIHRvIGNoZWNrXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBidWZmZXJTZWNvbmRzIFRpbWUgYnVmZmVyIGluIHNlY29uZHMgKGRlZmF1bHRzIHRvIDMwcylcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgdGltZXN0YW1wIGlzIHN0YWxlXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIGlzU3RhbGUoZXhwOiBEYXRlLCBidWZmZXJTZWNvbmRzPzogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRXhwaXJlZChleHAsIGJ1ZmZlclNlY29uZHMgPz8gREVGQVVMVF9FWFBJUkFUSU9OX0JVRkZFUl9TRUNTKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgdGhhdCBzYXlzIHRoYXQgc29tZSBmZWF0dXJlIGlzIHVuc3VwcG9ydGVkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZmVhdHVyZSB0aGF0IGlzIG5vdCBzdXBwb3J0ZWRcbiAgICovXG4gIHByb3RlY3RlZCB1bnN1cHBvcnRlZChuYW1lOiBzdHJpbmcpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAnJHtuYW1lfScgbm90IHN1cHBvcnRlZGApO1xuICB9XG59XG5cbi8qKiBJbnRlcmZhY2UgZm9yIGEgc2Vzc2lvbiBtYW5hZ2VyIHRoYXQga25vd3MgYWJvdXQgdGhlIG9yZyB0aGF0IHRoZSBzZXNzaW9uIGlzIGluLiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9yZ1Nlc3Npb25NYW5hZ2VyPFU+IGV4dGVuZHMgU2Vzc2lvbk1hbmFnZXI8VT4ge1xuICByZWFkb25seSBvcmdJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtFbnZJbnRlcmZhY2V9IGVudiBUaGUgZW52aXJvbm1lbnQgb2YgdGhlIHNlc3Npb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9yZ0lkIFRoZSBpZCBvZiB0aGUgb3JnIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHNlc3Npb25cbiAgICogQHBhcmFtIHtTZXNzaW9uU3RvcmFnZTxVPn0gc3RvcmFnZSBUaGUgc3RvcmFnZSBiYWNrIGVuZCB0byB1c2UgZm9yIHN0b3JpbmdcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihlbnY6IEVudkludGVyZmFjZSwgb3JnSWQ6IHN0cmluZywgc3RvcmFnZTogU2Vzc2lvblN0b3JhZ2U8VT4pIHtcbiAgICBzdXBlcihlbnYsIHN0b3JhZ2UpO1xuICAgIHRoaXMub3JnSWQgPSBvcmdJZDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0VudiB7XG4gIC8qKiBUaGUgZW52aXJvbm1lbnQgKi9cbiAgZW52OiB7XG4gICAgW1wiRGV2LUN1YmVTaWduZXJTdGFja1wiXTogRW52SW50ZXJmYWNlO1xuICB9O1xufVxuXG4vKiogVHlwZSBvZiB0aGUgcmVmcmVzaCB0aW1lciBJRC4gKi9cbmV4cG9ydCB0eXBlIFJlZnJlc2hJZCA9IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiJdfQ==
|
|
@@ -3,6 +3,7 @@ import { Client } from "../api";
|
|
|
3
3
|
import { HasEnv, OrgSessionManager } from "./session_manager";
|
|
4
4
|
import { SessionStorage } from "./session_storage";
|
|
5
5
|
import { EnvInterface } from "../env";
|
|
6
|
+
import { operations } from "../schema";
|
|
6
7
|
/** JSON representation of our "signer session" file format */
|
|
7
8
|
export interface SignerSessionObject {
|
|
8
9
|
/** The organization ID */
|
|
@@ -15,6 +16,8 @@ export interface SignerSessionObject {
|
|
|
15
16
|
token: string;
|
|
16
17
|
/** Session info */
|
|
17
18
|
session_info: ClientSessionInfo;
|
|
19
|
+
/** Session expiration (in seconds since UNIX epoch) beyond which it cannot be refreshed */
|
|
20
|
+
session_exp: number | undefined;
|
|
18
21
|
}
|
|
19
22
|
export interface SignerSessionData extends SignerSessionObject, HasEnv {
|
|
20
23
|
}
|
|
@@ -42,16 +45,27 @@ export declare class SignerSessionManager extends OrgSessionManager<SignerSessio
|
|
|
42
45
|
* Refreshes the current session if needed, then returns a client using the current session.
|
|
43
46
|
*
|
|
44
47
|
* May **UPDATE/MUTATE** self.
|
|
48
|
+
*
|
|
49
|
+
* @param {operations} operation The operation that this client will be
|
|
50
|
+
* used for. This parameter is used exclusively for more accurate error
|
|
51
|
+
* reporting and does not affect functionality.
|
|
52
|
+
* @return {Client} The client with the current session
|
|
45
53
|
*/
|
|
46
|
-
client(): Promise<Client>;
|
|
47
|
-
/**
|
|
54
|
+
client(operation?: keyof operations): Promise<Client>;
|
|
55
|
+
/** Revoke the session. */
|
|
48
56
|
revoke(): Promise<void>;
|
|
49
57
|
/**
|
|
50
|
-
*
|
|
58
|
+
* Return whether it's time to refresh this token.
|
|
51
59
|
* @return {boolean} Whether it's time to refresh this token.
|
|
52
60
|
* @internal
|
|
53
61
|
*/
|
|
54
62
|
isStale(): Promise<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* Return whether this session has expired and cannot be refreshed anymore.
|
|
65
|
+
* @return {boolean} Whether this session has expired.
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
hasExpired(): boolean;
|
|
55
69
|
/**
|
|
56
70
|
* Refreshes the session and **UPDATES/MUTATES** self.
|
|
57
71
|
*/
|
|
@@ -17,6 +17,7 @@ const api_1 = require("../api");
|
|
|
17
17
|
const session_manager_1 = require("./session_manager");
|
|
18
18
|
const session_storage_1 = require("./session_storage");
|
|
19
19
|
const events_1 = require("../events");
|
|
20
|
+
const error_1 = require("../error");
|
|
20
21
|
/**
|
|
21
22
|
* Constructs {@link Date} from a number representing seconds since unix epoch.
|
|
22
23
|
* @param {number} secs Seconds since unix epoch.
|
|
@@ -39,16 +40,23 @@ class SignerSessionManager extends session_manager_1.OrgSessionManager {
|
|
|
39
40
|
* Refreshes the current session if needed, then returns a client using the current session.
|
|
40
41
|
*
|
|
41
42
|
* May **UPDATE/MUTATE** self.
|
|
43
|
+
*
|
|
44
|
+
* @param {operations} operation The operation that this client will be
|
|
45
|
+
* used for. This parameter is used exclusively for more accurate error
|
|
46
|
+
* reporting and does not affect functionality.
|
|
47
|
+
* @return {Client} The client with the current session
|
|
42
48
|
*/
|
|
43
|
-
async client() {
|
|
49
|
+
async client(operation) {
|
|
44
50
|
await this.refreshIfNeeded();
|
|
45
|
-
// trigger "session expired" if
|
|
46
|
-
if (
|
|
51
|
+
// trigger "session expired" if the session as a whole has expired
|
|
52
|
+
// or if (for whatever reason) the token is still stale
|
|
53
|
+
if (session_manager_1.SessionManager.hasExpired(__classPrivateFieldGet(this, _SignerSessionManager_client, "f").token_exp) || this.hasExpired()) {
|
|
47
54
|
await __classPrivateFieldGet(this, _SignerSessionManager_eventEmitter, "f").emitSessionExpired();
|
|
55
|
+
throw new error_1.SessionExpiredError(operation);
|
|
48
56
|
}
|
|
49
57
|
return __classPrivateFieldGet(this, _SignerSessionManager_client, "f").client;
|
|
50
58
|
}
|
|
51
|
-
/**
|
|
59
|
+
/** Revoke the session. */
|
|
52
60
|
async revoke() {
|
|
53
61
|
const client = new api_1.OpClient("revokeCurrentSession", await this.client(), __classPrivateFieldGet(this, _SignerSessionManager_eventEmitter, "f"));
|
|
54
62
|
await client.del("/v0/org/{org_id}/session/self", {
|
|
@@ -56,17 +64,29 @@ class SignerSessionManager extends session_manager_1.OrgSessionManager {
|
|
|
56
64
|
});
|
|
57
65
|
}
|
|
58
66
|
/**
|
|
59
|
-
*
|
|
67
|
+
* Return whether it's time to refresh this token.
|
|
60
68
|
* @return {boolean} Whether it's time to refresh this token.
|
|
61
69
|
* @internal
|
|
62
70
|
*/
|
|
63
71
|
async isStale() {
|
|
64
|
-
return session_manager_1.SessionManager.
|
|
72
|
+
return session_manager_1.SessionManager.isStale(__classPrivateFieldGet(this, _SignerSessionManager_client, "f").token_exp);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Return whether this session has expired and cannot be refreshed anymore.
|
|
76
|
+
* @return {boolean} Whether this session has expired.
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
hasExpired() {
|
|
80
|
+
return ((__classPrivateFieldGet(this, _SignerSessionManager_client, "f").session_exp || false) && session_manager_1.SessionManager.hasExpired(__classPrivateFieldGet(this, _SignerSessionManager_client, "f").session_exp));
|
|
65
81
|
}
|
|
66
82
|
/**
|
|
67
83
|
* Refreshes the session and **UPDATES/MUTATES** self.
|
|
68
84
|
*/
|
|
69
85
|
async refresh() {
|
|
86
|
+
if (this.hasExpired()) {
|
|
87
|
+
await __classPrivateFieldGet(this, _SignerSessionManager_eventEmitter, "f").emitSessionExpired();
|
|
88
|
+
throw new error_1.SessionExpiredError("signerSessionRefresh");
|
|
89
|
+
}
|
|
70
90
|
const currSession = await this.storage.retrieve();
|
|
71
91
|
const client = new api_1.OpClient("signerSessionRefresh", __classPrivateFieldGet(this, _SignerSessionManager_client, "f").client, __classPrivateFieldGet(this, _SignerSessionManager_eventEmitter, "f"));
|
|
72
92
|
const csi = currSession.session_info;
|
|
@@ -86,7 +106,10 @@ class SignerSessionManager extends session_manager_1.OrgSessionManager {
|
|
|
86
106
|
await this.storage.save(newSession);
|
|
87
107
|
__classPrivateFieldSet(this, _SignerSessionManager_client, {
|
|
88
108
|
client: this.createClient(newSession.token),
|
|
89
|
-
|
|
109
|
+
token_exp: secondsSinceEpochToDate(newSession.session_info.auth_token_exp),
|
|
110
|
+
session_exp: newSession.session_exp
|
|
111
|
+
? secondsSinceEpochToDate(newSession.session_exp)
|
|
112
|
+
: undefined,
|
|
90
113
|
}, "f");
|
|
91
114
|
}
|
|
92
115
|
/**
|
|
@@ -105,6 +128,7 @@ class SignerSessionManager extends session_manager_1.OrgSessionManager {
|
|
|
105
128
|
token: session.token,
|
|
106
129
|
purpose: "sign via oidc",
|
|
107
130
|
session_info: session.session_info,
|
|
131
|
+
session_exp: session.expiration,
|
|
108
132
|
};
|
|
109
133
|
storage ??= new session_storage_1.MemorySessionStorage();
|
|
110
134
|
await storage.save(sessionData);
|
|
@@ -143,10 +167,13 @@ class SignerSessionManager extends session_manager_1.OrgSessionManager {
|
|
|
143
167
|
__classPrivateFieldSet(this, _SignerSessionManager_eventEmitter, new events_1.EventEmitter([this.events]), "f");
|
|
144
168
|
__classPrivateFieldSet(this, _SignerSessionManager_client, {
|
|
145
169
|
client: this.createClient(sessionData.token),
|
|
146
|
-
|
|
170
|
+
token_exp: secondsSinceEpochToDate(sessionData.session_info.auth_token_exp),
|
|
171
|
+
session_exp: sessionData.session_exp
|
|
172
|
+
? secondsSinceEpochToDate(sessionData.session_exp)
|
|
173
|
+
: undefined,
|
|
147
174
|
}, "f");
|
|
148
175
|
}
|
|
149
176
|
}
|
|
150
177
|
exports.SignerSessionManager = SignerSessionManager;
|
|
151
178
|
_SignerSessionManager_eventEmitter = new WeakMap(), _SignerSessionManager_client = new WeakMap();
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyX3Nlc3Npb25fbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXNzaW9uL3NpZ25lcl9zZXNzaW9uX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBS0EsZ0NBQTBDO0FBQzFDLHVEQUE4RTtBQUM5RSx1REFBeUU7QUFDekUsc0NBQXlDO0FBaUJ6Qzs7OztHQUlHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxJQUFZO0lBQzNDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFrQkQsbUNBQW1DO0FBQ25DLE1BQWEsb0JBQXFCLFNBQVEsbUNBQW9DO0lBSTVFOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFLO1FBQ1QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNO1FBQ1YsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFN0IsNEVBQTRFO1FBQzVFLElBQUksZ0NBQWMsQ0FBQyxVQUFVLENBQUMsdUJBQUEsSUFBSSxvQ0FBUSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoRSxNQUFNLHVCQUFBLElBQUksMENBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLHVCQUFBLElBQUksb0NBQVEsQ0FBQyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixLQUFLLENBQUMsTUFBTTtRQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBUSxDQUFDLHNCQUFzQixFQUFFLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLHVCQUFB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NkI7UUFDeEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsT0FBTyxJQUFJLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFzQixXQUE4QixFQUFFLE9BQTZCO1FBQ2pGLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQXJJcEUscURBQTRCO1FBQ3JDLCtDQUF1QztRQXFJckMsdUJBQUEsSUFBSSxzQ0FBaUIsSUFBSSxxQkFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQUEsQ0FBQztRQUNyRCx1QkFBQSxJQUFJLGdDQUFXO1lBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUM1QyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7U0FDdEUsTUFBQSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBN0lELG9EQTZJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENsaWVudFNlc3Npb25JbmZvLFxuICBOZXdTZXNzaW9uUmVzcG9uc2UsXG4gIFJlZnJlc2hTaWduZXJTZXNzaW9uUmVxdWVzdCxcbn0gZnJvbSBcIi4uL3NjaGVtYV90eXBlc1wiO1xuaW1wb3J0IHsgQ2xpZW50LCBPcENsaWVudCB9IGZyb20gXCIuLi9hcGlcIjtcbmltcG9ydCB7IEhhc0VudiwgT3JnU2Vzc2lvbk1hbmFnZXIsIFNlc3Npb25NYW5hZ2VyIH0gZnJvbSBcIi4vc2Vzc2lvbl9tYW5hZ2VyXCI7XG5pbXBvcnQgeyBNZW1vcnlTZXNzaW9uU3RvcmFnZSwgU2Vzc2lvblN0b3JhZ2UgfSBmcm9tIFwiLi9zZXNzaW9uX3N0b3JhZ2VcIjtcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCIuLi9ldmVudHNcIjtcbmltcG9ydCB7IEVudkludGVyZmFjZSB9IGZyb20gXCIuLi9lbnZcIjtcblxuLyoqIEpTT04gcmVwcmVzZW50YXRpb24gb2Ygb3VyIFwic2lnbmVyIHNlc3Npb25cIiBmaWxlIGZvcm1hdCAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduZXJTZXNzaW9uT2JqZWN0IHtcbiAgLyoqIFRoZSBvcmdhbml6YXRpb24gSUQgKi9cbiAgb3JnX2lkOiBzdHJpbmc7XG4gIC8qKiBUaGUgcm9sZSBJRCAqL1xuICByb2xlX2lkPzogc3RyaW5nO1xuICAvKiogVGhlIHB1cnBvc2Ugb2YgdGhlIHNlc3Npb24gdG9rZW4gKi9cbiAgcHVycG9zZT86IHN0cmluZztcbiAgLyoqIFRoZSB0b2tlbiB0byBpbmNsdWRlIGluIEF1dGhvcml6YXRpb24gaGVhZGVyICovXG4gIHRva2VuOiBzdHJpbmc7XG4gIC8qKiBTZXNzaW9uIGluZm8gKi9cbiAgc2Vzc2lvbl9pbmZvOiBDbGllbnRTZXNzaW9uSW5mbztcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3RzIHtAbGluayBEYXRlfSBmcm9tIGEgbnVtYmVyIHJlcHJlc2VudGluZyBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2guXG4gKiBAcGFyYW0ge251bWJlcn0gc2VjcyBTZWNvbmRzIHNpbmNlIHVuaXggZXBvY2guXG4gKiBAcmV0dXJuIHtEYXRlfSBUaGUgZXF1aXZhbGVudCBkYXRlLlxuICovXG5mdW5jdGlvbiBzZWNvbmRzU2luY2VFcG9jaFRvRGF0ZShzZWNzOiBudW1iZXIpOiBEYXRlIHtcbiAgcmV0dXJuIG5ldyBEYXRlKHNlY3MgKiAxMDAwKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduZXJTZXNzaW9uRGF0YSBleHRlbmRzIFNpZ25lclNlc3Npb25PYmplY3QsIEhhc0VudiB7fVxuXG4vKiogVHlwZSBvZiBzdG9yYWdlIHJlcXVpcmVkIGZvciBzaWduZXIgc2Vzc2lvbnMgKi9cbmV4cG9ydCB0eXBlIFNpZ25lclNlc3Npb25TdG9yYWdlID0gU2Vzc2lvblN0b3JhZ2U8U2lnbmVyU2Vzc2lvbkRhdGE+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lclNlc3Npb25MaWZldGltZSB7XG4gIC8qKiBTZXNzaW9uIGxpZmV0aW1lIChpbiBzZWNvbmRzKS4gRGVmYXVsdHMgdG8gb25lIHdlZWsgKDYwNDgwMCkuICovXG4gIHNlc3Npb24/OiBudW1iZXI7XG4gIC8qKiBBdXRoIHRva2VuIGxpZmV0aW1lIChpbiBzZWNvbmRzKS4gRGVmYXVsdHMgdG8gZml2ZSBtaW51dGVzICgzMDApLiAqL1xuICBhdXRoOiBudW1iZXI7XG4gIC8qKiBSZWZyZXNoIHRva2VuIGxpZmV0aW1lIChpbiBzZWNvbmRzKS4gRGVmYXVsdHMgdG8gb25lIGRheSAoODY0MDApLiAqL1xuICByZWZyZXNoPzogbnVtYmVyO1xuICAvKiogR3JhY2UgbGlmZXRpbWUgKGluIHNlY29uZHMpLiBEZWZhdWx0cyB0byAzMCBzZWNvbmRzICgzMCkuICovXG4gIGdyYWNlPzogbnVtYmVyO1xufVxuXG4vKiogTWFuYWdlciBmb3Igc2lnbmVyIHNlc3Npb25zLiAqL1xuZXhwb3J0IGNsYXNzIFNpZ25lclNlc3Npb25NYW5hZ2VyIGV4dGVuZHMgT3JnU2Vzc2lvbk1hbmFnZXI8U2lnbmVyU2Vzc2lvbkRhdGE+IHtcbiAgcmVhZG9ubHkgI2V2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyO1xuICAjY2xpZW50OiB7IGNsaWVudDogQ2xpZW50OyBleHA6IERhdGUgfTtcblxuICAvKipcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgY3VycmVudCBhdXRoIHRva2VuLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFzeW5jIHRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHRoaXMuc3RvcmFnZS5yZXRyaWV2ZSgpO1xuICAgIHJldHVybiBzZXNzaW9uLnRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgY3VycmVudCBzZXNzaW9uIGlmIG5lZWRlZCwgdGhlbiByZXR1cm5zIGEgY2xpZW50IHVzaW5nIHRoZSBjdXJyZW50IHNlc3Npb24uXG4gICAqXG4gICAqIE1heSAqKlVQREFURS9NVVRBVEUqKiBzZWxmLlxuICAgKi9cbiAgYXN5bmMgY2xpZW50KCk6IFByb21pc2U8Q2xpZW50PiB7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoSWZOZWVkZWQoKTtcblxuICAgIC8vIHRyaWdnZXIgXCJzZXNzaW9uIGV4cGlyZWRcIiBpZiBmb3Igd2hhdGV2ZXIgcmVhc29uIHRoZSB0b2tlbiBpcyBzdGlsbCBzdGFsZVxuICAgIGlmIChTZXNzaW9uTWFuYWdlci5oYXNFeHBpcmVkKHRoaXMuI2NsaWVudC5leHAsIC8qIGJ1ZmZlciAqLyAwKSkge1xuICAgICAgYXdhaXQgdGhpcy4jZXZlbnRFbWl0dGVyLmVtaXRTZXNzaW9uRXhwaXJlZCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiNjbGllbnQuY2xpZW50O1xuICB9XG5cbiAgLyoqIFJldm9rZXMgdGhlIHNlc3Npb24uICovXG4gIGFzeW5jIHJldm9rZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgT3BDbGllbnQoXCJyZXZva2VDdXJyZW50U2Vzc2lvblwiLCBhd2FpdCB0aGlzLmNsaWVudCgpLCB0aGlzLiNldmVudEVtaXR0ZXIpO1xuICAgIGF3YWl0IGNsaWVudC5kZWwoXCIvdjAvb3JnL3tvcmdfaWR9L3Nlc3Npb24vc2VsZlwiLCB7XG4gICAgICBwYXJhbXM6IHsgcGF0aDogeyBvcmdfaWQ6IHRoaXMub3JnSWQgfSB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBpdCdzIHRpbWUgdG8gcmVmcmVzaCB0aGlzIHRva2VuLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIGl0J3MgdGltZSB0byByZWZyZXNoIHRoaXMgdG9rZW4uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYXN5bmMgaXNTdGFsZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gU2Vzc2lvbk1hbmFnZXIuaGFzRXhwaXJlZCh0aGlzLiNjbGllbnQuZXhwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIHNlc3Npb24gYW5kICoqVVBEQVRFUy9NVVRBVEVTKiogc2VsZi5cbiAgICovXG4gIGFzeW5jIHJlZnJlc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3VyclNlc3Npb24gPSBhd2FpdCB0aGlzLnN0b3JhZ2UucmV0cmlldmUoKTtcblxuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBPcENsaWVudChcInNpZ25lclNlc3Npb25SZWZyZXNoXCIsIHRoaXMuI2NsaWVudC5jbGllbnQsIHRoaXMuI2V2ZW50RW1pdHRlcik7XG4gICAgY29uc3QgY3NpID0gY3VyclNlc3Npb24uc2Vzc2lvbl9pbmZvO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBjbGllbnQucGF0Y2goXCIvdjEvb3JnL3tvcmdfaWR9L3Rva2VuL3JlZnJlc2hcIiwge1xuICAgICAgcGFyYW1zOiB7IHBhdGg6IHsgb3JnX2lkOiB0aGlzLm9yZ0lkIH0gfSxcbiAgICAgIGJvZHk6IDxSZWZyZXNoU2lnbmVyU2Vzc2lvblJlcXVlc3Q+e1xuICAgICAgICBlcG9jaF9udW06IGNzaS5lcG9jaCxcbiAgICAgICAgZXBvY2hfdG9rZW46IGNzaS5lcG9jaF90b2tlbixcbiAgICAgICAgb3RoZXJfdG9rZW46IGNzaS5yZWZyZXNoX3Rva2VuLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBuZXdTZXNzaW9uID0gPFNpZ25lclNlc3Npb25EYXRhPntcbiAgICAgIC4uLmN1cnJTZXNzaW9uLFxuICAgICAgc2Vzc2lvbl9pbmZvOiBkYXRhLnNlc3Npb25faW5mbyxcbiAgICAgIHRva2VuOiBkYXRhLnRva2VuLFxuICAgIH07XG5cbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2F2ZShuZXdTZXNzaW9uKTtcbiAgICB0aGlzLiNjbGllbnQgPSB7XG4gICAgICBjbGllbnQ6IHRoaXMuY3JlYXRlQ2xpZW50KG5ld1Nlc3Npb24udG9rZW4pLFxuICAgICAgZXhwOiBzZWNvbmRzU2luY2VFcG9jaFRvRGF0ZShuZXdTZXNzaW9uLnNlc3Npb25faW5mby5hdXRoX3Rva2VuX2V4cCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0VudkludGVyZmFjZX0gZW52IFRoZSBDdWJlU2lnbmVyIGVudmlyb25tZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcmdJZCBUaGUgb3JnYW5pemF0aW9uIElEXG4gICAqIEBwYXJhbSB7TmV3U2Vzc2lvblJlc3BvbnNlfSBzZXNzaW9uIFRoZSBzZXNzaW9uIGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0ge1NpZ25lclNlc3Npb25TdG9yYWdlfSBzdG9yYWdlIFRoZSBzdG9yYWdlIHRvIHVzZSBmb3Igc2F2aW5nIHRoZSBzZXNzaW9uLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFNpZ25lclNlc3Npb25NYW5hZ2VyPn0gTmV3IHNpZ25lciBzZXNzaW9uIG1hbmFnZXIuXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgY3JlYXRlRnJvbVNlc3Npb25JbmZvKFxuICAgIGVudjogRW52SW50ZXJmYWNlLFxuICAgIG9yZ0lkOiBzdHJpbmcsXG4gICAgc2Vzc2lvbjogTmV3U2Vzc2lvblJlc3BvbnNlLFxuICAgIHN0b3JhZ2U/OiBTaWduZXJTZXNzaW9uU3RvcmFnZSxcbiAgKTogUHJvbWlzZTxTaWduZXJTZXNzaW9uTWFuYWdlcj4ge1xuICAgIGNvbnN0IHNlc3Npb25EYXRhID0ge1xuICAgICAgZW52OiB7XG4gICAgICAgIFtcIkRldi1DdWJlU2lnbmVyU3RhY2tcIl06IGVudixcbiAgICAgIH0sXG4gICAgICBvcmdfaWQ6IG9yZ0lkLFxuICAgICAgdG9rZW46IHNlc3Npb24udG9rZW4sXG4gICAgICBwdXJwb3NlOiBcInNpZ24gdmlhIG9pZGNcIixcbiAgICAgIHNlc3Npb25faW5mbzogc2Vzc2lvbi5zZXNzaW9uX2luZm8sXG4gICAgfTtcbiAgICBzdG9yYWdlID8/PSBuZXcgTWVtb3J5U2Vzc2lvblN0b3JhZ2UoKTtcbiAgICBhd2FpdCBzdG9yYWdlLnNhdmUoc2Vzc2lvbkRhdGEpO1xuICAgIHJldHVybiBhd2FpdCBTaWduZXJTZXNzaW9uTWFuYWdlci5sb2FkRnJvbVN0b3JhZ2Uoc3RvcmFnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtTaWduZXJTZXNzaW9uRGF0YX0gc2Vzc2lvbkRhdGEgVGhlIHNlc3Npb24gaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSB7U2lnbmVyU2Vzc2lvblN0b3JhZ2V9IHN0b3JhZ2UgVGhlIHN0b3JhZ2UgdG8gdXNlIGZvciBzYXZpbmcgdGhlIHNlc3Npb24uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8U2lnbmVyU2Vzc2lvbk1hbmFnZXI+fSBOZXcgc2lnbmVyIHNlc3Npb24gbWFuYWdlci5cbiAgICovXG4gIHN0YXRpYyBhc3luYyBjcmVhdGVGcm9tU2Vzc2lvbkRhdGEoXG4gICAgc2Vzc2lvbkRhdGE6IFNpZ25lclNlc3Npb25EYXRhLFxuICAgIHN0b3JhZ2U/OiBTaWduZXJTZXNzaW9uU3RvcmFnZSxcbiAgKTogUHJvbWlzZTxTaWduZXJTZXNzaW9uTWFuYWdlcj4ge1xuICAgIHN0b3JhZ2UgPz89IG5ldyBNZW1vcnlTZXNzaW9uU3RvcmFnZSgpO1xuICAgIGF3YWl0IHN0b3JhZ2Uuc2F2ZShzZXNzaW9uRGF0YSk7XG4gICAgcmV0dXJuIGF3YWl0IFNpZ25lclNlc3Npb25NYW5hZ2VyLmxvYWRGcm9tU3RvcmFnZShzdG9yYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VzIGFuIGV4aXN0aW5nIHNlc3Npb24gdG8gY3JlYXRlIGEgbmV3IHNpZ25lciBzZXNzaW9uIG1hbmFnZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7U2lnbmVyU2Vzc2lvblN0b3JhZ2V9IHN0b3JhZ2UgVGhlIHNlc3Npb24gc3RvcmFnZSB0byB1c2VcbiAgICogQHJldHVybiB7UHJvbWlzZTxTaW5nZXJTZXNzaW9uPn0gTmV3IHNpZ25lciBzZXNzaW9uIG1hbmFnZXJcbiAgICovXG4gIHN0YXRpYyBhc3luYyBsb2FkRnJvbVN0b3JhZ2Uoc3RvcmFnZTogU2lnbmVyU2Vzc2lvblN0b3JhZ2UpOiBQcm9taXNlPFNpZ25lclNlc3Npb25NYW5hZ2VyPiB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gbmV3IFNpZ25lclNlc3Npb25NYW5hZ2VyKHNlc3Npb24sIHN0b3JhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge1NpZ25lclNlc3Npb25EYXRhfSBzZXNzaW9uRGF0YSBTZXNzaW9uIGRhdGFcbiAgICogQHBhcmFtIHtTaWduZXJTZXNzaW9uU3RvcmFnZX0gc3RvcmFnZSBUaGUgc2Vzc2lvbiBzdG9yYWdlIHRvIHVzZS5cbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihzZXNzaW9uRGF0YTogU2lnbmVyU2Vzc2lvbkRhdGEsIHN0b3JhZ2U6IFNpZ25lclNlc3Npb25TdG9yYWdlKSB7XG4gICAgc3VwZXIoc2Vzc2lvbkRhdGEuZW52W1wiRGV2LUN1YmVTaWduZXJTdGFja1wiXSwgc2Vzc2lvbkRhdGEub3JnX2lkLCBzdG9yYWdlKTtcbiAgICB0aGlzLiNldmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFt0aGlzLmV2ZW50c10pO1xuICAgIHRoaXMuI2NsaWVudCA9IHtcbiAgICAgIGNsaWVudDogdGhpcy5jcmVhdGVDbGllbnQoc2Vzc2lvbkRhdGEudG9rZW4pLFxuICAgICAgZXhwOiBzZWNvbmRzU2luY2VFcG9jaFRvRGF0ZShzZXNzaW9uRGF0YS5zZXNzaW9uX2luZm8uYXV0aF90b2tlbl9leHApLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyX3Nlc3Npb25fbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXNzaW9uL3NpZ25lcl9zZXNzaW9uX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBS0EsZ0NBQTBDO0FBQzFDLHVEQUE4RTtBQUM5RSx1REFBeUU7QUFDekUsc0NBQXlDO0FBRXpDLG9DQUErQztBQW1CL0M7Ozs7R0FJRztBQUNILFNBQVMsdUJBQXVCLENBQUMsSUFBWTtJQUMzQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBa0JELG1DQUFtQztBQUNuQyxNQUFhLG9CQUFxQixTQUFRLG1DQUFvQztJQUk1RTs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBNEI7UUFDdkMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFN0Isa0VBQWtFO1FBQ2xFLHVEQUF1RDtRQUN2RCxJQUFJLGdDQUFjLENBQUMsVUFBVSxDQUFDLHVCQUFBLElBQUksb0NBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUMzRSxNQUFNLHVCQUFBLElBQUksMENBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzlDLE1BQU0sSUFBSSwyQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBRUQsT0FBTyx1QkFBQSxJQUFJLG9DQUFRLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsS0FBSyxD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LElBQUksZ0NBQVc7WUFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzVDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztZQUMzRSxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVc7Z0JBQ2xDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO2dCQUNsRCxDQUFDLENBQUMsU0FBUztTQUNkLE1BQUEsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTNLRCxvREEyS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbGllbnRTZXNzaW9uSW5mbyxcbiAgTmV3U2Vzc2lvblJlc3BvbnNlLFxuICBSZWZyZXNoU2lnbmVyU2Vzc2lvblJlcXVlc3QsXG59IGZyb20gXCIuLi9zY2hlbWFfdHlwZXNcIjtcbmltcG9ydCB7IENsaWVudCwgT3BDbGllbnQgfSBmcm9tIFwiLi4vYXBpXCI7XG5pbXBvcnQgeyBIYXNFbnYsIE9yZ1Nlc3Npb25NYW5hZ2VyLCBTZXNzaW9uTWFuYWdlciB9IGZyb20gXCIuL3Nlc3Npb25fbWFuYWdlclwiO1xuaW1wb3J0IHsgTWVtb3J5U2Vzc2lvblN0b3JhZ2UsIFNlc3Npb25TdG9yYWdlIH0gZnJvbSBcIi4vc2Vzc2lvbl9zdG9yYWdlXCI7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiLi4vZXZlbnRzXCI7XG5pbXBvcnQgeyBFbnZJbnRlcmZhY2UgfSBmcm9tIFwiLi4vZW52XCI7XG5pbXBvcnQgeyBTZXNzaW9uRXhwaXJlZEVycm9yIH0gZnJvbSBcIi4uL2Vycm9yXCI7XG5pbXBvcnQgeyBvcGVyYXRpb25zIH0gZnJvbSBcIi4uL3NjaGVtYVwiO1xuXG4vKiogSlNPTiByZXByZXNlbnRhdGlvbiBvZiBvdXIgXCJzaWduZXIgc2Vzc2lvblwiIGZpbGUgZm9ybWF0ICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lclNlc3Npb25PYmplY3Qge1xuICAvKiogVGhlIG9yZ2FuaXphdGlvbiBJRCAqL1xuICBvcmdfaWQ6IHN0cmluZztcbiAgLyoqIFRoZSByb2xlIElEICovXG4gIHJvbGVfaWQ/OiBzdHJpbmc7XG4gIC8qKiBUaGUgcHVycG9zZSBvZiB0aGUgc2Vzc2lvbiB0b2tlbiAqL1xuICBwdXJwb3NlPzogc3RyaW5nO1xuICAvKiogVGhlIHRva2VuIHRvIGluY2x1ZGUgaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIgKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIFNlc3Npb24gaW5mbyAqL1xuICBzZXNzaW9uX2luZm86IENsaWVudFNlc3Npb25JbmZvO1xuICAvKiogU2Vzc2lvbiBleHBpcmF0aW9uIChpbiBzZWNvbmRzIHNpbmNlIFVOSVggZXBvY2gpIGJleW9uZCB3aGljaCBpdCBjYW5ub3QgYmUgcmVmcmVzaGVkICovXG4gIHNlc3Npb25fZXhwOiBudW1iZXIgfCB1bmRlZmluZWQ7IC8vIG1heSBiZSBtaXNzaW5nIGluIGxlZ2FjeSBzZXNzaW9uIGZpbGVzXG59XG5cbi8qKlxuICogQ29uc3RydWN0cyB7QGxpbmsgRGF0ZX0gZnJvbSBhIG51bWJlciByZXByZXNlbnRpbmcgc2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLlxuICogQHBhcmFtIHtudW1iZXJ9IHNlY3MgU2Vjb25kcyBzaW5jZSB1bml4IGVwb2NoLlxuICogQHJldHVybiB7RGF0ZX0gVGhlIGVxdWl2YWxlbnQgZGF0ZS5cbiAqL1xuZnVuY3Rpb24gc2Vjb25kc1NpbmNlRXBvY2hUb0RhdGUoc2VjczogbnVtYmVyKTogRGF0ZSB7XG4gIHJldHVybiBuZXcgRGF0ZShzZWNzICogMTAwMCk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmVyU2Vzc2lvbkRhdGEgZXh0ZW5kcyBTaWduZXJTZXNzaW9uT2JqZWN0LCBIYXNFbnYge31cblxuLyoqIFR5cGUgb2Ygc3RvcmFnZSByZXF1aXJlZCBmb3Igc2lnbmVyIHNlc3Npb25zICovXG5leHBvcnQgdHlwZSBTaWduZXJTZXNzaW9uU3RvcmFnZSA9IFNlc3Npb25TdG9yYWdlPFNpZ25lclNlc3Npb25EYXRhPjtcblxuZXhwb3J0IGludGVyZmFjZSBTaWduZXJTZXNzaW9uTGlmZXRpbWUge1xuICAvKiogU2Vzc2lvbiBsaWZldGltZSAoaW4gc2Vjb25kcykuIERlZmF1bHRzIHRvIG9uZSB3ZWVrICg2MDQ4MDApLiAqL1xuICBzZXNzaW9uPzogbnVtYmVyO1xuICAvKiogQXV0aCB0b2tlbiBsaWZldGltZSAoaW4gc2Vjb25kcykuIERlZmF1bHRzIHRvIGZpdmUgbWludXRlcyAoMzAwKS4gKi9cbiAgYXV0aDogbnVtYmVyO1xuICAvKiogUmVmcmVzaCB0b2tlbiBsaWZldGltZSAoaW4gc2Vjb25kcykuIERlZmF1bHRzIHRvIG9uZSBkYXkgKDg2NDAwKS4gKi9cbiAgcmVmcmVzaD86IG51bWJlcjtcbiAgLyoqIEdyYWNlIGxpZmV0aW1lIChpbiBzZWNvbmRzKS4gRGVmYXVsdHMgdG8gMzAgc2Vjb25kcyAoMzApLiAqL1xuICBncmFjZT86IG51bWJlcjtcbn1cblxuLyoqIE1hbmFnZXIgZm9yIHNpZ25lciBzZXNzaW9ucy4gKi9cbmV4cG9ydCBjbGFzcyBTaWduZXJTZXNzaW9uTWFuYWdlciBleHRlbmRzIE9yZ1Nlc3Npb25NYW5hZ2VyPFNpZ25lclNlc3Npb25EYXRhPiB7XG4gIHJlYWRvbmx5ICNldmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjtcbiAgI2NsaWVudDogeyBjbGllbnQ6IENsaWVudDsgdG9rZW5fZXhwOiBEYXRlOyBzZXNzaW9uX2V4cD86IERhdGUgfTtcblxuICAvKipcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgY3VycmVudCBhdXRoIHRva2VuLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFzeW5jIHRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHRoaXMuc3RvcmFnZS5yZXRyaWV2ZSgpO1xuICAgIHJldHVybiBzZXNzaW9uLnRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgY3VycmVudCBzZXNzaW9uIGlmIG5lZWRlZCwgdGhlbiByZXR1cm5zIGEgY2xpZW50IHVzaW5nIHRoZSBjdXJyZW50IHNlc3Npb24uXG4gICAqXG4gICAqIE1heSAqKlVQREFURS9NVVRBVEUqKiBzZWxmLlxuICAgKlxuICAgKiBAcGFyYW0ge29wZXJhdGlvbnN9IG9wZXJhdGlvbiBUaGUgb3BlcmF0aW9uIHRoYXQgdGhpcyBjbGllbnQgd2lsbCBiZVxuICAgKiAgIHVzZWQgZm9yLiBUaGlzIHBhcmFtZXRlciBpcyB1c2VkIGV4Y2x1c2l2ZWx5IGZvciBtb3JlIGFjY3VyYXRlIGVycm9yXG4gICAqICAgcmVwb3J0aW5nIGFuZCBkb2VzIG5vdCBhZmZlY3QgZnVuY3Rpb25hbGl0eS5cbiAgICogQHJldHVybiB7Q2xpZW50fSBUaGUgY2xpZW50IHdpdGggdGhlIGN1cnJlbnQgc2Vzc2lvblxuICAgKi9cbiAgYXN5bmMgY2xpZW50KG9wZXJhdGlvbj86IGtleW9mIG9wZXJhdGlvbnMpOiBQcm9taXNlPENsaWVudD4ge1xuICAgIGF3YWl0IHRoaXMucmVmcmVzaElmTmVlZGVkKCk7XG5cbiAgICAvLyB0cmlnZ2VyIFwic2Vzc2lvbiBleHBpcmVkXCIgaWYgdGhlIHNlc3Npb24gYXMgYSB3aG9sZSBoYXMgZXhwaXJlZFxuICAgIC8vIG9yIGlmIChmb3Igd2hhdGV2ZXIgcmVhc29uKSB0aGUgdG9rZW4gaXMgc3RpbGwgc3RhbGVcbiAgICBpZiAoU2Vzc2lvbk1hbmFnZXIuaGFzRXhwaXJlZCh0aGlzLiNjbGllbnQudG9rZW5fZXhwKSB8fCB0aGlzLmhhc0V4cGlyZWQoKSkge1xuICAgICAgYXdhaXQgdGhpcy4jZXZlbnRFbWl0dGVyLmVtaXRTZXNzaW9uRXhwaXJlZCgpO1xuICAgICAgdGhyb3cgbmV3IFNlc3Npb25FeHBpcmVkRXJyb3Iob3BlcmF0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jY2xpZW50LmNsaWVudDtcbiAgfVxuXG4gIC8qKiBSZXZva2UgdGhlIHNlc3Npb24uICovXG4gIGFzeW5jIHJldm9rZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgT3BDbGllbnQoXCJyZXZva2VDdXJyZW50U2Vzc2lvblwiLCBhd2FpdCB0aGlzLmNsaWVudCgpLCB0aGlzLiNldmVudEVtaXR0ZXIpO1xuICAgIGF3YWl0IGNsaWVudC5kZWwoXCIvdjAvb3JnL3tvcmdfaWR9L3Nlc3Npb24vc2VsZlwiLCB7XG4gICAgICBwYXJhbXM6IHsgcGF0aDogeyBvcmdfaWQ6IHRoaXMub3JnSWQgfSB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIGl0J3MgdGltZSB0byByZWZyZXNoIHRoaXMgdG9rZW4uXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgaXQncyB0aW1lIHRvIHJlZnJlc2ggdGhpcyB0b2tlbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBpc1N0YWxlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBTZXNzaW9uTWFuYWdlci5pc1N0YWxlKHRoaXMuI2NsaWVudC50b2tlbl9leHApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgc2Vzc2lvbiBoYXMgZXhwaXJlZCBhbmQgY2Fubm90IGJlIHJlZnJlc2hlZCBhbnltb3JlLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgc2Vzc2lvbiBoYXMgZXhwaXJlZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBoYXNFeHBpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy4jY2xpZW50LnNlc3Npb25fZXhwIHx8IGZhbHNlKSAmJiBTZXNzaW9uTWFuYWdlci5oYXNFeHBpcmVkKHRoaXMuI2NsaWVudC5zZXNzaW9uX2V4cClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgc2Vzc2lvbiBhbmQgKipVUERBVEVTL01VVEFURVMqKiBzZWxmLlxuICAgKi9cbiAgYXN5bmMgcmVmcmVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5oYXNFeHBpcmVkKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMuI2V2ZW50RW1pdHRlci5lbWl0U2Vzc2lvbkV4cGlyZWQoKTtcbiAgICAgIHRocm93IG5ldyBTZXNzaW9uRXhwaXJlZEVycm9yKFwic2lnbmVyU2Vzc2lvblJlZnJlc2hcIik7XG4gICAgfVxuXG4gICAgY29uc3QgY3VyclNlc3Npb24gPSBhd2FpdCB0aGlzLnN0b3JhZ2UucmV0cmlldmUoKTtcblxuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBPcENsaWVudChcInNpZ25lclNlc3Npb25SZWZyZXNoXCIsIHRoaXMuI2NsaWVudC5jbGllbnQsIHRoaXMuI2V2ZW50RW1pdHRlcik7XG4gICAgY29uc3QgY3NpID0gY3VyclNlc3Npb24uc2Vzc2lvbl9pbmZvO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBjbGllbnQucGF0Y2goXCIvdjEvb3JnL3tvcmdfaWR9L3Rva2VuL3JlZnJlc2hcIiwge1xuICAgICAgcGFyYW1zOiB7IHBhdGg6IHsgb3JnX2lkOiB0aGlzLm9yZ0lkIH0gfSxcbiAgICAgIGJvZHk6IDxSZWZyZXNoU2lnbmVyU2Vzc2lvblJlcXVlc3Q+e1xuICAgICAgICBlcG9jaF9udW06IGNzaS5lcG9jaCxcbiAgICAgICAgZXBvY2hfdG9rZW46IGNzaS5lcG9jaF90b2tlbixcbiAgICAgICAgb3RoZXJfdG9rZW46IGNzaS5yZWZyZXNoX3Rva2VuLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBuZXdTZXNzaW9uID0gPFNpZ25lclNlc3Npb25EYXRhPntcbiAgICAgIC4uLmN1cnJTZXNzaW9uLFxuICAgICAgc2Vzc2lvbl9pbmZvOiBkYXRhLnNlc3Npb25faW5mbyxcbiAgICAgIHRva2VuOiBkYXRhLnRva2VuLFxuICAgIH07XG5cbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2F2ZShuZXdTZXNzaW9uKTtcbiAgICB0aGlzLiNjbGllbnQgPSB7XG4gICAgICBjbGllbnQ6IHRoaXMuY3JlYXRlQ2xpZW50KG5ld1Nlc3Npb24udG9rZW4pLFxuICAgICAgdG9rZW5fZXhwOiBzZWNvbmRzU2luY2VFcG9jaFRvRGF0ZShuZXdTZXNzaW9uLnNlc3Npb25faW5mby5hdXRoX3Rva2VuX2V4cCksXG4gICAgICBzZXNzaW9uX2V4cDogbmV3U2Vzc2lvbi5zZXNzaW9uX2V4cFxuICAgICAgICA/IHNlY29uZHNTaW5jZUVwb2NoVG9EYXRlKG5ld1Nlc3Npb24uc2Vzc2lvbl9leHApXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtFbnZJbnRlcmZhY2V9IGVudiBUaGUgQ3ViZVNpZ25lciBlbnZpcm9ubWVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3JnSWQgVGhlIG9yZ2FuaXphdGlvbiBJRFxuICAgKiBAcGFyYW0ge05ld1Nlc3Npb25SZXNwb25zZX0gc2Vzc2lvbiBUaGUgc2Vzc2lvbiBpbmZvcm1hdGlvbi5cbiAgICogQHBhcmFtIHtTaWduZXJTZXNzaW9uU3RvcmFnZX0gc3RvcmFnZSBUaGUgc3RvcmFnZSB0byB1c2UgZm9yIHNhdmluZyB0aGUgc2Vzc2lvbi5cbiAgICogQHJldHVybiB7UHJvbWlzZTxTaWduZXJTZXNzaW9uTWFuYWdlcj59IE5ldyBzaWduZXIgc2Vzc2lvbiBtYW5hZ2VyLlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZUZyb21TZXNzaW9uSW5mbyhcbiAgICBlbnY6IEVudkludGVyZmFjZSxcbiAgICBvcmdJZDogc3RyaW5nLFxuICAgIHNlc3Npb246IE5ld1Nlc3Npb25SZXNwb25zZSxcbiAgICBzdG9yYWdlPzogU2lnbmVyU2Vzc2lvblN0b3JhZ2UsXG4gICk6IFByb21pc2U8U2lnbmVyU2Vzc2lvbk1hbmFnZXI+IHtcbiAgICBjb25zdCBzZXNzaW9uRGF0YSA9IHtcbiAgICAgIGVudjoge1xuICAgICAgICBbXCJEZXYtQ3ViZVNpZ25lclN0YWNrXCJdOiBlbnYsXG4gICAgICB9LFxuICAgICAgb3JnX2lkOiBvcmdJZCxcbiAgICAgIHRva2VuOiBzZXNzaW9uLnRva2VuLFxuICAgICAgcHVycG9zZTogXCJzaWduIHZpYSBvaWRjXCIsXG4gICAgICBzZXNzaW9uX2luZm86IHNlc3Npb24uc2Vzc2lvbl9pbmZvLFxuICAgICAgc2Vzc2lvbl9leHA6IHNlc3Npb24uZXhwaXJhdGlvbiEsXG4gICAgfTtcbiAgICBzdG9yYWdlID8/PSBuZXcgTWVtb3J5U2Vzc2lvblN0b3JhZ2UoKTtcbiAgICBhd2FpdCBzdG9yYWdlLnNhdmUoc2Vzc2lvbkRhdGEpO1xuICAgIHJldHVybiBhd2FpdCBTaWduZXJTZXNzaW9uTWFuYWdlci5sb2FkRnJvbVN0b3JhZ2Uoc3RvcmFnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtTaWduZXJTZXNzaW9uRGF0YX0gc2Vzc2lvbkRhdGEgVGhlIHNlc3Npb24gaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSB7U2lnbmVyU2Vzc2lvblN0b3JhZ2V9IHN0b3JhZ2UgVGhlIHN0b3JhZ2UgdG8gdXNlIGZvciBzYXZpbmcgdGhlIHNlc3Npb24uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8U2lnbmVyU2Vzc2lvbk1hbmFnZXI+fSBOZXcgc2lnbmVyIHNlc3Npb24gbWFuYWdlci5cbiAgICovXG4gIHN0YXRpYyBhc3luYyBjcmVhdGVGcm9tU2Vzc2lvbkRhdGEoXG4gICAgc2Vzc2lvbkRhdGE6IFNpZ25lclNlc3Npb25EYXRhLFxuICAgIHN0b3JhZ2U/OiBTaWduZXJTZXNzaW9uU3RvcmFnZSxcbiAgKTogUHJvbWlzZTxTaWduZXJTZXNzaW9uTWFuYWdlcj4ge1xuICAgIHN0b3JhZ2UgPz89IG5ldyBNZW1vcnlTZXNzaW9uU3RvcmFnZSgpO1xuICAgIGF3YWl0IHN0b3JhZ2Uuc2F2ZShzZXNzaW9uRGF0YSk7XG4gICAgcmV0dXJuIGF3YWl0IFNpZ25lclNlc3Npb25NYW5hZ2VyLmxvYWRGcm9tU3RvcmFnZShzdG9yYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VzIGFuIGV4aXN0aW5nIHNlc3Npb24gdG8gY3JlYXRlIGEgbmV3IHNpZ25lciBzZXNzaW9uIG1hbmFnZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7U2lnbmVyU2Vzc2lvblN0b3JhZ2V9IHN0b3JhZ2UgVGhlIHNlc3Npb24gc3RvcmFnZSB0byB1c2VcbiAgICogQHJldHVybiB7UHJvbWlzZTxTaW5nZXJTZXNzaW9uPn0gTmV3IHNpZ25lciBzZXNzaW9uIG1hbmFnZXJcbiAgICovXG4gIHN0YXRpYyBhc3luYyBsb2FkRnJvbVN0b3JhZ2Uoc3RvcmFnZTogU2lnbmVyU2Vzc2lvblN0b3JhZ2UpOiBQcm9taXNlPFNpZ25lclNlc3Npb25NYW5hZ2VyPiB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHN0b3JhZ2UucmV0cmlldmUoKTtcbiAgICByZXR1cm4gbmV3IFNpZ25lclNlc3Npb25NYW5hZ2VyKHNlc3Npb24sIHN0b3JhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge1NpZ25lclNlc3Npb25EYXRhfSBzZXNzaW9uRGF0YSBTZXNzaW9uIGRhdGFcbiAgICogQHBhcmFtIHtTaWduZXJTZXNzaW9uU3RvcmFnZX0gc3RvcmFnZSBUaGUgc2Vzc2lvbiBzdG9yYWdlIHRvIHVzZS5cbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihzZXNzaW9uRGF0YTogU2lnbmVyU2Vzc2lvbkRhdGEsIHN0b3JhZ2U6IFNpZ25lclNlc3Npb25TdG9yYWdlKSB7XG4gICAgc3VwZXIoc2Vzc2lvbkRhdGEuZW52W1wiRGV2LUN1YmVTaWduZXJTdGFja1wiXSwgc2Vzc2lvbkRhdGEub3JnX2lkLCBzdG9yYWdlKTtcbiAgICB0aGlzLiNldmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFt0aGlzLmV2ZW50c10pO1xuICAgIHRoaXMuI2NsaWVudCA9IHtcbiAgICAgIGNsaWVudDogdGhpcy5jcmVhdGVDbGllbnQoc2Vzc2lvbkRhdGEudG9rZW4pLFxuICAgICAgdG9rZW5fZXhwOiBzZWNvbmRzU2luY2VFcG9jaFRvRGF0ZShzZXNzaW9uRGF0YS5zZXNzaW9uX2luZm8uYXV0aF90b2tlbl9leHApLFxuICAgICAgc2Vzc2lvbl9leHA6IHNlc3Npb25EYXRhLnNlc3Npb25fZXhwXG4gICAgICAgID8gc2Vjb25kc1NpbmNlRXBvY2hUb0RhdGUoc2Vzc2lvbkRhdGEuc2Vzc2lvbl9leHApXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/util.d.ts
CHANGED
|
@@ -38,3 +38,10 @@ export declare function encodeToBase64(buffer: Iterable<number>): string;
|
|
|
38
38
|
* @return {string} The 'base64url' encoding of the byte array.
|
|
39
39
|
*/
|
|
40
40
|
export declare function encodeToBase64Url(buffer: Iterable<number>): string;
|
|
41
|
+
/**
|
|
42
|
+
* Sleeps for `ms` milliseconds.
|
|
43
|
+
*
|
|
44
|
+
* @param {number} ms Milliseconds to sleep
|
|
45
|
+
* @return {Promise<void>} A promise that is resolved after `ms` milliseconds.
|
|
46
|
+
*/
|
|
47
|
+
export declare function delay(ms: number): Promise<void>;
|
package/dist/src/util.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.encodeToBase64Url = exports.encodeToBase64 = exports.decodeBase64Url = exports.decodeBase64 = exports.configDir = void 0;
|
|
26
|
+
exports.delay = exports.encodeToBase64Url = exports.encodeToBase64 = exports.decodeBase64Url = exports.decodeBase64 = exports.configDir = void 0;
|
|
27
27
|
const path = __importStar(require("path"));
|
|
28
28
|
/**
|
|
29
29
|
* Directory where CubeSigner stores config files.
|
|
@@ -87,4 +87,14 @@ function encodeToBase64Url(buffer) {
|
|
|
87
87
|
return b64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=*$/g, "");
|
|
88
88
|
}
|
|
89
89
|
exports.encodeToBase64Url = encodeToBase64Url;
|
|
90
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Sleeps for `ms` milliseconds.
|
|
92
|
+
*
|
|
93
|
+
* @param {number} ms Milliseconds to sleep
|
|
94
|
+
* @return {Promise<void>} A promise that is resolved after `ms` milliseconds.
|
|
95
|
+
*/
|
|
96
|
+
function delay(ms) {
|
|
97
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
98
|
+
}
|
|
99
|
+
exports.delay = delay;
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBVTdCOzs7R0FHRztBQUNILFNBQWdCLFNBQVM7SUFDdkIsTUFBTSxTQUFTLEdBQ2IsT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRO1FBQzNCLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSw4QkFBOEI7UUFDbkQsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQztJQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFORCw4QkFNQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEdBQVc7SUFDdEMsT0FBTyxPQUFPLE1BQU0sS0FBSyxVQUFVO1FBQ2pDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUM7UUFDNUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUpELG9DQUlDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsTUFBYztJQUM1QyxvR0FBb0c7SUFDcEcsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFKRCwwQ0FJQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxNQUF3QjtJQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxNQUFNLEdBQUcsR0FDUCxPQUFPLE1BQU0sS0FBSyxVQUFVO1FBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRSxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFQRCx3Q0FPQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsTUFBd0I7SUFDeEQsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLG9HQUFvRztJQUNwRyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBSkQsOENBSUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLEtBQUssQ0FBQyxFQUFVO0lBQzlCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRkQsc0JBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbi8qKiBKU09OIG1hcCB0eXBlICovXG5leHBvcnQgaW50ZXJmYWNlIEpzb25NYXAge1xuICBbbWVtYmVyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IEpzb25BcnJheSB8IEpzb25NYXA7XG59XG5cbi8qKiBKU09OIGFycmF5IHR5cGUgKi9cbmV4cG9ydCB0eXBlIEpzb25BcnJheSA9IEFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgSnNvbkFycmF5IHwgSnNvbk1hcD47XG5cbi8qKlxuICogRGlyZWN0b3J5IHdoZXJlIEN1YmVTaWduZXIgc3RvcmVzIGNvbmZpZyBmaWxlcy5cbiAqIEByZXR1cm4ge3N0cmluZ30gQ29uZmlnIGRpclxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnRGlyKCk6IHN0cmluZyB7XG4gIGNvbnN0IGNvbmZpZ0RpciA9XG4gICAgcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJkYXJ3aW5cIlxuICAgICAgPyBgJHtwcm9jZXNzLmVudi5IT01FfS9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnRgXG4gICAgICA6IGAke3Byb2Nlc3MuZW52LkhPTUV9Ly5jb25maWdgO1xuICByZXR1cm4gcGF0aC5qb2luKGNvbmZpZ0RpciwgXCJjdWJlc2lnbmVyXCIpO1xufVxuXG4vKipcbiAqIEJyb3dzZXItZnJpZW5kbHkgaGVscGVyIGZvciBkZWNvZGluZyBhICdiYXNlNjQnLWVuY29kZWQgc3RyaW5nIGludG8gYSBieXRlIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBiNjQgVGhlICdiYXNlNjQnLWVuY29kZWQgc3RyaW5nIHRvIGRlY29kZVxuICogQHJldHVybiB7VWludDhBcnJheX0gRGVjb2RlZCBieXRlIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCYXNlNjQoYjY0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIHR5cGVvZiBCdWZmZXIgPT09IFwiZnVuY3Rpb25cIlxuICAgID8gQnVmZmVyLmZyb20oYjY0LCBcImJhc2U2NFwiKVxuICAgIDogVWludDhBcnJheS5mcm9tKGF0b2IoYjY0KSwgKGMpID0+IGMuY2hhckNvZGVBdCgwKSk7XG59XG5cbi8qKlxuICogQnJvd3Nlci1mcmllbmRseSBoZWxwZXIgZm9yIGRlY29kaW5nIGEgJ2Jhc2U2NHVybCctZW5jb2RlZCBzdHJpbmcgaW50byBhIGJ5dGUgYXJyYXkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGI2NHVybCBUaGUgJ2Jhc2U2NHVybCctZW5jb2RlZCBzdHJpbmcgdG8gZGVjb2RlXG4gKiBAcmV0dXJuIHtVaW50OEFycmF5fSBEZWNvZGVkIGJ5dGUgYXJyYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUJhc2U2NFVybChiNjR1cmw6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAvLyBOT1RFOiB0aGVyZSBpcyBubyBcImJhc2U2NHVybFwiIGVuY29kaW5nIGluIHRoZSBcImJ1ZmZlclwiIG1vZHVsZSBmb3IgdGhlIGJyb3dzZXIgKHVubGlrZSBpbiBub2RlLmpzKVxuICBjb25zdCBiNjQgPSBiNjR1cmwucmVwbGFjZSgvLS9nLCBcIitcIikucmVwbGFjZSgvXy9nLCBcIi9cIikucmVwbGFjZSgvPSokL2csIFwiXCIpO1xuICByZXR1cm4gZGVjb2RlQmFzZTY0KGI2NCk7XG59XG5cbi8qKlxuICpcbiAqIEJyb3dzZXItZnJpZW5kbHkgaGVscGVyIGZvciBlbmNvZGluZyBhIGJ5dGUgYXJyYXkgaW50byBhIHBhZGRlZCBgYmFzZTY0YC1lbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge0l0ZXJhYmxlPG51bWJlcj59IGJ1ZmZlciBUaGUgYnl0ZSBhcnJheSB0byBlbmNvZGVcbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlICdiYXNlNjQnIGVuY29kaW5nIG9mIHRoZSBieXRlIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlVG9CYXNlNjQoYnVmZmVyOiBJdGVyYWJsZTxudW1iZXI+KTogc3RyaW5nIHtcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICBjb25zdCBiNjQgPVxuICAgIHR5cGVvZiBCdWZmZXIgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyBCdWZmZXIuZnJvbShieXRlcykudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgIDogYnRvYShieXRlcy5yZWR1Y2UoKHMsIGIpID0+IHMgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGIpLCBcIlwiKSk7XG4gIHJldHVybiBiNjQ7XG59XG5cbi8qKlxuICogQnJvd3Nlci1mcmllbmRseSBoZWxwZXIgZm9yIGVuY29kaW5nIGEgYnl0ZSBhcnJheSBpbnRvIGEgJ2Jhc2U2NHVybGAtZW5jb2RlZCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtJdGVyYWJsZTxudW1iZXI+fSBidWZmZXIgVGhlIGJ5dGUgYXJyYXkgdG8gZW5jb2RlXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSAnYmFzZTY0dXJsJyBlbmNvZGluZyBvZiB0aGUgYnl0ZSBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVRvQmFzZTY0VXJsKGJ1ZmZlcjogSXRlcmFibGU8bnVtYmVyPik6IHN0cmluZyB7XG4gIGNvbnN0IGI2NCA9IGVuY29kZVRvQmFzZTY0KGJ1ZmZlcik7XG4gIC8vIE5PVEU6IHRoZXJlIGlzIG5vIFwiYmFzZTY0dXJsXCIgZW5jb2RpbmcgaW4gdGhlIFwiYnVmZmVyXCIgbW9kdWxlIGZvciB0aGUgYnJvd3NlciAodW5saWtlIGluIG5vZGUuanMpXG4gIHJldHVybiBiNjQucmVwbGFjZSgvXFwrL2csIFwiLVwiKS5yZXBsYWNlKC9cXC8vZywgXCJfXCIpLnJlcGxhY2UoLz0qJC9nLCBcIlwiKTtcbn1cblxuLyoqXG4gKiBTbGVlcHMgZm9yIGBtc2AgbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBtcyBNaWxsaXNlY29uZHMgdG8gc2xlZXBcbiAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIGFmdGVyIGBtc2AgbWlsbGlzZWNvbmRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsYXkobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cubist-labs/cubesigner-sdk",
|
|
3
3
|
"author": "Cubist, Inc.",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.28",
|
|
5
5
|
"description": "CubeSigner TypeScript SDK",
|
|
6
6
|
"homepage": "https://github.com/cubist-labs/CubeSigner-TypeScript-SDK",
|
|
7
7
|
"bugs": "https://github.com/cubist-labs/CubeSigner-TypeScript-SDK/issues",
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"@types/chai": "^4.3.11",
|
|
37
37
|
"@types/chai-as-promised": "^7.1.8",
|
|
38
38
|
"@types/jest": "^29.5.10",
|
|
39
|
-
"@types/node": "^20.
|
|
39
|
+
"@types/node": "^20.10.4",
|
|
40
40
|
"@types/node-fetch": "^2.6.9",
|
|
41
|
-
"@types/tmp": "^0.2.
|
|
42
|
-
"@typescript-eslint/eslint-plugin": "^6.13.
|
|
41
|
+
"@types/tmp": "^0.2.6",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^6.13.2",
|
|
43
43
|
"chai": "^4.3.10",
|
|
44
44
|
"chai-as-promised": "^7.1.1",
|
|
45
45
|
"dotenv": "^16.3.1",
|
|
@@ -49,14 +49,14 @@
|
|
|
49
49
|
"jest": "^29.7.0",
|
|
50
50
|
"openapi-typescript": "^6.7.1",
|
|
51
51
|
"otplib": "^12.0.1",
|
|
52
|
-
"prettier": "3.1.
|
|
52
|
+
"prettier": "3.1.1",
|
|
53
53
|
"tmp": "^0.2.1",
|
|
54
54
|
"ts-jest": "^29.1.0",
|
|
55
55
|
"ts-node": "^10.9.1",
|
|
56
|
-
"typescript": "^5.3.
|
|
56
|
+
"typescript": "^5.3.3"
|
|
57
57
|
},
|
|
58
58
|
"optionalDependencies": {
|
|
59
|
-
"@aws-sdk/client-cognito-identity-provider": "^3.
|
|
59
|
+
"@aws-sdk/client-cognito-identity-provider": "^3.470.0",
|
|
60
60
|
"@hpke/core": "^1.2.5"
|
|
61
61
|
},
|
|
62
62
|
"prettier": {
|
package/src/api.ts
CHANGED
|
@@ -61,6 +61,7 @@ import {
|
|
|
61
61
|
import { encodeToBase64 } from "./util";
|
|
62
62
|
import { AddFidoChallenge, MfaFidoChallenge, MfaReceipt, TotpChallenge } from "./mfa";
|
|
63
63
|
import { CubeSignerResponse, mapResponse } from "./response";
|
|
64
|
+
import { ErrResponse } from "./error";
|
|
64
65
|
import { Key, KeyType } from "./key";
|
|
65
66
|
import { Page, PageOpts, PageQueryArgs, Paginator } from "./paginator";
|
|
66
67
|
import { KeyPolicy } from "./role";
|
|
@@ -110,28 +111,6 @@ export type FetchClient<Op extends keyof operations> = ReturnType<typeof createC
|
|
|
110
111
|
*/
|
|
111
112
|
export type FetchResponseSuccessData<T> = Required<FetchResponse<T>>["data"];
|
|
112
113
|
|
|
113
|
-
/**
|
|
114
|
-
* Error response type, thrown on non-successful responses.
|
|
115
|
-
*/
|
|
116
|
-
export class ErrResponse extends Error {
|
|
117
|
-
/** Operation that produced this error */
|
|
118
|
-
readonly operation?: keyof operations;
|
|
119
|
-
/** HTTP status code text (derived from `this.status`) */
|
|
120
|
-
readonly statusText?: string;
|
|
121
|
-
/** HTTP status code */
|
|
122
|
-
readonly status?: number;
|
|
123
|
-
/** HTTP response url */
|
|
124
|
-
readonly url?: string;
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* @param {Partial<ErrResponse>} init Initializer
|
|
128
|
-
*/
|
|
129
|
-
constructor(init: Partial<ErrResponse>) {
|
|
130
|
-
super(init.message);
|
|
131
|
-
Object.assign(this, init);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
114
|
/**
|
|
136
115
|
* Wrapper around an open-fetch client restricted to a single operation.
|
|
137
116
|
* The restriction applies only when type checking, the actual
|
|
@@ -306,7 +285,7 @@ export class CubeSignerApi {
|
|
|
306
285
|
* @return {Promise<OpClient<Op>>} The client restricted to {@link op}
|
|
307
286
|
*/
|
|
308
287
|
private async client<Op extends keyof operations>(op: Op): Promise<OpClient<Op>> {
|
|
309
|
-
const fetchClient = await this.#sessionMgr.client();
|
|
288
|
+
const fetchClient = await this.#sessionMgr.client(op);
|
|
310
289
|
return new OpClient(op, fetchClient, this.#eventEmitter);
|
|
311
290
|
}
|
|
312
291
|
|
|
@@ -916,6 +895,7 @@ export class CubeSignerApi {
|
|
|
916
895
|
purpose,
|
|
917
896
|
token: data.token,
|
|
918
897
|
session_info: data.session_info,
|
|
898
|
+
session_exp: data.expiration!,
|
|
919
899
|
// Keep compatibility with tokens produced by CLI
|
|
920
900
|
env: {
|
|
921
901
|
["Dev-CubeSignerStack"]: this.#sessionMgr.env,
|
|
@@ -962,6 +942,7 @@ export class CubeSignerApi {
|
|
|
962
942
|
purpose,
|
|
963
943
|
token: data.token,
|
|
964
944
|
session_info: data.session_info,
|
|
945
|
+
session_exp: data.expiration!,
|
|
965
946
|
// Keep compatibility with tokens produced by CLI
|
|
966
947
|
env: {
|
|
967
948
|
["Dev-CubeSignerStack"]: this.#sessionMgr.env,
|