| "use strict"; | ||
| var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
| function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
| var Promise = require('bluebird'); | ||
| var Boom = require('boom'); | ||
| var abstactCacheEngine = function () { | ||
| _createClass(abstactCacheEngine, [{ | ||
| key: 'notImplemented', | ||
| value: function notImplemented(name) { | ||
| return Promise.reject(Boom.notImplemented('Method ' + name + ' not implemented in subclass of AbstractCacheEngine')); | ||
| } | ||
| }]); | ||
| function abstactCacheEngine() { | ||
| _classCallCheck(this, abstactCacheEngine); | ||
| if (this.get === undefined) { | ||
| notImplemented('get'); | ||
| } | ||
| if (this.set === undefined) { | ||
| notImplemented('set'); | ||
| } | ||
| if (this.getMulti === undefined) { | ||
| notImplemented('getMulti'); | ||
| } | ||
| if (this.setMulti === undefined) { | ||
| notImplemented('setMulti'); | ||
| } | ||
| if (this.delete === undefined) { | ||
| notImplemented('delete'); | ||
| } | ||
| if (this.clear === undefined) { | ||
| notImplemented('clear'); | ||
| } | ||
| if (this.size === undefined) { | ||
| notImplemented('size'); | ||
| } | ||
| } | ||
| return abstactCacheEngine; | ||
| }(); | ||
| module.exports = abstactCacheEngine; |
| "use strict"; | ||
| var redis = require("./src/redisEngine.js"); | ||
| var memory = require("./src/memoryEngine.js"); | ||
| module.exports = memory; | ||
| if (process.env.CACHE_TYPE && process.env.CACHE_TYPE === "redis") { | ||
| module.exports = redis; | ||
| } |
| 'use strict'; | ||
| /** | ||
| * Created by prashun on 9/16/16. | ||
| */ | ||
| var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
| function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
| function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } | ||
| function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | ||
| var Promise = require('bluebird'); | ||
| var abstactCacheEngine = require('./abstractCacheEngine.js'); | ||
| var LRUCache = require('lru-cache'); | ||
| var options = {}; | ||
| var defaults = { | ||
| lru: { | ||
| options: { | ||
| max: 500, | ||
| maxAge: 1000 * 60 * 60 | ||
| } | ||
| } | ||
| }; | ||
| var config = process.env.CONFIG_PATH || defaults; | ||
| if (config && config.lru && config.lru.options) { | ||
| options = config.lru.options; | ||
| } else { | ||
| throw new Error('no redis config found please set the path for the config file'); | ||
| } | ||
| var cache = LRUCache(options); | ||
| var memoryEngine = function (_abstactCacheEngine) { | ||
| _inherits(memoryEngine, _abstactCacheEngine); | ||
| function memoryEngine() { | ||
| _classCallCheck(this, memoryEngine); | ||
| return _possibleConstructorReturn(this, (memoryEngine.__proto__ || Object.getPrototypeOf(memoryEngine)).apply(this, arguments)); | ||
| } | ||
| _createClass(memoryEngine, [{ | ||
| key: 'get', | ||
| value: function get(key) { | ||
| return new Promise(function (resolve) { | ||
| resolve(cache.get(key)); | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'set', | ||
| value: function set(key, value, ttl) { | ||
| return new Promise(function (resolve, reject) { | ||
| if (typeof key === 'undefined') { | ||
| reject(new Error('Invalid key undefined')); | ||
| } | ||
| console.log(value); | ||
| var encoded = JSON.stringify(value); | ||
| cache.set(key, encoded); | ||
| resolve({ key: encoded }); | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'setMulti', | ||
| value: function setMulti(values, ttl) { | ||
| var client = this.client; | ||
| return new Promise(function (resolve) { | ||
| var keys = Object.keys(values), | ||
| commands = []; | ||
| for (var i = 0; i < keys.length; i++) { | ||
| var key = keys[i], | ||
| value = values[key], | ||
| encoded = JSON.stringify(value); | ||
| cache.set(key, encoded); | ||
| } | ||
| return resolve(values); | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'getMulti', | ||
| value: function getMulti(keys) { | ||
| var client = this.client; | ||
| if (!_.isArray(keys)) { | ||
| var err = new Error('Keys must be an array'); | ||
| return Promise.reject(err); | ||
| } | ||
| return this.client.mgetAsync(keys).then(function (replies) { | ||
| var results = {}; | ||
| for (var i = 0; i < replies.length; i++) { | ||
| var key = keys[i], | ||
| value = void 0, | ||
| encoded = replies[i]; | ||
| if (typeof encoded === 'undefined') { | ||
| value = undefined; | ||
| } else { | ||
| try { | ||
| value = JSON.parse(encoded); | ||
| } catch (err) { | ||
| value = undefined; | ||
| } | ||
| } | ||
| results[key] = value; | ||
| } | ||
| return results; | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'delete', | ||
| value: function _delete(key) { | ||
| return new Promise(function (resolve) { | ||
| cache.del(key); | ||
| resolve(key); | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'clear', | ||
| value: function clear() { | ||
| return new Promise(function (resolve) { | ||
| cache.reset(); | ||
| resolve(true); | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'size', | ||
| value: function size() { | ||
| console.log("sizze"); | ||
| } | ||
| }]); | ||
| return memoryEngine; | ||
| }(abstactCacheEngine); | ||
| module.exports = new memoryEngine(); |
| "use strict"; | ||
| var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
| function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
| function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } | ||
| function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | ||
| var Promise = require('bluebird'); | ||
| var abstactCacheEngine = require('./abstractCacheEngine.js'); | ||
| var redis = require("redis"); | ||
| var options = {}; | ||
| var defaults = { | ||
| redis: { | ||
| options: { | ||
| server: 'localhost', | ||
| secretKey: 'SeekQret-CutDev', | ||
| port: 6379, | ||
| db: 1 | ||
| } | ||
| } | ||
| }; | ||
| var config = process.env.CONFIG_PATH || defaults; | ||
| if (config && config.redis && config.redis.options) { | ||
| options = config.redis.options; | ||
| } else { | ||
| throw new Error('no redis config found please set the path for the config file'); | ||
| } | ||
| var client = redis.createClient(options); | ||
| var instance = null; | ||
| var redisEngine = function (_abstactCacheEngine) { | ||
| _inherits(redisEngine, _abstactCacheEngine); | ||
| function redisEngine() { | ||
| _classCallCheck(this, redisEngine); | ||
| return _possibleConstructorReturn(this, (redisEngine.__proto__ || Object.getPrototypeOf(redisEngine)).apply(this, arguments)); | ||
| } | ||
| _createClass(redisEngine, [{ | ||
| key: 'get', | ||
| value: function get(key) { | ||
| return new Promise(function (resolve) { | ||
| client.get(key, function (err, reply) { | ||
| resolve(reply); | ||
| }); | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'set', | ||
| value: function set(key, value, ttl) { | ||
| return new Promise(function (resolve, reject) { | ||
| if (typeof key === 'undefined') { | ||
| reject(new Error('Invalid key undefined')); | ||
| } | ||
| var encoded = JSON.stringify(value); | ||
| if (ttl) { | ||
| client.setex(key, ttl, encoded, function (err) { | ||
| err ? reject(err) : resolve(value); | ||
| }); | ||
| } else { | ||
| client.set(key, encoded, function (err) { | ||
| err ? reject(err) : resolve(value); | ||
| }); | ||
| } | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'setMulti', | ||
| value: function setMulti(values, ttl) { | ||
| var client = this.client; | ||
| return new Promise(function (resolve, reject) { | ||
| if (!_.isObject(values)) { | ||
| var err = new Error('values must be a hash'); | ||
| return reject(err); | ||
| } | ||
| var keys = Object.keys(values), | ||
| commands = []; | ||
| for (var i = 0; i < keys.length; i++) { | ||
| var key = keys[i], | ||
| value = values[key], | ||
| encoded = JSON.stringify(value); | ||
| if (ttl) { | ||
| commands.push(['setex', key, ttl, encoded]); | ||
| } else { | ||
| commands.push(['set', key, encoded]); | ||
| } | ||
| } | ||
| if (commands.length) { | ||
| client.multi(commands).exec(function (err) { | ||
| return err ? reject(err) : resolve(values); | ||
| }); | ||
| } | ||
| return resolve(values); | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'getMulti', | ||
| value: function getMulti(keys) { | ||
| var client = this.client; | ||
| if (!_.isArray(keys)) { | ||
| var err = new Error('Keys must be an array'); | ||
| return Promise.reject(err); | ||
| } | ||
| return this.client.mgetAsync(keys).then(function (replies) { | ||
| var results = {}; | ||
| for (var i = 0; i < replies.length; i++) { | ||
| var key = keys[i], | ||
| value = void 0, | ||
| encoded = replies[i]; | ||
| if (typeof encoded === 'undefined') { | ||
| value = undefined; | ||
| } else { | ||
| try { | ||
| value = JSON.parse(encoded); | ||
| } catch (err) { | ||
| value = undefined; | ||
| } | ||
| } | ||
| results[key] = value; | ||
| } | ||
| return results; | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'delete', | ||
| value: function _delete(key) { | ||
| return new Promise(function (resolve) { | ||
| client.del(key); | ||
| resolve(key); | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'clear', | ||
| value: function clear() { | ||
| return new Promise(function (resolve) { | ||
| client.flushdb(); | ||
| resolve(true); | ||
| }); | ||
| } | ||
| }, { | ||
| key: 'size', | ||
| value: function size() { | ||
| return new Promise(function (resolve) { | ||
| resolve(client.dbsize()); | ||
| }); | ||
| } | ||
| }]); | ||
| return redisEngine; | ||
| }(abstactCacheEngine); | ||
| module.exports = new redisEngine(); |
+10
| const redis = require("./src/redisEngine.js"); | ||
| const memory = require("./src/memoryEngine.js"); | ||
| module.exports = memory; | ||
| if ( process.env.CACHE_TYPE && process.env.CACHE_TYPE === "redis" ){ | ||
| module.exports = redis; | ||
| } | ||
+1
-1
| { | ||
| "name": "cache-cow", | ||
| "version": "0.0.1dv", | ||
| "version": "0.0.2dv", | ||
| "description": "", | ||
@@ -5,0 +5,0 @@ "main": "./bin/index.js", |
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
23803
141.19%13
62.5%577
124.51%11
120%