{"_id":"@alxgh/validate","_rev":"3-a4dbcc7015c87f3a9adffa0e963133b4","name":"@alxgh/validate","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@alxgh/validate","version":"1.0.0","description":"Validate your input!","main":"src/index.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"author":{"name":"Alex Gholamian","email":"mmghk20@gmail.com"},"license":"ISC","dependencies":{"dot-object":"^2.1.3","mocha":"^8.1.1"},"devDependencies":{},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/alxgh/validate.git"},"bugs":{"url":"https://gitlab.com/alxgh/validate/issues"},"homepage":"https://gitlab.com/alxgh/validate#readme","gitHead":"27a68baa0a265b65cf199b2b0deef0c9140eae62","_id":"@alxgh/validate@1.0.0","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-BuaMKXywFh+AL7mBumUCPfaqBJYTEplwRPW9GqFTcNwsD2tdVd356ELHt8Ax8yob9Hr5G/tJTwCo+TKNq3FIbw==","shasum":"738d3c95fdf29096452902ff4d1c18cb1891b3ae","tarball":"https://registry.npmjs.org/@alxgh/validate/-/validate-1.0.0.tgz","fileCount":11,"unpackedSize":21829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLtN9CRA9TVsSAnZWagAA/poP/jClsFZTrneMkCJpDT8v\nrjfvAUrnr+dOZSAU7DSidCR6qEyQ1Bqg4hvZwfjR4ZTjnIEO53rQEP4VRQo5\nrbvJHt1G3u+vCxdZwIIh0CQS9RtA2Ohm0b4Lq3DjX0OvryiuwOEL7ySGT8ei\nxzmFnOgRptOAgQZSyPJIXegR/Vv6zIXDu4TsH2C0pXmfJEDyodeYb9scPMMC\nUNlPAyRwocvK4Qwcn+PH/TSYAixelaLkNUVY1RbU5mSwszYxJuLm1EAlS6Zj\nQO2ccDadebiRkGPzTeE1wE0m45L35PqAx8YKu2irMQt6p+1wlxdmhXKsAApo\nuI1rdKJzCF1LI4OUPco5eBePg6N8kUfTllPT1XGf8fCpQseA+zKydGYparaS\nLSSOk5vm7Chuoe+kaopOoWUks6dakjxw9bjEeA4QC5TSiNqLuWo8debCfVQX\n2gCRVSMmX5cxqmNNNLEkwKQ4Uo+14qvvcXRbPlHumDUpR5T/0mjmv52/hqJV\nqZFSSR3H9GDT6Zzg8TLOdI4YHXz/c2PN4RS9FVV+IBFVQ5Ssp1abJE2KOepH\nzRNQxVGmM2ZyynPBSPU8Qa5Lsn9x1lJaVpD7MyanN0ulrWo0oFHZr8ozZELL\nZnvy8eWPMIU9JLzxD3m111TIe5cfunxXujPXPCDXwfXEzIvqEFbR4dAiS5Y6\naSiQ\r\n=o36e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGNpBo4bl/yXH7bWjWGu1qcknUg8zMcRYifgz1RxDybQIgdrtJkQGRxixJWUQzswiMNfFWyxbMbRqKttVWkiyJ9R4="}]},"maintainers":[{"name":"alxgh","email":"mmghk20@gmail.com"}],"_npmUser":{"name":"alxgh","email":"mmghk20@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate_1.0.0_1596904316710_0.4402962086848816"},"_hasShrinkwrap":false},"1.0.1":{"name":"@alxgh/validate","version":"1.0.1","description":"Validate your input!","main":"src/index.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"author":{"name":"Alex Gholamian","email":"mmghk20@gmail.com"},"license":"ISC","dependencies":{"dot-object":"^2.1.3","mocha":"^8.1.1"},"devDependencies":{},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/alxgh/validate.git"},"bugs":{"url":"https://gitlab.com/alxgh/validate/issues"},"homepage":"https://gitlab.com/alxgh/validate#readme","gitHead":"1448f0b5371c2a0229747a4d001b6e8fb348d9f6","_id":"@alxgh/validate@1.0.1","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-IPVGFchUoLqGp303HXB84HJdOYUP5+kgYVVEE2fND0O56FhW+iUIhwvVTs8o7xXJpnDTv7ZF4yAQf1++xlQ6CQ==","shasum":"004ad8f21c6a840a262cf26a83dff6575947b970","tarball":"https://registry.npmjs.org/@alxgh/validate/-/validate-1.0.1.tgz","fileCount":13,"unpackedSize":22720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMP+rCRA9TVsSAnZWagAAy6sP/2M3HMXqpsMvXy4RMJ5K\n4i47XY86ScNO0OP/OFPnsq10Ap/q4Qsc0jtSxxQ0kEBBvlQ4S9rtvrKYU5y6\nxs5AhD3R4RfwFEucenE5oXl9cZeTx6Iv/Rgq6HchrK/8Jr95pU+19uPx53KG\nS00d4FMwSrxPW5jJAfB/1yxya+R46wZPR4qRmpvYXXVReMBT70empvnEhYrq\naVglILeX5+pJXsUz4E9jjXvrU0If5Zqn3VRMPSZNeOlu4b4cNZUTNODNpQFN\nCTbphX8j0OQ17YkxmllLSFPLcLkqbhsgilGxiWZ1i4Jbh4t7LCGPz6l/1Sh9\niEOfwguemGsC+7P3Z5Te4nR7PzS12LNMd5++mqvILg+I9n6fojopYCFoVWbx\nGRhRdJzCoD3lpItvu2MJPvFZavWq2zSGSSoSdIO8KiQ5IIfRp8M86BW28g0S\nWD8R1t/dbawNwD3olMXk2/ymsvKxyjOVI48Q+VHy5dga4aEHPs/pWHewvqB6\nqie7NR0DTmAcU7y6KTNAEiH4R9qQYK+gepckKNzjORwFOgxOpOjhMQ8AQwpn\n/xwdEX8EVfjqjPW3tnc/MIHpmesIlXeWRyraPTygfd8W09jdkwFVtozsW5fn\nKgE8SSYxz4xpc+yhjLFBckzu1hEmYvqUmrzSugfo5GuJCc+dCinhZW7pG8BH\n2jeD\r\n=tkkx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID02KBZlKaqlzwXlMLGGsrl5pJk7tB0BalgLzjtoRwNrAiB2Ju13LQW0nynRX8l3atR9PKfiLB9qAFDTs9sQfoM9Ng=="}]},"maintainers":[{"name":"alxgh","email":"mmghk20@gmail.com"}],"_npmUser":{"name":"alxgh","email":"mmghk20@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate_1.0.1_1597046699132_0.8421134339020857"},"_hasShrinkwrap":false},"1.0.2":{"name":"@alxgh/validate","version":"1.0.2","description":"Validate your input!","main":"src/index.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"author":{"name":"Alex Gholamian","email":"mmghk20@gmail.com"},"license":"ISC","dependencies":{"dot-object":"^2.1.3","mocha":"^8.1.1"},"devDependencies":{},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/alxgh/validate.git"},"bugs":{"url":"https://gitlab.com/alxgh/validate/issues"},"homepage":"https://gitlab.com/alxgh/validate#readme","gitHead":"8aaa22de860a527d5b78ed00491f7c9654d92270","_id":"@alxgh/validate@1.0.2","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-Z3n1AcQYZ76qb6AkOx+j+CEbpQO2/AxbGBRelk6mEE7GWTZrUfiliMhmc+NxyXI+K2SLUzTIZ02QQw7AFFqh5g==","shasum":"5dc51b70180b55d5c1a97e015c32fa4c4e34fd54","tarball":"https://registry.npmjs.org/@alxgh/validate/-/validate-1.0.2.tgz","fileCount":13,"unpackedSize":22720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOU0LCRA9TVsSAnZWagAAcmwP/i5NMFhxi9kb8O/LYWQ+\negvahPeB90+qbY5frqXHwHG+5/69/ZPATVV2TBdnxCTZEMFOUCt619S2JXBH\nE7Ey6W7bdL6Zx0hUGCN55WnD5E9M7FnGq38AhfOFPWp68ScdFxm5VhsG/FTw\nfImWy0C0AV5mqtsG3bUCB4nUlkfxV1igg/0GnadXOq8SR97qHNtUVp2N9Zlo\nO+jPtQgBAm+Tn4MMrXfC1KOF+OyDLjypc4ZhW4et7fqzdn02kEfN7aXnjZYU\nBzFWIKtCOGIgo7Et30jxjzb+k4T7XvYynzLTDgUQYdo8FwAI7aCjmp4+aQsT\nQvfDEZTbOErOQxK+vQaErxeBrIJATwcW7A8+wgJq6cOGt90PX3cffRJILnaW\niH3Lw8C5aGOvFbrr1qgaDsz4AF05t4nOOoDjT0pwkPGGjKg3aC12rnvu+XG2\nuPFtLApmvrZOuxBJUxmDh+bRxCTj6Jzz3W2n0efzX3arbwRT4OvknyFp/XCU\nnLOHPeen/Nd6Bza3wYjVaWMIn8MpSJmqkt8/UUKHV5ovSHX4kqf41Zly6UEj\nvJMOW39I/UlKK+fayaL4NgpE1fIqOw4r+CWAkTNJD6/tJQxJL6d79TR4XDIz\nJjLLUS56mqzIx94XzugIQwTiOrCvI4GdmC+/HuDmyX44WBwoSrAJNUBuQpJg\nyZBz\r\n=3yk9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDj+4eM0HXHLBa2QX1zLaiydfoj3DuI/UcYHpspz/FN8AiBEmdLg9VuXZkp32jfbq+gp85ReaZuEvBi8q/OiUyWR2g=="}]},"maintainers":[{"name":"alxgh","email":"mmghk20@gmail.com"}],"_npmUser":{"name":"alxgh","email":"mmghk20@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate_1.0.2_1597590794412_0.0041999398850143255"},"_hasShrinkwrap":false}},"time":{"created":"2020-08-08T16:31:56.660Z","1.0.0":"2020-08-08T16:31:56.833Z","modified":"2022-04-04T13:42:10.552Z","1.0.1":"2020-08-10T08:04:59.258Z","1.0.2":"2020-08-16T15:13:14.530Z"},"maintainers":[{"name":"alxgh","email":"mmghk20@gmail.com"}],"description":"Validate your input!","homepage":"https://gitlab.com/alxgh/validate#readme","repository":{"type":"git","url":"git+ssh://git@gitlab.com/alxgh/validate.git"},"author":{"name":"Alex Gholamian","email":"mmghk20@gmail.com"},"bugs":{"url":"https://gitlab.com/alxgh/validate/issues"},"license":"ISC","readme":"Request validator\r\n=================\r\nThis package is useful for validating request bodies.\r\n\r\nNOTE: All fields are reqired by default.\r\n\r\nExistsing rules:\r\n----------------\r\n\r\n#### Optional property:\r\nPut `?` at the end of property name.\r\n```js\r\n'property?' : 'string'\r\n```\r\n\r\n#### Integer:\r\n```js\r\n'property' : 'integer'\r\n```\r\n\r\n#### Number: (any kind of number)\r\n```js\r\n'property' : 'number'\r\n```\r\n\r\n#### String:\r\n```js\r\n'property' : 'string'\r\n```\r\n\r\n#### Array:\r\n\r\n```js\r\n'property' : 'array'\r\n```\r\n\r\n#### Object:\r\n```js\r\n'property' : 'object'\r\n```\r\n\r\n#### Email:\r\n```js\r\n'property' : 'email'\r\n```\r\n\r\n#### Length:\r\n\r\n```js\r\n'property' : 'length:(max|min),(int)'\r\n```\r\n\r\n```js\r\n'property' : 'length:max:50',\r\n```\r\n\r\n#### Size:\r\n\r\n```js\r\n'property' : 'length:(max|min),(int)'\r\n```\r\n\r\n#### Range (inclusive):\r\n\r\n```js\r\n'property' : 'range:(min),(max)'\r\n```\r\n```js\r\n'property' : 'range:5,10'\r\n```\r\n\r\n#### Boolean:\r\n\r\nIt has a strict mode and non strict mode.\r\n\r\nIn strict mode it just accepts `true` and `false`.\r\n\r\nIn non strict mode it accepts `'true'`, `'false'`, `1`, `0`, `'1'` and `'0'`.\r\n\r\n```js\r\n'property' : 'boolean:(strict)'\r\n```\r\n\r\n```js\r\n'property' : 'boolean' // strict mode\r\n```\r\n\r\n```js\r\n'property' : 'boolean:true' // non strict mode\r\n```\r\n\r\n#### Custom validator:\r\n\r\nIt should return the result of validation and error message.\r\nError message is used if result is `false`.\r\n\r\n```js\r\n'property': [() =>{\r\n  return {\r\n    result: true,\r\n    message: \"return error message\"\r\n  }\r\n}]\r\n```\r\n\r\n#### Using multiple validation rules:\r\n\r\nSeprate them by `|` :\r\n\r\n```js\r\n'property': 'number|range:4,8'\r\n```\r\n\r\nPass rules as array:\r\n\r\n```js\r\n'property': ['number', 'range:4,8']\r\n```\r\n\r\n#### Validate object's properties:\r\n\r\n```js\r\n'property.child': 'number',\r\n```\r\n\r\n### Validate array indexes:\r\n\r\nEvery index should be a number:\r\n\r\n```js\r\n'property.*': 'number'\r\n```\r\n\r\nEvery index is a object which has a name and an age:\r\n\r\n```js\r\n'property': 'array':\r\n'property.*.name': 'string|length:max,50',\r\n'property.*.age': 'number|range:18,150',\r\n```\r\n\r\nExample\r\n-------\r\n\r\n```js\r\nconst validate = require('@alxgh/validate');\r\n\r\nconst {errors, output, failed} = validate({\r\n    'username': 'string|length:min,4|length:max,50',\r\n    'password': 'string|length:min,6',\r\n    'last_name': 'string|length:max,50',\r\n    'first_name': 'string|length:max,50',\r\n    'role?': 'integer',\r\n}, input);\r\nif(failed) {\r\n  // Validaton has failed\r\n  // use the `errors`\r\n} else {\r\n  // Use the `output`. it does not contain extra fields.\r\n}\r\n```\r\n\r\nIn above example the object should have `username`, `password`, `last_name`, `first_name` and `role` which is optional.","readmeFilename":"README.md"}