{"_id":"spok","_rev":"35-baf943836d5b2a54f8407b8fe0d3f6eb","name":"spok","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","dist-tags":{"latest":"1.5.5"},"versions":{"0.1.0":{"name":"spok","version":"0.1.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test":"tape test/*.js"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"ceff9fb8350e6a02b26c61cde874c8b091470ed5","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.1.0","_shasum":"d4302e0a1584b843408adc482798cb9224a848eb","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"dist":{"shasum":"d4302e0a1584b843408adc482798cb9224a848eb","tarball":"https://registry.npmjs.org/spok/-/spok-0.1.0.tgz","integrity":"sha512-9qbU0jhWH63VvnmCmqukr1NvQ+ii5hcrndglMr2q9EKNmW8hNTTSIhNv3jhnHcaSnavP/latmp+nmNZHxvzykA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGR3wG4Pp4JlEsvdJSurIrE9glKYcFqS3Fu2SDH0g3kxAiBrLzU0VuBp0qXHXd+W4KtueGi7xt/Ro65cxlUH7WFoHg=="}]},"directories":{}},"0.1.1":{"name":"spok","version":"0.1.1","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else git checkout master && npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"1bb08ba2a7641cea2ac2bd5cdeb53e8ae0719584","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.1.1","_shasum":"b32b5936022b45a4c9a12f7590e87f11ce4b4610","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"dist":{"shasum":"b32b5936022b45a4c9a12f7590e87f11ce4b4610","tarball":"https://registry.npmjs.org/spok/-/spok-0.1.1.tgz","integrity":"sha512-DVd0O8MlVBBG3kkJdKSb87qfAAoMSalyf1W3R/GjDhj7UqjEMSsFdwzkCp5viYrSJJ4HRPPv1WWXuMXkv5G+tw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkLFucs7cq9pu/Us1RdfCKh4OxfSD5awr6HKqrUXjMiAIhAKqx4V599kNlxtODQDWIOroDhcPXojD+bO4fhNtfS7lL"}]},"directories":{}},"0.1.2":{"name":"spok","version":"0.1.2","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else git checkout master && npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"0b68b44d942e99a6820c27f3ae551cf7656c873c","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.1.2","_shasum":"f1bfaa0e75e079949769a76d5a80ebec9a6a186e","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"dist":{"shasum":"f1bfaa0e75e079949769a76d5a80ebec9a6a186e","tarball":"https://registry.npmjs.org/spok/-/spok-0.1.2.tgz","integrity":"sha512-ImZW+lHE7LHoheExESHxNmX5077ylHO6bQ0hHeVasQlUG3/po3neA7CUZSRW2fA51oUSIx282ApsMchd/fv8wA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICNzvwcvadn8qZ5WyCD0tk4IZjYZPxD0hp3lonONN6NMAiEA1AKJrk2gEq8pOeICH4pziv22KKHho8kyBCiMv/I3Yl4="}]},"directories":{}},"0.2.0":{"name":"spok","version":"0.2.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else git checkout master && npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"3bc219445e7dd28326719fd2f614f71e1074451a","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.2.0","_shasum":"81d2b11fa927decc138197b963b82dfa4cd3a181","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"dist":{"shasum":"81d2b11fa927decc138197b963b82dfa4cd3a181","tarball":"https://registry.npmjs.org/spok/-/spok-0.2.0.tgz","integrity":"sha512-Vs7Ov6QTzxn/HMLlVIIPNjse6Iba8SUnzTzw01IVwTJm9TS2Gfn7qm2rdsr1zWk3lwfVZ7YxViPZhtlyQvXpkA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZhGPSGU9t0YtKjaUtjlfNO09Wi5dh0Q4WQ7wpYUhpFAIgTrLr0wFp56aRPbNGCH52lBC/qM1lZyGDIS2c6aCftDI="}]},"directories":{}},"0.3.0":{"name":"spok","version":"0.3.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"4ad6cbd758a2a72c4273e25e604bf1b8677fd167","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.3.0","_shasum":"12494b59d806d06e51e8482fd8179bf7a4f3e1df","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"dist":{"shasum":"12494b59d806d06e51e8482fd8179bf7a4f3e1df","tarball":"https://registry.npmjs.org/spok/-/spok-0.3.0.tgz","integrity":"sha512-+2THCueUc4sjrb4F1BGop21/7H4FLRlKlNkWOw5FmDP05UipVLpp5Zl7ECDO1LpgpsBiRj0A1VvYdPkKAHZHJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+VwwF/Iy9BkFDKmOATg01+WoUm29PdUMaKfflzG0vpwIhALYHMxsCIU1av6Qbz+ymjlG+jj0VGC+bAM+mtExusGzO"}]},"directories":{}},"0.3.1":{"name":"spok","version":"0.3.1","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"a0d5963672b6f8341d23b0e92840c5a8f35159e7","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.3.1","_shasum":"04236534c7d6455f88142e1ad2e8d08a06a15c8d","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"dist":{"shasum":"04236534c7d6455f88142e1ad2e8d08a06a15c8d","tarball":"https://registry.npmjs.org/spok/-/spok-0.3.1.tgz","integrity":"sha512-FbbctIDa/imefS9BaaQo4qBL79kGN/UiObFu0FVankIEQrjIERe8i6UnCPQEIxFeGw3CL6iig+esXV55HdcNxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKRFJ7MVcBlpOz/bgoKdVkUpHqJwDtXQyxJPxj1nEZFwIgHn7Zn6qfsOlaTYD62PDr7mTe0IM1uqfguLNybCTS3UM="}]},"directories":{}},"0.3.2":{"name":"spok","version":"0.3.2","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"49f0dcf5b42ced96c72f746422e9a61ea1125caf","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.3.2","_shasum":"82c1485990b5cc8f7bc0af1af4416b253809f597","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"dist":{"shasum":"82c1485990b5cc8f7bc0af1af4416b253809f597","tarball":"https://registry.npmjs.org/spok/-/spok-0.3.2.tgz","integrity":"sha512-Bk7UqsWJ72EyVMgOi5EAA28EIwUNv1BmO5euXiaME5COR+88QXzkEs+IbBJguqzItWn5eki7BfVQ+MGizx59rw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDptAnd+RI+ZDGpHyYANpK2uA02YY5g5/cWQZbJhchkPAIgSo2Gasgj/r7pWZOjOOQv3Rko7UgCI69+J/9S2j1x3TE="}]},"directories":{}},"0.4.0":{"name":"spok","version":"0.4.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"c345adbc28fe262fe7b012aee9e76f1fe2dda72b","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.4.0","_shasum":"1cbdb6e55018426ba00f899d407b3dfeb7cf7094","_from":".","_npmVersion":"2.14.15","_nodeVersion":"4.3.1-rc.2","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"dist":{"shasum":"1cbdb6e55018426ba00f899d407b3dfeb7cf7094","tarball":"https://registry.npmjs.org/spok/-/spok-0.4.0.tgz","integrity":"sha512-V2vHzcsScwyrYD8D0EFiALdrNfsBRzJziz44+trgDnIhHqf/phaN2F9IN8Yez1In7NO1AqqFRgOGKQMc6x/mEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHijd5e2gNOgfk/m045aGWQS8V/QlUSEJEn128hBiTwoAiEAkcNm8sMX6I8HyhYKCPATCNHU4P3tQ/VfO8BOPkSb2BM="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spok-0.4.0.tgz_1457467619136_0.3170710464473814"},"directories":{}},"0.5.0":{"name":"spok","version":"0.5.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"36d2eb540bbf2ae2aaebebdc77434e2decfa6d50","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.5.0","_shasum":"7b37ca0a61d62d5a427f875390f0d2ba1e64843d","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.7.0","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"dist":{"shasum":"7b37ca0a61d62d5a427f875390f0d2ba1e64843d","tarball":"https://registry.npmjs.org/spok/-/spok-0.5.0.tgz","integrity":"sha512-10p792bpUSTuGMnl57V4IFToKmn0b43LjbwzIrbhTnDOh78mNMsqoZtQzd+VB8jFiKWSeMxjvrsmqu560+SoMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAwL5/C5PLnQB9RIRtlx+w1FDui7wwmuTRN7ErW2nsBTAiEA43qG/Y/ObgmonCncMhY82ywFYXLsWslJxwpnsV1p460="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spok-0.5.0.tgz_1486749875432_0.36418321053497493"},"directories":{}},"0.6.0":{"name":"spok","version":"0.6.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"c18eb3f4b61466fc07f9c298c93fa4cfe8ff868f","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.6.0","_shasum":"172bdffaf165a36fd12d7ec6d607701e39a53256","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.7.0","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"dist":{"shasum":"172bdffaf165a36fd12d7ec6d607701e39a53256","tarball":"https://registry.npmjs.org/spok/-/spok-0.6.0.tgz","integrity":"sha512-bCSZvd/qtfoHyVzLsKUmAogv8w7IAid/FAiAKJIxEY9QSeozAAKj6WhCUHpJ678du65TmNmRIjfP36w4+8HLnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGR8KynyieqE8l6fiy4YmTLpx7pUoH5Pv4RPuec9BLQQAiBGmZVNvMmVKaM+8xJX7LgXFK/dPyCfGugimatAJmQgMQ=="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spok-0.6.0.tgz_1487881690780_0.9654963484499604"},"directories":{}},"0.7.0":{"name":"spok","version":"0.7.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"d7372bc34fbc6993fa76c33ce135ca0d26ddd42a","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.7.0","_shasum":"9db17f68e333ef53e4785c54075fd5c7e33daf3d","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.7.0","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"dist":{"shasum":"9db17f68e333ef53e4785c54075fd5c7e33daf3d","tarball":"https://registry.npmjs.org/spok/-/spok-0.7.0.tgz","integrity":"sha512-q9janrclAtNEO9FyOj2bkseh24YR0YwBBChhcwC0s7ft7W0Lhx0RiEebvzZxgiV9gq9y5a7CR8vAcgs6elmDgA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGegCEVEK3zZD5cz8KQGtYyMgFhby014C5CYQ/+nxjDcAiBdV/E+qHjRoWLrr4SbvY9Y9VLM3zYM/SslQczAIG8N3A=="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/spok-0.7.0.tgz_1489150016248_0.2038543310482055"},"directories":{}},"0.8.0":{"name":"spok","version":"0.8.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"d78b0707cd3296825e8acd01855daece430eeb32","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.8.0","_shasum":"4f93b37eecfe61aeed4356e18cf1614a25d9c918","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.7.0","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"dist":{"shasum":"4f93b37eecfe61aeed4356e18cf1614a25d9c918","tarball":"https://registry.npmjs.org/spok/-/spok-0.8.0.tgz","integrity":"sha512-0GZQp5Euj9UxGDkZO8vQSmW9EOPmLAaFxZmwKivl0RTdvXwa4pbJLeOebVO/dxGl9R2AwnSbkIZcWZtUMagErA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKbwceDAmJmuxmeg9byOD1+MbdD6+ds5I1Bzr5mY6mrwIgPAUN8ZM0eGg8tmWQBTW+Y33zNyBGBPe2bHr6Sr6IkyI="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/spok-0.8.0.tgz_1490872278636_0.03860608232207596"},"directories":{}},"0.8.1":{"name":"spok","version":"0.8.1","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-0.10":"nave use 0.10 npm run test-main","test-0.12":"nave use 0.12 npm run test-main","test-latest":"nave use latest npm run test-main","test-all":"npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-latest","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"nave":"~0.5.1","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"a286c24ccff853d849c8a166ca19e936619d0e67","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.8.1","_shasum":"4e5022cd2aac26f53c10d377a2de18fcee2e10e7","_from":".","_npmVersion":"2.15.11","_nodeVersion":"6.7.0","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"dist":{"shasum":"4e5022cd2aac26f53c10d377a2de18fcee2e10e7","tarball":"https://registry.npmjs.org/spok/-/spok-0.8.1.tgz","integrity":"sha512-VhWFFDEhBtGPwdM5tqnhBV+wiusHX1x94Cv2QgZWCVlY0TiM68GXhIikKBFzNs4VNj2vSMT4BE1LpdMvUNttbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFZg2YG8WOmZm/CXCaung5BSfyKf6j4zbZsRcfJ6zQkwIgc0e1Tjv5NQUIzU4s3P++R9B1bPDp/s0jfV4jWtVK0M0="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/spok-0.8.1.tgz_1490872931691_0.6902817375957966"},"directories":{}},"0.9.0":{"name":"spok","version":"0.9.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-4":"nave use 4 npm run test-main","test-6":"nave use 6 npm run test-main","test-8":"nave use 8 npm run test-main","test-all":"npm run test-main && npm run test-4 && npm run test-6 && npm run test-8","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"nave":"~2.2.3","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"b0157933d4fb4ca165170b7f8dbd7527cf12a728","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.9.0","_shasum":"a1c82adb541ffd94318c1602fbea4b2f362978fa","_from":".","_npmVersion":"2.15.12","_nodeVersion":"8.8.1","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"dist":{"shasum":"a1c82adb541ffd94318c1602fbea4b2f362978fa","tarball":"https://registry.npmjs.org/spok/-/spok-0.9.0.tgz","integrity":"sha512-/Yh//685Z1iAs1CYbN/TRAwQQoh7yGL+i6XvSCo4/ht2bjInsJoutpLEd7X4nCJVoGRWzxYzm65rQhxdxGkdMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDB2fvzJcFQQU16ba42Ca18CLcHYTqNtqZZfKYkCzRnKwIgG4FvZ20zfoI2i+L1HTJnFK5ehICJC92trT+jtzEysps="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok-0.9.0.tgz_1509034954472_0.8299626875668764"},"directories":{}},"0.9.1":{"name":"spok","version":"0.9.1","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"spok.js","scripts":{"test-main":"tape test/*.js","test-4":"nave use 4 npm run test-main","test-6":"nave use 6 npm run test-main","test-8":"nave use 8 npm run test-main","test-all":"npm run test-main && npm run test-4 && npm run test-6 && npm run test-8","test":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"},"browser":{"./inspect.js":"./inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"nave":"~2.2.3","tape":"~4.0.0"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=0.8"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"f1da9034d4f186bd0a23b0562a8843a343dd81fe","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@0.9.1","_shasum":"a38d636e6981151a39654d7025d35b70ff9bf61e","_from":".","_npmVersion":"2.15.12","_nodeVersion":"8.8.1","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"dist":{"shasum":"a38d636e6981151a39654d7025d35b70ff9bf61e","tarball":"https://registry.npmjs.org/spok/-/spok-0.9.1.tgz","integrity":"sha512-y4FxmUrtjrbaT3wjQznojV6gBPWRHyQl9NAr1stWFoY43Nux83lnlUwymAovrvm0oduqxUXuSR21LZcnI0Me+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFv+8jItpFyxLfrgRPRWOlNNL/wcEUj4vOGZIf+oH259AiEAt2602JVxzP3M/ncvLvnL208NO0lmI1ONiqFZbjJeF0E="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok-0.9.1.tgz_1510958258994_0.4984458074904978"},"directories":{}},"1.0.0":{"name":"spok","version":"1.0.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","typings":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"tape test/*.js","test-8":"nave use 8 npm run test-main","test-10":"nave use 10 npm run test-main","test-all":"npm run test-main && npm run test-8 && npm run test-10","test:unit":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi","test":"npm run lint && npm run test:unit","tsc":"rm -rf dist/* && tsc -p . --declaration","tsc:watch":"rm -rf dist/* && tsc -p . --watch --declaration","tsl":"tslint -p . --force -t stylish","tsl:fix":"tslint -p . --force -t stylish --fix","tsfmt":"tsfmt --baseDir . -r","lint":"npm run tsc &&  npm run tsl"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/tape":"^4.2.33","nave":"~2.2.3","tape":"~4.0.0","tslint":"^5.18.0","typescript":"^3.5.3","typescript-formatter":"^7.2.2"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=10"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"b1b8fa6e09448a6d19969275adb00e4237595467","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"dist":{"integrity":"sha512-scvEEr6eSofexWEEq7ozKM5x2/XznCXLloBrE+esXrN08fzfyEgH5zMrmPLJky4LhLs+GD4fZorwu26z67NZfA==","shasum":"6a8034a5d72d39c1f3fd3c3cb0b43ee53d80238c","tarball":"https://registry.npmjs.org/spok/-/spok-1.0.0.tgz","fileCount":12,"unpackedSize":42426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdO0kWCRA9TVsSAnZWagAAQT0QAJoamZOb1KKc+TqsZlPI\nWhjy/4quwu1r+3vXHjw8peSo30lxhBLzB0HXRyVoMiK3qbQ21/VQOgJuoYB4\n7c4cEofHyauXI83BWYfwqOrGZT0T+RRujTTt0rwgxXqj94skHyePI6Ga43W6\nlgXTt5GLSpEDiXlrV0PrEBtOIFpR1k7OXCVt+WUtlXzJR4yTp3jQlA+H+cHb\nt2gDF+Ras6hXnf8Swh+SITV9j1xIHDbcu6COY/iGaIMJvq2uREOTMYvnOA+T\nmx9fNcbqafmyUKLfK/KEefvgodr2oR154OMKrje4yWpcpIlLySxjEZ3Fz0UG\nS2LAwOtu72oAyrStiO1tPMog7vYlnhfLDTGarmIYByFsLOsdiTrJIbUz2Job\nKHnuZ5fogIETTN+1CKkAMsxOcykoOKLoLfsN1J+0A3a7zXT4th30ZYg92dXh\nXTe28V5k1YNAGmslfQkjf5AbSpSIZdBKaO9UD965c4lRNjUcwZ31Ki/uM4mt\n0YHdW1z7JL64VVF6S7oVE+sRJx8y0Nw3bIIJsTv/vZ5c//bPf0kIFb3FTrJ/\nv0jRXh06XGfi5Q1+0UF63geMH2rOg3W4ACtOXzsGa76Rece4hJ2sLCeFl5z9\nBOCby0pBxDKIV8LYbG3ut8hDk6mlqdkjRk9wEN/xC1iTTlMc8hB41jAP9DR5\n8W5i\r\n=8Q6M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCudPtxoNOray2ToiBgK5ovbOh40RkyqGLnHrZIDyUBCQIhAMzyn/3pzvFST0A15wdejVzg420+CLt6mB+Bas9hnjKY"}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.0.0_1564166421348_0.9109342636258566"},"_hasShrinkwrap":false},"1.1.0":{"name":"spok","version":"1.1.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","typings":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in test/*.js; do node $t; done","test-8":"nave use 8 npm run test-main","test-10":"nave use 10 npm run test-main","test-12":"nave use 12 npm run test-main","test-all":"npm run test-main && npm run test-8 && npm run test-10 && npm run test-12","test:unit":"if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi","test":"npm run lint && npm run test:unit","tsc":"rm -rf dist/* && tsc -p . --declaration","tsc:watch":"rm -rf dist/* && tsc -p . --watch --declaration","tsl":"tslint -p . --force -t stylish","tsl:fix":"tslint -p . --force -t stylish --fix","tsfmt":"tsfmt --baseDir . -r","lint":"npm run tsc &&  npm run tsl"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/tape":"^4.2.33","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","tslint":"^5.18.0","typescript":"^3.5.3","typescript-formatter":"^7.2.2"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=10"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","firefox/17..latest","firefox/nightly","chrome/22..latest","chrome/canary","opera/12..latest","opera/next","safari/5.1..latest","ipad/6.0..latest","iphone/6.0..latest"]},"gitHead":"131743616a6bec1226071acb4f4d3899db857da8","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.1.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-TTv3V1UpK8xck07RzSJbn0MizPy+5tJVhPyVxBiEvMQWHtxQhlJJVdPvkoIkaew6zjl7riWy2HYaTo9YnYIByw==","shasum":"1022f28d6de6513e7e7d641e9f6b27355e7bd01a","tarball":"https://registry.npmjs.org/spok/-/spok-1.1.0.tgz","fileCount":12,"unpackedSize":42660,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8rxoCRA9TVsSAnZWagAAwBYQAIMxGwcrOhrl7DB5ooe2\nG9/ZeeGhOPG+H9/Yf5oK7GuwNfn4KY0JFMIaY/xSQu5fIqx0mDdKtkDlqEy3\nV+7f5SlxiBi3WI0DjIftb6pWKw6UK2o+Ww/p/4bCshwTR1tpFKw+2OD1Y8/b\nThsF7Ij06AES7AMUQmvHzrn++Cf3Tjnpl+V5V2jqawb55anb0exbx1tsmMNi\n7RtGj67juYvQM3RujJon523zzAC2l/JdpVL53f/QdKwZCx12ERMKBXw/0zmD\n3vwh81Dc+KzdNmhaxSbXld2PeuXyCqC9u5rj+sAcN+2oQGll/xzw+8SMqyTw\n2HmkqgOHg4F/J9tDSO6tD8EuYN9khDjM88EJ6ukbsWffw65LJwhNfeUFFu2S\nVuNkQgQ1VpFfZK58Gkdj6Jcb8PdJUSrXckEaOv5hgu2pIWfzrzuBuJw6iFeX\n4h5fgHw0B6zd6IW7qr39VrrCYBun8+DqlfYoi9R2XtLJvPAMCw3Xtmt7ncsi\nGqZgZEK8fvR1ULec9q12ZpiCAN6vBojbqgskprAHa4Fd5ay1eC12kOkZoLvN\niWwvnc7XxIJ96NK7j0spoXRqalXCxbsa3FuRwFmS7zwVGMXoybBRlPW6sh60\n6+8HBJgYKWq1Ot/uFoXTsQPo92/o/8kuVK6md+xsDR+IiW/2XRiAym0JZZyS\n0nWP\r\n=ZgbT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHcq3eNPLL2z8gWUphiWtIQEOEGm9q4na6WJusOaJupAIgc+g+OFKbAnglHLypa1HKa9ZuuWFeKTX9sGlJTndd9L8="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.1.0_1576189031852_0.8066899301929205"},"_hasShrinkwrap":false},"1.2.0":{"name":"spok","version":"1.2.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-8":"nave use 8 npm run test-main","test-10":"nave use 10 npm run test-main","test-12":"nave use 12 npm run test-main","test-all":"npm run test-main && npm run test-8 && npm run test-10 && npm run test-12","pretest":"npm run tsc","test":"npm run lint && npm run test-main && npm run tsd","tsc":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","tsd":"tsd"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/tape":"^4.2.33","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","tsd":"^0.11.0","typescript":"^3.5.3"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=8"},"gitHead":"291436aec01e1496b310bff94ff4b306acc33711","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.2.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.1","dist":{"integrity":"sha512-nnidA5Nmyh3IlS4LUlgea2VTiYlUOKSOWQhRrDmyboixt7nQZ7T7nJ6ionwZalE4weWrMSnK8QIJxokJxJybow==","shasum":"62e29b884ecbfd39e0e7f59135e133c1cd6dd86d","tarball":"https://registry.npmjs.org/spok/-/spok-1.2.0.tgz","fileCount":24,"unpackedSize":70143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd949JCRA9TVsSAnZWagAAmHYP/14yr42q4GjQgx31BmGa\nNL4McF0QtjGd0hSpe0p9J8wCba/F+TD7TvcgTtzXXKJW4fwpRhDzR25J6Fs7\nk0Q5mIIZOQSJ20cACOg/LlInv2msfNBuvRd4t7rs5LqTQ8LncBP1MPP03hRc\nqdBSGhWWdTSGtaoLmT1hKCm1HpxZpBHDIUVRfOUn+FHiFSay3qPnMwnMVMha\noJvdBjaoHBT2NcKdXJobOqEPHN0m1fx1m54Ejv6tEtJkZjN9prfqlRlq3z76\n1A4sVqOVsbg0oIadbKtZD7lcZaP7Eno+DfJe5q8kDZzAEA0I2bToDuN2zhCp\n30KvJjjJ20jTl81IOKzpFdABo8HQg8HXTbHQegzh6jiSWCtaIcW895c8SbH4\nw/FvfMXOrRujZhMxdn/otIe/zXlbY6MMUs6B3FnodI1ZHdj6giGl8oSjZN8p\nGQNuW8IZo9WKMZPK9hbJhJf9xqTExn6TnIkHsOH4EDwmC3ZOmql+2nVhVUhx\nwp4kVufJcKYAXUKKlMYJ0RO2ssmpHDAF4R3ffXDr9OIIQdUEa+HgUsHPV4Sn\naYmvkMpjr8B5icvLl4wzG/AtFwsOu+qQGrgkWOHlqShRPQwdTDWhDvN1blzg\n9WDE0X773vw/GNE0P006yYH5KQdnCrOhFlQrk1csYwYw2KvH58nxxXJGbYxB\naBeP\r\n=6/rI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB9IWhUF5/Mo9Wv8SPZDS786sUOE4Inhb8Ul5A4LyvwBAiA5Uz2EezAz+aYo8dQXxjQxN80g1f8DI/qeO53uEmdcDA=="}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.2.0_1576505160857_0.28562385693030357"},"_hasShrinkwrap":false},"1.3.0":{"name":"spok","version":"1.3.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-8":"nave use 8 npm run test-main","test-10":"nave use 10 npm run test-main","test-12":"nave use 12 npm run test-main","test-all":"npm run test-main && npm run test-8 && npm run test-10 && npm run test-12","pretest":"npm run tsc","test":"npm run lint && npm run test-main && npm run tsd","tsc":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","tsd":"tsd"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/tape":"^4.2.33","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","tsd":"^0.11.0","typescript":"^3.5.3"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=8"},"gitHead":"1db043ba06cb737dae29134f175e2ae6df491889","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.3.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.1","dist":{"integrity":"sha512-iVxBJZGvXXqkOFwftZaVhPJRZ9+Vlv3HVWpYXeV8OSHo1Oe3WQhgohagR+AUk1OrLA7+my3OSEkKmlhCmN8kNQ==","shasum":"e833f3bd104fc842f16d8dc7d27eddae8aaecf33","tarball":"https://registry.npmjs.org/spok/-/spok-1.3.0.tgz","fileCount":24,"unpackedSize":71950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd98NZCRA9TVsSAnZWagAAph0P/3GTOZvNmiFf2gmV9wjm\nWjAYPiK+KQu/WiFR6Jj9qA7efJSTpf+2ueAnaVR3D2chZNp7d3zTfJO6O51V\nUtVf+Si+9NZKu0b2aSlU4CjJnSOKO9O01pAJV+zWAjB+59m49midU4invJRo\ngvx9u91rchoHVmmiem7jTi2oGBHCmTwEkFokkm3w9QjQtrasG1entkvG16xR\n3mii7DjZXb+dVSdVrQKYfb+uNhHgCSqEM+iReWZGNUTHe5QcneYq/rY354aE\nr3bwichJsUiMGRbYQ9Cn2SOJdASv2GzVWySfbIbN6tgh3KZkFm9OOEjWcNeX\n+pBlsmbVp8HAC0oObBgo8pmSmnly1Aiv38uuB+/vD1nCkZueaJedWd2RxA6M\ntog0CdE0u5ffc6tzHEZbEnYliYPsEwGQl0C9y4n7cPiDvI3v0Z0E+1xvEGmv\nsxdslDlEQOGV4ub/DkRDHmn1ChJegZR0Kpdt8bkKNDyAUBd1MVm4dDoHCaZF\niX+2erdN5P3hAFjdFODXX/IezbjAxeeMEWRAoCrfOt9Jv1xAj1LwWdusCZ1v\nMNHza456GmrXwr+AzftMQjOBplp3ZJpk0WFjDCEXR3puJqFHIlRc8leI08RQ\nQNR/d0yLF9Hexqk6jy6LynfwUlrqMi5bwZum0vgCbdptHfhCM4ekEJXu0i68\nKEzi\r\n=zmPY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpAsnyed8cTO+Hnol5uCbmrkAvJAOWfe18sFFpPQBuQQIhAInVR++fJxAnhX+cONvYDPDq9AZ6Qce3dOSWZXWhFWUX"}]},"maintainers":[{"name":"thlorenz","email":"thlorenz@gmx.de"}],"_npmUser":{"name":"thlorenz","email":"thlorenz@gmx.de"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.3.0_1576518488769_0.9597556096256508"},"_hasShrinkwrap":false},"1.3.1":{"name":"spok","version":"1.3.1","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-8":"nave use 8 npm run test-main","test-10":"nave use 10 npm run test-main","test-12":"nave use 12 npm run test-main","test-all":"npm run test-main && npm run test-8 && npm run test-10 && npm run test-12","pretest":"npm run tsc","test":"npm run lint && npm run test-main && npm run tsd","tsc":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","tsd":"tsd"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/tape":"^4.2.33","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","tsd":"^0.11.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=8"},"gitHead":"058acf405ff02d612a557516cc48e5e398cfd513","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.3.1","_nodeVersion":"14.17.6","_npmVersion":"6.14.4","dist":{"integrity":"sha512-lL/JyN9ru6VZ8ajsT9fWeTChh6hBu11ixlQBl15VrvAnfD3pcMD460Vp2+H+ZCTMTL6nZp7p21Rcr30kU2IWNw==","shasum":"69028d54c22df54869047ad23e92549b05095106","tarball":"https://registry.npmjs.org/spok/-/spok-1.3.1.tgz","fileCount":24,"unpackedSize":74208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhkp9SCRA9TVsSAnZWagAAN2gQAKBFQsRJ96W+dYLUILol\nATcEbBEAqO0Dqcf6dw1Z0GbqOnhsD90ywcwe5rwfH31I18K3BbotBTe1M8Ty\n8CWe0+FbY4UkF7+T/SP27B9vkexicnr265wWMNDTTA4mbMynYcEqnR99VPB2\nlN75xa6PO0BbUmWE9+lzipIgu7P7/nvXq4783TRkBFhfJs3c5+iiPxyaY78T\no9EErjucZgt2BD0st8UtyDoFZ2AypyZvZdJpu+s8PRuK9ZTdLzcvalSh+D9S\nxw6PJ9iDnXhsmgPN7icqB/LIgNXuRbwVWY3Wt55/tGdL/bj+8jl7e8dShT0T\nqXXXKXMzwS5f3lQ+JOd3fp2HFF8CzFzkANuyfdwddpHNfC06ESaGyU7qPUvC\nResg6WBw+Rz0tENlUJ5sxslnBVpM7OOQGCU7gfCReHWkW4gcKgpEF0m2mUQq\nQjfgXqazyMMDLds+yr93G4myvR0F3TFSd+ZiEWUnkvAhp3Al6MlPht4tg5Vl\n/NsfIR2DjrFVoqyTTdcOiw5gf1Ax9xzKUNvzlospmKDQqrjkKq8X1HnIkPo0\nUtZ9G5H3Ce7U5HeQrnaAM7nPivTprFxvo+jYgeXZnfejQWTWFFlkhU8vnd8e\nmwZuuIk1TUDcGBoTUmZvYAyNUFf9wCYHn+XCWHBs3te6o9BvNWW+qKGwbLZO\nLtkn\r\n=pDvL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcpvxg/G5UMxVBG8DaKe8cvgCRqY0GPxv7SruAsKsuUAIgTUNdAo4Wx1GVrJ0d2jWXT1snHQZkEMzynAt+rXzD4OY="}]},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.3.1_1636998994300_0.9479205835893576"},"_hasShrinkwrap":false},"1.4.0":{"name":"spok","version":"1.4.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-10":"nave use 10 npm run test-main","test-12":"nave use 12 npm run test-main","test-14":"nave use 14 npm run test-main","test-all":"npm run test-main && npm run test-10 && npm run test-12 && npm run test-14 ","pretest":"npm run build","test":"npm run lint && npm run test-main && npm run tsd","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","tsd":"tsd"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/tape":"^4.2.33","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","tsd":"^0.11.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=8"},"gitHead":"8601a43b71d39dc5003c74272cbb8ebec40beec2","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.4.0","_nodeVersion":"14.17.6","_npmVersion":"6.14.4","dist":{"integrity":"sha512-81UP6kpkKoSu+kaXoAxvwg6fa4fTJq+DQa7+id9ELdWYHqGa/T+0jOVYHe5oRfRdeb6s1p2EzwNgpN2ZO/CdWA==","shasum":"d21792d860b2235dc2fa850f77c3b6d52fb68a38","tarball":"https://registry.npmjs.org/spok/-/spok-1.4.0.tgz","fileCount":28,"unpackedSize":77586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhksDxCRA9TVsSAnZWagAACh0QAIZnKv5odkrMjsur/7uu\nMfXq84vw8igeUlPbH5ZJNoAd0IlciwjU/TLmB9Hds+EDL8bfalqHTcT6IqAb\n82ql/heiuhs6PrIgizrn8VInNiMBk0DSVQTV9tYg5fcJDhslXwJIKXdQZ9tL\n3DqNEtp6+vtVtvTWVkEfZGnex/ktJnTZLoZviRt3g8qFtx0LfHIijJehkAuy\njRjPZ5/PWT4pUjwltmyyWtGIAL85ggLPWrjx/+I0UDLMFqL1fNSJuTJU7cWW\ntlI6VwiuxTdZTXPzA9VQ38GXVRW4hrWHkszjBw/rkA3uE5bGDJjZmPr517Ck\n6e96bulZwLlvziOUtFLzW/o5dRC9bEwPMv31FCwKuaApC8it0ZS3g0x34vIt\nvw8trPR0puvCRQLz/T7rX4pD/sPlZQHd3S8yUHBhwI2AJPj+/WGTnf0KSPgC\nRpYikgWbF/OHyhVQjzJS04Rw9gfpCNIX+4ooxj6J/YBh7CgBJis8AsZ+UBGX\nCdUqaF2MudBOWt9fvtbvcyM8UBYq7ECWu/XC9zcx0ZxkBk6dpF8w+G83DNpQ\nrCmYpWm8KDlHLp5/lrU/VWCN98XeundNskfCd/Rtw0/tO05CVNB0yTPSId6Z\nylEbz8/sVP1XekXMKrstjbJsqwdavMgtqSWaaulOzzRJm3DaeVc0LpWp/mR8\nZbzM\r\n=3u+G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5U1aG3hd9GjmYjqGbwHUuD1sfc23Sd/GZgwh5cSR2EAiB5fLPbgAzLq66a1GwphTGziRAC0IrHuDfZ3xuDIUxgHw=="}]},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.4.0_1637007601508_0.9693702750761559"},"_hasShrinkwrap":false},"1.4.1":{"name":"spok","version":"1.4.1","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-10":"nave use 10 npm run test-main","test-12":"nave use 12 npm run test-main","test-14":"nave use 14 npm run test-main","test-all":"npm run test-main && npm run test-10 && npm run test-12 && npm run test-14 ","pretest":"npm run build","test":"npm run lint && npm run test-main && npm run tsd","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","tsd":"tsd"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2","strip-ansi":"^7.0.1"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/tape":"^4.2.33","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","tsd":"^0.11.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=8"},"gitHead":"8c464830c20a1a4b2162cbc7bfe7131ae8583491","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.4.1","_nodeVersion":"14.17.6","_npmVersion":"6.14.4","dist":{"integrity":"sha512-rIG8DTi6vCpgByM4lKGUvNQZcTGXlsMa4XvOTbsf6uEKhXE5OeNf1A8OEnDh/Tg9Md0+tfLT5hHVB6Q6t4A4dg==","shasum":"c2c2066c1bc03ee7fcb03834b966d88082cdbfc8","tarball":"https://registry.npmjs.org/spok/-/spok-1.4.1.tgz","fileCount":28,"unpackedSize":78019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhk8VLCRA9TVsSAnZWagAA4QAP/RuiHaBIqvT+tIareQM7\n2gT1xQxAmP/wqsuB5R8GPZJcjaZy7maXGCS7diX5uDzCFX8D5EOvyqZCvcWw\nwE9Lf8hXGurRInXNs7H6/7GMVpW9oBVdXxaOV92IeqQD7vQZONHi+scSTQKs\ng46R7gU2IptvVLWztOHrzbZwoGDhvFMpUiEM5rZyfBB8Ny5JVkFR9patHDTr\nI9zSnrHWzvUfxuDXaELzPtWU24Nh7Zx+OBmTyAv2l9dwg0sxF+S7zx2O4PnC\nbvYI6T63GQU906YZd5YmeCVWNiGFV03kyLFrcQA7AeRXpl3xuJeMtCnWEtsl\nG/ptHHEQIziAaEX9MBuKw1RuTHSebdk7XwkXXEJLOzvDcUbLMEq6ooToH+O6\nMaE2YeK5sKVhz9sAPG8vWrgSb88qUBC70/1AYFiHxt73Ls7BIZOEgwZDv+ID\n9HFa0JbxLgcwI2WmMAukycg/PV3GOS8scB5CuzoykC7w4/gwMmEYkLKtZntE\nm22qztVA3tWA9pkPFTZjLDXIIQvqsF4kGpXOYJflhsodp4A7o/xV+ctrRMWd\n6033TjwXK/G4DrAT4FYg17XSCboI9wdbAY4RYzc32VqC09q/MtC4UozzQAIs\nzmLw87ZRZER4g6pLEON8nu4UYLvPucnBMMEVbPbnC8izadWjbdz2YU9bh4yR\nyMlu\r\n=3KPm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGyeBQgyMimubDwrDvDXbEyHc9L3O+/0z/X1oXCUSs7fAiEAuI2fa4hGtBKVlGj8Uk4egoWUu7cSiWUoW92PMp4AZrw="}]},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.4.1_1637074251836_0.5248538713081361"},"_hasShrinkwrap":false},"1.4.2":{"name":"spok","version":"1.4.2","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-10":"nave use 10 npm run test-main","test-12":"nave use 12 npm run test-main","test-14":"nave use 14 npm run test-main","test-all":"npm run test-main && npm run test-10 && npm run test-12 && npm run test-14 ","pretest":"npm run build","test":"npm run lint && npm run test-main && npm run tsd","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","tsd":"tsd"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2","strip-ansi":"^7.0.1"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/tape":"^4.2.33","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","tsd":"^0.11.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":{"type":"MIT","url":"https://github.com/thlorenz/spok/blob/master/LICENSE"},"engine":{"node":">=8"},"gitHead":"2d73e566288d7faac2728b14acc73c5eb84e76a9","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.4.2","_nodeVersion":"14.17.6","_npmVersion":"6.14.4","dist":{"integrity":"sha512-Qb8jzBGYkutHGTA+26HjkI7G/WuGsuFZRMmCTyWKDxAflt/fYvXb7D4ryIQHhqzt9BRaliymufOe6fVQCpXE+A==","shasum":"94badc9abbf42235cc86f77495bfbe285f77f85b","tarball":"https://registry.npmjs.org/spok/-/spok-1.4.2.tgz","fileCount":28,"unpackedSize":77960,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhnjvsCRA9TVsSAnZWagAAI84P/183m6k+JEKQn9ZWTu5J\n5Q7reXEQfgxcB36bPy1/nXdAmoIZqWWlRTh6jqT6hufPDBgS4p3FjS1RNBAV\nWfIB/GbIh6XL509VgJYAkIgRA5/KqVW13ZlBHr10xk2ot9pBuYWA55xka1H7\n+rXq4lIgIFjju72FaWgsORrOpbg7Wt+/sHGj09oZUu9xXhOMWh5caGVdrord\nLNDq74lS/rA/y54XbsRhbJMLMrYMQoZOodMr3mGBlL5whsa1FHzm0RNhBni8\njVTc5x+05djzEL9RE503BKIKTTkguhODsyLiVSwy7X9zzs867MdjoGswFQ4b\nbUhFEkTJdbKTnRpTTXCYLhdVbX0htfqgVVbf8nZD796gP4fIj6SdpvAzik/l\nwO7xZsDI6oEmzQ4XYtnYKeAndsdFXD7J38IeYYwq9LMVuBGyK/0RZH8i971S\nTa/OHkyQlNmLYmm/kkqMgwU2AQENGxENkznwuLjZJtmvNOw7bfekY1XI8+4D\nYLmUZJ/p9XF2GBDN7AvD48uEJkrhv/yLiRa/LLA4/0RzzAzL/oWDza6QNxIc\n2DFlthBvKD1orOoNZSRLVQtbRs+Ko5+KpF5PM+8da2tyHDpm8IqMM0PjL9/g\nwazra8EBX2HTsEE2jAzllfXMd15vDesvVp3K8CETleNHWcJC6+3L9vR16T4m\neQBa\r\n=A4pe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJ8D4whgTLzurSoWUxCS1yoMKGhU1kAxuOV4olo+AH9gIgb5xhSPFcjZlxbGcrs7Jz9JMCjbTNujjyPdLAdmzW56o="}]},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.4.2_1637759980175_0.008374489823925968"},"_hasShrinkwrap":false},"1.4.3":{"name":"spok","version":"1.4.3","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-10":"nave use 10 npm run test-main","test-12":"nave use 12 npm run test-main","test-14":"nave use 14 npm run test-main","test-all":"npm run test-main && npm run test-10 && npm run test-12 && npm run test-14 ","pretest":"npm run build","test":"npm run lint && npm run test-main && npm run tsd","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","tsd":"tsd"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/tape":"^4.2.33","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","tsd":"^0.11.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":"MIT","engine":{"node":">=8"},"gitHead":"f71b0266d26004332ab0403cd24c84eda11f4c2a","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.4.3","_nodeVersion":"14.17.6","_npmVersion":"6.14.4","dist":{"integrity":"sha512-5wFGctwrk638aDs+44u99kohxFNByUq2wo0uShQ9yqxSmsxqx7zKbMo1Busy4s7stZQXU+PhJ/BlVf2XWFEGIw==","shasum":"8516234e6bd8caf0e10567bd675e15fd03b5ceb8","tarball":"https://registry.npmjs.org/spok/-/spok-1.4.3.tgz","fileCount":32,"unpackedSize":79349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhs99UCRA9TVsSAnZWagAAKjAP/0ttQOmFpsg8YdxBPmKL\nVD8P4YPsNq5juaY5huc8Q2qVwX7Syf3PiABOxdqIA21Zxwc1R1xuJk4i2sx6\nf4JsFdUklpYyJxyD2OkidlmGHDtsfFBT1QeGMk/TzrCSDRQUZpWdJnWvYWY3\nDNeEE+sGyvRR3XD4FY0ttXzyfFXQEJNuKhhInE44k1v5//ugwT3xn6uealMe\nvSUxeriApy20aL98Ptf1x3epfYSJO/kPtdKqGZE9Xf6v6iBlB9W+zKKLvKsb\nnz1KKeKbZzXt9Xim16VcWoQYCVrqNz1NE9gfT3090oICYLcCBgRelhpgjUeK\nLKtjh11Trxbruwnn/snaZjeNzOj5BxXsfCsaQEHeN6A8xt3JHDtP09G4GOnV\n0O+183XykmZXC/CcXZo5cam7JpnenkEAyCmvVya7I3AoUFnd7qxtabf4RFZE\nPcZmpqxoOmDpfSr+/ktN0NZnMCknqgooBoYsKtFXSgq7AP0r5hnAprSx6NJj\ni2E7/H19w2uvp1zdQys8SBtFm/7Kv+OSJ4HMVDNwuYnoyeifHSwzZg/hdu1h\nxpjrrWwgP8kNwThf9s1xAA/Nhb5OPm2P+TmsRgl18zXzBLWU2yD8XBCyV5Tx\nWBYe5Xoht+jdNGV1V5nL209kKlCgpZV10m3y4LKABRkm+cZ7GJaiDJb8ocHB\nU8WA\r\n=ZsWO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBTEELs1UOITpr0qxdUZpm0DmMR0At+gfGYbu0DDQPIcAiEA0FHfAOGKDqLJ8xAnfSuLpNpLhvThpmBi0nTp7BUsm3U="}]},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.4.3_1639178068683_0.4189480092475182"},"_hasShrinkwrap":false},"1.5.0":{"name":"spok","version":"1.5.0","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-14":"nave use 14 yarn test-main","test-16":"nave use 16 yarn test-main","test-18":"nave use 18 yarn test-main","test-all":"yarn test-main && yarn test-14 && yarn test-16 && yarn test-18 ","pretest":"yarn build","test":"yarn lint && yarn test-main","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","doctoc":"doctoc README.md"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/node":"^18.15.0","@types/tape":"^4.2.33","doctoc":"^2.2.1","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":"MIT","engine":{"node":">=8"},"gitHead":"204382f4bcc6ea7538b071733e6db6315d2a61fa","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.5.0","_nodeVersion":"18.15.0","_npmVersion":"8.12.2","dist":{"integrity":"sha512-1meYz8t8JNppbrPttFbnBBZukIkDnU4xtJeqHfL7o40ayUqiz/Vnr2vlE9gI8t1sYt1vgKo509eLBXadItmDkw==","shasum":"ba722cc83c827ff6fc1094d42a4ba4fa04f82a88","tarball":"https://registry.npmjs.org/spok/-/spok-1.5.0.tgz","fileCount":36,"unpackedSize":83024,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFOvGbc5KYxxx1/VKDsfjKjHD+VoabuJQO7i9mck1UptAiA5onbqv825j2ADiopPUYK+q1O++/eYgqvi7xSM7gPF0A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDFKMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNvQ//VEQ1t9ZskhSYq0aA9ckdVIiQl5VUlTzt//W/FdRBw2GcQoDZ\r\n+G+QRWFr6rgn1YOOJRv1vtw5Wmpqkg4i1zOzRv2kUm9T94oaa74Np+OSCGud\r\n11UB4tKH/bKd2gDqg2Ubf+utnNvIy+5x3Fi0ReEHsKAdFoQLuPOKOHzHlcVm\r\nURBEsKNJlSdQvMN1dSvO4+Aj+cd5bLrCpi+jkT+k3gl9BtNYB544Pm/F2XlA\r\ncf7iJtFty1V+4OuEmiQio4v6ISkkhCz/7RCVEj3Rl+BlVLkE7O9SBns3eNyD\r\nJoMwqDgRfB9dimk3N1gC/lRFZn6NAPxugBLDZFaDeLUxWxAKJZd6mlsAq7rC\r\nZyLod0aYskV/pkd/EMF4W1XqPM8ROS7MQ5AVhZUACaWnI5bT78Wu1KpzweZ6\r\nq4xrmoTfJ5vNgQrjTadPz1KHBXtqo4iKaULcDfNdybjx27WC5aIEoFFlBJCV\r\n7kfBF0bsrR7B2vJVhGsEWbzeGMgnS4v6Orz/RCD7ljja7zNXVPK2wD24VLY0\r\nw01z4kXHI+IerKabyxQ6PJVgOybiGWKZl5tg5o6kumVH9nPoSnwcDkIpOxon\r\nWTY7HvIrJB7aKBHJiX4TbT2NWEhjZai7AfVdDZDFSoyU6+6CkAiFntJic0tH\r\ne2AX8KxjnZL1VAwE7OGng9UyK4FFLjtw0SE=\r\n=Ocah\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.5.0_1678529164073_0.636246706163275"},"_hasShrinkwrap":false},"1.5.1":{"name":"spok","version":"1.5.1","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-14":"nave use 14 yarn test-main","test-16":"nave use 16 yarn test-main","test-18":"nave use 18 yarn test-main","test-all":"yarn test-main && yarn test-14 && yarn test-16 && yarn test-18 ","pretest":"yarn build","test":"yarn lint && yarn test-main","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","doctoc":"doctoc README.md"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/node":"^18.15.0","@types/tape":"^4.2.33","doctoc":"^2.2.1","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":"MIT","engine":{"node":">=8"},"gitHead":"64bfa2a4494f72e316ddacdd4012e283ee4c7336","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.5.1","_nodeVersion":"18.15.0","_npmVersion":"8.12.2","dist":{"integrity":"sha512-7hYfRqYCEdPCdWLzDcPopg7SI8mDtFLM2rrDXGJz78V/nbIz7Xm9pZbMdb/tftp7+1t9LZj4wI8MeMANNkDLtw==","shasum":"cbdff472eefe25ebe7fef8428b38aaa7ab3c0f94","tarball":"https://registry.npmjs.org/spok/-/spok-1.5.1.tgz","fileCount":36,"unpackedSize":83047,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHRrs3uvoSThakCbCJUX2AJng4r5R6s77uRa2fJo/9SiAiB1RX6YjS6Xw9vCCje0GJJ+G81Ppg0NyXjG1k+rmpwGog=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDFOeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoxlw//dxzIpmGruFmIqTNiwGZhWzh+FQia1qcKjqWFqxNgY9BfNbCL\r\nJR9N5VuEh+F46gPNqXS367XHdUlP81G5N3i4fEhhzOiTDIwMIJ5dMafmS4Wj\r\n5Oiu0MlxEjQef6PIy+dQUdkZ3Lmta94okSfabtfTe6gZbcKMgms9bUkAag2v\r\naI3SjtQ0hC8V7IslQWn9g74StptuozdOhr6YKcct04VTtuEF7QSDg0qM/mVB\r\nBMv0avHoG4q4TvkSb1dj3SWE0KF3X5gvcYy+0ESOoFHwcFbSnq0kdfpDDSZz\r\nC2AVhOnaCaOep+Qcj1Fx0Lkmvv5Lyd6Yzy7xrTjSxwmlW3bH4V/oJPzJ5Uc4\r\nSdCCrHMSpMERC7y5RGR6FyB7V3C+rDVpkEsWeI+z61bzEYiTG9Vx3MzLp1an\r\nxDtm1s8R9y+WROmgq7yF90xmB4U7plg2Xf6j0dGXmFWtOWMokEZKdLvE1Ed8\r\npzeUZWiLMixK4qew3mhS3QaKNQxPMhb9LW7FHw2MLToSwuhzt28e7Afybjcg\r\nIaZseqJyWP3M0Nd8yrpJhigE6zL8OkO1ObJ36Zqm7PuD3kF91aAaONyZ1c2z\r\nT7QcJ6vZmiNxPQuUgy5tKGZQOh4juriAXoaTfODKNY/R8SzJ12kS31pI9nPY\r\nPg8yFLXc6jzOj201dNS4LsjFaiWWSV/Ql3I=\r\n=bQ6b\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.5.1_1678529438023_0.2922565935446315"},"_hasShrinkwrap":false},"1.5.2":{"name":"spok","version":"1.5.2","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-14":"nave use 14 yarn test-main","test-16":"nave use 16 yarn test-main","test-18":"nave use 18 yarn test-main","test-all":"yarn test-main && yarn test-14 && yarn test-16 && yarn test-18 ","pretest":"yarn build","test":"yarn lint && yarn test-main","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","doctoc":"doctoc README.md"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js","./dist/utils.js":"./dist/utils-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2","find-process":"^1.4.7"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/node":"^18.15.0","@types/tape":"^4.2.33","doctoc":"^2.2.1","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":"MIT","engine":{"node":">=8"},"gitHead":"afd558635d25badec7f6a758943877cbf3da8493","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.5.2","_nodeVersion":"18.15.0","_npmVersion":"8.12.2","dist":{"integrity":"sha512-SznNws2O4oh3i7eQkk3VQHkE5GHdPjG6VNt2lquM7uNKD5sdECIyzvBBpkpamAsBSyWO2UHfaS9yYy8qul0GaA==","shasum":"94178583556ffeb89953d23e62ff57bca7c8fcba","tarball":"https://registry.npmjs.org/spok/-/spok-1.5.2.tgz","fileCount":44,"unpackedSize":86708,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEYgLBglXj9hbJ+Zb5u7Ll9WekeFaU6PZAMnCZuXi0QaAiEAyJ9WkUAn5BkFGUXjCVp7fXdQxxFOfVA4SNMc2x2ZXk0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDGvrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMjA/6AosNUE1o5HAFs2gssktpRJlmUHtau/CBN5KTDcHkqw8wrhPN\r\nXI9/jN8FDftvcJzy9q9j2iq0VHo/A6tYFZtbMEmKkugnwfZQ4Wvbu1nbR+ZF\r\nxQzmlVCizX0TaKGklWSlrdM121VdLtzoKU8u01A54bTcsar+aoQBJcXwpfeK\r\n5JQ5iftCL4axA+VNX3Vj3zU1nRHZ3y253wRZObmFmLaU/XO2WU+1F+5G1lDq\r\n3nxo5tjkSo/99V2rEdh4/A5axuUHgqO25sEfVGCxEZ+06FyFKRCOeVl+nyhh\r\nIQz6tcE1j97rtgRFiBAi69usHNUrxpAUQsVyvLraVUSsZZPgTeUDCSvg5n30\r\njDTfW/axp5B63P6mAE2YVNaimZbJxbv1hAjcTWF1HG8MvHDWDeaEximSkqsm\r\nGhFvBvMuSv5qcKloG1Rr6V4Br1AmnD13GPkZqygmumS2+S0jVJz7mOfITW+i\r\nOL88ktoCVYMo+mJfDZHaumLzcFXxSzWh3Pp6bOHCFgqUtvrpR5iYPlujI9C1\r\n0zZuAIf6dLbLfgCeq+I1g4S9BtVU1cM2Vu5eL+XlqKS+9Gj4eC96S7guu0u4\r\n8d1+JylN2LPBc521qeHvN+RjjSxTGhZlAwUQIYrWRsZkORsOz2jl58NKsFY0\r\nXpISmh7nY5wvmEq5IfKk7tcAqDqTzR2p4+s=\r\n=yPlQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.5.2_1678535659719_0.48680450052887836"},"_hasShrinkwrap":false},"1.5.3":{"name":"spok","version":"1.5.3","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-14":"nave use 14 yarn test-main","test-16":"nave use 16 yarn test-main","test-18":"nave use 18 yarn test-main","test-all":"yarn test-main && yarn test-14 && yarn test-16 && yarn test-18 ","pretest":"yarn build","test":"yarn lint && yarn test-main","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","doctoc":"doctoc README.md"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js","./dist/utils.js":"./dist/utils-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2","find-process":"^1.4.7"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/node":"^18.15.0","@types/tape":"^4.2.33","doctoc":"^2.2.1","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":"MIT","engine":{"node":">=8"},"gitHead":"6abb410c1e05a716ebae4e760ec33b8d1a091664","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.5.3","_nodeVersion":"18.15.0","_npmVersion":"8.12.2","dist":{"integrity":"sha512-4hR7V5C1qGyoTynrryjnjc/cQvNK99iO0eBXN/W1wOpS+IwjmcJEu2MuE0cTpU+15c3Qru0esgPMBxYlyJBy/Q==","shasum":"df737ce22ab540c2726f22e7a5fddbf9a30c6066","tarball":"https://registry.npmjs.org/spok/-/spok-1.5.3.tgz","fileCount":44,"unpackedSize":88166,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHDQRY7+SGwNFccpntQjmN3BdHz0m2xvEidUVxqw0UkIAiEArRE9Z5SMc1k2JsPabGO9DwWQpKcLbP6i1V9jwxT6/78="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDHLqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoV8w/8CPhRNcy3o00HXFtwLK7QMqhYuqfjq7Ja9MgDuuD0QzsK3Gxo\r\n2xXcQDdbBQxO8tGTpOzGXhLGPJGNlK3fiJSAzhZsBq7buebIBYM/3WfjmRU5\r\nSKGeA39ezTHX92ensdbcRxNiPqAU86LVTeWqAKE9nGtzsMz00wQUY/QS0wNT\r\nkri2/zTSXyogHIXE7b/iyt4Sy3KM2/aE6k/bx8DJX7PgbALZ10vab5K4M3Kg\r\nfm4keq/tRW7uzFzFsF9hVLGwAE+YIa1GC+WcMzy/a2H7h0KnkuLr3jdbQDDD\r\nO0MccgcfkR/1kEqTU5kvsReQ4hnVlOWFye5of3yKzKh53zwlmhcBlpQn1vkf\r\nu/ALHgiZBW0G/XCZj6A4+jJoexdeC88ic8rbEcZacZ21ZiTvlzM524IjvwXl\r\nX02WiKOc31xpzP2SPIDx//4/aZNfU4P2zkOGY3tJMwb7PSRjL/OBuuwsO8dS\r\ndqu5pQUjbXW2ViM2gyOFgqOqQLDAzG9eqAa3Os3BWhYdA9csIqwySZYGzgfu\r\nlhigMNku3U8fHLTkxFTIdzqQcWDTmj1gsccw6wiJ+cAXNi/dqlhpV0NXbhBn\r\n50h0mbthGdvkObDoN4Q+RMVal5AOLrYjlF/iDitfz+d3J9ntdZOu3HXL2drS\r\nFHrBkl/P4oiEMH7C5N1ZXeOd/WagRqt0x3E=\r\n=6AhJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.5.3_1678537449808_0.9630161258551517"},"_hasShrinkwrap":false},"1.5.4":{"name":"spok","version":"1.5.4","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-14":"nave use 14 yarn test-main","test-16":"nave use 16 yarn test-main","test-18":"nave use 18 yarn test-main","test-all":"yarn test-main && yarn test-14 && yarn test-16 && yarn test-18 ","pretest":"yarn build","test":"yarn lint && yarn test-main","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","doctoc":"doctoc README.md"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js","./dist/utils.js":"./dist/utils-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2","find-process":"^1.4.7"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/node":"^18.15.0","@types/tape":"^4.2.33","doctoc":"^2.2.1","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":"MIT","engine":{"node":">=8"},"gitHead":"1f0a05cb42bb8d1149fdc0fbe9a305b2d255bd9e","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.5.4","_nodeVersion":"18.15.0","_npmVersion":"8.12.2","dist":{"integrity":"sha512-fJlp0ImJs1NXzQJPUUVx2HOHTwz+wacpnNDgXlaa8pPdJgs6nXmO4tLzSWaNIClN6CWm1Zynn02zVM+cV/30gA==","shasum":"8a6c4af536159b156727a949910e55ae6302d6de","tarball":"https://registry.npmjs.org/spok/-/spok-1.5.4.tgz","fileCount":44,"unpackedSize":88338,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEkBjdvLxx7ZEr3PHXqP7Md7AOpzpFtErJIR4m/qtsn0AiEAy5EUkQhe2WPDCBRKeBE6j7gi71rKe77D69XeD2Pmqos="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDH97ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzQQ/6Ax0J7A59XmfJIJFYSqLDftZHT3voVSGVn+khwg21FlQCATvT\r\nRX3JmRxsdePLgBIKZ8pElE4cWP6hqVCsxLbdkIuLmA96MqyXSnH1dbXjXs/y\r\nk9ifYa/8MwLGhpvwCNV0qYdGuAOHD9KWFkIBZM8ZipktGmrFILXbeCoj94BN\r\n6zBi91+qffhER6MG3nMbfTq8eQl8njkIKF7gOpQEEFUEtjG0YcS+DT2FsM+n\r\nB8XHsctJyt5Q4+xXdDkEljVnQMfiChQRq0kmoNubfYkYJshBYxL/5yrOKxCS\r\nkYgfTedQaUFUFnT6w4+RQtNUXQnuIqauRMYVBykWYdwQxQjq1lG7IlFLt8tn\r\nltQ75e/A8I0hcuw4Z9b1RoSMA0M9oKIraoVvHMCeI9NIRwsLPbBwggIV+LU+\r\n3gpBoiFexIKYNOJBTn0xadeT7nqHceafVLcwojJInXSOavzuMBos5ZWx3ViI\r\nJB50PC8OV/SFK44Xh8+8BYeeKoeQxzxqliCFDcsXdyEBzNNtgKcUoG8KNHm5\r\nFlqTGPR2d0X2HxC3IetwLVoXeEPKPSsn5agaxhd4I/dmqKTg3Zl2hG7FVxzt\r\nO6FMW3oEEC3lLeOJy6w2a2cxSiTk7t1yykdDziQTpMbCcm1CLnosTtO4HWW3\r\nce0bsGHZPjQer02o4BkR6sSn+BJsDIoyxvQ=\r\n=nJnk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.5.4_1678540667426_0.1978680168568614"},"_hasShrinkwrap":false},"1.5.5":{"name":"spok","version":"1.5.5","description":"Checks a given object against a given set of specifications to keep you from writing boilerplate tests.","main":"dist/spok.js","types":"dist/spok.d.ts","directories":{"dist":"./dist"},"scripts":{"test-main":"set -e; for t in ./dist/__tests__/*.js; do node $t; done","test-14":"nave use 14 yarn test-main","test-16":"nave use 16 yarn test-main","test-18":"nave use 18 yarn test-main","test-all":"yarn test-main && yarn test-14 && yarn test-16 && yarn test-18 ","pretest":"yarn build","test":"yarn lint && yarn test-main","build":"tsc -b","tsc:clean":"find ./dist -type f -not -name 'spok.test-d.ts' -delete && rm -rf ./dist/__tests__","tsc:watch":"tsc -b --watch","lint":"prettier -c src/**/*.ts","lint:fix":"prettier --write src/**/*.ts","doctoc":"doctoc README.md"},"browser":{"./dist/inspect.js":"./dist/inspect-browser.js","./dist/utils.js":"./dist/utils-browser.js"},"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"homepage":"https://github.com/thlorenz/spok","dependencies":{"ansicolors":"~0.3.2","find-process":"^1.4.7"},"devDependencies":{"@types/ansicolors":"0.0.31","@types/node":"^18.15.0","@types/tape":"^4.2.33","doctoc":"^2.2.1","nave":"~2.2.3","prettier":"^1.19.1","tape":"~4.0.0","typescript":"^4.4.4"},"keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"license":"MIT","engine":{"node":">=8"},"gitHead":"8abb34fd2a2a6cf6c1aa0e41c83ea867dfbc4b59","bugs":{"url":"https://github.com/thlorenz/spok/issues"},"_id":"spok@1.5.5","_nodeVersion":"18.15.0","_npmVersion":"8.12.2","dist":{"integrity":"sha512-IrJIXY54sCNFASyHPOY+jEirkiJ26JDqsGiI0Dvhwcnkl0PEWi1PSsrkYql0rzDw8LFVTcA7rdUCAJdE2HE+2Q==","shasum":"a51f7f290a53131d7b7a922dfedc461dda0aed72","tarball":"https://registry.npmjs.org/spok/-/spok-1.5.5.tgz","fileCount":44,"unpackedSize":88492,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDon+qFwwmrGjJ4YqncN50jciZNruv/1MVZhgvE9b8wAwIhALVGsIfwSYOaySOmU/gYkujiMakEaCKd8BsReYbyLDV9"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDIPUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/Zg/+LTv37qrgKhT1nIm+3j9Fc/wHiOQv5xbM3NGjZFpWIafKDPXG\r\nrY3L0OUdLWsFDP9X4RP+LYwICGz6ozBVe+gz6BnI5SSvoLaeabkrp33VZyM5\r\n18TaCnuIZr4EGcdMBz9IHDdeAnaARm3eKge00uko6+2Hvns3h2Moz1cTT1tW\r\nmR8WzcNfUkp5nwWqA9UyVeCu/5nROsMHtdn6SVld2oDVUhsKAWC2zbSU5qJU\r\nKDpziPwugivV0/maairUdQ9dNWBP5RHYTsemTxDNvcyY7tC8yhqYyN0xVZl3\r\nwbv+ljnqDI05BZwnInv+Ss1ZsfqayUG60c4JUxdj0bJ/uM4sQ+fkxPvuaY9T\r\nF1Eig6RC6BJ/+DPYOit7RLeDKamwlt7MxaGnCAljo+BiaKT3oL92vFGltm/e\r\n+l/FZ/+5GqdfLEEjU5bxKY23Yrfp1xL0djbYx/Kl3Yf605dZx+wnq1V6IyaZ\r\nywAWIDU18w2XxmVgFq7RFterqDJtJZPizwQaABt7LuMYoRmWG+YLF/02+nqI\r\nUldJF+iNKmFACtaM3Hn4r8p1mpiBkRrJoz6BV3dYD0mM75a2LKajxmW0ivXg\r\nubIVRCEvcX0xW5olZZ3Zl/Jv6NoLKe81XhVi4DIDlTWeBham+ux9LPxhS2ce\r\nqHZ4WIADWbUlsMnAat9VPUaYII07VD63fdQ=\r\n=fezN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thlorenz","email":"thlorenz10@gmail.com"},"maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spok_1.5.5_1678541780675_0.07291122907164693"},"_hasShrinkwrap":false}},"readme":"# spok [![](https://github.com/thlorenz/spok/workflows/Node%20CI/badge.svg?branch=master)](https://github.com/thlorenz/spok/actions)\n\nChecks a given object against a given set of specifications to keep you from writing boilerplate tests.\n\n```js\nconst test = require('node:test') \n// or: const test = require('tape') \n// or: const test = require('tap') \nconst spok = require('spok')\n\n// this would be returned from a function you are testing\nconst object = {\n    one          : 1\n  , two          : 2\n  , three        : 3\n  , four         : 4\n  , helloWorld   : 'hello world'\n  , anyNum       : 999\n  , anotherNum   : 888\n  , anArray      : [ 1, 2 ]\n  , anotherArray : [ 1, 2, 3 ]\n  , anObject     : {}\n}\n\n// custom specification\nfunction hasThreeElements(a) {\n  return a.length === 3\n}\n\ntest('my object meets the specifications', (t) => {\n  spok(t, object, {\n      $topic      : 'spok-example'\n    , one          : spok.ge(1)\n    , two          : 2\n    , three        : spok.range(2, 4)\n    , four         : spok.lt(5)\n    , helloWorld   : spok.startsWith('hello')\n    , anyNum       : spok.type('number')\n    , anotherNum   : spok.number\n    , anArray      : spok.array\n    , anotherArray : hasThreeElements\n    , anObject     : spok.ne(undefined)\n  })\n})\n```\n\n![shot](assets/shot.png)\n\n## Installation\n\n    npm install spok\n\n## Node.js Test Runner\n\nSince Node.js 16.x it includes a built-in [test runner](https://nodejs.org/docs/latest/api/test.html).\n\nSpok support this out of the box as follows:\n\n- it uses the build-in `assert` module to assert the values\n- it uses the passed `t: TestContext` to print diagnostic messages that detail the assertions\n  mad\n\nSee [./example/node-test.js](./example/node-test.js) and [./example/node-test-nested.js](./example/node-test-nested.js)for a full examples.\n\n### Colors \n\n_spok_ detects if colors should be used in the output in order to avoid breaking TAP\ncompatibility when needed as follows:\n\n- if `FORCE_COLOR` env var is set to `1|true` colors are ALWAYS\n- if `NO_COLOR` env var is set to `1|true` colors are NEVER used\n- if tests are executed via `node --test mytest.js` and `FORCE_COLOR` is not set then colorse are disabled\n- if tests are executed via `node mytest.js` and `NO_COLOR` is not set then colors are enabled\n\n\n## Tap/Tape\n\n- tap and tape provide a `t` which mirrors the `assert` module and also prints results and the\n  diagnostics message to the console, thus spok uses `t` to perform assertions\n\nSee [./example/tape.js](./example/tape.js) and [./example/tape-nested.js](./example/tape-nested.js)for a full examples.\n\n## Cypress/Chai Expect Support\n\nSpok can be used out of the box with `expect`, for instance when running tests with\n[cypress.io](https://cypress.io).\n\nSimply create a custom assert function and pass it to spok. The main difference to running\ntests with `tape` is that if a single property in the compared object doesn't match the test\nfails immediately.\n\n```js\nimport spok from 'spok'\nconst t = spok.adapters.chaiExpect(expect)\n```\n\n```js\nspok(t, meta, {\n  err: null,\n  fee: 5000,\n  status: {\n    Ok: null,\n  },\n})\n```\n\n![cypress-passing](./assets/cypress-passing.png)\n\n```js\nspok(t, meta, {\n  err: null,\n  fee: 4000,\n  status: {\n    Ok: null,\n  },\n})\n```\n\n![cypress-failing](./assets/cypress-failing.png)\n\n## Why not just `deepEqual`?\n\n`deepEqual` works great for most cases, but in some cases you need more control, i.e.\n\n-   values don't exactly match, but are in a given range\n-   you want to provide a predicate to determine if a value is correct or not\n-   you only want to check a subset of values contained in the object\n\n## Adjusting Print Details\n\nBy default spok prints the specification that a particular assertion satisified, i.e. `satisfies: spok.range(2, 4)`.\nYou can turn that off via `spok.printSpec = false`.\n\nOn the other hand if you want more details about the satisified spec do `spok.printDescription = true` instead to get\nspok to print things like `satisfies: spok.range(2, 4) 2 <= value <= 4`.\n\nSpecs and descriptions are printed in gray so you can focus on the actual values of the test output.\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*\n\n- [API](#api)\n  - [spok](#spok)\n  - [spok.any](#spokany)\n  - [spok.range](#spokrange)\n  - [spok.gt](#spokgt)\n  - [spok.ge](#spokge)\n  - [spok.lt](#spoklt)\n  - [spok.le](#spokle)\n  - [spok.ne](#spokne)\n  - [spok.gtz](#spokgtz)\n  - [spok.gez](#spokgez)\n  - [spok.ltz](#spokltz)\n  - [spok.lez](#spoklez)\n  - [spok.type](#spoktype)\n  - [spok.array](#spokarray)\n  - [spok.arrayElements](#spokarrayelements)\n  - [spok.arrayElementsRange](#spokarrayelementsrange)\n  - [spok.number](#spoknumber)\n  - [spok.string](#spokstring)\n  - [spok.function](#spokfunction)\n  - [spok.definedObject](#spokdefinedobject)\n  - [spok.startsWith](#spokstartswith)\n  - [spok.endsWith](#spokendswith)\n  - [spok.test](#spoktest)\n  - [spok.defined](#spokdefined)\n  - [spok.notDefined](#spoknotdefined)\n- [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\nspok provides a few common specification functions. However you can write your own functions as well, just return `true`\nif specification was satisfied and `false` if not (see example above).\n\nIf you write a specification function that would be useful to others please add it along with a test and provide a PR.\n\n`spok.*` comparison function names are derived from [**bash** comparison\noperators](http://www.tldp.org/LDP/abs/html/comparison-ops.html) to make them easier to remember.\n\n## [API](https://thlorenz.github.io/spok)\n\n<!-- Generated by documentation.js. Update this documentation by updating the source code. -->\n\n### spok\n\nChecks the given specifications against the object.\n\nWhen the tests are run the **actual** values are printed to verify visually while\neach provided specification is validated and a test failure caused if one of them fails.\n\n**Parameters**\n\n-   `t` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** which has assertion functions `equal` and `deepEqual` (to compare objects) - use\n    **tap**, **tape**, **assert**, **Node.js TestContext** or any other library that has those and thus is compatible\n-   `obj` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the object to verify the specifications against\n-   `specifications` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the specifications to verify\n\n### spok.any\n\nVersion of `spok` that is less strict about the relation of the\nspecification type, namely it allows overriding the type manually or\nderives it from the supplied parameter.\n\nUse ONLY when you cannot adjust the types, so plain `spok` works.\n\n### spok.range\n\nSpecififies that the given number is within the given range, i.e. `min<= x <=max`.\n\n```js\nvar spec = {\n x: spok.range(1, 2)   // specifies that x should be >=1 and <=2\n}\n```\n\n**Parameters**\n\n-   `min` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** minimum\n-   `max` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** maximum\n\n### spok.gt\n\nSpecififies that a number is greater than the given criteria.\n\n```js\nvar spec = {\n x: spok.gt(1)  // specifies that x should be >1\n}\n```\n\n**Parameters**\n\n-   `n` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** criteria\n\n### spok.ge\n\nSpecififies that a number is greater or equal the given criteria.\n\n```js\nvar spec = {\n x: spok.ge(1)  // specifies that x should be >=1\n}\n```\n\n**Parameters**\n\n-   `n` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** criteria\n\n### spok.lt\n\nSpecififies that a number is less than the given criteria.\n\n```js\nvar spec = {\n x: spok.lt(1)  // specifies that x should be < 1\n}\n```\n\n**Parameters**\n\n-   `n` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** criteria\n\n### spok.le\n\nSpecififies that a number is less or equal the given criteria.\n\n```js\nvar spec = {\n x: spok.le(1)  // specifies that x should be <=1\n}\n```\n\n**Parameters**\n\n-   `n` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** criteria\n\n### spok.ne\n\nSpecifies that the value is not equal another.\n\n```js\nvar spec = {\n x: spok.ne(undefined)  // specifies that x should be defined\n}\n```\n\n**Parameters**\n\n-   `value` **Any** criteria\n\n### spok.gtz\n\nSpecifies that the value is greater than zero\n\n```js\nvar spec = {\n  x: spok.gtz\n}\n```\n\n### spok.gez\n\nSpecifies that the value is greater or equal zero\n\n```js\nvar spec = {\n  x: spok.gez\n}\n```\n\n### spok.ltz\n\nSpecifies that the value is less than zero\n\n```js\nvar spec = {\n  x: spok.ltz\n}\n```\n\n### spok.lez\n\nSpecifies that the value is less or equal zero\n\n```js\nvar spec = {\n  x: spok.lez\n}\n```\n\n### spok.type\n\nSpecifies that the input is of a given type.\n\n```js\nvar spec = {\n x: spok.type('number')  // specifies that x should be a Number\n}\n```\n\n**Parameters**\n\n-   `t` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** expected type\n\n### spok.array\n\nSpecifies that the input is an array.\n\n```js\nvar spec = {\n x: spok.array  // specifies that x should be an Array\n}\n```\n\n### spok.arrayElements\n\nSpecifies that the input is an array with a specific number of elements\n\nvar spec = {\n x: spok.arrayElements(2)  // specifies that x should be an Array with 2 elements\n}\n\n**Parameters**\n\n-   `n` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** number of elements\n\n### spok.arrayElementsRange\n\nSpecifies that the input is an array with a number of elements in a given range\n\nvar spec = {\n x: spok.arrayElementsRange(2, 4)  // specifies that x should be an Array with 2-4 elements\n}\n\n**Parameters**\n\n-   `min` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** min number of elements\n-   `max` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** max number of elements\n\n### spok.number\n\nSpecifies that the input of type number and `isNaN(x)` returns `false`.\n\n```js\nvar spec = {\n x: spok.number  // specifies that x should be a Number\n}\n```\n\n### spok.string\n\nSpecifies that the input is a string.\n\n    var spec = {\n      x: spok.string  // specifies that x should be a String\n    }\n\n### spok.function\n\nSpecifies that the input is a function.\n\n    var spec = {\n      x: spok.function  // specifies that x should be a function\n    }\n\n### spok.definedObject\n\nSpecifies that the input is an object and it is not `null`.\n\n```js\nvar spec = {\n x: spok.definedObject  // specifies that x is a non-null object\n}\n```\n\n### spok.startsWith\n\nSpecifies that the string starts with the specified substring.\n\n**NOTE**: only available with node.js which has an ES6 `startsWith` function\n\n```js\nvar spec = {\n x: spok.startsWith('hello')  // specifies that x should start with 'hello'\n}\n```\n\n**Parameters**\n\n-   `what` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** substring the given string should start with\n\n### spok.endsWith\n\nSpecifies that the string ends with the specified substring.\n\n**NOTE**: only available with node.js which has an ES6 `endsWith` function\n\n```js\nvar spec = {\n x: spok.endsWith('hello')  // specifies that x should start with 'hello'\n}\n```\n\n**Parameters**\n\n-   `what` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** substring the given string should start with\n\n### spok.test\n\nSpecifies that the string needs to match the given regular expression.\n\n```js\nvar spec = {\n  x: spok.test(/hello$/) // specifies that x should match /hello$/\n}\n```\n\n**Parameters**\n\n-   `regex` **[RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp)** regular expression against which the string is checked via `test`\n\n### spok.defined\n\nSpecifies that a value is defined, i.e. it is neither `null` nor `undefined`.\n\n```js\nvar spec = {\n  x: spok.defined\n}\n```\n\n### spok.notDefined\n\nSpecifies that a value is notDefined, i.e. it is either `null` or `notDefined`.\n\n```js\nvar spec = {\n  x: spok.notDefined\n}\n```\n\n## License\n\nMIT\n","maintainers":[{"name":"thlorenz","email":"thlorenz10@gmail.com"}],"time":{"modified":"2023-03-11T13:36:20.939Z","created":"2015-05-04T20:15:20.252Z","0.1.0":"2015-05-04T20:15:20.252Z","0.1.1":"2015-05-04T20:28:25.855Z","0.1.2":"2015-05-04T20:49:59.568Z","0.2.0":"2015-05-06T13:56:03.787Z","0.3.0":"2015-05-06T14:43:48.466Z","0.3.1":"2015-05-06T22:30:40.282Z","0.3.2":"2015-05-08T14:31:18.879Z","0.4.0":"2016-03-08T20:07:03.653Z","0.5.0":"2017-02-10T18:04:37.412Z","0.6.0":"2017-02-23T20:28:12.703Z","0.7.0":"2017-03-10T12:46:58.329Z","0.8.0":"2017-03-30T11:11:19.261Z","0.8.1":"2017-03-30T11:22:12.309Z","0.9.0":"2017-10-26T16:22:35.480Z","0.9.1":"2017-11-17T22:37:39.189Z","1.0.0":"2019-07-26T18:40:21.502Z","1.1.0":"2019-12-12T22:17:12.091Z","1.2.0":"2019-12-16T14:06:01.006Z","1.3.0":"2019-12-16T17:48:08.910Z","1.3.1":"2021-11-15T17:56:34.440Z","1.4.0":"2021-11-15T20:20:01.722Z","1.4.1":"2021-11-16T14:50:51.989Z","1.4.2":"2021-11-24T13:19:40.349Z","1.4.3":"2021-12-10T23:14:28.858Z","1.5.0":"2023-03-11T10:06:04.323Z","1.5.1":"2023-03-11T10:10:38.221Z","1.5.2":"2023-03-11T11:54:19.891Z","1.5.3":"2023-03-11T12:24:10.091Z","1.5.4":"2023-03-11T13:17:47.630Z","1.5.5":"2023-03-11T13:36:20.844Z"},"homepage":"https://github.com/thlorenz/spok","keywords":["test","spec","specification","contract","assert","assertion","deepEqual"],"repository":{"type":"git","url":"git://github.com/thlorenz/spok.git"},"author":{"name":"Thorsten Lorenz","email":"thlorenz@gmx.de","url":"http://thlorenz.com"},"bugs":{"url":"https://github.com/thlorenz/spok/issues"},"license":"MIT","readmeFilename":"README.md","users":{"nichoth":true,"akiva":true}}