@spinque/query-api
Advanced tools
Comparing version 0.15.1 to 0.15.2
"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()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Authenticator = exports.DEFAULT_AUDIENCE = exports.DEFAULT_AUTH_SERVER = void 0; | ||
var browser_or_node_1 = require("browser-or-node"); | ||
var fs = require("fs"); | ||
exports.DEFAULT_AUTH_SERVER = 'https://login.spinque.com/'; | ||
@@ -28,12 +63,13 @@ exports.DEFAULT_AUDIENCE = 'https://rest.spinque.com/'; | ||
// First thing to do: check if there's an access token in localStorage | ||
var res = this.getFromStorage(); | ||
if (res) { | ||
// Set it as class property | ||
this._accessToken = res.accessToken; | ||
this._expires = res.expires; | ||
this._authInProgress = false; | ||
} | ||
else { | ||
this._authInProgress = false; | ||
} | ||
var res = this.getFromStorage().then(function (res) { | ||
if (res) { | ||
// Set it as class property | ||
_this._accessToken = res.accessToken; | ||
_this._expires = res.expires; | ||
_this._authInProgress = false; | ||
} | ||
else { | ||
_this._authInProgress = false; | ||
} | ||
}); | ||
} | ||
@@ -76,17 +112,29 @@ Object.defineProperty(Authenticator.prototype, "accessToken", { | ||
Authenticator.prototype.setAccessToken = function (accessToken, expiresIn) { | ||
var _this = this; | ||
this._accessToken = accessToken; | ||
this._expires = Date.now() + expiresIn * 1000; | ||
this.putInStorage(this._accessToken, this._expires); | ||
this._authInProgress = false; | ||
this.putInStorage(this._accessToken, this._expires).then(function () { return (_this._authInProgress = false); }); | ||
}; | ||
Authenticator.prototype.putInStorage = function (accessToken, expires) { | ||
if (browser_or_node_1.isBrowser && !!localStorage) { | ||
// TODO: configure keys | ||
localStorage.setItem('@spinque/query-api/access-token', accessToken); | ||
localStorage.setItem('@spinque/query-api/expires', "".concat(expires)); | ||
} | ||
if (!browser_or_node_1.isBrowser && this._tokenCachePath) { | ||
var json = JSON.stringify({ accessToken: accessToken, expires: expires }); | ||
fs.writeFileSync(this._tokenCachePath, json); | ||
} | ||
return __awaiter(this, void 0, void 0, function () { | ||
var fs, json; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (browser_or_node_1.isBrowser && !!localStorage) { | ||
// TODO: configure keys | ||
localStorage.setItem('@spinque/query-api/access-token', accessToken); | ||
localStorage.setItem('@spinque/query-api/expires', "".concat(expires)); | ||
} | ||
if (!(!browser_or_node_1.isBrowser && this._tokenCachePath)) return [3 /*break*/, 2]; | ||
return [4 /*yield*/, Promise.resolve().then(function () { return require('fs'); })]; | ||
case 1: | ||
fs = _a.sent(); | ||
json = JSON.stringify({ accessToken: accessToken, expires: expires }); | ||
fs.writeFileSync(this._tokenCachePath, json); | ||
_a.label = 2; | ||
case 2: return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
}; | ||
@@ -97,10 +145,17 @@ /** | ||
Authenticator.prototype.getFromStorage = function () { | ||
// Localstorage is only available for browser applications | ||
if (browser_or_node_1.isBrowser) { | ||
return this.getFromBrowserLocalStorage(); | ||
} | ||
if (!browser_or_node_1.isBrowser && this._tokenCachePath) { | ||
return this.getFromFileStorage(this._tokenCachePath); | ||
} | ||
return null; | ||
return __awaiter(this, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
// Localstorage is only available for browser applications | ||
if (browser_or_node_1.isBrowser) { | ||
return [2 /*return*/, this.getFromBrowserLocalStorage()]; | ||
} | ||
if (!(!browser_or_node_1.isBrowser && this._tokenCachePath)) return [3 /*break*/, 2]; | ||
return [4 /*yield*/, this.getFromFileStorage(this._tokenCachePath)]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
case 2: return [2 /*return*/, null]; | ||
} | ||
}); | ||
}); | ||
}; | ||
@@ -128,14 +183,24 @@ Authenticator.prototype.getFromBrowserLocalStorage = function () { | ||
Authenticator.prototype.getFromFileStorage = function (path) { | ||
try { | ||
var data = fs.readFileSync(path, { encoding: 'utf8' }); | ||
var _a = JSON.parse(data), accessToken = _a.accessToken, expires = _a.expires; | ||
if (typeof accessToken !== 'string' && typeof expires !== 'number') { | ||
// TODO: delete file | ||
return null; | ||
} | ||
return { accessToken: accessToken, expires: expires }; | ||
} | ||
catch (error) { | ||
return null; | ||
} | ||
return __awaiter(this, void 0, void 0, function () { | ||
var data, _a, accessToken, expires, error_1; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
_b.trys.push([0, 2, , 3]); | ||
return [4 /*yield*/, Promise.resolve().then(function () { return require('fs'); })]; | ||
case 1: | ||
data = (_b.sent()).readFileSync(path, { encoding: 'utf8' }); | ||
_a = JSON.parse(data), accessToken = _a.accessToken, expires = _a.expires; | ||
if (typeof accessToken !== 'string' && typeof expires !== 'number') { | ||
// TODO: delete file | ||
return [2 /*return*/, null]; | ||
} | ||
return [2 /*return*/, { accessToken: accessToken, expires: expires }]; | ||
case 2: | ||
error_1 = _b.sent(); | ||
return [2 /*return*/, null]; | ||
case 3: return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
}; | ||
@@ -142,0 +207,0 @@ return Authenticator; |
{ | ||
"name": "@spinque/query-api", | ||
"version": "0.15.1", | ||
"version": "0.15.2", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
Sorry, the diff of this file is not supported yet
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
165845
2447
3