{"_id":"aedes-protocol-decoder","_rev":"6-5cfc11b2d569c78b455ef135ef63a097","name":"aedes-protocol-decoder","dist-tags":{"latest":"2.2.0"},"versions":{"1.0.0":{"name":"aedes-protocol-decoder","version":"1.0.0","description":"Aedes plugin to decode connection frame and validate proxies","main":"index.js","types":"types/index.d.ts","scripts":{"lint":"npm run lint:standard && npm run lint:typescript","lint:standard":"standard --verbose | snazzy","lint:typescript":"standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin types/**/*.d.ts","unit":"tape test.js | faucet","test":"npm run lint && npm run unit","coverage":"nyc --reporter=lcov tape test.js","test:ci":"npm run lint && npm run coverage","license-checker":"license-checker --production --onlyAllow='MIT;ISC;BSD-3-Clause;BSD-2-Clause'","release":"read -p 'GITHUB_TOKEN: ' GITHUB_TOKEN && export GITHUB_TOKEN=$GITHUB_TOKEN && release-it"},"pre-commit":["test"],"repository":{"type":"git","url":"git+https://github.com/moscajs/aedes-protocol-decoder.git"},"bugs":{"url":"http://github.com/moscajs/aedes-protocol-decoder/issues"},"engines":{"node":">=8"},"release-it":{"github":{"release":true},"git":{"tagName":"v${version}"},"hooks":{"before:init":["npm run test"]},"npm":{"publish":true}},"keywords":["mqtt","proxy","protocol","decoder","parser"],"author":{"name":"Get Large","email":"https://github.com/getlarge"},"contributors":[{"name":"Get Large","url":"https://github.com/getlarge"},{"name":"Daniel Lando","url":"https://github.com/robertsLando"}],"license":"MIT","devDependencies":{"@types/node":"^12.12.25","@typescript-eslint/eslint-plugin":"^2.17.0","@typescript-eslint/parser":"^2.17.0","aedes":"git+https://git@github.com/moscajs/aedes.git#master","faucet":"0.0.1","license-checker":"^25.0.1","mqtt":"^3.0.0","mqtt-packet":"^6.3.0","nyc":"^15.0.0","pre-commit":"^1.2.2","release-it":"^12.4.3","snazzy":"^8.0.0","standard":"^14.3.1","tape":"^4.13.0","typescript":"^3.7.5","websocket-stream":"^5.5.0"},"dependencies":{"forwarded":"^0.1.2","proxy-protocol-js":"^4.0.3"},"gitHead":"0d35379bdd7a24c2ed5cd4d4da69f7cd40df3828","homepage":"https://github.com/moscajs/aedes-protocol-decoder#readme","_id":"aedes-protocol-decoder@1.0.0","_nodeVersion":"12.14.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-nzWwSetptIFFk0gXtXBvmBPUD6HwuZKeVm/8mRJqEKfBJ4ZnvgpcO5CFwEDzTi884jOWTIBaJAWll3QLYsOCFQ==","shasum":"dfc7d6f11bdf01de95820b855ac6655db96ea75a","tarball":"https://registry.npmjs.org/aedes-protocol-decoder/-/aedes-protocol-decoder-1.0.0.tgz","fileCount":9,"unpackedSize":29159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOTuJCRA9TVsSAnZWagAALHUQAIj5TvaFcAxNmNw3jUCG\nA2zWBt/q0YRp3ieD8S14uYLCU3ZBbMg9o//rKM9AiNcCCvsVe3910ah6GcHb\nxmO50TunIRPQ1yZxn2s2ccIlrVIW0BrnwDzswfvTRz9BkSwWoQhQr20ce7Y0\n8OH2nukxVBye0gl5Bu++9JFEsDTVIA/WaRocyt51SOuF6ZqHxN8eyMLY3iYJ\nq35HqhGqgR5xLUfmvCreUx9U0jrMGet9hYXTqFcx/oeEyrGK//+2C/CkQxFx\nWIoHswrJCYNV+k4AX/Zk71+a9pJIYGOvqwZSgcufVioW6oLoCioInJWCBWyg\nEsxKmrx/PyInCBMZDLVoLY091w7KOTw+slf4Nw3Wn7Y0oZoa4D8zWuWRfScM\nlSmVykTLyusUkTub5TCwP6ZNgYsbTFtxbiI/DPo3nioaknDrOaKlH02iWF2K\npuPMHD9I1babmST5L5M/SSYe7FQo3zN7BjahbCaHyIsic6CTxCLBUBhRWKrG\nRwM+khJ4jZorVMCIgBAD9UsiT2aeqDxgdticQCe7PlesYztlA2Ek2fJZnveB\ntChU4iozWh8/Cj4jnY2ai/PUbnQW8d8G4f/SiLzU/txUmVFtyjqyE9k3CKGw\nR5tqWmdPPlGVXxSDsWBBJbjye5Kmft9RYa85ZPAdGS+HZDYQC/zS6kwIMkYk\nmfLR\r\n=O9Z1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyqKf8kB4V+tIYug26o1dm31z6BXbmX+e2jboHhixvqwIhAOaTyARYwS2K2enjDfEtspea1/3lL2uMLJH8xXmuPD9b"}]},"maintainers":[{"name":"roberts_lando","email":"daniel.sorridi@gmail.com"}],"_npmUser":{"name":"roberts_lando","email":"daniel.sorridi@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aedes-protocol-decoder_1.0.0_1580809096983_0.5967343401446739"},"_hasShrinkwrap":false},"2.0.0":{"name":"aedes-protocol-decoder","version":"2.0.0","description":"Aedes plugin to decode connection frame and validate proxies","main":"index.js","types":"types/index.d.ts","scripts":{"lint":"npm run lint:standard && npm run lint:typescript","lint:standard":"standard --verbose | snazzy","lint:typescript":"standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin types/**/*.d.ts","unit":"tape test.js | faucet","test":"npm run lint && npm run unit","coverage":"nyc --reporter=lcov tape test.js","test:ci":"npm run lint && npm run coverage","license-checker":"license-checker --production --onlyAllow='MIT;ISC;BSD-3-Clause;BSD-2-Clause'","release":"read -p 'GITHUB_TOKEN: ' GITHUB_TOKEN && export GITHUB_TOKEN=$GITHUB_TOKEN && release-it"},"pre-commit":["test"],"repository":{"type":"git","url":"git+https://github.com/moscajs/aedes-protocol-decoder.git"},"bugs":{"url":"http://github.com/moscajs/aedes-protocol-decoder/issues"},"engines":{"node":">=10"},"release-it":{"github":{"release":true},"git":{"tagName":"v${version}"},"hooks":{"before:init":["npm run test"]},"npm":{"publish":true}},"keywords":["mqtt","proxy","protocol","decoder","parser"],"author":{"name":"Get Large","email":"https://github.com/getlarge"},"contributors":[{"name":"Get Large","url":"https://github.com/getlarge"},{"name":"Daniel Lando","url":"https://github.com/robertsLando"}],"license":"MIT","devDependencies":{"@types/node":"^14.0.1","@typescript-eslint/eslint-plugin":"^2.30.0","@typescript-eslint/parser":"^2.30.0","aedes":"^0.44.0","aedes-server-factory":"git+https://git@github.com/getlarge/aedes-server-factory.git#create-server-factory","faucet":"0.0.1","license-checker":"^25.0.1","mqtt":"^4.0.0","mqtt-packet":"^6.5.0","nyc":"^15.0.0","pre-commit":"^1.2.2","release-it":"^14.0.2","snazzy":"^8.0.0","standard":"^14.3.3","tape":"^4.13.0","typescript":"^4.0.2"},"dependencies":{"forwarded":"^0.1.2","proxy-protocol-js":"^4.0.5"},"gitHead":"cda32b31958ecd0eb37db9caa947fa4ac1bcbf00","homepage":"https://github.com/moscajs/aedes-protocol-decoder#readme","_id":"aedes-protocol-decoder@2.0.0","_nodeVersion":"12.14.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-1o3PkCVhB2RhH86UotZFdPXgEXfZaft0En3Zq+hNahPwhneOGf0i71CT/UfkRZaq/umUnv2sULo6rFS5mbmViQ==","shasum":"ca7f5e99d81811546f43aca981d503ab146249a1","tarball":"https://registry.npmjs.org/aedes-protocol-decoder/-/aedes-protocol-decoder-2.0.0.tgz","fileCount":8,"unpackedSize":29006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmXH7CRA9TVsSAnZWagAA1asP/RlRcoDkfUQkouIQpARJ\nZvS7WM6euvUGo5mv1l7ByTanZXo0Kb3RiQSB5U6/htJk9dcgfL6GGWpIzR3+\nOQkvanB1AZf1Y/MHOTXhNODJAz9jK1RufH1FnemKzDKpCkvIUm3UmhMn11MZ\nCG8tsATXBmjC0GUWbCMv+Kk92aNk3U0jTQMfN2FYrf2E9z6qKnT0eUSc30MM\n6H/y4rHV71iqSI3Ur/QFAYjtqkYUArccaHdxHl2U8j6yipWDn+OY4iSm35Bi\nMuj9UWEHNlXy2kGPF2NE447hR8h1FRnvT1DEYyPUYBKnpz5WnD6kDjYPVtFH\nMJMsBgHw6Z3Lkp96sydeAKXGcmj025ZZ2j8aeBTqBTmPbbqvI7G/b3J31/wz\nBztqjGdLVU9NRXSnY/FamQrWuFliQesAZQmZLneRJ86eXzIWUxVcMb+XatDe\nkHab+kETUwYSeiH1jUVN8+zeiYWc8HHxzzkuQ8G1rcHoDR9V7u1tUgB+bFVn\naBh1YXvZ0ivU9MYGKWlQlwZ9TNxo8ahge8nGfqePYrW7g0k/9ix9Z+GW4rVw\n8e77qQ91hOGcBAXm+F+C2BNOE/vf7BTQPXOvHmikQmPgW0EZz6x+o9PAlAxa\nqIcQrIYleOrWng1tst+U508HWipYKbFba/RlaxChbyL+rB9dEgSTYfF4/Rdr\n+b+6\r\n=xohH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/LFeFfOO5bIdNjCN7xNfJkJ7+vrYV6RtijtnoLXJIyAIhAPFTdx2UyjFruFz8oF9HQay5xuTQDSUgOY7Fshw6DcSD"}]},"maintainers":[{"name":"roberts_lando","email":"daniel.sorridi@gmail.com"}],"_npmUser":{"name":"roberts_lando","email":"daniel.sorridi@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aedes-protocol-decoder_2.0.0_1603891706807_0.5293494051428032"},"_hasShrinkwrap":false},"2.0.1":{"name":"aedes-protocol-decoder","version":"2.0.1","description":"Aedes plugin to decode connection frame and validate proxies","main":"index.js","types":"types/index.d.ts","scripts":{"lint":"npm run lint:standard && npm run lint:typescript","lint:standard":"standard --verbose | snazzy","lint:typescript":"standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin types/**/*.d.ts","unit":"tape test.js | faucet","test":"npm run lint && npm run unit","coverage":"nyc --reporter=lcov tape test.js","test:ci":"npm run lint && npm run coverage","license-checker":"license-checker --production --onlyAllow='MIT;ISC;BSD-3-Clause;BSD-2-Clause'","release":"read -p 'GITHUB_TOKEN: ' GITHUB_TOKEN && export GITHUB_TOKEN=$GITHUB_TOKEN && release-it"},"pre-commit":["test"],"repository":{"type":"git","url":"git+https://github.com/moscajs/aedes-protocol-decoder.git"},"bugs":{"url":"http://github.com/moscajs/aedes-protocol-decoder/issues"},"engines":{"node":">=10"},"release-it":{"github":{"release":true},"git":{"tagName":"v${version}"},"hooks":{"before:init":["npm run test"]},"npm":{"publish":true}},"keywords":["mqtt","proxy","protocol","decoder","parser"],"author":{"name":"Get Large","email":"https://github.com/getlarge"},"contributors":[{"name":"Get Large","url":"https://github.com/getlarge"},{"name":"Daniel Lando","url":"https://github.com/robertsLando"}],"license":"MIT","devDependencies":{"@types/node":"^14.0.1","@typescript-eslint/eslint-plugin":"^2.30.0","@typescript-eslint/parser":"^2.30.0","aedes":"^0.44.0","aedes-server-factory":"git+https://git@github.com/getlarge/aedes-server-factory.git#create-server-factory","faucet":"0.0.1","license-checker":"^25.0.1","mqtt":"^4.0.0","mqtt-packet":"^6.5.0","nyc":"^15.0.0","pre-commit":"^1.2.2","release-it":"^14.2.2","snazzy":"^8.0.0","standard":"^14.3.3","tape":"^4.13.0","typescript":"^4.0.2"},"dependencies":{"forwarded":"^0.1.2","proxy-protocol-js":"^4.0.5"},"gitHead":"e5b5e3403768e5c9b714a2049296248761d72c84","homepage":"https://github.com/moscajs/aedes-protocol-decoder#readme","_id":"aedes-protocol-decoder@2.0.1","_nodeVersion":"12.19.0","_npmVersion":"6.14.10","dist":{"integrity":"sha512-aJCbOFuDDhGzO1P7kXVGbqEJ4FFHySdVVGM4puFuvCQXO5y88Uq5WDEZDva0k8e/h7eKBQrP4DvZww9Rsta0UQ==","shasum":"f7e3e23e90a1f5327ae739f143d767ddbea05671","tarball":"https://registry.npmjs.org/aedes-protocol-decoder/-/aedes-protocol-decoder-2.0.1.tgz","fileCount":8,"unpackedSize":29131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAIbeCRA9TVsSAnZWagAAVzEP/A7ToH5YGjbJABqCG1gm\nH2LEyPQWEuOMEfzPCkm1X7lrllzfPCljvE7PIARFwBolkXxbewJ8s0gHNVXZ\nugOHVeBOL31APNPuMOzUyocY9+/ECBnU34u/V48C9JV3EZ8dbH4yMhqzKMnC\nYQq0q+myNX3TPzh8C/4IivWlcWh3w/PhnWwIpbAzixhsIv60OmYDdsJ4XHAE\nvSW4gxU4c/bSxOzXp1f3CZrpkWdhU/scwmI6jK92Fb+HOmQLWyYAjgKXtgQT\nNcUGkqcn1ucAGMmQvRyrJj/EeTZZ70+/2S8Ghqp2VYD03IhAe+O+IAbIdL9K\n6vSqv/oh+gzz5UxzlYG0DYnOfDdS2BzQ/lD4Gdhpvqd9Easph5/3LFhhPZ5M\nBcyxhlQUhlWQWwxjROXFw1PNwP3Q295BXGX2EiS67RUv4s2S7lbRg8vJfTej\nvpCbUlxuCG8kooO7yhs4HuKml+boIRNRCgd6zAmIEI8mNOW5MVCC2h6wt7nR\nPB2kzqdkztsBVXhIpby4bt806Y7jCaD1l5swKuJe8QUJDy6EipjhgeKfPEPr\nePPqwYNBB58lZt2txDM2R2HJS3oOwePNu3N8IboJ4l5Mu0fZp6extnshMlKE\na+gjX+R9ESM+W/oG2yvpQQHFpIDlIAmJ5ZNQHIkNYyWthWvQ6YGxslDqwMaZ\n/o/F\r\n=Sax1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICiUl/n4Qq0S/e6EeDHDDWou1W9WQRErQh/ZyUFxLMfhAiEA+HNA5dL6efLfBAlN0bYNQsd/PQa8WzzaL6v06y8MEYQ="}]},"_npmUser":{"name":"getlarge","email":"ed@getlarge.eu"},"directories":{},"maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"},{"name":"roberts_lando","email":"daniel.sorridi@gmail.com"},{"name":"gnought","email":"gnought@gmail.com"},{"name":"getlarge","email":"ed@getlarge.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aedes-protocol-decoder_2.0.1_1610647261748_0.4812015677162622"},"_hasShrinkwrap":false},"2.1.0":{"name":"aedes-protocol-decoder","version":"2.1.0","description":"Aedes plugin to decode connection frame and validate proxies","main":"index.js","types":"types/index.d.ts","scripts":{"lint":"npm run lint:standard && npm run lint:typescript","lint:standard":"standard --verbose | snazzy","lint:typescript":"standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin types/**/*.d.ts","unit":"tape test/test.js | faucet","test":"npm run lint && npm run unit","coverage":"nyc --reporter=lcov tape test/test.js","test:ci":"npm run lint && npm run coverage","license-checker":"license-checker --production --onlyAllow='MIT;ISC;BSD-3-Clause;BSD-2-Clause'","release":"read -p 'GITHUB_TOKEN: ' GITHUB_TOKEN && export GITHUB_TOKEN=$GITHUB_TOKEN && release-it"},"pre-commit":["test"],"repository":{"type":"git","url":"git+https://github.com/moscajs/aedes-protocol-decoder.git"},"bugs":{"url":"http://github.com/moscajs/aedes-protocol-decoder/issues"},"engines":{"node":">=10"},"release-it":{"github":{"release":true},"git":{"tagName":"v${version}"},"hooks":{"before:init":["npm run test"]},"npm":{"publish":true}},"keywords":["mqtt","proxy","protocol","decoder","parser"],"author":{"name":"Get Large","email":"https://github.com/getlarge"},"contributors":[{"name":"Get Large","url":"https://github.com/getlarge"},{"name":"Daniel Lando","url":"https://github.com/robertsLando"}],"license":"MIT","devDependencies":{"@types/node":"^14.0.1","@typescript-eslint/eslint-plugin":"^4.28.0","@typescript-eslint/parser":"^4.28.0","aedes":"^0.46.0","aedes-server-factory":"0.1.3","faucet":"0.0.1","license-checker":"^25.0.1","mqtt":"^4.2.8","mqtt-packet":"^7.0.0","nyc":"^15.1.0","pre-commit":"^1.2.2","release-it":"^14.10.0","snazzy":"^9.0.0","standard":"^16.0.3","tape":"^5.2.0","typescript":"^4.3.4"},"dependencies":{"forwarded":"^0.2.0","proxy-protocol-js":"^4.0.5"},"gitHead":"ee47e7ef7a50020473643786cb262273cdff43e0","homepage":"https://github.com/moscajs/aedes-protocol-decoder#readme","_id":"aedes-protocol-decoder@2.1.0","_nodeVersion":"14.15.4","_npmVersion":"7.11.2","dist":{"integrity":"sha512-Z5PgsdOVtp2P/0Gm1xbXmTSO438oq47qXJAmhsFKdGhgSh0tYX5uizXtZbmRXO7YgZrJYbJgCR49L2XBO01CyA==","shasum":"e5bf236d74132b44985e17859710c33308759aaa","tarball":"https://registry.npmjs.org/aedes-protocol-decoder/-/aedes-protocol-decoder-2.1.0.tgz","fileCount":14,"unpackedSize":35221,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg2fGDCRA9TVsSAnZWagAAVOUP/i9vwAvYKE+7YzA5l7rg\nAtnxJIlf6ylx1dP4ZyjGmwk0ewgDt3xSwoHRTaClAlu3sqo68t2hs0a943PJ\nTAUTjhVYsin1Y5YRmV917P24cYV42OrctQZHTtVyEtbxWExol4MmY54PCtlF\n27LSXzeJISRC0xWXWU7cwP9FsX5l6C6DtUVBYvfUBiMjEobJsG/Gi3AAbVtj\nwjs6XGvcqFuMgEa6k+CvdPVOwNyMYsvj0pgmtfLdpXUaBZHSGJJepTEyBujg\nO8cbrYu0PdUHguO/Yr/tIWwmJOzMk4cYYJSFYP/fYVrpq4q8mrD0SUOhyAas\n9H918TswfSufS87LSR9j3DojO/WjzvsOmMHI/If5XxyteXBxS+2maPeoApp1\nDXUv9rdF5hXfnh8lFDfMMHvKuHiQChaVZNpjDRsgJqpzGvOGm4ZcV4b+Opie\namc4zdDzP0YtBmRZghPT9duEG+eeR9XzswAmJtu2gjmKEH5K2P+mLBZ/LiHp\nrHP2cgAiFSF73m6ImzVwDTcMYGdaUK0FBpuXXfdAo4Fbifu8HogZtjHeK8Qt\nZi5BKEmv7WZ79caD/MWq9FpRvIuuKxILgOwMwXX4aURnFF9GDYnQnXt5U8ei\n9cveN4aY6+7Bl4F7jLTV9uRb6fGcHYCg+8Qpmdu+KhAdeyYW8kQp1oM9F1LA\n3O07\r\n=VHDo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKI3ZCGpX7BNp9nLMehksqZw9IqYKGRM69W+3sRXbsDQIhAIn4sk/t6bCKok8fKPs/1RlZ9nomMybs5sqqRt1Gf/4c"}]},"_npmUser":{"name":"getlarge","email":"ed@getlarge.eu"},"directories":{},"maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"},{"name":"roberts_lando","email":"daniel.sorridi@gmail.com"},{"name":"gnought","email":"gnought@gmail.com"},{"name":"getlarge","email":"ed@getlarge.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aedes-protocol-decoder_2.1.0_1624895874876_0.579640367390742"},"_hasShrinkwrap":false},"2.2.0":{"name":"aedes-protocol-decoder","version":"2.2.0","description":"Aedes plugin to decode connection frame and validate proxies","main":"index.js","types":"types/index.d.ts","scripts":{"lint":"npm run lint:standard && npm run lint:typescript","lint:standard":"standard --verbose | snazzy","lint:typescript":"standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin types/**/*.d.ts","unit":"tape test/test.js | faucet","test":"npm run lint && npm run unit","coverage":"nyc --reporter=lcov tape test/test.js","test:ci":"npm run lint && npm run coverage","license-checker":"license-checker --production --onlyAllow='MIT;ISC;BSD-3-Clause;BSD-2-Clause'","release":"read -p 'GITHUB_TOKEN: ' GITHUB_TOKEN && export GITHUB_TOKEN=$GITHUB_TOKEN && release-it"},"pre-commit":["test"],"repository":{"type":"git","url":"git+https://github.com/moscajs/aedes-protocol-decoder.git"},"bugs":{"url":"http://github.com/moscajs/aedes-protocol-decoder/issues"},"engines":{"node":">=10"},"release-it":{"github":{"release":true},"git":{"tagName":"v${version}"},"hooks":{"before:init":["npm run test"]},"npm":{"publish":true}},"keywords":["mqtt","proxy","protocol","decoder","parser"],"author":{"name":"Edouard Maleix","email":"https://github.com/getlarge"},"contributors":[{"name":"Edouard Maleix","url":"https://github.com/getlarge"},{"name":"Daniel Lando","url":"https://github.com/robertsLando"}],"license":"MIT","devDependencies":{"@types/node":"^18.17.0","@typescript-eslint/eslint-plugin":"^6.7.0","@typescript-eslint/parser":"^6.7.0","aedes":"^0.50.0","aedes-server-factory":"0.2.1","faucet":"0.0.4","license-checker":"^25.0.1","mqtt":"^5.0.5","mqtt-packet":"^8.2.0","nyc":"^15.1.0","pre-commit":"^1.2.2","release-it":"^16.1.5","snazzy":"^9.0.0","standard":"^17.1.0","tape":"^5.6.6","typescript":"^5.2.2"},"dependencies":{"forwarded":"^0.2.0","proxy-protocol-js":"^4.0.6"},"gitHead":"0407ff740a26f617b60596b69ab1a8ae3cb13c24","homepage":"https://github.com/moscajs/aedes-protocol-decoder#readme","_id":"aedes-protocol-decoder@2.2.0","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-VeYR3Gx8KQ+VP/yX1hArwxoBeZJ3wPEg0LoLWfv6qfL/7RkClcxfOumV3nW2gCYs1a/0EMxpooZjn2nhfyFlxA==","shasum":"476351612f76dc77d24929e8a29f0cd5434a22e6","tarball":"https://registry.npmjs.org/aedes-protocol-decoder/-/aedes-protocol-decoder-2.2.0.tgz","fileCount":14,"unpackedSize":37262,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5ZThTz3AjaiLlEM2iEuKrpEI1b7965RZtek+zMnq8igIhAMuE8qHsKjEjbrQPd3hmPJOQL5F1ZQnx6UaNt0yTsSU0"}]},"_npmUser":{"name":"getlarge","email":"ed@getlarge.eu"},"directories":{},"maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"},{"name":"roberts_lando","email":"daniel.sorridi@gmail.com"},{"name":"gnought","email":"gnought@gmail.com"},{"name":"getlarge","email":"ed@getlarge.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aedes-protocol-decoder_2.2.0_1695206046042_0.8712467842073313"},"_hasShrinkwrap":false}},"time":{"created":"2020-02-04T09:38:16.982Z","1.0.0":"2020-02-04T09:38:17.073Z","modified":"2023-09-20T10:34:06.459Z","2.0.0":"2020-10-28T13:28:26.915Z","2.0.1":"2021-01-14T18:01:01.891Z","2.1.0":"2021-06-28T15:57:54.986Z","2.2.0":"2023-09-20T10:34:06.250Z"},"maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"},{"name":"roberts_lando","email":"daniel.sorridi@gmail.com"},{"name":"gnought","email":"gnought@gmail.com"},{"name":"getlarge","email":"ed@getlarge.eu"}],"description":"Aedes plugin to decode connection frame and validate proxies","homepage":"https://github.com/moscajs/aedes-protocol-decoder#readme","keywords":["mqtt","proxy","protocol","decoder","parser"],"repository":{"type":"git","url":"git+https://github.com/moscajs/aedes-protocol-decoder.git"},"contributors":[{"name":"Edouard Maleix","url":"https://github.com/getlarge"},{"name":"Daniel Lando","url":"https://github.com/robertsLando"}],"author":{"name":"Edouard Maleix","email":"https://github.com/getlarge"},"bugs":{"url":"http://github.com/moscajs/aedes-protocol-decoder/issues"},"license":"MIT","readme":"# aedes-protocol-decoder\n\n![](https://github.com/moscajs/aedes-protocol-decoder/workflows/ci/badge.svg)\n[![Dependencies Status](https://david-dm.org/moscajs/aedes-protocol-decoder/status.svg)](https://david-dm.org/moscajs/aedes-protocol-decoder)\n[![devDependencies Status](https://david-dm.org/moscajs/aedes-protocol-decoder/dev-status.svg)](https://david-dm.org/moscajs/aedes-protocol-decoder?type=dev)\n<br/>\n[![Known Vulnerabilities](https://snyk.io/test/github/moscajs/aedes-protocol-decoder/badge.svg)](https://snyk.io/test/github/moscajs/aedes-protocol-decoder)\n[![Coverage Status](https://coveralls.io/repos/moscajs/aedes-protocol-decoder/badge.svg?branch=master&service=github)](https://coveralls.io/github/moscajs/aedes-protocol-decoder?branch=master)\n[![NPM version](https://img.shields.io/npm/v/aedes-protocol-decoder.svg?style=flat)](https://www.npmjs.com/package/aedes-protocol-decoder)\n[![NPM downloads](https://img.shields.io/npm/dm/aedes-protocol-decoder.svg?style=flat)](https://www.npmjs.com/package/aedes-protocol-decoder)\n\n\n[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)\n\nProtocol decoder for Aedes MQTT Broker\n\nThe purpose of this module is to be used inside [aedes-server-factory](https://github.com/moscajs/aedes-server-factory) `bindConnection` function, which is called when the server receives a connection from client (before CONNECT packet). The client object state is in default and its connected state is false. \nThe function extract socket details and if `aedes-server-factory` `trustProxy` option is set to true, it will first parse http headers (x-real-ip | x-forwarded-for) and/or proxy protocol (v1 and v2), then passing the informations to `aedes` that will assign them to `client.connDetails`.\n\nAdditionally, if the current socket is a [TLS](https://nodejs.org/api/tls.html#tls_class_tls_tlssocket) socket, the module will extract the authorization status and the full certificate chain.\n\nThe function `protocolDecoder` and `extractSocketDetails` returns [ConnectionDetails](./types/index.d.ts), if the object contains `data` property, it will be parsed as an [mqtt-packet](https://github.com/mqttjs/mqtt-packet).\n\n## Install\n\n```bash\nnpm install aedes-protocol-decoder --save\n```\n\n## Example \n\n```js\nvar aedes = require('aedes')\nvar { protocolDecoder } = require('aedes-protocol-decoder')\nvar { createServer } = require('aedes-server-factory')\nvar port = 1883\n\nvar broker = aedes({\n\tpreConnect: function (client, packet, done) {\n\t  if (client.connDetails && client.connDetails.ipAddress) {\n\t    client.ip = client.connDetails.ipAddress\n\t  }\n\t  return done(null, true)\n\t},\n})\n\nvar server = createServer(broker, { trustProxy: true, protocolDecoder })\nserver.listen(port, function () {\n  console.log('server listening on port', port)\n})\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}