{"_id":"@b-flower/bdn-validator","_rev":"3-1620512f464f52c86f6afb333d6df81c","name":"@b-flower/bdn-validator","description":"validation using string and node-validator","dist-tags":{"latest":"0.0.17"},"versions":{"0.0.15":{"name":"@b-flower/bdn-validator","private":false,"version":"0.0.15","description":"validation using string and node-validator","main":"index.js","scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git+https://github.com/amelon/jab-validator.git"},"bugs":{"url":"https://github.com/amelon/jab-validator/issues"},"author":{"name":"paztaga@gmail.com"},"license":"Apache-2.0","dependencies":{"bluebird":"^2.3.4","lodash":"~2.4.0","string":"^1.8.0","validator":"^3.5.0"},"devDependencies":{"chai":"^1.5.0","mocha":"^1.18.0","request":"^2.34.0","gulp":"^3.5.6","gulp-mocha":"^0.4.1","gulp-util":"^2.2.14"},"homepage":"https://github.com/amelon/jab-validator#readme","directories":{"test":"test"},"gitHead":"17519bbacbba37335c0afb69e551b097d065d290","_id":"@b-flower/bdn-validator@0.0.15","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"gabchang","email":"dotgab@gmail.com"},"dist":{"integrity":"sha512-gm3gE2zkSSC1DQpvw/WZCWYLbcvEUL8CnSFsFdl0kCYf9C47Kcdu20z6rnYB/lX/Ugcb/p2g3pBrzx+QLSKGwQ==","shasum":"45a52813b9fe6a50ff00bf5471528940a93b079a","tarball":"https://registry.npmjs.org/@b-flower/bdn-validator/-/bdn-validator-0.0.15.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDD0phYYeIIsBPaHfIFo0Yc67BrEKwJWiFt/jFywjl8+QIgPhUIDNqNkAYcfuwkS1fmyvzgzOqR6bBn++Jpod+eP58="}]},"maintainers":[{"name":"gabchang","email":"dotgab@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bdn-validator-0.0.15.tgz_1517406004848_0.604285694193095"}},"0.0.16":{"name":"@b-flower/bdn-validator","version":"0.0.16","private":false,"description":"validation using string and node-validator","main":"index.js","scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git+https://bitbucket.org/bflower/bdn-validator.git"},"author":{"name":"A. Mélon","email":"paztaga@gmail.com"},"license":"Apache-2.0","dependencies":{"bluebird":"^2.3.4","lodash":"~2.4.0","string":"^1.8.0","validator":"^3.5.0"},"devDependencies":{"chai":"^1.5.0","mocha":"^1.18.0","request":"^2.34.0","gulp":"^3.5.6","gulp-mocha":"^0.4.1","gulp-util":"^2.2.14"},"homepage":"https://gabchang@bitbucket.org/bflower/bdn-validator#readme","directories":{"test":"test"},"gitHead":"17519bbacbba37335c0afb69e551b097d065d290","_id":"@b-flower/bdn-validator@0.0.16","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"gabchang","email":"dotgab@gmail.com"},"dist":{"integrity":"sha512-ndooID3mc5j5pVhKGKjpF1xn5ew1xDAEJ0V2ThkeqgnuMB6zEQL8TUFKfrKap0vl0hsTqVMorviNV8cPQ2d1oA==","shasum":"0bf57530eb7ac344f4d476e8586145655d026f49","tarball":"https://registry.npmjs.org/@b-flower/bdn-validator/-/bdn-validator-0.0.16.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHVh//OCCoeUvE+fCPUDv7A78JEj67+3xRzISVZhddo1AiEAuPWN9AWWbKd5hwMb8GFcqYuG5+kHDLHSHZ2rmcSDAZs="}]},"maintainers":[{"name":"kcoulibaly","email":"kcoulibaly@b-flower.com"},{"name":"amelon","email":"paztaga@gmail.com"},{"name":"gabchang","email":"dotgab@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bdn-validator-0.0.16.tgz_1517494348693_0.9229198673274368"}},"0.0.17":{"name":"@b-flower/bdn-validator","version":"0.0.17","private":false,"description":"validation using string and node-validator","main":"index.js","scripts":{"test":"grunt test"},"repository":{"type":"git","url":"git+https://bitbucket.org/bflower/bdn-validator.git"},"author":{"name":"A. Mélon","email":"paztaga@gmail.com"},"license":"Apache-2.0","dependencies":{"bluebird":"^2.3.4","lodash":"~2.4.0","string":"^1.8.0","validator":"^3.5.0"},"devDependencies":{"chai":"^1.5.0","mocha":"^1.18.0","request":"^2.34.0","gulp":"^3.5.6","gulp-mocha":"^0.4.1","gulp-util":"^2.2.14"},"homepage":"https://bitbucket.org/bflower/bdn-validator#readme","directories":{"test":"test"},"gitHead":"a2928e4f73281b2945390e0919052d488a505fe1","_id":"@b-flower/bdn-validator@0.0.17","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"gabchang","email":"dotgab@gmail.com"},"dist":{"integrity":"sha512-EKQ4xNJU+ZE16SAIJuBYeDAs4aA5KHnTHsCuhPJ0l9yzHO825ef1bsu+N5hDNdiS1PSfzL2ariu0jN2G1wlEUg==","shasum":"ccde3eb0507676908024137c3c9afaadb3f97abf","tarball":"https://registry.npmjs.org/@b-flower/bdn-validator/-/bdn-validator-0.0.17.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDs//wlL5wWppAPGseE6086LXytLISf/dWMZm4MK3TjBwIgIGNuPSZOZX31SO84yMZn6fu5ZS7mZKXpLrhLURZQDZM="}]},"maintainers":[{"name":"kcoulibaly","email":"kcoulibaly@b-flower.com"},{"name":"amelon","email":"paztaga@gmail.com"},{"name":"gabchang","email":"dotgab@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bdn-validator-0.0.17.tgz_1517494391883_0.8164063647855073"}}},"readme":"bdn-validator\n=============\n\nnode-validator + string sanitize functions\n\n\n## Usage\n\nInstall\n\n    npm install @b-flower/bdn-validator\n\n\nDefine schema\n\n    // user_validate.js\n\n    var validator = require('@b-flower/bdn-validator');\n    var validate  = validator.validate;\n    var clean     = validator.clean;\n    var builder   = validator.builder\n\n    var user = {\n      email: [validate('isEmail'), validate('notNull')]\n    , name: {\n        last: [validate('required'), clean('capitalize')]\n        // notEmpty == required\n      , first: [validate('notEmpty')]\n      , middle: [validate('isUppercase')]\n      , abc: {\n          a: [validate('isEmail')]\n        }\n      }\n    , has: [validate('contains', 'b')]\n    };\n\nBuild validator\n\n    // user_validate.js\n\n    var user_validator   = builder(user);\n    module.export = user_validator;\n\nValidate & clean data\n\n    // user_controller.js\n    // ...\n    var user_validator = require('user_validate.js');\n    var o_user = {\n      email: 'test@toto'\n    , name: {\n        last: 'myname'\n      , first: ''\n      , middle: 'qsdf'\n      }\n    , has: 'abc'\n    };\n\n    var clean_data = user_validator(o_user);\n    // ...\n\n\nCheck errors\n\n    // user_controller.js\n    // ...\n    console.log(clean_data._errors)\n    // => undefined if no errors\n\n### Continuation-passing style\nYou can use built validator with continuation-passing style (not async)\n\n    var validator = require('@b-flower/bdn-validator');\n    var validate  = validator.validate;\n    var clean     = validator.clean;\n    var builder   = validator.builder;\n\n    var user = {\n      email: [validate('isEmail'), validate('notNull')]\n    , username: [validate('required')]\n    };\n\n    var user_vdor = validator.builder(user);\n\n    var user_data = {\n      email: 'coucou@hello.fr'\n    , username: 'me&nobodyelse'\n    };\n\n    user_vdor(user_data, function(err, clean_data) {\n      if (err) return handleError(err);\n      // save clean_data\n    });\n\n\n### No check on empty value but required\n\n    var validator = require('@b-flower/bdn-validator');\n    var validate  = validator.validate;\n    var clean     = validator.clean;\n    var builder   = validator.builder;\n\n    var schema = {\n          is_int: [\n            validate('isInt')\n          ]\n        , is_req: [validate('required'), validate('isInt')]\n        }\n\n      , validator = builder(schema)\n\n      , object = {\n          is_int: ''\n        , is_req: ''\n        };\n\n    var res = validator(object);\n\n    assert.equal(JSON.stringify(res._errors), '{\"is_req\":[\"String is empty\",\"Invalid integer\"]}');\n    delete res._errors\n    assert.equal(JSON.stringify(res), '{\"is_int\":\"\",\"is_req\":\"\"}');\n\n\n\n### Include built schema as sub schema\n\n    var validator = require('@b-flower/bdn-validator');\n    var validate  = validator.validate;\n    var clean     = validator.clean;\n    var builder   = validator.builder;\n\n    var sub = {\n      fd: [validate('notEmpty')]\n    };\n    var sub_cleaner = builder(sub);\n\n    var main = {\n      sub_schema: sub_cleaner\n    , other: [validate('notEmpty')]\n    , last: [validate('notNull')]\n    };\n\n    var compare = {\n      sub_schema: sub\n    , other: [validate('notEmpty')]\n    , last: [validate('notNull')]\n    };\n\n    compare = builder(compare);\n    main = builder(main);\n\n    assert.equal(JSON.stringify(main), JSON.stringify(compare));\n\n    // now validate data\n    var data = {\n          other: 'xx'\n        , last: 'last value'\n        , sub_schema: {\n            fd: 'df val'\n          }\n        };\n\n    data = main(data); // same result as compare(data);\n\n\n### Accept custom validator\n\n    var validator = require('@b-flower/bdn-validator');\n    var validate  = validator.validate;\n    var clean     = validator.clean;\n\n    function myValidator(value) {\n      return value > 1 ? true : false;\n    }\n\n    var schema = {\n          is_custom: [validate('custom', myValidator)]\n        };\n\n\n#### Custom validator access full_object\n    function myValidator(value) {\n      return Number(value) > 1 && this.another == 'Hello';\n    }\n\n    var schema = {\n        is_custom: [validate('custom', myValidator)]\n      , another: [clean('trim')]\n      }\n    , validator = builder(schema)\n\n    , object = {\n        is_custom: 2\n      , another: 'Hello'\n      }\n    , res      = validator(object)\n    // =>  {\"is_custom\":\"2\",\"another\":\"Hello\"}\n\n### Accept custom message\n\n     var schema = {\n         my_attr: [validate({ fn: 'isInt', msg: 'Is it possible to have an integer ?' })]\n       }\n\n\n\n*****************************************************\n\n\n### List of cleaners\n\n    // originals - from node-validator\n    trim(chars)                     //Trim optional `chars`, default is to trim whitespace (\\r\\n\\t )\n    ltrim(chars)\n    rtrim(chars)\n    ifNull(replace)\n    toFloat()\n    toInt()\n    toBoolean()                     //True unless str = '0', 'false', or str.length == 0\n    toBooleanStrict()               //False unless str = '1' or 'true'\n    entityDecode()                  //Decode HTML entities\n    entityEncode()\n    escape()                        //Escape &, <, >, and \"\n\n    // added from Stringjs\n    capitalize\n    camelize\n    collapseWhitespace\n    dasherize\n    ensureLeft\n    ensureRight\n    humanize\n    slugify\n    stripTags\n    underscore\n    replaceAll\n\n    // self made ;)\n    uppercase\n    lowercase\n\n### List of checkers\n\n    isEmail\n    isUrl\n    isIP\n    isIPv4\n    isIPv6\n    isIPNet\n    isAlpha\n    isAlphanumeric\n    isNumeric\n    isHexadecimal\n    isHexColor\n    isLowercase\n    isUppercase\n    isInt\n    isDecimal\n    isFloat\n    isDivisibleBy\n    notNull\n    isNull\n    notEmpty\n    equals\n    contains\n    notContains\n    regex\n    is\n    notRegex\n    not\n    len\n    isUUID\n    isUUIDv3\n    isUUIDv4\n    isUUIDv5\n    isDate\n    isAfter\n    isBefore\n    isIn\n    notIn\n    min\n    max\n    isCreditCard\n    custom\n\n\n","maintainers":[{"name":"kcoulibaly","email":"kcoulibaly@b-flower.com"},{"name":"amelon","email":"paztaga@gmail.com"},{"name":"gabchang","email":"dotgab@gmail.com"}],"time":{"modified":"2022-04-04T17:23:28.362Z","created":"2018-01-31T13:40:06.476Z","0.0.15":"2018-01-31T13:40:06.476Z","0.0.16":"2018-02-01T14:12:29.705Z","0.0.17":"2018-02-01T14:13:11.969Z"},"homepage":"https://bitbucket.org/bflower/bdn-validator#readme","repository":{"type":"git","url":"git+https://bitbucket.org/bflower/bdn-validator.git"},"author":{"name":"A. Mélon","email":"paztaga@gmail.com"},"license":"Apache-2.0","readmeFilename":"README.md"}