Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@planet/user-store

Package Overview
Dependencies
Maintainers
10
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@planet/user-store - npm Package Compare versions

Comparing version 2.1.0 to 3.0.0

.gitlab-ci.yml

8

lib/manager.js

@@ -16,7 +16,9 @@ var Emitter = require('tiny-emitter');

this._store.set(user);
setTimeout(function() {
this.emit('update', user);
}.bind(this));
setTimeout(
function() {
this.emit('update', user);
}.bind(this)
);
};
module.exports = Manager;
var key = '@planet/user-store#2';
var store = require('store/dist/store.modern');
var decode = require('jwt-decode');

@@ -8,2 +9,9 @@ exports.get = function() {

user = store.get(key) || null;
if (user) {
var claims = decode(user.token);
if (!(claims.exp * 1000 > Date.now())) {
user = null;
store.remove(key);
}
}
} catch (_) {

@@ -24,2 +32,6 @@ // pass

}
var claims = decode(user.token);
if (!(claims.exp * 1000 > Date.now())) {
throw new Error('The exp claim must be for a future date');
}
try {

@@ -26,0 +38,0 @@ store.set(key, user);

{
"name": "@planet/user-store",
"version": "2.1.0",
"version": "3.0.0",
"description": "Simple event emitting store for Planet users",

@@ -21,2 +21,3 @@ "license": "Apache-2.0",

"dependencies": {
"jwt-decode": "^2.2.0",
"store": "^2.0.4",

@@ -26,7 +27,8 @@ "tiny-emitter": "^1.0.2"

"devDependencies": {
"code": "^4.0.0",
"eslint": "^3.17.1",
"eslint-config-planet": "^12.0.0",
"lab": "^12.1.0",
"sinon": "^1.17.7",
"code": "^4.1.0",
"eslint": "^4.5.0",
"eslint-config-planet": "^14.0.0",
"jwt-simple": "^0.5.1",
"lab": "^14.2.0",
"sinon": "^3.2.1",
"watchy": "^0.6.7"

@@ -33,0 +35,0 @@ },

var _store = require('store/dist/store.modern');
var api = require('../../lib/index');
var expect = require('code').expect;
var lab = exports.lab = require('lab').script();
var lab = (exports.lab = require('lab').script());
var sinon = require('sinon');
var jwt = require('jwt-simple');
lab.experiment('API', function() {
lab.afterEach(function(done) {

@@ -15,6 +15,24 @@ _store.clearAll();

lab.experiment('set()', function() {
var future = new Date();
future.setMonth(future.getMonth() + 1);
var past = new Date();
past.setMonth(past.getMonth() - 1);
var secret = 'burrito';
var validToken = jwt.encode(
{exp: Math.round(future.getTime() / 1000)},
secret
);
var expiredToken = jwt.encode(
{exp: Math.round(past.getTime() / 1000)},
secret
);
lab.test('stores a user object', function(done) {
var user = {token: 'raw token'};
var date = new Date();
date.setMonth(date.getMonth() + 1);
var user = {token: validToken};
api.set(user);

@@ -29,3 +47,3 @@ expect(api.get()).to.equal(user);

lab.test('clears the store if null is provided', function(done) {
var user = {token: 'raw token'};
var user = {token: validToken};

@@ -47,4 +65,24 @@ api.set(user);

lab.test('throws if token is invalid', function(done) {
var user = {token: 'bogus'};
function call() {
return api.set(user);
}
expect(call).to.throw(/^Invalid token specified/);
done();
});
lab.test('throws if token has expired', function(done) {
var user = {token: expiredToken};
function call() {
return api.set(user);
}
expect(call).to.throw(/^The exp claim must be for a future date/);
done();
});
lab.test('triggers an asynchronous update event', function(done) {
var user = {token: 'raw token'};
var user = {token: validToken};

@@ -67,5 +105,3 @@ var callback = sinon.spy();

});
});
});
var Emitter = require('tiny-emitter');
var Manager = require('../../lib/manager');
var expect = require('code').expect;
var lab = exports.lab = require('lab').script();
var lab = (exports.lab = require('lab').script());
var sinon = require('sinon');
lab.experiment('Manager', function() {
var store;

@@ -24,3 +23,2 @@ lab.beforeEach(function(done) {

lab.experiment('constructor', function() {
lab.test('creates a new manager given a store', function(done) {

@@ -32,7 +30,5 @@ var manager = new Manager(store);

});
});
lab.experiment('get()', function() {
lab.test('calls store.get()', function(done) {

@@ -51,7 +47,5 @@ var manager = new Manager(store);

});
});
lab.experiment('set()', function() {
lab.test('calls store.set()', function(done) {

@@ -80,5 +74,3 @@ var manager = new Manager(store);

});
});
});
var _store = require('store/dist/store.modern');
var expect = require('code').expect;
var lab = exports.lab = require('lab').script();
var jwt = require('jwt-simple');
var lab = (exports.lab = require('lab').script());
var store = require('../../lib/store');
lab.experiment('store', function() {
var future = new Date();
future.setMonth(future.getMonth() + 1);
var past = new Date();
past.setMonth(past.getMonth() - 1);
var secret = 'burrito';
var validToken = jwt.encode(
{exp: Math.round(future.getTime() / 1000)},
secret
);
var expiredToken = jwt.encode(
{exp: Math.round(past.getTime() / 1000)},
secret
);
lab.afterEach(function(done) {

@@ -14,5 +29,4 @@ _store.clearAll();

lab.experiment('set()', function() {
lab.test('stores an object', function(done) {
var user = {token: 'raw token'};
var user = {token: validToken};
store.set(user);

@@ -24,3 +38,3 @@ expect(store.get()).to.equal(user);

lab.test('clears the store if null is provided', function(done) {
var user = {token: 'raw token'};
var user = {token: validToken};
store.set(user);

@@ -34,3 +48,3 @@ expect(store.get()).to.equal(user);

lab.test('throws for too many keys', function(done) {
var user = {token: 'raw token', foo: 'bar'};
var user = {token: validToken, foo: 'bar'};
var call = function() {

@@ -51,9 +65,7 @@ store.set(user);

});
});
lab.experiment('get()', function() {
lab.test('gets a previously stored object', function(done) {
var user = {token: 'raw token'};
var user = {token: validToken};
store.set(user);

@@ -69,4 +81,15 @@ expect(store.get()).to.equal(user);

lab.test('returns null if stored user token has expired', function(done) {
var validUser = {token: validToken};
var expiredUser = {token: expiredToken};
_store.set('@planet/user-store#2', validUser);
expect(store.get()).to.equal(validUser);
_store.set('@planet/user-store#2', expiredUser);
expect(store.get()).to.equal(null);
done();
});
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc