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

@fower/parser

Package Overview
Dependencies
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fower/parser - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

11

dist/parser.cjs.development.js

@@ -145,3 +145,3 @@ 'use strict';

if (props.className) {
if (props != null && props.className) {
for (var _iterator = _createForOfIteratorHelperLoose(props.className.split(/\s+/)), _step; !(_step = _iterator()).done;) {

@@ -518,5 +518,6 @@ var item = _step.value;

return this.atoms.reduce(function (result, atom) {
var style = this.atoms.reduce(function (result, atom) {
if (!atom.isValid) return result; // not style type
var colors = store.store.theme.colors;
var style = Object.entries(atom.style).reduce(function (c, _ref3) {

@@ -527,6 +528,10 @@ var _extends3;

value = _ref3[1];
return _extends({}, c, (_extends3 = {}, _extends3[key] = _this2.formatCssValue(utils.jsKeyToCssKey(key), value), _extends3));
var cssValue = _this2.formatCssValue(utils.jsKeyToCssKey(key), colors[value] || value);
return _extends({}, c, (_extends3 = {}, _extends3[key] = cssValue, _extends3));
}, {});
return _extends({}, result, style);
}, {});
return style;
}

@@ -533,0 +538,0 @@ /**

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@fower/atom"),t=require("@fower/store"),r=require("@fower/color-helper"),n=require("@fower/sheet"),o=require("@fower/css-object-processor"),s=require("@fower/utils");function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function u(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return a(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}var l=new Map,c=/(-columns|(^|[^e]-)padding|[^t]-spacing|l-align|rows|(^|(^border|[dkmnptx]|le|ne)-)width|^border|tom|[ek]-start|(o|[^e]-du)ration|us|(^|[^tv]-)left|(^|-)top|tance|rgin|e-offset|(er|g|n|t)-block|(^|[^tv]-)right|basis|[gnt]-inline|gap|(^|[^e]-)height|ness|(^|[^p]-)inset|[ek]-end|elay|tline|ve|dent|-rotate|n-rule|(c|ck|d|ne|t)-size)$/,d=["children","onClick","onChange","onBlur","className","placeholder"];exports.Parser=function(){function a(e){void 0===e&&(e={}),this.props=e,this.atoms=[],this.traverseProps(e)}var f,m=a.prototype;return m.traverseProps=function(r){if(!s.isEmptyObj(r)){var n=this.config,o=n.pseudos,a=void 0===o?[]:o,l=n.theme||{},c=l.breakpoints,f=l.modes,m=Object.keys(c),p=f||[],h=a,v=r.excludedProps,y=void 0===v?[]:v,b=Object.entries(r);if(r.className)for(var g,S=u(r.className.split(/\s+/));!(g=S()).done;)b.push([g.value,!0]);for(var j=0,k=b;j<k.length;j++){var A=k[j],C=A[0],O=A[1];if(!y.includes(C)&&!d.includes(C)&&this.isValidProp(C,O))if("css"!==C){if(C.startsWith("_")){var N=C.replace(/^_/,""),w=Array.isArray(O)?O.reduce((function(e,t){var r;return i({},e,((r={})[t]=!0,r))}),{}):O;if(p.includes(N)){this.parseCSSObject(w,{mode:N});continue}if(m.includes(N)){this.parseCSSObject(w,{breakpoint:c[N]});continue}if(h.includes(N)){this.parseCSSObject(w,{pseudo:":"+N});continue}}var P=t.store.compositions.get(C);if(P){this.parseCSSObject(P,{});var K=new e.Atom({propKey:C,propValue:O});K.handled=!0,K.style={},K.createClassName(t.store.config.prefix),this.addAtom(K)}else{var x=new e.Atom({propKey:C,propValue:O});try{this.mutateAtom(x),x.handled&&this.addAtom(x)}catch(e){continue}}}else this.parseCSSObject(O)}for(var V,T=u(this.plugins);!(V=T()).done;){var q=V.value;q.afterAtomStyleCreate&&q.afterAtomStyleCreate(this)}}},m.formatCssValue=function(e,r){if(!c.test(e))return r;var n;if(s.isPercentNumber(String(r)))return String(r).replace("p","%");if(!s.isNumber(r))return r;if((n=Number(r))<1&&n>0)return 100*n+"%";var o=t.store.config;return"none"!==o.unit?o.transformUnit?o.transformUnit(n):r+t.store.config.unit:n},m.styleToString=function(e,n){var o=this,i=n.important,a=n.colorPostfix;return Object.entries(e).reduce((function(e,n){var u=n[1],l=s.jsKeyToCssKey(n[0]),c=i?" !important":"",d=t.store.theme.colors;return e+(l+": ")+(u=a?r.formatColor(d[u]||u,a):o.formatCssValue(l,d[u]||u))+c+";"}),"")},m.addAtom=function(e){l.get(e.id)||l.set(e.id,e);for(var t=this.config.theme.colors.modes,r=0,n=Object.entries(void 0===t?{}:t);r<n.length;r++){var o=n[r],s=o[0],a=o[1];if(e.style){var u=Object.entries(e.style);if(u.length){var c=u[0],d=c[0],f=a[c[1]];if(f){var m="--"+s,p=JSON.parse(JSON.stringify(e));p.className=e.className+m,p.key=e.key+m,p.id=e.id+m,p.meta=i({mode:s},e.meta),p.style[d]=f,this.atoms.push(p)}}}}this.atoms.push(e)},m.isValidProp=function(e,t){return"css"===e||!!e.startsWith("_")||!!["string","boolean","number","undefined"].includes(typeof t)},m.mutateAtom=function(e){for(var r,n=u(this.plugins);!(r=n()).done;){var o=r.value;null!=o.isMatch&&o.isMatch(e.key)&&o.beforeHandleAtom&&(e=o.beforeHandleAtom(e,this))}var s=l.get(e.id);if(s)throw this.addAtom(s),new Error("atom is cached, add to this.atoms derectly, no need to mutate");if((e=e.preprocessAtom(t.store.config)).handled)throw this.addAtom(e),new Error("atom is handled, add to this.atoms derectly ,no need to mutate");for(var i,a=u(this.plugins);!(i=a()).done;){var c=i.value;if(null!=c.isMatch&&c.isMatch(e.key)){c.beforeHandleAtom&&(e=c.beforeHandleAtom(e,this)),c.handleAtom&&(e=null==c.handleAtom?void 0:c.handleAtom(e,this)),e.createClassName(t.store.config.prefix),e.handled=!0;break}}},m.parseCSSObject=function(t,r){void 0===r&&(r={});for(var n,i=o.parse(t),a=s.objectToClassName(t),l=u(i);!(n=l()).done;){var c=n.value,d=c.selector,f=c.selectorType,m=c.style,p=Object.entries(m);if(p.length){var h=p[0],v={propKey:h[0],propValue:h[1],meta:r};"pseudo"===f&&v.meta&&(v.meta.pseudo=d),"child"===f&&v.meta&&(v.meta.childSelector=d);var y=new e.Atom(v),b="void"===f;try{this.mutateAtom(y)}catch(e){continue}y.style||(y.style=m,y.id=s.objectToClassName({style:m}),y.className=b?s.objectToClassName(m):a,y.handled=!0),this.addAtom(y)}}},m.makeResponsiveStyle=function(e,t){return"@media (min-width: "+e+") {"+t+"}"},m.getClassNames=function(){var e=[];this.atoms.reduce((function(t,r){var n=t.findIndex((function(e){return e.styleKeysHash===r.styleKeysHash}));return r.isValid?(-1===n?(e.push(r.className),t=[].concat(t,[r])):(t.splice(n,1,r),e.splice(n,1,r.className)),t):t}),[]);var t=this.props.className,r=(void 0===t?"":t).split(/\s+/).filter((function(t){return!e.includes(t)&&!!t}));return e=e.concat(r),this.hasResponsive&&e.unshift(this.uniqueClassName),e},m.toStyle=function(){var e=this;return this.atoms.reduce((function(t,r){if(!r.isValid)return t;var n=Object.entries(r.style).reduce((function(t,r){var n,o=r[0],a=r[1];return i({},t,((n={})[o]=e.formatCssValue(s.jsKeyToCssKey(o),a),n))}),{});return i({},t,n)}),{})},m.toRules=function(e){var t=this;void 0===e&&(e=!1);var r=this.config.theme.modePrefix,n=void 0===r?"":r,o=[];this.atoms=this.atoms.sort((function(e,t){return parseInt(t.meta.breakpoint||"0")-parseInt(e.meta.breakpoint||"0")}));for(var i,a=function(){var r=i.value,a="",u=r.className,l=r.style,c=void 0===l?{}:l;if(!r.isValid)return"continue";if(s.isEmptyObj(c))return"continue";if(!e&&r.inserted)return"continue";r.inserted=!0;var d=r.meta,f=d.pseudo,m=d.mode,p=d.breakpoint,h=void 0===p?"":p,v=d.childSelector,y=(t.atoms.find((function(e){return e.styleKeys===r.styleKeys&&(r.meta.breakpoint||e.meta.breakpoint)}))||r.meta.breakpoint?"."+t.uniqueClassName:"")+"."+u;f&&(y+=f),m&&(y="."+n+m+" "+y),v&&(y=y+" "+v),a=y+" { "+t.styleToString(c,r.meta)+" }",h&&(a=t.makeResponsiveStyle(h,a)),o.push(a)},l=u(this.atoms);!(i=l()).done;)a();return o},m.getParsedProps=function(){var e=this.props,t=this.atoms;return s.isEmptyObj(e)?{}:Object.entries(e).reduce((function(e,r){var n=r[0],o=r[1];return t.find((function(e){return[e.propKey,e.key,e.id,"css"].includes(n)}))||(e[n]=o),e}),{})},m.insertRule=function(){var e=this.toRules();n.styleSheet.insertStyles(e)},(f=[{key:"uniqueClassName",get:function(){return s.objectToClassName(Object.keys(this.props))}},{key:"hasResponsive",get:function(){return!!this.atoms.find((function(e){return!!e.meta.breakpoint}))}},{key:"config",get:function(){return t.store.config}},{key:"plugins",get:function(){return t.store.config.plugins}}])&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(a.prototype,f),a}(),exports.atomCache=l;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@fower/atom"),t=require("@fower/store"),r=require("@fower/color-helper"),n=require("@fower/sheet"),o=require("@fower/css-object-processor"),s=require("@fower/utils");function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function u(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return a(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}var l=new Map,c=/(-columns|(^|[^e]-)padding|[^t]-spacing|l-align|rows|(^|(^border|[dkmnptx]|le|ne)-)width|^border|tom|[ek]-start|(o|[^e]-du)ration|us|(^|[^tv]-)left|(^|-)top|tance|rgin|e-offset|(er|g|n|t)-block|(^|[^tv]-)right|basis|[gnt]-inline|gap|(^|[^e]-)height|ness|(^|[^p]-)inset|[ek]-end|elay|tline|ve|dent|-rotate|n-rule|(c|ck|d|ne|t)-size)$/,d=["children","onClick","onChange","onBlur","className","placeholder"];exports.Parser=function(){function a(e){void 0===e&&(e={}),this.props=e,this.atoms=[],this.traverseProps(e)}var f,m=a.prototype;return m.traverseProps=function(r){if(!s.isEmptyObj(r)){var n=this.config,o=n.pseudos,a=void 0===o?[]:o,l=n.theme||{},c=l.breakpoints,f=l.modes,m=Object.keys(c),p=f||[],h=a,v=r.excludedProps,y=void 0===v?[]:v,b=Object.entries(r);if(null!=r&&r.className)for(var g,S=u(r.className.split(/\s+/));!(g=S()).done;)b.push([g.value,!0]);for(var j=0,k=b;j<k.length;j++){var A=k[j],C=A[0],O=A[1];if(!y.includes(C)&&!d.includes(C)&&this.isValidProp(C,O))if("css"!==C){if(C.startsWith("_")){var N=C.replace(/^_/,""),w=Array.isArray(O)?O.reduce((function(e,t){var r;return i({},e,((r={})[t]=!0,r))}),{}):O;if(p.includes(N)){this.parseCSSObject(w,{mode:N});continue}if(m.includes(N)){this.parseCSSObject(w,{breakpoint:c[N]});continue}if(h.includes(N)){this.parseCSSObject(w,{pseudo:":"+N});continue}}var P=t.store.compositions.get(C);if(P){this.parseCSSObject(P,{});var K=new e.Atom({propKey:C,propValue:O});K.handled=!0,K.style={},K.createClassName(t.store.config.prefix),this.addAtom(K)}else{var x=new e.Atom({propKey:C,propValue:O});try{this.mutateAtom(x),x.handled&&this.addAtom(x)}catch(e){continue}}}else this.parseCSSObject(O)}for(var V,T=u(this.plugins);!(V=T()).done;){var q=V.value;q.afterAtomStyleCreate&&q.afterAtomStyleCreate(this)}}},m.formatCssValue=function(e,r){if(!c.test(e))return r;var n;if(s.isPercentNumber(String(r)))return String(r).replace("p","%");if(!s.isNumber(r))return r;if((n=Number(r))<1&&n>0)return 100*n+"%";var o=t.store.config;return"none"!==o.unit?o.transformUnit?o.transformUnit(n):r+t.store.config.unit:n},m.styleToString=function(e,n){var o=this,i=n.important,a=n.colorPostfix;return Object.entries(e).reduce((function(e,n){var u=n[1],l=s.jsKeyToCssKey(n[0]),c=i?" !important":"",d=t.store.theme.colors;return e+(l+": ")+(u=a?r.formatColor(d[u]||u,a):o.formatCssValue(l,d[u]||u))+c+";"}),"")},m.addAtom=function(e){l.get(e.id)||l.set(e.id,e);for(var t=this.config.theme.colors.modes,r=0,n=Object.entries(void 0===t?{}:t);r<n.length;r++){var o=n[r],s=o[0],a=o[1];if(e.style){var u=Object.entries(e.style);if(u.length){var c=u[0],d=c[0],f=a[c[1]];if(f){var m="--"+s,p=JSON.parse(JSON.stringify(e));p.className=e.className+m,p.key=e.key+m,p.id=e.id+m,p.meta=i({mode:s},e.meta),p.style[d]=f,this.atoms.push(p)}}}}this.atoms.push(e)},m.isValidProp=function(e,t){return"css"===e||!!e.startsWith("_")||!!["string","boolean","number","undefined"].includes(typeof t)},m.mutateAtom=function(e){for(var r,n=u(this.plugins);!(r=n()).done;){var o=r.value;null!=o.isMatch&&o.isMatch(e.key)&&o.beforeHandleAtom&&(e=o.beforeHandleAtom(e,this))}var s=l.get(e.id);if(s)throw this.addAtom(s),new Error("atom is cached, add to this.atoms derectly, no need to mutate");if((e=e.preprocessAtom(t.store.config)).handled)throw this.addAtom(e),new Error("atom is handled, add to this.atoms derectly ,no need to mutate");for(var i,a=u(this.plugins);!(i=a()).done;){var c=i.value;if(null!=c.isMatch&&c.isMatch(e.key)){c.beforeHandleAtom&&(e=c.beforeHandleAtom(e,this)),c.handleAtom&&(e=null==c.handleAtom?void 0:c.handleAtom(e,this)),e.createClassName(t.store.config.prefix),e.handled=!0;break}}},m.parseCSSObject=function(t,r){void 0===r&&(r={});for(var n,i=o.parse(t),a=s.objectToClassName(t),l=u(i);!(n=l()).done;){var c=n.value,d=c.selector,f=c.selectorType,m=c.style,p=Object.entries(m);if(p.length){var h=p[0],v={propKey:h[0],propValue:h[1],meta:r};"pseudo"===f&&v.meta&&(v.meta.pseudo=d),"child"===f&&v.meta&&(v.meta.childSelector=d);var y=new e.Atom(v),b="void"===f;try{this.mutateAtom(y)}catch(e){continue}y.style||(y.style=m,y.id=s.objectToClassName({style:m}),y.className=b?s.objectToClassName(m):a,y.handled=!0),this.addAtom(y)}}},m.makeResponsiveStyle=function(e,t){return"@media (min-width: "+e+") {"+t+"}"},m.getClassNames=function(){var e=[];this.atoms.reduce((function(t,r){var n=t.findIndex((function(e){return e.styleKeysHash===r.styleKeysHash}));return r.isValid?(-1===n?(e.push(r.className),t=[].concat(t,[r])):(t.splice(n,1,r),e.splice(n,1,r.className)),t):t}),[]);var t=this.props.className,r=(void 0===t?"":t).split(/\s+/).filter((function(t){return!e.includes(t)&&!!t}));return e=e.concat(r),this.hasResponsive&&e.unshift(this.uniqueClassName),e},m.toStyle=function(){var e=this;return this.atoms.reduce((function(r,n){if(!n.isValid)return r;var o=t.store.theme.colors,a=Object.entries(n.style).reduce((function(t,r){var n,a=r[0],u=r[1],l=e.formatCssValue(s.jsKeyToCssKey(a),o[u]||u);return i({},t,((n={})[a]=l,n))}),{});return i({},r,a)}),{})},m.toRules=function(e){var t=this;void 0===e&&(e=!1);var r=this.config.theme.modePrefix,n=void 0===r?"":r,o=[];this.atoms=this.atoms.sort((function(e,t){return parseInt(t.meta.breakpoint||"0")-parseInt(e.meta.breakpoint||"0")}));for(var i,a=function(){var r=i.value,a="",u=r.className,l=r.style,c=void 0===l?{}:l;if(!r.isValid)return"continue";if(s.isEmptyObj(c))return"continue";if(!e&&r.inserted)return"continue";r.inserted=!0;var d=r.meta,f=d.pseudo,m=d.mode,p=d.breakpoint,h=void 0===p?"":p,v=d.childSelector,y=(t.atoms.find((function(e){return e.styleKeys===r.styleKeys&&(r.meta.breakpoint||e.meta.breakpoint)}))||r.meta.breakpoint?"."+t.uniqueClassName:"")+"."+u;f&&(y+=f),m&&(y="."+n+m+" "+y),v&&(y=y+" "+v),a=y+" { "+t.styleToString(c,r.meta)+" }",h&&(a=t.makeResponsiveStyle(h,a)),o.push(a)},l=u(this.atoms);!(i=l()).done;)a();return o},m.getParsedProps=function(){var e=this.props,t=this.atoms;return s.isEmptyObj(e)?{}:Object.entries(e).reduce((function(e,r){var n=r[0],o=r[1];return t.find((function(e){return[e.propKey,e.key,e.id,"css"].includes(n)}))||(e[n]=o),e}),{})},m.insertRule=function(){var e=this.toRules();n.styleSheet.insertStyles(e)},(f=[{key:"uniqueClassName",get:function(){return s.objectToClassName(Object.keys(this.props))}},{key:"hasResponsive",get:function(){return!!this.atoms.find((function(e){return!!e.meta.breakpoint}))}},{key:"config",get:function(){return t.store.config}},{key:"plugins",get:function(){return t.store.config.plugins}}])&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(a.prototype,f),a}(),exports.atomCache=l;
//# sourceMappingURL=parser.cjs.production.min.js.map

@@ -141,3 +141,3 @@ import { Atom } from '@fower/atom';

if (props.className) {
if (props != null && props.className) {
for (var _iterator = _createForOfIteratorHelperLoose(props.className.split(/\s+/)), _step; !(_step = _iterator()).done;) {

@@ -514,5 +514,6 @@ var item = _step.value;

return this.atoms.reduce(function (result, atom) {
var style = this.atoms.reduce(function (result, atom) {
if (!atom.isValid) return result; // not style type
var colors = store.theme.colors;
var style = Object.entries(atom.style).reduce(function (c, _ref3) {

@@ -523,6 +524,10 @@ var _extends3;

value = _ref3[1];
return _extends({}, c, (_extends3 = {}, _extends3[key] = _this2.formatCssValue(jsKeyToCssKey(key), value), _extends3));
var cssValue = _this2.formatCssValue(jsKeyToCssKey(key), colors[value] || value);
return _extends({}, c, (_extends3 = {}, _extends3[key] = cssValue, _extends3));
}, {});
return _extends({}, result, style);
}, {});
return style;
}

@@ -529,0 +534,0 @@ /**

{
"name": "@fower/parser",
"version": "1.2.0",
"version": "1.3.0",
"license": "MIT",

@@ -24,9 +24,9 @@ "main": "dist/index.js",

"dependencies": {
"@fower/atom": "^1.2.0",
"@fower/css-object-processor": "^1.2.0",
"@fower/sheet": "^1.2.0",
"@fower/store": "^1.2.0",
"@fower/utils": "^1.2.0"
"@fower/atom": "^1.3.0",
"@fower/css-object-processor": "^1.3.0",
"@fower/sheet": "^1.3.0",
"@fower/store": "^1.3.0",
"@fower/utils": "^1.3.0"
},
"gitHead": "a86822a8163a224c9ddc9ef991e348c085814a12"
"gitHead": "63714c0af94f7612dca4656128fa5d09f5547453"
}

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