{"_id":"speccy","_rev":"165-c4c8ff01af7d2ee854889b01a4a923f1","name":"speccy","description":"An OpenAPI v3.0 development workflow assistant","dist-tags":{"latest":"0.11.0","next":"0.8.0-dev4","beta":"0.8.2-1","dev":"0.8.2-2"},"versions":{"0.0.1":{"name":"speccy","version":"0.0.1","private":false,"main":"./index.js","description":"simple specification pattern for JavaScript object validation","keywords":["specification","pattern","validation","satisfied","satisfies","issatisfiedby","and","or","not"],"homspeccyge":"https://github.com/derickbailey/speccy","bugs":{"url":"http://github.com/derickbailey/speccy/issues"},"license":"MIT","author":{"name":"Derick Bailey","email":"derickbailey@gmail.com","url":"http://derickbailey.com"},"repository":{"type":"git","url":"http://github.com/derickbailey/speccy.git"},"dependencies":{},"devDependencies":{"grunt":"^0.4.5","grunt-contrib-connect":"^0.8.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-watch":"^0.6.1","grunt-jasmine-node":"^0.2.1"},"gitHead":"2926523eaaaa66aae5c883077d9f21b520228f4f","homepage":"https://github.com/derickbailey/speccy","_id":"speccy@0.0.1","scripts":{},"_shasum":"e81e3749d935538c8acb4c447869a256932b78ad","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"derickbailey","email":"derickbailey@gmail.com"},"maintainers":[{"name":"derickbailey","email":"derickbailey@gmail.com"}],"dist":{"shasum":"e81e3749d935538c8acb4c447869a256932b78ad","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.0.1.tgz","integrity":"sha512-aVdNbcu0qoS3xvE525iEM1oL4C2m9Q/vuuISsrn38OzKiD0YNH1PaF24n79AZzvO6t1PJkNF64TAG8BYIVLxWQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEtmHFC+nPrStYFZ5JZiG9fSGPV7oGCOk9I/rpLR7XSXAiEAnUDJxvhJhkpVUOb5hAZWnQij22aGUasApIW9oa+bJ2c="}]},"deprecated":"deprecating as it's no longer used, and another person would like the package name","directories":{}},"0.1.0":{"name":"speccy","version":"0.1.0","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com"},"license":"BSD-3-Clause","dependencies":{"ajv":"^5.0.1","call-me-maybe":"^1.0.1","co":"^4.6.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","reftools":"0.0.20","should":"^13.0.1","yargs":"^10.0.3"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"d12437bcf6f1b61aa9d40265a7981c8b25aa9abb","bugs":{"url":"https://github.com/wework/speccy/issues"},"homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.8.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-y8e2zfQMXTFWFyKPHGMQJz5QULrWfjCp0AxRMvGZpmxT1TInBQscYG4hlTCafb+huI+g++e+yLOm1bGMToUk6g==","shasum":"1190371c5e84a891d5e9c825948a980756a66015","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4WyZJhXXKWj2SIPB1KtwhtqYBMcmFrXsQjO27MN/5cAiBYCA88YcqN0yAlOg5Qwln8KFbL/cSuk+lViBxlGxw8BQ=="}]},"maintainers":[{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"derickbailey@gmail.com","name":"derickbailey"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy-0.1.0.tgz_1517554259941_0.7775412783958018"},"directories":{}},"0.1.1":{"name":"speccy","version":"0.1.1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com"},"license":"BSD-3-Clause","dependencies":{"ajv":"^5.0.1","call-me-maybe":"^1.0.1","co":"^4.6.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","reftools":"0.0.20","should":"^13.0.1","yargs":"^10.0.3"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"0d5b50da2b8953ef52c9d7a2f4355266ab8e01ca","bugs":{"url":"https://github.com/wework/speccy/issues"},"homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.1.1","_npmVersion":"5.6.0","_nodeVersion":"8.8.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-wCgJVJe31kdgB9yanz0Q/bz4mQbDAvs6u1OZvxdRzmLGT7kQKh2PK5cgTBD6W+W4RXYCpRiKVvvnCB/QI5laGQ==","shasum":"db43cbd44eb998491964a7f51a90fbefa31bdc90","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtAmHyYyUtQIvNZS6WRhavf5lA0RTHbkGoWmjIwEG9ogIgLgG1WJDwGyOzfpUPVl+tD6noLQA8rDJVnQFwUnN0yvg="}]},"maintainers":[{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"derickbailey@gmail.com","name":"derickbailey"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy-0.1.1.tgz_1517870755302_0.6449336670339108"},"directories":{}},"0.1.2":{"name":"speccy","version":"0.1.2","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com"},"license":"BSD-3-Clause","dependencies":{"ajv":"^5.0.1","call-me-maybe":"^1.0.1","co":"^4.6.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","reftools":"0.0.20","should":"^13.0.1","yargs":"^10.0.3"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"adfedd48f706387453d6030e23864702d789fa1a","bugs":{"url":"https://github.com/wework/speccy/issues"},"homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.1.2","_npmVersion":"5.6.0","_nodeVersion":"8.8.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-RLxSqQux6Xza1DAo3HWIUewh1o8AzT+bCBm1RGEVdIn8DFRQsFZFNmzTYJNU39n7IT6qzEopvUFectn2ZmvrPw==","shasum":"080a694ea0c4651b14feafd60d6017d6113a5227","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.1.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQcRNwSq6DfnbA2rZMjfM4CX28Eqb1NKCGLm4HtaQBgAIgMM8P3guPIyH9XBoUauGWUTGL/wk2BTprSIu3oGwS/pU="}]},"maintainers":[{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"derickbailey@gmail.com","name":"derickbailey"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy-0.1.2.tgz_1517870808638_0.6096920527052134"},"directories":{}},"0.1.3":{"name":"speccy","version":"0.1.3","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com"},"license":"BSD-3-Clause","dependencies":{"ajv":"^5.0.1","call-me-maybe":"^1.0.1","co":"^4.6.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","reftools":"0.0.20","should":"^13.0.1","yargs":"^10.0.3"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"5600ed4540b559b55572d1b01d180a05a49c3ba6","bugs":{"url":"https://github.com/wework/speccy/issues"},"homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.1.3","_npmVersion":"5.6.0","_nodeVersion":"8.8.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-kkM3E1H1xYPhGZbRg8KvGpR5tEJl/gW/v+ZqALOewEu0IAMrMPr+LcNfD5IvSYgFCvvTzhT+jVUecP4a+nfDtw==","shasum":"3dd6f36aa104d58960059525ebbc44a6ea4a26f1","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.1.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDm0Cx1xdd3Zu85UQQSU+2VEfxmQH7GwI13vd1bxA0/BAiEApGpsDgVdeKVGb5egZ2xxCYhqNguVc+mB2ytm0t30xIc="}]},"maintainers":[{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"derickbailey@gmail.com","name":"derickbailey"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy-0.1.3.tgz_1517874248698_0.20223796274513006"},"directories":{}},"0.1.4":{"name":"speccy","version":"0.1.4","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com"},"license":"BSD-3-Clause","dependencies":{"ajv":"^5.0.1","call-me-maybe":"^1.0.1","co":"^4.6.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","reftools":"0.0.20","should":"^13.2.0","yargs":"^10.0.3"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"ee2fd7d2e245fa2c3416cc9b3e144613cf64ddbc","bugs":{"url":"https://github.com/wework/speccy/issues"},"homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.1.4","_npmVersion":"5.6.0","_nodeVersion":"8.8.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-fZxcIN5YuAnjzxYJM3iNhx07IV54v/6TB1/2UFeAShAEADFRhI1577PDzZs3P6VsAG2iQhRyp1lz0LXT/OuuHQ==","shasum":"ea3e947d9238d661fb58e30f25854cf4575e4eaa","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.1.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAz43Xy6EkSl2A7wBempNEjTYgU9UzFURuKLRFtitPsFAiAcp0WWRcFs0dtAhlyEoSf/RiSG6qdv9/7mirrODQ7SNw=="}]},"maintainers":[{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"derickbailey@gmail.com","name":"derickbailey"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy-0.1.4.tgz_1517954570430_0.014591925777494907"},"directories":{}},"0.2.0":{"name":"speccy","version":"0.2.0","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com"},"license":"BSD-3-Clause","dependencies":{"ajv":"^5.0.1","call-me-maybe":"^1.0.1","co":"^4.6.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","reftools":"0.0.20","should":"^13.2.0","yargs":"^10.0.3"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"469218d32627938f090930fb78ecf5bbdc35de86","bugs":{"url":"https://github.com/wework/speccy/issues"},"homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.8.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-BVqdCZyha5IbF2CThexS2HmiPPsdrsSgEusqMS5YJefMO8dmcWvVTNa3CwdhkaH44RMqkhKEIzItKvcIqdxbtQ==","shasum":"77874a306cf986116fa9c233b858eb4a08fb449b","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.2.0.tgz","fileCount":24,"unpackedSize":198374,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG2s5YNjKTZcap+OuPNWRbSEmTbnXmTgoQqXuz9GOKQwAiEA3a/b4krROVdawAEs5dfIou37S/7X/0Knx+SqvahscvM="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.2.0_1518034827990_0.04542640523665553"},"_hasShrinkwrap":false},"0.2.1":{"name":"speccy","version":"0.2.1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com"},"license":"BSD-3-Clause","dependencies":{"ajv":"^5.0.1","call-me-maybe":"^1.0.1","commander":"^2.14.1","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","reftools":"0.0.20","should":"^13.2.0","yargs":"^10.0.3"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"db2dbb2e7ad7b7c0cc4483aa89f3fd2ddae72bd7","bugs":{"url":"https://github.com/wework/speccy/issues"},"homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.2.1","_npmVersion":"5.6.0","_nodeVersion":"8.8.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-hGjwFtjfkrXAO9v1kTxbRPdvA3B/HsbyLfcMA7CqN9ewR/9FpeL+rhtFaVbYmOpyB4pQ3XBzRKNQcsSle0c7yg==","shasum":"b4a382dbe71e5c4596129a0f0e8278dbe99b6506","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.2.1.tgz","fileCount":24,"unpackedSize":198382,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKqyZlYvbH2q9BRCZEOwf1GFnHSBtyfw+RrvVtIo/CZQIgTNMKpkqjUeVl/qjm+3eK72ee7zAI8+m2cOAOZkUCg1A="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.2.1_1518035269251_0.32383022511511816"},"_hasShrinkwrap":false},"0.2.2":{"name":"speccy","version":"0.2.2","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com"},"license":"BSD-3-Clause","dependencies":{"ajv":"^5.0.1","call-me-maybe":"^1.0.1","commander":"^2.14.1","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","reftools":"0.0.20","should":"^13.2.0","yargs":"^10.0.3"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"96539b21374d4c25f2212f0c8deb7130b8253ec4","bugs":{"url":"https://github.com/wework/speccy/issues"},"homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.2.2","_npmVersion":"5.6.0","_nodeVersion":"6.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-ycR7OjGUyZsxl7AoPbcwPWybbYFcj+rscw3iVFnXiAVq7Pqp1RCVxNb1/f82Nu+sRovMtk/zWq18xm23LjceeQ==","shasum":"d7fbdf10231452bffbb458f0eebdcee6df924a27","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.2.2.tgz","fileCount":25,"unpackedSize":198744,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbPdt1d4BwNMtFpNsPB+V7pGv7OIlUDvwPwtZ65/ROTAIgIAcPlaDl/hdWYZuJnAFuJuOM5SbTfE/VZwdfiZOQbeo="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.2.2_1518107383414_0.5724279461943713"},"_hasShrinkwrap":false},"0.3.0":{"name":"speccy","version":"0.3.0","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"bundleDependencies":false,"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.17.0","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"a63820dd8d0379d9fb0161575fe76c6202c446c6","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.3.0","_npmVersion":"5.6.0","_nodeVersion":"6.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-jqxTGn0hU8oib+2CBWDWIDe+ZhiOKDhBNIJAc1zzF/pnXnVhf/HYb1CQ/5RBd51FCQMH1fULu7pKMzLmMq7MaA==","shasum":"3108607ba6b7592bdf5930b0094521685f658b1c","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.3.0.tgz","fileCount":27,"unpackedSize":203693,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdSMmu6PnR2nUEqLFTar9YHNTkicPR7nvhUaNL8dKaRgIgZwDieJzhhmAqzGxEO8LVL73lBZxX9ZmDEcaEFMP5ans="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.3.0_1518715091355_0.6340549368569381"},"_hasShrinkwrap":false},"0.3.1":{"name":"speccy","version":"0.3.1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.17.0","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","webpack":"^3.5.6"},"gitHead":"bdba0a8f38510b2bfb3fbb2ce78773ffe44869b3","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.3.1","_npmVersion":"5.6.0","_nodeVersion":"6.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-6vxiMzaPUvV/qC4JTrBEIkhE7+3NQYL7tzWVOxYOH2CexLGTFy2HN1RlZmzqVpbFoO43/EH36GZtaXQ753j3vg==","shasum":"363c8bb2ae709ba6d29cdfa5710c811a927e417b","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.3.1.tgz","fileCount":27,"unpackedSize":203861,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHLK35He74SD1Da5726tZiC+LZtMuD2JDmvOUJFcv0CdAiEA0+BLHYpoqtQ9hpqnyg/BezPx3Gzzi2FJ7x1itoVhdhg="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.3.1_1518720238853_0.42094180322862385"},"_hasShrinkwrap":false},"0.4.0":{"name":"speccy","version":"0.4.0","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha","cover":"istanbul cover _mocha","coveralls":"npm run cover -- --report lcovonly && cat ./coverage/lcov.info | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","istanbul":"^0.4.5","mocha":"^5.0.0","mocha-lcov-reporter":"^1.3.0","webpack":"^3.5.6"},"gitHead":"20ba8907373f39f0b88fcb34e0de0ccd92878121","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.4.0","_npmVersion":"5.6.0","_nodeVersion":"6.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-mga0aDbZcGKvKJHUx7wX4KKlDYXwsPU7C7ICHjeRkiarYOykLF+CxXzRpeh5iQrBh4KGYBitbclQWXLPT8c9YQ==","shasum":"c9eea78f0b9f6be3cbf223c68e01713f3bf5db58","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.4.0.tgz","fileCount":28,"unpackedSize":206184,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJ0/47P0JS8cIhOscaFhg050WJ/xYXvDNpAVdKP0YfUgIhAPETC5jehouYX3BNIQ+YRlzvKWdAIOFtx32fIDrBibFJ"}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.4.0_1519661965353_0.8575798585744392"},"_hasShrinkwrap":false},"0.4.1":{"name":"speccy","version":"0.4.1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha","cover":"istanbul cover _mocha","coveralls":"npm run cover -- --report lcovonly && cat ./coverage/lcov.info | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","istanbul":"^0.4.5","mocha":"^5.0.0","mocha-lcov-reporter":"^1.3.0","webpack":"^3.5.6"},"gitHead":"d12dfb9bb6ac6babc2c5a73813eff9f5d658bda2","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.4.1","_npmVersion":"5.6.0","_nodeVersion":"6.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-v+H11oXIqsqFH6/YC5WU/oYyRTlo9rkFoRdiCwO6XJbmvMQaGLB5PPTdRwVKukQkh2WeMFW6uRI4GALXHbv9Rg==","shasum":"33d5154bae9872e1947c8e6c31e71d2d400c266f","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.4.1.tgz","fileCount":30,"unpackedSize":208696,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDs/MvIJyTj+tGTrF0LlpW8XIzr/0GOJsVr63B6avlbOQIgSOm2HP8qASAADP9uDEU4PKGCeQOHUcMJnvJTJs1BMBU="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.4.1_1520456850915_0.6731900950566663"},"_hasShrinkwrap":false},"0.5.0":{"name":"speccy","version":"0.5.0","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"mocha","cover":"istanbul cover _mocha","coveralls":"npm run cover -- --report lcovonly && cat ./coverage/lcov.info | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.6.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","istanbul":"^0.4.5","mocha":"^5.0.0","mocha-lcov-reporter":"^1.3.0","webpack":"^3.5.6"},"gitHead":"e1ed396e4ea35eca0c07e1b9358a30aa0dc4993f","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.5.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-dL02xHOx5nXkF6ABs1c9W3/vdf7XcEPcNYM4JbsHZ2YLKOs8+7WvlUXo3ucuuCM3zVZebuVZ6Lq7iGmWbQ5YGA==","shasum":"d75bde60d421e5cfd0369dd9f3cf4d90a6479d96","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.5.0.tgz","fileCount":32,"unpackedSize":211731,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFp8XOeLfvE0mJHzYxOtcn3jf4OxLdkUQ5NJXQHMAapTAiBnEzd8tr/wHQ+xq6cQUsc1d35hGxW79E0fUUYATOpV8Q=="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.5.0_1520621504891_0.48899389770981605"},"_hasShrinkwrap":false},"0.5.1":{"name":"speccy","version":"0.5.1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>\n  resolve [options] <file-or-url>\n  serve [options] <file>\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is objective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nEnsure your OpenAPI files are valid and up to scratch\n\nOptions:\n\n    -r, --rules [ruleFile]  use this multiple times to select multiple rules files\n    -s, --skip [ruleName]   use this multiple times to skip specific rules\n    -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\nThere are also [wework rules][rules-wework], building things we consider important on top of the strict rules; keeping summaries short (so they fit into ReDoc navigation for example).\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Serve Command\n\nUsing [ReDoc] and the handy utility [redocup], speccy can offer a preview of your\nspecifications, in human-readable format. In the future we'll have speccy outlining improvements right in here, but one thing at a time ey?\n\n```\nUsage: serve [options] spec-json-or-yaml-path\n\nView specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -w, --watch         reloding browser on spec file changes\n  -h, --help          output usage information\n```\n\nLike everything in speccy, this only works for OpenAPI v3.\n\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n","readmeFilename":"README.md","gitHead":"b0a2a13476db46fbdb2422cf7a4ee99cd02734cb","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.5.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-r2LLYUWLihNLnDDqAc2EhiwGfC/JTwhwmIRNdhOC9in//RGAB1K9m1lb26vgY2D/QG+Gm1HEbNwuu5h5mxAY1Q==","shasum":"fe47ef225a39156e7e72289cf19577c96dc158d6","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.5.1.tgz","fileCount":40,"unpackedSize":308472,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF1fTRApb6L8SA6HECs7Q0muLqS4lVNxeJoFqkMs4lOwAiAvaD9qCp3IjYIsgc2EEm/gPt0Y06UFh8tCr+yjWFmdqA=="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.5.1_1522183007181_0.8814609788359353"},"_hasShrinkwrap":false},"0.5.2":{"name":"speccy","version":"0.5.2","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"gitHead":"3e4c141be6016effdd1f2ae3b7a42a8e88c1d812","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.5.2","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-FwhSth0W1fagF9YzqlqviCTDDPSU0tZYOz911lTKf6M6nrkcRYY8Bg4XH/d/aEzduaHwlvFbzuAhD/bs+uWS5Q==","shasum":"85501815540196d04ea456cfcf0a89d94baf8cf3","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.5.2.tgz","fileCount":40,"unpackedSize":308527,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+bMR6WNrE2RVNvP7GBcwha6b2oPI8DNI+Urt0e8jKQAIgAgOxGyMsh0aUcTvNXSf03dHOG/q0Yfr2JLhSXTBmonY="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.5.2_1522185443471_0.7813349054561878"},"_hasShrinkwrap":false},"0.5.3-1":{"name":"speccy","version":"0.5.3-1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"gitHead":"8bb31d903e022a96a782a6c440ba067a2777137f","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.5.3-1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-t7LwfLZkwK+wxVsfV6XIiOqZtL4Yfjzus9YISdkpOCpcHVaIiCGSvG/nviIZcvCQT3DuqE/mJYPAjlOsmRT4ZQ==","shasum":"dd695e16924f66fec06f3a17847f407ab3e8e81c","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.5.3-1.tgz","fileCount":40,"unpackedSize":309350,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFyyeIOraF/8CmlZQVUuR/Z8Gj3v1g1v9iJl/glx1wWwIgf3UUp8hEP3NB8OkIFqFOp5RtDsEOrh7uA6ia8DM/S64="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.5.3-1_1522347451984_0.1731291140729061"},"_hasShrinkwrap":false},"0.5.3":{"name":"speccy","version":"0.5.3","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"gitHead":"4d72e241a8d7b7e8cd32995e597f06d192874eac","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.5.3","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-/xhpSEAUui1v7zo7NoDqoMTwtOUT3o/4EaGKnyEHNHufZvgyJuCn54dCEvYYX7WlqIjyZ6HSdwZg+tl5xlK/EQ==","shasum":"26e2e82132b2a41318fd11cec0ea30d3176ea3e9","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.5.3.tgz","fileCount":40,"unpackedSize":309348,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4Sg8GGBS0mk2XXw+54zGPMiZ5kaKHmfvglNb7gXpbqwIgCuzLo7QldhjdbbwrF4081uZlE0CyN8giqheCU76ASuQ="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.5.3_1522689068499_0.7599812757664723"},"_hasShrinkwrap":false},"0.5.4-1":{"name":"speccy","version":"0.5.4-1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>\n  resolve [options] <file-or-url>\n  serve [options] <file>\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is objective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nEnsure your OpenAPI files are valid and up to scratch\n\nOptions:\n\n    -r, --rules [ruleFile]  use this multiple times to select multiple rules files\n    -s, --skip [ruleName]   use this multiple times to skip specific rules\n    -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\nThere are also [wework rules][rules-wework], building things we consider important on top of the strict rules; keeping summaries short (so they fit into ReDoc navigation for example).\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Serve Command\n\nUsing [ReDoc] and the handy utility [redocup], speccy can offer a preview of your\nspecifications, in human-readable format. In the future we'll have speccy outlining improvements right in here, but one thing at a time ey?\n\n```\nUsage: serve [options] spec-json-or-yaml-path\n\nView specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -w, --watch         reloding browser on spec file changes\n  -h, --help          output usage information\n```\n\nLike everything in speccy, this only works for OpenAPI v3.\n\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n","readmeFilename":"README.md","gitHead":"8ddc2064db9bc956ebb2a4b6f6c61051b0e4dadb","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.5.4-1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-KNzrtfiTJcVSMclDiXCXfSym+7D2jbWPqVxzHYT57NgTkAloZdkazYV8cpztkcLgFVjdU+xiW4f6EiXX/ztHdg==","shasum":"3324da7c9c20c7dc986e17a7a407a7d0501d7c1a","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.5.4-1.tgz","fileCount":40,"unpackedSize":310668,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfFgFN3I7eNLYdk9O+p7MG6PmVspx/KvSrHG/N+6Oq/AIgCJxb86qXKt9DKwCDJhknJm6GkFFBPvNAtNpYeK9a5wE="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.5.4-1_1522782438489_0.012469207908695434"},"_hasShrinkwrap":false},"0.5.4-2":{"name":"speccy","version":"0.5.4-2","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>\n  resolve [options] <file-or-url>\n  serve [options] <file>\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is objective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nEnsure your OpenAPI files are valid and up to scratch\n\nOptions:\n\n    -r, --rules [ruleFile]  use this multiple times to select multiple rules files\n    -s, --skip [ruleName]   use this multiple times to skip specific rules\n    -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\nThere are also [wework rules][rules-wework], building things we consider important on top of the strict rules; keeping summaries short (so they fit into ReDoc navigation for example).\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Serve Command\n\nUsing [ReDoc] and the handy utility [redocup], speccy can offer a preview of your\nspecifications, in human-readable format. In the future we'll have speccy outlining improvements right in here, but one thing at a time ey?\n\n```\nUsage: serve [options] spec-json-or-yaml-path\n\nView specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -w, --watch         reloding browser on spec file changes\n  -h, --help          output usage information\n```\n\nLike everything in speccy, this only works for OpenAPI v3.\n\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n","readmeFilename":"README.md","gitHead":"8551b7b1eac6598868b333c0972a7e2fda8b6962","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.5.4-2","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-iCqDH+lTbxsBn8YOuud7c2MobPbftexfkPbQzA1uJNjhEJiEAxMoj6A+6krWfSx+1kl3GzquLRE3crxjOcUAiQ==","shasum":"924eec43b1175f61a9cef42f64d6fc36c8e41580","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.5.4-2.tgz","fileCount":52,"unpackedSize":308730,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHi0ZyqZiL8bfUm4WwQm0kO7J9hM3wSsQfj7l/DDJ4zNAiAJLQWStk1R6P6fI5AEMkOGuL2rLkuAu8uwD1eZbLqiCg=="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.5.4-2_1522792722932_0.33601148759272403"},"_hasShrinkwrap":false},"0.5.4-3":{"name":"speccy","version":"0.5.4-3","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>\n  resolve [options] <file-or-url>\n  serve [options] <file>\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is objective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nEnsure your OpenAPI files are valid and up to scratch\n\nOptions:\n\n    -r, --rules [ruleFile]  use this multiple times to select multiple rules files\n    -s, --skip [ruleName]   use this multiple times to skip specific rules\n    -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\nThere are also [wework rules][rules-wework], building things we consider important on top of the strict rules; keeping summaries short (so they fit into ReDoc navigation for example).\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Serve Command\n\nUsing [ReDoc] and the handy utility [redocup], speccy can offer a preview of your\nspecifications, in human-readable format. In the future we'll have speccy outlining improvements right in here, but one thing at a time ey?\n\n```\nUsage: serve [options] spec-json-or-yaml-path\n\nView specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -w, --watch         reloding browser on spec file changes\n  -h, --help          output usage information\n```\n\nLike everything in speccy, this only works for OpenAPI v3.\n\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n","readmeFilename":"README.md","gitHead":"96d62b96f69b557ac23f12b9c6b75cd477480ef4","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.5.4-3","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-JyFnOYj3uUeSY+w1vKpB0Xn8Rea4gSLL1Kg/3C6JzWQSDg1wW4Aut5z2pOenmN3CnIbgV//nYc0xLtmcKRf5Yw==","shasum":"be82449f8509559380d642b047c1e0e9410c74ac","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.5.4-3.tgz","fileCount":52,"unpackedSize":308728,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDot0UWmvC7bp+aweY8IZ+3L9ukmrXYuAWZZxWwcvraUAiEAy08QhIOLMQkhHk7T7zRUMVVtP/8Vd1pYwDpQaCjrxQg="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.5.4-3_1522792811572_0.3656679141552033"},"_hasShrinkwrap":false},"0.5.4":{"name":"speccy","version":"0.5.4","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"gitHead":"e2f56895d3bfab468d771b0a4fea4bdde6cdbfa8","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.5.4","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-GFJu43RpFNJ4CmKWEyvcf8gnXgKKRYAM4XqtdV+iA0pSeN0Ao8WTIsjX/IAcdiUocr6ZJfws6OY39uqpaXQ/QQ==","shasum":"78e6e2ed6e7b418e971f12a67e55b57d44ee6ef5","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.5.4.tgz","fileCount":52,"unpackedSize":307435,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEKUG5CnYnMmJIklvePWQL/Za8pnyFvYyyI1FDxdTJY7AiEA7MVeeTJdlPH5exiOzYYEDNTYijTUSimoEhRuocQXsBU="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.5.4_1522858630818_0.9254530840427713"},"_hasShrinkwrap":false},"0.6.0-dev":{"name":"speccy","version":"0.6.0-dev","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","browser-sync":"^2.23.6","call-me-maybe":"^1.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.1.0","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>\n  resolve [options] <file-or-url>\n  serve [options] <file>\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is objective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nEnsure your OpenAPI files are valid and up to scratch\n\nOptions:\n\n    -r, --rules [ruleFile]  use this multiple times to select multiple rules files\n    -s, --skip [ruleName]   use this multiple times to skip specific rules\n    -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\nThere are also [wework rules][rules-wework], building things we consider important on top of the strict rules; keeping summaries short (so they fit into ReDoc navigation for example).\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Serve Command\n\nUsing [ReDoc] and the handy utility [redocup], speccy can offer a preview of your\nspecifications, in human-readable format. In the future we'll have speccy outlining improvements right in here, but one thing at a time ey?\n\n```\nUsage: serve [options] spec-json-or-yaml-path\n\nView specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -w, --watch         reloding browser on spec file changes\n  -h, --help          output usage information\n```\n\nLike everything in speccy, this only works for OpenAPI v3.\n\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n","readmeFilename":"README.md","gitHead":"6715dadf3748d71733164958752dabf646d17ae8","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.6.0-dev","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-eqHvu1j72ldjh6ZKr7sRi028slXS9MSCsg6cmTN1NZfsJa9lk4z34Z5OeiImxUqE7b9IxUbjE/nLafGGxlmwEw==","shasum":"c50e4e041521aa8ff79e134af1e79e8913de5cda","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.6.0-dev.tgz","fileCount":54,"unpackedSize":311397,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIADHcyWxqNLdNlN/OswvsEBckF1/Lmgz/05eLj+uVGbmAiEAmmofxqQwo4kC0Ipvtkk8tbZ7+q9CVFY1ZramBFbIBoI="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.6.0-dev_1523031911170_0.8086684688274686"},"_hasShrinkwrap":false,"deprecated":"had some bugs"},"0.6.0-2":{"name":"speccy","version":"0.6.0-2","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.1.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>\n  resolve [options] <file-or-url>\n  serve [options] <file>\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is objective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nEnsure your OpenAPI files are valid and up to scratch\n\nOptions:\n\n    -r, --rules [ruleFile]  use this multiple times to select multiple rules files\n    -s, --skip [ruleName]   use this multiple times to skip specific rules\n    -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\nThere are also [wework rules][rules-wework], building things we consider important on top of the strict rules; keeping summaries short (so they fit into ReDoc navigation for example).\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Serve Command\n\nUsing [ReDoc] and the handy utility [redocup], speccy can offer a preview of your\nspecifications, in human-readable format. In the future we'll have speccy outlining improvements right in here, but one thing at a time ey?\n\n```\nUsage: serve [options] spec-json-or-yaml-path\n\nView specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -w, --watch         reloding browser on spec file changes\n  -h, --help          output usage information\n```\n\nLike everything in speccy, this only works for OpenAPI v3.\n\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n","readmeFilename":"README.md","gitHead":"284c6a20d0c0b07dd21362091887c26b96726e2d","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.6.0-2","_npmVersion":"5.8.0","_nodeVersion":"8.11.1","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-KSVaHUEekljr8LxoJscfsi+4lorz/AYKs5Mx7AAUDR/Gcfc6C9/hcOCiCAS5IwDPwKg3YiDHlt7bSkXiObnhYA==","shasum":"843eb349b936b283c22a4c9722c2649a68c3b194","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.6.0-2.tgz","fileCount":44,"unpackedSize":296213,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMLYtDqtfecWihisGc6MrFDicpBQCmNCVPwBJG+qApqgIgMwlNziV1v9x+8rR484QlQQgMYDM/2pJJihB1DUmOjwg="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.6.0-2_1523629192090_0.4920501043214962"},"_hasShrinkwrap":false},"0.6.0-3":{"name":"speccy","version":"0.6.0-3","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.1.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>\n  resolve [options] <file-or-url>\n  serve [options] <file>\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is objective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nEnsure your OpenAPI files are valid and up to scratch\n\nOptions:\n\n    -r, --rules [ruleFile]  use this multiple times to select multiple rules files\n    -s, --skip [ruleName]   use this multiple times to skip specific rules\n    -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\nThere are also [wework rules][rules-wework], building things we consider important on top of the strict rules; keeping summaries short (so they fit into ReDoc navigation for example).\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Serve Command\n\nUsing [ReDoc] and the handy utility [redocup], speccy can offer a preview of your\nspecifications, in human-readable format. In the future we'll have speccy outlining improvements right in here, but one thing at a time ey?\n\n```\nUsage: serve [options] spec-json-or-yaml-path\n\nView specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -w, --watch         reloding browser on spec file changes\n  -h, --help          output usage information\n```\n\nLike everything in speccy, this only works for OpenAPI v3.\n\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n","readmeFilename":"README.md","gitHead":"325780c545c4e39f8a67d08d3c340de9999b2e62","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.6.0-3","_npmVersion":"5.8.0","_nodeVersion":"8.11.1","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-59bU1mgaQJULfoK+O3LlGZt63BppcmMBEENtAoCWpDFZuj5XOVzyAuA5YRJFtFAqTm+ywDPR9QERgq44JZxQUg==","shasum":"c83d470d9689beaee1ff62396ce692fdb840b731","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.6.0-3.tgz","fileCount":44,"unpackedSize":296168,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCn/YX/oayLNckooJkShw+/UyyEPCD7AFHY97/G05cSyQIhAOdJQrLEp3FSaMlkwitjowZW0HjpKxtqXrA0qqf+of6U"}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.6.0-3_1523629526006_0.5927271083846288"},"_hasShrinkwrap":false},"0.6.0-4":{"name":"speccy","version":"0.6.0-4","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.1.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>\n  resolve [options] <file-or-url>\n  serve [options] <file>\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is objective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nEnsure your OpenAPI files are valid and up to scratch\n\nOptions:\n\n    -r, --rules [ruleFile]  use this multiple times to select multiple rules files\n    -s, --skip [ruleName]   use this multiple times to skip specific rules\n    -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\nThere are also [wework rules][rules-wework], building things we consider important on top of the strict rules; keeping summaries short (so they fit into ReDoc navigation for example).\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Serve Command\n\nUsing [ReDoc] and the handy utility [redocup], speccy can offer a preview of your\nspecifications, in human-readable format. In the future we'll have speccy outlining improvements right in here, but one thing at a time ey?\n\n```\nUsage: serve [options] spec-json-or-yaml-path\n\nView specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -w, --watch         reloding browser on spec file changes\n  -h, --help          output usage information\n```\n\nLike everything in speccy, this only works for OpenAPI v3.\n\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n","readmeFilename":"README.md","gitHead":"7622b719f5797b05da4391f5f76b28b8bd339fd2","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.6.0-4","_npmVersion":"5.8.0","_nodeVersion":"8.11.1","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-2ghGA7fKxfcf+YNtXe2pAuUkM7yuHixuamXp72OkxN9Vm90eWOLENkL5WgTlsxpbhyEnr3k3anuDGvAM42NzlA==","shasum":"6c685d0bdfd4634070808f10a8b47e6203f2c261","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.6.0-4.tgz","fileCount":44,"unpackedSize":295293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2hORCRA9TVsSAnZWagAAlWIP/iFa/VjvX3QTVwjPQuO6\nwhaUWTlTjl0JEgXEJobLQYkwrao3J1o9sCox0M2lYj7ZwezNVgvRc9/fc4HZ\n/Rq4Gm5sO+G3XYIEiWeO1YM6FgGr2jzGxFaCHNFsQp0r5D7aTFb/NFzD7OJN\nTdjGQ5hJY7nie4OeZZBzJNCCp6/pVw47FV+k6pvNFakyrjMOJMIDkYef+vEi\n4VudgR9Jvw7kRBs2+6frl84Oz8gT/nfDRi85WluaI5OIyspFfcbDLcNZyd6n\ntE3ctBCedDI8kXz3MzFSRupR0FLjAcmjbt27Wbcp4kI3DT59U7WdI++E78Qq\nuNHDO5Old3ftouzeun+C763n1GRr1qJoJoaF0AQyUx7HOJDLgj4dO/wBFH03\n0a6tfL3Hkwn71IWUAOnS8P3yuWSOSxRBXY+OZplJEoitdG/m2PUKXbGeRjW+\nu4Ihcw6zv5r+zeley1sRgaWCd+enFYvPTclWpovKcGxl70pLjOylaiDTogP1\nCm/iPz02D4Wehi2rVC1VTVN8iFs0wg7HdzhLbbK+lnsGRsewUJywasidUprC\nGzPnVHPdhK/+pv8FPToQcm1pkAkxPluuC4TZ/iq7lgpcbxdi3Bi3UrmfP/ZU\nIWHxzIjVUnxZ806u/4j+nt5lmH9nXbIhawl14F6r7bad4rUL1+usvNOERGnZ\ndaXI\r\n=T9wN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGSBTw26KwiVCwwnFv7h2gbWQTLQa5hBofK8/E0VEXsEAiEAoQ1uu5VvL2jqwiMDcox9xytUvq6doObJwq3BKMA9emQ="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.6.0-4_1524241297254_0.38840130380211435"},"_hasShrinkwrap":false},"0.6.0-5":{"name":"speccy","version":"0.6.0-5","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.1.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>     ensure specs are not just valid OpenAPI, but lint against specified rules\n  resolve [options] <file-or-url>  pull in external $ref files to create one mega-file\n  serve [options] <file-or-url>    view specifications in beautiful human readable documentation\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is objective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nensure specs are not just valid OpenAPI, but lint against specified rules\n\nOptions:\n\n  -q, --quiet             reduce verbosity\n  -r, --rules [ruleFile]  provide multiple rules files\n  -s, --skip [ruleName]   provide multiple rules to skip\n  -j, --json-schema       treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose           increase verbosity\n  -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\nThere are also [wework rules][rules-wework], building things we consider important on top of the strict rules; keeping summaries short (so they fit into ReDoc navigation for example).\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Serve Command\n\nUsing [ReDoc], speccy can offer a preview of your specifications, in human-readable format.\nIn the future we'll have speccy outlining improvements right in here, but one thing at a time.\n\n```\nUsage: serve [options] <file-or-url>\n\nview specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -q, --quiet         reduce verbosity\n  -j, --json-schema   treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose       increase verbosity\n  -h, --help          output usage information\n```\n\nLike everything in speccy, this only works for OpenAPI v3.\n\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n","readmeFilename":"README.md","gitHead":"a5eea3ec57d8600276c43567cfca846bc507325c","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.6.0-5","_npmVersion":"5.8.0","_nodeVersion":"8.11.1","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-BX9OMmOXjY3JJNRRv+kZUWspgGU2uM9ruJEhULxSPZ3Zhc5KfS6Y/Myrw5iMzwfBpu8O9GubnoyI+Fp2I5kmVg==","shasum":"ff7d435ea668f0d0da5489ee9e2a2560b095fad2","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.6.0-5.tgz","fileCount":123,"unpackedSize":845086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6L+LCRA9TVsSAnZWagAA9IsP/3b0FQTlyMvrvPkcT9Ws\nse9HvlHCpymXjV2bm60fHlyJui8mk14AQ2qF0fXyyXjrujV63Oqs9XJX0XmQ\n8OrAW0rUZXgKVyxD3QDmv3uMI3DQufGQgL5hE81KjI2VvJni93Ff88GCveBc\n6vMb8hSGqFVO049P+WxWKKYYTS3603E28DRwSUUpLU+I3ZCL2yZILwKXtDuZ\nihUgPVwSmggE10aBzLEG+DOG+WI4eRlBO4CCAysXMRmAT9I/+ASX/y0L3iH8\nTg87Rxuyd+pRMN6HGv2btlVcWf4vO6vsVNO6dAaro3F0UTqAZYVPLuzM1z7L\noX1w1PkK2ySrt0L0I9CcK9nVxJarbKlxgVSXUO/EwgwBtBHo695aigg5g8qC\n97Q2GwO2jQthTNOU8R+2cVl2N9xoQvMf2+fNKm8eLT72ClIU6Ok6jczeS5Oe\n4waYrydD5xeR1jcPZaCkpf5aPPjm8Fp6yHt+lyp/7nfrJAvrGS0Zf441V4Ca\njbOlqHJ68NezWUdWc1Qs+dmjEmGZvwBAvxz9m9vbTAwX9V3pgPgahr4kPqQr\nkSPewSlEnANfQygIJl45RepRWHOgGbTF3v+Z5D4Ud8LMV5gBUlwp7BYoEtW9\nx2jzOjwtRypn+LBpPqN2MOt/QeFs/iebCq8vsP/0QleVYXvOEJpTlMjXn5hU\nytWa\r\n=d6dF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDx7ihK+MB1kjGWn2qb4suFqccsVjXRiXe5TlUd+/jcjAIgeliJvKdxRe2GUxwPgvIzFlNHlJ/MMpDgRHkAFiEQQks="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.6.0-5_1525202826970_0.7418634772928601"},"_hasShrinkwrap":false},"0.6.0":{"name":"speccy","version":"0.6.0","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.1.1","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"keywords":["swagger","openapi","openapi2","openapi3","documentation","validator","validation","resolver","lint","linter"],"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^11.6.0","webpack":"^3.5.6"},"gitHead":"6867f4b28085f37802b497331e44042698a56f3e","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.6.0","_npmVersion":"5.8.0","_nodeVersion":"8.11.1","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-CmRPWZggu/hg8KhtZPDjArD0WDPDyjwglONcI0oLbLjDQMPPfr+0K7R/hkwVoJEgvq1JszHVSZg/vk+tQzQYeA==","shasum":"01ad0bd2d5268dcfb7df35b35e2baf22704f9ce4","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.6.0.tgz","fileCount":123,"unpackedSize":845243,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa7HYtCRA9TVsSAnZWagAAz2AP/3aFbF/eF9n484rG90AU\nYEcA7LWfQHP3Dns+GGSp0V+7DzjdTix4R2b4F1Kq34Nb4dZfzO9fho+FmilS\nI5C8BifaknWaz0dRV73j/PozWgsyHO2GV4Uzx2HPLvTiQM1JAwbUT29OcPSX\nYkL3v7yw5LJcwHsDTMEbAG/d7Z7e/aEARKasqfBA0R1SiQ7oH+PdpI+lIJQC\nwUjQBZo0uYbX0x0i9BRPB4W9n6rW/w74HQ7iTw0SPeqtlkkn2Bc2eNzmARm1\nj/zBEB8Shf0Rm8/VCrgfRC5eQxUBv9rvN9K3Z0WoQ+ZFLmJBIRRP8VI5Du85\nQUY5Hwzm+HKmLjF3TBRklvaVD/nJWdrGl6wuIKPymoyB4wN2gU6A+5a9qS+b\nSc67zYGHGODqVLtLPP1f+Vbs2ev8DGY6tc4WB3soGaQ4myl+fsJwnDTrEdg9\n3a5XgzKiyoSXCJzxsvrhuP7hTCe3eyeS4BwOqSpc7lAGKTkyWbQdgx4Qxr1F\nPOb2HCGMIT20ZhrtEuxakO2diuonluUWPGdUyGBD8aPt4ptdIZq7y34M3wm8\nrrBtLRYb7kXjvVAUAnx/U9VBiuO7HF2ZmSwI3qSgsU3Juein82UNTHHvAM9a\nbP1Ikvg+YY6wb5Oab+5QHJ7gEokCzu5jKLHL/bSdLK/cggPyleb6mPW2QpoP\nQ715\r\n=7c7R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdHfSszj3e5YmRbKdYY/tcz08xdU+3Zj32gdTTaB/QfwIhAJ/Q3J7qhpusBTmAW/6ZOmQKgrnS3agDIaPj+53kzdeu"}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.6.0_1525446188559_0.8659043599771341"},"_hasShrinkwrap":false},"0.7.0":{"name":"speccy","version":"0.7.0","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^11.6.0","webpack":"^3.5.6"},"gitHead":"2da266920f3e1652790403dbcb9d6357336b75c3","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.7.0","_npmVersion":"5.8.0","_nodeVersion":"8.11.1","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-DxYel5ICqV9354hcNWhPryWfKmnZxucIi1FcOenyogxIF7QCOaQSe3QS/KDEXAEPS3LJQ/+9hbtV/EqnzPAksQ==","shasum":"74097b59f10505b7e579bece3132b705feb054a4","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.7.0.tgz","fileCount":124,"unpackedSize":845894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa9JI8CRA9TVsSAnZWagAAgfUQAIwUHCePqLf6R6eOP1E/\nIVKt0ebGtAxi7z6EVFxS3SoUny9Q7p6srQI7TAniXX8GrNxd2J8/vcCsUVf6\nt3lhyhm/9NCByct3XXxtC/zk4iIK4qNnLp6NF2itr8y3Nm7JsyDVnhUzO9LD\nW7oOgHolNEkZ+xg4ok1DPjpmI2iLyso1WKI4tKz/+krr4V0TAjOsem9mh7Rz\nmu1jFlqL695XN2CCtkF/tbFhzxZmy6jk4rAXt7qoPghMn+nCOZ8lNVsm6XQV\nGDTqOQ+4Dynl5xtM9a3TwrEddpgycivfgj5YGNp+DAapW3FEOPG1N7uaR+M2\nCc38a7+HoYVIwaYR9nrX4m87mVrzC5cgCxrU1qosUVG2dFzYxeaRC+NX13Rr\nR0bUxcwkihu+97q0hBysFUGsuagqaNX7v/hZ0S1LNF2uSomdfQfomysMaSye\nGYnvL5D1PsXeqSpBkxG4M1uk9bbF3JLJdiHooMNgfahWrSfBed8ru9niYSN0\nUdEy0Jy4KxSoTMpQM1wTpNOh33deNpYvhDOrErKCYFVCEl2lAts1jXsN8+JN\ngC6NyJ8U8epIJzawRq+ofzgQyQlvgb9CnfDRByWlZBXcFe0Fx3pYkYafK580\neomrdDxln4X2afzEFG0xa2cCMHF8aTLTyxReNgTcdXcxSezAAZ0io7zAcJ/D\nxRVN\r\n=h0YN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID3wwm6q1OT/I7Mh/Wxc7g6dYz+5NSinQhUBmxl8TJhwAiAiFC6dNAgprRYQUlBKp6PRi/K3RSWCp0g/s0RI5MCfeg=="}]},"maintainers":[{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"me@philsturgeon.uk","name":"philsturgeon"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.7.0_1525977658893_0.2350606337085408"},"_hasShrinkwrap":false},"0.7.1":{"name":"speccy","version":"0.7.1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","npm":"^6.0.1","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^11.6.0","webpack":"^3.5.6"},"gitHead":"732088d7758a77d4deba45ec60ea2f02ff4e7711","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.7.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-mcJgNi9xfTTYUpLpnk+oIORwhx4+ZLOwHaRkRFWSst5AasPWhFHnG+KDu5yuyQ4HJ/1nNFZogm9CDcauSK568w==","shasum":"0f04883e4a03a767cce6b92d10b9c2e663df2a23","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.7.1.tgz","fileCount":127,"unpackedSize":847632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBXs4CRA9TVsSAnZWagAAch8QAI7RmZcVhN6cblsIq2zz\nI85WaZovKNz1Mg0sQHXCWlSKAZ0aFCwk2ZvUq6VlnNJAparBqJKLkPMhJ/VW\nI12urewue4myu8XyLsAb6uM0moZIqcZXzJcEebJjLxtj364rgl6ZmCtFqM/3\n8aOoOInHfIi62qU2DNBtUVlnj7vMb9/2OTn+wblHfWk22wEXm6Hgg1qD6L60\n1sJ1RcI1OgoqcK/zWgxcXNuYk3UiB1VI8y7eqsthb5AmRsM6+V61S20WWzpz\nAaMgYqlciAJaQ/uPFD9Poh3T3jHKj+KPley3AXR0ZivS1EMOC32JtiPbOvfa\nPPtZZSfC58Ggt2TDvJOZ1+Sd+iw3orpMsnWBNaYq2bGYvwgGyTA/SaPqaR2b\n/9bETIE3lB4YzZ+/mW2ZdlUW+9IcXTCy/4xnainqBYvfzQQO+aYSIWPT9uCR\nqptVGLcKrZ7cRj1n5fcfwuX05lG2xdyRfEjXNFIxCPFcEFeAe6xwN/9ltGrX\nAz756JmxvOimOuG2VI0neL1GfFgjNmtkwvRfVp1pwHgOzDBSVFKyUQK2rKuZ\n85F2AmPFJctYhOavzzu+TPnek9KzLkAsVGlYGOzmI6ZvwxgL+Jr+3YGIEXr8\nAq7vRe8iX5B85CzJEPhzvWPdh+H0bbrLJLYvgc1I9sS0OTuY1afgicrcJbI6\n0xkz\r\n=sqWO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxedztHh5s3gRsTk86n6zraqam9reslp0z0lkoNGqXZwIgURGDke70ZaiqVBWAW4jLtHM1bDZqaoqqwL570tLZh5s="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.7.1_1527085879204_0.9787613104657489"},"_hasShrinkwrap":false},"0.7.2":{"name":"speccy","version":"0.7.2","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^11.6.0","webpack":"^3.5.6"},"gitHead":"d5d63807af1cb0026e88aba3c122c7663a2d2e34","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.7.2","_npmVersion":"5.8.0","_nodeVersion":"8.11.1","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-sTNXKjBWiGJJEhBXLtI1U8yZ/eG0z6NoOqvwZLSgCSjM5vaJrTJ+g3S7POUwpjS7B0GoXE6Is5SIfeav/w+AyQ==","shasum":"0f714ed803f66e90da407aa3359109cb8e49f172","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.7.2.tgz","fileCount":128,"unpackedSize":851135,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbECPTCRA9TVsSAnZWagAABFAP/0pkbgoytYgEcvA+oz94\n8vnpvINh3hrSMi/Vw/nUS0pDiRW9SXXsUtU57xFThRVa7y/XdPUo8DB4Tfq9\nPap2nvbcjgDgTbVOdwH/NZEXwz5Ycc9xFSc2UYoAvmE0IrRHioqL2oMYELQD\nlCteezAYYssKbr7c+6+lcP35F11QC1HGHEebIuNHKgTqLkcPpN4uIsjQTqyU\nkYp3aardX8mLR2YSYOhnqU8HixSwW4PiL2LpHoY8k7fegbTuPxrrQ9wBdaFS\nTqEFCVsp/dXMKepRW0U9yibZx2U8vr8TLNQn+XgUc+uKMX3mXpjLVAv5Qs8F\n4ivVYZQjC7js1Zv6+B9zkpKbIZ+2UCXyQjdBHo9PAhNAUUrtkmGwBr5Z6NMv\n7jihvN7XEyRigvdWyqQsdSBRnHGi7FSD0aXVU8xnYldmThBpb0RkzG/m/5jQ\naP3rwgf+uGwdJciG4J1lGUQpTfQbMl/t56V5KVgHqvvs2XVKqiGb63/uB0LX\nvaUcrueSBcBjEIfa9ocvXu/HXc+NL/Lb07H3CKSN4buKyZTDB3pn36gFjHKs\nRwh+YkFdeoivcbGSNn9J6XEQ32fqrmPNa4bs8mT9tJ48l2X27hXXEhC7qI1y\ngxn7sGkL516ShfmV3jGG3RnSeu/UjRottLQNmNjpyJqivGewk3NifqEIOMSP\nZNdR\r\n=BCV8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0v+imPN6zGodbgxqhfTIkczJbIjA0zc03aSMQRF6D/AiBbuasOFBMPdZc7suyBKuGkc+wcTtV/68W6J3Eyw/SHLw=="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.7.2_1527784401833_0.3491124058490169"},"_hasShrinkwrap":false},"0.7.3":{"name":"speccy","version":"0.7.3","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","redoc":"next","reftools":"0.0.20","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^11.6.0","webpack":"^3.5.6"},"gitHead":"52f812ed2d4458b0358a427904d52d663194d301","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.7.3","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-Bgjia7lo7fZfPbxcP0weYAPKv5B0tPHHyMtWfeJ/RVcWHJAqhAU9MA0f4EEk3uZNAaeUIliv5pIONnhM7gsQdQ==","shasum":"a9346f4b55625bdcc20c66a09d18408de52a5bae","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.7.3.tgz","fileCount":290,"unpackedSize":4396360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbK/4PCRA9TVsSAnZWagAArLoQAJcq726+IUMG+Wer4DV1\n5WqfwXSH7C9S4EIwLa4Q0HfjRIpPQ3EF5LjutdDIjaMrKs9IROnpQoV10Jy5\nd/6Y1B9t1r7rTpgUxNztZcrgTFzjrLhXxuthWxF50ERzEbVHupk0Ka/6zSWU\n61HWH4EA4qSzFL9mg+AkhIOiZ+LoakC8psdLgs4HjihW66uwIT8xwfCnPO6k\nmew2kE/iNmxt/YUq9ABMa0iIfezw6OzupNSW3zrRra/wE99q3Jrl/+cMfbSM\nCaAnZ9CSHzZZdECF+pGrBbXSxSrfpOFczAG1RcC6P1jh+bGnK7G+uaCjnUib\nYC500zMiqqN+LRPvux3W4aA970XdaiZsTNdfDGyGRwCxnpNfyc4uDEpGJl8f\ncpuf7xGYN3G1qn0225mI5xETLwvMcJG+80FyVPNXpKHSOUbPC8lszGB6fEQP\nE7/ftCdTG9qSkoCmzLLVsu0cNYR6oaD4cG6INY2T6tI7Qg/g9viu+Veyfjx/\n//bcfY7WCfL8f4ke69j7Tq+1yLYBSltLTWMxWS3PDiqRW7gAum/IDGIEGvz9\n4aKOPXVDLI03UEsJoxsdZMNoR6gxikZU5QUqzwUn31z69i0vfyvJ0+6pAzMb\nb5QE1fJaE1GRXnNL3MJodYQLQ3Ix1V/HYbDPqJdX7Lg0jGw5QjR4tnSEV88Q\nZ9sR\r\n=MabA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwZRRlUmArME2TzE11pjx+X0YkLtSVhXYHEWRRZY+zegIgCobsccUoGAD8C+N7IrOoS/yNwXlzINsGuKd4odLWe7E="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.7.3_1529609743549_0.7695076907809786"},"_hasShrinkwrap":false},"0.8.0-dev1":{"name":"speccy","version":"0.8.0-dev1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","oas-resolver":"^1.0.6","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.1","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## Requirements\n\n- **NodeJS:** v8 - v10\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>     ensure specs are not just valid OpenAPI, but lint against specified rules\n  resolve [options] <file-or-url>  pull in external $ref files to create one mega-file\n  serve [options] <file-or-url>    view specifications in beautiful human readable documentation\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is subjective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nensure specs are not just valid OpenAPI, but lint against specified rules\n\nOptions:\n\n  -q, --quiet             reduce verbosity\n  -r, --rules [ruleFile]  provide multiple rules files\n  -s, --skip [ruleName]   provide multiple rules to skip\n  -j, --json-schema       treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose           increase verbosity\n  -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Resolve Command\n\nResolving `$ref` is the art of taking multiple files and squashing them all down into one big OpenAPI file. By default it will output to stdout, but you can pass `-o` with a file name to write the file locally.\n\n```\nUsage: resolve [options] <file-or-url>\n\npull in external $ref files to create one mega-file\n\nOptions:\n\n  -o, --output <file>  file to output to\n  -q, --quiet          reduce verbosity\n  -j, --json-schema    treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose        increase verbosity\n  -h, --help           output usage information\n```\n\nStarting with the fantastic resolver logic form swagger2openapi, speccy has one of the most robust\nresolvers out there. It avoid cyclical dependencies (when A has a property that `$ref`s A, which in turn destroys your CPU), and all sorts of other things.\n\nThanks to the `--json-schema` switch, you can have an OpenAPI file which `$ref`s JSON Schema files (not just OpenAPI-flavoured JSON Schema), then resolve them all into one real OpenAPI file, thanks to [wework/json-schema-to-openapi-schema].\n\n### Serve Command\n\nUsing [ReDoc], speccy can offer a preview of your specifications, in human-readable format.\nIn the future we'll have speccy outlining improvements right in here, but one thing at a time.\n\n```\nUsage: serve [options] <file-or-url>\n\nview specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -q, --quiet         reduce verbosity\n  -j, --json-schema   treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose       increase verbosity\n  -h, --help          output usage information\n```\n\n### Calling Speccy from Code\n\nNot just a command line tool, speccy can be used to normalize machine-readable specifications.\n\n\nThe loader object will return a promise that resolves to an object containing\nthe specification.  For example:\n\n``` javascript\nconst loader = require('speccy/lib/loader');\n\nconst options = {\n  resolve: true,   // Resolve external references\n  jsonSchema: true // Treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n};\n\nloader\n  .loadSpec('path/to/my/spec', options)            // Load the spec...\n  .then(spec => console.log(JSON.stringify(spec)); // ...and print it out.\n```\n\nIf `options.resolve` is truthy, speccy will resolve _external_ references.\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n[wework/json-schema-to-openapi-schema]: https://github.com/wework/json-schema-to-openapi-schema\n","readmeFilename":"README.md","gitHead":"0cb24270596e9cbfcb1132b15321ac5376fbf8ba","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.8.0-dev1","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-+oNZYrYFf4slL04xo9zeWGgsFs3l73uB2XgJ+oCtYm9+ejxMj786xJrHY4AnQ4Ra8+un9Ex15PzBExALDFOhzw==","shasum":"81d825ff9a2cfbf384bc74690f6272a2294ab4bd","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.0-dev1.tgz","fileCount":287,"unpackedSize":4323337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbNVTVCRA9TVsSAnZWagAA4vEQAJj2sJ70C+EWxvnFeI8s\nZ8fNk+dHSvbChFyVBNAGpxY15xnUeFfKizH0dcJmc8qy+S5t6gU74dahwpOG\n0Vs/+FDk6o/fKL06QKINedbrMtXmy7GFk2wUEUy3myCDj2aWIYltfNz7Cx2A\nDOvVoHbSjcQp5JzW20c7pKSWkx5JgU+liL5vJywmClbizWCepww2SzSnySyZ\nrER3SI6Crk9ozvWcslf84lagJTIkB+qZtt++pFMyDekL2B87d/jp+q/2Wu+M\naRc+13lT/lwA6u3zwhw98IC/WO/xoyuZ03MfDBSyYP3AcDue920f7ekEH33G\nzn/yY+1PSWsOWSdlAzc5+jn90jwwLBXosuD2s9MHzMwyhM81vOICFr4R9k+w\nE/NibZ15ApYDAdIm+nDTpO+ayrV7X0vUfBRTW3NMz4dpj8WDoZaYKp3mYeSC\nCHzYFtwWPIpVGBw/SFrg3UzoODDnDotnWuX9TbUiunPfxMbf0LQwiWm2hsl3\nqUsw/drZAwmWKjCvH0Axu+dVRrqnqoFg5e22TLp0TD5PugmD+bKQCJ0Lsi5L\nms1D7hePSnPM11SOvEZDJMkJmV2/fk9bs3hnKPFbuH+bUguxmMYgpvOqUtIy\ncf/a73XLIqILItnNClUDgZczeRLWobuDdIse2zdVlJKkRybv4orDkA8iE+8w\nCgX8\r\n=KgZX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3LsPdW66xjvotrfravHsibbmkFM9xKVdYJiX8+HKoWQIgJTlRd6oCbSlRB2RXkhX1x0oEo5Sx2UnUXlyAb/4NVmc="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.0-dev1_1530221781189_0.2234564595129438"},"_hasShrinkwrap":false},"0.8.0-dev2":{"name":"speccy","version":"0.8.0-dev2","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","oas-resolver":"^1.0.7","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.1","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^11.6.0","webpack":"^3.5.6"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## Requirements\n\n- **NodeJS:** v8 - v10\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\nOptions:\n\n  -V, --version  output the version number\n  -h, --help     output usage information\n\nCommands:\n\n  lint [options] <file-or-url>     ensure specs are not just valid OpenAPI, but lint against specified rules\n  resolve [options] <file-or-url>  pull in external $ref files to create one mega-file\n  serve [options] <file-or-url>    view specifications in beautiful human readable documentation\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is subjective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nensure specs are not just valid OpenAPI, but lint against specified rules\n\nOptions:\n\n  -q, --quiet             reduce verbosity\n  -r, --rules [ruleFile]  provide multiple rules files\n  -s, --skip [ruleName]   provide multiple rules to skip\n  -j, --json-schema       treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose           increase verbosity\n  -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Resolve Command\n\nResolving `$ref` is the art of taking multiple files and squashing them all down into one big OpenAPI file. By default it will output to stdout, but you can pass `-o` with a file name to write the file locally.\n\n```\nUsage: resolve [options] <file-or-url>\n\npull in external $ref files to create one mega-file\n\nOptions:\n\n  -o, --output <file>  file to output to\n  -q, --quiet          reduce verbosity\n  -j, --json-schema    treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose        increase verbosity\n  -h, --help           output usage information\n```\n\nStarting with the fantastic resolver logic form swagger2openapi, speccy has one of the most robust\nresolvers out there. It avoid cyclical dependencies (when A has a property that `$ref`s A, which in turn destroys your CPU), and all sorts of other things.\n\nThanks to the `--json-schema` switch, you can have an OpenAPI file which `$ref`s JSON Schema files (not just OpenAPI-flavoured JSON Schema), then resolve them all into one real OpenAPI file, thanks to [wework/json-schema-to-openapi-schema].\n\n### Serve Command\n\nUsing [ReDoc], speccy can offer a preview of your specifications, in human-readable format.\nIn the future we'll have speccy outlining improvements right in here, but one thing at a time.\n\n```\nUsage: serve [options] <file-or-url>\n\nview specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -q, --quiet         reduce verbosity\n  -j, --json-schema   treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose       increase verbosity\n  -h, --help          output usage information\n```\n\n### Calling Speccy from Code\n\nNot just a command line tool, speccy can be used to normalize machine-readable specifications.\n\n\nThe loader object will return a promise that resolves to an object containing\nthe specification.  For example:\n\n``` javascript\nconst loader = require('speccy/lib/loader');\n\nconst options = {\n  resolve: true,   // Resolve external references\n  jsonSchema: true // Treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n};\n\nloader\n  .loadSpec('path/to/my/spec', options)            // Load the spec...\n  .then(spec => console.log(JSON.stringify(spec)); // ...and print it out.\n```\n\nIf `options.resolve` is truthy, speccy will resolve _external_ references.\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[BSD-3-Clause](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n[wework/json-schema-to-openapi-schema]: https://github.com/wework/json-schema-to-openapi-schema\n","readmeFilename":"README.md","gitHead":"5c7a802cb26b8ecee77c8325fb156210ce873d97","homepage":"https://github.com/wework/speccy#readme","_id":"speccy@0.8.0-dev2","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-Ceb4PmV2KxjtZylb/4Anv2CE+R1mdawisV9PK7RDHyVlWP8Gh/O0ZSRMoPR+y9gnJqpc0u1Tsuz5EDY/gOtr7g==","shasum":"bfd0c55a4bae8f8f791a6d249c9588ee1a8fbc25","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.0-dev2.tgz","fileCount":287,"unpackedSize":4322714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPRnzCRA9TVsSAnZWagAANKUP/0r0Z7ZZ9FplV5ms75tt\nAQffrmMLsYH3UXwdDFwJqVuSZYlpnC5zcQEhP/HJ4xfc5oU/LPP5XZms7NLm\njqMRnDPJO6Lk0LCqydSagwITBl/VFEHIOgeLnx4tybzzSW9t2zBBcWZZdLc4\nzJDm1VeeMxH6jZUQz6q2jEsvNmu7dy2xhfNnVusBRXrfxLAsxHeQ7zBMfcN3\nyT+1EajU0mNo/l4cpv9WZ6KvUpi0y+6arG59zYIEtuXZl1TbIieaUi0UdfkH\n7Y5fSr2pXMxcU89wjMq79yYJ5N+FnC/3yI8WClEFTc9HYAo1D6lbEKImk6aN\nMIYN3m3lTlzxGXp+b5MRkTxIvY9xVuCMLyuPyvpR9ihD5knoPe/u/mt0y25O\ngDw5erqdKoG0Y5urUZ3sKmVF7QbrwgGjj+S9JL5GmZk9rIrwNH7OhXq/NryQ\nkSGDWzXm9FU4Fty2t91bt88v/HUhhwICuJJecxOWphiTgpr2UEGkD75s0Ogu\nIcIp8M5yhkWgrar0IiwJm2bcJy87nPnRRjocWAMrWCy6xZAIEr8yM3Un65DQ\nJwkrBBJhEeoQn0nAhyWKyoOlukFKZ0uykaUTtqUe8x06F2xa0uc9TVoKCmzx\n7vv+7TN/6spUqeCpyHZ7stnSNOPGwiz6Yi9/C18wKW2FI8+pkW+E/WADt81N\nDF1N\r\n=DyCN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICDBFU00FaZF3uWUt9/ZBG5F6uLJ740FgLxuUBMifyDGAiApST5U89mbNJn/r5QL9fWpt7ZRF0SGOR0i1SG++eq3dg=="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.0-dev2_1530730994914_0.6127876540140513"},"_hasShrinkwrap":false},"0.8.0-dev3":{"name":"speccy","version":"0.8.0-dev3","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","oas-resolver":"^1.0.7","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.7","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^13.0.0"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## Requirements\n\n- **NodeJS:** v8 - v10\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\n\nOptions:\n\n-V, --version              output the version number\n-c, --config [configFile]  config file (containing JSON/YAML). See README for potential values.\n-h, --help                 output usage information\n\n\nCommands:\n\nlint [options] <file-or-url>     ensure specs are not just valid OpenAPI, but lint against specified rules\nresolve [options] <file-or-url>  pull in external $ref files to create one mega-file\nserve [options] <file-or-url>    view specifications in beautiful human readable documentation\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is subjective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nensure specs are not just valid OpenAPI, but lint against specified rules\n\nOptions:\n\n  -q, --quiet             reduce verbosity\n  -r, --rules [ruleFile]  provide multiple rules files\n  -s, --skip [ruleName]   provide multiple rules to skip\n  -j, --json-schema       treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose           increase verbosity\n  -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Resolve Command\n\nResolving `$ref` is the art of taking multiple files and squashing them all down into one big OpenAPI file. By default it will output to stdout, but you can pass `-o` with a file name to write the file locally.\n\n```\nUsage: resolve [options] <file-or-url>\n\npull in external $ref files to create one mega-file\n\nOptions:\n\n  -o, --output <file>  file to output to\n  -q, --quiet          reduce verbosity\n  -j, --json-schema    treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose        increase verbosity\n  -h, --help           output usage information\n```\n\nStarting with the fantastic resolver logic form swagger2openapi, speccy has one of the most robust\nresolvers out there. It avoid cyclical dependencies (when A has a property that `$ref`s A, which in turn destroys your CPU), and all sorts of other things.\n\nThanks to the `--json-schema` switch, you can have an OpenAPI file which `$ref`s JSON Schema files (not just OpenAPI-flavoured JSON Schema), then resolve them all into one real OpenAPI file, thanks to [wework/json-schema-to-openapi-schema].\n\n### Serve Command\n\nUsing [ReDoc], speccy can offer a preview of your specifications, in human-readable format.\nIn the future we'll have speccy outlining improvements right in here, but one thing at a time.\n\n```\nUsage: serve [options] <file-or-url>\n\nview specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -q, --quiet         reduce verbosity\n  -j, --json-schema   treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose       increase verbosity\n  -h, --help          output usage information\n```\n\n### Config File\n\nTo avoid needing to send command line options and switches every time, a config file can be used. Create\na `speccy.yaml` in the root of your project.\n\nExample:\n```yaml\n# Convert JSON Schema-proper to OpenAPI-flavoured Schema Objects\njsonSchema: true\n# Keep the noise down\nquiet: true\n# Output a lot of information about what is happening (wont work if you have quiet on)\nverbose: true\n# Rules specific to the lint command\nlint:\n  # rules files to load\n  rules:\n  - strict\n  - ./some/local/rules.json\n  - https://example.org/my-rules.json\n  # rules to skip\n  skip:\n  - info-contact\n# Rules specific to the resolve command\nresolve:\n  output: foo.yaml\n# Rules specific to the serve command\nserve:\n  port: 8001\n```\n\n### Calling Speccy from Code\n\nNot just a command line tool, speccy can be used to normalize machine-readable specifications.\n\nThe loader object will return a promise that resolves to an object containing\nthe specification.  For example:\n\n``` javascript\nconst loader = require('speccy/lib/loader');\n\nconst options = {\n  resolve: true,   // Resolve external references\n  jsonSchema: true // Treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n};\n\nloader\n  .loadSpec('path/to/my/spec', options)            // Load the spec...\n  .then(spec => console.log(JSON.stringify(spec)); // ...and print it out.\n```\n\nIf `options.resolve` is truthy, speccy will resolve _external_ references.\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[MIT](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n[wework/json-schema-to-openapi-schema]: https://github.com/wework/json-schema-to-openapi-schema\n","readmeFilename":"README.md","gitHead":"9d4a7a294411666fea77bd2110659f440e8d159e","_id":"speccy@0.8.0-dev3","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-K+/ghFqRnwR3HVWyBF9xFrgt2q6U0Pfw8H4DFwCU83fv5s+GiyoaEq8YBR6jBrva6Y7+vZbW9gnhwpVWd1jC3w==","shasum":"334a9a06eb0faba72879479acf9facd0053487a5","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.0-dev3.tgz","fileCount":209,"unpackedSize":3783007,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbR87bCRA9TVsSAnZWagAAujMP/RhxUDa5qWaN+4omHzR3\nFycB/mhh8IIUlcOzO6wV66QPX8HYDYioCJfuOn0jUiTk0dGbkk2cDrAZ+YpR\nsmeMb3f/NrFI7hEmBai05CfcNNdO/owLvLCj9u+S5bcBOFHoIbVEEH1+h1aa\nXaNDG0ncVKdXlYJPiYaXkZDhDQc84+vT0GTpcAfnTV0qqYC9fxlpBpbn+Kkf\nN2tgAbJ2rMabBt79GKVH4IiMWVV8A40qiVkoZRrmYgoZMUpwObpASiN0LLgJ\nkstt4QyCQz5jwWBIzxVLb7NZ4h/PtXYVOk31P1dE6qjsoHvxHcbEHMxEH7aX\nLrB2yOG6IEmoAUFG7hNbHdWbU1OeDyqvly5ZEjDJR/SYkqI5f8oKCcs0ak+1\nFz7Y2eIlSFBcx3rF1NMU1ZodCPcXRjo2wuzm+jzSo7QRHpLerR6/I2YEuJMh\ncMY6XQm94jKacbXniKrlvWgCveAlYpAkQY8QVc7jq4TpvRW1lz6TG4HHRaNT\nlTu2mKnrXjO2CdpFhulShiJCbhi+xS/Zf0VYIef+ukZVebHbIDYPjYiUJFdK\nuyNqocKH/92QLx+4ToB1WUf8rmxszsUCuZNHIPOrOkjLAciVeCZP9eIv1E5+\nxNgN2SpZiHgmJ424+FflrDCd3yOX3rQLQkOF5gIZ5LawAkqKSNtRzicLLsjr\nsxF5\r\n=0B/H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZaeziMCkK7ymilSPMezP8uwK1r5bRQs0zhMI4g2XyiQIgee7DvADMOO/GALhFbP+DXcuOyEjtqSFvSfX8SSQbZ2U="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.0-dev3_1531432667543_0.7528555676041602"},"_hasShrinkwrap":false},"0.8.0-dev4":{"name":"speccy","version":"0.8.0-dev4","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","oas-resolver":"^1.0.7","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.7","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^13.0.0"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## Requirements\n\n- **NodeJS:** v8 - v10\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\n\nOptions:\n\n-V, --version              output the version number\n-c, --config [configFile]  config file (containing JSON/YAML). See README for potential values.\n-h, --help                 output usage information\n\n\nCommands:\n\nlint [options] <file-or-url>     ensure specs are not just valid OpenAPI, but lint against specified rules\nresolve [options] <file-or-url>  pull in external $ref files to create one mega-file\nserve [options] <file-or-url>    view specifications in beautiful human readable documentation\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is subjective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nensure specs are not just valid OpenAPI, but lint against specified rules\n\nOptions:\n\n  -q, --quiet             reduce verbosity\n  -r, --rules [ruleFile]  provide multiple rules files\n  -s, --skip [ruleName]   provide multiple rules to skip\n  -j, --json-schema       treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose           increase verbosity\n  -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Resolve Command\n\nResolving `$ref` is the art of taking multiple files and squashing them all down into one big OpenAPI file. By default it will output to stdout, but you can pass `-o` with a file name to write the file locally.\n\n```\nUsage: resolve [options] <file-or-url>\n\npull in external $ref files to create one mega-file\n\nOptions:\n\n  -o, --output <file>  file to output to\n  -q, --quiet          reduce verbosity\n  -j, --json-schema    treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose        increase verbosity\n  -h, --help           output usage information\n```\n\nStarting with the fantastic resolver logic form swagger2openapi, speccy has one of the most robust\nresolvers out there. It avoid cyclical dependencies (when A has a property that `$ref`s A, which in turn destroys your CPU), and all sorts of other things.\n\nThanks to the `--json-schema` switch, you can have an OpenAPI file which `$ref`s JSON Schema files (not just OpenAPI-flavoured JSON Schema), then resolve them all into one real OpenAPI file, thanks to [wework/json-schema-to-openapi-schema].\n\n### Serve Command\n\nUsing [ReDoc], speccy can offer a preview of your specifications, in human-readable format.\nIn the future we'll have speccy outlining improvements right in here, but one thing at a time.\n\n```\nUsage: serve [options] <file-or-url>\n\nview specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -q, --quiet         reduce verbosity\n  -j, --json-schema   treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose       increase verbosity\n  -h, --help          output usage information\n```\n\n### Config File\n\nTo avoid needing to send command line options and switches every time, a config file can be used. Create\na `speccy.yaml` in the root of your project.\n\nExample:\n```yaml\n# Convert JSON Schema-proper to OpenAPI-flavoured Schema Objects\njsonSchema: true\n# Keep the noise down\nquiet: true\n# Output a lot of information about what is happening (wont work if you have quiet on)\nverbose: true\n# Rules specific to the lint command\nlint:\n  # rules files to load\n  rules:\n  - strict\n  - ./some/local/rules.json\n  - https://example.org/my-rules.json\n  # rules to skip\n  skip:\n  - info-contact\n# Rules specific to the resolve command\nresolve:\n  output: foo.yaml\n# Rules specific to the serve command\nserve:\n  port: 8001\n```\n\n### Calling Speccy from Code\n\nNot just a command line tool, speccy can be used to normalize machine-readable specifications.\n\nThe loader object will return a promise that resolves to an object containing\nthe specification.  For example:\n\n``` javascript\nconst loader = require('speccy/lib/loader');\n\nconst options = {\n  resolve: true,   // Resolve external references\n  jsonSchema: true // Treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n};\n\nloader\n  .loadSpec('path/to/my/spec', options)            // Load the spec...\n  .then(spec => console.log(JSON.stringify(spec)); // ...and print it out.\n```\n\nIf `options.resolve` is truthy, speccy will resolve _external_ references.\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[MIT](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n[wework/json-schema-to-openapi-schema]: https://github.com/wework/json-schema-to-openapi-schema\n","readmeFilename":"README.md","gitHead":"6dc41c8d534d69f2e46a10977fd845e826615963","_id":"speccy@0.8.0-dev4","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-lOm0hbiS4hs35cPflquPwIBjbE7At6PYdQ0SFYdcZcmO/PSnv6vSk0M9EiPj2AzdqgpoVDH8dsKAmYE7EH8LIQ==","shasum":"a45cd5098511f6743291a2f7f663e890b0e969d6","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.0-dev4.tgz","fileCount":207,"unpackedSize":3782110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbT28QCRA9TVsSAnZWagAAbecP/2/5sMfvwJUoYVZPg9RC\nJnUFpWApHrQmovKCZUgGfHGcfdSHTsJ3jxnlnkLlmn+f750ecF0xv04/ngON\nwsbHHBbcRkK+sJl/tn/Zl0B/Ul7sap0PbL12A5mkiGG4ZAIo0rG6g7wCEReL\n3OO9wRD62UM6biyFWN95PmYzgrLacWHtr1LVFY9gUrIX9tH2cSGPPPTyPygW\nsUy2Ebb0pzOgbZRn0FXKEO6o3X2qD6DbONO58cZhd2dE8kkTQGHOidok8WrR\nTEyWYSbH3lcCuAbs6V5rW5z49ETtbRIpVF7rNs6PdMjppaI/opgxkqlyI8AT\nc+V/MK1kvBtfGWYFscFuEL8j8TmrstoHCJxj5P1CeomKmxaeDCOWkn+jAeQ+\nptPKCB75EphGlf4X0pPdL1/CvNyjPHrSa+BSdukNtpldI6DCDMejXkBpIq6s\n468aqtXu9PdfIPUiHx/J5JWoTaJlIOHfPAGUQ2xtgvytlw5jsk/Bvakl8+eA\nTtdcTn23ioospk1DmXx6oGi6OWAFEKPE541NU/Kxkn+WuSze164VS/EJns0q\n7X59kOQCblCDZNDuk6kxTb8k9/k3b0Qw+jvg/Rnk9DSkt4XTI6J89SQy/wHN\nKJmraiOpPMVIphIwsenkn0eDVnXFNU2/U406pMCjB1kUo/zzWGFCSmOiiCI0\n6aPs\r\n=GMP1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBYA6HiBKNi2AAiHKxBvjUzF376SbDJq9iefyPJWPQNkAiAXccSRlQABaVrh7kBcXHnY/r3LoAKg5QG8TKtiXrnZfw=="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.0-dev4_1531932432361_0.3061785355320268"},"_hasShrinkwrap":false},"0.8.0-beta1":{"name":"speccy","version":"0.8.0-beta1","description":"Your friendly OpenAPI v3.0 #WellActually CLI assistant.","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","oas-resolver":"^1.0.7","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.7","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^13.0.0"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## Requirements\n\n- **NodeJS:** v8 - v10\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\n\nOptions:\n\n-V, --version              output the version number\n-c, --config [configFile]  config file (containing JSON/YAML). See README for potential values.\n-h, --help                 output usage information\n\n\nCommands:\n\nlint [options] <file-or-url>     ensure specs are not just valid OpenAPI, but lint against specified rules\nresolve [options] <file-or-url>  pull in external $ref files to create one mega-file\nserve [options] <file-or-url>    view specifications in beautiful human readable documentation\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is subjective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nensure specs are not just valid OpenAPI, but lint against specified rules\n\nOptions:\n\n  -q, --quiet             reduce verbosity\n  -r, --rules [ruleFile]  provide multiple rules files\n  -s, --skip [ruleName]   provide multiple rules to skip\n  -j, --json-schema       treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose           increase verbosity\n  -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Resolve Command\n\nResolving `$ref` is the art of taking multiple files and squashing them all down into one big OpenAPI file. By default it will output to stdout, but you can pass `-o` with a file name to write the file locally.\n\n```\nUsage: resolve [options] <file-or-url>\n\npull in external $ref files to create one mega-file\n\nOptions:\n\n  -o, --output <file>  file to output to\n  -q, --quiet          reduce verbosity\n  -j, --json-schema    treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose        increase verbosity\n  -h, --help           output usage information\n```\n\nStarting with the fantastic resolver logic form swagger2openapi, speccy has one of the most robust\nresolvers out there. It avoid cyclical dependencies (when A has a property that `$ref`s A, which in turn destroys your CPU), and all sorts of other things.\n\nThanks to the `--json-schema` switch, you can have an OpenAPI file which `$ref`s JSON Schema files (not just OpenAPI-flavoured JSON Schema), then resolve them all into one real OpenAPI file, thanks to [wework/json-schema-to-openapi-schema].\n\n### Serve Command\n\nUsing [ReDoc], speccy can offer a preview of your specifications, in human-readable format.\nIn the future we'll have speccy outlining improvements right in here, but one thing at a time.\n\n```\nUsage: serve [options] <file-or-url>\n\nview specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -q, --quiet         reduce verbosity\n  -j, --json-schema   treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose       increase verbosity\n  -h, --help          output usage information\n```\n\n### Config File\n\nTo avoid needing to send command line options and switches every time, a config file can be used. Create\na `speccy.yaml` in the root of your project.\n\nExample:\n```yaml\n# Convert JSON Schema-proper to OpenAPI-flavoured Schema Objects\njsonSchema: true\n# Keep the noise down\nquiet: true\n# Output a lot of information about what is happening (wont work if you have quiet on)\nverbose: true\n# Rules specific to the lint command\nlint:\n  # rules files to load\n  rules:\n  - strict\n  - ./some/local/rules.json\n  - https://example.org/my-rules.json\n  # rules to skip\n  skip:\n  - info-contact\n# Rules specific to the resolve command\nresolve:\n  output: foo.yaml\n# Rules specific to the serve command\nserve:\n  port: 8001\n```\n\n### Calling Speccy from Code\n\nNot just a command line tool, speccy can be used to normalize machine-readable specifications.\n\nThe loader object will return a promise that resolves to an object containing\nthe specification.  For example:\n\n``` javascript\nconst loader = require('speccy/lib/loader');\n\nconst options = {\n  resolve: true,   // Resolve external references\n  jsonSchema: true // Treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n};\n\nloader\n  .loadSpec('path/to/my/spec', options)            // Load the spec...\n  .then(spec => console.log(JSON.stringify(spec)); // ...and print it out.\n```\n\nIf `options.resolve` is truthy, speccy will resolve _external_ references.\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[MIT](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n[wework/json-schema-to-openapi-schema]: https://github.com/wework/json-schema-to-openapi-schema\n","readmeFilename":"README.md","gitHead":"274ea9ec2e2ef6ebd931618abd235a563f73c324","_id":"speccy@0.8.0-beta1","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-8crJg+oGgO6sqlcNTuJuS9QBpLeAF+mi75z2kwxxCeOWPxD7kq6kqL3D1f9kfYqoYKJblgHjgewW1OFsEb2ngg==","shasum":"32f922838c42db0c403f9cead05c127306dbc151","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.0-beta1.tgz","fileCount":207,"unpackedSize":3782158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbT3ZNCRA9TVsSAnZWagAAVsMP/0xFctZsDVHEz949PAxu\nfdqRUM8v7rjJENPB0JalDZeq7GWrLgv2vAYbWuKZMllC7s1QeciRs6VT2FqH\nE5Ia1pE07sIE/8bWm2zX09ZzUooB951jddKjimfd9IqpsX3Kjhf+OTa9/Bmg\nlrtLKbAtLatzHr4n2iiX8sRwozB9YGyN6cVMgoF9YH8oQ4eeWPoqEyWXMBMC\n5xD5nn6OtlwtSvlS8sabDitsJIvwp/OWQUkj4Su7HpAlnDTVSANhRs67xS9p\ntD9nPsJJ6fJFzvZKFw4jJs0yQehObGwj2O/F2Z/sm8NMkc4BpeJQM9m0eaRv\ngZWuQIO0GxyzTJJUB1UVB+Odu0yY/2ZnzdpUvPqJ0CDrVlfW8At5TBZtw8mc\nrqh+eU+VC4twgHs4mX+7x9Ch9yvxMI9o+TDVtdL5+59kAH38CCBrA/ozVAP+\nDpi5rNe06i1UxasE8ew5Bgz4JyFO1XoQVyB8ek7i289Fy38j3J9JNgLgUK73\n1PnTotRMa6x+aTTID4piabW1kJpZEPPEmwP6G98ZgJrSr4coO5u4k3BUYxNU\nKNr6eUxdhKispvfyy5nLmlbZA6SC0D4TPoDVa+fV6KIzP+Zf0GpVOwZ4FsLQ\nIX8pB//eqpP336V/1K7pF4c/+SFx1GKYZMZOl2AhbsqE3LoUhISLBMiAfSvG\n8BLE\r\n=iPFR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRFjTVdUBUwCRRagIOkluVY57CJIaHRfKyxSbgKIKBDgIhANGsZVeD+gBBAAjmjUlruJTWadyrOC/a2FdBs695W6zL"}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.0-beta1_1531934285534_0.040362994813366804"},"_hasShrinkwrap":false},"0.8.0":{"name":"speccy","version":"0.8.0","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^1.7.3","node-readfiles":"^0.2.0","oas-resolver":"^1.0.7","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.7","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^13.0.0"},"gitHead":"b1425e503ac576924d258542eab8f47cc5f2e493","_id":"speccy@0.8.0","_npmVersion":"6.3.0","_nodeVersion":"10.5.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-37yYyL807fe8ZpHiNzlI87+7JrTRB4Rj0hFEpkoC724fAz5vHCpacFhJ6lo4LnSGeW7c7IGD9tcIxzZkSTQPpg==","shasum":"f586c7de6f235090cec0918de3366fabd1417d2e","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.0.tgz","fileCount":206,"unpackedSize":3782078,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbNn8CRA9TVsSAnZWagAA3F4P/RycgD/RA070B66lhQi6\nSX1mfC1JuMEtYp2xJW4tFoqML0MXN+Y5zI4JV3PDADX0qaHM9Y6168moEQGC\nQP8IirFPQFQSVP2KTeH+ASrxhgynBP+gwYatNNWBS8rj8KVOff3lRnH7MQi9\nSMpykKsgXH1kqaB5ZdUjV9l3A8ZY0qCCJK6G22tAXlAg4lsxz0GZW0xHlAZ1\n/0B3WxoIMY/ECNoRoc6YjiV8EJroz622rwDsdY5ZdxL6lwmh7DqymlsU6ECi\nGHlczTjZf9U4oYTTHN5Mt9HAjXIncVl98lvxXzSM4N2YbKaoh/az/lBk2W6p\nKYdUlR0iALuIOatjpb8k8fVqbxe2Dd51eqbmlj3HSkUrN6CWOLq4c3uGKLdE\nrlqo01ky0xKD7p+pFZwrY0Otb3bI7lEwDvFBZ45qX2kNiVNiGtSm3uotpMNL\nwq3ta5X3j9Nq1ZzUWAqCiaokam9eERdsIoghkNaUwo0eXx69Z6uoAScCz3J3\nTRFvq98n19+jbELjYcpTgE+YVMJgI0GLCUqBKXaCV+ui1GSRV3Gpl5NvjYHh\nXhUttrNJVcvrJUvL6pvmwi+Kcw49VHo/ZOrc7k96yUM+eIKt68oZsiQ2coLT\no0FnXVdJv8NQ30+ElPnSBk2m43qbW/2PM9m6TYNhDMfGcYJTN2gQoxPAtNk9\n6xoL\r\n=pIuX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFzAuqen6SBD3F/YNSufmsvdtfnRTgKSyN61EI9c/UUwIgFKXmDIhTUrHcRJGfo2ApPCbtT12m500obPV33KbsBpU="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.0_1533860347425_0.14477869656065723"},"_hasShrinkwrap":false},"0.8.1":{"name":"speccy","version":"0.8.1","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["swagger","openapi","openapi3","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"ajv":"^5.0.1","commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.2.0","node-readfiles":"^0.2.0","oas-resolver":"^1.0.7","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.7","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^7.1.0","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^13.0.0"},"gitHead":"4e297728f00b3c56a76e83694a85b53b5ac66efb","_id":"speccy@0.8.1","_npmVersion":"6.3.0","_nodeVersion":"10.5.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-GXRkwxi3qX/+xzdAup7pUdLkkaoEyUuwdFvFq808fXImeBv1pX7llennkIHqYGSjLPfmQ+NLLmeIQTiqhOs70A==","shasum":"011e30ff7dadbca7cecff81ad9d9d981e6562a27","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.1.tgz","fileCount":206,"unpackedSize":3782645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbftWECRA9TVsSAnZWagAAxVcP/Rkj1MLfoCGpX13WU6kl\nSnXAgyLGtGADoZ/RVYABka60R4S4iVk8QTd7JnMw0p9DyxozCrNpvHRCEw5F\nfCpJUeJxAL0XoT2Gi2KKw3hkCTyxm+69a/qE1LX5OuImpKru9cI8A+INnTH4\nNPmA4NNSiszEGzkSCZ9HuYaSRmb+qAUY7ppvy9GzGU/e1tx9o2YilBakLk1B\niJnLT0JcMZBYrp0/ajLb66nmJp6sHDEQxMCxAJWcg1QDqB5AN9Dca+Tqz1QA\ns5y7zY3c3f5pnbsvvPE9oMQtp7ilYcnF2ltBSo51OHRBcpamBNivDBRpE0ar\ntMxBj5hmjQIruLss22Fe53m5iF5nTKfNGSt7/JkB7MMdMovXPojiaXd5FKy/\nOXUmJPhGhRTmErStWyIB1Hqrkdziy4buqw/UB5/OfuAWvqcZKLeHohndkMJ/\njzQZeg6nSZUbsyqVSIKd1dzouVWIQzdpRfBL87SJQY1dfBc700bD+ngYw1pi\nqbhD/dgcrrhHeXigfLHERFtLJX2fB6+CzC60p45ZG2VEoT03ODdCEh3MoUdt\nbG7mOCrHxB4J+X05/NoLb10n3T1D6jartWUd9uSFGJhiYmhsyJq+rPjNni58\nfoPiCyN0loIaX8JUowcCDkgwtq8scR/00DZejzVE4+8idYtsxIXOlR8ac6rj\ntpfu\r\n=Q5oZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICwhPr/RHF8U/72oCH8dYT6FPdiU57X6mvdms7qa+NfxAiA3AtrTro8caM+PvST4mbUDHa0roZkwjBj65oRlTlGD7A=="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.1_1535038851828_0.016156546406578265"},"_hasShrinkwrap":false},"0.8.2-1":{"name":"speccy","version":"0.8.2-1","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.14.1","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.2.0","node-readfiles":"^0.2.0","oas-resolver":"^1.0.7","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.7","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.2","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^13.0.0"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## Requirements\n\n- **NodeJS:** v8 - v10\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\n\nOptions:\n\n-V, --version              output the version number\n-c, --config [configFile]  config file (containing JSON/YAML). See README for potential values.\n-h, --help                 output usage information\n\n\nCommands:\n\nlint [options] <file-or-url>     ensure specs are not just valid OpenAPI, but lint against specified rules\nresolve [options] <file-or-url>  pull in external $ref files to create one mega-file\nserve [options] <file-or-url>    view specifications in beautiful human readable documentation\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is subjective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nensure specs are not just valid OpenAPI, but lint against specified rules\n\nOptions:\n\n  -q, --quiet             reduce verbosity\n  -r, --rules [ruleFile]  provide multiple rules files\n  -s, --skip [ruleName]   provide multiple rules to skip\n  -j, --json-schema       treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose           increase verbosity\n  -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Resolve Command\n\nResolving `$ref` is the art of taking multiple files and squashing them all down into one big OpenAPI file. By default it will output to stdout, but you can pass `-o` with a file name to write the file locally.\n\n```\nUsage: resolve [options] <file-or-url>\n\npull in external $ref files to create one mega-file\n\nOptions:\n\n  -o, --output <file>  file to output to\n  -q, --quiet          reduce verbosity\n  -j, --json-schema    treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose        increase verbosity\n  -h, --help           output usage information\n```\n\nStarting with the fantastic resolver logic form swagger2openapi, speccy has one of the most robust\nresolvers out there. It avoid cyclical dependencies (when A has a property that `$ref`s A, which in turn destroys your CPU), and all sorts of other things.\n\nThanks to the `--json-schema` switch, you can have an OpenAPI file which `$ref`s JSON Schema files (not just OpenAPI-flavoured JSON Schema), then resolve them all into one real OpenAPI file, thanks to [wework/json-schema-to-openapi-schema].\n\n### Serve Command\n\nUsing [ReDoc], speccy can offer a preview of your specifications, in human-readable format.\nIn the future we'll have speccy outlining improvements right in here, but one thing at a time.\n\n```\nUsage: serve [options] <file-or-url>\n\nview specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -q, --quiet         reduce verbosity\n  -j, --json-schema   treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose       increase verbosity\n  -h, --help          output usage information\n```\n\n### Config File\n\nTo avoid needing to send command line options and switches every time, a config file can be used. Create\na `speccy.yaml` in the root of your project.\n\nExample:\n```yaml\n# Convert JSON Schema-proper to OpenAPI-flavoured Schema Objects\njsonSchema: true\n# Keep the noise down\nquiet: true\n# Output a lot of information about what is happening (wont work if you have quiet on)\nverbose: true\n# Rules specific to the lint command\nlint:\n  # rules files to load\n  rules:\n  - strict\n  - ./some/local/rules.json\n  - https://example.org/my-rules.json\n  # rules to skip\n  skip:\n  - info-contact\n# Rules specific to the resolve command\nresolve:\n  output: foo.yaml\n# Rules specific to the serve command\nserve:\n  port: 8001\n```\n\n### Calling Speccy from Code\n\nNot just a command line tool, speccy can be used to normalize machine-readable specifications.\n\nThe loader object will return a promise that resolves to an object containing\nthe specification.  For example:\n\n``` javascript\nconst loader = require('speccy/lib/loader');\n\nconst options = {\n  resolve: true,   // Resolve external references\n  jsonSchema: true // Treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n};\n\nloader\n  .loadSpec('path/to/my/spec', options)            // Load the spec...\n  .then(spec => console.log(JSON.stringify(spec))); // ...and print it out.\n```\n\nIf `options.resolve` is truthy, speccy will resolve _external_ references.\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[MIT](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n[wework/json-schema-to-openapi-schema]: https://github.com/wework/json-schema-to-openapi-schema\n","readmeFilename":"README.md","gitHead":"4a7cf4a0bce7a53bf5e220cc9cd230b0440f667e","_id":"speccy@0.8.2-1","_npmVersion":"6.4.1","_nodeVersion":"8.11.3","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-L5m59wNNNOFjOlXBCFeINNSIkMzZ9gDzgmiUgGjvpobwJuLqUoQlKCVe6vWsO8SwXwxrZ5hIdL8+hVTLD/t6YA==","shasum":"bc28c3760402e69a2408bedb24db2cd7e732be03","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.2-1.tgz","fileCount":206,"unpackedSize":3784930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbnAZkCRA9TVsSAnZWagAAnuUP/jwTIdIxT4Y7pfc3o1x5\nVsNdyJ63DmpKrHJGnGC1e1aHVI252Otmsd8w8K5ZlicuHYw89IjldYam7VPv\nc+rI9ax4Y/ykIgGJmLHrL6xwbrouQ8CoJPccq6QOwUd8bKHghKMFyU6zH9K/\nexJbqLEiRTDTpTORgd4ZqctyPU6clQcxoI2dHFD9d4o3e3Kv0QoE/RFKRLTc\nkPKrUZjh6fp4mikoNb1gW6e2I+nI6tQBvVcFET1qOLcGqNnVTTkMzKYEtOoS\nHDfCUTiVQKvBBxbIHdjGv+kqDdCTaWm2cFeFZaUuGZ3YTJnRz9H9rzMrURXG\nZoaZYfnCPQz9zFgmeyQjMbVwUKJ72p8J+esKVYkGV7QNs49bvqeXH57Z4Ls2\nM0tWkVEH3cr/mDt3jtQHDE5spr8ykv9vJRWLG90IihSK2BpOn/nKNoi9/gh0\n0mgs8syG7Tk86JEeaC6cJIjVUQbKpTlf3v6YLy/+a3fQQWVdMXINUH9jPY0S\nGDDZbrtR/TEFZmNi+NsA1k0pI5te6lZt5z8auncgTvKGv2ZaVlhMVzBCPbvH\nScKoBQ9LTWl1l5EYBvrNFisEeU4F9uY724GLVrxhvWSsHs4Q8ldPNQOVsWIf\nI+TEAu3kROh1SoZadUbgWfBSw7M7pF8UsE25CH8/q7NLv95DIsxDkKis7JF7\nd4+M\r\n=aJee\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCa5NyC/kCfmDf/SACZvsWOrT4YjbO/igxYSNYkBJlP5QIgSGG7wNL0YvHxG4RjccnsIqC5TaQniHEYVt1Czoya5KQ="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.2-1_1536951907138_0.24405943049098133"},"_hasShrinkwrap":false},"0.8.2-2":{"name":"speccy","version":"0.8.2-2","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.2.0","node-readfiles":"^0.2.0","oas-resolver":"^1.0.7","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.7","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.2","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^9.2.3","nyc":"^13.0.0"},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## Requirements\n\n- **NodeJS:** v8 - v10\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Usage\n\n```\nUsage: speccy <command>\n\n\nOptions:\n\n-V, --version              output the version number\n-c, --config [configFile]  config file (containing JSON/YAML). See README for potential values.\n-h, --help                 output usage information\n\n\nCommands:\n\nlint [options] <file-or-url>     ensure specs are not just valid OpenAPI, but lint against specified rules\nresolve [options] <file-or-url>  pull in external $ref files to create one mega-file\nserve [options] <file-or-url>    view specifications in beautiful human readable documentation\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is subjective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nensure specs are not just valid OpenAPI, but lint against specified rules\n\nOptions:\n\n  -q, --quiet             reduce verbosity\n  -r, --rules [ruleFile]  provide multiple rules files\n  -s, --skip [ruleName]   provide multiple rules to skip\n  -j, --json-schema       treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose           increase verbosity\n  -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\n#### Rules\n\nRule actions from the [default rules][rules-default] will be used if no rules file is specified. Right now there are only the three bundled options, but supporting custom rules files via local path and URL is on the roadmap.\n\nContributions of rules and rule actions for the linter are very much appreciated.\n\n### Resolve Command\n\nResolving `$ref` is the art of taking multiple files and squashing them all down into one big OpenAPI file. By default it will output to stdout, but you can pass `-o` with a file name to write the file locally.\n\n```\nUsage: resolve [options] <file-or-url>\n\npull in external $ref files to create one mega-file\n\nOptions:\n\n  -o, --output <file>  file to output to\n  -q, --quiet          reduce verbosity\n  -j, --json-schema    treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose        increase verbosity\n  -h, --help           output usage information\n```\n\nStarting with the fantastic resolver logic form swagger2openapi, speccy has one of the most robust\nresolvers out there. It avoid cyclical dependencies (when A has a property that `$ref`s A, which in turn destroys your CPU), and all sorts of other things.\n\nThanks to the `--json-schema` switch, you can have an OpenAPI file which `$ref`s JSON Schema files (not just OpenAPI-flavoured JSON Schema), then resolve them all into one real OpenAPI file, thanks to [wework/json-schema-to-openapi-schema].\n\n### Serve Command\n\nUsing [ReDoc], speccy can offer a preview of your specifications, in human-readable format.\nIn the future we'll have speccy outlining improvements right in here, but one thing at a time.\n\n```\nUsage: serve [options] <file-or-url>\n\nview specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -q, --quiet         reduce verbosity\n  -j, --json-schema   treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose       increase verbosity\n  -h, --help          output usage information\n```\n\n### Config File\n\nTo avoid needing to send command line options and switches every time, a config file can be used. Create\na `speccy.yaml` in the root of your project.\n\nExample:\n```yaml\n# Convert JSON Schema-proper to OpenAPI-flavoured Schema Objects\njsonSchema: true\n# Keep the noise down\nquiet: true\n# Output a lot of information about what is happening (wont work if you have quiet on)\nverbose: true\n# Rules specific to the lint command\nlint:\n  # rules files to load\n  rules:\n  - strict\n  - ./some/local/rules.json\n  - https://example.org/my-rules.json\n  # rules to skip\n  skip:\n  - info-contact\n# Rules specific to the resolve command\nresolve:\n  output: foo.yaml\n# Rules specific to the serve command\nserve:\n  port: 8001\n```\n\n### Calling Speccy from Code\n\nNot just a command line tool, speccy can be used to normalize machine-readable specifications.\n\nThe loader object will return a promise that resolves to an object containing\nthe specification.  For example:\n\n``` javascript\nconst loader = require('speccy/lib/loader');\n\nconst options = {\n  resolve: true,   // Resolve external references\n  jsonSchema: true // Treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n};\n\nloader\n  .loadSpec('path/to/my/spec', options)            // Load the spec...\n  .then(spec => console.log(JSON.stringify(spec))); // ...and print it out.\n```\n\nIf `options.resolve` is truthy, speccy will resolve _external_ references.\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[MIT](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: https://github.com/wework/speccy/blob/master/rules/default.json\n[rules-strict]: https://github.com/wework/speccy/blob/master/rules/strict.json\n[rules-wework]: https://github.com/wework/speccy/blob/master/rules/wework.json\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n[wework/json-schema-to-openapi-schema]: https://github.com/wework/json-schema-to-openapi-schema\n","readmeFilename":"README.md","gitHead":"da32e40d80dbf8a958744c67694c4cf02f1eee81","_id":"speccy@0.8.2-2","_npmVersion":"6.4.1","_nodeVersion":"10.5.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-FOoah5t2Pp0KcBfsfncWYwqUM04Z7z1KFeBtfPHBZN+XkgQSrCNFKUIAnyJl6SN2OBTnjwRu9BSmWlgmwPJxZA==","shasum":"7676210128d8e098485139ccf12bf6df4a8c21ac","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.2-2.tgz","fileCount":206,"unpackedSize":3785071,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbn+dmCRA9TVsSAnZWagAAoPIP/2ghlz/NiTsjb1mpLCQL\nWX8RVYXfgy1q3yBD7rg/OguUFEYRQ1GwMba40fS5kJZQ1vbE5n5s+ZdI7KaX\n+EqkVHmabdeuco04qssEyn6cfEY5oOtKycIMisnzIXRvLV8dCq9KW91mLWvG\ndcsVu8G37y4V8W5ladLWP0GqJ1ldopoVE+nQx2lVQyHomB41uFSoIR/VZ2XC\nASQI+Sx46GncGWcN9mh4htMKS1J9B4HwjM3oXLg++4Mo4P9YmLpxdheTZWZW\nWay+HWBxjNwSGEjGOlmtsuMLURfz2YOU2Xg4GjpzkTPyev8WPNT88+ptO05M\nrPdTIDhdpVsk6tfkpFHPU6OVEAMqbiZ3YG29gjuymdecNUES1LUeeiUsfImr\n9vIZH+nJcWtfRBJ9qIoZ+P2wWXUsFCYWhF8nmFEDGDiUtBhiYCR+9Efh3HaX\nowbqSAOP5haATsufwdFbLiL8wMZu4UB5EU6xbkHpM7fBaKrxQK5VUP3RE+oa\noDfUSsz5sonXuNhW0XHVGab2pOGHaUeEak9M9RMvELnDkMzV0VKkEl/2sbtv\nNyUEIouk2pUrmDi+ECM3H+teqz7ZsiWt3h9ytWq5wHR+chOQqBR+uCGNhH6E\nU5MtgkhD4sjcbJpYTCQXq0ug5Fahwb3mlTV2zZfgh24wY4tEeVA4APBhDlE7\nhU5s\r\n=N7bR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFibA9i6Gx+XOH5Q8ZpJxXZmqeiA6XkPjKlC9E+EuB+IAiBLtRcydBQkPDZaT921GAVdzbRmF3WAVk/2fC9b8nVI7Q=="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.2-2_1537206117916_0.9894411949963149"},"_hasShrinkwrap":false},"0.8.2":{"name":"speccy","version":"0.8.2","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.2.0","node-readfiles":"^0.2.0","oas-resolver":"^1.0.7","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.7","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.2","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^10.0.0","nyc":"^13.0.0"},"gitHead":"57f887ddbcd3c948a591a1cc2b0413a755a84cfb","_id":"speccy@0.8.2","_npmVersion":"6.4.1","_nodeVersion":"10.5.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-vnbNNdtEXldb+A21WLLELHXwkL07Kqg0na1bchknKTcp6Ny6XPbB1NZP3Tnw7teFOi1Rfzg+KcRqFLtd9i+fVw==","shasum":"61da860c9d8b45eaa130774cc358c06f4a76870e","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.2.tgz","fileCount":207,"unpackedSize":3785558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbn+4CCRA9TVsSAnZWagAARDgP/0yjDJdBk6zPUHvY7a2G\nCy5873hMnGIFnf/GfN6FlKKwle97WpJxP+GuejL6wTvmifEWrNCaZfzBRaY5\niGMpRwXAWvtZ4tngPXyd6rG/j3EYSGKNFQ3sfXDzqwg6qRCHviJnY+7I91Ha\nVL7jYrP74lV8ZKxgcd37hBgtzGsfwVvSOH7Oq2Nyw5ahteylSS5JdifW+dK1\nMtWoINT8Z6VmmIqP/AIaKZ1Q/qYhau0Qlay7ck8MBNML3/Vo9cSxgabhDZ7Y\nJk6D6jb2mJzuP7vT6s+8igpOV4kzQqF1/h6U2uOPi0Hw9cwdkfB/gWIA407I\n+adEg9GdA2EKoiHpTQibIaya5zrGo6JA6E2/x5UIZ4cA0nrOunPpPq4YBVmy\nQ4yldvlsUpHWO3+bhLp8UYebnU0QB/L1erAd2OytJ/b0JN9YESq37ghBV8C4\nv2YNZqmNGifEVlE4hxutrz2KZ6E6nuCIMJZJQ7+wDiEMW2fkfMwupEXJnfrb\nWPNs6XJF8tp9lqy9/DBrFM78yLrmkM9L1Ts0sn98jEFQb8loX8uzdbMMyd1t\n4VOryb7kdZqt2r9dth7qcE8YWetVniHh6go1C9DHtZtrqVpJf5tIOMNuNI/e\nDZj7QSqT7Lh8ORUpFAPgW78TxZE7TEEL9Iwt5Zt8aHpFni8YFzYbjVi9YcjV\naNGA\r\n=pZhv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHJMZ2WdPr9JXIxV2z4RZv5l7z92lXUEneVIiG9XTtL7AiBvSuRUek4F9Bixm296axZVrN1wRcoAtvSKdMNqlyifhQ=="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.2_1537207809636_0.08837276933675375"},"_hasShrinkwrap":false},"0.8.3":{"name":"speccy","version":"0.8.3","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.2.0","node-readfiles":"^0.2.0","oas-resolver":"^1.0.10","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.12","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.2","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^10.0.0","nyc":"^13.0.0"},"gitHead":"01226786f0ddfb8ed0c25ec538df4e389f5f53da","_id":"speccy@0.8.3","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-9fxd37hIissteurLC/mi2KSrApq1RjjkSjCbNi2RNlEa/WhhpDUZdzz4eQnmZrdBPwtmA3WYh3cAXTDOwC3NIA==","shasum":"2ef224112704f99fe89046b5700e5380bf26658b","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.3.tgz","fileCount":208,"unpackedSize":3789043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbxjWfCRA9TVsSAnZWagAA/TsQAKEvlmbLCKdPpL9j9RaX\n9TE/5wI26sttHrtuvsoYyRMDK/Xfc01ZRSoJxZqLBuOPeYSkYoLgd7aUa8t3\n+RwUkkSKq8NouDKEiu6/KOfYGtN+zVwt0lD9rYkxG8OlP7w/WwqdUL7NAWZy\nZURt78AQjfhnqjxIevFZgJfWUIojqn5Pf1mnBZNhvyrOK1/tW4M9IHZEySGC\nhhywB0N4fe3nY039hiyY65ySfSE8qkoh0V4QK3cD7/6CaV2Y9FxoMMzxnCne\nLwhfUV0kFu9rEXOwmDeC5Bu6oPdh8otNdQy9FFB7HB8U8mYcJ12naTGDGoMq\nzbiXSFawNrL9goVjCiji5IdLYfgXsPkHw7wax62ozE4iraggGl+D75wzsd5J\nS3/JVgZ9bUZpdO368jib/npB8dHUjq/wDc+vYnygUQsm54FawwR4wkcUMv8q\nyyJRirhIckSHgfG/PbXGZINqK2K7bhvtjtiG9ZxO6Xw9m50S+N5F2LvSj0ED\n4QL1JRU4vfKaX3JeJyODCbDVyiRpyqZxfBZnM7/XxV8vE75YlZv648L/XOgh\nRIJCn40LWccE0BzZxuJhgpsZLPcM0ksKpW+dEJYpx4FC01jcSC+IVF3ySAV6\nkAMxnBRazCCRFxfdUASkgQU0dHTpjSsDlntRA+NYUx7ylW+lr8JHz9F3q9oH\npQ72\r\n=DauJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEjJuVyLqyfV8tkjpGbnY7Wlzqx2hn3Z12JaOxTSOAFyAiEA/JDE/N9zTNpx7hp+9FSrohWNXROFKLEmP1b6D2tH35I="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.3_1539716510577_0.013984435140096174"},"_hasShrinkwrap":false},"0.8.4":{"name":"speccy","version":"0.8.4","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.2.0","node-readfiles":"^0.2.0","oas-resolver":"^1.0.10","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.12","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.2","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^10.0.0","nyc":"^13.0.0"},"gitHead":"56e46fa838eab7091cab9d800d84e6e684fe9f6c","_id":"speccy@0.8.4","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-HrK9zDkmj45vrye3+XImaaeI7Foe4QIASfaSsL2nqsHstI4HoIfdMD/zBJLK8BnBiz7TM8ayRMB6dKAMPeiyGQ==","shasum":"858c4b4f7961f9e35a1d93d0d3a046db3c237d32","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.4.tgz","fileCount":208,"unpackedSize":3789384,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbxjuACRA9TVsSAnZWagAAPr8QAIsLtntQPMjnO5rTOKPd\nu+WKJOTsm5QpmDMxXvVna0cyEjl6cseEK6NxcRKJai3NHelqH3VBDFMuRp/n\n7ny+q2GhBBkVpdPoBcu/6McMK0QsHJ7pilVunn0rMmlSsS/pyagXyCuRlCJF\nu1uZ0rbZeB9dZqdb9bHJsVEaQzJk0akt+eAM380W/EsWNxc+CNPNFMBlmE60\nUDkD3ruu9YXjLC7bLi9+RteOdgpUEOy6Tmi2Hvn0ZxMpON6qqaU8n6PBi8AS\nqonJ8tYHOvAMAsSr1R4RHBaOgTaLsn5Wu2hochwZ/sWng/KvduqQT1GwE018\nFzW04mRYnStl0nyu2GiBeWv60WP9kkRKHkFV9VyuAcEWYmQYeBO9t0tF1wq3\nrvBK5Xmehb3ZwXCThptU3UN/M+ldLHc5NNfbB1N8Z3SAPk67rPoWlgda5NvQ\nsiewLXTLkOb6q5u4th5pE3jnOGTsj3F7kqUpF65iod6rznel2jCprf9PNFuD\nJCV1hQZcQ1mJcnLpxEjV7cnYZlnbvREyMtG4txcLCTMS8TXBbvYgoHqGL8/L\npF5L1l300m7IbNR5Kg3BkCvBtWhQs/bE1Dou9lHe28qdSoy07aMOfRWjkoDR\naI/Pzj/mszRlWT+D/McG2EtdKeRre3trQ9Vnos1h+2WLgQQXqDmJQao9TSX9\nk5sf\r\n=5VxF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6CWi5d3ZCQSu0yK3fQXozR18ERY39JepN1H4MxO6emQIhAIEhmiiCnF9Wn5RWLvA1sxhRaoThh7kP9fJ+5RALyhgo"}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.4_1539718016035_0.02635140697738958"},"_hasShrinkwrap":false},"0.8.5":{"name":"speccy","version":"0.8.5","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.2.0","node-readfiles":"^0.2.0","oas-resolver":"^1.0.10","oas-schema-walker":"^1.0.3","oas-validator":"^1.1.12","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.2","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^10.0.0","nyc":"^13.0.0"},"gitHead":"b7dfaefc92b8e3b187254dd0fe2b63a571a3d5d1","_id":"speccy@0.8.5","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-KPcIK1rmd06qHZEWSaW+hFo8Kz86D2lhulO+kQJbu/YREcDaUSPXmGR1e9jpYTWri/JMsJAJhMaOEqm3ZtN3oQ==","shasum":"b6d44f22d0dafeb41da8e576071020fafdd1185b","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.5.tgz","fileCount":209,"unpackedSize":3793316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7e3oCRA9TVsSAnZWagAAyaEQAJm5aJoyMLE/nfZ7xYYf\n13wAuyW8bIuqylqcNwguChLrCxzOZtSkCdz+mTZXvoQ71AE71xzdRi36tqRI\nl1E0tSMjcLpFHJDvbj3hFw1swR27O2cXZcCkDKGFBiUj5PPqI3HaahECnCzk\n1COKzSPisdwl6rX+DVc+frlKpGvI82eUnyvWBIRFs1kq8IPnGraRRu+9Khg8\nt1bJFG3RUuHy9ydACYFu5RsllwgzEiHDbYxrEfcnG78Zzfqq0bKtKLUzcZo5\nHwqoYpmkfjEJB6IiywpSG3mU+mmgNcNGFks8kBWoM6NZVMR4D1W0/MErsJ63\nbbz2tdVmcXBTCZwkxEDXoLEXKXKKKZ/0U+vl5N7anrNPqrtwc0jJU3PoWUXA\nlZFifYZ8fccGotsnUEVFOkxCYPOTOMboyf5VQ1rzm2gTbtPJy8DFXmxF0qeM\n+C5RcWh5lRupxqzJAFVk0Db8Wi3X4dxLQ0umL2tGHN8OiyRLaLsotEBLVBt/\nt7kxRpDMEL4MfcW+U2FmYIgEGbcrlvalVcsuYuDVXj0qSGQ6YrundOvrqESI\n7hNG30Wd1UtdNSI8M/E4c8ttEXz2qeCh2esvjMmrA/3eumrSa14p/Uq9eJOV\nSn2SZIRzMub1C6VEO1GLn4q4lYrKWz0d80c6A/lxR89nrdP/TZ4azNnHtuWw\nQRLw\r\n=Bmuq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHGofioTVORCk6B90mDaRy2W5wLVXgmKG2iiPWUqWJigIgIs66NI167zrznfvn8SpWpJE2C/7DtcsET9UZjLxE1IQ="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"dev-team@wework.com","name":"cmugla"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"surfielda@gmail.com","name":"surfield"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"dev-team@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.5_1542319591503_0.43949504930131544"},"_hasShrinkwrap":false},"0.8.6":{"name":"speccy","version":"0.8.6","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.2.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.2.0","node-readfiles":"^0.2.0","oas-resolver":"^1.0.10","oas-schema-walker":"^1.0.3","oas-validator":"^2.0.0","redoc":"next","reftools":"^1.0.0","should":"^13.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.2","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","mocha":"^5.0.0","nock":"^10.0.0","nyc":"^13.0.0"},"gitHead":"5500ddc35f8fca626e8323c5d13508a643098f6e","_id":"speccy@0.8.6","_npmVersion":"6.5.0","_nodeVersion":"11.4.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-5qMSJeLPWXYo83gfiFa7041SfmPgIc2LiR6+q922rmCkHCROOZ7AuiLaxK1RlqDFPHSexw5IPtb2FKAz676JDg==","shasum":"9781e7320694549001544679717ee75ae38d9944","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.6.tgz","fileCount":210,"unpackedSize":3798464,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGVPrCRA9TVsSAnZWagAAkNMP/2hl8CpHFdP+hYgyQZbe\nMJ1HkJtnJOiznrccxZMiuIAtIvxkuyNDxvJ9Af26gweximCRAhSRkSy2j0FH\n10cQsH6U2hzH7QFKNtYy4zIi8l4PNTo8oRx56Pn7AQd6wgz29f3gVkkPBs5Q\nxBavMXtulmAVdE6+Qor3IYjLjZ2tdDH+oKAtVaMfhkOw+KAPfzOvn6tBhhcD\n4ihzBcZJDa2BQGPzgIdzEQ0XrzssZhk/EkvaSD/hRYazqg4Yu1AFGfotRapS\n7Ua+D4gs8QH53VwkZT7yI4dkccdnSoFFxvaWLPJYF1rSbLhdRJeAtlzSazPK\n34WhvtJ49OOAMTuSA3iQ/aZAnI532VGbmgD2mMCnl8trBi9vCc3F2rKVlA5M\niq2HjJcS7S/o6nJ5r+U6cBrdPUud62Ou9xP/e3tgQOjk3bsDsU1txtQmP0zD\nrnhWTapfdC8j9z5yCxbCAucralX9QMbpOzOeXh+DgsAENRdmLHOWO4cOvEL/\nj1IUmMwoXj0VtkQbS6xu5hDDGr3UNRMPpK1VwjDyXAU37EJAXJJTQQ+ZA82F\nFO6pm62S3X7ZUENqbXw462LJiY7LYbFnkX93UEPuGBAFB655xxKR81XsyDde\nU4w2WrWyCx3xU9UHEWbvY8+3JCkQWwEb1Hs7lzpZwaMl4RV4sAJm5niFAwBz\nnnKo\r\n=6kak\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKWtggKvmYMP3QW2iGD1Qzf1hTEMoD1QyJOxaWrIu9AQIgINMEUsWW91pHDYpgRzSLl7JyWskFcNwlpSoNkXmA+G0="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"cmugla@gmail.com","name":"cmugla"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"emrebsonmez@gmail.com","name":"emrebsonmez"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"hamid.aghdaee@gmail.com","name":"hamidagh"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"jimmyhsu+npm@live.com","name":"jimmyhsu"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"tech-admin@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.6_1545163754877_0.24144691833791"},"_hasShrinkwrap":false},"0.8.7":{"name":"speccy","version":"0.8.7","description":"An OpenAPI v3 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"jest --coverage"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.3.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.3.0","node-readfiles":"^0.2.0","oas-resolver":"^1.0.10","oas-schema-walker":"^1.0.3","oas-validator":"^2.0.0","redoc":"v2.0.0-rc.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.5","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","jest":"^23.6.0","nock":"^10.0.0"},"gitHead":"b999fa5a5524fc90efe6d9f6f3aed8ab6b4a0f98","_id":"speccy@0.8.7","_npmVersion":"6.5.0","_nodeVersion":"10.15.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-tK0OwMFq18p0xnP2yXLz0lHyyFCKGEesPDPhnHjN6q8BuOyAs4ImdenmfRuUVSGbLhbveMhmODP5rPBDJdW5FA==","shasum":"cd1d9a235426b1aa8e2818bc65a44c9bc1dd1793","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.8.7.tgz","fileCount":210,"unpackedSize":3799544,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQPRdCRA9TVsSAnZWagAAAGQP/1moyCQFS24Q6z4HUWo+\nQ4riDU7NC3FO+fLtHmHFAUuuNTIkEopj3/4nRCZ2eVirlGLp418xaB/JPJnO\nZWy04ZS/t1jA/+Aa6AkYKJ5WJY97fmzVH1/0h8DKzZNg4W/3Yhb6pWZmpmew\nDA3enfXN/+SWzPea68N4G1vJljOFmhemPKsaTgHFjqQ+Fkgw76T47PN9vpLP\nfr9sHN1GeznH0rkOBOGOySNbEOPbH5NHwLhXmlyAMvLImnKK6nSOTfc61Oqw\ngNjaXy9rhRJqawCDiNO5GQVBMCJzLdDsO4HKTvxhhWBj6IxDBNPSKfedPvN7\nziGAO/wOwXGJDJ3Vp11S2GTDmtpT7I0MS/ToJVX0nrJZ8hv1AfVb98ZZvcCF\nrGuD5WZmkAANSSg7qVZzSEihwUfrAb6GqClpQrKob+0nHR8AouamADtgDELm\nGm65VYEGfgF4bJaPu1R2W7QizvaKqRKweHTRp+tREr4xMpC31w6hwR4Z/zKQ\n1VbjpZMphc8v7QPnzpaa6tLIhbntO0y9J7/vHoDQgiGfYK55XiFt4N5ofh2b\n/4ilpgCAxA06lGPXQ3BKuoSBHK+UZ+bvvRdnX00gQejVxqd5c7vyZejjtIsU\n6f1gGDWpE/qGPk7SiElWSW3UrIxsfW+6lQ0+641fh+Xdtl38MOJUAMXlnfzs\nWAwO\r\n=RDv4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFzaZo47FOynX95dDrVRO+kqbQnpxo2oefJTTRKvZ27OAiEA8QjTM9PRiVCWGuE30/Qtbca9prWW9+st1BNP5CyyfH4="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"cmugla@gmail.com","name":"cmugla"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"emrebsonmez@gmail.com","name":"emrebsonmez"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"hamid.aghdaee@gmail.com","name":"hamidagh"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"jimmyhsu+npm@live.com","name":"jimmyhsu"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"tech-admin@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.8.7_1547760733022_0.5024033236760206"},"_hasShrinkwrap":false},"0.9.0-1":{"name":"speccy","version":"0.9.0-1","description":"An OpenAPI v3.0 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"jest --coverage"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.3.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.3.0","node-readfiles":"^0.2.0","oas-linter":"^3.0.0","oas-resolver":"^2.0.0","oas-validator":"^3.0.1","redoc":"v2.0.0-rc.1"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.5","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","jest":"^23.6.0","nock":"^10.0.0"},"gitHead":"06fbdb59d488a39ea148d6c6d4b89c460dd4f519","_id":"speccy@0.9.0-1","_npmVersion":"6.5.0","_nodeVersion":"10.15.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-qfSouDz8IeyMgB65jJFKRV3gCA3sgTzwGa6e8OxTUmeC5SNO6wh24VLh7UYc3HKnlIWzkB1d+fmi0aO09v1NmA==","shasum":"1ac1c559cefa0396282cd307d4e664093b223366","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.9.0-1.tgz","fileCount":214,"unpackedSize":3779620,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQgASCRA9TVsSAnZWagAAxW8P/2dtZADnb4HJW8Ng/sWU\nfC6NCyTqiSu3k0p5d1xgR9Q42RKqaX6WlAK/TR3OP81pC5lxfG9rkcWNVB4P\ntALmxHrELXJBv9B7fcqAiEUd9wtJV6PKoylH4k8EIYKs798KJWs2j4RCJzZQ\nsYz7+ghTWKZJBse2Tv3tCEOv9uP+9Bztqa3oW8+3c5JsvZAKeEeK4/ZcrnW7\n/TXgupyw++RNZ0bghE3ny444JYC7m8QwtinLY40ztqfeRjWYX064gN3Q64E3\n6fcHpHOTaZaAlZYbo/ZfzpHOMK2F1J5gIdylDuUCaiyIOFRDOmOchWH5pHRP\ncOaDzLL2Q996yRfU1D21fF96jxXp77BP9SEHJ8aM6MqZkxRqGQJDQhEVdVqc\njQ3YnaRvbPC3sCY9FmQ3kbdLCYj0bHoHzApQVRCU0LQ0iH2lZS/2NhkKY2TP\naWHYwExc59Dvnps/jo0D4doUGSrZAcjizNqoMTFkLdsyPEZypd1Jo9h13gK8\nmZtGU2MeYURNnZUqrfEk+EXWEAEQn5rWG0E+mWEiSEDhV1U7gsJnvdgE3Lyo\nkdaoRMOcSkTwbeaCM4dfh0gayIpqeKXaoB60cMNct54Tp+nTL3kqEhK1MI+M\n40FColEfcsDWmqEZUc60pYFmsIiA9uOz7w1lEjkhRJFLZbt5dlvWQ/nhU1qx\nIwdh\r\n=5F/p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZoBb8snF1ogNn24a4cR/ugDGoDbdBZYGQ4WQApVuFZwIgWw139C8fs9hg0Lig5gTH+f+3Z4K4fitXl0/AzLcp7M4="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"cmugla@gmail.com","name":"cmugla"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"emrebsonmez@gmail.com","name":"emrebsonmez"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"hamid.aghdaee@gmail.com","name":"hamidagh"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"jimmyhsu+npm@live.com","name":"jimmyhsu"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"tech-admin@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.9.0-1_1547829265513_0.9984881157041261"},"_hasShrinkwrap":false},"0.9.0":{"name":"speccy","version":"0.9.0","description":"An OpenAPI v3.0 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"jest --coverage"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","js-yaml":"^3.6.1","json-schema-to-openapi-schema":"^0.3.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.3.0","node-readfiles":"^0.2.0","oas-linter":"^3.0.0","oas-resolver":"^2.0.0","oas-validator":"^3.0.1","redoc":"v2.0.0-rc.1"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.5","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","jest":"^23.6.0","nock":"^10.0.0"},"gitHead":"85efdbd84f150d41271df014ea8741583babbb7b","_id":"speccy@0.9.0","_npmVersion":"6.5.0","_nodeVersion":"10.15.0","_npmUser":{"name":"philsturgeon","email":"me@philsturgeon.uk"},"dist":{"integrity":"sha512-xG1z0mzU648xWkh3q50LWHaUHeq1Vpq9gYcJpMnFRpWXVwoUIzKxmOC4jitDK1MRuPeqPJfzkw6EkN9VEr0NcA==","shasum":"dc010021b63baebdffb687915780e200b7a16a6f","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.9.0.tgz","fileCount":214,"unpackedSize":3779695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQi2yCRA9TVsSAnZWagAAZoMP/RlcJmm/08u0wC5RkaEt\nDrDVH5NWdDCzcOWUm3iJpE466GvodqlmeoJiE/j2Zund/JfyuNlgnFrLNFRE\nu1ZETeseUyM+PM1UigtywZvq03aNpAolZ/uJzt6NnJThnVOlmhRN7DXR6H1v\nf89wSG9triX9Tj25vobaK/WDeREudLZVE/O7X5zjDgWVrLRIHYo+vMtRMye4\nUnZkuLqqAnpI5XqQZtveqv2T2VS/uoKc1msnfF3Ijfe/VmasL5tGcDFaCtfj\nfKqomS4PR6f7FEwhGbQlNyry/l4Fv3TystZwRh23a0QxRKiHeGHPdQLkfKgK\nRtjHf1jJNAWrRgPC+vRFiQVjjd9Eq8ZVzErDzwZktFZSZFdOvY59GeZxXl3w\naXtqHFTabzGzQhNVEAvbqsHBQyH1MamXq0kCS+r+P+BPYcx+ykxmx+QzSFEV\n5oLBrtXNJDj/ctpYhx0y857aQ+KZqwEAlvdM+ciKNKEKD40VH/dap7NUwUZm\nvOxyDB9hR4bWZaApkzC6F09tW+TojPEp36BXap56MZ+UaTU7H9+JYgpI6bvH\nAIFqlhwVHlZ/W6aAFD5t4mBfon5Voi2joWJLWmKyuz0rd+fsB8a2YB2bsVP+\npiR6YMk0yzn9tIU+/TN1ikxi7xYx5Kf1t5EFPnhaV5+3MIzcidT32Mk7hdAG\nccSK\r\n=EUra\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3WV24EVh+IDHQeXnf0z03MFTB+O3gkNL0XcvkGAz5XgIhAKRNuaqa30Uh0bV4uP5yWZ+LmPeI39NJaPIE7gB9apcs"}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"cmugla@gmail.com","name":"cmugla"},{"email":"derickbailey@gmail.com","name":"derickbailey"},{"email":"drbaxter821@gmail.com","name":"drbaxter821"},{"email":"emrebsonmez@gmail.com","name":"emrebsonmez"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"hamid.aghdaee@gmail.com","name":"hamidagh"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"jimmyhsu+npm@live.com","name":"jimmyhsu"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"tech-admin@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.9.0_1547840946372_0.9258975381709185"},"_hasShrinkwrap":false},"0.10.0":{"name":"speccy","version":"0.10.0","description":"An OpenAPI v3.0 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"jest --coverage"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","json-schema-to-openapi-schema":"^0.3.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.3.0","node-readfiles":"^0.2.0","oas-linter":"^3.0.0","oas-resolver":"^2.0.0","oas-validator":"^3.0.1","redoc":"v2.0.0-rc.8-1","yaml":"^1.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.5","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","jest":"^24.1.0","mock-stdin":"^0.3.1","nock":"^10.0.0"},"gitHead":"3c6f09e162f6cc2a80174d5e7b97b0e4c74c0ed5","_id":"speccy@0.10.0","_npmVersion":"6.4.1","_nodeVersion":"8.11.4","_npmUser":{"name":"djtarazona","email":"me@djtarazona.com"},"dist":{"integrity":"sha512-xIZl42MvMLfohh+PN0pDyagGEw0+I0lRIcLcKads9BtwlWui+ni/vkNFloESR3mA49aUYRXeC5+KP6gGbo+z5Q==","shasum":"d0e14420854884e159f8ac7b929650a3a09b7d21","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.10.0.tgz","fileCount":213,"unpackedSize":3786319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4FbtCRA9TVsSAnZWagAAg7EP/3cOSCfqKYQxVUVDScJQ\nA4EltPOJkzT41slk1zth4UWnM3KkhE3xOnM62nIdmcS4AD5Gmetf4xdNhaOE\nvyDIvKXDVNWX36tPyxRpifSknyrERN3HLpg4V+J+XZiqH3PfL5L/UNJYC2JT\n0N+ViasxF+/5vsQr367cRrcSaQM98lmiQVeB7YtaqwnnosQMnYyIXbMHUv6n\nEE0T16lL9QBDu2bpdk5mQCeHuAiZDMo2DOoad3tHZbvPlXiFwf/34/vAifgK\nUs8OQ3rXHjZlRLsfgHAMskwcTPYQA0XLzygi26WBQVgOEJek1gzDDp1mX4/A\ng9/iBSDAd+hS7iTo6QJOnMjvzGct0Ecz4duebAilQbqyIZKeHumwlc/8HDHz\nqjCb51cHgDP2aRYYBVwflZA0B33t+aQX8CmyTujYNgf0dNexwnuO1oHmmDn5\ni6axorXuwSb8BmUbMscJ4+H5Dw9f0y1xvrPw1pK4WzRJj1NWuodKtPJ0emye\neIrBWVFdiBNBVyHJJPi70VhJcGbUBT6atXKGtPeerun/OeuzeDQW19dp+ETm\nF9RaGR3t5F1A+2Go7YJd+xfKQ2Nm4ShOyCaBCi1QipgY9RMws0lYWM24NgpH\n5IYtRCAUXSwRGmWq8KnZWeEWw5LhDNj+zuO/AqrBep6b0rquJwK8N09KX/yu\nJe7s\r\n=Gigh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC//nkcuMFhj3rvOwtJVtJE7UO/k3+0nicljbR/EwFtdAIhAODfwow70h+oc0VqT30e3Fu63PrpoBLCeISrPOCNbzG+"}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"alexbryan01@gmail.com","name":"alexsbryan"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"brian.mcgough@wework.com","name":"bmcgough-wework"},{"email":"cmugla@gmail.com","name":"cmugla"},{"email":"connor.carpenter@wework.com","name":"connorcarpenter-wework"},{"email":"me@djtarazona.com","name":"djtarazona"},{"email":"emrebsonmez@gmail.com","name":"emrebsonmez"},{"email":"gilad.bar@wework.com","name":"giladbar"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"hamid.aghdaee@gmail.com","name":"hamidagh"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"iainmcgin@google.com","name":"iainmcgin"},{"email":"jasonnoahchoi@gmail.com","name":"jasonnoahchoi"},{"email":"jimmyhsu+npm@live.com","name":"jimmyhsu"},{"email":"vamsee.lakamsani@wework.com","name":"lakamsani"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"codreanu.narcisa@yahoo.com","name":"narcisacodreanu"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"smythey21@gmail.com","name":"smythey21"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"tyler.elko@wework.com","name":"telkowework"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"tech-admin@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"},{"email":"me@weiweiwu.me","name":"wuweiweiwu"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.10.0_1558206189305_0.036635995543044864"},"_hasShrinkwrap":false},"0.10.1":{"name":"speccy","version":"0.10.1","description":"An OpenAPI v3.0 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"jest --coverage"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","json-schema-to-openapi-schema":"^0.3.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.3.0","node-readfiles":"^0.2.0","oas-linter":"^3.0.0","oas-resolver":"^2.0.0","oas-validator":"^3.0.1","redoc":"v2.0.0-rc.8-1","yaml":"^1.2.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.5","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","jest":"^24.1.0","mock-stdin":"^0.3.1","nock":"^10.0.0"},"gitHead":"c32a5f7e2df48ee04b7b38389c955c4771b2922b","_id":"speccy@0.10.1","_npmVersion":"6.4.1","_nodeVersion":"8.11.4","_npmUser":{"name":"djtarazona","email":"me@djtarazona.com"},"dist":{"integrity":"sha512-g5nX5sT8dwZYSPt25+Ct3zGX6tn8vvrDpyDP5x0owcIPG8K1tx5yMQ6uUg5IL9peOr2hlA9BgvI50x/UtLAjjQ==","shasum":"7946dc905ac58fd624dad7445abc511033af2624","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.10.1.tgz","fileCount":213,"unpackedSize":3786418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4GeUCRA9TVsSAnZWagAATwoP/iNe6fa7TRxY8+1blF9B\nZ3zDbibrtSaU5vISlUF2asV3eI1rfu0ywEIJLr/ammKQ14eYIjvHFnzEQ/X4\nZAWALu8nOLllY1DqkjQJXzv0PNJs706mzN4rfSw8SqLlj+A5BlVLy/YqpRaI\n0kFQdNxXQ87LIAPbYvmmisoS9D/X2utO5KhLmLcpP66LyIIBrlACU0sTIY2H\ni1SV1nLgNIUGCP1yhVbUvm2c9S4HkIhrOo8VNwYEhQoTnSEwE83ihkG4YZS+\n2xDdiwaTCkQ++46O561l4Rumku/0fAYyQIpEu+tDZpoOxGbCS7PEJvUmqjr+\nkwvQ5ycJfL9uBfbF5ih5MP/fRARTj9wPeZpxxb7GX7WLoyWH/6FCUeYn5s+v\nCbOv0wHqeIAjYMs16z1NpL6BsoKCAJ12UrHy53vISEgOiSffBohF71Tf5UMX\nOFYQZf4JDIZndkhLVKfyJQb53kU60f2Ymp1yXQV941y+qxW+j1Y3HYECMgeb\naYB15dT/TofhxKde35jgX+93exOQWb6Ep39/EPzn9kk/AyELdu/kmhNeqqlo\nXV6DsruBHkRpSohIbkB7+cAHFE/CYE/816tqBiTKc5L6GR3krkCxLH8FNf0O\nvHOKw779YanBIOEw+/LE1w6IEpntOdPdAFsTHFAjBunMr7oe1fiZ/c47zdQ0\nJ2wQ\r\n=P1rZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC40ZJLuCFMFOWLXBLXd/XouC6OFoYBzmG+XyZ29UXX+AIhALsIDLG68Z+ynGWDyvvjn1SeaFG7tVTrBPFSxV/LpWqM"}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"alexbryan01@gmail.com","name":"alexsbryan"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"brian.mcgough@wework.com","name":"bmcgough-wework"},{"email":"cmugla@gmail.com","name":"cmugla"},{"email":"connor.carpenter@wework.com","name":"connorcarpenter-wework"},{"email":"me@djtarazona.com","name":"djtarazona"},{"email":"emrebsonmez@gmail.com","name":"emrebsonmez"},{"email":"gilad.bar@wework.com","name":"giladbar"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"hamid.aghdaee@gmail.com","name":"hamidagh"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"iainmcgin@google.com","name":"iainmcgin"},{"email":"jasonnoahchoi@gmail.com","name":"jasonnoahchoi"},{"email":"jimmyhsu+npm@live.com","name":"jimmyhsu"},{"email":"vamsee.lakamsani@wework.com","name":"lakamsani"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"codreanu.narcisa@yahoo.com","name":"narcisacodreanu"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"smythey21@gmail.com","name":"smythey21"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"tyler.elko@wework.com","name":"telkowework"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"tech-admin@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"},{"email":"me@weiweiwu.me","name":"wuweiweiwu"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.10.1_1558210451672_0.08705414095711195"},"_hasShrinkwrap":false},"0.11.0":{"name":"speccy","version":"0.11.0","description":"An OpenAPI v3.0 development workflow assistant","homepage":"https://speccy.io/","bin":{"speccy":"./speccy.js"},"scripts":{"test":"jest --coverage"},"preferGlobal":true,"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"license":"MIT","bugs":{"url":"https://github.com/wework/speccy/issues"},"keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"dependencies":{"commander":"^2.18.0","ejs":"^2.5.2","express":"^4.14.0","json-schema-to-openapi-schema":"^0.3.0","nconf":"^0.10.0","nconf-yaml":"^1.0.2","node-fetch":"^2.3.0","node-readfiles":"^0.2.0","oas-linter":"^3.0.0","oas-resolver":"^2.2.4","oas-validator":"^3.0.1","redoc":"v2.0.0-rc.8-1","yaml":"^1.5.0"},"devDependencies":{"babel-core":"^6.24.1","babel-loader":"^8.0.5","babel-preset-es2015":"^6.24.1","coveralls":"^3.0.0","jest":"^24.1.0","mock-stdin":"^0.3.1","nock":"^10.0.0"},"gitHead":"d65271d16bc5befa1468a2e42f25fcd3eb3b78ef","_id":"speccy@0.11.0","_nodeVersion":"8.11.4","_npmVersion":"6.9.0","dist":{"integrity":"sha512-f9XXngfae43WR9uz8m3yk935nsJIJH1YaRNNjEYqF+uL3yNlabFgixPKncJKXT2LfiMhhszwVSgrDgUaUvGBVQ==","shasum":"8edcb76d3ebc146ae39a44f5ed095bd326fb07ff","tarball":"https://registry.npmjs.org/speccy/-/speccy-0.11.0.tgz","fileCount":214,"unpackedSize":3842832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdBvTrCRA9TVsSAnZWagAAMCsP/3ZYIQ+kkZ33O+MKaX6t\no3lLv78n9jTkYTteVopc4FoIZY5yglKtZkw83L9x2Y7fVs03eK8fCgfDj3dA\nOnud5oFg6kFcT3kg2PCI8yjjoBvHatfDC5FaxgQvTpjOk7Z/qBVaPEUxlQQS\nfN85Dutyh74fqzvN3RPslxZAXerydL6dNmrqRKz//P3MtqQubydjvqTN3Lp1\npsAK+l4nOF5qrKbJyVRhZyMbFXHnaxDp4vxbtgxR4hAD4j8s7GJXc1LSy7lH\n4yTel4lcI10bFTQtxzKOpYzLo12JtI6Ok62AWw3kbomqVuD09C0yrDdHAcNA\ntfycjG5EK2b+UYc/oDclHxyQa/Uld6kRBGbEhCkzdVPQ4yFdi6UmWjIFpKIq\ncbz9xiNBpY8oLgfUH/FSxdmV/4e38hgM2GXTW5SqWKfiXFDuxhDkvBKI2Wzb\n9MLpJRych5PhHhGcESafnh3F+45zC9bVIDNvC1VMMMy4q0z5UqI06VZ8XJo8\niZGaymOe5FcG34qwr6f6X+7EJ0Ui3F5lFua5qJpWl/9liliyQvsuIHvilZ7K\nNL8VCWjIiQsOzZDXA+OmU0Nlk8iZpzfGDasbmlhDSYaeHUBWZGS3KPp86C81\nKpYei0lAbz1ShccAx21BDDwSsX0SnmNJu13cRFxQJOP6k9XtgCAQ4C3SCwbB\nl8xV\r\n=1OkR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDBS/ABNPQbi1imJOZeoB6EtcBpFRGDBBKLtRqL3xB2XAiAnlWAEGl46pkwgXQ9RRlCUutWAG2aN/6dkLQZT6I6Frw=="}]},"maintainers":[{"email":"adamjraider@gmail.com","name":"adamraider"},{"email":"alexbryan01@gmail.com","name":"alexsbryan"},{"email":"bethany.hyland@wework.com","name":"b-insh"},{"email":"brian.mcgough@wework.com","name":"bmcgough-wework"},{"email":"cmugla@gmail.com","name":"cmugla"},{"email":"connor.carpenter@wework.com","name":"connorcarpenter-wework"},{"email":"me@djtarazona.com","name":"djtarazona"},{"email":"emrebsonmez@gmail.com","name":"emrebsonmez"},{"email":"gilad.bar@wework.com","name":"giladbar"},{"email":"glosch00@gmail.com","name":"glosch"},{"email":"hello@goliatone.com","name":"goliatone"},{"email":"hamid.aghdaee@gmail.com","name":"hamidagh"},{"email":"i8ramin@gmail.com","name":"i8ramin"},{"email":"iainmcgin@google.com","name":"iainmcgin"},{"email":"jasonnoahchoi@gmail.com","name":"jasonnoahchoi"},{"email":"jimmyhsu+npm@live.com","name":"jimmyhsu"},{"email":"kaushal.saraf@wework.com","name":"kaushalsaraf-weworker"},{"email":"vamsee.lakamsani@wework.com","name":"lakamsani"},{"email":"naftalilubin@gmail.com","name":"maniator"},{"email":"max@carrotcreative.com","name":"maxerogers"},{"email":"mhotwagner@gmail.com","name":"mhotwagnerr"},{"email":"mryave@gmail.com","name":"mryave"},{"email":"codreanu.narcisa@yahoo.com","name":"narcisacodreanu"},{"email":"me@philsturgeon.uk","name":"philsturgeon"},{"email":"richard.soni@wework.com","name":"richsoni-ww"},{"email":"smythey21@gmail.com","name":"smythey21"},{"email":"r.a.quinones@gmail.com","name":"tdurd3n"},{"email":"tyler.elko@wework.com","name":"telkowework"},{"email":"axel.esquite@wework.com","name":"weaxel"},{"email":"tech-admin@wework.com","name":"wework-dev"},{"email":"digital-growth-eng@wework.com","name":"wework-growth"},{"email":"me@weiweiwu.me","name":"wuweiweiwu"}],"_npmUser":{"name":"djtarazona","email":"me@djtarazona.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/speccy_0.11.0_1560737002583_0.5648111055184843"},"_hasShrinkwrap":false}},"readme":"# speccy\n\n[![CircleCI](https://circleci.com/gh/wework/speccy.svg?style=svg)](https://circleci.com/gh/wework/speccy)\n[![Coverage Status](https://coveralls.io/repos/github/wework/speccy/badge.svg)](https://coveralls.io/github/wework/speccy)\n[![Known Vulnerabilities](https://snyk.io/test/npm/speccy/badge.svg)](https://snyk.io/test/npm/speccy)\n\nMake sure your OpenAPI 3.0 specifications are more than just valid, make sure they're useful!\n\nTaking off from where [Mike Ralphson] started with linting in [swagger2openapi], Speccy aims to become the [rubocop] or [eslint] of OpenAPI.\n\n## Requirements\n\n- **NodeJS:** v8 - v10\n\n## OpenAPI Specification\n\nCurrently tracking [v3.0.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\nIf you want to run speccy on OpenAPI (f.k.a Swagger) v2.0 specs, run it through [swagger2openapi] first and speccy can give advice on the output.\n\n## Setup\n\nYou can install this node module via NPM or Yarn.\n\n```sh\n$ npm install speccy -g\n# or\n$ yarn global add speccy\n```\n\nAlternatively, you can use it with Docker (see \"Using Docker\" below.)\n\n## Usage\n\n```\nUsage: speccy <command>\n\n\nOptions:\n\n-V, --version              output the version number\n-c, --config [configFile]  config file (containing JSON/YAML). See README for potential values.\n-h, --help                 output usage information\n\n\nCommands:\n\nlint [options] <file-or-url>     ensure specs are not just valid OpenAPI, but lint against specified rules\nresolve [options] <file-or-url>  pull in external $ref files to create one mega-file\nserve [options] <file-or-url>    view specifications in beautiful human readable documentation\n```\n\n### Lint Command\n\nThe goal here is to sniff your files for potentially bad things. \"Bad\" is subjective, but you'll see validation errors, along with special rules for making your APIs better..\n\n```\nUsage: lint [options] <file-or-url>\n\nensure specs are not just valid OpenAPI, but lint against specified rules\n\nOptions:\n\n  -q, --quiet             reduce verbosity\n  -r, --rules [ruleFile]  provide multiple rules files\n  -s, --skip [ruleName]   provide multiple rules to skip\n  -j, --json-schema       treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose           set verbosity (use multiple times to increase level)\n  -h, --help              output usage information\n```\n\nYou'll see output such as:\n\n```\n#/info  R: info-contact  D: info object should contain contact object\n\nexpected Object {\n  version: '5.0',\n  title: 'Foo API'\n} to have property contact\n```\n\nThere are going to be different things people are interested in, so the [default rules][rules-default] suggest things we think everyone should do; adding descriptions to parameters and operations, and having some sort of contact info.\n\nThere are [strict rules][rules-strict] which demand more contact details, \"real\" domains, a license, and requires tags have a description!\n\n### Resolve Command\n\nResolving `$ref` is the art of taking multiple files and squashing them all down into one big OpenAPI file. By default it will output to stdout, but you can pass `-o` with a file name to write the file locally.\n\n```\nUsage: resolve [options] <file-or-url>\n\npull in external $ref files to create one mega-file\n\nOptions:\n\n  -o, --output <file>  file to output to\n  -q, --quiet          reduce verbosity\n  -j, --json-schema    treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose        set verbosity (use multiple times to increase level)\n  -h, --help           output usage information\n```\n\nStarting with the fantastic resolver logic form swagger2openapi, speccy has one of the most robust\nresolvers out there. It avoid cyclical dependencies (when A has a property that `$ref`s A, which in turn destroys your CPU), and all sorts of other things.\n\nThanks to the `--json-schema` switch, you can have an OpenAPI file which `$ref`s JSON Schema files (not just OpenAPI-flavoured JSON Schema), then resolve them all into one real OpenAPI file, thanks to [wework/json-schema-to-openapi-schema].\n\n### Serve Command\n\nUsing [ReDoc], speccy can offer a preview of your specifications, in human-readable format.\nIn the future we'll have speccy outlining improvements right in here, but one thing at a time.\n\n```\nUsage: serve [options] <file-or-url>\n\nview specifications in beautiful human readable documentation\n\nOptions:\n\n  -p, --port [value]  port on which the server will listen (default: 5000)\n  -q, --quiet         reduce verbosity\n  -j, --json-schema   treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n  -v, --verbose       set verbosity (use multiple times to increase level)\n  -h, --help          output usage information\n```\n\n### Config File\n\nTo avoid needing to send command line options and switches every time, a config file can be used. Create\na `speccy.yaml` in the root of your project.\n\nExample:\n```yaml\n# Convert JSON Schema-proper to OpenAPI-flavoured Schema Objects\njsonSchema: true\n# Keep the noise down\nquiet: true\n# Output a lot of information about what is happening (wont work if you have quiet on)\n# Default stdout = 1\nverbose: 2\n# Rules specific to the lint command\nlint:\n  # rules files to load\n  rules:\n  - strict\n  - ./some/local/rules.yaml\n  - https://example.org/my-rules.yaml\n  # rules to skip\n  skip:\n  - info-contact\n# Rules specific to the resolve command\nresolve:\n  output: foo.yaml\n# Rules specific to the serve command\nserve:\n  port: 8001\n```\n\n### Calling Speccy from Code\n\nNot just a command line tool, speccy can be used to normalize machine-readable specifications.\n\nThe loader object will return a promise that resolves to an object containing\nthe specification.  For example:\n\n``` javascript\nconst loader = require('speccy/lib/loader');\n\nconst options = {\n  resolve: true,   // Resolve external references\n  jsonSchema: true // Treat $ref like JSON Schema and convert to OpenAPI Schema Objects\n};\n\nloader\n  .loadSpec('path/to/my/spec', options)            // Load the spec...\n  .then(spec => console.log(JSON.stringify(spec))); // ...and print it out.\n```\n\nIf `options.resolve` is truthy, speccy will resolve _external_ references.\n\n### Using Docker\n\nTo use Speccy without installing any node/npm specific dependencies, you can run it via docker:\n\n``` shell\ndocker run wework/speccy lint https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml\n```\n\nYou can work with local files by mounting your spec and any config files to the `/project` directory when you run the container:\n\n```\ndocker run \\\n  -v openapi.yaml:/project/openapi.yaml \\\n  wework/speccy lint openapi.yaml\n```\n\nAlso, if you want to use a specific version, you can reference tags, so `docker run wework/speccy` could be `docker run wework/speccy:0`, \n`docker run wework/speccy:0.8` or `docker run wework/speccy:0.8.7`. These versions follow semantic versioning.\n\n### Using with lint-staged\n\nTo lint your specifications before committing them you can use [lint-staged](https://github.com/okonet/lint-staged) to run speccy before each commit. Just install lint-staged and husky as `devDependencies` and add the following to your `package.json`:\n\n```\n\"husky\": {\n  \"hooks\": {\n    \"pre-commit\": \"lint-staged\"\n  }\n},\n\"lint-staged\": {\n  \"*.{yml, yaml}\": [\"speccy lint openapi.yml\", \"git add\"]\n}\n```\nYou can of course adjust the file filter and the speccy command to fit your setup.\n\n## Tests\n\nTo run the test-suite:\n\n```shell\nnpm test\n```\n\n## Contributing\n\nContributions are always welcome, no matter how large or small. Before contributing, please read the [code of conduct](CODE_OF_CONDUCT.md).\n\n## Credits\n\n- [Mike Ralphson] for providing the initial linter/validator from [swagger2openapi]\n- [Roman Gotsiy] for the excellent [ReDoc]\n- [Kenta Mori] for providing the serve logic from [redocup]\n- [All Contributors][link-contributors]\n\n## License\n\n[MIT](LICENSE) except the `openapi-3.0.json` schema, which is taken from the [OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification/blob/49e784d7b7800da8732103aa3ac56bc7ccde5cfb/schemas/v3.0/schema.yaml) and the alternative `gnostic-3.0.json` schema, which is originally from [Google Gnostic](https://github.com/googleapis/gnostic/blob/master/OpenAPIv3/openapi-3.0.json). Both of these are licensed under the [Apache-2](http://www.apache.org/licenses/LICENSE-2.0) license.\n\n[Kenta Mori]: https://github.com/zoncoen/\n[Mike Ralphson]: https://twitter.com/PermittedSoc/\n[ReDoc]: https://github.com/Rebilly/ReDoc\n[Roman Gotsiy]: https://github.com/RomanGotsiy\n[eslint]: https://eslint.org/\n[link-contributors]: https://github.com/wework/speccy/graphs/contributors\n[redocup]: https://github.com/zoncoen/redocup/\n[rubocop]: https://github.com/bbatsov/rubocop\n[rules-default]: http://speccy.io/rules/1-rulesets#set-default\n[rules-strict]: http://speccy.io/rules/1-rulesets#set-strict\n[swagger2openapi]: https://github.com/Mermade/swagger2openapi/\n[wework/json-schema-to-openapi-schema]: https://github.com/wework/json-schema-to-openapi-schema\n","maintainers":[{"email":"brian.manley91@gmail.com","name":"bmanley91"},{"email":"techsourcing@wework.com","name":"techsourcing"},{"email":"tech-admin@wework.com","name":"wework-dev"},{"email":"smythey21@gmail.com","name":"smythey21"}],"time":{"modified":"2024-04-01T14:37:38.117Z","created":"2014-07-01T19:19:26.528Z","0.0.1":"2014-07-01T19:19:26.528Z","2.11.14":"2018-02-02T02:09:22.621Z","0.1.0":"2018-02-02T06:51:00.076Z","0.1.1":"2018-02-05T22:45:56.259Z","0.1.2":"2018-02-05T22:46:49.625Z","0.1.3":"2018-02-05T23:44:09.667Z","0.1.4":"2018-02-06T22:02:51.442Z","0.2.0":"2018-02-07T20:20:28.756Z","0.2.1":"2018-02-07T20:27:50.033Z","0.2.2":"2018-02-08T16:29:44.247Z","0.3.0":"2018-02-15T17:18:12.146Z","0.3.1-1":"2018-02-15T17:21:26.511Z","0.3.1-2":"2018-02-15T17:22:49.349Z","0.3.1-4":"2018-02-15T17:44:26.270Z","0.3.1-5":"2018-02-15T18:03:40.345Z","0.3.1-6":"2018-02-15T18:37:51.323Z","0.3.1":"2018-02-15T18:43:59.641Z","0.4.0":"2018-02-26T16:19:25.495Z","0.4.1":"2018-03-07T21:07:30.986Z","0.5.0":"2018-03-09T18:51:44.945Z","0.5.1":"2018-03-27T20:36:47.238Z","0.5.2":"2018-03-27T21:17:23.579Z","0.5.3-1":"2018-03-29T18:17:32.085Z","0.5.3":"2018-04-02T17:11:08.550Z","0.5.4-1":"2018-04-03T19:07:18.582Z","0.5.4-2":"2018-04-03T21:58:43.028Z","0.5.4-3":"2018-04-03T22:00:11.778Z","0.5.4":"2018-04-04T16:17:10.926Z","0.6.0-dev":"2018-04-06T16:25:11.269Z","0.6.0-2":"2018-04-13T14:19:52.185Z","0.6.0-3":"2018-04-13T14:25:26.157Z","0.6.0-4":"2018-04-20T16:21:37.384Z","0.6.0-5":"2018-05-01T19:27:07.043Z","0.6.0":"2018-05-04T15:03:08.642Z","0.7.0":"2018-05-10T18:40:59.044Z","0.7.1":"2018-05-23T14:31:19.397Z","0.7.2":"2018-05-31T16:33:22.060Z","0.7.3":"2018-06-21T19:35:43.742Z","0.8.0-dev1":"2018-06-28T21:36:21.402Z","0.8.0-dev2":"2018-07-04T19:03:15.107Z","0.8.0-dev3":"2018-07-12T21:57:47.743Z","0.8.0-dev4":"2018-07-18T16:47:12.596Z","0.8.0-beta1":"2018-07-18T17:18:05.759Z","0.8.0":"2018-08-10T00:19:07.632Z","0.8.1":"2018-08-23T15:40:51.998Z","0.8.2-1":"2018-09-14T19:05:07.776Z","0.8.2-2":"2018-09-17T17:41:58.197Z","0.8.2":"2018-09-17T18:10:09.841Z","0.8.3":"2018-10-16T19:01:50.859Z","0.8.4":"2018-10-16T19:26:56.258Z","0.8.5":"2018-11-15T22:06:31.772Z","0.8.6":"2018-12-18T20:09:15.149Z","0.8.7":"2019-01-17T21:32:13.279Z","0.9.0-1":"2019-01-18T16:34:25.755Z","0.9.0":"2019-01-18T19:49:06.544Z","0.10.0":"2019-05-18T19:03:09.509Z","0.10.1":"2019-05-18T20:14:11.839Z","0.11.0":"2019-06-17T02:03:22.855Z"},"homepage":"https://speccy.io/","keywords":["openapi","openapi3","swagger","documentation","validator","validation","resolver","lint","linter"],"repository":{"url":"git+https://github.com/wework/speccy.git","type":"git"},"author":{"name":"Phil Sturgeon","email":"phil.sturgeon@wework.com"},"bugs":{"url":"https://github.com/wework/speccy/issues"},"license":"MIT","readmeFilename":"README.md"}