UNPKG

trimble-connect-sdk

Version:

Trimble Connect SDK for JavaScript

82 lines 12.4 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TIDCredentials = void 0; const credentials_1 = require("./credentials"); const tid_1 = require("./tid"); class TIDCredentials extends credentials_1.Credentials { constructor(params, userCredentials, onRefreshed, onInvalidated) { super(); this.params = params; this.userCredentials = userCredentials; this.onRefreshed = onRefreshed; this.onInvalidated = onInvalidated; this.expired = true; this.service = new tid_1.TID(params); } refresh() { if (this.ongoingTokenRefresh !== undefined) { return this.ongoingTokenRefresh; } this.ongoingTokenRefresh = this.refreshToken() .then(() => (this.ongoingTokenRefresh = undefined)) .catch((e) => { this.ongoingTokenRefresh = undefined; throw e; }); return this.ongoingTokenRefresh; } invalidToken() { return !this.tokens; } getOAuthRedirect() { return this.service.getOAuthRedirect(); } exchangeCode(code) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.service.exchangeCode(code); this.tokens = response.data; this.expired = false; this.expireTime = new Date(); this.expireTime.setSeconds(this.expireTime.getSeconds() + this.tokens.expires_in); }); } refreshToken() { return __awaiter(this, void 0, void 0, function* () { let error; if (this.tokens && this.tokens.refresh_token) { try { const response = yield this.service.refresh(this.tokens.refresh_token); this.tokens = response.data; } catch (e) { error = e; } } if (!(this.tokens && this.tokens.refresh_token) || error) { if (this.onInvalidated) { this.onInvalidated(this.getOAuthRedirect()); return; } else { throw new Error('Cannot acquire TID token.'); } } this.expireTime = new Date(); this.expireTime.setSeconds(this.expireTime.getSeconds() + this.tokens.expires_in); if (this.onRefreshed) { this.onRefreshed(this); } }); } } exports.TIDCredentials = TIDCredentials; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlkX2NyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJ0aWRfY3JlZGVudGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTRDO0FBQzVDLCtCQUFxRDtBQWlCckQsTUFBYSxjQUFlLFNBQVEseUJBQVc7SUFzQjdDLFlBQ2tCLE1BQTRCLEVBQ3JDLGVBQW9DLEVBQzNCLFdBQXNELEVBQ3RELGFBQTZDO1FBRTdELEtBQUssRUFBRSxDQUFDO1FBTFEsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFDckMsb0JBQWUsR0FBZixlQUFlLENBQXFCO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUEyQztRQUN0RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0M7UUFHN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFNBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBUU0sT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLFNBQVMsRUFBRTtZQUUxQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztTQUNqQztRQUlELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFO2FBQzNDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsQ0FBQzthQUNsRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7WUFDckMsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztRQUVMLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFLTSxZQUFZO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFLTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDekMsQ0FBQztJQU1ZLFlBQVksQ0FBQyxJQUFZOztZQUNwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3RELENBQUM7UUFDSixDQUFDO0tBQUE7SUFLYSxZQUFZOztZQUN4QixJQUFJLEtBQXdCLENBQUM7WUFFN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO2dCQUM1QyxJQUFJO29CQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDdkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO2lCQUM3QjtnQkFBQyxPQUFPLENBQU0sRUFBRTtvQkFDZixLQUFLLEdBQUcsQ0FBQyxDQUFDO2lCQUNYO2FBQ0Y7WUFHRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxFQUFFO2dCQUN4RCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztvQkFDNUMsT0FBTztpQkFDUjtxQkFBTTtvQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7aUJBQzlDO2FBQ0Y7WUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3RELENBQUM7WUFFRixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEI7UUFDSCxDQUFDO0tBQUE7Q0FDRjtBQXZIRCx3Q0F1SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscyB9IGZyb20gJy4vY3JlZGVudGlhbHMnO1xuaW1wb3J0IHsgQXV0aFJlc3BvbnNlLCBUSUQsIFRJRENvbmZpZyB9IGZyb20gJy4vdGlkJztcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBUSURDcmVkZW50aWFsc1BhcmFtcyBleHRlbmRzIFRJRENvbmZpZyB7fVxuXG4vKipcbiAqIFVzZXIgY3JlZGVudGlhbHMgY2FuIGJlIHVzZWQgb25seSBmb3IgdXNlciBhY2NvdW50cyB3aXRoIDJGQSBkaXNhYmxlZCwgc3VjaCBhcyB0ZXN0IHVzZXIgYWNjb3VudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVElEVXNlckNyZWRlbnRpYWxzIHtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZXJ2aWNlIGNyZWRlbnRpYWxzIHRoYXQgbXVzdCBiZSBhdHRhY2hlZCB0byBhdXRoZW50aWNhdGUgZWFjaCByZXF1ZXN0LlxuICogT2NjYXNpb25hbGx5IGNyZWRlbnRpYWxzIGNhbiBleHBpcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxvbmctcnVubmluZyBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFRJRENyZWRlbnRpYWxzIGV4dGVuZHMgQ3JlZGVudGlhbHMge1xuICBwdWJsaWMgdG9rZW5zPzogQXV0aFJlc3BvbnNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IFRJRDtcbiAgcHJpdmF0ZSBvbmdvaW5nVG9rZW5SZWZyZXNoOiBQcm9taXNlPHZvaWQ+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVElEQ3JlZGVudGlhbHMgb2JqZWN0IHdpdGggYSBnaXZlbiBzZXQgb2YgY3JlZGVudGlhbCBpbmZvcm1hdGlvbiBhcyBwb3NpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICogQHBhcmFtIHtUSURDcmVkZW50aWFsc1BhcmFtc30gcGFyYW1zIFRoZSBUSUQgQ3JlZGVudGlhbHMgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKiBAcGFyYW0ge1RJRFVzZXJDcmVkZW50aWFsc30gW3VzZXJDcmVkZW50aWFsc10gVGhlIHVzZXIgY3JlZGVudGlhbHMuIE9wdGlvbmFsLlxuICAgKiBAcGFyYW0geyhUSURDcmVkZW50aWFscykgPT4gdm9pZH0gW29uUmVmcmVzaGVkXSBDYWxsZWQgd2hlbiBUSUQgdG9rZW5zIGFyZSByZWZyZXNoZWQuIE9wdGlvbmFsLlxuICAgKiBAcGFyYW0geyhzdHJpbmcpID0+IHZvaWR9IFtvbkludmFsaWRhdGVkXSBDYWxsZWQgd2hlbiBUSUQgdG9rZW5zIGFyZSBub3QgdmFsaWQgYW55bW9yZS4gT3B0aW9uYWwuXG4gICAqIEBleGFtcGxlIENyZWF0aW5nIGEgbmV3IGNyZWRlbnRpYWxzIG9iamVjdFxuICAgKiAgIGNyZWRlbnRpYWxzID0gbmV3IFRDLlRJRENyZWRlbnRpYWxzKHtcbiAgICogICAgICAgc2VydmljZVVyaTogXCJodHRwczovL2lkLnRyaW1ibGUuY29tL1wiLFxuICAgKiAgICAgICBjbGllbnRJZDogXCJ4eHhcIixcbiAgICogICAgICAgY2xpZW50U2VjcmV0OiBcInl5eVwiLFxuICAgKiAgICAgICBhcHBOYW1lOiAnenp6JyxcbiAgICogICAgICAgcmVkaXJlY3RVcmk6ICdodHRwczovL2FhYS5jb20nLFxuICAgKiAgICAgfSxcbiAgICogICAgIHsgdXNlcm5hbWU6IFwibmFtZVwiLCBwYXNzd29yZDogXCJwYXNzXCIgfVxuICAgKiAgIClcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJhbXM6IFRJRENyZWRlbnRpYWxzUGFyYW1zLFxuICAgIHB1YmxpYyB1c2VyQ3JlZGVudGlhbHM/OiBUSURVc2VyQ3JlZGVudGlhbHMsXG4gICAgcHVibGljIHJlYWRvbmx5IG9uUmVmcmVzaGVkPzogKHRpZENyZWRlbnRpYWxzOiBUSURDcmVkZW50aWFscykgPT4gdm9pZCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgb25JbnZhbGlkYXRlZD86IChyZWRpcmVjdFVyaTogc3RyaW5nKSA9PiB2b2lkXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5leHBpcmVkID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UgPSBuZXcgVElEKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBjcmVkZW50aWFscywgZW5zdXJpbmcgb25seSBvbmUgc3VjaCBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MgYXQgYSB0aW1lXG4gICAqIFVzZXJzIHNob3VsZCBjYWxsIGdldCgpIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGZvcmNpYmx5IHJlZnJlc2ggY3JlZGVudGlhbHMuXG4gICAqIEBub3RlIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMgY2xhc3MgdG8gcmVzZXQgdGhlIHt0b2tlbn0gb24gdGhlIGNyZWRlbnRpYWxzIG9iamVjdC5cbiAgICogQHNlZSBnZXRcbiAgICovXG4gIHB1YmxpYyByZWZyZXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm9uZ29pbmdUb2tlblJlZnJlc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gdG9rZW4gcmVmcmVzaGluZyBpcyBhbHJlYWR5IGluIHByb2dyZXNzXG4gICAgICByZXR1cm4gdGhpcy5vbmdvaW5nVG9rZW5SZWZyZXNoO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0IGEgbmV3IHRva2VuIHJlZnJlc2ggY2FsbCBhbmQgc3RvcmUgaXQgaW4gdGhlIHByb21pc2Ugc3VjaCB0aGF0XG4gICAgLy8gZnVydGhlciBjYWxscyBhcmUgbm90IHN0YXJ0ZWQgdW50aWwgdGhpcyBmaW5pc2hlc1xuICAgIHRoaXMub25nb2luZ1Rva2VuUmVmcmVzaCA9IHRoaXMucmVmcmVzaFRva2VuKClcbiAgICAgIC50aGVuKCgpID0+ICh0aGlzLm9uZ29pbmdUb2tlblJlZnJlc2ggPSB1bmRlZmluZWQpKVxuICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgIHRoaXMub25nb2luZ1Rva2VuUmVmcmVzaCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMub25nb2luZ1Rva2VuUmVmcmVzaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHRva2VuIGludmFsaWRcbiAgICovXG4gIHB1YmxpYyBpbnZhbGlkVG9rZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnRva2VucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhdXRoZW50aWNhdGlvbiBVUkkgd2hlcmUgdGhlIHVzZXIgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgd2hlbiBhdXRoZW50aWNhdGluZy5cbiAgICovXG4gIHB1YmxpYyBnZXRPQXV0aFJlZGlyZWN0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRPQXV0aFJlZGlyZWN0KCk7XG4gIH1cblxuICAvKipcbiAgICogRXhjaGFuZ2VzIHRoZSBhdXRob3JpemF0aW9uIGNvZGUgd2l0aCB0aGUgaWRlbnRpdHkgc2VydmVyIGZvciB0aGUgYXV0aCBncmFudHMuXG4gICAqIFNldHMgdGhlIGF1dGggZ3JhbnRzIGludG8gdG8gc2VydmljZSBjcmVkZW50aWFscy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBleGNoYW5nZUNvZGUoY29kZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZXhjaGFuZ2VDb2RlKGNvZGUpO1xuICAgIHRoaXMudG9rZW5zID0gcmVzcG9uc2UuZGF0YTtcbiAgICB0aGlzLmV4cGlyZWQgPSBmYWxzZTtcbiAgICB0aGlzLmV4cGlyZVRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuZXhwaXJlVGltZS5zZXRTZWNvbmRzKFxuICAgICAgdGhpcy5leHBpcmVUaW1lLmdldFNlY29uZHMoKSArIHRoaXMudG9rZW5zLmV4cGlyZXNfaW5cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gcmVmcmVzaGluZyB0aGUgY3JlZGVudGlhbHNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVmcmVzaFRva2VuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBlcnJvcjogRXJyb3IgfCB1bmRlZmluZWQ7XG4gICAgLy8gdHJ5IHJlZnJlc2ggdG9rZW4gZmlyc3QgaWYgaXQgZXhpc3RzXG4gICAgaWYgKHRoaXMudG9rZW5zICYmIHRoaXMudG9rZW5zLnJlZnJlc2hfdG9rZW4pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnJlZnJlc2godGhpcy50b2tlbnMucmVmcmVzaF90b2tlbik7XG4gICAgICAgIHRoaXMudG9rZW5zID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBlcnJvciA9IGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2Vzc2lvbiBpcyBpbnZhbGlkIGlmIHdlIGRvIG5vdCBoYXZlIHZhbGlkIGF1dGggZ3JhbnRzLCBzbyBjYWxsIGNhbGxiYWNrIG9yIHRocm93IGVycm9yLlxuICAgIGlmICghKHRoaXMudG9rZW5zICYmIHRoaXMudG9rZW5zLnJlZnJlc2hfdG9rZW4pIHx8IGVycm9yKSB7XG4gICAgICBpZiAodGhpcy5vbkludmFsaWRhdGVkKSB7XG4gICAgICAgIHRoaXMub25JbnZhbGlkYXRlZCh0aGlzLmdldE9BdXRoUmVkaXJlY3QoKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGFjcXVpcmUgVElEIHRva2VuLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZXhwaXJlVGltZSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5leHBpcmVUaW1lLnNldFNlY29uZHMoXG4gICAgICB0aGlzLmV4cGlyZVRpbWUuZ2V0U2Vjb25kcygpICsgdGhpcy50b2tlbnMuZXhwaXJlc19pblxuICAgICk7XG5cbiAgICBpZiAodGhpcy5vblJlZnJlc2hlZCkge1xuICAgICAgdGhpcy5vblJlZnJlc2hlZCh0aGlzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==