UNPKG

trimble-connect-sdk

Version:

Trimble Connect SDK for JavaScript

78 lines 12.3 kB
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()); }); }; import { Credentials } from './credentials'; import { TID } from './tid'; export class TIDCredentials extends 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(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); } }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlkX2NyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJ0aWRfY3JlZGVudGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQWdCLEdBQUcsRUFBYSxNQUFNLE9BQU8sQ0FBQztBQWlCckQsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBc0I3QyxZQUNrQixNQUE0QixFQUNyQyxlQUFvQyxFQUMzQixXQUFzRCxFQUN0RCxhQUE2QztRQUU3RCxLQUFLLEVBQUUsQ0FBQztRQUxRLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBQ3JDLG9CQUFlLEdBQWYsZUFBZSxDQUFxQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBMkM7UUFDdEQsa0JBQWEsR0FBYixhQUFhLENBQWdDO1FBRzdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQVFNLE9BQU87UUFDWixJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxTQUFTLEVBQUU7WUFFMUMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDakM7UUFJRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRTthQUMzQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLENBQUM7YUFDbEQsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBS00sWUFBWTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBS00sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFNWSxZQUFZLENBQUMsSUFBWTs7WUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUN0RCxDQUFDO1FBQ0osQ0FBQztLQUFBO0lBS2EsWUFBWTs7WUFDeEIsSUFBSSxLQUF3QixDQUFDO1lBRTdCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDNUMsSUFBSTtvQkFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ3ZFLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztpQkFDN0I7Z0JBQUMsT0FBTyxDQUFNLEVBQUU7b0JBQ2YsS0FBSyxHQUFHLENBQUMsQ0FBQztpQkFDWDthQUNGO1lBR0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssRUFBRTtnQkFDeEQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7b0JBQzVDLE9BQU87aUJBQ1I7cUJBQU07b0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2lCQUM5QzthQUNGO1lBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUN0RCxDQUFDO1lBRUYsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscyB9IGZyb20gJy4vY3JlZGVudGlhbHMnO1xuaW1wb3J0IHsgQXV0aFJlc3BvbnNlLCBUSUQsIFRJRENvbmZpZyB9IGZyb20gJy4vdGlkJztcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBUSURDcmVkZW50aWFsc1BhcmFtcyBleHRlbmRzIFRJRENvbmZpZyB7fVxuXG4vKipcbiAqIFVzZXIgY3JlZGVudGlhbHMgY2FuIGJlIHVzZWQgb25seSBmb3IgdXNlciBhY2NvdW50cyB3aXRoIDJGQSBkaXNhYmxlZCwgc3VjaCBhcyB0ZXN0IHVzZXIgYWNjb3VudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVElEVXNlckNyZWRlbnRpYWxzIHtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZXJ2aWNlIGNyZWRlbnRpYWxzIHRoYXQgbXVzdCBiZSBhdHRhY2hlZCB0byBhdXRoZW50aWNhdGUgZWFjaCByZXF1ZXN0LlxuICogT2NjYXNpb25hbGx5IGNyZWRlbnRpYWxzIGNhbiBleHBpcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxvbmctcnVubmluZyBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFRJRENyZWRlbnRpYWxzIGV4dGVuZHMgQ3JlZGVudGlhbHMge1xuICBwdWJsaWMgdG9rZW5zPzogQXV0aFJlc3BvbnNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IFRJRDtcbiAgcHJpdmF0ZSBvbmdvaW5nVG9rZW5SZWZyZXNoOiBQcm9taXNlPHZvaWQ+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVElEQ3JlZGVudGlhbHMgb2JqZWN0IHdpdGggYSBnaXZlbiBzZXQgb2YgY3JlZGVudGlhbCBpbmZvcm1hdGlvbiBhcyBwb3NpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICogQHBhcmFtIHtUSURDcmVkZW50aWFsc1BhcmFtc30gcGFyYW1zIFRoZSBUSUQgQ3JlZGVudGlhbHMgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKiBAcGFyYW0ge1RJRFVzZXJDcmVkZW50aWFsc30gW3VzZXJDcmVkZW50aWFsc10gVGhlIHVzZXIgY3JlZGVudGlhbHMuIE9wdGlvbmFsLlxuICAgKiBAcGFyYW0geyhUSURDcmVkZW50aWFscykgPT4gdm9pZH0gW29uUmVmcmVzaGVkXSBDYWxsZWQgd2hlbiBUSUQgdG9rZW5zIGFyZSByZWZyZXNoZWQuIE9wdGlvbmFsLlxuICAgKiBAcGFyYW0geyhzdHJpbmcpID0+IHZvaWR9IFtvbkludmFsaWRhdGVkXSBDYWxsZWQgd2hlbiBUSUQgdG9rZW5zIGFyZSBub3QgdmFsaWQgYW55bW9yZS4gT3B0aW9uYWwuXG4gICAqIEBleGFtcGxlIENyZWF0aW5nIGEgbmV3IGNyZWRlbnRpYWxzIG9iamVjdFxuICAgKiAgIGNyZWRlbnRpYWxzID0gbmV3IFRDLlRJRENyZWRlbnRpYWxzKHtcbiAgICogICAgICAgc2VydmljZVVyaTogXCJodHRwczovL2lkLnRyaW1ibGUuY29tL1wiLFxuICAgKiAgICAgICBjbGllbnRJZDogXCJ4eHhcIixcbiAgICogICAgICAgY2xpZW50U2VjcmV0OiBcInl5eVwiLFxuICAgKiAgICAgICBhcHBOYW1lOiAnenp6JyxcbiAgICogICAgICAgcmVkaXJlY3RVcmk6ICdodHRwczovL2FhYS5jb20nLFxuICAgKiAgICAgfSxcbiAgICogICAgIHsgdXNlcm5hbWU6IFwibmFtZVwiLCBwYXNzd29yZDogXCJwYXNzXCIgfVxuICAgKiAgIClcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJhbXM6IFRJRENyZWRlbnRpYWxzUGFyYW1zLFxuICAgIHB1YmxpYyB1c2VyQ3JlZGVudGlhbHM/OiBUSURVc2VyQ3JlZGVudGlhbHMsXG4gICAgcHVibGljIHJlYWRvbmx5IG9uUmVmcmVzaGVkPzogKHRpZENyZWRlbnRpYWxzOiBUSURDcmVkZW50aWFscykgPT4gdm9pZCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgb25JbnZhbGlkYXRlZD86IChyZWRpcmVjdFVyaTogc3RyaW5nKSA9PiB2b2lkXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5leHBpcmVkID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UgPSBuZXcgVElEKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBjcmVkZW50aWFscywgZW5zdXJpbmcgb25seSBvbmUgc3VjaCBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MgYXQgYSB0aW1lXG4gICAqIFVzZXJzIHNob3VsZCBjYWxsIGdldCgpIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGZvcmNpYmx5IHJlZnJlc2ggY3JlZGVudGlhbHMuXG4gICAqIEBub3RlIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMgY2xhc3MgdG8gcmVzZXQgdGhlIHt0b2tlbn0gb24gdGhlIGNyZWRlbnRpYWxzIG9iamVjdC5cbiAgICogQHNlZSBnZXRcbiAgICovXG4gIHB1YmxpYyByZWZyZXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm9uZ29pbmdUb2tlblJlZnJlc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gdG9rZW4gcmVmcmVzaGluZyBpcyBhbHJlYWR5IGluIHByb2dyZXNzXG4gICAgICByZXR1cm4gdGhpcy5vbmdvaW5nVG9rZW5SZWZyZXNoO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0IGEgbmV3IHRva2VuIHJlZnJlc2ggY2FsbCBhbmQgc3RvcmUgaXQgaW4gdGhlIHByb21pc2Ugc3VjaCB0aGF0XG4gICAgLy8gZnVydGhlciBjYWxscyBhcmUgbm90IHN0YXJ0ZWQgdW50aWwgdGhpcyBmaW5pc2hlc1xuICAgIHRoaXMub25nb2luZ1Rva2VuUmVmcmVzaCA9IHRoaXMucmVmcmVzaFRva2VuKClcbiAgICAgIC50aGVuKCgpID0+ICh0aGlzLm9uZ29pbmdUb2tlblJlZnJlc2ggPSB1bmRlZmluZWQpKVxuICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgIHRoaXMub25nb2luZ1Rva2VuUmVmcmVzaCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMub25nb2luZ1Rva2VuUmVmcmVzaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHRva2VuIGludmFsaWRcbiAgICovXG4gIHB1YmxpYyBpbnZhbGlkVG9rZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnRva2VucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhdXRoZW50aWNhdGlvbiBVUkkgd2hlcmUgdGhlIHVzZXIgc2hvdWxkIGJlIHJlZGlyZWN0ZWQgd2hlbiBhdXRoZW50aWNhdGluZy5cbiAgICovXG4gIHB1YmxpYyBnZXRPQXV0aFJlZGlyZWN0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRPQXV0aFJlZGlyZWN0KCk7XG4gIH1cblxuICAvKipcbiAgICogRXhjaGFuZ2VzIHRoZSBhdXRob3JpemF0aW9uIGNvZGUgd2l0aCB0aGUgaWRlbnRpdHkgc2VydmVyIGZvciB0aGUgYXV0aCBncmFudHMuXG4gICAqIFNldHMgdGhlIGF1dGggZ3JhbnRzIGludG8gdG8gc2VydmljZSBjcmVkZW50aWFscy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBleGNoYW5nZUNvZGUoY29kZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZXhjaGFuZ2VDb2RlKGNvZGUpO1xuICAgIHRoaXMudG9rZW5zID0gcmVzcG9uc2UuZGF0YTtcbiAgICB0aGlzLmV4cGlyZWQgPSBmYWxzZTtcbiAgICB0aGlzLmV4cGlyZVRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuZXhwaXJlVGltZS5zZXRTZWNvbmRzKFxuICAgICAgdGhpcy5leHBpcmVUaW1lLmdldFNlY29uZHMoKSArIHRoaXMudG9rZW5zLmV4cGlyZXNfaW5cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gcmVmcmVzaGluZyB0aGUgY3JlZGVudGlhbHNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVmcmVzaFRva2VuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBlcnJvcjogRXJyb3IgfCB1bmRlZmluZWQ7XG4gICAgLy8gdHJ5IHJlZnJlc2ggdG9rZW4gZmlyc3QgaWYgaXQgZXhpc3RzXG4gICAgaWYgKHRoaXMudG9rZW5zICYmIHRoaXMudG9rZW5zLnJlZnJlc2hfdG9rZW4pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnJlZnJlc2godGhpcy50b2tlbnMucmVmcmVzaF90b2tlbik7XG4gICAgICAgIHRoaXMudG9rZW5zID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBlcnJvciA9IGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2Vzc2lvbiBpcyBpbnZhbGlkIGlmIHdlIGRvIG5vdCBoYXZlIHZhbGlkIGF1dGggZ3JhbnRzLCBzbyBjYWxsIGNhbGxiYWNrIG9yIHRocm93IGVycm9yLlxuICAgIGlmICghKHRoaXMudG9rZW5zICYmIHRoaXMudG9rZW5zLnJlZnJlc2hfdG9rZW4pIHx8IGVycm9yKSB7XG4gICAgICBpZiAodGhpcy5vbkludmFsaWRhdGVkKSB7XG4gICAgICAgIHRoaXMub25JbnZhbGlkYXRlZCh0aGlzLmdldE9BdXRoUmVkaXJlY3QoKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGFjcXVpcmUgVElEIHRva2VuLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZXhwaXJlVGltZSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5leHBpcmVUaW1lLnNldFNlY29uZHMoXG4gICAgICB0aGlzLmV4cGlyZVRpbWUuZ2V0U2Vjb25kcygpICsgdGhpcy50b2tlbnMuZXhwaXJlc19pblxuICAgICk7XG5cbiAgICBpZiAodGhpcy5vblJlZnJlc2hlZCkge1xuICAgICAgdGhpcy5vblJlZnJlc2hlZCh0aGlzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==