Socket
Socket
Sign inDemoInstall

bss

Package Overview
Dependencies
Maintainers
1
Versions
69
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bss - npm Package Compare versions

Comparing version 1.6.2 to 1.6.3

14

bss.esm.js

@@ -446,8 +446,10 @@ var pseudos = [

function addNest(style, selector, properties) {
style[
selector.split(selectorSplit).map(function (x) {
x = x.trim();
return (x.charAt(0) === ':' || x.charAt(0) === '[' ? '' : ' ') + x
}).join(',&')
] = parse(properties);
var prop = selector.split(selectorSplit).map(function (x) {
x = x.trim();
return (x.charAt(0) === ':' || x.charAt(0) === '[' ? '' : ' ') + x
}).join(',&');
prop in style
? assign(style[prop], parse(properties))
: style[prop] = parse(properties);
}

@@ -454,0 +456,0 @@

@@ -452,8 +452,10 @@ (function (global, factory) {

function addNest(style, selector, properties) {
style[
selector.split(selectorSplit).map(function (x) {
x = x.trim();
return (x.charAt(0) === ':' || x.charAt(0) === '[' ? '' : ' ') + x
}).join(',&')
] = parse(properties);
var prop = selector.split(selectorSplit).map(function (x) {
x = x.trim();
return (x.charAt(0) === ':' || x.charAt(0) === '[' ? '' : ' ') + x
}).join(',&');
prop in style
? assign(style[prop], parse(properties))
: style[prop] = parse(properties);
}

@@ -460,0 +462,0 @@

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

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).b=e()}(this,function(){"use strict";var r={ai:"alignItems",b:"bottom",bc:"backgroundColor",br:"borderRadius",bs:"boxShadow",bi:"backgroundImage",c:"color",d:"display",f:"float",fd:"flexDirection",ff:"fontFamily",fs:"fontSize",h:"height",jc:"justifyContent",l:"left",lh:"lineHeight",ls:"letterSpacing",m:"margin",mb:"marginBottom",ml:"marginLeft",mr:"marginRight",mt:"marginTop",o:"opacity",p:"padding",pb:"paddingBottom",pl:"paddingLeft",pr:"paddingRight",pt:"paddingTop",r:"right",t:"top",ta:"textAlign",td:"textDecoration",tt:"textTransform",w:"width"},i=["float"].concat(Object.keys("undefined"==typeof document?{}:function t(e){return e?e.hasOwnProperty("width")?e:t(Object.getPrototypeOf(e)):{}}(document.documentElement.style)).filter(function(t){return-1===t.indexOf("-")&&"length"!==t}));function t(e,n){return void 0===n&&(n={}),function(t){return t in n?n[t]:n[t]=e(t)}}var a=/^-?-?[a-z][a-z-_0-9]*$/i;function l(t,e,n){e in t?l(t,"!"+e,n):t[e]=function t(e,n){return Array.isArray(n)?n.map(function(t){return h(e,t)}).join(" "):"string"==typeof n?t(e,n.split(" ")):h(e,n)}(e,n)}var o=Object.create(null,{}),c=Object.create(null,{}),u=/^(o|O|ms|MS|Ms|moz|Moz|webkit|Webkit|WebKit)([A-Z])/,n=t(function(t){var e=document.createElement("div");try{return e.style[t]="1px",e.style.setProperty(t,"1px"),"1px"===e.style[t].slice(-3)?"px":""}catch(t){return""}},{flex:"",boxShadow:"px",border:"px",borderTop:"px",borderRight:"px",borderBottom:"px",borderLeft:"px"});function f(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]="string"==typeof e[n]?e[n]:f(t[n]||{},e[n]));return t}function s(t){return t.slice("-"===t.charAt(0)?1:0).replace(/-([a-z])/g,function(t){return t[1].toUpperCase()})}function p(e,n,r,i){void 0===r&&(r="");var o={},t=-1<r.indexOf("&")&&-1===r.indexOf(",")?"":"&",c=[];return Object.keys(e).forEach(function(t){"@"===t.charAt(0)?c.push(t+"{"+p(e[t],n,r,i).join("")+"}"):"object"==typeof e[t]?c=c.concat(p(e[t],n,r+t,i)):o[t]=e[t]}),Object.keys(o).length&&c.unshift(((i||" "===r.charAt(0)?"":"&")+t+r).replace(/&/g,n).trim()+"{"+d(o)+"}"),c}var y=/,(?=(?:(?:[^"]*"){2})*[^"]*$)/;function d(n){return Object.keys(n).reduce(function(t,e){return t+function(t,e){return t=t in o?o[t]:t,(u.test(t)?"-":"")+(g(t)?t:function(t){return t.replace(/(\B[A-Z])/g,"-$1").toLowerCase()}(t))+":"+e+";"}(e.replace(/!/g,""),n[e])},"")}function h(t,e){return e in c?c[e]:e+(isNaN(e)||null===e||0===e||"0"===e||"boolean"==typeof e||g(t)?"":n(t))}function g(t){return"-"===t.charAt(0)&&"-"===t.charAt(1)}var b="b"+("000"+(46656*Math.random()|0).toString(36)).slice(-3)+("000"+(46656*Math.random()|0).toString(36)).slice(-3),m="object"==typeof document&&document.createElement("style");m&&document.head&&document.head.appendChild(m),m&&(m.id=b);var _=m&&m.sheet,v=!1,j=Object.create(null,{}),O=[],x=0;function A(t,e){if(O.push(t),v)return m.textContent=O.join("\n");try{_&&_.insertRule(t,1<arguments.length?e:_.cssRules.length)}catch(t){}}var k=Object.create(null);function w(t,e){var n=$(w);return t&&f(n.__style,D.apply(null,arguments)),n}function S(t,e){Object.defineProperty(w,t,{configurable:!0,value:e})}function $(t){var e=Object.create(w,{__style:{value:f({},t.__style)},style:{enumerable:!0,get:function(){var n=this;return Object.keys(this.__style).reduce(function(t,e){return"number"!=typeof n.__style[e]&&"string"!=typeof n.__style[e]||(t[e.replace(/^!/,"")]=n.__style[e]),t},{})}}});return t===w&&(w.__style={}),e}function E(t,e,n){t[e.split(y).map(function(t){return(":"===(t=t.trim()).charAt(0)||"["===t.charAt(0)?"":" ")+t}).join(",&")]=D(n)}function P(n){return function(t){var e=$(this);return t||0===t?0<arguments.length&&l(e.__style,n,Array.prototype.slice.call(arguments)):delete e.__style[n],e}}function C(t,e){p(D(e),t,"",!0).forEach(function(t){return A(t)})}function L(e,r){if(1===arguments.length)return Object.keys(e).forEach(function(t){return L(t,e[t])});delete w[e],"function"==typeof r?(L[e]=r,Object.defineProperty(w,e,{configurable:!0,value:function(t){var e=$(this),n=T(t)?r(N(t,arguments)):r.apply(null,arguments);return f(e.__style,n.__style),e}})):(L[e]=D(r),Object.defineProperty(w,e,{configurable:!0,get:function(){var t=$(this);return f(t.__style,D(r)),t}}))}function R(t){var e=function(t){return t.charAt(0)+(t.match(/([A-Z])/g)||[]).join("").toLowerCase()}(t),n=r[e]&&r[e]!==t?t:e;return k[n]=t,n}Object.defineProperties(w,{__style:{configurable:!0,writable:!0,value:{}},valueOf:{configurable:!0,writable:!0,value:function(){return"."+this.class}},toString:{configurable:!0,writable:!0,value:function(){return this.class}}}),S("setDebug",function(t){v=t}),S("$keyframes",function(n){var t=Object.keys(n).reduce(function(t,e){return t+e+"{"+d(D(n[e]))+"}"},"");if(t in B)return B[t];var e=b+M++;return A("@keyframes "+(B[t]=e)+"{"+t+"}"),e}),S("$media",function(t,e){var n=$(this);t&&(n.__style["@media "+t]=D(e));return n}),S("$import",function(t){t&&!/^('|"|url\('|url\(")/.test(t)&&(t='"'+t+'"');t&&A("@import "+t+";",0);return $(this)}),S("$nest",function(e,t){var n=$(this);1===arguments.length?Object.keys(e).forEach(function(t){return E(n.__style,t,e[t])}):e&&E(n.__style,e,t);return n}),S("getSheet",function(){var t=O.join("");return O=[],j=Object.create(null,{}),x=0,t}),S("getRules",function(){return O}),S("helper",L),S("css",function(e,t){1===arguments.length?Object.keys(e).forEach(function(t){return C(t,e[t])}):C(e,t);return $(this)}),S("classPrefix",b),i.forEach(function(t){var e=t.match(u);if(e){var n=function(t){return t.charAt(0).toLowerCase()+t.slice(1)}(t.replace(u,"$2"));if(-1===i.indexOf(n))return"flexDirection"===n&&(c.flex="-"+e[1].toLowerCase()+"-flex"),S(n,P(o[n]=t)),void S(R(n),w[n])}S(t,P(t)),S(R(t),w[t])}),S("content",function(t){var e=$(this);return null==t||!1===t?delete e.__style.content:e.__style.content='"'+t+'"',e}),Object.defineProperty(w,"class",{set:function(t){this.__class=t},get:function(){return this.__class||function(t){var e=JSON.stringify(t);if(e in j)return j[e];for(var n=b+ ++x,r=p(t,"."+n),i=0;i<r.length;i++)A(r[i]);return j[e]=n}(this.__style)}}),[":active",":any",":checked",":default",":disabled",":empty",":enabled",":first",":first-child",":first-of-type",":fullscreen",":focus",":hover",":indeterminate",":in-range",":invalid",":last-child",":last-of-type",":left",":link",":only-child",":only-of-type",":optional",":out-of-range",":read-only",":read-write",":required",":right",":root",":scope",":target",":valid",":visited",":dir",":lang",":not",":nth-child",":nth-last-child",":nth-last-of-type",":nth-of-type","::after","::before","::first-letter","::first-line","::selection","::backdrop","::placeholder","::marker","::spelling-error","::grammar-error"].forEach(function(r){return S("$"+s(r.replace(/:/g,"")),function(t,e){var n=$(this);return T(t)?n.__style[r]=D.apply(null,arguments):(t||e)&&(n.__style[r+(e?"("+t+")":"")]=D(e||t)),n})}),w.helper("$animate",function(t,e){return w.animation(w.$keyframes(e)+" "+t)});var z=t(function(t){var c,u="";return t.trim().replace(/\/\*[\s\S]*?\*\/|([^:]|^)\/\/.*(?![^("]*[)"])/g,"").split(/;(?![^("]*[)"])|\n/).reduce(function(t,e){if(!e)return t;var n=(e=u+e.trim()).replace(/[ :]+/," ").split(" "),r=n[0],i=n.slice(1);if(u=","===e.charAt(e.length-1)?e:"")return t;if(","===e.charAt(0)||!a.test(r))return t[c]+=" "+e,t;if(!r)return t;var o="-"===r.charAt(0)&&"-"===r.charAt(1)?r:s(r);return c=k[o]||o,r in L?f(t,"function"==typeof L[r]?L[r].apply(L,i).__style:L[r]):o in L?f(t,"function"==typeof L[o]?L[o].apply(L,i).__style:L[o]):0<i.length&&l(t,c,i),t},{})}),M=0,B={};function D(t,e){var n;return"string"==typeof t?"string"==typeof e||"number"==typeof e?((n={})[t]=e,n):z(t):T(t)?z(N(t,arguments)):t.__style||function r(i){return Object.keys(i).reduce(function(t,e){var n=i[e];return e=k[e]||e,(n||0===n||""===n)&&("content"===e&&'"'!==n.charAt(0)?t[e]='"'+n+'"':"object"==typeof n?t[e]=r(n):l(t,e,n)),t},{})}(t)}function T(t){return Array.isArray(t)&&"string"==typeof t[0]}function N(t,e){for(var n="",r=0;r<t.length;r++)n+=t[r]+(e[r+1]||0===e[r+1]?e[r+1]:"");return n}return w});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).b=e()}(this,function(){"use strict";var r={ai:"alignItems",b:"bottom",bc:"backgroundColor",br:"borderRadius",bs:"boxShadow",bi:"backgroundImage",c:"color",d:"display",f:"float",fd:"flexDirection",ff:"fontFamily",fs:"fontSize",h:"height",jc:"justifyContent",l:"left",lh:"lineHeight",ls:"letterSpacing",m:"margin",mb:"marginBottom",ml:"marginLeft",mr:"marginRight",mt:"marginTop",o:"opacity",p:"padding",pb:"paddingBottom",pl:"paddingLeft",pr:"paddingRight",pt:"paddingTop",r:"right",t:"top",ta:"textAlign",td:"textDecoration",tt:"textTransform",w:"width"},i=["float"].concat(Object.keys("undefined"==typeof document?{}:function t(e){return e?e.hasOwnProperty("width")?e:t(Object.getPrototypeOf(e)):{}}(document.documentElement.style)).filter(function(t){return-1===t.indexOf("-")&&"length"!==t}));function t(e,n){return void 0===n&&(n={}),function(t){return t in n?n[t]:n[t]=e(t)}}var a=/^-?-?[a-z][a-z-_0-9]*$/i;function l(t,e,n){e in t?l(t,"!"+e,n):t[e]=function t(e,n){return Array.isArray(n)?n.map(function(t){return h(e,t)}).join(" "):"string"==typeof n?t(e,n.split(" ")):h(e,n)}(e,n)}var o=Object.create(null,{}),c=Object.create(null,{}),u=/^(o|O|ms|MS|Ms|moz|Moz|webkit|Webkit|WebKit)([A-Z])/,n=t(function(t){var e=document.createElement("div");try{return e.style[t]="1px",e.style.setProperty(t,"1px"),"1px"===e.style[t].slice(-3)?"px":""}catch(t){return""}},{flex:"",boxShadow:"px",border:"px",borderTop:"px",borderRight:"px",borderBottom:"px",borderLeft:"px"});function f(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]="string"==typeof e[n]?e[n]:f(t[n]||{},e[n]));return t}function s(t){return t.slice("-"===t.charAt(0)?1:0).replace(/-([a-z])/g,function(t){return t[1].toUpperCase()})}function p(e,n,r,i){void 0===r&&(r="");var o={},t=-1<r.indexOf("&")&&-1===r.indexOf(",")?"":"&",c=[];return Object.keys(e).forEach(function(t){"@"===t.charAt(0)?c.push(t+"{"+p(e[t],n,r,i).join("")+"}"):"object"==typeof e[t]?c=c.concat(p(e[t],n,r+t,i)):o[t]=e[t]}),Object.keys(o).length&&c.unshift(((i||" "===r.charAt(0)?"":"&")+t+r).replace(/&/g,n).trim()+"{"+d(o)+"}"),c}var y=/,(?=(?:(?:[^"]*"){2})*[^"]*$)/;function d(n){return Object.keys(n).reduce(function(t,e){return t+function(t,e){return t=t in o?o[t]:t,(u.test(t)?"-":"")+(g(t)?t:function(t){return t.replace(/(\B[A-Z])/g,"-$1").toLowerCase()}(t))+":"+e+";"}(e.replace(/!/g,""),n[e])},"")}function h(t,e){return e in c?c[e]:e+(isNaN(e)||null===e||0===e||"0"===e||"boolean"==typeof e||g(t)?"":n(t))}function g(t){return"-"===t.charAt(0)&&"-"===t.charAt(1)}var b="b"+("000"+(46656*Math.random()|0).toString(36)).slice(-3)+("000"+(46656*Math.random()|0).toString(36)).slice(-3),m="object"==typeof document&&document.createElement("style");m&&document.head&&document.head.appendChild(m),m&&(m.id=b);var _=m&&m.sheet,v=!1,j=Object.create(null,{}),O=[],x=0;function A(t,e){if(O.push(t),v)return m.textContent=O.join("\n");try{_&&_.insertRule(t,1<arguments.length?e:_.cssRules.length)}catch(t){}}var k=Object.create(null);function w(t,e){var n=$(w);return t&&f(n.__style,D.apply(null,arguments)),n}function S(t,e){Object.defineProperty(w,t,{configurable:!0,value:e})}function $(t){var e=Object.create(w,{__style:{value:f({},t.__style)},style:{enumerable:!0,get:function(){var n=this;return Object.keys(this.__style).reduce(function(t,e){return"number"!=typeof n.__style[e]&&"string"!=typeof n.__style[e]||(t[e.replace(/^!/,"")]=n.__style[e]),t},{})}}});return t===w&&(w.__style={}),e}function E(t,e,n){var r=e.split(y).map(function(t){return(":"===(t=t.trim()).charAt(0)||"["===t.charAt(0)?"":" ")+t}).join(",&");r in t?f(t[r],D(n)):t[r]=D(n)}function P(n){return function(t){var e=$(this);return t||0===t?0<arguments.length&&l(e.__style,n,Array.prototype.slice.call(arguments)):delete e.__style[n],e}}function C(t,e){p(D(e),t,"",!0).forEach(function(t){return A(t)})}function L(e,r){if(1===arguments.length)return Object.keys(e).forEach(function(t){return L(t,e[t])});delete w[e],"function"==typeof r?(L[e]=r,Object.defineProperty(w,e,{configurable:!0,value:function(t){var e=$(this),n=T(t)?r(N(t,arguments)):r.apply(null,arguments);return f(e.__style,n.__style),e}})):(L[e]=D(r),Object.defineProperty(w,e,{configurable:!0,get:function(){var t=$(this);return f(t.__style,D(r)),t}}))}function R(t){var e=function(t){return t.charAt(0)+(t.match(/([A-Z])/g)||[]).join("").toLowerCase()}(t),n=r[e]&&r[e]!==t?t:e;return k[n]=t,n}Object.defineProperties(w,{__style:{configurable:!0,writable:!0,value:{}},valueOf:{configurable:!0,writable:!0,value:function(){return"."+this.class}},toString:{configurable:!0,writable:!0,value:function(){return this.class}}}),S("setDebug",function(t){v=t}),S("$keyframes",function(n){var t=Object.keys(n).reduce(function(t,e){return t+e+"{"+d(D(n[e]))+"}"},"");if(t in B)return B[t];var e=b+M++;return A("@keyframes "+(B[t]=e)+"{"+t+"}"),e}),S("$media",function(t,e){var n=$(this);t&&(n.__style["@media "+t]=D(e));return n}),S("$import",function(t){t&&!/^('|"|url\('|url\(")/.test(t)&&(t='"'+t+'"');t&&A("@import "+t+";",0);return $(this)}),S("$nest",function(e,t){var n=$(this);1===arguments.length?Object.keys(e).forEach(function(t){return E(n.__style,t,e[t])}):e&&E(n.__style,e,t);return n}),S("getSheet",function(){var t=O.join("");return O=[],j=Object.create(null,{}),x=0,t}),S("getRules",function(){return O}),S("helper",L),S("css",function(e,t){1===arguments.length?Object.keys(e).forEach(function(t){return C(t,e[t])}):C(e,t);return $(this)}),S("classPrefix",b),i.forEach(function(t){var e=t.match(u);if(e){var n=function(t){return t.charAt(0).toLowerCase()+t.slice(1)}(t.replace(u,"$2"));if(-1===i.indexOf(n))return"flexDirection"===n&&(c.flex="-"+e[1].toLowerCase()+"-flex"),S(n,P(o[n]=t)),void S(R(n),w[n])}S(t,P(t)),S(R(t),w[t])}),S("content",function(t){var e=$(this);return null==t||!1===t?delete e.__style.content:e.__style.content='"'+t+'"',e}),Object.defineProperty(w,"class",{set:function(t){this.__class=t},get:function(){return this.__class||function(t){var e=JSON.stringify(t);if(e in j)return j[e];for(var n=b+ ++x,r=p(t,"."+n),i=0;i<r.length;i++)A(r[i]);return j[e]=n}(this.__style)}}),[":active",":any",":checked",":default",":disabled",":empty",":enabled",":first",":first-child",":first-of-type",":fullscreen",":focus",":hover",":indeterminate",":in-range",":invalid",":last-child",":last-of-type",":left",":link",":only-child",":only-of-type",":optional",":out-of-range",":read-only",":read-write",":required",":right",":root",":scope",":target",":valid",":visited",":dir",":lang",":not",":nth-child",":nth-last-child",":nth-last-of-type",":nth-of-type","::after","::before","::first-letter","::first-line","::selection","::backdrop","::placeholder","::marker","::spelling-error","::grammar-error"].forEach(function(r){return S("$"+s(r.replace(/:/g,"")),function(t,e){var n=$(this);return T(t)?n.__style[r]=D.apply(null,arguments):(t||e)&&(n.__style[r+(e?"("+t+")":"")]=D(e||t)),n})}),w.helper("$animate",function(t,e){return w.animation(w.$keyframes(e)+" "+t)});var z=t(function(t){var c,u="";return t.trim().replace(/\/\*[\s\S]*?\*\/|([^:]|^)\/\/.*(?![^("]*[)"])/g,"").split(/;(?![^("]*[)"])|\n/).reduce(function(t,e){if(!e)return t;var n=(e=u+e.trim()).replace(/[ :]+/," ").split(" "),r=n[0],i=n.slice(1);if(u=","===e.charAt(e.length-1)?e:"")return t;if(","===e.charAt(0)||!a.test(r))return t[c]+=" "+e,t;if(!r)return t;var o="-"===r.charAt(0)&&"-"===r.charAt(1)?r:s(r);return c=k[o]||o,r in L?f(t,"function"==typeof L[r]?L[r].apply(L,i).__style:L[r]):o in L?f(t,"function"==typeof L[o]?L[o].apply(L,i).__style:L[o]):0<i.length&&l(t,c,i),t},{})}),M=0,B={};function D(t,e){var n;return"string"==typeof t?"string"==typeof e||"number"==typeof e?((n={})[t]=e,n):z(t):T(t)?z(N(t,arguments)):t.__style||function r(i){return Object.keys(i).reduce(function(t,e){var n=i[e];return e=k[e]||e,(n||0===n||""===n)&&("content"===e&&'"'!==n.charAt(0)?t[e]='"'+n+'"':"object"==typeof n?t[e]=r(n):l(t,e,n)),t},{})}(t)}function T(t){return Array.isArray(t)&&"string"==typeof t[0]}function N(t,e){for(var n="",r=0;r<t.length;r++)n+=t[r]+(e[r+1]||0===e[r+1]?e[r+1]:"");return n}return w});
//# sourceMappingURL=bss.min.js.map
## v[Unreleased]
## v1.6.3 -
- Fixed multiple identical selectors used in $nest
## v1.6.2 -
- Just braces security update (part of rollup)
## v1.6.1 -

@@ -4,0 +10,0 @@ - Allow hyphenated names for helpers

@@ -168,8 +168,10 @@ /* eslint no-invalid-this: 0 */

function addNest(style, selector, properties) {
style[
selector.split(selectorSplit).map(x => {
x = x.trim()
return (x.charAt(0) === ':' || x.charAt(0) === '[' ? '' : ' ') + x
}).join(',&')
] = parse(properties)
const prop = selector.split(selectorSplit).map(x => {
x = x.trim()
return (x.charAt(0) === ':' || x.charAt(0) === '[' ? '' : ' ') + x
}).join(',&')
prop in style
? assign(style[prop], parse(properties))
: style[prop] = parse(properties)
}

@@ -176,0 +178,0 @@

{
"name": "bss",
"version": "1.6.2",
"version": "1.6.3",
"description": "Better Style Sheets",

@@ -5,0 +5,0 @@ "main": "bss.js",

@@ -242,2 +242,9 @@ const o = require('ospec')

o('nest multiple identical selectors', function() {
const cls = b.$nest('p.broken', 'background: purple')
.$nest('p.broken', 'color: yellow').class
o(b.getSheet()).equals(`.${cls} p.broken{background:purple;color:yellow;}`)
})
o('add px', function() {

@@ -244,0 +251,0 @@ o(b`w 1`.style).deepEquals({ width: '1px' })

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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