{"_id":"@ecodevstack/react-native-mqtt-client","_rev":"6-206dba081f8c64508ed2f1d29a536c51","name":"@ecodevstack/react-native-mqtt-client","dist-tags":{"latest":"0.3.2"},"versions":{"0.1.0":{"name":"@ecodevstack/react-native-mqtt-client","version":"0.1.0","keywords":["react-native","ios","android"],"author":{"url":"https://github.com/cmcWebCode40?","name":"cmcwebcode40","email":"infinity_michael7@yahoo.com"},"license":"MIT","_id":"@ecodevstack/react-native-mqtt-client@0.1.0","maintainers":[{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"}],"homepage":"https://github.com/cmcWebCode40/react-native-mqtt-client#readme","bugs":{"url":"https://github.com/cmcWebCode40/react-native-mqtt-client/issues"},"dist":{"shasum":"9c2997838368e2e8e7ac0a11c2cf9d59e81cef93","tarball":"https://registry.npmjs.org/@ecodevstack/react-native-mqtt-client/-/react-native-mqtt-client-0.1.0.tgz","fileCount":30,"integrity":"sha512-dIv/ajJaL02x7m4GRs80r6EgKr11dSmmMNz+3jyq1Z9zueBknTFNsIiSVxR6S2Nk304aPvBn5XPfRKcqfthX+g==","signatures":[{"sig":"MEUCIBLWQF4T+B7LdMlkwfXRxz1TtO2oi3C4rwLHslTPZQY8AiEA3wBzd/WORoXZa/xE/pb/wYaZtI4ut0uLlMYpQyMNqFo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58504},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"a0f2dff98aae9cff6a1e93145145cfaa26d0cb94","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace react-native-mqtt-client-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/cmcWebCode40/react-native-mqtt-client.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"Mqtt client for react native mobile","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"MqttClientSpec","type":"modules","android":{"javaPackageName":"com.mqttclient"},"jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.11.0","devDependencies":{"jest":"^29.7.0","react":"19.2.0","turbo":"^2.5.6","eslint":"^9.35.0","del-cli":"^6.0.0","lefthook":"^2.0.3","prettier":"^2.8.8","@eslint/js":"^9.35.0","commitlint":"^19.8.1","release-it":"^19.0.4","typescript":"^5.9.2","@types/jest":"^29.5.14","@types/react":"^19.2.0","react-native":"0.83.0","@eslint/compat":"^1.3.2","@eslint/eslintrc":"^3.3.1","@expo/config-plugins":">=7.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","react-native-builder-bob":"^0.40.13","@react-native/babel-preset":"0.83.0","@react-native/eslint-config":"0.83.0","@commitlint/config-conventional":"^19.8.1","@release-it/conventional-changelog":"^10.0.1"},"peerDependencies":{"expo":">=50.0.0","react":"*","react-native":"*"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-mqtt-client_0.1.0_1771594422319_0.05585178822395087","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","tools":["eslint","jest","lefthook","release-it"],"version":"0.57.1","languages":"kotlin-objc"}},"0.2.0":{"name":"@ecodevstack/react-native-mqtt-client","version":"0.2.0","keywords":["react-native","ios","android"],"author":{"url":"https://github.com/cmcWebCode40?","name":"cmcwebcode40","email":"infinity_michael7@yahoo.com"},"license":"MIT","_id":"@ecodevstack/react-native-mqtt-client@0.2.0","maintainers":[{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"}],"homepage":"https://github.com/cmcWebCode40/react-native-mqtt-client#readme","bugs":{"url":"https://github.com/cmcWebCode40/react-native-mqtt-client/issues"},"dist":{"shasum":"5a674c95dc99fc9897182ccc80c32d5e54a9467e","tarball":"https://registry.npmjs.org/@ecodevstack/react-native-mqtt-client/-/react-native-mqtt-client-0.2.0.tgz","fileCount":30,"integrity":"sha512-mRlZCXO4dfkjycEHrz1NvAzR5asuLKo416Fy0yHf65bYB6KAAXeLnbG7el9iPKtCp54szcoK8h9MSJMtCaALiQ==","signatures":[{"sig":"MEYCIQDHafyrtakQdf60A2jAipM2Q2ux1lRTGe2o2tULLw2SMgIhAIj4uqDpl4KeV2sfdWXEabJOz4MVFZDGeju7SBX3Hpoq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58633},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"85d0556644f9c950cdfdb8a8113c771f01ff073e","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace react-native-mqtt-client-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/cmcWebCode40/react-native-mqtt-client.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"Mqtt client for react native mobile","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"MqttClientSpec","type":"modules","android":{"javaPackageName":"com.mqttclient"},"jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.11.0","devDependencies":{"jest":"^29.7.0","react":"19.2.0","turbo":"^2.5.6","eslint":"^9.35.0","del-cli":"^6.0.0","lefthook":"^2.0.3","prettier":"^2.8.8","@eslint/js":"^9.35.0","commitlint":"^19.8.1","release-it":"^19.0.4","typescript":"^5.9.2","@types/jest":"^29.5.14","@types/react":"^19.2.0","react-native":"0.83.0","@eslint/compat":"^1.3.2","@eslint/eslintrc":"^3.3.1","@expo/config-plugins":">=7.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","react-native-builder-bob":"^0.40.13","@react-native/babel-preset":"0.83.0","@react-native/eslint-config":"0.83.0","@commitlint/config-conventional":"^19.8.1","@release-it/conventional-changelog":"^10.0.1"},"peerDependencies":{"expo":">=50.0.0","react":"*","react-native":"*"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-mqtt-client_0.2.0_1771595499339_0.06273069057486302","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","tools":["eslint","jest","lefthook","release-it"],"version":"0.57.1","languages":"kotlin-objc"}},"0.2.1":{"name":"@ecodevstack/react-native-mqtt-client","version":"0.2.1","keywords":["react-native","mqtt","mqtt-client","iot","internet-of-things","pubsub","publish-subscribe","messaging","broker","android","ios","turbo-module","new-architecture","expo","expo-plugin","native-module","react-native-mqtt","mosquitto","hivemq","emqx","real-time","websocket","tls","ssl"],"author":{"url":"https://github.com/cmcWebCode40?","name":"cmcwebcode40","email":"infinity_michael7@yahoo.com"},"license":"MIT","_id":"@ecodevstack/react-native-mqtt-client@0.2.1","maintainers":[{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"}],"homepage":"https://github.com/cmcWebCode40/react-native-mqtt-client#readme","bugs":{"url":"https://github.com/cmcWebCode40/react-native-mqtt-client/issues"},"dist":{"shasum":"41b3595bb3ff346678f245dd728b20fefedca184","tarball":"https://registry.npmjs.org/@ecodevstack/react-native-mqtt-client/-/react-native-mqtt-client-0.2.1.tgz","fileCount":30,"integrity":"sha512-GgNXQeJVskdl6c4MZ8ikHQBXdyiwevGN+p8VtDL/XRe6YHymq6OK3N6euDDxxswhcoFYSBuuZsJqbZ2dtlifFA==","signatures":[{"sig":"MEUCIQD6QH7gW9aZg35rTwmAEjZGZtMcTenK++kAsNzNVPFjQwIgSwSgTUf/aggWWfq6w9PoEbHY3xBhf3tDokLaWfLW/FI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59118},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"300a341f0e34ea9fa0ebfbe9fa1e0eda7b95d57d","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace react-native-mqtt-client-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/cmcWebCode40/react-native-mqtt-client.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"A lightweight, high-performance MQTT client for React Native with native Android and iOS support. Supports MQTT 3.1.1, TLS/SSL, QoS 0/1/2, and Expo config plugin.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"MqttClientSpec","type":"modules","android":{"javaPackageName":"com.mqttclient"},"jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.11.0","devDependencies":{"jest":"^29.7.0","react":"19.2.0","turbo":"^2.5.6","eslint":"^9.35.0","del-cli":"^6.0.0","lefthook":"^2.0.3","prettier":"^2.8.8","@eslint/js":"^9.35.0","commitlint":"^19.8.1","release-it":"^19.0.4","typescript":"^5.9.2","@types/jest":"^29.5.14","@types/react":"^19.2.0","react-native":"0.83.0","@eslint/compat":"^1.3.2","@eslint/eslintrc":"^3.3.1","@expo/config-plugins":">=7.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","react-native-builder-bob":"^0.40.13","@react-native/babel-preset":"0.83.0","@react-native/eslint-config":"0.83.0","@commitlint/config-conventional":"^19.8.1","@release-it/conventional-changelog":"^10.0.1"},"peerDependencies":{"expo":">=50.0.0","react":"*","react-native":"*"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-mqtt-client_0.2.1_1771596951173_0.21004962550851047","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","tools":["eslint","jest","lefthook","release-it"],"version":"0.57.1","languages":"kotlin-objc"}},"0.3.0":{"name":"@ecodevstack/react-native-mqtt-client","version":"0.3.0","keywords":["react-native","mqtt","mqtt-client","iot","internet-of-things","pubsub","publish-subscribe","messaging","broker","android","ios","turbo-module","new-architecture","expo","expo-plugin","native-module","react-native-mqtt","mosquitto","hivemq","emqx","real-time","websocket","tls","ssl"],"author":{"url":"https://github.com/cmcWebCode40?","name":"cmcwebcode40","email":"infinity_michael7@yahoo.com"},"license":"MIT","_id":"@ecodevstack/react-native-mqtt-client@0.3.0","maintainers":[{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"}],"homepage":"https://github.com/cmcWebCode40/react-native-mqtt-client#readme","bugs":{"url":"https://github.com/cmcWebCode40/react-native-mqtt-client/issues"},"dist":{"shasum":"9afe9de6c2258299e9a8c488dcf047a88e867395","tarball":"https://registry.npmjs.org/@ecodevstack/react-native-mqtt-client/-/react-native-mqtt-client-0.3.0.tgz","fileCount":28,"integrity":"sha512-QS8qkicoCPDs3DTkjKU2d1GGvwUzvVIujcBqVBrCDDPooadkbgbjpAaCsmEcbkr3cr7GRNrhXw5jpjX2E41HEg==","signatures":[{"sig":"MEQCIAl7zE3i5GLknHb9/Kx/G3TetEnPPRqYpEmE/qioeaawAiBSM0xafLuqwxwV3Tt4gwETJI60ghCIeuMlN4s5zH0cXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58582},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"061399658779fda1196552f6fce08026670c3310","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace react-native-mqtt-client-example","prepare":"bob build && tsc --project plugin/src/tsconfig.json","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/cmcWebCode40/react-native-mqtt-client.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"A lightweight, high-performance MQTT client for React Native with native Android and iOS support. Supports MQTT 3.1.1, TLS/SSL, QoS 0/1/2, and Expo config plugin.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"MqttClientSpec","type":"modules","android":{"javaPackageName":"com.mqttclient"},"jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.11.0","devDependencies":{"jest":"^29.7.0","react":"19.2.0","turbo":"^2.5.6","eslint":"^9.35.0","del-cli":"^6.0.0","lefthook":"^2.0.3","prettier":"^2.8.8","@eslint/js":"^9.35.0","commitlint":"^19.8.1","release-it":"^19.0.4","typescript":"^5.9.2","@types/jest":"^29.5.14","@types/react":"^19.2.0","react-native":"0.83.0","@eslint/compat":"^1.3.2","@eslint/eslintrc":"^3.3.1","@expo/config-plugins":">=7.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","react-native-builder-bob":"^0.40.13","@react-native/babel-preset":"0.83.0","@react-native/eslint-config":"0.83.0","@commitlint/config-conventional":"^19.8.1","@release-it/conventional-changelog":"^10.0.1"},"peerDependencies":{"expo":">=50.0.0","react":"*","react-native":"*"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-mqtt-client_0.3.0_1771607330598_0.803514779985619","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","tools":["eslint","jest","lefthook","release-it"],"version":"0.57.1","languages":"kotlin-objc"}},"0.3.1":{"name":"@ecodevstack/react-native-mqtt-client","version":"0.3.1","keywords":["react-native","mqtt","mqtt-client","iot","internet-of-things","pubsub","publish-subscribe","messaging","broker","android","ios","turbo-module","new-architecture","expo","expo-plugin","native-module","react-native-mqtt","mosquitto","hivemq","emqx","real-time","websocket","tls","ssl"],"author":{"url":"https://github.com/cmcWebCode40?","name":"cmcwebcode40","email":"infinity_michael7@yahoo.com"},"license":"MIT","_id":"@ecodevstack/react-native-mqtt-client@0.3.1","maintainers":[{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"}],"homepage":"https://github.com/cmcWebCode40/react-native-mqtt-client#readme","bugs":{"url":"https://github.com/cmcWebCode40/react-native-mqtt-client/issues"},"dist":{"shasum":"22580a29c26c32d9d1b12284e6d74ec167f5d18c","tarball":"https://registry.npmjs.org/@ecodevstack/react-native-mqtt-client/-/react-native-mqtt-client-0.3.1.tgz","fileCount":28,"integrity":"sha512-hQW3xauYzv5jhBwdg8/ist1CAbtyYcwYdEXqF3ItReeUHQ7nI4sFvZ4zC/YkdlAAGwNAVrW0YvFs1jeDwRGm6Q==","signatures":[{"sig":"MEYCIQCpKh3ja+qXD4VoOHNijQjpQAPcHRPrRhJv+UDrUorRFgIhAO558m+aMQKH3m3r0UXYGa8o1dC4FWp2Wp0za4LlFXdK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58535},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"3bf6b57a9366a43dc5270b4f86595d44de7f38a4","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace react-native-mqtt-client-example","prepare":"bob build && tsc --project plugin/src/tsconfig.json","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/cmcWebCode40/react-native-mqtt-client.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"A lightweight, high-performance MQTT client for React Native with native Android and iOS support. Supports MQTT 3.1.1, TLS/SSL, QoS 0/1/2, and Expo config plugin.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"MqttClientSpec","type":"modules","android":{"javaPackageName":"com.mqttclient"},"jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.11.0","devDependencies":{"jest":"^29.7.0","react":"19.2.0","turbo":"^2.5.6","eslint":"^9.35.0","del-cli":"^6.0.0","lefthook":"^2.0.3","prettier":"^2.8.8","@eslint/js":"^9.35.0","commitlint":"^19.8.1","release-it":"^19.0.4","typescript":"^5.9.2","@types/jest":"^29.5.14","@types/react":"^19.2.0","react-native":"0.83.0","@eslint/compat":"^1.3.2","@eslint/eslintrc":"^3.3.1","@expo/config-plugins":">=7.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","react-native-builder-bob":"^0.40.13","@react-native/babel-preset":"0.83.0","@react-native/eslint-config":"0.83.0","@commitlint/config-conventional":"^19.8.1","@release-it/conventional-changelog":"^10.0.1"},"peerDependencies":{"expo":">=50.0.0","react":"*","react-native":"*"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-mqtt-client_0.3.1_1771608885651_0.3179022446043842","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","tools":["eslint","jest","lefthook","release-it"],"version":"0.57.1","languages":"kotlin-objc"}},"0.3.2":{"name":"@ecodevstack/react-native-mqtt-client","version":"0.3.2","description":"A lightweight, high-performance MQTT client for React Native with native Android and iOS support. Supports MQTT 3.1.1, TLS/SSL, QoS 0/1/2, and Expo config plugin.","main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"source":"./src/index.tsx","types":"./lib/typescript/src/index.d.ts","default":"./lib/module/index.js"},"./package.json":"./package.json"},"scripts":{"example":"yarn workspace react-native-mqtt-client-example","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","prepare":"bob build && tsc --project plugin/src/tsconfig.json","typecheck":"tsc","lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","release":"release-it --only-version"},"keywords":["react-native","mqtt","mqtt-client","iot","internet-of-things","pubsub","publish-subscribe","messaging","broker","android","ios","turbo-module","new-architecture","expo","expo-plugin","native-module","react-native-mqtt","mosquitto","hivemq","emqx","real-time","websocket","tls","ssl"],"repository":{"type":"git","url":"git+https://github.com/cmcWebCode40/react-native-mqtt-client.git"},"author":{"name":"cmcwebcode40","email":"infinity_michael7@yahoo.com","url":"https://github.com/cmcWebCode40?"},"license":"MIT","bugs":{"url":"https://github.com/cmcWebCode40/react-native-mqtt-client/issues"},"homepage":"https://github.com/cmcWebCode40/react-native-mqtt-client#readme","publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@commitlint/config-conventional":"^19.8.1","@eslint/compat":"^1.3.2","@eslint/eslintrc":"^3.3.1","@eslint/js":"^9.35.0","@expo/config-plugins":">=7.0.0","@react-native/babel-preset":"0.83.0","@react-native/eslint-config":"0.83.0","@release-it/conventional-changelog":"^10.0.1","@types/jest":"^29.5.14","@types/react":"^19.2.0","commitlint":"^19.8.1","del-cli":"^6.0.0","eslint":"^9.35.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","jest":"^29.7.0","lefthook":"^2.0.3","prettier":"^2.8.8","react":"19.2.0","react-native":"0.83.0","react-native-builder-bob":"^0.40.13","release-it":"^19.0.4","turbo":"^2.5.6","typescript":"^5.9.2"},"peerDependencies":{"expo":">=50.0.0","react":"*","react-native":"*"},"peerDependenciesMeta":{"expo":{"optional":true}},"workspaces":["example"],"packageManager":"yarn@4.11.0","react-native-builder-bob":{"source":"src","output":"lib","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"codegenConfig":{"name":"MqttClientSpec","type":"modules","jsSrcsDir":"src","android":{"javaPackageName":"com.mqttclient"}},"prettier":{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"commitMessage":"chore: release ${version}","tagName":"v${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"create-react-native-library":{"type":"turbo-module","languages":"kotlin-objc","tools":["eslint","jest","lefthook","release-it"],"version":"0.57.1"},"_id":"@ecodevstack/react-native-mqtt-client@0.3.2","gitHead":"822dfaf7f3dac4c50ce84f95961f216793c48d48","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-OQMUYZHW9pTKf/wwz2prGYPf5huut0AKGMMdijJQFVhDlDcnIJ+DGZtGIDH3Q1Xo7Cvrlf0VshUCIngwWEFUIw==","shasum":"7980cd76a562b4dbb36add568c75e0af57825705","tarball":"https://registry.npmjs.org/@ecodevstack/react-native-mqtt-client/-/react-native-mqtt-client-0.3.2.tgz","fileCount":28,"unpackedSize":58627,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHOb8d8YwD7xqxxSSbFWLKM2ZMM5hZVNkrNY8f33B5i+AiBohjY3qYjvFgpvbqhkz7ezzSDK9zpy0kC1S+eGUzxCKQ=="}]},"_npmUser":{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"},"directories":{},"maintainers":[{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-mqtt-client_0.3.2_1771614826830_0.3720390296811922"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-20T13:33:42.202Z","modified":"2026-02-20T19:13:47.115Z","0.1.0":"2026-02-20T13:33:42.541Z","0.2.0":"2026-02-20T13:51:39.487Z","0.2.1":"2026-02-20T14:15:51.325Z","0.3.0":"2026-02-20T17:08:50.768Z","0.3.1":"2026-02-20T17:34:45.818Z","0.3.2":"2026-02-20T19:13:46.983Z"},"bugs":{"url":"https://github.com/cmcWebCode40/react-native-mqtt-client/issues"},"author":{"name":"cmcwebcode40","email":"infinity_michael7@yahoo.com","url":"https://github.com/cmcWebCode40?"},"license":"MIT","homepage":"https://github.com/cmcWebCode40/react-native-mqtt-client#readme","keywords":["react-native","mqtt","mqtt-client","iot","internet-of-things","pubsub","publish-subscribe","messaging","broker","android","ios","turbo-module","new-architecture","expo","expo-plugin","native-module","react-native-mqtt","mosquitto","hivemq","emqx","real-time","websocket","tls","ssl"],"repository":{"type":"git","url":"git+https://github.com/cmcWebCode40/react-native-mqtt-client.git"},"description":"A lightweight, high-performance MQTT client for React Native with native Android and iOS support. Supports MQTT 3.1.1, TLS/SSL, QoS 0/1/2, and Expo config plugin.","maintainers":[{"name":"cmcwebcode40","email":"infinity_michael@yahoo.com"}],"readme":"# @ecodevstack/react-native-mqtt-client\n\nA native MQTT client for React Native (Android & iOS) built with the **New Architecture** (Turbo Modules + Codegen). Connect, publish, subscribe, and receive real-time messages from any MQTT broker.\n\n## Features\n\n- 🔗 **Connect / Disconnect** — TCP, SSL/TLS, WebSocket, and Secure WebSocket\n- 📤 **Publish** messages with configurable QoS (0, 1, 2)\n- 📥 **Subscribe / Unsubscribe** to topics\n- 📩 **Real-time events** — receive messages, connection status changes, and errors via listeners\n- ⚡ **New Architecture** — Turbo Module with Codegen (React Native 0.76+)\n- 📱 **Expo** compatible via config plugin\n- 🤖 **Android** — Eclipse Paho MQTT\n- 🍎 **iOS** — MQTT-Client-Framework\n\n## Requirements\n\n- React Native **0.76+** (New Architecture / Turbo Modules)\n- iOS **13.0+**\n- Android **minSdkVersion 21+**\n\n## Installation\n\n```sh\nnpm install @ecodevstack/react-native-mqtt-client\n# or\nyarn add @ecodevstack/react-native-mqtt-client\n```\n\n### iOS\n\n```sh\ncd ios && pod install\n```\n\n### Expo\n\nAdd the plugin to your `app.json` or `app.config.js`:\n\n```json\n{\n  \"expo\": {\n    \"plugins\": [\"@ecodevstack/react-native-mqtt-client\"]\n  }\n}\n```\n\nThen rebuild:\n\n```sh\nnpx expo prebuild\n```\n\n## Quick Start\n\n```ts\nimport { Mqtt } from '@ecodevstack/react-native-mqtt-client';\n\n// 1. Listen for incoming messages\nconst sub = Mqtt.addListener('onMqttMessageReceived', (data) => {\n  console.log(`[${data.topic}]: ${data.message}`);\n});\n\n// 2. Connect to a broker\nawait Mqtt.connect('tcp://broker.hivemq.com:1883', '', '');\n\n// 3. Subscribe to a topic\nawait Mqtt.subscribe('my/topic');\n\n// 4. Publish a message\nawait Mqtt.publish('my/topic', 'Hello MQTT!');\n\n// 5. Clean up when done\nsub.remove();\nawait Mqtt.disconnect();\n```\n\n## Usage\n\n### Import\n\n```ts\nimport { Mqtt } from '@ecodevstack/react-native-mqtt-client';\n// Optional: import types\nimport type { MqttEvent, MqttMessage } from '@ecodevstack/react-native-mqtt-client';\n```\n\n### Connect to a Broker\n\n```ts\ntry {\n  await Mqtt.connect('tcp://broker.hivemq.com:1883', 'myUser', 'myPass');\n  console.log('Connected!');\n} catch (error) {\n  console.error('Connection failed:', error);\n}\n```\n\n**Supported URL schemes:**\n\n| Scheme | Description | Default Port |\n| --- | --- | --- |\n| `tcp://` | Plain MQTT | 1883 |\n| `ssl://` | MQTT over TLS | 8883 |\n| `ws://` | MQTT over WebSocket | 80 |\n| `wss://` | MQTT over Secure WebSocket | 443 |\n\n> Pass empty strings (`''`) for `username` and `password` to connect anonymously.\n\n### Subscribe to a Topic\n\n```ts\nawait Mqtt.subscribe('sensors/temperature', 1); // QoS 0, 1, or 2\n```\n\n### Publish a Message\n\n```ts\n// Plain text\nawait Mqtt.publish('sensors/temperature', '22.5', 1);\n\n// JSON payload\nawait Mqtt.publish('devices/status', JSON.stringify({ online: true }), 1);\n```\n\n### Unsubscribe from a Topic\n\n```ts\nawait Mqtt.unsubscribe('sensors/temperature');\n```\n\n### Disconnect\n\n```ts\nawait Mqtt.disconnect();\n```\n\n### Listen for Events\n\nRegister listeners to react to connection changes, incoming messages, and errors. Always clean up listeners when your component unmounts.\n\n```tsx\nimport { useEffect } from 'react';\nimport { Mqtt } from '@ecodevstack/react-native-mqtt-client';\nimport type { MqttMessage } from '@ecodevstack/react-native-mqtt-client';\n\nuseEffect(() => {\n  const connSub = Mqtt.addListener('onMqttConnected', (data) => {\n    console.log('Connected:', data.message);\n  });\n\n  const disconnSub = Mqtt.addListener('onMqttDisconnected', (data) => {\n    console.log('Disconnected:', data.message);\n  });\n\n  const msgSub = Mqtt.addListener('onMqttMessageReceived', (data: MqttMessage) => {\n    console.log(`[${data.topic}]: ${data.message}`);\n  });\n\n  const errSub = Mqtt.addListener('onMqttError', (data) => {\n    console.error('Error:', data.error);\n  });\n\n  const subSub = Mqtt.addListener('onMqttSubscribed', (data) => {\n    console.log('Subscribed to:', data.topic);\n  });\n\n  const unsubSub = Mqtt.addListener('onMqttUnsubscribed', (data) => {\n    console.log('Unsubscribed from:', data.topic);\n  });\n\n  return () => {\n    connSub.remove();\n    disconnSub.remove();\n    msgSub.remove();\n    errSub.remove();\n    subSub.remove();\n    unsubSub.remove();\n  };\n}, []);\n```\n\n## API Reference\n\n### `Mqtt.connect(brokerUrl, username, password)`\n\nConnects to an MQTT broker.\n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| `brokerUrl` | `string` | Broker URL (e.g. `tcp://broker.hivemq.com:1883`) |\n| `username` | `string` | Username for authentication (empty string for anonymous) |\n| `password` | `string` | Password for authentication (empty string for anonymous) |\n\n**Returns:** `Promise<string>` — resolves with a success message, rejects on failure.\n\n---\n\n### `Mqtt.disconnect()`\n\nDisconnects from the currently connected broker.\n\n**Returns:** `Promise<string>`\n\n---\n\n### `Mqtt.subscribe(topic, qos?)`\n\nSubscribes to an MQTT topic.\n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| `topic` | `string` | The MQTT topic to subscribe to |\n| `qos` | `number` | QoS level: `0`, `1`, or `2`. Default: `1` |\n\n**Returns:** `Promise<string>`\n\n---\n\n### `Mqtt.unsubscribe(topic)`\n\nUnsubscribes from an MQTT topic.\n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| `topic` | `string` | The MQTT topic to unsubscribe from |\n\n**Returns:** `Promise<string>`\n\n---\n\n### `Mqtt.publish(topic, message, qos?)`\n\nPublishes a message to an MQTT topic.\n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| `topic` | `string` | The MQTT topic to publish to |\n| `message` | `string` | The message payload |\n| `qos` | `number` | QoS level: `0`, `1`, or `2`. Default: `1` |\n\n**Returns:** `Promise<string>`\n\n---\n\n### `Mqtt.addListener(eventName, callback)`\n\nRegisters a listener for MQTT events. Returns an `EmitterSubscription` — call `.remove()` to unregister.\n\n| Event Name | Callback Payload | Description |\n| --- | --- | --- |\n| `onMqttConnected` | `{ message: string }` | Fired when connected to the broker |\n| `onMqttDisconnected` | `{ message: string }` | Fired when disconnected |\n| `onMqttMessageReceived` | `{ topic: string, message: string }` | Fired when a message is received |\n| `onMqttError` | `{ error: string }` | Fired on connection or protocol error |\n| `onMqttSubscribed` | `{ topic: string }` | Fired after successful subscribe |\n| `onMqttUnsubscribed` | `{ topic: string }` | Fired after successful unsubscribe |\n\n**Returns:** `EmitterSubscription`\n\n## Types\n\n```ts\n// Available event names\ntype MqttEvent =\n  | 'onMqttConnected'\n  | 'onMqttDisconnected'\n  | 'onMqttMessageReceived'\n  | 'onMqttError'\n  | 'onMqttSubscribed'\n  | 'onMqttUnsubscribed';\n\n// Payload shape for onMqttMessageReceived\ninterface MqttMessage {\n  topic: string;\n  message: string;\n}\n```\n\n## Full Example\n\nA complete React Native screen with connect/disconnect, subscribe/unsubscribe, publish, and a real-time log viewer:\n\n```tsx\nimport { useState, useEffect, useCallback } from 'react';\nimport { Text, View, Button, Alert, SafeAreaView, ScrollView } from 'react-native';\nimport { Mqtt, type MqttMessage } from '@ecodevstack/react-native-mqtt-client';\n\nexport default function MqttDemo() {\n  const [isConnected, setIsConnected] = useState(false);\n  const [logs, setLogs] = useState<string[]>([]);\n\n  const addLog = useCallback((log: string) => {\n    const ts = new Date().toLocaleTimeString();\n    setLogs((prev) => [`[${ts}] ${log}`, ...prev].slice(0, 50));\n  }, []);\n\n  // Register all MQTT event listeners\n  useEffect(() => {\n    const subs = [\n      Mqtt.addListener('onMqttConnected', (d) => {\n        addLog(`✅ Connected: ${d.message}`);\n        setIsConnected(true);\n      }),\n      Mqtt.addListener('onMqttDisconnected', (d) => {\n        addLog(`🔌 Disconnected: ${d.message}`);\n        setIsConnected(false);\n      }),\n      Mqtt.addListener('onMqttMessageReceived', (d: MqttMessage) => {\n        addLog(`📩 [${d.topic}]: ${d.message}`);\n      }),\n      Mqtt.addListener('onMqttError', (d) => {\n        addLog(`❌ Error: ${d.error}`);\n      }),\n      Mqtt.addListener('onMqttSubscribed', (d) => {\n        addLog(`📌 Subscribed: ${d.topic}`);\n      }),\n      Mqtt.addListener('onMqttUnsubscribed', (d) => {\n        addLog(`📌 Unsubscribed: ${d.topic}`);\n      }),\n    ];\n    return () => subs.forEach((s) => s.remove());\n  }, [addLog]);\n\n  const handleConnect = async () => {\n    try {\n      await Mqtt.connect('tcp://broker.hivemq.com:1883', '', '');\n    } catch (e: any) {\n      Alert.alert('Error', e?.message);\n    }\n  };\n\n  const handleSubscribe = async () => {\n    try {\n      await Mqtt.subscribe('test/react-native');\n    } catch (e: any) {\n      Alert.alert('Error', e?.message);\n    }\n  };\n\n  const handlePublish = async () => {\n    try {\n      await Mqtt.publish('test/react-native', JSON.stringify({ hello: 'world' }));\n      addLog('📤 Published message');\n    } catch (e: any) {\n      Alert.alert('Error', e?.message);\n    }\n  };\n\n  return (\n    <SafeAreaView style={{ flex: 1, padding: 20 }}>\n      <Text style={{ fontSize: 24, fontWeight: 'bold', marginBottom: 12 }}>\n        MQTT Client — {isConnected ? '🟢 Connected' : '🔴 Disconnected'}\n      </Text>\n\n      <View style={{ gap: 8, marginBottom: 16 }}>\n        <Button title=\"Connect\" onPress={handleConnect} disabled={isConnected} />\n        <Button title=\"Subscribe\" onPress={handleSubscribe} disabled={!isConnected} />\n        <Button title=\"Publish\" onPress={handlePublish} disabled={!isConnected} />\n        <Button title=\"Disconnect\" onPress={() => Mqtt.disconnect()} disabled={!isConnected} />\n      </View>\n\n      <ScrollView style={{ backgroundColor: '#1e1e1e', borderRadius: 8, padding: 12, flex: 1 }}>\n        {logs.map((log, i) => (\n          <Text key={i} style={{ color: '#d4d4d4', fontFamily: 'monospace', fontSize: 12, marginBottom: 4 }}>\n            {log}\n          </Text>\n        ))}\n      </ScrollView>\n    </SafeAreaView>\n  );\n}\n```\n\n> 💡 See the [`example/`](./example) directory for a more feature-rich demo app with editable broker credentials, topic management, JSON/plain-text message format toggle, and scrollable logs.\n\n## Troubleshooting\n\n### iOS build fails with pod errors\n\nMake sure your minimum iOS deployment target is **13.0+** and run:\n\n```sh\ncd ios && pod install --repo-update\n```\n\n### Events not received on iOS (New Architecture)\n\nThis library requires React Native **0.76+** with the New Architecture enabled. The iOS implementation uses TurboModule event emission which is only available under the new architecture runtime.\n\n### Connection timeout\n\n- Verify the broker URL, port, and credentials are correct.\n- Check that your device/emulator has network access to the broker.\n- For SSL/TLS connections, ensure the broker's certificate is valid.\n\n### `Mqtt.connect` rejects immediately\n\n- Ensure the broker URL includes the scheme (e.g. `tcp://`, `ssl://`).\n- Confirm the port number is correct for the chosen scheme.\n\n## Contributing\n\nSee the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.\n\n## License\n\nMIT\n\n---\n\nMade with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)\n","readmeFilename":"README.md"}