{"_id":"@arafat75/mqtt-location","_rev":"20-e20b7f6745743432e0f72b60ea960058","name":"@arafat75/mqtt-location","dist-tags":{"latest":"1.3.3"},"versions":{"1.0.0":{"name":"@arafat75/mqtt-location","version":"1.0.0","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Arafat","email":"arafat75@npmjs.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.0","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"ff335e81888726021886a16d7e4844e1d19bb33d","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.0.tgz","fileCount":7,"integrity":"sha512-Lz75YzUAbPxjxoX/xN9Wb4SxR6Z/mwzjvhFrRB3RvZwL+5h4t7LmSV31enhrBtzbe/LY9Kx5LNLFrOVixmPsUg==","signatures":[{"sig":"MEUCIQDIXMmZiWoM5jJA8idyJ3Y0D3xAykLWRqA1+1NIH9SQLgIgK825asckLUmZv7y4NYPIXnN5y4m0oFz/9dU/V9YiTWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42047},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.0_1762421919608_0.9677495227677695","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@arafat75/mqtt-location","version":"1.0.1","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Arafat","email":"arafat75@npmjs.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.1","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"6718e2ba423422234faeaaabef6650029b3c162c","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.1.tgz","fileCount":7,"integrity":"sha512-l9F0Q+yCMhAIWPRKEBPVSaYbhzFhtVMKcMBT1R+ox0tKSnVuamCqMgnop7ZFahZHr0DBU2mFvhiPI24FBeF2Sg==","signatures":[{"sig":"MEQCIBN50efCUE7zDvzFKMkfwyG1GihU5+8i49VJZgJY75iSAiAS3uKpBkdazeWkTiDDIpY69C/6vhECXHGFMXsUVCUokQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42024},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.1_1762422215995_0.1972505825653379","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@arafat75/mqtt-location","version":"1.0.2","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.2","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"8ab6c2b1e165f37b04b6cc5d64607e5ec8fc0ef2","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.2.tgz","fileCount":7,"integrity":"sha512-q7AVqENEf5HZKt0dwYN8NAKer/CPbxtDCNneFE4Ozq0aE+lZMnDKXJvwkpwWyFTDwQJkSj3dsNlUnuj4yrxQCA==","signatures":[{"sig":"MEUCIQDSFMf/TLjBLG3Jkw9kQWAeFeYonLmamKPXDKmgd06G4AIgIsAt85rsryoea5WlyWBE9KL8vNBAUPsQDCW2v5oopIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42038},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.2_1762425272228_0.9541904369067904","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@arafat75/mqtt-location","version":"1.0.3","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.3","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"1ec10341a3f82533748ec63525fd7b618a96d4b3","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.3.tgz","fileCount":7,"integrity":"sha512-hlxWbg9/IeLRomPHo0cfKknRB7JDI+73YtKyNyC8YxiAlER1/tH1Lhs5mq6BZQDBZBT4NdmPoI6qg2zfJaJH1w==","signatures":[{"sig":"MEUCIQDu89Er+ZXpLp6n2yy9ptst060uxtIDffvPD2tKbyoWZwIgeaVZuVkygAFC6gfrmd8GYRsIgNGEAMiMGyTOYRj/Rd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43128},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.3_1762425630676_0.10488328704965988","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@arafat75/mqtt-location","version":"1.0.4","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.4","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"deec69540c44c109c16ebcedf22f6493d3c13e9b","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.4.tgz","fileCount":7,"integrity":"sha512-5yXlK8V9zPoG0cFCeYT0Iim7WXykOBsD9Wlnn7pA5NVz6R/wkaVASyfu/DCZ1tuRuiIz2r4QavYBIXvElWrrvA==","signatures":[{"sig":"MEUCIQCLnl4GeQBRbHoEfr8y4JPCkCjNFJHXOAfKek6JXHGOAQIgQrQ4Le9QvexvQ/t7FjyT1c1FHJkiOdEUnsMqXRGResk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43128},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.4_1762425675982_0.44051097972684605","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@arafat75/mqtt-location","version":"1.0.5","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.5","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"85f5519ea72c6e0820b6d2957146e8563ba5d883","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.5.tgz","fileCount":7,"integrity":"sha512-TB10W5C7W7x2haXAgZeZILErWrSNw4HUNYC5M3c4b7n4lt19OtjY9tBp3n6EkSIPYVqpoUYrbL9lRXTmO0s2Sw==","signatures":[{"sig":"MEYCIQCZ2b0ZItslYu3E6IvYlgi9vL9Ub/h5bkEhtywQLGI+ZQIhAO98ez+FRbp5AyYkaYJjGcZR8GHt8Zo0vSx6KevdYwXy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43135},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.5_1762425854609_0.5808297242423459","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@arafat75/mqtt-location","version":"1.0.6","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.6","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"13e615185c804c16714b502cc6af133e42ccc2d0","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.6.tgz","fileCount":7,"integrity":"sha512-AHFd86bw/mNyToF32/NGDoBlVCmHa2mQ7lidWh6qEn/qhVQ4VgwRwFW/BEuB6Wnyx6vGm3U6/ohHwiH6KK5e+Q==","signatures":[{"sig":"MEUCIBDRiniyZJPYmeB2caKg3GI0oo5UwmV3mQHv9YY4WYWyAiEAkSDFWkCWuO5b4DHGNbZbK+kRSvL65uWh9WHMyRHAYAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42540},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.6_1762426142521_0.8108485343109677","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@arafat75/mqtt-location","version":"1.0.7","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.7","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"907f0409051690203d8c130c11fb410d06d0d2c9","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.7.tgz","fileCount":7,"integrity":"sha512-JDyRrOZ+ZuChuXbuEWHR5YwmAU/LLuivvZ59xwyJSWyDBNr8oenexcnDf3WBgZSl7fb0EP/KxuXIEkY++QUXzw==","signatures":[{"sig":"MEUCIAGiYScZ1eTSNgAjHfL/w7tJWmQq7v6N9cc9uNCVdUuAAiEAiGfA53rc60PHPJYiGUrkvJHAffw4S3IfiDbC403cRjs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42950},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.7_1762427064710_0.36284568083780555","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@arafat75/mqtt-location","version":"1.0.8","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.8","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"d4a7c641a6188f941f5b7d991734d0530ec61a54","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.8.tgz","fileCount":7,"integrity":"sha512-BKsJsoaCdtaN68h/Its+Kk9TSn6XGaeSDho0qyXs+RmUVKb4/0KfqtewTR8w/hHXVi51yNx0dnYLC21ffOgBbg==","signatures":[{"sig":"MEUCIQCFno88LoG+WWAjxb2MdN5N7ysqfkKv8oeMYklGAFY0oQIgFpV/gIZKzHxOSoqFHt8O44rwWS2OXoePRAnTq4E4ShA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42915},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup src/index.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.8_1762427307547_0.5452988494569089","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@arafat75/mqtt-location","version":"1.0.9","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.9","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"923f9661630309884d6ee86cfe16e4445964e16e","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.9.tgz","fileCount":9,"integrity":"sha512-Idb45Kc7zreK8PgvXVVLOirGFOlM2UeuMDTj4OoM9E+C4fe91HCftABXM2/hXIpbRWmGy6SNGTXrb9ko3snD7Q==","signatures":[{"sig":"MEYCIQDtqNlbGHob8dCQ9d7+5w2mHlBx8AN7sdTsCqIrh4JX5QIhALyYUTVAnYskohw04emftbvn4uNMqrcqffUt/UZkLRYs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96228},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.9_1762427727901_0.04724923351788268","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@arafat75/mqtt-location","version":"1.0.10","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.10","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"858b05d493c364b490683daef3f30ab213b22920","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.10.tgz","fileCount":9,"integrity":"sha512-EHfmlJ0su+/phPce2hTC/Gg9MoXRWNfge6BZ39TO+4VHCKJ/Ao3y7LI2gaQ//59gKQvkXlZUQR53sau3FkL7gQ==","signatures":[{"sig":"MEUCIFWUmqFTvU/SwetFJWlLpm40HULR9jsT10dYDpGdR3mzAiEAmRIKCidblqyaIlQX+AnQFqaFNy5JLuWgshvFXwAST58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95771},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.10_1762427985416_0.9532565193753018","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@arafat75/mqtt-location","version":"1.0.11","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.11","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"081c2e573191e94014f9f37acb3a024749a58f97","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.11.tgz","fileCount":9,"integrity":"sha512-Pe0uyv26T3hOhIfdis/udA3Smrau0GhuN/vBWkrXf6vpgoe4gnGP/2IU4i9RvZzQu0E0C5Rphc2lDw9WfRdy5A==","signatures":[{"sig":"MEUCIBB5nJIaIBlMEpw+glLZpAlnmiHnlshfBFY7/hTa1zPxAiEAyWYEGyYMQHAdCGtL4Y4AbKdmjUwmdd/VoggXYkQ0yFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96352},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.11_1762428128839_0.5240351653536321","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@arafat75/mqtt-location","version":"1.0.12","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.12","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"a2344f75ed974aeb451e511e820e7611776d2e64","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.12.tgz","fileCount":9,"integrity":"sha512-uEyJZCi/goWgVdOnCV0zbynoQgJYRSdbS199R6KYnsjGSN01uzBKiGkAMQ5i4WTS3GK8HihbwsEkv3HXqVM7Ig==","signatures":[{"sig":"MEQCIF7on5Z/hnY5Dzt2Bkfe9MtbJ+TGvMTWVscG3TgSUurmAiBkxM9VBP5BUFVmMTVmhw6DzWv7nMrdSpREe9s/pSscKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96352},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.12_1762428196188_0.248161206666208","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@arafat75/mqtt-location","version":"1.0.13","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.0.13","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"3f60a04800ba6f3d3eab8352e3301ce1ab99f372","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.0.13.tgz","fileCount":9,"integrity":"sha512-QS6SyDNvY4yyAg5Yd4b1Q4H0r3HPTXAZ8aCOrf8+rP1mD8i6pfZStg25NF2Q3u5cPlyvuqH8q51UHEPCCL4lhA==","signatures":[{"sig":"MEUCIQDgw7rkuOXjbPuHGd0Hin14k2AQd/4WsQgSUo1wqiwOowIgazR1WMnwITpnkR2PHlO53fVkkDuzToAx4HRT3waMFNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98815},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"mqtt":"^5.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.0.13_1762428528200_0.6629899392367584","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@arafat75/mqtt-location","version":"1.1.0","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.1.0","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"63edac1d509d2133dd443815f64623267a9e2d1c","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.1.0.tgz","fileCount":9,"integrity":"sha512-FZ0gYvSLoz7arRbVFS1g+afCLidJOii2bLkpHjlB0o5pI9xo2U4wswr4TpE9npEqewesZ2j509Wzdb5Jpl2Agg==","signatures":[{"sig":"MEYCIQCsSCtF98SMbNOOL1SiTkgyGKoQLcxaxhUo2XXjWIX4IAIhAOLbYOKgtfCD8f/3rzslf8c/1A3XTY5odQs7C0z8d+5L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5486321},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","dependencies":{"mqtt":"^5.14.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.1.0_1762428763482_0.5573771789474942","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@arafat75/mqtt-location","version":"1.2.0","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossain","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.2.0","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"3a5996d7c63de75bf89c7045cc315f240a4408d9","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.2.0.tgz","fileCount":9,"integrity":"sha512-bfBq5deb16ZgeTMtH8QLjyuYMTP53KLb9ZTYXrr5tYwGZ8ayqOjxdZm8sOVi6c6KStFUlZAgueNCSHHoU2FB3Q==","signatures":[{"sig":"MEYCIQCDtoyZdtQ9KVgbA8e1fheKyKoFoW130tQRCj/ajvoi8AIhAN1RY97hdyBTzF9RkdY+NJEU1t5hQwzxNwrzGY1DnJ/N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4465689},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a1c07f1ccbc5cc32438136e59564d27ea1785646","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"_nodeVersion":"20.18.0","dependencies":{"mqtt":"^5.14.1","buffer":"^6.0.3","events":"^3.3.0","process":"^0.11.10","stream-browserify":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.2.0_1762429395487_0.752256022971832","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@arafat75/mqtt-location","version":"1.3.0","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossan","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.3.0","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"8811b18a293084950184526b0c8597c860204f3c","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.3.0.tgz","fileCount":11,"integrity":"sha512-cYEUu4M8Up5OF6Ug6+lgR+kXvSmNlGDc/RHD6PFJRtzVL10/ThS4Nnow+d9ruvJ2wsA+D5jhYpI+cw/5WNJADQ==","signatures":[{"sig":"MEQCIEyLfSpaWE8ysolyOvby12F73wufV5Xfay5qUw5RNWkEAiAknuYVFseNrK2ASVA8zBS0Rph5puIZVg2WWwD6oftAbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":962196},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lite":{"types":"./dist/index.lite.d.ts","import":"./dist/index.lite.js","require":"./dist/index.lite.cjs"}},"gitHead":"cc2bd92fd0515a1268ee96b621df37a4768cb455","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"mqtt":"^5.14.1","buffer":"^6.0.3","events":"^3.3.0","process":"^0.11.10","stream-browserify":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.3.0_1762670275915_0.4791558606979578","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@arafat75/mqtt-location","version":"1.3.1","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossan","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.3.1","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"7eedaff850b62727d48ce22f595956b6dba2da94","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.3.1.tgz","fileCount":11,"integrity":"sha512-G8T226aAyFBHWUmz5ayBlyq4hoPoxLM8nV3P2ZFOnPhxRC178CX5BiwLCrD3U4XGjlVkZO2bB8fYdLNXW6mmLw==","signatures":[{"sig":"MEYCIQDWJgsBApf4iOv7naWs+XBn2Nvo7dwb7cCKK+vYCVpKJAIhAIBsFkSL1LSTUF9lnIIlmnXSmlUQDkdTHzO9yZd7kt+e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":971363},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lite":{"types":"./dist/index.lite.d.ts","import":"./dist/index.lite.js","require":"./dist/index.lite.cjs"}},"gitHead":"cc2bd92fd0515a1268ee96b621df37a4768cb455","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"mqtt":"^5.14.1","buffer":"^6.0.3","events":"^3.3.0","process":"^0.11.10","stream-browserify":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.3.1_1762672682798_0.9176719468358903","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@arafat75/mqtt-location","version":"1.3.2","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossan","email":"arafataft7@gmail.com"},"license":"MIT","_id":"@arafat75/mqtt-location@1.3.2","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"dist":{"shasum":"3d2788c5c9d89405a158b2e92caaa9aa7356162d","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.3.2.tgz","fileCount":11,"integrity":"sha512-bPfvBQH+Dbzewd6JiaOao3CrH6XxxsEIaTkCr8/UQxmbFMFUQrgDr92gveODOATQeWVND9dnQzWZ71rfwg73Bw==","signatures":[{"sig":"MEUCIQDqPuZCCTTBo2RJgEa/wjtMtnxzZZRTTHY3SaTmAwTRKgIgavpdMDXVeBDZGN5K/dPbngpCdNYkknaQkSbMeYtD2b8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":974501},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./lite":{"types":"./dist/index.lite.d.ts","import":"./dist/index.lite.js","require":"./dist/index.lite.cjs"}},"gitHead":"0c5ae17cc2a46b5112845fc5b512063cad258311","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"_npmVersion":"10.8.2","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"mqtt":"^5.14.1","buffer":"^6.0.3","events":"^3.3.0","process":"^0.11.10","stream-browserify":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"~5.8.3","@types/react":"^19.1.8"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mqtt-location_1.3.2_1762766627059_0.2660540136586267","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@arafat75/mqtt-location","version":"1.3.3","description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup","dev":"tsup --watch","prepublishOnly":"npm run build","lint":"eslint src --ext .ts,.tsx","test":"echo \"Tests coming soon\" && exit 0"},"keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"author":{"name":"Md. Arafat Hossan","email":"arafataft7@gmail.com"},"license":"MIT","dependencies":{"buffer":"^6.0.3","events":"^3.3.0","mqtt":"^5.14.1","process":"^0.11.10","stream-browserify":"^3.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"devDependencies":{"@types/react":"^19.1.8","tsup":"^8.5.0","typescript":"~5.8.3"},"publishConfig":{"access":"public"},"_id":"@arafat75/mqtt-location@1.3.3","gitHead":"9953fd1decf458a33f603a354d93f1b320805ff2","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-c4UAg36a49dchqHbrpthsKeTV0ujo68G1iNtkOvqt+A1IUKWTNKnan2m+nB2yKZAueIk6L14sTZW/6QAzKhamw==","shasum":"6e1c110a745f767e9ef04ff231159e3465a69d39","tarball":"https://registry.npmjs.org/@arafat75/mqtt-location/-/mqtt-location-1.3.3.tgz","fileCount":7,"unpackedSize":955377,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDFTtN/5kDTiokH2vFpO3sCQG3LHKKu/fMRv/QRmfL58QIhAOPSJo1LZaT3gz3YDiu4Pwgj1BddG7hEC9M1hl96yibu"}]},"_npmUser":{"name":"arafat75","email":"arafataft7@gmail.com"},"directories":{},"maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mqtt-location_1.3.3_1763447770776_0.35257688927450315"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-06T09:38:39.509Z","modified":"2025-11-18T06:36:11.249Z","1.0.0":"2025-11-06T09:38:39.826Z","1.0.1":"2025-11-06T09:43:36.174Z","1.0.2":"2025-11-06T10:34:32.424Z","1.0.3":"2025-11-06T10:40:30.847Z","1.0.4":"2025-11-06T10:41:16.195Z","1.0.5":"2025-11-06T10:44:14.795Z","1.0.6":"2025-11-06T10:49:02.727Z","1.0.7":"2025-11-06T11:04:24.904Z","1.0.8":"2025-11-06T11:08:27.730Z","1.0.9":"2025-11-06T11:15:28.092Z","1.0.10":"2025-11-06T11:19:45.601Z","1.0.11":"2025-11-06T11:22:09.046Z","1.0.12":"2025-11-06T11:23:16.370Z","1.0.13":"2025-11-06T11:28:48.380Z","1.1.0":"2025-11-06T11:32:43.724Z","1.2.0":"2025-11-06T11:43:15.721Z","1.3.0":"2025-11-09T06:37:56.166Z","1.3.1":"2025-11-09T07:18:03.060Z","1.3.2":"2025-11-10T09:23:47.295Z","1.3.3":"2025-11-18T06:36:11.058Z"},"author":{"name":"Md. Arafat Hossan","email":"arafataft7@gmail.com"},"license":"MIT","keywords":["mqtt","location","tracking","react","hooks","react-hooks","websocket","iot","real-time","geolocation","device-tracking","barikoi","typescript"],"description":"React hooks and utilities for MQTT-based location tracking with automatic reconnection, offline detection, and TypeScript support","maintainers":[{"name":"arafat75","email":"arafataft7@gmail.com"}],"readme":"# MQTT Location Tracker for Barikoi Trace\n\nA production-ready React hook for real-time device location tracking using MQTT with Barikoi Trace. Build live tracking dashboards, fleet management apps, and location monitoring systems with zero configuration.\n\n[![npm version](https://img.shields.io/npm/v/@arafat75/mqtt-location)](https://www.npmjs.com/package/@arafat75/mqtt-location)\n[![npm downloads](https://img.shields.io/npm/dm/@arafat75/mqtt-location)](https://www.npmjs.com/package/@arafat75/mqtt-location)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/license/mit)\n[![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue)](https://www.typescriptlang.org/)\n\n---\n\n## Key Features\n\n### MQTT + React Integration\n\n- **Real-time Location Streaming** - WebSocket-based MQTT for instant updates\n- **Auto-Reconnection** - Resilient connection with exponential backoff\n- **Smart Topic Filtering** - Company, group, or device-level subscriptions\n- **State Management** - React hooks with automatic marker updates\n- **Offline Detection** - Know when devices stop transmitting\n- **Zero Configuration** - Works out-of-the-box with any MQTT broker\n\n### Technical Capabilities\n\n- **MQTT Protocol Support** - WebSocket (ws://, wss://) and native MQTT\n- **Topic Wildcards** - Full support for `+` wildcards in subscriptions\n- **Message Parsing** - Automatic normalization of location payloads\n- **TypeScript First** - Complete type definitions included\n- **React 18 & 19** - Full support for modern React features\n- **Modular Architecture** - Clean separation: Hooks → Utils → Types\n\n---\n\n## Prerequisites\n\n- **Node.js** >= 16.0.0\n- **React** >= 18.0.0 or 19.0.0\n- **Barikoi Trace** backend integration\n- **MQTT Broker** with WebSocket support (ws:// or wss://)\n- Broker credentials (host, port, username, password)\n\n> **How it works:** Barikoi Trace backend publishes location data to your MQTT broker, and this React hook subscribes to receive live updates and display device locations in real-time.\n\n---\n\n## Quick Start\n\n### 1. Install the package\n\n```bash\nnpm install @arafat75/mqtt-location\n# or\nyarn add @arafat75/mqtt-location\n# or\npnpm add @arafat75/mqtt-location\n```\n\n### 2. Import and use\n\n```tsx\nimport { useMqttLocation } from '@arafat75/mqtt-location';\n```\n\n### 3. You're ready to track!\n\nThat's it! No additional configuration or polyfills needed. The package includes everything for browser compatibility.\n\n---\n\n## Basic Usage\n\nHere's a complete example that displays real-time device locations:\n\n```tsx\nimport React from 'react';\nimport { useMqttLocation } from '@arafat75/mqtt-location';\n\nfunction DeviceTracker() {\n  const { markers, isConnected, error } = useMqttLocation({\n    config: {\n      host: 'mqtt.example.com',    // Your MQTT broker\n      port: 8083,                    // WebSocket port (usually 8083)\n      username: 'your-username',     // Your credentials\n      password: 'your-password',\n      protocol: 'ws',                // 'ws' or 'wss' for secure\n    },\n    topicConfig: {\n      companyId: 'company-123',      // Your company/tenant ID\n    },\n    offlineThresholdMs: 10000,       // Mark offline after 10 seconds\n  });\n\n  // Show errors\n  if (error) {\n    return <div>Error: {error.message}</div>;\n  }\n\n  // Show loading state\n  if (!isConnected) {\n    return <div>Connecting to MQTT broker...</div>;\n  }\n\n  // Show devices\n  return (\n    <div>\n      <h2>Live Device Tracking ({Object.keys(markers).length} devices)</h2>\n      <ul>\n        {Object.values(markers).map((marker) => (\n          <li key={marker.deviceId}>\n            <strong>{marker.deviceId}</strong>\n            <br />\n            Location: {marker.latitude.toFixed(5)}, {marker.longitude.toFixed(5)}\n            <br />\n            Status: {marker.isOnline ? 'Online' : 'Offline'}\n            {marker.speed && <span> · Speed: {marker.speed} km/h</span>}\n          </li>\n        ))}\n      </ul>\n    </div>\n  );\n}\n\nexport default DeviceTracker;\n```\n\n**That's it!** This example connects to your MQTT broker and displays all devices with their real-time locations.\n\n---\n\n## Architecture\n\n### How It Works\n\n1. **MQTT Connection** - Hook establishes WebSocket connection to your broker\n2. **Topic Subscription** - Subscribes to location topics with wildcard support\n3. **Message Processing** - Incoming MQTT messages parsed and normalized\n4. **State Updates** - React state automatically updated with new locations\n5. **Offline Detection** - Background task marks inactive devices as offline\n\n### Technical Stack\n\n- **React 18+** - Modern hooks-based API\n- **TypeScript 5.8** - Full type safety\n- **MQTT.js 5.14** - Industry-standard MQTT client\n- **tsup** - Fast TypeScript bundler with tree-shaking\n- **ESM + CJS** - Works in any JavaScript environment\n\n### Data Flow\n\n```\nMobile App/Device → Barikoi Trace Backend → MQTT Broker → WebSocket → useMqttLocation Hook\n                                                                              ↓\n                                                                      Message Parser\n                                                                              ↓\n                                                                      React State (markers)\n                                                                              ↓\n                                                                      Your UI Components\n```\n\n---\n\n## Complete Examples\n\n### Example 1: Filter by Group\n\nTrack only devices in a specific group:\n\n```tsx\nconst { markers } = useMqttLocation({\n  config: mqttConfig,\n  topicConfig: {\n    companyId: 'company-123',\n    groupId: 'fleet-a',  // Only show devices in fleet-a\n  },\n});\n```\n\n### Example 2: Track a Single Device\n\nMonitor one specific device:\n\n```tsx\nconst { markers } = useMqttLocation({\n  config: mqttConfig,\n  topicConfig: {\n    companyId: 'company-123',\n    userId: 'driver-001',  // Only track this user\n  },\n});\n```\n\n### Example 3: Handle Connection Events\n\nGet notified about connection status:\n\n```tsx\nconst { markers, isConnected } = useMqttLocation({\n  config: mqttConfig,\n  topicConfig: { companyId: 'company-123' },\n  onConnect: () => {\n    console.log('Connected to MQTT!');\n  },\n  onDisconnect: () => {\n    console.log('Disconnected from MQTT');\n  },\n  onError: (error) => {\n    console.error('MQTT Error:', error);\n  },\n  onMessage: (topic, message) => {\n    console.log('New message:', topic, message);\n  },\n});\n```\n\n### Example 4: Switch Topics Dynamically\n\nChange what you're tracking without reconnecting:\n\n```tsx\nimport { useMqttLocation, buildMqttTopic } from '@arafat75/mqtt-location';\n\nfunction DynamicTracker() {\n  const [selectedGroup, setSelectedGroup] = useState('fleet-a');\n  const { markers, switchTopic } = useMqttLocation({\n    config: mqttConfig,\n    topicConfig: { companyId: 'company-123', groupId: selectedGroup },\n  });\n\n  const handleGroupChange = async (newGroup) => {\n    setSelectedGroup(newGroup);\n    const newTopic = buildMqttTopic({\n      companyId: 'company-123',\n      groupId: newGroup,\n    });\n    await switchTopic(newTopic);\n  };\n\n  return (\n    <div>\n      <select value={selectedGroup} onChange={(e) => handleGroupChange(e.target.value)}>\n        <option value=\"fleet-a\">Fleet A</option>\n        <option value=\"fleet-b\">Fleet B</option>\n        <option value=\"fleet-c\">Fleet C</option>\n      </select>\n      {/* Display markers */}\n    </div>\n  );\n}\n```\n\n### Example 5: Integration with Barikoi Maps\n\nUse with Barikoi's map library for real-time location tracking:\n\n```tsx\nimport { useRef } from 'react';\nimport { Map, Marker, Popup } from 'react-bkoi-gl';\nimport { useMqttLocation } from '@arafat75/mqtt-location';\nimport 'react-bkoi-gl/styles';\n\nfunction LiveMap() {\n  const BARIKOI_API_KEY = 'YOUR_BARIKOI_API_KEY_HERE';\n  const mapStyle = `https://map.barikoi.com/styles/osm-liberty/style.json?key=${BARIKOI_API_KEY}`;\n  const mapRef = useRef(null);\n\n  const { markers } = useMqttLocation({\n    config: mqttConfig,\n    topicConfig: { companyId: 'company-123' },\n  });\n\n  return (\n    <div style={{ width: '100%', height: '100vh' }}>\n      <Map\n        ref={mapRef}\n        mapStyle={mapStyle}\n        style={{ width: '100%', height: '100%' }}\n        initialViewState={{\n          longitude: 90.36402,\n          latitude: 23.823731,\n          zoom: 13,\n        }}\n      >\n        {Object.values(markers).map((marker) => (\n          <div key={marker.deviceId}>\n            <Marker \n              longitude={marker.longitude} \n              latitude={marker.latitude}\n              color={marker.isOnline ? 'green' : 'red'}\n            />\n            <Popup \n              longitude={marker.longitude} \n              latitude={marker.latitude}\n            >\n              <div>\n                <strong>{marker.deviceId}</strong>\n                <br />\n                Status: {marker.isOnline ? 'Online' : 'Offline'}\n                {marker.speed && <><br />Speed: {marker.speed} km/h</>}\n              </div>\n            </Popup>\n          </div>\n        ))}\n      </Map>\n    </div>\n  );\n}\n```\n\n---\n\n## Project Structure\n\n```\nsrc/\n├── index.ts                    # Main exports\n├── hooks/\n│   └── useMqttLocation.ts      # Core React hook with MQTT integration\n├── utils/\n│   └── index.ts                # Utility functions\n│       ├── buildMqttTopic()    # Topic string builder\n│       ├── buildMqttUri()      # Broker URI constructor\n│       ├── parseLocationMessage() # Message parser & normalizer\n│       ├── checkOfflineDevices() # Offline detection\n│       ├── switchMqttSubscription() # Dynamic topic switching\n│       └── Topic parsers       # Extract IDs from topics\n└── types/\n    └── index.ts                # TypeScript definitions\n        ├── MqttMarker          # Normalized location data\n        ├── MqttConnectionConfig # Connection settings\n        ├── TopicConfig         # Topic builder config\n        └── UseMqttLocationOptions # Hook configuration\n```\n\n### Module Breakdown\n\n- **Hooks Layer** - React integration with state management\n- **MQTT Client Layer** - Connection management and message handling  \n- **Utils Layer** - Pure functions for data transformation\n- **Types Layer** - TypeScript definitions for type safety\n\n---\n\n## API Reference\n\n### `useMqttLocation(options)`\n\nThe main hook for tracking locations.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `config` | `MqttConnectionConfig` | Yes | - | MQTT broker connection details |\n| `topicConfig` | `TopicConfig` | Yes* | - | Topic configuration for company/group/user filtering |\n| `offlineThresholdMs` | `number` | No | `10000` | Milliseconds before marking device offline |\n| `autoConnect` | `boolean` | No | `true` | Connect automatically on mount |\n| `onConnect` | `function` | No | - | Callback when connected |\n| `onDisconnect` | `function` | No | - | Callback when disconnected |\n| `onError` | `function` | No | - | Callback for errors |\n| `onMessage` | `function` | No | - | Callback for raw messages |\n\n#### Returns\n\n```typescript\n{\n  markers: Record<string, MqttMarker>;  // All tracked devices\n  client: MqttClient | null;             // MQTT client instance\n  isConnected: boolean;                  // Connection status\n  isConnecting: boolean;                 // Connecting status\n  error: Error | null;                   // Last error if any\n  connect: () => void;                   // Manually connect\n  disconnect: () => void;                // Manually disconnect\n  subscribe: (topic: string) => Promise<void>;    // Subscribe to topic\n  unsubscribe: (topic: string) => Promise<void>;  // Unsubscribe from topic\n  switchTopic: (newTopic: string) => Promise<void>; // Switch subscriptions\n  clearMarkers: () => void;              // Clear all markers\n}\n```\n\n### Configuration Types\n\n#### `MqttConnectionConfig`\n\n```typescript\n{\n  host: string;              // MQTT broker hostname\n  port: number | string;     // WebSocket port (usually 8083)\n  username: string;          // Broker username\n  password: string;          // Broker password\n  protocol?: 'ws' | 'wss' | 'mqtt' | 'mqtts';  // Default: 'ws'\n  clientIdPrefix?: string;   // Prefix for generated client IDs\n  reconnectPeriod?: number;  // Reconnect delay in ms (default: 1000)\n  connectTimeout?: number;   // Connection timeout in ms (default: 4000)\n  clean?: boolean;           // Clean session flag (default: true)\n}\n```\n\n#### `TopicConfig`\n\n```typescript\n{\n  companyId: string;         // Your company/tenant ID\n  groupId?: string | null;   // Optional group filter\n  userId?: string | null;    // Optional user filter\n}\n```\n\n#### `MqttMarker`\n\n```typescript\n{\n  deviceId: string;          // Unique device identifier\n  latitude: number;          // Device latitude\n  longitude: number;         // Device longitude\n  speed?: number;            // Speed in km/h (if available)\n  altitude?: number;         // Altitude in meters (if available)\n  accuracy?: number;         // GPS accuracy in meters (if available)\n  timestamp: number;         // Last update timestamp\n  isOnline: boolean;         // Online/offline status\n  groupId?: string;          // Extracted from topic\n  companyId?: string;        // Extracted from topic\n}\n```\n\n### Utility Functions\n\nAll utilities are exported and can be used independently:\n\n#### `buildMqttTopic(config: TopicConfig): string`\n\nBuild MQTT topic from configuration.\n\n```typescript\nimport { buildMqttTopic } from '@arafat75/mqtt-location';\n\nconst topic = buildMqttTopic({\n  companyId: 'company-123',\n  groupId: 'fleet-a',\n});\n// Returns: \"company/company-123/fleet-a/+/location\"\n```\n\n#### `parseLocationMessage(message: Buffer | string, topic: string): MqttMarker | null`\n\nParse MQTT message into marker object.\n\n```typescript\nimport { parseLocationMessage } from '@arafat75/mqtt-location';\n\nconst marker = parseLocationMessage(messageBuffer, topic);\n```\n\n#### `checkOfflineDevices(markers: Record<string, MqttMarker>, thresholdMs: number)`\n\nUpdate offline status based on timestamp.\n\n```typescript\nimport { checkOfflineDevices } from '@arafat75/mqtt-location';\n\nconst updatedMarkers = checkOfflineDevices(markers, 10000);\n```\n\n#### Topic Parsers\n\nExtract information from MQTT topics:\n\n```typescript\nimport {\n  parseTopicCompanyId,\n  parseTopicGroupId,\n  parseTopicUserId,\n} from '@arafat75/mqtt-location';\n\nconst companyId = parseTopicCompanyId('company/123/fleet-a/driver-1/location');\n// Returns: '123'\n\nconst groupId = parseTopicGroupId('company/123/fleet-a/driver-1/location');\n// Returns: 'fleet-a'\n\nconst userId = parseTopicUserId('company/123/fleet-a/driver-1/location');\n// Returns: 'driver-1'\n```\n\n---\n\n## TypeScript Support\n\nThis package is written in TypeScript and includes full type definitions.\n\n### Import Types\n\n```typescript\nimport type {\n  MqttMarker,\n  MqttConnectionConfig,\n  TopicConfig,\n  UseMqttLocationOptions,\n  UseMqttLocationReturn,\n  MqttLocationMessage,\n} from '@arafat75/mqtt-location';\n```\n\n### Type-Safe Configuration\n\n```typescript\nimport { useMqttLocation } from '@arafat75/mqtt-location';\nimport type { MqttConnectionConfig, TopicConfig } from '@arafat75/mqtt-location';\n\nconst config: MqttConnectionConfig = {\n  host: 'mqtt.example.com',\n  port: 8083,\n  username: 'user',\n  password: 'pass',\n  protocol: 'ws',\n};\n\nconst topicConfig: TopicConfig = {\n  companyId: 'company-123',\n  groupId: 'fleet-a',\n};\n\nconst { markers } = useMqttLocation({ config, topicConfig });\n```\n\n\n## Troubleshooting\n\n### Common Issues and Solutions\n\n#### \"Cannot connect to broker\"\n\n**Problem:** Connection fails or times out\n\n**Solutions:**\n1. Verify your broker URL uses `ws://` (not `http://`)\n2. Check the port is correct (usually `8083` for WebSocket)\n3. Confirm username and password are correct\n4. Ensure your broker is accessible from your network\n5. Check if the broker requires SSL (`wss://` instead of `ws://`)\n\n```tsx\n// Correct\nconfig: {\n  host: 'mqtt.example.com',\n  port: 8083,\n  protocol: 'ws',\n}\n\n// Wrong\nconfig: {\n  host: 'http://mqtt.example.com',  // Don't include protocol\n  port: 1883,  // Wrong port for WebSocket\n}\n```\n\n#### \"No markers appearing\"\n\n**Problem:** Connected but no devices showing\n\n**Solutions:**\n1. Check your topic matches what devices are publishing to\n2. Verify `companyId` matches your data\n3. Look for errors in browser console\n4. Test with a wildcard topic: `company/+/+/+/location`\n\n```tsx\n// Debug with message callback\nonMessage: (topic, message) => {\n  console.log('Received:', topic, message);\n}\n```\n\n#### \"Devices showing as offline incorrectly\"\n\n**Problem:** Online devices marked offline\n\n**Solutions:**\n1. Increase `offlineThresholdMs` to match device publish frequency\n2. Check device is publishing regularly\n3. Verify timestamps in messages are recent\n\n```tsx\n// If devices publish every 30 seconds, use 60 second threshold\nofflineThresholdMs: 60000\n```\n\n#### Using Lite Bundle: \"Cannot find module 'mqtt'\"\n\n**Problem:** Lite bundle can't find MQTT\n\n**Solution:** Install mqtt separately\n\n```bash\nnpm install mqtt\n```\n\n#### Using Lite Bundle: \"Buffer is not defined\"\n\n**Problem:** Missing Node.js polyfills\n\n**Solution:** Configure your bundler (see [Lite Bundle section](#lite-bundle---for-production-optimization))\n\n#### TypeScript errors about types\n\n**Problem:** Type definitions not found\n\n**Solutions:**\n1. Ensure TypeScript version is 4.0 or higher\n2. Clear `node_modules` and reinstall\n3. Check `tsconfig.json` includes `\"node_modules/@arafat75\"`\n\n```bash\nnpm install typescript@latest --save-dev\n```\n\n### Getting Help\n\nIf you're still stuck:\n\n1. Check the [GitHub Issues](https://github.com/arafataft/mqtt-location/issues)\n2. Create a new issue with:\n   - Your code example\n   - Error messages\n   - Package version\n   - React version\n   - Bundler (Vite, Webpack, etc.)\n\n---\n\n## Barikoi Trace Topic Structure\n\nThis package is configured for Barikoi Trace's MQTT topic format:\n\n```\ncompany/{companyId}/{groupId}/{userId}/location\n```\n\n### Topic Filtering Options\n\n- **All company devices:** `company/123/+/+/location`\n- **Specific group:** `company/123/fleet-a/+/location`\n- **Specific user:** `company/123/+/driver-001/location`\n\n### Location Message Format\n\nBarikoi Trace publishes location data in this JSON format:\n\n```json\n{\n  \"device_id\": \"device-001\",\n  \"latitude\": 23.8103,\n  \"longitude\": 90.4125,\n  \"speed\": 45.5,\n  \"altitude\": 12.3,\n  \"accuracy\": 10.0,\n  \"timestamp\": 1699531200000\n}\n```\n\n**Minimum required fields:**\n- `latitude` (number)\n- `longitude` (number)\n\n**Optional fields:**\n- `device_id` or `user_id` (string) - defaults to \"unknown-device\"\n- `speed` (number) - vehicle speed\n- `altitude` (number) - elevation\n- `accuracy` (number) - GPS accuracy\n- `timestamp` (number) - Unix timestamp\n\n---\n\n## Performance Tips\n\n### 1. Filter Topics Wisely\n\nDon't subscribe to more than you need:\n\n```tsx\n// Too broad - gets all devices\ntopicConfig: { companyId: 'company-123' }\n\n// Better - gets only one group\ntopicConfig: { companyId: 'company-123', groupId: 'fleet-a' }\n```\n\n### 2. Adjust Offline Threshold\n\nMatch your device update frequency:\n\n```tsx\n// Devices update every 30s? Use 60s threshold\nofflineThresholdMs: 60000\n```\n\n### 3. Optimize Rendering\n\nUse `React.memo` for marker components:\n\n```tsx\nconst DeviceMarker = React.memo(({ marker }) => (\n  <Marker position={[marker.latitude, marker.longitude]} />\n));\n```\n\n---\n\n## Contributing\n\nContributions are welcome! Whether it's bug fixes, feature requests, or documentation improvements, we appreciate your help.\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/arafataft/mqtt-location.git\ncd mqtt-location/packages/mqtt-location\n\n# Install dependencies\nnpm install\n\n# Start development mode (watch mode)\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Run tests\nnpm test\n\n# Lint code\nnpm run lint\n```\n\n### How to Contribute\n\n1. **Fork the repository** on GitHub\n2. **Create a feature branch** (`git checkout -b feature/awesome-feature`)\n3. **Make your changes** with clear, descriptive commits\n4. **Write or update tests** if applicable\n5. **Update documentation** if you're changing functionality\n6. **Push to your fork** (`git push origin feature/awesome-feature`)\n7. **Open a Pull Request** with a clear title and description\n\n### Contribution Guidelines\n\n- Follow existing code style and conventions\n- Write meaningful commit messages\n- Add tests for new features\n- Update README.md for API changes\n- Be respectful and constructive in discussions\n\nBy contributing to this project, you agree that your contributions will be licensed under the MIT License alongside the original project. Contributors retain copyright to their contributions and are added to the list of contributors.\n\n---\n\n## Resources & Documentation\n\n### Package & Repository\n\n- [npm Package](https://www.npmjs.com/package/@arafat75/mqtt-location) - Install and version history\n- [GitHub Repository](https://github.com/arafataft/mqtt-location) - Source code and examples\n- [Report Issues](https://github.com/arafataft/mqtt-location/issues) - Bug reports and feature requests\n- [Changelog](https://github.com/arafataft/mqtt-location/releases) - Release notes and updates\n\n### MQTT Resources\n\n- [MQTT Protocol](https://mqtt.org/) - Official MQTT specification\n- [MQTT.js Documentation](https://github.com/mqttjs/MQTT.js) - JavaScript MQTT client library\n- [HiveMQ](https://www.hivemq.com/) - Popular MQTT broker with free tier\n- [Eclipse Mosquitto](https://mosquitto.org/) - Open-source MQTT broker\n\n### React & TypeScript\n\n- [React Documentation](https://react.dev/) - Official React docs\n- [TypeScript Handbook](https://www.typescriptlang.org/docs/) - TypeScript documentation\n- [React Hooks Guide](https://react.dev/reference/react) - React hooks reference\n\n---\n\n## License\n\nThis project is licensed under the MIT License - see below for details:\n\n```\nMIT License\n\nCopyright (c) 2024 Md. Arafat Hossan and contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\n### Attribution\n\nWhen using this project, please provide attribution by:\n\n1. Including the copyright notice in your project\n2. Linking back to this repository\n3. Mentioning the use of the MQTT.js library for MQTT connectivity\n\n---\n\n## Support\n\nFound this helpful? Give it a star on [GitHub](https://github.com/arafataft/mqtt-location)!\n\n### Get Help\n\n- **Email:** arafataft7@gmail.com\n- **GitHub:** [@arafataft](https://github.com/arafataft)\n- **Issues:** [Report a bug](https://github.com/arafataft/mqtt-location/issues)\n- **Discussions:** [Ask questions](https://github.com/arafataft/mqtt-location/discussions)\n\n### Stay Updated\n\n- **Watch** the repository for updates\n- **Star** to show your support\n- **Follow** [@arafataft](https://github.com/arafataft) for more projects\n\n---\n\n**Built with care for the real-time tracking and React community**\n","readmeFilename":"README.md"}