Socket
Socket
Sign inDemoInstall

runtime-memcache

Package Overview
Dependencies
0
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.0-beta.3 to 2.0.0-beta.4

dist/umd/index.d.ts

2

dist/umd/index.js

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.RMStore=e():t.RMStore=e()}(this,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var s=e[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)i.d(n,s,function(e){return t[e]}.bind(null,s));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createTimeAwareMapObserver=function(t){var e=new Map;return{create:function(i,n){var s=setTimeout((function(){n(i)}),t);e.set(i,s)},cancel:function(t){if(e.has(t)){var i=e.get(t);e.delete(t),clearTimeout(i)}}}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(2);e.default=n.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=i(4),r=i(6),o=i(8);e.defaultConfig={strategy:"lru",policy:"lru",timeToClear:72e5,lruSize:500,mruSize:500},e.default=function(t){var i={};"object"==typeof t&&(i=t);var u=Object.assign({},e.defaultConfig,i);switch(u.policy){case"timeout":return n.default(u);case"lru":return s.default(u);case"mru":return r.default(u);case"tlru":return o.default(u);default:throw new Error(u.policy+" is not a supported policy.")}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0);e.default=function(t){var e=new Map,i=n.createTimeAwareMapObserver(t.timeToClear);function s(t){return e.delete(t),i.cancel(t),!0}return{keys:function(){return Array.from(e.keys())},size:function(){return e.size},has:function(t){return e.has(t)},get:function(t){var i=e.get(t);return i||null},set:function(t,n){return e.set(t,n),i.create(t,s),!0},remove:s}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(5);e.default=function(t){var e=new n.LRULinkedList(t);return{keys:function(){return e.keys()},size:function(){return e.size},get:function(t){var i=e.get(t);return i||null},set:function(t,i){return e.addNodeToHead(t,i),!0},remove:function(t){return e.remove(t),!0},has:function(t){return e.has(t)}}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(t,e){this.next=null,this.data=e,this.id=t,this.prev=null},s=function(){function t(t){this.__size=0,this.limit=0,this.positions=new Map,this.HEAD=null,this.TAIL=null,this.limit=t.lruSize}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__size},set:function(t){this.__size=t,this.__size>this.limit&&this.shrinkList()},enumerable:!0,configurable:!0}),t.prototype.moveToHead=function(t){var e=this.remove(t.id);return e?this.addNodeToHead(e.id,e.data):null},t.prototype.addNodeToHead=function(t,e){if(this.positions.has(t))return this.moveToHead(this.positions.get(t));if(this.HEAD){var i=this.HEAD,s=new n(t,e);return s.next=i,s.prev=null,i.prev=s,this.HEAD=s,this.positions.set(t,s),this.size++,s}var r=new n(t,e);return this.HEAD=r,this.TAIL||(this.TAIL=r),this.positions.set(t,r),this.size++,r},t.prototype.remove=function(t){if(!this.HEAD)return null;var e=this.positions.get(t);if(!e)return null;var i=e.prev,n=e.next;return i&&n?(i.next=n,n.prev=i,this.positions.delete(t),this.size--,e):i&&!n?(i.next=null,this.TAIL=i,this.positions.delete(t),this.size--,e):!i&&n?(n.prev=null,this.HEAD=n,this.positions.delete(t),this.size--,e):i||n?null:(this.HEAD=null,this.TAIL=null,this.positions.delete(t),this.size--,e)},t.prototype.keys=function(){return Array.from(this.positions.keys())},t.prototype.shrinkList=function(){for(var t=this.size-this.limit,e=this.TAIL,i=1;i<=t;i++)this.positions.delete(e.id),this.size--,e=e.prev;e.next=null,this.TAIL=e},t.prototype.has=function(t){return!!this.positions.has(t)},t.prototype.traverse=function(){if(this.HEAD)for(var t=this.HEAD;t;)console.log(t.id),t=t.next},t.prototype.get=function(t){var e=this.positions.get(t);if(e){var i=this.moveToHead(e);return i?i.data:null}return null},t}();e.LRULinkedList=s},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(7);e.default=function(t){var e=new n.MRULinkedList(t);return{keys:function(){return e.keys()},size:function(){return e.size},has:function(t){return e.has(t)},get:function(t){var i=e.get(t);return i||null},set:function(t,i){return e.addNodeToHead(t,i),!0},remove:function(t){return e.remove(t),!0}}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(t,e){this.next=null,this.data=e,this.id=t,this.prev=null},s=function(){function t(t){this.__size=0,this.limit=0,this.positions=new Map,this.HEAD=null,this.TAIL=null,this.limit=t.mruSize}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__size},set:function(t){this.__size=t,this.__size>this.limit&&this.shrinkList()},enumerable:!0,configurable:!0}),t.prototype.keys=function(){return Array.from(this.positions.keys())},t.prototype.moveToTail=function(t){var e=this.remove(t.id);return e?this.addNodeToTail(e.id,e.data):null},t.prototype.moveToHead=function(t){var e=this.remove(t.id);return e?this.addNodeToHead(e.id,e.data):null},t.prototype.addNodeToHead=function(t,e){if(this.positions.has(t))return this.moveToHead(this.positions.get(t));if(this.HEAD){var i=this.HEAD,s=new n(t,e);return s.next=i,s.prev=null,i.prev=s,this.HEAD=s,this.positions.set(t,s),this.size++,s}var r=new n(t,e);return this.HEAD=r,this.TAIL||(this.TAIL=r),this.positions.set(t,r),this.size++,r},t.prototype.addNodeToTail=function(t,e){if(this.positions.has(t))return this.moveToTail(this.positions.get(t));if(this.TAIL){var i=this.TAIL,s=new n(t,e);return s.prev=i,s.next=null,i.next=s,this.TAIL=s,this.positions.set(t,s),this.size++,s}var r=new n(t,e);return this.TAIL=r,this.HEAD||(this.HEAD=r),this.positions.set(t,r),this.size++,r},t.prototype.remove=function(t){if(!this.HEAD)return null;var e=this.positions.get(t);if(!e)return null;var i=e.prev,n=e.next;return i&&n?(i.next=n,n.prev=i,this.positions.delete(t),this.size--,e):i&&!n?(i.next=null,this.TAIL=i,this.positions.delete(t),this.size--,e):!i&&n?(n.prev=null,this.HEAD=n,this.positions.delete(t),this.size--,e):i||n?null:(this.HEAD=null,this.TAIL=null,this.positions.delete(t),this.size--,e)},t.prototype.shrinkList=function(){for(var t=this.size-this.limit,e=this.TAIL,i=1;i<=t;i++)this.positions.delete(e.id),this.size--,e=e.prev;e.next=null,this.TAIL=e},t.prototype.has=function(t){return!!this.positions.has(t)},t.prototype.traverse=function(){if(this.HEAD)for(var t=this.HEAD;t;)console.log(t.id),t=t.next},t.prototype.get=function(t){var e=this.positions.get(t);if(e){var i=this.moveToTail(e);return i?i.data:null}return null},t}();e.MRULinkedList=s},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(9);e.default=function(t){var e=new n.TLRULinkedList(t);return{keys:function(){return e.keys()},size:function(){return e.size},get:function(t){var i=e.get(t);return i||null},set:function(t,i){return e.addNodeToHead(t,i),!0},remove:function(t){return e.remove(t),!0},has:function(t){return e.has(t)}}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=function(t,e){this.next=null,this.data=e,this.id=t,this.prev=null},r=function(){function t(t){this.__size=0,this.limit=0,this.positions=new Map,this.HEAD=null,this.TAIL=null,this.limit=t.lruSize,this.timer=n.createTimeAwareMapObserver(t.timeToClear)}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__size},set:function(t){this.__size=t,this.__size>this.limit&&this.shrinkList()},enumerable:!0,configurable:!0}),t.prototype.moveToHead=function(t){var e=this.remove(t.id);return e?this.addNodeToHead(e.id,e.data):null},t.prototype.addNodeToHead=function(t,e){if(this.positions.has(t))return this.moveToHead(this.positions.get(t));var i=this.remove.bind(this);if(this.timer.create(t,i),this.HEAD){var n=this.HEAD,r=new s(t,e);return r.next=n,r.prev=null,n.prev=r,this.HEAD=r,this.positions.set(t,r),this.size++,r}var o=new s(t,e);return this.HEAD=o,this.TAIL||(this.TAIL=o),this.positions.set(t,o),this.size++,o},t.prototype.remove=function(t){if(!this.HEAD)return null;var e=this.positions.get(t);if(!e)return null;var i=e.prev,n=e.next;return i&&n?(i.next=n,n.prev=i,this.positions.delete(t),this.timer.cancel(t),this.size--,e):i&&!n?(i.next=null,this.TAIL=i,this.positions.delete(t),this.timer.cancel(t),this.size--,e):!i&&n?(n.prev=null,this.HEAD=n,this.positions.delete(t),this.timer.cancel(t),this.size--,e):i||n?null:(this.HEAD=null,this.TAIL=null,this.positions.delete(t),this.timer.cancel(t),this.size--,e)},t.prototype.keys=function(){return Array.from(this.positions.keys())},t.prototype.shrinkList=function(){for(var t=this.size-this.limit,e=this.TAIL,i=1;i<=t;i++)this.positions.delete(e.id),this.timer.cancel(e.id),this.size--,e=e.prev;e.next=null,this.TAIL=e},t.prototype.has=function(t){return!!this.positions.has(t)},t.prototype.traverse=function(){if(this.HEAD)for(var t=this.HEAD;t;)t=t.next},t.prototype.get=function(t){var e=this.positions.get(t);if(e){var i=this.moveToHead(e);return i?i.data:null}return null},t}();e.TLRULinkedList=r}]).default}));
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("RMStore",[],e):"object"==typeof exports?exports.RMStore=e():t.RMStore=e()}(this,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var s=e[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)i.d(n,s,function(e){return t[e]}.bind(null,s));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createTimeAwareMapObserver=function(t){var e=new Map;return{create:function(i,n){var s=setTimeout((function(){n(i)}),t);e.set(i,s)},cancel:function(t){if(e.has(t)){var i=e.get(t);e.delete(t),clearTimeout(i)}}}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(2);e.default=n.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=i(4),r=i(6),o=i(8);e.defaultConfig={strategy:"lru",policy:"lru",timeToClear:72e5,lruSize:500,mruSize:500},e.default=function(t){var i={};"object"==typeof t&&(i=t);var u=Object.assign({},e.defaultConfig,i);switch(u.policy){case"timeout":return n.default(u);case"lru":return s.default(u);case"mru":return r.default(u);case"tlru":return o.default(u);default:throw new Error(u.policy+" is not a supported policy.")}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0);e.default=function(t){var e=new Map,i=n.createTimeAwareMapObserver(t.timeToClear);function s(t){return e.delete(t),i.cancel(t),!0}return{keys:function(){return Array.from(e.keys())},size:function(){return e.size},has:function(t){return e.has(t)},get:function(t){var i=e.get(t);return i||null},set:function(t,n){return e.set(t,n),i.create(t,s),!0},remove:s}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(5);e.default=function(t){var e=new n.LRULinkedList(t);return{keys:function(){return e.keys()},size:function(){return e.size},get:function(t){var i=e.get(t);return i||null},set:function(t,i){return e.addNodeToHead(t,i),!0},remove:function(t){return e.remove(t),!0},has:function(t){return e.has(t)}}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(t,e){this.next=null,this.data=e,this.id=t,this.prev=null},s=function(){function t(t){this.__size=0,this.limit=0,this.positions=new Map,this.HEAD=null,this.TAIL=null,this.limit=t.lruSize}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__size},set:function(t){this.__size=t,this.__size>this.limit&&this.shrinkList()},enumerable:!0,configurable:!0}),t.prototype.moveToHead=function(t){var e=this.remove(t.id);return e?this.addNodeToHead(e.id,e.data):null},t.prototype.addNodeToHead=function(t,e){if(this.positions.has(t))return this.moveToHead(this.positions.get(t));if(this.HEAD){var i=this.HEAD,s=new n(t,e);return s.next=i,s.prev=null,i.prev=s,this.HEAD=s,this.positions.set(t,s),this.size++,s}var r=new n(t,e);return this.HEAD=r,this.TAIL||(this.TAIL=r),this.positions.set(t,r),this.size++,r},t.prototype.remove=function(t){if(!this.HEAD)return null;var e=this.positions.get(t);if(!e)return null;var i=e.prev,n=e.next;return i&&n?(i.next=n,n.prev=i,this.positions.delete(t),this.size--,e):i&&!n?(i.next=null,this.TAIL=i,this.positions.delete(t),this.size--,e):!i&&n?(n.prev=null,this.HEAD=n,this.positions.delete(t),this.size--,e):i||n?null:(this.HEAD=null,this.TAIL=null,this.positions.delete(t),this.size--,e)},t.prototype.keys=function(){return Array.from(this.positions.keys())},t.prototype.shrinkList=function(){for(var t=this.size-this.limit,e=this.TAIL,i=1;i<=t;i++)this.positions.delete(e.id),this.size--,e=e.prev;e.next=null,this.TAIL=e},t.prototype.has=function(t){return!!this.positions.has(t)},t.prototype.traverse=function(){if(this.HEAD)for(var t=this.HEAD;t;)console.log(t.id),t=t.next},t.prototype.get=function(t){var e=this.positions.get(t);if(e){var i=this.moveToHead(e);return i?i.data:null}return null},t}();e.LRULinkedList=s},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(7);e.default=function(t){var e=new n.MRULinkedList(t);return{keys:function(){return e.keys()},size:function(){return e.size},has:function(t){return e.has(t)},get:function(t){var i=e.get(t);return i||null},set:function(t,i){return e.addNodeToHead(t,i),!0},remove:function(t){return e.remove(t),!0}}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(t,e){this.next=null,this.data=e,this.id=t,this.prev=null},s=function(){function t(t){this.__size=0,this.limit=0,this.positions=new Map,this.HEAD=null,this.TAIL=null,this.limit=t.mruSize}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__size},set:function(t){this.__size=t,this.__size>this.limit&&this.shrinkList()},enumerable:!0,configurable:!0}),t.prototype.keys=function(){return Array.from(this.positions.keys())},t.prototype.moveToTail=function(t){var e=this.remove(t.id);return e?this.addNodeToTail(e.id,e.data):null},t.prototype.moveToHead=function(t){var e=this.remove(t.id);return e?this.addNodeToHead(e.id,e.data):null},t.prototype.addNodeToHead=function(t,e){if(this.positions.has(t))return this.moveToHead(this.positions.get(t));if(this.HEAD){var i=this.HEAD,s=new n(t,e);return s.next=i,s.prev=null,i.prev=s,this.HEAD=s,this.positions.set(t,s),this.size++,s}var r=new n(t,e);return this.HEAD=r,this.TAIL||(this.TAIL=r),this.positions.set(t,r),this.size++,r},t.prototype.addNodeToTail=function(t,e){if(this.positions.has(t))return this.moveToTail(this.positions.get(t));if(this.TAIL){var i=this.TAIL,s=new n(t,e);return s.prev=i,s.next=null,i.next=s,this.TAIL=s,this.positions.set(t,s),this.size++,s}var r=new n(t,e);return this.TAIL=r,this.HEAD||(this.HEAD=r),this.positions.set(t,r),this.size++,r},t.prototype.remove=function(t){if(!this.HEAD)return null;var e=this.positions.get(t);if(!e)return null;var i=e.prev,n=e.next;return i&&n?(i.next=n,n.prev=i,this.positions.delete(t),this.size--,e):i&&!n?(i.next=null,this.TAIL=i,this.positions.delete(t),this.size--,e):!i&&n?(n.prev=null,this.HEAD=n,this.positions.delete(t),this.size--,e):i||n?null:(this.HEAD=null,this.TAIL=null,this.positions.delete(t),this.size--,e)},t.prototype.shrinkList=function(){for(var t=this.size-this.limit,e=this.TAIL,i=1;i<=t;i++)this.positions.delete(e.id),this.size--,e=e.prev;e.next=null,this.TAIL=e},t.prototype.has=function(t){return!!this.positions.has(t)},t.prototype.traverse=function(){if(this.HEAD)for(var t=this.HEAD;t;)console.log(t.id),t=t.next},t.prototype.get=function(t){var e=this.positions.get(t);if(e){var i=this.moveToTail(e);return i?i.data:null}return null},t}();e.MRULinkedList=s},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(9);e.default=function(t){var e=new n.TLRULinkedList(t);return{keys:function(){return e.keys()},size:function(){return e.size},get:function(t){var i=e.get(t);return i||null},set:function(t,i){return e.addNodeToHead(t,i),!0},remove:function(t){return e.remove(t),!0},has:function(t){return e.has(t)}}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=function(t,e){this.next=null,this.data=e,this.id=t,this.prev=null},r=function(){function t(t){this.__size=0,this.limit=0,this.positions=new Map,this.HEAD=null,this.TAIL=null,this.limit=t.lruSize,this.timer=n.createTimeAwareMapObserver(t.timeToClear)}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__size},set:function(t){this.__size=t,this.__size>this.limit&&this.shrinkList()},enumerable:!0,configurable:!0}),t.prototype.moveToHead=function(t){var e=this.remove(t.id);return e?this.addNodeToHead(e.id,e.data):null},t.prototype.addNodeToHead=function(t,e){if(this.positions.has(t))return this.moveToHead(this.positions.get(t));var i=this.remove.bind(this);if(this.timer.create(t,i),this.HEAD){var n=this.HEAD,r=new s(t,e);return r.next=n,r.prev=null,n.prev=r,this.HEAD=r,this.positions.set(t,r),this.size++,r}var o=new s(t,e);return this.HEAD=o,this.TAIL||(this.TAIL=o),this.positions.set(t,o),this.size++,o},t.prototype.remove=function(t){if(!this.HEAD)return null;var e=this.positions.get(t);if(!e)return null;var i=e.prev,n=e.next;return i&&n?(i.next=n,n.prev=i,this.positions.delete(t),this.timer.cancel(t),this.size--,e):i&&!n?(i.next=null,this.TAIL=i,this.positions.delete(t),this.timer.cancel(t),this.size--,e):!i&&n?(n.prev=null,this.HEAD=n,this.positions.delete(t),this.timer.cancel(t),this.size--,e):i||n?null:(this.HEAD=null,this.TAIL=null,this.positions.delete(t),this.timer.cancel(t),this.size--,e)},t.prototype.keys=function(){return Array.from(this.positions.keys())},t.prototype.shrinkList=function(){for(var t=this.size-this.limit,e=this.TAIL,i=1;i<=t;i++)this.positions.delete(e.id),this.timer.cancel(e.id),this.size--,e=e.prev;e.next=null,this.TAIL=e},t.prototype.has=function(t){return!!this.positions.has(t)},t.prototype.traverse=function(){if(this.HEAD)for(var t=this.HEAD;t;)t=t.next},t.prototype.get=function(t){var e=this.positions.get(t);if(e){var i=this.moveToHead(e);return i?i.data:null}return null},t}();e.TLRULinkedList=r}]).default}));
{
"name": "runtime-memcache",
"version": "2.0.0-beta.3",
"version": "2.0.0-beta.4",
"description": "A no dependency javascript runtime key-value cache store for small chunks of arbitrary data (strings, objects, numbers)",

@@ -47,2 +47,3 @@ "homepage": "https://github.com/tusharf5/runtime-memcache",

"babel-loader": "^8.1.0",
"copy-webpack-plugin": "^5.1.1",
"eslint": "^6.8.0",

@@ -49,0 +50,0 @@ "eslint-config-airbnb": "^18.0.1",

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc