{"_id":"validate-peer-dependencies","_rev":"10-19266c7c7f1e88520535284f00df3a6b","name":"validate-peer-dependencies","dist-tags":{"latest":"2.2.0"},"versions":{"1.0.0":{"name":"validate-peer-dependencies","version":"1.0.0","description":"Validate that the peerDependencies of a given package.json have been satisfied.","repository":{"type":"git","url":"git+ssh://git@github.com/rwjblue/validate-peer-dependencies.git"},"license":"MIT","author":{"name":"Robert Jackson","email":"me@rwjblue.com"},"main":"index.js","scripts":{"lint":"eslint .","test":"npm-run-all lint test:jest","test:jest":"jest"},"dependencies":{"resolve-package-path":"^3.1.0","semver":"^7.3.2"},"devDependencies":{"eslint":"^7.11.0","eslint-config-prettier":"^6.13.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.4","fixturify-project":"^2.1.0","jest":"^26.6.0","npm-run-all":"^4.1.5","prettier":"^2.1.2","release-it":"~14.1.0","release-it-lerna-changelog":"^2.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"release-it":{"plugins":{"release-it-lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}},"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"}},"gitHead":"c1c170e8f9582d43becfd09c4312690c011db67a","bugs":{"url":"https://github.com/rwjblue/validate-peer-dependencies/issues"},"homepage":"https://github.com/rwjblue/validate-peer-dependencies#readme","_id":"validate-peer-dependencies@1.0.0","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-9T1pR9gopOuQYDMT0ApUPiRt1MOsSCJUm56mr55Hy7RDx7dyFHa6SnEXVP5wJuFyJ8pWyZoYxfFo4raEspRbUg==","shasum":"d82f1c2020eef96d331723c2cef15de94063adf3","tarball":"https://registry.npmjs.org/validate-peer-dependencies/-/validate-peer-dependencies-1.0.0.tgz","fileCount":5,"unpackedSize":12080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjvtmCRA9TVsSAnZWagAAfO4P/jG1PuF3pBs3NmlxauXV\nQhmHh19NcchFJXG5j+2I2tbOZY1rVT5o/68qFd6HSjrS9VXilMLW0rsm1yJ6\nEmBC0S32B/IoCaqfrjvJw3s2GkkSGb2a2RPAzXQwIjugeV4xizUi04azsyZx\nYvigt7dJrNQzCFZhQPrwYXTCLvFCHN1ATqht+LZ6FpMbDLhAMrjjQNXWTmWU\njX26n1GcfWDk1iCh97a0MOCScof64TbqEVuWEK9mffg66STblhCaI2elnnqb\n5lg6JPgpUqK5hS/OHWFTT/cCNH680uChjyvDEoRIeoSSoyIWQqDgOie9xjcb\nG2uFbDP4LgR4aIcYq6oxXDMxoruuW9++Rj8ozQMTmgCi9FICjNcXQutuI7TD\nArPqGcEFylb8cDaOSyls4SjowMD0FhgPG8WpN+gEf0vLNxSiPrfUG581DpSE\nsVDo8bV5PoeKuN4IXsQrtSXWrNVfVLqSY0IOkreiWuislCagUqvRF/Y/sevN\nzHj4QQRPcPCcnOG+YInWUXEjk999Sxt7pdJkEPQcFhw3tpjColFVZtef++H/\n4TSGaJ7dlw9G3oFtzQmccOxIlVfotgkl03KO1UmmXpY9lWfdfRUwTgWqu0C0\nacHPgDnZwyavJdRwgmf5+oAGLX4fK0HJ+Nr+3qlLyoaomN4DG1ACwNenXJnh\nSI69\r\n=6TJJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICWLly5pzjP3dT+gTvbPqI5ij5TRqEhBEpmZlk3e6+mHAiAng4E+wWDogddA+BrukrXN9K3qOGJXnmbjd8/Ypo1Djg=="}]},"maintainers":[{"name":"rwjblue","email":"me@rwjblue.com"}],"_npmUser":{"name":"rwjblue","email":"me@rwjblue.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate-peer-dependencies_1.0.0_1603205990335_0.6622567434579683"},"_hasShrinkwrap":false},"1.1.0":{"name":"validate-peer-dependencies","version":"1.1.0","description":"Validate that the peerDependencies of a given package.json have been satisfied.","repository":{"type":"git","url":"git+ssh://git@github.com/rwjblue/validate-peer-dependencies.git"},"license":"MIT","author":{"name":"Robert Jackson","email":"me@rwjblue.com"},"main":"index.js","scripts":{"lint":"eslint .","test":"npm-run-all lint test:jest","test:jest":"jest"},"dependencies":{"resolve-package-path":"^3.1.0","semver":"^7.3.2"},"devDependencies":{"eslint":"^7.11.0","eslint-config-prettier":"^6.13.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.4","fixturify-project":"^2.1.0","jest":"^26.6.0","npm-run-all":"^4.1.5","prettier":"^2.1.2","release-it":"^14.2.0","release-it-lerna-changelog":"^3.0.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"release-it":{"plugins":{"release-it-lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}},"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"}},"gitHead":"b8a72b9772dddd78ae803996768d46ebddbae7b0","bugs":{"url":"https://github.com/rwjblue/validate-peer-dependencies/issues"},"homepage":"https://github.com/rwjblue/validate-peer-dependencies#readme","_id":"validate-peer-dependencies@1.1.0","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-eHHxI3fNMqu8bzWPRWWgV72kBJkWwRCeEua7yC7UI6dsqC55orhxKAC3uyQfCjjToOyAZ8mpNrbQH+NMoYBn1w==","shasum":"8240a115df121ea35b0bb082255b38b5c591d7e1","tarball":"https://registry.npmjs.org/validate-peer-dependencies/-/validate-peer-dependencies-1.1.0.tgz","fileCount":5,"unpackedSize":17821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjzDTCRA9TVsSAnZWagAALyQQAJLwWzkXv8pohzD2Tkbo\nP/lIE9DIlaOoP1+c36a59hH9qVJ7AvQ9cKx1Y9+BvlxE95OE6MSJyp1D6SXi\nQk5CY3A3bQ8mHKtGcHNUNGEDmmlq1CA4qSPiODKLA9h90y1tncT8YhXHoX+h\nR50PnQbQnTJhIp40ik9eH+JKS/XT/tQPy0nd+q+mzJutv+LmT1of0vcEWcbs\nDBcXBAXn9oOAfhxhC85bCBI7Wbg/txH+GiOSG2h6Xt0309M3+PQJE99fwYp9\njw4C1zn2eUS4RbXesuoyZ1CRIQ+7dIKL2lsq3s1c0gdcZlQGV5tTJ0KgYOnR\nCQLqT1jyRFHpy02EqCLxQfPKA5VKqO2owtpMvFsDu2EJtsx7aexjxa6QjzKp\nhvZFUrZANCTzq1qGT3nI0FN+fKjQiYtanwi9gAVXkVC63bsPSEPTbiFILMjk\neM3+fACCgYo7k4zCMPMvCbGqxrtXHL8PalC9v391TrPE/nCl7DUBxF78HFOs\nzAeNtdYiT6zw0xrcrPCdZdfEAWjGn54CdZ0OpyK4s2qj4841waU3MP9Rpa+i\nEv9KcET+XNB0ToKgLHpTkrb/uOtT/2MdNzx8qN4wv0WYTrQ726WBLQJqfxou\nWsP7J1ChMemvAbnrnA01f8ynu3DB7Xo30XELTYb9HTYltViGf3gYG1+xuNTu\nqkCP\r\n=knzb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLqfb8jdEpEX5MbrDGzZ6tJLJ7nIHwp6e1phczfeCXRQIhAI2T/ddgDhKddLwASSpH2vj8y+6tFiZasORDtS3DwnKU"}]},"maintainers":[{"name":"rwjblue","email":"me@rwjblue.com"},{"name":"scalvert","email":"steve.calvert@gmail.com"}],"_npmUser":{"name":"rwjblue","email":"me@rwjblue.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate-peer-dependencies_1.1.0_1603219666820_0.39941957695026264"},"_hasShrinkwrap":false},"1.2.0":{"name":"validate-peer-dependencies","version":"1.2.0","description":"Validate that the peerDependencies of a given package.json have been satisfied.","repository":{"type":"git","url":"git+ssh://git@github.com/rwjblue/validate-peer-dependencies.git"},"license":"MIT","author":{"name":"Robert Jackson","email":"me@rwjblue.com"},"main":"index.js","scripts":{"lint":"eslint .","test":"npm-run-all lint test:jest","test:jest":"jest"},"dependencies":{"resolve-package-path":"^3.1.0","semver":"^7.3.2"},"devDependencies":{"eslint":"^7.11.0","eslint-config-prettier":"^6.13.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.4","fixturify-project":"^2.1.0","jest":"^26.6.0","npm-run-all":"^4.1.5","prettier":"^2.1.2","release-it":"^14.2.0","release-it-lerna-changelog":"^3.0.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"release-it":{"plugins":{"release-it-lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}},"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"}},"gitHead":"a1ad8ef8becaeedb27201a3a636a3ce290ad40cf","bugs":{"url":"https://github.com/rwjblue/validate-peer-dependencies/issues"},"homepage":"https://github.com/rwjblue/validate-peer-dependencies#readme","_id":"validate-peer-dependencies@1.2.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-nd2HUpKc6RWblPZQ2GDuI65sxJ2n/UqZwSBVtj64xlWjMx0m7ZB2m9b2JS3v1f+n9VWH/dd1CMhkHfP6pIdckA==","shasum":"22aab93c514f4fda457d36c80685e8b1160d2036","tarball":"https://registry.npmjs.org/validate-peer-dependencies/-/validate-peer-dependencies-1.2.0.tgz","fileCount":5,"unpackedSize":20091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZfOiCRA9TVsSAnZWagAAZecP/RM9ZYX58kFyvjFQMq6L\nZCKnf3C/TkYYJ82/EQfIrg95m0vDIMWf5Ll+P5li5Tdk/XyqpwNPNVjfE8gJ\n2LxasjNdLn2zoenkIaQ2FWhsogB9jQ82BRkURNJkmBhGwvMnEPOPiFJLBAlw\nzAm/CxaCrCHx3lSI1NZVk4Tii1Gu9PwXJpavY3QqPwy7XpzNj2Q8o0L0dV/0\nV6QrlJIiMb1rGjZgtboJTxALij9VgaYOo4/E/1TCIfC3O019qyqCEmylEZ89\nqIqip0AArnyBz+beNhV6UZUUC41Vr0hVJJAvEf3vzyR3+Cq/etg8TF9dlc7X\nljBtmY5gpMGRyngVe9C2Wj0YED3IQTBp0NR4feA/Ks+ebQUMkKR6rIQeBc8m\nDzmoTcKLKSg4Q9O1wyFYGm8lH4UBqluHfrTOaghSXlyyXySe1kWv3NMdPZb9\nqoaWhcS3Ywzvioh7fYIkZ6wlwj/LU918EWWo6waRP96H8gtJ2auqo5nieqFS\n2jCWat/A1+m8xij6QcJtX1ujoGcCBc2aCvHUCc/dNLg90zwVWZ1gsqXipRLZ\n7yhJoJdDAWhXVRqWdUxQd2+feGY7hARHYj+F/KFaD0rf7jMp5tHcXWTW3Xcg\ndbthjRBE8FXrk0J/3XkToMCKT+Pd2GsSes7J2jTHy+HxWiLTHhII/oVFxMuG\nGxIT\r\n=VQPp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbOnqMi/BusU7ZytFBAc/KMqfFDDSxf4Ur7vPXQKX22gIhANjMR2NgQcinKOpOXgP4SlGez6vQ955KT5e0SEMFB2un"}]},"_npmUser":{"name":"hjdivad","email":"npm@hjdivad.com"},"directories":{},"maintainers":[{"name":"hjdivad","email":"npm@hjdivad.com"},{"name":"rwjblue","email":"me@rwjblue.com"},{"name":"scalvert","email":"steve.calvert@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate-peer-dependencies_1.2.0_1617294241367_0.471688911536704"},"_hasShrinkwrap":false},"2.0.0":{"name":"validate-peer-dependencies","version":"2.0.0","description":"Validate that the peerDependencies of a given package.json have been satisfied.","repository":{"type":"git","url":"git+ssh://git@github.com/rwjblue/validate-peer-dependencies.git"},"license":"MIT","author":{"name":"Robert Jackson","email":"me@rwjblue.com"},"main":"index.js","scripts":{"lint":"eslint .","test":"npm-run-all lint test:jest","test:jest":"jest"},"dependencies":{"resolve-package-path":"^4.0.0","semver":"^7.3.2"},"engines":{"node":">= 12"},"devDependencies":{"eslint":"^7.11.0","eslint-config-prettier":"^6.13.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.4","fixturify-project":"^2.1.0","jest":"^26.6.0","npm-run-all":"^4.1.5","prettier":"^2.1.2","release-it":"^14.2.0","release-it-lerna-changelog":"^3.0.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"release-it":{"plugins":{"release-it-lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}},"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"}},"gitHead":"87cfc749d7e90fe559eff98664ca21a82f662cf5","bugs":{"url":"https://github.com/rwjblue/validate-peer-dependencies/issues"},"homepage":"https://github.com/rwjblue/validate-peer-dependencies#readme","_id":"validate-peer-dependencies@2.0.0","_nodeVersion":"14.15.4","_npmVersion":"7.7.6","dist":{"integrity":"sha512-i2I3vl+9yk+gI0YCruDa29mzaNykLbSbUVVNQY/mBTLLYjQxVbklqBdTdH2iTpxV9AHH1u0dKlk/zl1sjHTfug==","shasum":"a1bd33472517932d7c859e6c03eb849849207794","tarball":"https://registry.npmjs.org/validate-peer-dependencies/-/validate-peer-dependencies-2.0.0.tgz","fileCount":5,"unpackedSize":20923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmsUcCRA9TVsSAnZWagAAQTUP/0cXeIo4/Oad8/U4ttZV\n51+XhOHbjdZ9xtd3JYsMJeng3CJdoLbsNrKBv3n/uiYRE+WLPVooQ1r3AdeS\n4DBIepgAxBFzOYyu6VtCJkd1ENIYWgMzkpeT47Yt0iaF7UclUinMZBvOte+U\nKvu25h6J9wnl0tj5jE8HbA1GzkH/V7L7kP7yIXtwT4Tk15yTnjmNf6DcvlQn\ntHDEvI6CHHqv0aD6cKmaYu1mmKjemJMhuc4INzk20QexFLDL04fvTqqKzwN7\nHkaVpw5+rrjsCVIx3gZxcklQH3tV8KbvACksCHwXEBeACdGmhaEPANKv6M4q\nSNCmgE/P2algHDYSr3Mq89QVNjiK3+Q3quRbhJWknL2dPkMONlE+D4GU3oCQ\n3M4bDkzbTZimWk7QL1RCxghPG8X4kpOE1gD12MpxrgvO964Z30HVzCrvsL5N\nHmKp+xeQlYg41SUCYh0ADAcNsk3QAlRa5U5knEBnWDUFx/Lo2Yyb/iZ/xNm7\nM79QY5sirC0NHdviuVHEhFrKeeFxgYGwqndpfzgQOHz6yIHQbi7zYcUM0KQY\nSUSkx0UgjhaJPxi8M3J9I0BCJ3ZCkRyWcChCbKx6u+Q0GOGYfvfsigOgSZic\nvEpHxe/NnlAOwKty+iQMM4Pj9ab+PCERzIunEi/g5iRwAXr+cTo3xW/bSdPk\nkh2j\r\n=mFww\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbMcWVlJWuUf3gqqk4CVpIR6LrrcTQzUseCu9bEnHK8wIhAOLdE8rpHpinJWIebLr60MRcbJskG66brhaXUWBzsWNy"}]},"_npmUser":{"name":"hjdivad","email":"npm@hjdivad.com"},"directories":{},"maintainers":[{"name":"hjdivad","email":"npm@hjdivad.com"},{"name":"rwjblue","email":"me@rwjblue.com"},{"name":"scalvert","email":"steve.calvert@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate-peer-dependencies_2.0.0_1620755739697_0.1421962979572986"},"_hasShrinkwrap":false},"2.1.0":{"$schema":"https://json.schemastore.org/package.json","name":"validate-peer-dependencies","version":"2.1.0","description":"Validate that the peerDependencies of a given package.json have been satisfied.","repository":{"type":"git","url":"git+ssh://git@github.com/rwjblue/validate-peer-dependencies.git"},"license":"MIT","author":{"name":"Robert Jackson","email":"me@rwjblue.com"},"main":"index.js","types":"index.d.ts","scripts":{"lint":"eslint .","test":"npm-run-all lint test:jest","test:jest":"jest"},"dependencies":{"resolve-package-path":"^4.0.0","semver":"^7.3.2"},"engines":{"node":">= 12"},"devDependencies":{"eslint":"^7.11.0","eslint-config-prettier":"^6.13.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.4","fixturify-project":"^2.1.0","jest":"^26.6.0","npm-run-all":"^4.1.5","prettier":"^2.1.2","release-it":"^14.2.0","release-it-lerna-changelog":"^3.0.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"release-it":{"plugins":{"release-it-lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}},"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"}},"gitHead":"01f40dc9c32ddcc86ac6af34fe7b0ac4737eb55f","bugs":{"url":"https://github.com/rwjblue/validate-peer-dependencies/issues"},"homepage":"https://github.com/rwjblue/validate-peer-dependencies#readme","_id":"validate-peer-dependencies@2.1.0","_nodeVersion":"14.15.4","_npmVersion":"7.24.2","dist":{"integrity":"sha512-x+M+mp16g4N+jDQJO6a+AKnMHAViov9mRzYfgMYR6Bq+UTwewf8aTQsP+e1QH0oZrADqP7fuI/bEbl3CzRFhOQ==","shasum":"1ad8218b1b168aeb500165f9de2a3f53269ece56","tarball":"https://registry.npmjs.org/validate-peer-dependencies/-/validate-peer-dependencies-2.1.0.tgz","fileCount":5,"unpackedSize":20741,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEzSV9P008Qg96A/hciTLLr52Q49DcL7AXjo8hw1GMHpAiEA6++e0gsyygQDcjxwclbjsjtwGScNrhUq9towNzSRvkw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3tOGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGfBAAg/Ra9I3FTYRFeMfSdihklDsrWSpMrDfevqVm6iYZrboWXqHH\r\n5gW/54cc/dbdFT7dpJU1t5ld3xZjc/zHYQOYtLXNlEu7SrzTJzhhufWokxNQ\r\nKftQvVcNMusU2UVir0ZtK98nMJtQ1Qh2SRLPA2mLC7x61rp5NYqSwTdggAKr\r\nyBXg8XuOe84bIQ7cg0TrNqcWaaggUV5vs4Lqs71KVrTyTpRZ0GZfEiDH79oH\r\nVG5FJyFivMtSPBWEWr5OF+qqNk1144N7ZeVfvrg9osg3X0qL4Staoa0F5cTA\r\nzK1q4Bfg2ScOeZOTv0KfWyPqkwLdzB+XmMxwC5YvEYKx02GHMnL8teHhgVbQ\r\nnib+T0G7z5qs2ICjpqmZPFAe5R0hSP49GIA4VOu253t+IF/3PnlSwV3fpykC\r\nZ453PgjyM3SHEp4sp/yHxINdgljOhPPi5M4lgM9m3qpgPSNCOaCmoSu+mYZw\r\nPSISlYpTjcXvFvsxlcdi7gMmBbyWDoQeo17/aPdrIRfhjWptdxnYfigrmPBv\r\ntmAYcguHDA35UH7HJEtaP4PnIgWc96c+f2yljlgLFOcwfyarM1hprF2UC6qU\r\n7Z4LMZUg92hZYe557i1sm/HegBA2ZR4kFBElW6THRg+eSZyMr9sc9U/RaOhw\r\nlKMLrZ1BoP/EzN4vPUISA/I+k3KMjP+Az+k=\r\n=i9rl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hjdivad","email":"npm@hjdivad.com"},"directories":{},"maintainers":[{"name":"hjdivad","email":"npm@hjdivad.com"},{"name":"rwjblue","email":"me@rwjblue.com"},{"name":"scalvert","email":"steve.calvert@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate-peer-dependencies_2.1.0_1658770309973_0.016368542004990827"},"_hasShrinkwrap":false},"2.2.0":{"$schema":"https://json.schemastore.org/package.json","name":"validate-peer-dependencies","version":"2.2.0","description":"Validate that the peerDependencies of a given package.json have been satisfied.","repository":{"type":"git","url":"git+ssh://git@github.com/rwjblue/validate-peer-dependencies.git"},"license":"MIT","author":{"name":"Robert Jackson","email":"me@rwjblue.com"},"main":"index.js","types":"index.d.ts","scripts":{"lint":"eslint .","test":"npm-run-all lint test:jest","test:jest":"jest"},"dependencies":{"resolve-package-path":"^4.0.3","semver":"^7.3.8"},"engines":{"node":">= 12"},"devDependencies":{"eslint":"^8.32.0","eslint-config-prettier":"^8.6.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","fixturify-project":"^5.2.0","jest":"^26.6.0","npm-run-all":"^4.1.5","prettier":"^2.8.3","release-it":"^15.6.0","@release-it-plugins/lerna-changelog":"^5.0.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"release-it":{"plugins":{"@release-it-plugins/lerna-changelog":{"infile":"CHANGELOG.md","launchEditor":true}},"git":{"tagName":"v${version}"},"github":{"release":true,"tokenRef":"GITHUB_AUTH"}},"gitHead":"be49b6eec1c805742b665e931bc8f463f303ddfb","bugs":{"url":"https://github.com/rwjblue/validate-peer-dependencies/issues"},"homepage":"https://github.com/rwjblue/validate-peer-dependencies#readme","_id":"validate-peer-dependencies@2.2.0","_nodeVersion":"14.20.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-8X1OWlERjiUY6P6tdeU9E0EwO8RA3bahoOVG7ulOZT5MqgNDUO/BQoVjYiHPcNe+v8glsboZRIw9iToMAA2zAA==","shasum":"47b8ff008f66a66fc5d8699123844522c1d874f4","tarball":"https://registry.npmjs.org/validate-peer-dependencies/-/validate-peer-dependencies-2.2.0.tgz","fileCount":5,"unpackedSize":21683,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2CqTotaBgBxsg+zQR4Ef47DhgwGI9cCLbv/zj3BVaTgIhAL6cCkz+KeJjSBBug6rxE/LRS7JcCeYD9khCTLFLI0bQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzulqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVeg//dbxQxZBtAVGgD83/MAFdf0n6ENF7qX1X8RXmXdVPWWLZcMtz\r\n1+xxJIUmbRGEbjIyxAFEiAFifDWggwDJaAv2w2FE2Xw85X3F7CplkV4xib7k\r\nMG9PUT5g0c6YXKYdr3b8TeqWqvw/uO1P+0TQvsC3FcDTbIavVXSctSN07CIQ\r\nc5Wn9qVczw1RSW6DFBU2PwWWA7qFW1TJwRCRYi/kzD+fKV80EyAvFK7+7RC4\r\niOBR8YunvK36kmPR3l1KOoQCFl1ZUtcqLtPNoS8jpcwtk+0ItObh0G668nzw\r\nKR6PxBnes58meJTf9dcIIxc04NBPEDBcFUjRD/dX0ke1IiIbDVY/iVtDgT4K\r\nfrBL8DHXbWfypm1srciQUmCU8vNXDWfftIs3ZuUwa1B5N1kDkZDBv0rAfgKO\r\nIsKxF4EwKvv6f5AACLnQR/CYEpRNrJJZnDB1opcuCW+4RFPZN5bQYUKsKONX\r\n+Q02/eFSRss0XVEFv649HgdhtCZVUO8RFlb500D1qPeL7wb2oA7xvuA6f9N/\r\n8pmIiLJTfL3QlfBeBWglXyx9MJhZ8fwmBh23Y8GFJFoHaZlpcimJuJwAz8ts\r\nhjWuSbn+aBiV8jAQsxpxZff9xTLAbbPHbCR9RRJ+tc0WNOvS7GgZ8FHVVrYv\r\nP2WFY3tOR9EN3VBZSKKd45S8Lri6DEoxMEo=\r\n=rp8G\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hjdivad","email":"npm@hjdivad.com"},"directories":{},"maintainers":[{"name":"hjdivad","email":"npm@hjdivad.com"},{"name":"rwjblue","email":"me@rwjblue.com"},{"name":"scalvert","email":"steve.calvert@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate-peer-dependencies_2.2.0_1674504554075_0.6220122255670146"},"_hasShrinkwrap":false}},"time":{"created":"2020-10-20T14:59:50.335Z","1.0.0":"2020-10-20T14:59:50.451Z","modified":"2023-01-23T20:09:14.323Z","1.1.0":"2020-10-20T18:47:46.998Z","1.2.0":"2021-04-01T16:24:02.079Z","2.0.0":"2021-05-11T17:55:39.839Z","2.1.0":"2022-07-25T17:31:50.159Z","2.2.0":"2023-01-23T20:09:14.218Z"},"maintainers":[{"name":"hjdivad","email":"npm@hjdivad.com"},{"name":"rwjblue","email":"me@rwjblue.com"},{"name":"scalvert","email":"steve.calvert@gmail.com"}],"description":"Validate that the peerDependencies of a given package.json have been satisfied.","homepage":"https://github.com/rwjblue/validate-peer-dependencies#readme","repository":{"type":"git","url":"git+ssh://git@github.com/rwjblue/validate-peer-dependencies.git"},"author":{"name":"Robert Jackson","email":"me@rwjblue.com"},"bugs":{"url":"https://github.com/rwjblue/validate-peer-dependencies/issues"},"license":"MIT","readme":"# validate-peer-dependencies\n\nA utility to allow packages to validate that their specified `peerDependencies` are properly satisified.\n\n## Why?\n\n`peerDependencies` are actually a pretty important mechanism when working with\n\"plugin systems\". For example, most of the packages in the `@babel` namespace\nwill declare a peer dependency on the version of `@babel/core` that they\nrequire to be present.\n\nUnfortunately, for quite a long time `peerDependencies` were very poorly\nsupported in the Node ecosystem. Neither `npm` nor `yarn` would automatically\ninstall peer dependencies (`npm@3` `peerDependencies` removed \"auto\ninstallation\" of `peerDependencies`). They wouldn't even validate that the specified\npeer dependency was satisfied (both `npm` and `yarn` would emit a console\nwarning, which is **very very** often completely ignored).\n\nFinally now with `npm@7` adding back support for installing `peerDependencies`\nautomatically we are moving in the right direction. Unfortunately, many of us\nhave projects that must still support older `npm` versions (or `yarn` versions)\nthat do not provide that installation support.\n\n**That** is where this project comes in. It aims to provide a **_fast_** and **_easy_**\nway to validate that your required peer dependencies are satisified.\n\n## Usage\n\nThe simplest usage of `validatePeerDependencies` would look like the following:\n\n```js\nrequire('validate-peer-dependencies')(__dirname);\n```\n\nThis simple invocation will do the following:\n\n* find the nearest `package.json` file from the specified path (in this case `__dirname`)\n* read that `package.json` to find any specified `peerDependencies` entries\n* ensure that *each* of the specified `peerDependencies` are present and that\n  the installed versions match the semver ranges that were specified\n* if any of the `peerDependencies` were not present or if their ranges were not satisified\n  throw a useful error\n\nHere is an example error message:\n\n```\ntest-app has the following unmet peerDependencies:\n\n  * bar: `>= 2`; it was not installed\n  * foo: `> 1`; it was resolved to `1.0.0`\n```\n\n### Known Issues\n\nThere are no known scenarios where `validate-peer-dependencies` will flag a\npeer dependency as missing, when it really is present. However, there are a few known\nproblem case where `validate-peer-dependencies` cannot properly validate that a\npeer dependency is installed (where a error will not be thrown but it should have been):\n\nTo illustrate, let's use the following setup:\n\n* Package `parent` depends on `child` and `sibling`\n* Package `child` has a dev dependency (for local development) and a peer\n  dependency on `sibling` package\n* Package `child` uses `validate-peer-dependencies` to confirm that `sibling` is\n  provided\n\nIn this case, if `child` has been linked locally (e.g. `npm link`/`yarn link`) into `parent`\nwhen `validate-peer-dependencies` is ran it will incorrectly believe that `parent` has satisfied\nthe contract, but in fact it _may_ not have. This is a smallish edge case, but still a possible\nissue.\n\nThese known issues are mitigated by passing in the\n`resolvePeerDependenciesFrom` with the root directory of `parent`. As noted in\nthe documentation for that option below, you often do not have access to the\ncorrect value for `resolvePeerDependenciesFrom` but in some ecosystems (e.g.\nember-cli addons) you **do**. In scenarios where you can use it, you\n**absolutely** should.\n\n### Options\n\nA few custom options are available for use:\n\n* `cache` - Can be `false` to disable caching, or a `Map` instance to use your own custom cache\n* `handleFailure` - A callback function that will be invoked if validation fails\n* `resolvePeerDependenciesFrom` - The path that should be used as the starting point for resolving `peerDependencies` from\n\n#### `cache`\n\nPass this option to either prevent caching completely (useful in testing\nscenarios), or to provide a custom cache.\n\n```js\nconst validatePeerDependencies = require('validate-peer-dependencies');\n\n// completely disable caching\nvalidatePeerDependencies(__dirname, { cache: false });\n\n// instruct caching system to leverage your own cache\nconst cache = new Map();\nvalidatePeerDependencies(__dirname, { cache });\n```\n\n#### `resolvePeerDependenciesFrom`\n\nPass this option if you **know** the base directory (the dir containing the\n`package.json`) that should be used as the starting point of peer dependency\nresolution.\n\nFor example, given the following dependencies:\n\n* Package `parent` depends on `child` and `sibling`\n* Package `child` has a peer dependency on `sibling` package\n* Package `child` uses `validate-peer-dependencies` to confirm that `sibling` is\n  provided\n\n_Most_ of the time in the Node ecosystem you can not actually know the path to\n`parent` (it could be hoisted / deduplicated to any number of possible\nlocations), but in some (some what special) circumstances you can. For example,\nin the `ember-cli` addon ecosystem an addon is instantiated with access to the\nroot path of the package that included it (`parent` in the example above).\n\nThe main benefit of specifying `resolvePeerDependenciesFrom` is that while\nlocally developing `child` you might `npm link`/`yarn link` it into `parent`\nmanually. In that case the default behavior (using the directory that contains\n`child`'s `package.json`) is not correct! When linking (and not specifying\n`resolvePeerDependenciesFrom`) the invocation to `validatePeerDependencies`\nwould **always** find the peer dependencies (even if the `parent` didn't have\nthem installed) because the locally linked copy of `child` would have specified\nthem in its `devDependencies` and therefore the peer dependency would be\nresolvable from `child`'s on disk location.\n\nHere is an example of what usage by an ember-cli addon would look like:\n\n```javascript\n'use strict';\n\nconst validatePeerDependencies = require('validate-peer-dependencies');\n\nmodule.exports = {\n  // ...snip...\n  init() {\n    this._super.init.apply(this, arguments);\n\n    validatePeerDependencies(__dirname, {\n      resolvePeerDependenciesFrom: this.parent.root,\n    });\n  }\n};\n```\n\nOr alternatively, if it only makes sense for the addon to validate peer deps\nduring a build, that would look like:\n\n```javascript\n'use strict';\n\nconst validatePeerDependencies = require('validate-peer-dependencies');\n\nmodule.exports = {\n  included(parent) {\n    this._super.included.apply(this, arguments);\n\n    validatePeerDependencies(__dirname, {\n      resolvePeerDependenciesFrom: parent.root,\n    });\n    \n    return parent;\n  }\n};\n```\n\n#### `handleFailure`\n\nBy default, `validatePeerDependencies` emits an error that looks like:\n\n```\ntest-app has the following unmet peerDependencies:\n\n  * bar: `>= 2`; it was not installed\n  * foo: `> 1`; it was resolved to `1.0.0`\n```\n\nIf you would like to customize the error message (or handle the failure in a\ndifferent way), you can provide a custom `handleFailure` callback.\n\nThe callback will be passed in a result object with the following interface:\n\n```ts\ninterface IncompatibleDependency {\n  /**\n    The name of the package that was incompatible.\n  */\n  name: string;\n\n  /**\n    The peer dependency range that was specified.\n  */\n  specifiedPeerDependencyRange: string;\n\n  /**\n    The version that was actually found.\n  */\n  version: string;\n}\n\ninterface MissingPeerDependency {\n  /**\n    The name of the package that was incompatible.\n  */\n  name: string;\n\n  /**\n    The peer dependency range that was specified.\n  */\n  specifiedPeerDependencyRange: string;\n}\n\ninterface Result {\n  /**\n    The `package.json` contents that were resolved from the specified root\n    directory.\n  */\n  pkg: unknown;\n\n  /**\n    The path to the `package.json` that was resolved from the specified root\n    directory.\n  */\n  packagePath: string;\n\n  /**\n    The list of peer dependencies that were not found.\n  */\n  incompatibleRanges: IncompatibleDependency[];\n\n  /**\n    The list of peer dependencies that were found, but did not match the\n    specified semver range.\n  */\n  missingPeerDependencies: MissingPeerDependency[];\n}\n```\n\nFor example, this is how you might override the default error message to customize:\n\n```js\nvalidatePeerDependencies(__dirname, {\n  handleFailure(result) {\n    let { missingPeerDependencies, incompatibleRanges } = result;\n\n    let missingPeerDependenciesMessage = (missingPeerDependencies || []).reduce(\n      (message, metadata) => {\n        return `${message}\\n\\t* ${metadata.name}: \\`${metadata.specifiedPeerDependencyRange}\\`; it was not installed`;\n      },\n      ''\n    );\n\n    let incompatiblePeerDependenciesMessage = (incompatibleRanges || []).reduce(\n      (message, metadata) => {\n        return `${message}\\n\\t* ${metadata.name}: \\`${metadata.specifiedPeerDependencyRange}\\`; it was resolved to \\`${metadata.version}\\``;\n      },\n      ''\n    );\n\n    throw new Error(\n      `${result.pkg.name} has the following unmet peerDependencies:\\n${missingPeerDependenciesMessage}${incompatiblePeerDependenciesMessage}`\n    );\n  },\n});\n```\n\n### assumeProvided\n\nIt is sometimes desirable to treat a peer dependency as satisfied even when it would not be considered satisfied under the node resolution algorithm.\n\nFor example an ember addon may consider itself to satisfy the peer dependency requirements of one of its own dev dependencies during local development.\n\n```js\nconst assumeProvided = require('validate-peer-dependencies').assumeProvided;\n\n// subsequent calls to validatePeerDependencies will assume some-package is available and will resolve to version 1.2.3\nassumeProvided({ name: 'some-package', version: '1.2.3' });\n\n// for the more common case of the package assuming itself to be available during development, the following is the likely preferred invocation\nassumeProvided(require('./package.json'));\n```\n\nNote that assumptions are global, since peer dependency validation may be occurring in different instances of `validate-peer-dependencies`.\n\n### Disabling checks via Environment Variables\n\nIt can be helpful to disable checks when doing certain kinds of testing (e.g. testing a pre-release with breaking changes to see whether any of the changes **actually* break a user).\n\nThis can be done with the environment variables `VALIDATE_PEER_DEPENDENCIES` and `IGNORE_PEER_DEPENDENCIES`.\n\n* `VALIDATE_PEER_DEPENDENCIES=false` disables all validation.  Any other value is ignored\n* `IGNORE_PEER_DEPENDENCIES=foo,bar` disablesa peer dependency validatation for `foo` and `bar`\n\n## Requirements\n\n[Active versions](https://nodejs.org/en/about/releases/) of Node are supported.\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE.md).\n","readmeFilename":"README.md"}