Socket
Socket
Sign inDemoInstall

aigis

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aigis - npm Package Compare versions

Comparing version 0.0.5 to 0.0.6

400

index.js

@@ -5,3 +5,3 @@ //-----------------------------------------------------

// Site: 666.io
// Version: 0.00.005
// Version: 0.00.006
//

@@ -15,2 +15,5 @@ //-----------------------------------------------------

var customTypesStore = {},
customRulesStore = {};
var gVPhones = {

@@ -29,265 +32,244 @@ "ru-RU": /^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/,

var gVMethods = {
"null": function(input) {
return input === null;
},
function validation(use, input, options) {
switch(use) {
case "null":
return input === null;
"nan": function(input) {
return typeof(input) === "number" && isNaN(input);
},
case "nan":
return typeof(input) === "number" && isNaN(input);
"finite": function(input) {
return typeof(input) === "number" && isFinite(input);
},
case "finite":
return typeof(input) === "number" && isFinite(input);
//-----------------------]>
//-----------------------]>
"boolean": function(input) {
return typeof(input) === "boolean";
},
case "boolean":
return typeof(input) === "boolean";
"string": function(input, options) {
if(typeof(input) !== "string")
return false;
case "string":
if(typeof(input) !== "string")
return false;
if(
(typeof(options.enum) !== "undefined" && options.enum.indexOf(input) === -1) ||
(typeof(options.pattern) !== "undefined" && !options.pattern.test(input)) ||
(typeof(options.min) !== "undefined" && input.length < options.min) ||
(typeof(options.max) !== "undefined" && input.length > options.max)
)
return false;
if(
(typeof(options.enum) !== "undefined" && options.enum.indexOf(input) === -1) ||
(typeof(options.pattern) !== "undefined" && !options.pattern.test(input)) ||
(typeof(options.min) !== "undefined" && input.length < options.min) ||
(typeof(options.max) !== "undefined" && input.length > options.max)
)
return false;
return true;
},
return true;
"integer": function(input, options) {
if(typeof(input) !== "number" || isNaN(input))
return false;
case "integer":
if(typeof(input) !== "number" || isNaN(input))
return false;
if(
(input !== parseInt(input, 10)) ||
(typeof(options.enum) !== "undefined" && options.enum.indexOf(input) === -1) ||
(typeof(options.min) !== "undefined" && input < options.min) ||
(typeof(options.max) !== "undefined" && input > options.max)
)
return false;
if(
(input !== parseInt(input, 10)) ||
(typeof(options.enum) !== "undefined" && options.enum.indexOf(input) === -1) ||
(typeof(options.min) !== "undefined" && input < options.min) ||
(typeof(options.max) !== "undefined" && input > options.max)
)
return false;
return true;
},
return true;
"float": function(input, options) {
if(typeof(input) !== "number" || isNaN(input))
return false;
case "float":
if(typeof(input) !== "number" || isNaN(input))
return false;
if(
(typeof(options.enum) !== "undefined" && options.enum.indexOf(input) === -1) ||
(typeof(options.min) !== "undefined" && input < options.min) ||
(typeof(options.max) !== "undefined" && input > options.max)
)
return false;
if(
(typeof(options.enum) !== "undefined" && options.enum.indexOf(input) === -1) ||
(typeof(options.min) !== "undefined" && input < options.min) ||
(typeof(options.max) !== "undefined" && input > options.max)
)
return false;
return true;
},
return true;
"date": function(input) {
if(!input || !(input instanceof(Date)) || !input.getTime())
return false;
case "date":
if(!input || !(input instanceof(Date)) || !input.getTime())
return false;
return true;
},
return true;
"hashTable": function(input) {
if(Array.isArray(input) || !input)
case "hashTable":
if(Array.isArray(input) || !input)
return false;
if(typeof(input) === "object")
return true;
return false;
if(typeof(input) === "object")
return true;
case "array":
if(!Array.isArray(input))
return false;
return false;
},
if(
(typeof(options.min) !== "undefined" && input.length < options.min) ||
(typeof(options.max) !== "undefined" && input.length > options.max)
)
return false;
"array": function(input, options) {
if(!Array.isArray(input))
return false;
return true;
if(
(typeof(options.min) !== "undefined" && input.length < options.min) ||
(typeof(options.max) !== "undefined" && input.length > options.max)
)
return false;
case "json":
if(typeof(input) !== "object")
return false;
return true;
},
return true;
"json": function(input) {
if(typeof(input) !== "object")
return false;
//-----------------------]>
return true;
},
case "required":
return !(
input === null || typeof(input) === "undefined" ||
(typeof(input) === "number" && input !== input) ||
(typeof(input) === "string" && !input.length) ||
(input instanceof(Date) && !input.getTime())
);
//-----------------------]>
case "notEmpty":
return typeof(input) === "string" && !input.match(/^[\s\t\r\n]*$/);
"required": function(input) {
return !(
input === null || typeof(input) === "undefined" ||
(typeof(input) === "number" && input !== input) ||
(typeof(input) === "string" && !input.length) ||
(input instanceof(Date) && !input.getTime())
);
},
case "lowercase":
return typeof(input) === "string" && input === input.toLowerCase()
"notEmpty": function(input) {
if(typeof(input) === "string" && input.match(/^[\s\t\r\n]*$/))
return false;
case "uppercase":
return typeof(input) === "string" && input === input.toUpperCase()
return gVMethods.required(input);
},
//-----------------------]>
"lowercase": function(input) {
return typeof(input) === "string" && input === input.toLowerCase()
},
case "alphanumeric":
return typeof(input) === "string" && !!input.match(/^[a-zA-Z0-9]+$/);
"uppercase": function(input) {
return typeof(input) === "string" && input === input.toUpperCase()
},
case "alpha":
return typeof(input) === "string" && !!input.match(/^[a-zA-Z]+$/);
//-----------------------]>
case "numeric":
return typeof(input) === "string" && !!input.match(/^[0-9]+$/);
"alphanumeric": function(input) {
return typeof(input) === "string" && !!input.match(/^[a-zA-Z0-9]+$/);
},
case "hexadecimal":
return typeof(input) === "string" && !!input.match(/^[0-9a-fA-F]+$/);
"alpha": function(input) {
return typeof(input) === "string" && !!input.match(/^[a-zA-Z]+$/);
},
case "email":
return typeof(input) == "string" && !!input.match(/^(?:[\w\!\#\$\%\&\"\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\"\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!\.)){0,61}[a-zA-Z0-9]?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/);
"numeric": function(input) {
return typeof(input) === "string" && !!input.match(/^[0-9]+$/);
},
case "url":
return typeof(input) === "string" && !!input.match(/^(?!mailto:)(?:(?:https?|ftp|ssh|ws|gopher|news|telnet|ldap):\/\/)?(?:\S+(?::\S*)?@)?(?:(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))|localhost)(?::\d{2,5})?(?:\/[^\s]*)?$/i);
"hexadecimal": function(input) {
return typeof(input) === "string" && !!input.match(/^[0-9a-fA-F]+$/);
},
case "mongoId":
return typeof(input) === "string" && !!input.match(/^[0-9a-fA-F]{24}$/);
"email": function(input) {
return typeof(input) == "string" && !!input.match(/^(?:[\w\!\#\$\%\&\"\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\"\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!\.)){0,61}[a-zA-Z0-9]?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/);
},
//-----------------------]>
"url": function(input) {
return typeof(input) === "string" && !!input.match(/^(?!mailto:)(?:(?:https?|ftp|ssh|ws|gopher|news|telnet|ldap):\/\/)?(?:\S+(?::\S*)?@)?(?:(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))|localhost)(?::\d{2,5})?(?:\/[^\s]*)?$/i);
},
case "hexColor":
if(typeof(input) !== "string")
return false;
"mongoId": function(input) {
return typeof(input) === "string" && !!input.match(/^[0-9a-fA-F]{24}$/);
},
return !!input.match(options.strict ? /^#[0-9A-F]{6}$/i : /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i);
//-----------------------]>
case "creditcard":
if(typeof(input) !== "string")
return false;
"hexColor": function(input, options) {
if(typeof(input) !== "string")
return false;
input = input.replace(/[^0-9]+/g, "");
return !!input.match(options.strict ? /^#[0-9A-F]{6}$/i : /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i);
},
if(!input || !input.match(/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/))
return false;
"creditcard": function(input) {
if(typeof(input) !== "string")
return false;
var sum = 0, shouldDouble = false;
var digit, tmpNum;
input = input.replace(/[^0-9]+/g, "");
for(var i = input.length - 1; i >= 0; i--) {
digit = input.substring(i, (i + 1));
tmpNum = parseInt(digit, 10);
if(!input || !input.match(/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/))
return false;
if(shouldDouble) {
tmpNum *= 2;
sum += (tmpNum >= 10) ? ((tmpNum % 10) + 1) : tmpNum;
} else
sum += tmpNum;
var sum = 0, shouldDouble = false;
var digit, tmpNum;
shouldDouble = !shouldDouble;
}
for(var i = input.length - 1; i >= 0; i--) {
digit = input.substring(i, (i + 1));
tmpNum = parseInt(digit, 10);
return (sum % 10) === 0;
if(shouldDouble) {
tmpNum *= 2;
sum += (tmpNum >= 10) ? ((tmpNum % 10) + 1) : tmpNum;
} else
sum += tmpNum;
case "phone":
if(!input || typeof(input) !== "string")
return false;
shouldDouble = !shouldDouble;
}
///---)>
return (sum % 10) === 0;
},
var rgPhone = gVPhones[options.locale || "ru-RU"];
"phone": function(input, options) {
if(!input || typeof(input) !== "string")
return false;
return rgPhone && rgPhone.test(input);
///---)>
case "uuid":
if(!input || typeof(input) !== "string")
return false;
var rgPhone = gVPhones[options.locale || "ru-RU"];
///---)>
return rgPhone && rgPhone.test(input);
},
var version = options.version,
pattern;
"uuid": function(input, options) {
if(!input || typeof(input) !== "string")
return false;
if(version == 3 || version == "v3")
pattern = /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i;
else if(version == 4 || version == "v4")
pattern = /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;
else if(version == 5 || version == "v5")
pattern = /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;
else
pattern = /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i;
///---)>
return pattern.test(input);
var version = options.version,
pattern;
case "ip":
if(!input || typeof(input) !== "string")
return false;
if(version == 3 || version == "v3")
pattern = /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i;
else if(version == 4 || version == "v4")
pattern = /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;
else if(version == 5 || version == "v5")
pattern = /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;
else
pattern = /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i;
///---)>
return pattern.test(input);
},
var version = options.version,
ipV4 = function() {
if((/^(\d?\d?\d)\.(\d?\d?\d)\.(\d?\d?\d)\.(\d?\d?\d)$/).test(input)) {
var parts = input.split(".").sort();
// no need to check for < 0 as regex won't match in that case
return !(parts[3] > 255);
}
};
"ip": function(input, options) {
if(!input || typeof(input) !== "string")
return false;
///---)>
///---)>
if(!version && !ipV4() && !(/^::|^::1|^([a-fA-F0-9]{1,4}::?){1,7}([a-fA-F0-9]{1,4})$/).test(input))
return false;
var version = options.version;
if(version == 4 && !ipV4())
return false;
function ipV4() {
if((/^(\d?\d?\d)\.(\d?\d?\d)\.(\d?\d?\d)\.(\d?\d?\d)$/).test(input)) {
var parts = input.split(".").sort();
// no need to check for < 0 as regex won't match in that case
return !(parts[3] > 255);
}
}
if(version == 6 && !(/^::|^::1|^([a-fA-F0-9]{1,4}::?){1,7}([a-fA-F0-9]{1,4})$/).test(input))
return false;
///---)>
return true;
if(!version && !ipV4() && !(/^::|^::1|^([a-fA-F0-9]{1,4}::?){1,7}([a-fA-F0-9]{1,4})$/).test(input))
return false;
case "ascii":
return typeof(input) === "string" && (/^[\x00-\x7F]+$/).test(input);
if(version == 4 && !ipV4())
return false;
case "base64":
return typeof(input) === "string" && (/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$/).test(input);
if(version == 6 && !(/^::|^::1|^([a-fA-F0-9]{1,4}::?){1,7}([a-fA-F0-9]{1,4})$/).test(input))
return false;
//------------------------]>
return true;
},
default:
var func = customRulesStore[use];
"ascii": function(input) {
return typeof(input) === "string" && (/^[\x00-\x7F]+$/).test(input);
},
if(func)
return func(input, options);
"base64": function(input) {
return typeof(input) === "string" && (/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$/).test(input);
throw "[!] Validation | Unknown method.\n" + use + " : " + JSON.stringify(options);
}
};
}

@@ -392,3 +374,8 @@ //-----------------------------]>

default:
throw "[!] Sanitizer | Unknown Type.\n" + type + " : " + JSON.stringify(options);
var func = customTypesStore[type];
if(func)
return func(input, options);
throw "[!] Sanitizer | Unknown type.\n" + type + " : " + JSON.stringify(options);
}

@@ -497,4 +484,8 @@ }

"type": function(name, func) {
return wFuncStore(name, func, customTypesStore);
},
"rule": function(name, func) {
return wFuncStore(name, func, gVMethods);
return wFuncStore(name, func, customRulesStore);
},

@@ -583,8 +574,3 @@

var func = gVMethods[schema];
if(!func)
throw "[!] Validation | not found method: " + schema;
return func(data, options);
return validation(schema, data, options);
}

@@ -628,8 +614,3 @@

var func = gVMethods[nameFunc];
if(!func)
throw "[!] Validation | not found method: " + nameFunc;
if(!func(fieldData, schemaData)) {
if(!validation(nameFunc, fieldData, schemaData)) {
if(optErrors) {

@@ -648,5 +629,2 @@ result = result || [];

}
}

@@ -653,0 +631,0 @@

{
"name": "aigis",
"version": "0.0.5",
"version": "0.0.6",
"description": "Simple and Powerful module for strict validation",

@@ -38,4 +38,4 @@

"_id": "aigis@0.0.5",
"_id": "aigis@0.0.6",
"_from": "aigis@"
}

@@ -125,2 +125,14 @@ `npm install aigis -g`

console.log("+-------------------------+");
console.log("| V: Custom");
console.log("+-------------------------+");
$sanitize.type("testTypeDateEasy", function(input, options) {
return new Date(input);
});
console.log("0#", $sanitize("testTypeDateEasy", "Thu, 01 Jan 1970 00:00:00 GMT-0400"));
console.log("1#", $sanitize("testTypeDateEasy", "---"));
console.log("+-------------------------+");
console.log("| S: String");

@@ -145,5 +157,5 @@ console.log("+-------------------------+");

},
data = {"name": " DT+ ", "pts": "60"};
data = {"name": " DT+ ", "pts": "60", "delThisField": "data"};
console.log("1#", $sanitize(schema, data));
console.log("0#", $sanitize(schema, data));

@@ -160,3 +172,3 @@

console.log("1#", $validate("testRuleMax10", 50));
console.log("0#", $validate("testRuleMax10", 50));
console.log("1#", $validate("testRuleMax10", 8));

@@ -163,0 +175,0 @@

@@ -17,2 +17,14 @@ //-----------------------------------------------------

console.log("+-------------------------+");
console.log("| V: Custom");
console.log("+-------------------------+");
$sanitize.type("testTypeDateEasy", function(input, options) {
return new Date(input);
});
console.log("0#", $sanitize("testTypeDateEasy", "Thu, 01 Jan 1970 00:00:00 GMT-0400"));
console.log("1#", $sanitize("testTypeDateEasy", "---"));
console.log("+-------------------------+");
console.log("| S: String");

@@ -39,3 +51,3 @@ console.log("+-------------------------+");

console.log("1#", $sanitize(schema, data));
console.log("0#", $sanitize(schema, data));

@@ -52,3 +64,3 @@

console.log("1#", $validate("testRuleMax10", 50));
console.log("0#", $validate("testRuleMax10", 50));
console.log("1#", $validate("testRuleMax10", 8));

@@ -55,0 +67,0 @@

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