{"_id":"@amakovskyi/api-auditor","_rev":"7-be786d408245dc932af5ce3fd592a82e","name":"@amakovskyi/api-auditor","dist-tags":{"latest":"0.2.5"},"versions":{"0.1.0":{"name":"@amakovskyi/api-auditor","version":"0.1.0","type":"module","private":false,"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/amakovskyi/api-auditor.git"},"author":{"name":"amakovskyi"},"license":"MIT","bugs":{"url":"https://github.com/amakovskyi/api-auditor/issues"},"homepage":"https://github.com/amakovskyi/api-auditor#readme","dependencies":{"ts-node":"^10.7.0","jest":"^27.5.1","@types/jest":"^27.4.1","@types/node":"^17.0.26","ts-jest":"^27.1.4","@types/uuid":"^8.3.4","uuid":"^8.3.2"},"devDependencies":{"typescript":"^4.6.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"test","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node","testTimeout":10000},"gitHead":"775c76a915660712115b2dcf8d633767e05c6d14","description":"A NodeJS library for integration testing.","_id":"@amakovskyi/api-auditor@0.1.0","_nodeVersion":"16.16.0","_npmVersion":"8.16.0","dist":{"integrity":"sha512-1DcJZHPzLjO7RUUBcU8fpPmU6xxAa3PKgGAkJHCAQuZJ/kvX+Ap92VuYNa60z8UCxtkbfKTwuuNOtTxYtcJloQ==","shasum":"e1f80ba498df32f35f87a074e65aab0baa3abd2b","tarball":"https://registry.npmjs.org/@amakovskyi/api-auditor/-/api-auditor-0.1.0.tgz","fileCount":46,"unpackedSize":106268,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjFeBde5PwHKsW3AQ6EUN/ZQVPyIDAeAgXO7ZnfWYJSAIgDsAUbzvJGldt9bh2KnWIAYdDDb0+YlOcL2biud5szPo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8oL9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmodlBAAoMfvfOdQ43qXris3pcmS1Y33W+CYRCzuSaQIvrdsNwEEGpeb\r\nDAKVHDYX+vyWvv1nk1HvKA2u42T1dsPVC4SRhuUFAZPw4st6loxCP3StwoJ5\r\npVEShEeUeLyDFUP4/u+CX3yYd3zDT5AnDsYD1UDroad9nhWqxo2hi6Br9AwU\r\nN7B6EM323mXj5L68QeuRkFy2wH/PPd15vxHivV6Tw5HwRfsRGFypTnYi/irY\r\nfzH/NzuOlYSPsydVTwdq/9VpcVLNrsyK2Yx6Fl5OroDt/TQmTggBCu6NOFnU\r\nEx0fI1NbCReK1aPRunMi6lXGT0AWMIpoMJunWUrcsqqt6z9z3/mGFSEoudVv\r\nx7SopRca49Ai7OCbUEC+aHVxU88BCTt+kwLC5V5NHyRjtV4qoecELr6RGm5R\r\nHn7Vsp1DWxq/0JUZENzn9Uq8dda4kn4ukJI4oCgbpfPFyAYqsr8fd2j+leUJ\r\nOza/444TWYL3ZLuubFM32ySxOAvWBWecGXk76X9Yfkr/F+BQwgBPVMagksrY\r\ncKt6yfajVUHFuDfhyP+mw36xBh8AY9zlCFEfbeyDUFXAfq/tWSCRUFtrY7Eb\r\nK2MXkjWg9y8NwQJh76oq7whn8a6QDQ94KOWQzQsRpT1g1THQmlB7O5jzwO0n\r\nFofgQO+0EY7FgQ7hQybjUeKo425Sccbk1DE=\r\n=wB67\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"},"directories":{},"maintainers":[{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/api-auditor_0.1.0_1660060413666_0.4192606576812541"},"_hasShrinkwrap":false},"0.1.1":{"name":"@amakovskyi/api-auditor","version":"0.1.1","type":"module","keywords":["integration","test","matcher","PromiseRejectionHandledWarning"],"private":false,"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/amakovskyi/api-auditor.git"},"author":{"name":"amakovskyi"},"license":"MIT","bugs":{"url":"https://github.com/amakovskyi/api-auditor/issues"},"homepage":"https://github.com/amakovskyi/api-auditor#readme","dependencies":{"ts-node":"^10.7.0","jest":"^27.5.1","@types/jest":"^27.4.1","@types/node":"^17.0.26","ts-jest":"^27.1.4","@types/uuid":"^8.3.4","uuid":"^8.3.2"},"devDependencies":{"typescript":"^4.6.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"test","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node","testTimeout":10000},"gitHead":"775c76a915660712115b2dcf8d633767e05c6d14","description":"A NodeJS library for integration testing.","_id":"@amakovskyi/api-auditor@0.1.1","_nodeVersion":"16.16.0","_npmVersion":"8.16.0","dist":{"integrity":"sha512-Zb5HdodBnMugvCX/n8QA1xnuBR8R5a/GJ3+b3IIqc0MnLz+FsM1fRHFNxZixggnmr/FNJewWd8HtpS2+frjzLw==","shasum":"fa3e3b860d6c1ce7762600f5fe88f3de2cc81f0f","tarball":"https://registry.npmjs.org/@amakovskyi/api-auditor/-/api-auditor-0.1.1.tgz","fileCount":46,"unpackedSize":106491,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICQrfOUv24cViL1uT1n4NCO/34AKp/E6vQCjbo/IcIEpAiAkOJpY0NJrSWUnQ/IyPYNah5PsR6Lri406nfB+xVQ/YA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8oPlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmravA//VAkhOdpZw6k5PCas1qvvE8RgH/7LcaO1sLB6yRHuZX4e8vnI\r\nUaBvzTsITVuw8ALK26qgxse32/VPit7xoPatF5+xh9X3OtVmTQWlNgrSMMOi\r\nIZEOiGPVtTZ40R5eeDdw7tTssQUTYNEfDk4s3OjBSI6h+v6nsW2hZAxLsnOq\r\nars4oqzH6bJXIxqn68npGqEf/jmqoB5qsk+z15r8VVRUWf6wEpWiGh81JBff\r\nRRYgD/ahbnI5pzWprmvSDDCdA2xRxCtWRmGEbxNKItCkXbbQnU5vAKiuHqIG\r\n4OQLUyj9Gvbfsn/4no08zhIK8X4yNjpZDc8W6Qg4boRUmLlLxm4GuucNqM1u\r\nDOmFmKq7ONc6MqiqSy0wJyboxfpWiffuqeAKYtiaRrL6GQrgwumhnTvGZPYg\r\nMf/rWW002f2FSA5sJtCZPKMw3aIzX6iIMwr7PIDliydtgLgpDXJVEAWO1S0j\r\n8Rk22HfKMJCyBk5WvL9wJt0gy8O69LSne2hpMd6aHYC1dqKM62ZtKA1z0u1g\r\nAvf0jn6zKrqeXMcIiPl8WDxdnpa+3pkedfvcMyAHvFhV5GH3UQkczDaJ8zvI\r\njn/i7S63/603eojGqtD1rfPuGAhPASWrw6rGZgrXlDz58vwBGrc//bAdRZiP\r\n0aSEGbRMXdgb+Ync79/upyChiJGPZM3Kj2U=\r\n=bEh3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"},"directories":{},"maintainers":[{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/api-auditor_0.1.1_1660060645312_0.8430524495806899"},"_hasShrinkwrap":false},"0.2.0":{"name":"@amakovskyi/api-auditor","version":"0.2.0","type":"module","keywords":["integration","test","matcher","testing","validation"],"private":false,"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/amakovskyi/api-auditor.git"},"author":{"name":"amakovskyi"},"license":"MIT","bugs":{"url":"https://github.com/amakovskyi/api-auditor/issues"},"homepage":"https://github.com/amakovskyi/api-auditor#readme","dependencies":{"ts-node":"^10.7.0","jest":"^27.5.1","@types/jest":"^27.4.1","@types/node":"^17.0.26","ts-jest":"^27.1.4","@types/uuid":"^8.3.4","uuid":"^8.3.2"},"devDependencies":{"typescript":"^4.6.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"test","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node","testTimeout":10000},"gitHead":"aba788585154ddce815f6cbb431b0de52f28c371","description":"A NodeJS library for integration testing.","_id":"@amakovskyi/api-auditor@0.2.0","_nodeVersion":"16.16.0","_npmVersion":"8.16.0","dist":{"integrity":"sha512-SYXJLxEBCmjqmUEPxMEwRYzNpUTofYQIMo1n/y6wO2v4sUmGn+rlkfVhkUMhFuJfRkEjE0yaSF3atrC7HmvYlQ==","shasum":"41fd4647a8a2751618b127e864f8a84ba1ee80be","tarball":"https://registry.npmjs.org/@amakovskyi/api-auditor/-/api-auditor-0.2.0.tgz","fileCount":46,"unpackedSize":106549,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHK8A4jOzWUKjNfXAalwVVdybVcsdjFetlD3TJ96qBjmAiA1P27iStK8Xyq+R/lsVVkdt9ViXguNjK4G8asR+eda9A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8oaBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqgjQ/+KNo33QglChPZFddJikO6vCsHn0qxR/VjuD0v+2udmJrycJ5R\r\nRKGYtayHJfN9Up9ynd8G3cPoGM4gW39Qdhg1jMrfCu+zJ0m6eFNvOnmVzQpo\r\nrf0NZHpLqeqyVKrPg3IGmb/wxsPHQqMEfZs4GffRaXiv/B1b+uOKfvs3Mjrc\r\nhEsVA0fg3aAZbAzH6GWtq5WwN9Gmx5gO/+L0qJvoFy4FWy/EpzTHQUOwO7UV\r\nCSC5FpQD7NCm62Ec33BWtiImiwFbcUVke9tZY9QQ5ixpIOUewVcFuk7qioO1\r\n984qMHZmInpUh4Oz8DGjxEIVyei6utwp68LPuSonccKDBc5goGVq3i8iFOJD\r\nxy0Vjujxnnv361I/e1kM5QQmD019hiWcyqkqkr3f3EnZCgu2TikS1yRh2aSC\r\nOJI2uxIXy9CBzjYpeXjfXMLbfkHZGFa+QSMtlIMScVY5cd46KkvEdN9iZkH8\r\nuMzJBrBKxfrywJFmgh8Ji32GfAXTjtqLt+7GGSIWymNIou/URKfkewlAVwLt\r\nDOZzs8hZ4WDRFG/AvVkdVVmIEzvkiAx+d3yBHI9rDijv08c0RuO8Wd1anh8h\r\nzkFFZpV5hH4QjSoWQQgeBGoj3bRIIuvCeDtt2RZGvnBrFVgRrZeTKzTwg+7J\r\no5Em1CJm2IIsJqJE+ZArzDpZYJbdSYiP5aY=\r\n=mpiu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"},"directories":{},"maintainers":[{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/api-auditor_0.2.0_1660061313238_0.9473200385421192"},"_hasShrinkwrap":false},"0.2.1":{"name":"@amakovskyi/api-auditor","version":"0.2.1","type":"module","keywords":["integration","test","matcher","testing","validation"],"private":false,"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/amakovskyi/api-auditor.git"},"author":{"name":"amakovskyi"},"license":"MIT","bugs":{"url":"https://github.com/amakovskyi/api-auditor/issues"},"homepage":"https://github.com/amakovskyi/api-auditor#readme","dependencies":{"ts-node":"^10.7.0","jest":"^27.5.1","@types/jest":"^27.4.1","@types/node":"^17.0.26","ts-jest":"^27.1.4","@types/uuid":"^8.3.4","uuid":"^8.3.2"},"devDependencies":{"typescript":"^4.6.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"test","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node","testTimeout":10000},"gitHead":"ea374a26a13d9ec6cbbd277fa21a60a75cccd1fd","description":"A NodeJS library for integration testing.","_id":"@amakovskyi/api-auditor@0.2.1","_nodeVersion":"16.16.0","_npmVersion":"8.16.0","dist":{"integrity":"sha512-TVmyZp4zvhwbj1wasEvpXqIV4GZ9CQ+vWTWwAqi3nKsgFOl9sl/CGiiktXnoDJjKY+/bBHNahBNt+9HJvZ4yFw==","shasum":"7493458a0b2c383f7ff39c8faeac203c4245ae1c","tarball":"https://registry.npmjs.org/@amakovskyi/api-auditor/-/api-auditor-0.2.1.tgz","fileCount":49,"unpackedSize":111000,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHlKndbMh2eu5Sd14pmqxxmYPoTBpErXnwrFzcTuVKDKAiAtj2bVAE9jR8rSqGEA7b2lRCmqOuV2k520s0Gd5lwdjA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8pWYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3ZxAAgmx7OTexBtTbMc5gxARTujtzA7ZISWPn+U0fjiAriYUtgoS9\r\nAo7z3vZJseZJEpa/XG55/njp9d6IE0nMY+Er0hMF36bgRyletiNdH+fRVGjT\r\n9lTXlIbc1Lbi31iNswY/Kpnn9E6DUNp+4oHqS/UAo8SGlc9WJAV07n5ucj8J\r\nWn2jfJLGrXc5eCmMZksNY8sBXZd/eiKWwfLJmGtAiJZNSIyDATJu4LnAunCg\r\nwPIVZp58LPOL+6NTbh+F6jvsXUyqBHdxfH+MaD9r/anihDc3Tn3GNeEaQ8YX\r\nqRGc+6RS6AmFBEFYth0/aQOnf2rT0kM8C6mfCqcCIc02F5tcd7sA7CqiIW5r\r\nGljQ75PxWStYATEfy/EOsGn3LyW2rHU42q80bAgjiKVGyFO+RGV7+ABKstuF\r\nBi2ABkAyE7SE50z60VM/XkZ1Lf8J+Rzii1s6RV15Qh9/rsHTVIQH8owtzN/Y\r\nw2D2K4VrvE8F3DcBm+ZSbYpzCtfJm7mpj0D3qOwzIF6DvzPetYKe0CybjXKK\r\nBq2JEBezYWgiafSVdNjvF4LRSJ1uLQvSN7D53SaTIspeqaIywz7tp6KHsmsu\r\nKcc1x+DnCyWKWib1MSyIrvL5+6ps1u6LvoMr0LjJmcPqe8N/b/qHdVgmjskL\r\n2XPnXJnrEURCs+a5H+JfU5xY982j2vhzpNA=\r\n=N+5h\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"},"directories":{},"maintainers":[{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/api-auditor_0.2.1_1660065176521_0.7057857581674527"},"_hasShrinkwrap":false},"0.2.2":{"name":"@amakovskyi/api-auditor","version":"0.2.2","type":"module","keywords":["integration","test","matcher","testing","validation"],"private":false,"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/amakovskyi/api-auditor.git"},"author":{"name":"amakovskyi"},"license":"MIT","bugs":{"url":"https://github.com/amakovskyi/api-auditor/issues"},"homepage":"https://github.com/amakovskyi/api-auditor#readme","dependencies":{"ts-node":"^10.7.0","jest":"^27.5.1","@types/jest":"^27.4.1","@types/node":"^17.0.26","ts-jest":"^27.1.4","@types/uuid":"^8.3.4","uuid":"^8.3.2"},"devDependencies":{"typescript":"^4.6.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"test","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node","testTimeout":10000},"gitHead":"67bb022e42601eb10283f8b137b8749f8d24b1cd","description":"A NodeJS library for integration testing.","_id":"@amakovskyi/api-auditor@0.2.2","_nodeVersion":"16.16.0","_npmVersion":"8.16.0","dist":{"integrity":"sha512-61yU9g/oOg08tQuzG6hc+H6AyQLeaWca40miV6Y65cp3g0G4caDxDMwVQ+V7dWubDknxDPeIsl/hrLIxQzDaZA==","shasum":"54e35bc916ab7251f656381b3a8f80bf7b60ee72","tarball":"https://registry.npmjs.org/@amakovskyi/api-auditor/-/api-auditor-0.2.2.tgz","fileCount":49,"unpackedSize":115455,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHX4pEsbpPMYtMMaWde5WwBRsV6DsUqhFoW3rK8RJYzQAiB5jFfOLmKjTXnmhuhPcvbGj8U0MsGI9kZuvZ5ho+TVmQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi++mPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq25A//R5XL6yMNem04pKv8ADJkIAvUSTdTc7XmRSHH8WCmZ7GcZTfz\r\nIXPGU2d9FYYNUgFvdkHMJ5W6FlvmSO7Q2JjU6n6h9HqJNAtL8qNdoNmGvlNz\r\nSdl2D2Jd2HL1MK0aYQDUSxPlD6ms8xZLSFNO+GaOLrihnmXDc2j7Z8O0VS75\r\n7n9AKopYr4zUYgwKUUvlPbx5LKURBnW4h5ZiyuHZiQMZ+QxxCMpMCKT9NaDs\r\nmBpPqw0G0tzPl3oHKCSFytxheb+O8fC2Ern07kJrG6fIgMPiFwy5AGzJDVPR\r\nPwqfazEv9NgewWzrlb/1WATd0cpGaIH2Yj+zCcT41UgdLJz3iB4XwdypODst\r\noZGYLOJPL+sD+440u7cFfJ4DMwc6hfSfUg/LF//7r00RdR+YM2VACKS1/91I\r\nJqbDLZ/WIPsTBVuiZU2CA3L7dCc/w6ZkiF6denQUvbfwJGjRDJvER7jxW7Zx\r\nkZ+XEq/zQkDz6VLOZn4lIujWfBXobLb910qECEIFvllbAq5cAe52SwSUhmWF\r\nInpVuFkRN9Mk6emkiC9oVQYMxh7cPaD4D6GIbhbUgl5rS8fdrz98IZQocFOv\r\nAdg+Fl9RT9LbaF7FKSPg4Q1lXJSV+CK+18KEF9MNY+FtoSPJkt1zKMHpOFZn\r\n0XDy1HRSU9a/FU9VE5GbAveMSSSHUgnCCbE=\r\n=RJKF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"},"directories":{},"maintainers":[{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/api-auditor_0.2.2_1660676495556_0.8706029717319919"},"_hasShrinkwrap":false},"0.2.3":{"name":"@amakovskyi/api-auditor","version":"0.2.3","type":"module","keywords":["integration","test","matcher","testing","validation"],"private":false,"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/amakovskyi/api-auditor.git"},"author":{"name":"amakovskyi"},"license":"MIT","bugs":{"url":"https://github.com/amakovskyi/api-auditor/issues"},"homepage":"https://github.com/amakovskyi/api-auditor#readme","dependencies":{"ts-node":"^10.7.0","jest":"^27.5.1","@types/jest":"^27.4.1","@types/node":"^17.0.26","ts-jest":"^27.1.4","@types/uuid":"^8.3.4","uuid":"^8.3.2"},"devDependencies":{"typescript":"^4.6.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"test","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node","testTimeout":10000},"gitHead":"85cb04ce5127d75c513fef4cfae156fcb58c8189","description":"A NodeJS library for integration testing.","_id":"@amakovskyi/api-auditor@0.2.3","_nodeVersion":"16.16.0","_npmVersion":"8.16.0","dist":{"integrity":"sha512-6DYKlh7pMW6r4xeougKKu+oMRMAp6dO3A5/Aw+YOJapQlvrY+CIlKNRcXGE18lpptLPlS9VvfomAA9mCr6Fq3Q==","shasum":"2661771f659c9fd3e2aaf560e522c56472b53281","tarball":"https://registry.npmjs.org/@amakovskyi/api-auditor/-/api-auditor-0.2.3.tgz","fileCount":49,"unpackedSize":123007,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAOSkm4lWB12wRoTUUXS0M784Jou/4+f7zsPedhinkqjAiB9slZPAjCCWU1giOa+XJ7p+5OajGhMyVrD0OTpHUqlxA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCijxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEYA//RSEMyd2uQZ/8G0jG7auv0vXUjUsVmK8SARJyS1vt8ehH67CT\r\n8N4hlz1niWYQryW19VEyqp5pL3UfVvtMCFiOWTZ16hB5m9LPGQ+QtjBRfUh5\r\n02dCSXnB0ZG0LmDBCZSoCZZ/AG+dCnuE4dC53skRdrOJY4VIjxs7cASf953M\r\nviqJoWo4ZdO+OwEMi/ItkTYpHqhsyTa06QwoXK/23zhCMMjM7k3pL6Fr+ReK\r\ngzB7pvntDRCVc3t+tvzH9dQ1efUGJcFzB681QCrK1JhYxlcAeOgn5+WZ7mzO\r\nsG7x2inN4J96dfaJRrU8AITEkviBp7oRDGo2ttM1ehiFcrXdErNwKTVuUH5b\r\n/lkfIKEQXxFsfeP7u4cf8e5xkEOqu/J3JgdmLQfvrMG8mq1bIvL72mBSEy44\r\nHz3voyISSIFnbsN5WbKdixnHcFXM0YUd33tdLMkLqkd5o2BZshNOllBH2Q5w\r\nXlMdNj14ARJoManglRIB4CZ/h+yI/2ZPKHHSZ/79+Tx4FtnD3keiz0g0PjY2\r\nnkiSZt9jdgoy9sUA3Oo80L3K+0xJrKzRKB7/GbSiId5OSHb/agQ4lK8jO5iN\r\nkejtyRsl8ZyPGK1zTABArq9E/GJXGTrz446ctpATlSpchyUJw7TNoY45I0Wg\r\ndOphu8HeWlcH+LAbikCcLj06LcvW1nHrrMo=\r\n=xPFv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"},"directories":{},"maintainers":[{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/api-auditor_0.2.3_1661610224981_0.09233503137924814"},"_hasShrinkwrap":false},"0.2.4":{"name":"@amakovskyi/api-auditor","version":"0.2.4","type":"module","keywords":["integration","test","matcher","testing","validation"],"private":false,"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/amakovskyi/api-auditor.git"},"author":{"name":"amakovskyi"},"license":"MIT","bugs":{"url":"https://github.com/amakovskyi/api-auditor/issues"},"homepage":"https://github.com/amakovskyi/api-auditor#readme","dependencies":{"ts-node":"^10.7.0","jest":"^27.5.1","@types/jest":"^27.4.1","@types/node":"^17.0.26","ts-jest":"^27.1.4","@types/uuid":"^8.3.4","uuid":"^8.3.2"},"devDependencies":{"typescript":"^4.6.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"test","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node","testTimeout":10000},"gitHead":"c4b4019acf10870373057b6467a15c01558743ca","description":"A NodeJS library for integration testing.","_id":"@amakovskyi/api-auditor@0.2.4","_nodeVersion":"16.16.0","_npmVersion":"8.16.0","dist":{"integrity":"sha512-EznnKq63f2gPmwlQ5UXSy4aRHMu4/cBUcoB9CtNTg3d8qnNtICNkrs0hGiB/cm7nL7j+YN+z9lBxfqSqPFnkJQ==","shasum":"cd2ee629f3568a464efa6ea67f34e7db3f734b5a","tarball":"https://registry.npmjs.org/@amakovskyi/api-auditor/-/api-auditor-0.2.4.tgz","fileCount":49,"unpackedSize":122788,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICo92bnEdDmLV5HVZ/C2wCJBoALzBbBt+3skojRfvDJ4AiEAlEzyUHzivOL902gKjemNKowpqHHkM6kfK9WpjIEIaOA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCik3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrSRQ/9GRxfXpnvwk8BW1490V2RT2TQxwBFVk9enfNlRcyt9+FFVDpH\r\nfOczCRMUbtypyxVaX17ItRw67IJJ02qGJHuAgCvbRjeL3bMOLb2IawiESYGV\r\nzej1x4Mum7kig7Li5P5oEAhLVRjXDSeaLtylDsaoHeteKhPDIoaesCzdaa7R\r\nEKNubuiYy+QB97dn4r+gRB5Qu4g+b5lnJPYYBelM6rXGS1/Xk3cKpYhAjFpL\r\n/rLVu1rdzJCbDLeIVTTekpgqwlR8O0h4wrItZnlnIU14cpMeid6FpTxwFztU\r\n6FBCfzovX41i8boShO4D2pPCMxNCKdsfsyoFylCh9i0whfsT20kUIm5h6nKG\r\noiBOLQRJghB+r64XhlQ0SQ3RC4mRj29EmO7+iAJbYIDrYY5ECcZsFzrVEWqY\r\nhxtu67eqmOGCCcpWiYPxz9n769OP/wNzKuT6ripH/Q9ReoJft6tGKNANTXOj\r\nNyDwosLQQ+e+Uy0pULP7tu0HqEwx06KMDNi63cE1nMjKK2TPjvMtHXwzRwk5\r\nvXgzhkcBMzgz7R150jKm03OZw5/TiprHYkblR+KG465gEEZ6wbh57qJXMCTf\r\nj1Q9FgwZgHkUP6B1b07UhLDqOYgUYzDBcVdAtW974YAOQJ5MT3df8uPBW8BJ\r\n8XNAikdvLNdY3c/xPUFGEv5LgvLcHY9MWJU=\r\n=O76b\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"},"directories":{},"maintainers":[{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/api-auditor_0.2.4_1661610295543_0.5410371184682283"},"_hasShrinkwrap":false},"0.2.5":{"name":"@amakovskyi/api-auditor","version":"0.2.5","type":"module","keywords":["integration","test","matcher","testing","validation"],"private":false,"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/amakovskyi/api-auditor.git"},"author":{"name":"amakovskyi"},"license":"MIT","bugs":{"url":"https://github.com/amakovskyi/api-auditor/issues"},"homepage":"https://github.com/amakovskyi/api-auditor#readme","dependencies":{"ts-node":"^10.7.0","jest":"^27.5.1","@types/jest":"^27.4.1","@types/node":"^17.0.26","ts-jest":"^27.1.4","@types/uuid":"^8.3.4","uuid":"^8.3.2"},"devDependencies":{"typescript":"^4.6.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"test","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node","testTimeout":10000},"gitHead":"fecd370d0b31355744bc68d826f96552de988536","description":"A NodeJS library for integration testing.","_id":"@amakovskyi/api-auditor@0.2.5","_nodeVersion":"16.16.0","_npmVersion":"8.16.0","dist":{"integrity":"sha512-Jsk691giU3bcU0pQWgwe92PcujXr+FW0QCl4OFTGZBo/Fam5IdBeeI60u/L+yv9o/FUI5NDkpu6YidBNPK7UlQ==","shasum":"acb3f1329c9d4b920771d092cfa7f4a72d556d44","tarball":"https://registry.npmjs.org/@amakovskyi/api-auditor/-/api-auditor-0.2.5.tgz","fileCount":49,"unpackedSize":123533,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBnSxdCoSEmFfcXJroZXzF+czF3DFD2Yykml/xuXapwwIhAO5b+hWfzBYMzh2dmk21DprnSqO08Rri5qzd2fqD+Kk/"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/Nj4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7Xw/9EyX1hi5ndJMOIKybMkee0wC8a1/HCvxaBcZS+cWIjottdA30\r\nWtdzHRahhqyWy07CppTAXgdkH9ZNcvq1fILzZbWzfWKF7664iUVl4lQvW+DQ\r\nIkX11KlFsgIm6fNPeq7nl0zqzVyNw9Cf4yuPur4JPbD3A8XqlW5IIsUnihsH\r\nIlg9XH8yRsiBzGggUbxf3R80zdGRm/+FH54urnbJHU8yht5Eo3z4QohDDxGB\r\nVsLHHHSpJ95TOKwwE6hNzq91Z7aE+tajTJE7LwOj/3yC14Px8bOw8BS3qQJe\r\n7Ih6elQKKV+V8P4oWuu5RkEOU84/O1Rwr9XxYwjtL44+3l/g+lgJfMiPcpSo\r\nG8r2H1TJdxxoOhjx+odC2frME/eyhpPK0yBr1rp1FmYgfhEf1Qu0BHmvoiz7\r\nqfXx11No6zAFua3DLLUFNolFLSNjw+n0+KEx08PAKd3YkWUA8QMwzJZH5Ahn\r\n03lze7WXWh0Spqia6i8KNbfia1WRv9E0TCK2Fl4PpiLVr4svKC+i3LYEG9c+\r\nibUdBw6B4oObu1FYD5R7z+dRxnt/XQiZicn0HaiDBSO3MisfWa/FVZuFPnkl\r\n5GoK2m6polAjJs45q2NL3mz9y6Ff6u96FOUF9WXhypu5VFYFbp5zF+PzIbaQ\r\nrSAphTxIcvIeMDUFndnONwOZBOdwbcU1lCw=\r\n=x0lI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"},"directories":{},"maintainers":[{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/api-auditor_0.2.5_1677515000690_0.876888376801733"},"_hasShrinkwrap":false}},"time":{"created":"2022-08-09T15:53:33.613Z","0.1.0":"2022-08-09T15:53:33.859Z","modified":"2023-02-27T16:23:21.014Z","0.1.1":"2022-08-09T15:57:25.460Z","0.2.0":"2022-08-09T16:08:33.520Z","0.2.1":"2022-08-09T17:12:56.754Z","0.2.2":"2022-08-16T19:01:35.764Z","0.2.3":"2022-08-27T14:23:45.199Z","0.2.4":"2022-08-27T14:24:55.725Z","0.2.5":"2023-02-27T16:23:20.923Z"},"maintainers":[{"name":"amakovskyi","email":"andrey.makovskiy@outlook.com"}],"description":"A NodeJS library for integration testing.","homepage":"https://github.com/amakovskyi/api-auditor#readme","repository":{"type":"git","url":"git+https://github.com/amakovskyi/api-auditor.git"},"author":{"name":"amakovskyi"},"bugs":{"url":"https://github.com/amakovskyi/api-auditor/issues"},"license":"MIT","readme":"# api-auditor\r\n\r\nA NodeJS library for integration testing.\r\n\r\nNPM: [https://www.npmjs.com/package/@amakovskyi/api-auditor](https://www.npmjs.com/package/@amakovskyi/api-auditor)\r\n\r\nSource code: [https://github.com/amakovskyi/api-auditor](https://github.com/amakovskyi/api-auditor)\r\n\r\n# Matchers. Validate API responses easily\r\n\r\n**Matchers** API allows to easily validate objects.\r\n\r\nEXAMPLE\r\n\r\nAssume we need to validate API response.\r\n\r\n```typescript\r\nlet response = client.get('https://api.com/myUserInfo')\r\n```\r\n\r\nResponse content:\r\n\r\n```json\r\n{\r\n  \"id\": \"98837f2e-69f9-4083-b3f6-a9f90699a0bd\",\r\n  \"firstName\": \"John\",\r\n  \"lastName\": \"Doe\",\r\n  \"numberOfPosts\": 18,\r\n  \"description\": null\r\n}\r\n```\r\n\r\nIt needed to validate only id format and first/last name.\r\n\r\nPure Jest way:\r\n\r\n```typescript\r\nexpect(UuidUtils.isValid(response.id)).toBeThruly()\r\nexpect(response.firstName).toEqual('John')\r\nexpect(response.lastName).toEqual('Doe')\r\n```\r\n\r\n**api-auditor** matchers way:\r\n\r\n```typescript\r\nvalidateMatch(response, {\r\n  id: Matchers.uuid(),\r\n  firstName: 'John',\r\n  lastName: 'Doe',\r\n})\r\n```\r\n\r\nIt needed to validate general response format.\r\n\r\nPure Jest way:\r\n\r\n```typescript\r\nexpect(UuidUtils.isValid(response.id)).toBeThruly()\r\nexpect(typeof response.firstName).toEqual('string')\r\nexpect(typeof response.lastName).toEqual('string')\r\nexpect(typeof response.numberOfPosts).toEqual('number')\r\nexpect(Number.isInteger(response.numberOfPosts)).toBeThruly()\r\nif (response.description != null) {\r\n  expect(typeof response.description).toEqual('string')\r\n}\r\n```\r\n\r\n**api-auditor** matchers way:\r\n\r\n```typescript\r\nvalidateMatch(response, {\r\n  id: Matchers.uuid(),\r\n  firstName: Matchers.string(),\r\n  lastName: Matchers.string(),\r\n  numberOfPosts: Matchers.number({ shouldBeInteger: true }),\r\n  description: Matchers.string({ canBeNull: true }),\r\n})\r\n```\r\n\r\nIn addition to simple and clear way of writing the code there will be a clear and understandable diff in console log in\r\ncase of match error.\r\n\r\n### HOW TO USE\r\n\r\n```typescript\r\nvalidateMatch(objectToValidate, expectedMatch)\r\n```\r\n\r\n```expectedMatch``` need contain only fields needed to validate. Anything else, which is not described\r\nin ```expectedMatch``` but present in ```objectToValidate``` is ignored, so it is possible to put only those fields\r\nwhich needed to be validated in ```objectToValidate```.\r\n\r\n### VALUES\r\n\r\nPlace any primitive value to validate strict equality: ```undefined```, ```null```, ```string```,```number``` etc.\r\n\r\n```typescript\r\nvalidateMatch(objectToValidate, {\r\n  index: 1,\r\n  name: 'Some name',\r\n  description: null,\r\n})\r\n```\r\n\r\n### OBJECTS\r\n\r\nPlace object inside object or array to validate object contents. Fields, not included in match, are not validated.\r\n\r\n```typescript\r\nvalidateMatch(objectToValidate, {\r\n  someInnerObject: {\r\n    index: 1,\r\n    id: Matchers.uuid(),\r\n    name: 'Some name',\r\n    innerItems: ArrayMatchers.any(),\r\n  }\r\n})\r\n```\r\n\r\n### ARRAYS\r\n\r\nPlace items inside array to validate array contents directly.\r\n\r\n```typescript\r\nvalidateMatch(arrayToValidate, [1, 2, 3])\r\n\r\nvalidateMatch(arrayToValidate, [Matchers.number(), Matchers.string()])\r\n\r\nvalidateMatch(arrayToValidate, [\r\n  { index: 1, id: Matchers.uuid(), name: 'One' },\r\n  { index: 2, id: Matchers.uuid(), name: 'Two' },\r\n  { index: 3, id: Matchers.uuid(), name: 'Three' },\r\n])\r\n```\r\n\r\n### COMPOSITE MATCHERS\r\n\r\n```\r\nmatchAll(matches: any[])\r\n```\r\n\r\nMatcher which validates object for all ```matches``` and raises first unmatched error in case if validation fail.\r\n\r\n```\r\nmatchAny(matches: any[])\r\n```\r\n\r\nMatcher which validates object for first successful match from ```matches``` and raises error in case there are no\r\nsuccessful matches.\r\n\r\n### HOW IT WORKS\r\n\r\n```typescript\r\n// make a structural copy of \"data\" variable with expectation it matches to \"innerExpectedMatcher\"\r\nlet expectedMatch = ValueMatcher.copyWithExpectedMatch(data, expectedMatcher)\r\n// natural Jest comparison way\r\nexpect(data).toEqual(expectedMatch);\r\n```\r\n\r\n```ValueMatcher.copyWithExpectedMatch``` just making comparable copy of ```data```, which is named **comparison value**.\r\n\r\nAfter that natural Jest comparator is used. In case, if ```data``` is not matches to ```expectedMatcher```\r\nthen ```ValueMatcher.copyWithExpectedMatch``` will generate error object, which will raise comparison error\r\ninside ```expect(data).toEqual(expectedMatch)```. With this way log exactly shows place and structure of matcher\r\nfailure, easy to read and understand.\r\n\r\n### FULL LIST OF MATCHERS\r\n\r\nBelow is list of all matcher with link to documentation\r\n\r\n| MATCHERS LIST                                                                       |\r\n|-------------------------------------------------------------------------------------|\r\n| [Matchers.anything()](docs/Matchers.md#matchersanything)                            |\r\n| [Matchers.equalsTo()](docs/Matchers.md#matchersequalsto)                            |\r\n| [Matchers.absent()](docs/Matchers.md#matchersabsent)                                |\r\n| [Matchers.absentOrNull()](docs/Matchers.md#matchersabsentornull)                    |\r\n| [Matchers.anyDefined()](docs/Matchers.md#matchersanydefined)                        |\r\n| [Matchers.anyNotNull()](docs/Matchers.md#matchersanynotnull)                        |\r\n| [Matchers.string()](docs/Matchers.md#matchersstring)                                |\r\n| [Matchers.uuid()](docs/Matchers.md#matchersuuid)                                    |\r\n| [Matchers.boolean()](docs/Matchers.md#matchersboolean)                              |\r\n| [Matchers.dateTime()](docs/Matchers.md#matchersdatetime)                            |\r\n| [Matchers.dateTimeApprox()](docs/Matchers.md#matchersdatetimeapprox)                |\r\n| [Matchers.number()](docs/Matchers.md#matchersnumber)                                |\r\n| [ObjectMatchers.any()](docs/Matchers.md#objectmatchersany)                          |\r\n| [ObjectMatchers.only()](docs/Matchers.md#objectmatchersonly)                        |\r\n| [ObjectMatchers.exactly()](docs/Matchers.md#objectmatchersexactly)                  |\r\n| [ArrayMatchers.any()](docs/Matchers.md#arraymatchersany)                            |\r\n| [ArrayMatchers.uniqueItems()](docs/Matchers.md#arraymatchersuniqueitems)            |\r\n| [ArrayMatchers.containingAll()](docs/Matchers.md#arraymatcherscontainingall)        |\r\n| [ArrayMatchers.containingAny()](docs/Matchers.md#arraymatcherscontainingany)        |\r\n| [ArrayMatchers.containingOnly()](docs/Matchers.md#arraymatcherscontainingonly)      |\r\n| [ArrayMatchers.containingExactly()](docs/Matchers.md#arraymatcherscontaininexactly) |\r\n| [ArrayMatchers.notContaining()](docs/Matchers.md#arraymatchersnotcontaining)        |\r\n\r\n### CUSTOM VALUE MATCHERS\r\n\r\nIt is possible to create you own matchers.\r\n\r\nType 1. Standard matcher with auto check for ```canBeNull``` and ```optional``` before pass value in you match\r\nvalidation code.\r\n\r\n```typescript\r\nexport function ownMatcher(options?: {\r\n  canBeNull?: boolean,\r\n  optional?: boolean,\r\n  yourCustomOption?: boolean,\r\n}) {\r\n  return valueMatcher('ownMatcher', options, value => {\r\n    if (value instanceof YourType) {\r\n      return ValueMatcher.typeError('YourType');\r\n    }\r\n    if (yourCustomOption) {\r\n      // DO CHECK\r\n    }\r\n    return ValueMatcher.success();\r\n  });\r\n}\r\n```\r\n\r\nType 2: Matcher with only your own match validation checks.\r\n\r\n```typescript\r\nexport function ownCustomMatcher(options?: {\r\n  yourCustomOption?: boolean,\r\n}) {\r\n  return customValueMatcher('ownCustomMatcher', options, value => {\r\n    if (value == null) {\r\n      return ValueMatcher.error('Message');\r\n    }\r\n    if (value instanceof SomeType) {\r\n      return ValueMatcher.typeError('SomeType');\r\n    }\r\n    if (yourCustomOption) {\r\n      // DO CHECK\r\n    }\r\n    return ValueMatcher.success();\r\n  });\r\n}\r\n```\r\n\r\n**Type 1** matcher automatically do checks for options ```canBeNull``` and ```optional``` if they are\r\npassed and by default does not accept missing value, ```undefined``` or ```null``` no matter is ```canBeNull```\r\nand ```optional``` passed at all. **Type 2** immediately passes value to you validation code.\r\n\r\nYou need to return one of following from your validation code:\r\n\r\n* ```ValueMatcher.success()``` - validation is successful\r\n* ```ValueMatcher.error(message)``` - validation is failed, pass a corresponding message to it\r\n* ```ValueMatcher.typeError(typeName)``` - validation is failed because of wrong type of ```value```\r\n* ```ValueMatcher.value(value)``` - specific case when you need to return **comparison value**. When previous error will\r\n  build a specific error object which will raise specific error in comparison log, this value will be just compared to\r\n  actual value and raise natural diff in case if they are different.\r\n\r\nUsing inner matcher validations.\r\n\r\nIf you try to use ```validateMatch()``` inside validation code it will just throw error. If it needed to build inner\r\nvalidation use specific methods:\r\n\r\n```typescript\r\nlet expectedMatch = ValueMatcher.copyWithExpectedMatch(value, innerExpectedMatcher)\r\nlet isMatch = MatcherUtils.isFullyEquals(expectedMatch, value)\r\n```\r\n\r\nIn result ```isMatch``` will contain your match result, when expectedMatch will contain **comparison value**.\r\n\r\n# Random\r\n\r\nUseful random utils for generating random values, and also randomizing arrays.\r\n\r\n| RANDOM LIST                                                                                    |\r\n|------------------------------------------------------------------------------------------------|\r\n| [Random.int()](docs/Random.md#randomint)                                                       |\r\n| [Random.intBetween()](docs/Random.md#randomintbetween)                                         |\r\n| [Random.string()](docs/Random.md#randomstring)                                                 |\r\n| [Random.text()](docs/Random.md#randomtext)                                                     |\r\n| [Random.uuid()](docs/Random.md#randomuuid)                                                     |\r\n| [Random.boolean()](docs/Random.md#randomboolean)                                               |\r\n| [RandomArray.singleItem()](docs/Random.md#randomarraysingleitem)                               |\r\n| [RandomArray.mixedCopyOf()](docs/Random.md#randomarraymixedcopyof)                             |\r\n| [RandomArray.someItems()](docs/Random.md#randomarraysomeitems)                                 |\r\n| [RandomArray.splitAll()](docs/Random.md#randomarraysplitall)                                   |\r\n| [RandomArray.splitToLengths()](docs/Random.md#randomarraysplittolengths)                       |\r\n| [RandomArray.splitToLengthsWithOverlap()](docs/Random.md#randomarraysplittolengthswithoverlap) |\r\n\r\n# Pool\r\n\r\nUnder development\r\n\r\n","readmeFilename":"README.md","keywords":["integration","test","matcher","testing","validation"]}