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

tcomb

Package Overview
Dependencies
Maintainers
1
Versions
74
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tcomb - npm Package Compare versions

Comparing version 0.3.4 to 0.3.5

4

CHANGELOG.md

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

# v0.3.5
- Add $merge command, fix #74
# v0.3.4

@@ -2,0 +6,0 @@

@@ -108,3 +108,9 @@ (function (root, factory) {

s: function formatString(x) { return String(x); },
j: function formatJSON(x) { return JSON.stringify(x, replacer); }
j: function formatJSON(x) {
try {
return JSON.stringify(x, replacer);
} catch (e) {
return String(x);
}
}
};

@@ -189,2 +195,5 @@

return elements.concat(arr);
},
'$merge': function (obj, value) {
return mixin(mixin({}, value), obj, true);
}

@@ -191,0 +200,0 @@ };

2

package.json
{
"name": "tcomb",
"version": "0.3.4",
"version": "0.3.5",
"description": "Pragmatic runtime type checking for JavaScript",

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

@@ -546,2 +546,3 @@ > "Si vis pacem, para bellum" (Vegetius 5th century)

- $apply
- $merge

@@ -548,0 +549,0 @@ ### Removing a value form a dict

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

// tcomb 0.3.4
// tcomb 0.3.5
// https://github.com/gcanti/tcomb
// (c) 2014 Giulio Canti <giulio.canti@gmail.com>
// tcomb may be freely distributed under the MIT license.
!function(a,b){"use strict";"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.t=b()}(this,function(){"use strict";function a(a){throw v=!0,new Error(a)}function b(a){w.onFail(a)}function c(a){if(a!==!0){var c=x.call(arguments,1),d=c[0]?e.apply(null,c):"assert failed";b(d)}}function d(a,b,d){if(z.is(b))return a;for(var e in b)b.hasOwnProperty(e)&&(d!==!0&&c(!a.hasOwnProperty(e),"cannot overwrite property %s",e),a[e]=b[e]);return a}function e(){function a(a,f){if("%%"===a)return"%";if(d>=c)return a;var g=e.formatters[f];return g?g(b[d++]):a}var b=x.call(arguments),c=b.length,d=1,f=b[0],g=f.replace(/%([a-z%])/g,a);return c>d&&(g+=" "+b.slice(d).join(" ")),g}function f(a,b){return"function"==typeof b?e("Func",b.name):b}function g(a){return c(J.is(a),"Invalid argument `type` of value `%j` supplied to `getName()`, expected a type.",a),a.meta.name}function h(a){return c(J.is(a),"Invalid argument `type` of value `%j` supplied to `geKind()`, expected a type.",a),a.meta.kind}function i(a,b){c(!(a instanceof b),"Operator `new` is forbidden for `%s`",g(b))}function j(a){return D.is(a)?a.concat():E.is(a)?d({},a):a}function k(a,b){c(E.is(b));var d=j(a);for(var e in b)if(b.hasOwnProperty(e)){if(k.commands.hasOwnProperty(e))return c(1===Object.keys(b).length),k.commands[e](b[e],d);d[e]=k(d[e],b[e])}return d}function l(a,b){function d(e){return i(this,d),c(b(e),"Invalid `%s` supplied to `%s`",e,a),e}return c("string"==typeof a,"Invalid argument `name` supplied to `irriducible()`"),c("function"==typeof b,"Invalid argument `is` supplied to `irriducible()`"),d.meta={kind:"irriducible",name:a},d.displayName=a,d.is=b,d}function m(a,b){function e(d,f){if(e.is(d))return d;if(c(E.is(d),"Invalid `%s` supplied to `%s`, expected an `Obj`",d,b),!(this instanceof e))return new e(d,f);for(var g in a)if(a.hasOwnProperty(g)){var h=a[g],i=d[g];this[g]=h(i,f)}f!==!0&&Object.freeze(this)}return c(t(A,J).is(a),"Invalid argument `props` supplied to `struct()`"),c(o(A).is(b),"Invalid argument `name` supplied to `struct()`"),b=b||"struct",e.meta={kind:"struct",props:a,name:b},e.displayName=b,e.is=function(a){return a instanceof e},e.update=function(a,b,c){return new e(k(a,b,c))},e.extend=function(b,c){var f=m([a].concat(b).reduce(d,{}),c);return d(f.prototype,e.prototype),f},e}function n(a,b){function d(a,e){i(this,d),c(F.is(d.dispatch),"unimplemented %s.dispatch()",b);var f=d.dispatch(a);return c(J.is(f),"%s.dispatch() returns no type",b),f(a,e)}c(s(J).is(a),"Invalid argument `types` supplied to `union()`");var f=a.length;return c(f>=2,"Invalid argument `types` supplied to `union()`"),c(o(A).is(b),"Invalid argument `name` supplied to `union()`"),b=b||e("union([%s])",a.map(g).join(", ")),d.meta={kind:"union",types:a,name:b},d.displayName=b,d.is=function(b){return a.some(function(a){return a.is(b)})},d.dispatch=function(b){for(var c=0,d=a.length;d>c;c++)if(a[c].is(b))return a[c]},d}function o(a,b){function d(b,c){return i(this,d),z.is(b)?null:a(b,c)}return c(J.is(a),"Invalid argument `type` supplied to `maybe()`"),"maybe"===h(a)?a:(c(z.is(b)||A.is(b),"Invalid argument `name` supplied to `maybe()`"),b=b||e("maybe(%s)",g(a)),d.meta={kind:"maybe",type:a,name:b},d.displayName=b,d.is=function(b){return z.is(b)||a.is(b)},d)}function p(a,b){function d(a){return i(this,d),c(d.is(a),"Invalid `%s` supplied to `%s`, expected one of %j",a,b,e),a}c(E.is(a),"Invalid argument `map` supplied to `enums()`"),c(o(A).is(b),"Invalid argument `name` supplied to `enums()`"),b=b||"enums";var e=Object.keys(a);return d.meta={kind:"enums",map:a,name:b},d.displayName=b,d.is=function(b){return A.is(b)&&a.hasOwnProperty(b)},d}function q(a,b){function d(e,g){if(c(D.is(e)&&e.length===f,"Invalid `%s` supplied to `%s`, expected an `Arr` of length `%s`",e,b,f),d.isTuple(e))return e;for(var h=[],i=0;f>i;i++){var j=a[i],k=e[i];h.push(j(k,g))}return g!==!0&&Object.freeze(h),h}c(s(J).is(a),"Invalid argument `types` supplied to `tuple()`");var f=a.length;return c(o(A).is(b),"Invalid argument `name` supplied to `tuple()`"),b=b||e("tuple([%s])",a.map(g).join(", ")),d.meta={kind:"tuple",types:a,length:f,name:b},d.displayName=b,d.isTuple=function(b){return a.every(function(a,c){return a.is(b[c])})},d.is=function(a){return D.is(a)&&a.length===f&&d.isTuple(a)},d.update=function(a,b,c){return d(k(a,b,c))},d}function r(a,b,d){function f(e,g){i(this,f);var j=a(e,g);return c(b(j),"Invalid `%s` supplied to `%s`, %s",e,d,h),j}c(J.is(a),"Invalid argument `type` supplied to `subtype()`"),c(F.is(b),"Invalid argument `predicate` supplied to `subtype()`"),c(o(A).is(d),"Invalid argument `name` supplied to `subtype()`"),d=d||e("subtype(%s)",g(a));var h=b.__doc__||e("insert a valid value for %s",b.name||"the subtype");return f.meta={kind:"subtype",type:a,predicate:b,name:d},f.displayName=d,f.is=function(c){return a.is(c)&&b(c)},f.update=function(a,b,c){return f(k(a,b,c))},f}function s(a,b){function d(e,f){if(c(D.is(e),"Invalid `%s` supplied to `%s`, expected an `Arr`",e,b),d.isList(e))return e;for(var g=[],h=0,i=e.length;i>h;h++){var j=e[h];g.push(a(j,f))}return f!==!0&&Object.freeze(g),g}return c(J.is(a),"Invalid argument `type` supplied to `list()`"),c(o(A).is(b),"Invalid argument `name` supplied to `list()`"),b=b||e("list(%s)",g(a)),d.meta={kind:"list",type:a,name:b},d.displayName=b,d.isList=function(b){return b.every(a.is)},d.is=function(a){return D.is(a)&&d.isList(a)},d.update=function(a,b,c){return d(k(a,b,c))},d}function t(a,b,d){function f(e,g){if(c(E.is(e),"Invalid `%s` supplied to `%s`, expected an `Obj`",e,d),f.isDict(e))return e;var h={};for(var i in e)if(e.hasOwnProperty(i)){i=a(i);var j=e[i];h[i]=b(j,g)}return g!==!0&&Object.freeze(h),h}return c(J.is(a),"Invalid argument `domain` supplied to `dict()`"),c(J.is(b),"Invalid argument `codomain` supplied to `dict()`"),c(o(A).is(d),"Invalid argument `name` supplied to `dict()`"),d=d||e("dict(%s, %s)",g(a),g(b)),f.meta={kind:"dict",domain:a,codomain:b,name:d},f.displayName=d,f.isDict=function(c){for(var d in c)if(c.hasOwnProperty(d)&&(!a.is(d)||!b.is(c[d])))return!1;return!0},f.is=function(a){return E.is(a)&&f.isDict(a)},f.update=function(a,b,c){return f(k(a,b,c))},f}function u(a,b,d){function f(a){return u.is(a)||(a=f.of(a)),c(f.is(a),"Invalid `%s` supplied to `%s`",a,d),a}a=D.is(a)?a:[a],c(s(J).is(a),"Invalid argument `domain` supplied to `func()`"),c(J.is(b),"Invalid argument `codomain` supplied to `func()`"),d=d||e("func([%s], %s)",a.map(g).join(", "),g(b));var h=a.length;return f.meta={kind:"func",domain:a,codomain:b,name:d},f.displayName=d,f.is=function(c){return u.is(c)&&c.func.domain.length===a.length&&c.func.domain.every(function(b,c){return b===a[c]})&&c.func.codomain===b},f.of=function(d){function e(){var c=x.call(arguments),e=Math.min(c.length,h);if(c=q(a.slice(0,e))(c),e===h){var f=d.apply(this,c);return f=b(f)}var g=Function.prototype.bind.apply(d,[this].concat(c)),i=u(a.slice(e),b);return i.of(g)}return c("function"==typeof d),f.is(d)?d:(e.func={domain:a,codomain:b,f:d},e)},f}var v=!1,w={onFail:a},x=Array.prototype.slice;e.formatters={s:function(a){return String(a)},j:function(a){return JSON.stringify(a,f)}},k.commands={$apply:function(a,b){return c(F.is(a)),a(b)},$push:function(a,b){return c(D.is(a)),c(D.is(b)),b.concat(a)},$remove:function(a,b){c(D.is(a)),c(E.is(b));for(var d=0,e=a.length;e>d;d++)delete b[a[d]];return b},$set:function(a){return a},$splice:function(a,b){return c(s(D).is(a)),c(D.is(b)),a.reduce(function(a,b){return a.splice.apply(a,b),a},b)},$swap:function(a,b){c(E.is(a)),c(B.is(a.from)),c(B.is(a.to)),c(D.is(b));var d=b[a.to];return b[a.to]=b[a.from],b[a.from]=d,b},$unshift:function(a,b){return c(D.is(a)),c(D.is(b)),a.concat(b)}};var y=l("Any",function(){return!0}),z=l("Nil",function(a){return null===a||void 0===a}),A=l("Str",function(a){return"string"==typeof a}),B=l("Num",function(a){return"number"==typeof a&&isFinite(a)&&!isNaN(a)}),C=l("Bool",function(a){return a===!0||a===!1}),D=l("Arr",function(a){return a instanceof Array}),E=l("Obj",function(a){return!z.is(a)&&"object"==typeof a&&!D.is(a)}),F=l("Func",function(a){return"function"==typeof a}),G=l("Err",function(a){return a instanceof Error}),H=l("Re",function(a){return a instanceof RegExp}),I=l("Dat",function(a){return a instanceof Date}),J=l("Type",function(a){return F.is(a)&&E.is(a.meta)});return p.of=function(a,b){a=A.is(a)?a.split(" "):a;var c={};return a.forEach(function(a){c[a]=a}),p(c,b)},u.is=function(a){return F.is(a)&&E.is(a.func)},{util:{mixin:d,format:e,getName:g,getKind:h,slice:x,shallowCopy:j,update:k},options:w,assert:c,fail:b,Any:y,Nil:z,Str:A,Num:B,Bool:C,Arr:D,Obj:E,Func:F,Err:G,Re:H,Dat:I,Type:J,irriducible:l,struct:m,enums:p,union:n,maybe:o,tuple:q,subtype:r,list:s,dict:t,func:u}});
!function(a,b){"use strict";"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.t=b()}(this,function(){"use strict";function a(a){throw v=!0,new Error(a)}function b(a){w.onFail(a)}function c(a){if(a!==!0){var c=x.call(arguments,1),d=c[0]?e.apply(null,c):"assert failed";b(d)}}function d(a,b,d){if(z.is(b))return a;for(var e in b)b.hasOwnProperty(e)&&(d!==!0&&c(!a.hasOwnProperty(e),"cannot overwrite property %s",e),a[e]=b[e]);return a}function e(){function a(a,f){if("%%"===a)return"%";if(d>=c)return a;var g=e.formatters[f];return g?g(b[d++]):a}var b=x.call(arguments),c=b.length,d=1,f=b[0],g=f.replace(/%([a-z%])/g,a);return c>d&&(g+=" "+b.slice(d).join(" ")),g}function f(a,b){return"function"==typeof b?e("Func",b.name):b}function g(a){return c(J.is(a),"Invalid argument `type` of value `%j` supplied to `getName()`, expected a type.",a),a.meta.name}function h(a){return c(J.is(a),"Invalid argument `type` of value `%j` supplied to `geKind()`, expected a type.",a),a.meta.kind}function i(a,b){c(!(a instanceof b),"Operator `new` is forbidden for `%s`",g(b))}function j(a){return D.is(a)?a.concat():E.is(a)?d({},a):a}function k(a,b){c(E.is(b));var d=j(a);for(var e in b)if(b.hasOwnProperty(e)){if(k.commands.hasOwnProperty(e))return c(1===Object.keys(b).length),k.commands[e](b[e],d);d[e]=k(d[e],b[e])}return d}function l(a,b){function d(e){return i(this,d),c(b(e),"Invalid `%s` supplied to `%s`",e,a),e}return c("string"==typeof a,"Invalid argument `name` supplied to `irriducible()`"),c("function"==typeof b,"Invalid argument `is` supplied to `irriducible()`"),d.meta={kind:"irriducible",name:a},d.displayName=a,d.is=b,d}function m(a,b){function e(d,f){if(e.is(d))return d;if(c(E.is(d),"Invalid `%s` supplied to `%s`, expected an `Obj`",d,b),!(this instanceof e))return new e(d,f);for(var g in a)if(a.hasOwnProperty(g)){var h=a[g],i=d[g];this[g]=h(i,f)}f!==!0&&Object.freeze(this)}return c(t(A,J).is(a),"Invalid argument `props` supplied to `struct()`"),c(o(A).is(b),"Invalid argument `name` supplied to `struct()`"),b=b||"struct",e.meta={kind:"struct",props:a,name:b},e.displayName=b,e.is=function(a){return a instanceof e},e.update=function(a,b,c){return new e(k(a,b,c))},e.extend=function(b,c){var f=m([a].concat(b).reduce(d,{}),c);return d(f.prototype,e.prototype),f},e}function n(a,b){function d(a,e){i(this,d),c(F.is(d.dispatch),"unimplemented %s.dispatch()",b);var f=d.dispatch(a);return c(J.is(f),"%s.dispatch() returns no type",b),f(a,e)}c(s(J).is(a),"Invalid argument `types` supplied to `union()`");var f=a.length;return c(f>=2,"Invalid argument `types` supplied to `union()`"),c(o(A).is(b),"Invalid argument `name` supplied to `union()`"),b=b||e("union([%s])",a.map(g).join(", ")),d.meta={kind:"union",types:a,name:b},d.displayName=b,d.is=function(b){return a.some(function(a){return a.is(b)})},d.dispatch=function(b){for(var c=0,d=a.length;d>c;c++)if(a[c].is(b))return a[c]},d}function o(a,b){function d(b,c){return i(this,d),z.is(b)?null:a(b,c)}return c(J.is(a),"Invalid argument `type` supplied to `maybe()`"),"maybe"===h(a)?a:(c(z.is(b)||A.is(b),"Invalid argument `name` supplied to `maybe()`"),b=b||e("maybe(%s)",g(a)),d.meta={kind:"maybe",type:a,name:b},d.displayName=b,d.is=function(b){return z.is(b)||a.is(b)},d)}function p(a,b){function d(a){return i(this,d),c(d.is(a),"Invalid `%s` supplied to `%s`, expected one of %j",a,b,e),a}c(E.is(a),"Invalid argument `map` supplied to `enums()`"),c(o(A).is(b),"Invalid argument `name` supplied to `enums()`"),b=b||"enums";var e=Object.keys(a);return d.meta={kind:"enums",map:a,name:b},d.displayName=b,d.is=function(b){return A.is(b)&&a.hasOwnProperty(b)},d}function q(a,b){function d(e,g){if(c(D.is(e)&&e.length===f,"Invalid `%s` supplied to `%s`, expected an `Arr` of length `%s`",e,b,f),d.isTuple(e))return e;for(var h=[],i=0;f>i;i++){var j=a[i],k=e[i];h.push(j(k,g))}return g!==!0&&Object.freeze(h),h}c(s(J).is(a),"Invalid argument `types` supplied to `tuple()`");var f=a.length;return c(o(A).is(b),"Invalid argument `name` supplied to `tuple()`"),b=b||e("tuple([%s])",a.map(g).join(", ")),d.meta={kind:"tuple",types:a,length:f,name:b},d.displayName=b,d.isTuple=function(b){return a.every(function(a,c){return a.is(b[c])})},d.is=function(a){return D.is(a)&&a.length===f&&d.isTuple(a)},d.update=function(a,b,c){return d(k(a,b,c))},d}function r(a,b,d){function f(e,g){i(this,f);var j=a(e,g);return c(b(j),"Invalid `%s` supplied to `%s`, %s",e,d,h),j}c(J.is(a),"Invalid argument `type` supplied to `subtype()`"),c(F.is(b),"Invalid argument `predicate` supplied to `subtype()`"),c(o(A).is(d),"Invalid argument `name` supplied to `subtype()`"),d=d||e("subtype(%s)",g(a));var h=b.__doc__||e("insert a valid value for %s",b.name||"the subtype");return f.meta={kind:"subtype",type:a,predicate:b,name:d},f.displayName=d,f.is=function(c){return a.is(c)&&b(c)},f.update=function(a,b,c){return f(k(a,b,c))},f}function s(a,b){function d(e,f){if(c(D.is(e),"Invalid `%s` supplied to `%s`, expected an `Arr`",e,b),d.isList(e))return e;for(var g=[],h=0,i=e.length;i>h;h++){var j=e[h];g.push(a(j,f))}return f!==!0&&Object.freeze(g),g}return c(J.is(a),"Invalid argument `type` supplied to `list()`"),c(o(A).is(b),"Invalid argument `name` supplied to `list()`"),b=b||e("list(%s)",g(a)),d.meta={kind:"list",type:a,name:b},d.displayName=b,d.isList=function(b){return b.every(a.is)},d.is=function(a){return D.is(a)&&d.isList(a)},d.update=function(a,b,c){return d(k(a,b,c))},d}function t(a,b,d){function f(e,g){if(c(E.is(e),"Invalid `%s` supplied to `%s`, expected an `Obj`",e,d),f.isDict(e))return e;var h={};for(var i in e)if(e.hasOwnProperty(i)){i=a(i);var j=e[i];h[i]=b(j,g)}return g!==!0&&Object.freeze(h),h}return c(J.is(a),"Invalid argument `domain` supplied to `dict()`"),c(J.is(b),"Invalid argument `codomain` supplied to `dict()`"),c(o(A).is(d),"Invalid argument `name` supplied to `dict()`"),d=d||e("dict(%s, %s)",g(a),g(b)),f.meta={kind:"dict",domain:a,codomain:b,name:d},f.displayName=d,f.isDict=function(c){for(var d in c)if(c.hasOwnProperty(d)&&(!a.is(d)||!b.is(c[d])))return!1;return!0},f.is=function(a){return E.is(a)&&f.isDict(a)},f.update=function(a,b,c){return f(k(a,b,c))},f}function u(a,b,d){function f(a){return u.is(a)||(a=f.of(a)),c(f.is(a),"Invalid `%s` supplied to `%s`",a,d),a}a=D.is(a)?a:[a],c(s(J).is(a),"Invalid argument `domain` supplied to `func()`"),c(J.is(b),"Invalid argument `codomain` supplied to `func()`"),d=d||e("func([%s], %s)",a.map(g).join(", "),g(b));var h=a.length;return f.meta={kind:"func",domain:a,codomain:b,name:d},f.displayName=d,f.is=function(c){return u.is(c)&&c.func.domain.length===a.length&&c.func.domain.every(function(b,c){return b===a[c]})&&c.func.codomain===b},f.of=function(d){function e(){var c=x.call(arguments),e=Math.min(c.length,h);if(c=q(a.slice(0,e))(c),e===h){var f=d.apply(this,c);return f=b(f)}var g=Function.prototype.bind.apply(d,[this].concat(c)),i=u(a.slice(e),b);return i.of(g)}return c("function"==typeof d),f.is(d)?d:(e.func={domain:a,codomain:b,f:d},e)},f}var v=!1,w={onFail:a},x=Array.prototype.slice;e.formatters={s:function(a){return String(a)},j:function(a){try{return JSON.stringify(a,f)}catch(b){return String(a)}}},k.commands={$apply:function(a,b){return c(F.is(a)),a(b)},$push:function(a,b){return c(D.is(a)),c(D.is(b)),b.concat(a)},$remove:function(a,b){c(D.is(a)),c(E.is(b));for(var d=0,e=a.length;e>d;d++)delete b[a[d]];return b},$set:function(a){return a},$splice:function(a,b){return c(s(D).is(a)),c(D.is(b)),a.reduce(function(a,b){return a.splice.apply(a,b),a},b)},$swap:function(a,b){c(E.is(a)),c(B.is(a.from)),c(B.is(a.to)),c(D.is(b));var d=b[a.to];return b[a.to]=b[a.from],b[a.from]=d,b},$unshift:function(a,b){return c(D.is(a)),c(D.is(b)),a.concat(b)},$merge:function(a,b){return d(d({},b),a,!0)}};var y=l("Any",function(){return!0}),z=l("Nil",function(a){return null===a||void 0===a}),A=l("Str",function(a){return"string"==typeof a}),B=l("Num",function(a){return"number"==typeof a&&isFinite(a)&&!isNaN(a)}),C=l("Bool",function(a){return a===!0||a===!1}),D=l("Arr",function(a){return a instanceof Array}),E=l("Obj",function(a){return!z.is(a)&&"object"==typeof a&&!D.is(a)}),F=l("Func",function(a){return"function"==typeof a}),G=l("Err",function(a){return a instanceof Error}),H=l("Re",function(a){return a instanceof RegExp}),I=l("Dat",function(a){return a instanceof Date}),J=l("Type",function(a){return F.is(a)&&E.is(a.meta)});return p.of=function(a,b){a=A.is(a)?a.split(" "):a;var c={};return a.forEach(function(a){c[a]=a}),p(c,b)},u.is=function(a){return F.is(a)&&E.is(a.func)},{util:{mixin:d,format:e,getName:g,getKind:h,slice:x,shallowCopy:j,update:k},options:w,assert:c,fail:b,Any:y,Nil:z,Str:A,Num:B,Bool:C,Arr:D,Obj:E,Func:F,Err:G,Re:H,Dat:I,Type:J,irriducible:l,struct:m,enums:p,union:n,maybe:o,tuple:q,subtype:r,list:s,dict:t,func:u}});
//# sourceMappingURL=tcomb.min.js.map

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