UNPKG

trimble-connect-sdk

Version:

Trimble Connect SDK for JavaScript

64 lines 10.6 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.TID = exports.DefaultTIDServiceUri = void 0; const response_1 = require("./response"); const service_1 = require("./service"); exports.DefaultTIDServiceUri = 'https://id.trimble.com/'; class TID extends service_1.Service { constructor(config) { super(config); } refresh(refreshToken) { return __awaiter(this, void 0, void 0, function* () { const cfg = this.config; if (cfg.doTokenRefresh) { return cfg.doTokenRefresh().then((tokens) => { return new response_1.ServiceResponse(this, new Response(), tokens); }); } const headers = new Headers({ Accept: 'application/json', Authorization: `Basic ${btoa(cfg.clientId + ':' + cfg.clientSecret)}`, 'Content-Type': 'application/x-www-form-urlencoded', }); const body = `grant_type=refresh_token&refresh_token=${refreshToken}&tenantDomain=trimble.com`; return this.makeRequest('oauth/token', 'POST', body, headers, false); }); } getOAuthRedirect() { var _a; const cfg = this.config; const signInUri = cfg.serviceUri + 'oauth/authorize'; const query = `?client_id=${encodeURIComponent(cfg.clientId)}` + `&scope=${encodeURIComponent('openid ' + cfg.appName)}` + `&response_type=code&redirect_uri=${encodeURIComponent((_a = cfg.redirectUri) !== null && _a !== void 0 ? _a : '')}`; return signInUri + query; } exchangeCode(code) { var _a; return __awaiter(this, void 0, void 0, function* () { const cfg = this.config; const body = `grant_type=authorization_code` + `&code=${encodeURIComponent(code)}` + `&redirect_uri=${encodeURIComponent((_a = cfg.redirectUri) !== null && _a !== void 0 ? _a : '')}` + `&tenantDomain=trimble.com`; const headers = new Headers({ Accept: 'application/json', Authorization: `Basic ${btoa(cfg.clientId + ':' + cfg.clientSecret)}`, 'Content-Type': 'application/x-www-form-urlencoded', }); return this.makeRequest('oauth/token', 'POST', body, headers, false); }); } } exports.TID = TID; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlkLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJ0aWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EseUNBQTZDO0FBQzdDLHVDQUFvQztBQUd2QixRQUFBLG9CQUFvQixHQUFHLHlCQUF5QixDQUFDO0FBaUM5RCxNQUFhLEdBQUksU0FBUSxpQkFBTztJQUs5QixZQUFZLE1BQWlCO1FBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBT1ksT0FBTyxDQUNsQixZQUFvQjs7WUFFcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQW1CLENBQUM7WUFFckMsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDMUMsT0FBTyxJQUFJLDBCQUFlLENBQUMsSUFBSSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzNELENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQztnQkFDMUIsTUFBTSxFQUFFLGtCQUFrQjtnQkFDMUIsYUFBYSxFQUFFLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDckUsY0FBYyxFQUFFLG1DQUFtQzthQUNwRCxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRywwQ0FBMEMsWUFBWSwyQkFBMkIsQ0FBQztZQUMvRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQ3JCLGFBQWEsRUFDYixNQUFNLEVBQ04sSUFBSSxFQUNKLE9BQU8sRUFDUCxLQUFLLENBQ04sQ0FBQztRQUNKLENBQUM7S0FBQTtJQU1NLGdCQUFnQjs7UUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQW1CLENBQUM7UUFDckMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztRQUNyRCxNQUFNLEtBQUssR0FDVCxjQUFjLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoRCxVQUFVLGtCQUFrQixDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdkQsb0NBQW9DLGtCQUFrQixDQUNwRCxNQUFBLEdBQUcsQ0FBQyxXQUFXLG1DQUFJLEVBQUUsQ0FDdEIsRUFBRSxDQUFDO1FBQ04sT0FBTyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFPWSxZQUFZLENBQ3ZCLElBQVk7OztZQUVaLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFtQixDQUFDO1lBQ3JDLE1BQU0sSUFBSSxHQUNSLCtCQUErQjtnQkFDL0IsU0FBUyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbkMsaUJBQWlCLGtCQUFrQixDQUFDLE1BQUEsR0FBRyxDQUFDLFdBQVcsbUNBQUksRUFBRSxDQUFDLEVBQUU7Z0JBQzVELDJCQUEyQixDQUFDO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDO2dCQUMxQixNQUFNLEVBQUUsa0JBQWtCO2dCQUMxQixhQUFhLEVBQUUsU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUNyRSxjQUFjLEVBQUUsbUNBQW1DO2FBQ3BELENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FDckIsYUFBYSxFQUNiLE1BQU0sRUFDTixJQUFJLEVBQ0osT0FBTyxFQUNQLEtBQUssQ0FDTixDQUFDOztLQUNIO0NBQ0Y7QUFuRkQsa0JBbUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IFNlcnZpY2VSZXNwb25zZSB9IGZyb20gJy4vcmVzcG9uc2UnO1xuaW1wb3J0IHsgU2VydmljZSB9IGZyb20gJy4vc2VydmljZSc7XG5cbi8qKiBUaGUgcHJvZHVjdGlvbiBUSUQgc2VydmljZSB1cmwuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdFRJRFNlcnZpY2VVcmkgPSAnaHR0cHM6Ly9pZC50cmltYmxlLmNvbS8nO1xuXG4vKipcbiAqIFRoZSBUSUQgc2VydmljZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVElEQ29uZmlnIGV4dGVuZHMgQ29uZmlndXJhdGlvbiB7XG4gIC8qKiBUaGUgY2xpZW50SWQgcmVjZWl2ZWQgb24gYXBwIHJlZ2lzdHJhdGlvbi4gKi9cbiAgY2xpZW50SWQ6IHN0cmluZztcbiAgLyoqIFRoZSBjbGllbnRTZWNyZXQgcmVjZWl2ZWQgb24gYXBwIHJlZ2lzdHJhdGlvbi4gKE5vdCBuZWVkZWQgaWYgZG9SZWZyZXNoIGlzIHBhc3NlZCkgKi9cbiAgY2xpZW50U2VjcmV0Pzogc3RyaW5nO1xuICAvKiogVGhlIG9wdGlvbmFsIGFwcCByZWRpcmVjdCB1cmwgY29uZmlndXJlZCBvbiBhcHAgcmVnaXN0cmF0aW9uLiBOZWVkZWQgb25seSBpZiBjb2RlIGdyYW5kIHR5cGUgZmxvdyBpcyB1c2VkIHRvIGFjcXVpcmUgdG9rZW5zIGZyb20gVElELiAqL1xuICByZWRpcmVjdFVyaT86IHN0cmluZztcbiAgLyoqIFRoZSBvcHRpb25hbCBhcHAgbmFtZS4gTmVlZGVkIG9ubHkgZm9yIHRoZSBzaWduLW9uIGZyb20gdGhlIFRJRCB3ZWIgc2Vzc2lvbi4gKi9cbiAgYXBwTmFtZT86IHN0cmluZztcbiAgLyoqIElmIHBhc3NlZCwgaXQgd2lsbCBvdmVycmlkZSB0aGUgaW50ZXJuYWwgdG9rZW4gcmVmcmVzaCBjYWxsICovXG4gIGRvVG9rZW5SZWZyZXNoPzogKCkgPT4gUHJvbWlzZTxBdXRoUmVzcG9uc2U+O1xufVxuXG4vKipcbiAqIFRoZSBUSUQgc2VydmljZSByZXNwb25zZSB3aXRoIHRva2Vucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoUmVzcG9uc2Uge1xuICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xuICBpZF90b2tlbjogc3RyaW5nO1xuICBzY29wZTogc3RyaW5nO1xuICB0b2tlbl90eXBlOiBzdHJpbmc7XG4gIGV4cGlyZXNfaW46IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgVFBhYVMgVElEIFNlcnZpY2UgY2xpZW50LlxuICovXG5leHBvcnQgY2xhc3MgVElEIGV4dGVuZHMgU2VydmljZSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVElEIG9iamVjdCB3aXRoIGEgZ2l2ZW4gc2V0IG9mIGNyZWRlbnRpYWwgaW5mb3JtYXRpb24gYXMgcG9zaXRpb25hbCBhcmd1bWVudHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb25maWcgLSBUaGUgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgY29uc3RydWN0b3IoY29uZmlnOiBUSURDb25maWcpIHtcbiAgICBzdXBlcihjb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyBhIHRva2VuIHNldC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlZnJlc2hUb2tlbiBUaGUgcmVmcmVzaCB0b2tlbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8U2VydmljZVJlc3BvbnNlPEF1dGhSZXNwb25zZT4+fSBUaGUgc2VydmljZSByZXNwb25zZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyByZWZyZXNoKFxuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nXG4gICk6IFByb21pc2U8U2VydmljZVJlc3BvbnNlPEF1dGhSZXNwb25zZT4+IHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLmNvbmZpZyBhcyBUSURDb25maWc7XG5cbiAgICBpZiAoY2ZnLmRvVG9rZW5SZWZyZXNoKSB7XG4gICAgICByZXR1cm4gY2ZnLmRvVG9rZW5SZWZyZXNoKCkudGhlbigodG9rZW5zKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgU2VydmljZVJlc3BvbnNlKHRoaXMsIG5ldyBSZXNwb25zZSgpLCB0b2tlbnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKHtcbiAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgQXV0aG9yaXphdGlvbjogYEJhc2ljICR7YnRvYShjZmcuY2xpZW50SWQgKyAnOicgKyBjZmcuY2xpZW50U2VjcmV0KX1gLFxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgIH0pO1xuICAgIGNvbnN0IGJvZHkgPSBgZ3JhbnRfdHlwZT1yZWZyZXNoX3Rva2VuJnJlZnJlc2hfdG9rZW49JHtyZWZyZXNoVG9rZW59JnRlbmFudERvbWFpbj10cmltYmxlLmNvbWA7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8QXV0aFJlc3BvbnNlPihcbiAgICAgICdvYXV0aC90b2tlbicsXG4gICAgICAnUE9TVCcsXG4gICAgICBib2R5LFxuICAgICAgaGVhZGVycyxcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhdXRob3JpemF0aW9uIHJlZGlyZWN0IFVSSSB3aGljaCBjYW4gYmUgdXNlZCB0byByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHNlcnZpY2UgcmVzcG9uc2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0T0F1dGhSZWRpcmVjdCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnIGFzIFRJRENvbmZpZztcbiAgICBjb25zdCBzaWduSW5VcmkgPSBjZmcuc2VydmljZVVyaSArICdvYXV0aC9hdXRob3JpemUnO1xuICAgIGNvbnN0IHF1ZXJ5ID1cbiAgICAgIGA/Y2xpZW50X2lkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNmZy5jbGllbnRJZCl9YCArXG4gICAgICBgJnNjb3BlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KCdvcGVuaWQgJyArIGNmZy5hcHBOYW1lKX1gICtcbiAgICAgIGAmcmVzcG9uc2VfdHlwZT1jb2RlJnJlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudChcbiAgICAgICAgY2ZnLnJlZGlyZWN0VXJpID8/ICcnXG4gICAgICApfWA7XG4gICAgcmV0dXJuIHNpZ25JblVyaSArIHF1ZXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIEV4Y2hhbmdlcyB0aGUgYXV0aG9yaXphdGlvbiBjb2RlIGZvciBhdXRoIGdyYW50cy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvZGUgVGhlIGNvZGUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFNlcnZpY2VSZXNwb25zZTxBdXRoUmVzcG9uc2U+Pn0gVGhlIHNlcnZpY2UgcmVzcG9uc2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXhjaGFuZ2VDb2RlKFxuICAgIGNvZGU6IHN0cmluZ1xuICApOiBQcm9taXNlPFNlcnZpY2VSZXNwb25zZTxBdXRoUmVzcG9uc2U+PiB7XG4gICAgY29uc3QgY2ZnID0gdGhpcy5jb25maWcgYXMgVElEQ29uZmlnO1xuICAgIGNvbnN0IGJvZHkgPVxuICAgICAgYGdyYW50X3R5cGU9YXV0aG9yaXphdGlvbl9jb2RlYCArXG4gICAgICBgJmNvZGU9JHtlbmNvZGVVUklDb21wb25lbnQoY29kZSl9YCArXG4gICAgICBgJnJlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudChjZmcucmVkaXJlY3RVcmkgPz8gJycpfWAgK1xuICAgICAgYCZ0ZW5hbnREb21haW49dHJpbWJsZS5jb21gO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyh7XG4gICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIEF1dGhvcml6YXRpb246IGBCYXNpYyAke2J0b2EoY2ZnLmNsaWVudElkICsgJzonICsgY2ZnLmNsaWVudFNlY3JldCl9YCxcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxBdXRoUmVzcG9uc2U+KFxuICAgICAgJ29hdXRoL3Rva2VuJyxcbiAgICAgICdQT1NUJyxcbiAgICAgIGJvZHksXG4gICAgICBoZWFkZXJzLFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG59XG4iXX0=