{"_id":"@offline-protocol/mesh-sdk","_rev":"57-e129588df0cd3b8a4a70c360547e991b","name":"@offline-protocol/mesh-sdk","dist-tags":{"latest":"0.27.0"},"versions":{"0.2.0":{"name":"@offline-protocol/mesh-sdk","version":"0.2.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.2.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"6da207a609bcfcbc67327757958d7ac26d61a3aa","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.2.0.tgz","fileCount":1216,"integrity":"sha512-7JdCow1jaDwDCdTj94zE3z23BZa1DfK79snpfCnVas0hnygUJaC7gsJQJMVQsYOFkhD5MDB+UQWs8Jd/kIc9fg==","signatures":[{"sig":"MEUCIQDPsUUY/VG6rv32udSuIdsHXLwrMDZzaQjcvf9y2QpQSAIgcWA0ImaInPsYC/G6AkMWlI6mNJVTfrNFgf/OSgQWIpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116361751},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"4b416d278fffd9f27a030dbb8909b31ff2cf2fdc","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.0"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.2.0_1764394289402_0.8629955902027227","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@offline-protocol/mesh-sdk","version":"0.2.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.2.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"d65a58baa841be1976eca2d3a70d5cfc93d25449","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.2.1.tgz","fileCount":1216,"integrity":"sha512-xJKSjkyiHxrGV9W7MPhj7oJcpF/5szzQOfplcD59tNZMMCrJFQfYWQfBWuHsw5kqXESM+R2L/EadpUVb2TQDQg==","signatures":[{"sig":"MEQCIEkmtDf3qgNQrSj0l+NDSlippZxkH0+KVfKv77c7uFSKAiAjaBwwC7RYJohkMd4JSkT8pqNs00MK7B60JX+Lf+wSVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116392449},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"1f6d915acba0bd510dce5306490d236eca820cb4","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.0"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.2.1_1765178582722_0.7969086079165855","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@offline-protocol/mesh-sdk","version":"0.2.2","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.2.2","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"4212fd72fe169f1530eba499aabe533fa98c7ca4","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.2.2.tgz","fileCount":1216,"integrity":"sha512-JwQvL93zd8M56SSBukHPm+d8KHtchhBw9QOWryDfamFCqJH2f6tCsbAdOsYflqGOwLqCGUKns6O5eHJcJBoQzg==","signatures":[{"sig":"MEUCIHiyZL375/4b6TFhLB8cjBqZidNB6BC3pkzqLVatopVZAiEA8afHyfM9KVwy54AGbneLQatBU38Y9mvaADrp83IvUeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116398185},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"e2acef0494de83cf3550a010b790b163650ac75b","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.0"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.2.2_1765188631341_0.6238210635109904","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@offline-protocol/mesh-sdk","version":"0.2.3","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.2.3","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"ed4e6dd3320611f315bff6e9391e9d2046c4e718","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.2.3.tgz","fileCount":1218,"integrity":"sha512-BrlEniuc4LydFIYek+rBFukjUqrS3llJcKPb96J0SfuD56m1abPD7jiv0w9OVuQzDn9gwdpKQXUbjMtsYSDvaA==","signatures":[{"sig":"MEUCIQC+8rhYsJcqvZrhrgPZnjj10sYAZuHV4lFbd0kHuoz2CQIgBlZYFfl7T5ubVuNaoAbu7cQ4HqshKHPe52od/tLio0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116488441},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"c23bac7c071bee1bb61541fbffcec28c0ed807df","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.0"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.2.3_1765228440515_0.38318611075193654","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@offline-protocol/mesh-sdk","version":"0.3.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.3.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"6ea8c428addd0b3278f9d6e6d134a0e2abb21d51","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.3.0.tgz","fileCount":1634,"integrity":"sha512-ewYEc6rOibniERmXeyn4m7zoFrOh7/0WGgzDOq8JPwxXFctWO6/OV+KgXSzDi9lqqyveOaMsdO1QOI6ZUEGuqw==","signatures":[{"sig":"MEYCIQDWvKmVUr5ExggwW6dMyBGyC2JgN4XnpXvkiYIpZnO8kgIhAP96oFjn5bZ/PD23nPgLf/rwg6Zs6kiZgtFiDOn1TXVB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208295883},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"2323f8be2cd7830bb15e509543e7d3895dac44fb","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.3.0_1766051129982_0.4723873666555971","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@offline-protocol/mesh-sdk","version":"0.3.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.3.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"910f2a0fbc2493cd9e2bfa066b692b3bdf9c71ed","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.3.1.tgz","fileCount":1549,"integrity":"sha512-0Xv5UcsytN5mM1AjR+RTXKvV70mUr1yrSK3dNV/JzeguDk0LEwheAgefghZachNqfDczyY9jCX94pbkl8lwxDw==","signatures":[{"sig":"MEUCIEEvN4d6v00MKY44Mn4IU4g9DOjpR7gD7JntxsG2TinUAiEA7ZStzIwL+FS5agTZ9kwbPX4GHxUjCEwFZOg5jGDt4hc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306427354},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"54906c15d84f051e984c27d7838d219696e17069","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"0xoff","email":"ops@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.0","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.12.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.3.1_1768803305333_0.945322641556178","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@offline-protocol/mesh-sdk","version":"0.3.2","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.3.2","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"e60b09d7972ea9025ef8aceef0295f76914b7771","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.3.2.tgz","fileCount":1550,"integrity":"sha512-hXlU4apNDQcdWjrc2Tn6bwEskbTm7Y8boUrdVOj/xeSypXmo+g3iGa04MF7kmrg/yjmwCFEHJ2TVYW92SpwBkQ==","signatures":[{"sig":"MEQCIFLEgLFNk5Mhbc5vhIQZOiqzj5AcdIibxApUDlxkAw1yAiAu+oFEnzDDMJsTqqnKNqjZkNi7nQL1jj0ZgN/z/VE06Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310425629},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"54906c15d84f051e984c27d7838d219696e17069","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"0xoff","email":"ops@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.0","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.12.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.3.2_1768968979287_0.8029777930304534","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@offline-protocol/mesh-sdk","version":"0.3.3","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.3.3","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"fa257232eeb1b30dc5c4b11c9ca96a23c3d718ca","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.3.3.tgz","fileCount":64,"integrity":"sha512-UOsmAkqKg7iEsscesnI3Q8GEgKWX4VvIFZyzSIDrEjo+wPfiz72drGHw0gA0ty8lcwDJuZ44mwDXiCou4rP6Tg==","signatures":[{"sig":"MEYCIQD8niocQAXMDZodWOiHhal17lenY4YANw/lsStZv9U1BAIhANC3dXzPYFc9Z5SG3aBmKBrsGOibYQvxNIkY7NaOEVj7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142567576},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"83e7b9d31cf8e85327fc4a8548eb0329e93f2549","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.3.3_1769588327060_0.3283448717748285","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@offline-protocol/mesh-sdk","version":"0.3.4","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.3.4","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"6e0a7fffe25b379c38e070ae7d90a9ed957466e2","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.3.4.tgz","fileCount":64,"integrity":"sha512-dA4HKm/8iH6pwbUE61pkwIOdQYd3DAZkyCBcm7ttFv/iMtJ8DbOHk/29frkbZy6UD7/OA2kgT6nf7pEF8pKvpg==","signatures":[{"sig":"MEUCIHxs/l8CfR73iG70lmoFsw4FJhuuORBLCpFcXiydBvEoAiEAzNWbAMSFMh0tNwr2RZ7D51zbQpF6mAj09nCWnzdHsa4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142904370},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"5250c3b2d6f4b4280c3e6a28a8ec9877d3335095","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.3.4_1769608633426_0.8253944776945543","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@offline-protocol/mesh-sdk","version":"0.3.5","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.3.5","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"f550478d22807adb062d907f090fc52dd213df29","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.3.5.tgz","fileCount":65,"integrity":"sha512-yCPsHPmTBDYtjlPDXOEykf2UXHVEtakmiZ0DI9Dh4xgte7pCGAReW6oJqHsD8iBwE8ZMNLtStEz4IJSPJnY1bw==","signatures":[{"sig":"MEUCIQDraVUCTijDWq922cMhAZWvPGeJt2ECl3WZSxrFGCXU6AIgWrCSeDw2xcItonQ69m3ZAOu8AFi9T0vp2S1ifMB4M4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142910804},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"204bb30cce0080b7295938f8f89ca491bbfafd66","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.3.5_1769687950139_0.09017907232791722","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@offline-protocol/mesh-sdk","version":"0.4.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.4.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"e91860457401d280a17e6146815839321cee8bee","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.4.0.tgz","fileCount":65,"integrity":"sha512-cj+oMxslft04bREFOtzO0gSYc7ebxAGytvTrhdh5TMUTOjXZ9ZeyvAnjGU0I5nV0sfCUNIVSBRmXlhF5hYoAKg==","signatures":[{"sig":"MEYCIQD1jEG4P12jleGyATSK5Oc86J0BC64688CaWqpHAL7Y7wIhALILsCMA+B/YBd0wIPNy6XF655l1eEmUKVokJSOubamU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144277712},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"ddf8cc1a7679db2c5ec1dcca0124d6cc052b73cf","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.4.0_1770029490651_0.11366968737304206","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@offline-protocol/mesh-sdk","version":"0.4.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.4.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"07a473960258bda7e4f786ee338d864643b105b6","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.4.1.tgz","fileCount":65,"integrity":"sha512-Sod3R46CrnHLGT0wyw1rmcgExU1ADgYCzEoS656cP3AsYmRmjipnGnq/Q9Qy3c8FaH/0bQsph0b+rjKkgnwftA==","signatures":[{"sig":"MEQCIE4DJnUb2+epLSFwNQbhWbsiHTXmXWZSS7bL55df8JRRAiA0ZbOH171cDMaE+S5+rDfE8/HG33oTu58EtTM8lCYGaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145137081},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"2a31ed3ff81255d4118934115a7466dfb0320e4d","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.4.1_1770387106503_0.4716739092743636","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@offline-protocol/mesh-sdk","version":"0.4.2","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.4.2","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"b082e70f0b131ae53e57a8995c629a4d4567e94d","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.4.2.tgz","fileCount":65,"integrity":"sha512-qX3bcMamsUCCU58FHMnDjYU6Ufe8l2Q4KJRNgaPddBaM1icoW66ybS4ubfDoPQHyAN5Um2kFt5HzNhAzFVHSTg==","signatures":[{"sig":"MEQCIAc387HTTinNXhJgjT4LZjtngJ0uDo732yfx5EiCCEVrAiBtc4hm819zUojrIEYQs9seCD50goEynlIEtD1vHymOeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147101993},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"8406f2c459c8d58b2e06bd552ab0ae967f7cd2d1","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.4.2_1770715752859_0.024951565229412553","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@offline-protocol/mesh-sdk","version":"0.5.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.5.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"e5293410376746521e7c76caf5cf3f69cca59a6d","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.5.0.tgz","fileCount":66,"integrity":"sha512-XCf1FVCNiWcQVwWGq3KfcYH1fK63k+zIqVbn6bW1NcSEIOACiMi0JnFawEaRtLX5J/bU9Cl+/+z+TGKa8jecmA==","signatures":[{"sig":"MEYCIQCyFzXnbjDZq1C5/cCvnP4kO7r0f3sHzkiOudKjsRSq8gIhAMKxy70g3EZohdLUmH90TdU5W/nEomhKHU1HRdSZ1Oqo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147817176},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"e927cba39cdeb152af9ecd21eb6698d8d0dedb47","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.5.0_1771246377100_0.3573544025041855","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@offline-protocol/mesh-sdk","version":"0.6.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.6.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"1491e35c948dee0dc44a88625c26cc87f2eb925e","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.6.0.tgz","fileCount":70,"integrity":"sha512-fJ+yubONLDSFKkWjMk33ZupSTvsMqkdwTEl17CiV46sv/3n3y42DkW10B/QYm48fu/hxVrdjqiC9NrLdQfQXfA==","signatures":[{"sig":"MEQCIFvjZta/JDox3CSsnB8+76pxuHvuBQJF1g90cNIHcZlAAiAR0htr0wkWlxdUl1QrtZKcoSEsBeDNR2B1Z44h8ESQDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162003526},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"cda469a53aa797175670b3c6d962c618ceb953cf","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.6.0_1772426579293_0.4839565810792381","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@offline-protocol/mesh-sdk","version":"0.7.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.7.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"e98d745cac5cc22c865624122c8e594a420ab5f8","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.7.0.tgz","fileCount":70,"integrity":"sha512-F1IXUPg0ObxIc7cPnze43EBACJnTyyvkIRX6hZDF3I1Kgq/buGMZZIjb63RClPNGMSEShUGK6WoGJjrXgS0abQ==","signatures":[{"sig":"MEUCIQCN7S5imke8yoFZwAzweN8QQKPU5y+6mH6bkDvCsILZqAIgCv2Rmxdh0IeB+0VunopLVqJqST7oEv4lezRCPdnyIaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165020865},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"ddca78883d5033db4d72e318cbcce514e52b2308","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.7.0_1772475981085_0.3195667452484696","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@offline-protocol/mesh-sdk","version":"0.7.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.7.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"629cda43e847d70f7288fac76c99e64c126ec484","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.7.1.tgz","fileCount":70,"integrity":"sha512-vRAKCPpTxvAbEUOnIHXcOrfOolr1kGgtaQ5JkX8t2ZtJB+9wPyd6lx8EceNK5rRPlJ950JtF6Jb6T0XFSUm45Q==","signatures":[{"sig":"MEUCIQDcenT8zMUnQ4CvSB+WHa/F9HU1MDQSaq+K+/7oo3PzdwIgF2vRzv4y48xJ3ZlpnVyGQ9F//V42wJE7Zi4kSuQlxNE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165537865},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"90c36cdb06c83ffca9347e02247a37f2041f05c0","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.7.1_1772522972336_0.8439844249584318","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@offline-protocol/mesh-sdk","version":"0.8.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.8.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"f9f007d2bd462c672a01fdb3d8bad862d5b7cb61","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.8.0.tgz","fileCount":70,"integrity":"sha512-VPmC2oGtguuiopxUUP5uJmt8TALkfaTw+T7KaonxLbs8OYwryejA0FcrN/2TWeBlnq+nl9wskzHkEQVPrFS/3w==","signatures":[{"sig":"MEUCIHS2ORqFOwJ+FYDQWCI1pv0lzUmznPaezmt342APvaTiAiEAzFuSkywlnO82vhT3iW1o6ZNZz5GMTf3z+maSVWQ4SAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177199233},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"14f45b03f921bf0b46da177df6644df99886d212","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.8.0_1773920559937_0.10964750185092265","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@offline-protocol/mesh-sdk","version":"0.9.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.9.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"012d8cc0dbd715d93a8634f63d3ca075703a5a20","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.9.0.tgz","fileCount":70,"integrity":"sha512-9H87AW7RsZLJ5nXVfJ71lEJVslYOAhFf1RiEr6yCHp5WW4LAnA208EVJe+zo7JB1YUNxHBu7ZgL8M1LaiRLvlA==","signatures":[{"sig":"MEQCIFPB12Pi2W2y//Gd3qoTmJybOJshjQ8U6UeUluVF62FyAiAH5YHvJQq8CMZ82CcOELyC3BkG39VVbPUtJtr/BLSprQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179145701},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"867367099a41f033a937487a509d5f1e58405228","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.1","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.9.0_1773954620637_0.2862241301916155","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@offline-protocol/mesh-sdk","version":"0.9.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.9.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"01b30f02a8f92558119a337bea454693b074134a","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.9.1.tgz","fileCount":68,"integrity":"sha512-rQEstdM29xwWeZfiKsX0N0kOovyRFamD3alV/vzVAAlsvN2CfgKdL43IQf+0g9x5fGk024i/ZhesOOQk0cnXZA==","signatures":[{"sig":"MEQCICLfQZWdf/WAbQCGpTgpmsGGgkH+ddjYj4qXQTnCNBelAiBE3kETkqFWU7SJqriTTlWMaDwKEfBb2D8dgyJmqRdaLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187255443},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"39ff513800acb72e0d68bd17d12f2e3ea6d50bbb","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.9.1_1773989683899_0.9422011269126578","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@offline-protocol/mesh-sdk","version":"0.9.2","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.9.2","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"5ec5edc65df087cba512be797ff7caf55bbfcb8e","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.9.2.tgz","fileCount":68,"integrity":"sha512-ReDxqzyC/d5EOPUhKOlNEQxB0i14Ve5+sKJcudmU05GRy/ilXVtN/rD9y3ujEknvYH70NKMXSVP9Y+nNAXFPfw==","signatures":[{"sig":"MEUCIQC2hFKHidLxZnCZr42RAhTtTzJ8uGtRQAzEVs12aBbg4gIgI3Pc0tQX3NE8Dpakq+IqAqjHJQuvmzRC9AvPtIHX9Fo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187467481},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"b820b666274d30090cb1db934c5a2745f3ea5821","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.9.2_1774333049166_0.13627592529594268","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@offline-protocol/mesh-sdk","version":"0.9.3","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.9.3","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"e10c00a26213ee7cf0de9011db2466e80a8af8bd","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.9.3.tgz","fileCount":68,"integrity":"sha512-ECgxrVeVtCA+JodYWNxpcAZSIWHXyyYWCUTJ66mAxfLVXpWki9POcFsNoHdCT4LyNhJ3yyfzQbQhaex9knbFwA==","signatures":[{"sig":"MEUCIEnKPSLhHGOaDCbo7wCrE3cEtxnGo1vf+k+zOqX/CCVXAiEAmZWG8Y4fg6fGWta+IF5vYB9WHeS4Jdm/22klokeqvO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187465425},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"13158e81dd55691dc2dead2056420791ab6d24da","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.9.3_1774503632438_0.18989175655057267","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@offline-protocol/mesh-sdk","version":"0.9.4","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.9.4","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"428073c14a829fb9c03ea13b74ba9de6d7cbb4e7","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.9.4.tgz","fileCount":69,"integrity":"sha512-OnPyZLXWPPGdeppEQD6IifWUekCbvq+6TqgJSWcXNcoajT2dN9QDWCZxgXmT/qrot4iOdhfL+OqO8df8crBmRA==","signatures":[{"sig":"MEYCIQCpzF3al3AgeG+FeS61q2TaIgUhkBt4dO6mRCwX0ujY8AIhAOuBr3U4pbMfJnktINecy8QqpU1OtQEnn2CUHvMbolCV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187466335},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"78de2cca607784bab2efc5b62b178d58550d8edc","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.9.4_1774599400019_0.29593234086871356","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@offline-protocol/mesh-sdk","version":"0.10.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"ISC","_id":"@offline-protocol/mesh-sdk@0.10.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/offline-protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/offline-protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"553efcd4c0c1cb2e8b88ebe1224fe5bc6aad301d","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.10.0.tgz","fileCount":77,"integrity":"sha512-G6p+vssuSV0/stsGz6y0VAEC3BU/4oRSSOQLU4i25l6uR4oxGz4Agy9Lll849unfAknyQA2wB28WqlRz3rgc5A==","signatures":[{"sig":"MEYCIQDpFqE/ZzBvN3LGQfrIRM0+/tXls+Lo5vX26FT6SbsnFQIhAP2K5RbdNvl51cWCMz4dO0Ku3tSkeQjYlwLjOHEkmcV7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186905672},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"a2ccea98ec17eda66b54cb4af33c1df5be0f49a2","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/offline-protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.9.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"22.14.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.10.0_1776020302187_0.21829412065366416","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@offline-protocol/mesh-sdk","version":"0.11.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.11.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"0122f7b0c3f60e0895fc233493ba7867edae002b","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.11.0.tgz","fileCount":76,"integrity":"sha512-9RybYFSeVCk5vwNnrKuGCP1dQh5dSEb2RaqI4qJQ4xEI2CVD8fAaN3M7AcMlJPZmOqsw4TXylYSixFjhWSyYjQ==","signatures":[{"sig":"MEQCIF+dvQFfbLn5Mu3cgaYeb5kHVhMAYVntkNFkXg7PKFQOAiANV46akwXdVkPa3vzej63zeBqldzXpUPTr7OPO61aTLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190312132},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"0129155ccc924a4817f32e023049853d47db7891","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.11.0_1782907411653_0.2011925196393245","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@offline-protocol/mesh-sdk","version":"0.12.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.12.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"5a0e263856c7907784c8b8a03fc4677d17dacf14","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.12.0.tgz","fileCount":92,"integrity":"sha512-ks80K9H50YSK9jq419UZLp45og4JDP3Rsk/VvdKmPlvEm7ooUlwiI97iJK7d4o3kVD8FIy+3wbE7As8ACk8AKA==","signatures":[{"sig":"MEUCIDH5u1W0Zi5quTxhnnmIcmErQoprYNVRrSmc5YzrXiUTAiEAzY/iIzZvTB5othDmM2xT9yegNEYFtlt7BGvFuvgqBMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219627308},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"fdfd997f910f9fc060337b7c01b37d8cc40ddf44","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.12.0_1783947244804_0.8561652784345297","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@offline-protocol/mesh-sdk","version":"0.13.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.13.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"8f424f7196557da223dbb78294043ef8210bee87","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.13.0.tgz","fileCount":92,"integrity":"sha512-DHFC6/rYn2hPicMtNCInhCaXF1uoYsS8813xM9kiy3EKPnlOcOA2QnBOhYqPzXiU+Z3c3j4f10dqN7peNDnMAw==","signatures":[{"sig":"MEUCIC0xeexjI4MnbZohrXsyYDYJFFjCaQW+ckA4p1sfU7TmAiEAnM5kgvNMT1opKE1kGS8xuD7l3lRvKwWfWsWHkLxMkfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220468612},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"d602cb1663160feb859dcaab84cf9f97dbef3ba9","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.13.0_1783966195596_0.7063664211937275","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@offline-protocol/mesh-sdk","version":"0.13.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.13.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"c5ec89f235fdb97d3f674d734641748984189711","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.13.1.tgz","fileCount":92,"integrity":"sha512-PQ5lttpkae2V7Ddze6RmVMIWnTSuxbN/iZyA49am4yIR6sikq7aqiyPgTCLKar6Ggem7264Md452jlnJWyj4sQ==","signatures":[{"sig":"MEUCIAqEoXrN26VnozApTx5g6Ax6/TiO2T5MmUDkjMepf5MrAiEAy5fyixgGQwFMpV+8OZUm8BVe6rwB9WCRXr2v87zStko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220197455},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"b92dc00c20923909f30f0999b85d3ab4bfe1a73d","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.13.1_1784047840810_0.606178035994754","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@offline-protocol/mesh-sdk","version":"0.14.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.14.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"8f74a51dd43298aae8f5e1c11b69e4bf3e22d9c5","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.14.0.tgz","fileCount":94,"integrity":"sha512-lm6wUk4XHAWf1Wr0mm27wZaG7alpgw/BDs9UCab4zVMm0SN7EcSTmOCFzoaB8/XGyP126xKWKiQLreGBzIt5Sw==","signatures":[{"sig":"MEYCIQDUBiNZRtjtHxnqfad8Y7+Z0ahMqTwsdpCgT3GzrAm5sQIhAJk37jY7zD78liNjZU5sWChWZgOurRR3aX4gViRcccUR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222401420},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"86472e3228b93a3a700b96135895c8c6b9516d1a","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.14.0_1784224050869_0.04597374193218373","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@offline-protocol/mesh-sdk","version":"0.15.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.15.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"17e06c96c99ed5e7df72d0eed2f62fecb7ca3258","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.15.0.tgz","fileCount":96,"integrity":"sha512-eIVAYXSUy0USpulFoFn6RCyMIc1PLYdunoJPAEYiWi+8iRgAowotL78cJdXlAhvC6cly/ltgr7DSS18UFHkDpg==","signatures":[{"sig":"MEUCIAFPvCc+oN1r/u1MkAaC4LB4dPEJbImEsieajQI4icfvAiEA0VGqwMiikXmq9TMOA895sx/VBnnA+u6Tp8nQbfjUmaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222539164},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"a2f7326395b8391b3699a51d748cc9416da42360","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.82.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.15.0_1784529814350_0.8691890390286012","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@offline-protocol/mesh-sdk","version":"0.16.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.16.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"c2432e9087943587a018347c7cf49020696e59b7","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.16.0.tgz","fileCount":92,"integrity":"sha512-02UWbP/PivrMImOuzYyeFWXKUqBZJEtFU+jch327CydXTXIWZ7GL9isySjMIYMv0TvEPyPRDzryalZUm9d9nIg==","signatures":[{"sig":"MEQCIC+A3crlJQsCUnw7XEQJWQqTNA5j0inRO5H8E8GBlb4xAiBrOk3hO4oF53+wyAgVvAUYsjFYdu77/P5PwDvypOucaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234903030},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"69073c264483f0201c3534039a169a8df3e9013d","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.16.0_1784880781079_0.9408486757706764","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"@offline-protocol/mesh-sdk","version":"0.16.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.16.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"ed87103554ac3c8237b984ade8f0d5f5e48f28b6","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.16.1.tgz","fileCount":92,"integrity":"sha512-/jm4lZdutH1Z+yus7Tc/8G+YyZtHPMb3/CG+3gnKQgQ5Hc7ujHGxHp2apcu8S4XLvZAqoNJQbUT/wirtGfVhjg==","signatures":[{"sig":"MEQCIBMBHNJjg6PNDWIQCZ2FZeY8bhLCo4YLv8Kqem4VEnuMAiAwvjo79XF1wgF8SqzMUWulH9KxC7JhJhesSQNmUBNDGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234912378},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"6ae73cc70ecc335ef3d77505ceeee3588954252f","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.16.1_1784891565906_0.5072867973435549","host":"s3://npm-registry-packages-npm-production"}},"0.16.2":{"name":"@offline-protocol/mesh-sdk","version":"0.16.2","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.16.2","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"294f9f185c63ebf397d99f392c793008b5865504","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.16.2.tgz","fileCount":94,"integrity":"sha512-g42s4K4r0EkEgqc+rhI48vDp1uhQM29Pp7XYcFvPvchgIQ2SJPYwjUZZbqLVwO5PJNLu+GRdxEj7wg36Qy7JWQ==","signatures":[{"sig":"MEUCIQCvh3qVLmTKUsoVo8yN2LUKPIzGIjcluIq/nEheLuDgTwIgbYkaDm+DEwfMAx5x7rSqUrELU5oQiQwJIbNm8mIjXp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234934794},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"4facd7668b20ce48591b044d936386ab44ad8d79","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.16.2_1784897052570_0.5521967666308958","host":"s3://npm-registry-packages-npm-production"}},"0.16.4":{"name":"@offline-protocol/mesh-sdk","version":"0.16.4","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.16.4","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"db67c5523dd665d6b51715a4eaab3da77e1584f1","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.16.4.tgz","fileCount":95,"integrity":"sha512-TemVlVj0AULq9XvZgdSqwmKzncykQ3umIdIsRXbjIBcKTp/88Oo+t7Titd0xLB08AMlsX8/pJiSr72BYmn5l/Q==","signatures":[{"sig":"MEQCIEg85j0mteTW10/4doAqoGiYz/zJ7PqB4V5iST9I1Mj1AiBGe9yAjPVo1Fq9JuGwyQOYO1VEnU+FBroRKLXSoCavTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234940572},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"1044d15de036ced239c0111443e7bb9f3cee2a16","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.16.4_1784924753927_0.5758318878493889","host":"s3://npm-registry-packages-npm-production"}},"0.16.5":{"name":"@offline-protocol/mesh-sdk","version":"0.16.5","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.16.5","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"b630ebb50dd22498d405eb29163ed76791baefd2","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.16.5.tgz","fileCount":99,"integrity":"sha512-qs1VF9RA/EKFSzCEdKbup95XNUv/M76orjjoPsH/P9ZttwsXPHMwf85H0W2HsMcpMFazTKNc6EZpq3Ii4O6gvA==","signatures":[{"sig":"MEYCIQCv009eQPvbFZpW1uxq/1Dky6hrpbQqGHJuB7TaNKZE9AIhAOq69ebp+fOwTi8ZsOV4VHnUbsz+4CIImKgg1mONzah+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235490466},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"f28341bcc139714d98e0515f2ec6d610eb0fdb64","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.16.5_1785136105646_0.5141471138703153","host":"s3://npm-registry-packages-npm-production"}},"0.16.6":{"name":"@offline-protocol/mesh-sdk","version":"0.16.6","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol Team"},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.16.6","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"7efc2c36ace311f084695572673c6689feede925","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.16.6.tgz","fileCount":99,"integrity":"sha512-YMh6PsdpsElN7jzTeo25bC4VrhNDK5CANzZVd58hDI6+vQTN2UT+wscxqvHei4EJ/q/oMrtg17g5hABbopShhg==","signatures":[{"sig":"MEQCIDng2jJ9uM1RkBZBtujhgE7ce+Vytckv7siz1uvyvwJBAiBhfYir8rACW4dG0WIEzNd7mTUqRX4Co5uiUBliRVhidw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235487759},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"11e49fe5f3bd95bdbe4201a7270f2d7ef37097ab","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.16.6_1785225523788_0.9693274147974791","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@offline-protocol/mesh-sdk","version":"0.17.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.17.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"af53927fe10f8a6627b8f3976f1c6a7de564e5d7","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.17.0.tgz","fileCount":106,"integrity":"sha512-5nz6SnahPrMiOoVjQ0EdD49jY0DN7mV6MZ96S6G/LpJfarydxQpLVeK5H2GCowrDom3mTar5ylFD3p+DqfuPng==","signatures":[{"sig":"MEUCIHf4HDtQyJgdJRSqUpCaZ5whTzWs46eHnADHqxMWcqp7AiEAiPy2Qc7/TfgmRBOE/UOlWU7ZD5H5yujUfGtNL9ftINY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239373883},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"a5fbbc49e41188390fdaee81d44a3826db5f5888","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.17.0_1785413229905_0.16592333121925207","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@offline-protocol/mesh-sdk","version":"0.18.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.18.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"476834d6bee78c0f81b8c3dbae8a5d3a8ad1f2a0","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.18.0.tgz","fileCount":106,"integrity":"sha512-rE4pmPYrOkcGKEzDVo2U+1EJxbA1lM0DY13ZUXFuxkZ4utJrSsqbhfifqLWlFvmHUBKc9zDF1OV5MZshR9czkA==","signatures":[{"sig":"MEYCIQCsBvOrDy9Azk1ETb/Fn4uW2UgjxoMW6w7N0ISV5qJE2QIhAMGGf0acyHNiMYgAT0OmrL+k+cUTk8Wv0SGyarBAenoC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240973389},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"e5d0c6f74727822567ad3c73a0ba684e83195473","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.18.0_1785511435669_0.7573921243202928","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"@offline-protocol/mesh-sdk","version":"0.18.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.18.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"bb047551e2233db06185022b192ee5480b90f1de","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.18.1.tgz","fileCount":106,"integrity":"sha512-yTT4vvK6xgPJaiJKFAkQGxD5Xt8IF5OQ0B/YviEA97k5pdgJfYX8v00G++qeDf3eerLu4d0PPLIZR5QI2St+1A==","signatures":[{"sig":"MEYCIQDYmLMthvda+VE2P+RSsIJxxRleFAAcapnEOypQRRi8MQIhAMZxevw1k/USG0qnQtE4v1x2FMzQip3EOBsTPOelsiB8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240978671},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"9529a463268b20da48f771c34152c61ffd109ebe","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.18.1_1785533662633_0.44290652817707943","host":"s3://npm-registry-packages-npm-production"}},"0.18.2":{"name":"@offline-protocol/mesh-sdk","version":"0.18.2","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.18.2","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"5929e25d468aac953253fdb3eed32dcca2425f28","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.18.2.tgz","fileCount":106,"integrity":"sha512-HrJln3wUyWouS+ABnZ/pB4y9SZH+05JgmOUVQddfMba89JE5r2VyrAeAgahHPCIuXB3DVsXNzIK5aKMkX35egQ==","signatures":[{"sig":"MEUCIQCTORT/C+UDeIB7ZQMWp6p9Eetdk+xVPqWCDKY3LPo97wIgUnaBnI8CAFSYPj1WkeHFW4UmSsx5hzeXlNxiuS2fYuQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240984727},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"f6c665487c988a5dc4d591985d01944b3bf393ac","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.18.2_1785557342003_0.3946484953108411","host":"s3://npm-registry-packages-npm-production"}},"0.18.3":{"name":"@offline-protocol/mesh-sdk","version":"0.18.3","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.18.3","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"d81145b5e2581577cd0848b9abd2af9d311baacb","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.18.3.tgz","fileCount":106,"integrity":"sha512-EfGaQMKkLXwr74WDy2aTgHsPNsj5ZjQgNB8sLHV1z+rhwqZqk3eWKsAB9IusOO7ckE2Bke3LeDfnCA3L16G03A==","signatures":[{"sig":"MEUCIQCJpOVUGnFkg+FQZOwFaHRguiUBQdtAjcJw7c3P2VrMuAIgJtJD3uOcHpXCVz+Vvt3e5rrow8ulUdQ/6BAfqt7c85o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240989329},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"ed1910c85c0ba4763b685d3b9efc73eaed7bc37b","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.18.3_1785780122967_0.6757546016733158","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@offline-protocol/mesh-sdk","version":"0.19.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.19.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"230c266882bdb1be4be969a8531db271ee239206","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.19.0.tgz","fileCount":107,"integrity":"sha512-tXut4fqcI6IHORIP/NRv60IbNQfE9evgOckMJDJZ6jEbDC4dmjB/L87LY72hnpwOpNDqz7ak2jpO+/asPuihpw==","signatures":[{"sig":"MEUCIQDu+wI0j6/KONk0bXnsQq5vHlmEwkAUVs7FWswAM5/aBwIgCF7Fs2BZQ0psDLB94J6gKxnejw/9al+FZyZJ43WXG2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242447644},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"d1d72c02f8bf34426ac5d07849b31847c684b913","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.19.0_1785856403949_0.4718217201914705","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@offline-protocol/mesh-sdk","version":"0.20.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.20.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"68239f340bdeedf91b88d36081eafb2a2464bbf0","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.20.0.tgz","fileCount":115,"integrity":"sha512-9Zoc27QetC6l8l2cPF/iV8aoHHoVNDWIGUSoklo31kSeNry5ndn2LRKkpy3f3JCqKh99yHYX5C7EIJ5cW5j94w==","signatures":[{"sig":"MEYCIQDqmpFvRjjCVC58s12KNf5QZta5j6vRrv85gK0RP7BT0QIhAPTm9U3MTPzkhHV5sg+dmzrt8Iog3iEW2+SLBypCxKIw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246184040},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"4387b754b87dc7547dd610e5a24822d548b5cfbf","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.20.0_1786074425289_0.07283955145597298","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"@offline-protocol/mesh-sdk","version":"0.20.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.20.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"f0056463c04cb89753ef6b140f7370211e0a094f","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.20.1.tgz","fileCount":115,"integrity":"sha512-ILI4G7Jku4DkbRZJvPHwX3aDZy3tqF7qBVJUNYAGduUZF2AYurnavW9dJHKH3pve0PvZPf/4VUed5l6vqKiczA==","signatures":[{"sig":"MEYCIQCW7z76Ic6PpEO3OqEMVfvI7VwMZmmrC3jL8Q0JNvkepwIhAJLeWBlRm5NKNHIjuQ/lKdIMeHLmEhKo27WAJodyzcE+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246267291},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"a428b023fee7e3130cc34df34a6e88fe8ec17494","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.20.1_1786104859997_0.016633848418257102","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@offline-protocol/mesh-sdk","version":"0.21.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.21.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"ec5508ca0a99a85ca6884ba5acf8424c6d010630","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.21.0.tgz","fileCount":125,"integrity":"sha512-mvPznOBwupM85bOZH1l1z1mP5k6GHUtZ49JaDXRejH3JfUbjlaaLGhL5ffiX4CmsQHXFlaURwPrO1fRVEtocPQ==","signatures":[{"sig":"MEYCIQD8tbWdUxcddW8qdCmHAVNx+m68Dr8WotlglT36L+Qh8AIhAOqIEdhtjJmt0bFGt+rOVn5/8uBAStYHXtIyDx6D7U3P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@offline-protocol%2fmesh-sdk@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":249873013},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"0e81b47225ea26b95259b7dcab54d9c2adb3401d","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js && node js-ci-harness/local-address.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.21.0_1786636904807_0.025638875654661275","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@offline-protocol/mesh-sdk","version":"0.22.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.22.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"58e19d9f34179fb3306465470c97e8e253524451","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.22.0.tgz","fileCount":128,"integrity":"sha512-GCiaiYJnKL5ZPZpJTW0Dql6mzOi75BSpXtM0QVKy2rVwrxMYtxGncFloQqHzAnqTEnML+c21L+QhoeqgRPxrXw==","signatures":[{"sig":"MEYCIQCOILvzo8wceFaJZmU8i1i/9YIwPJRI/7EOhSvy7OzT6gIhALJG4qm29YPJ0W5QikNIXzCwwA80KEmQJcw4UcS5iUxr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@offline-protocol%2fmesh-sdk@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256973017},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"78bf73ec126e2f151c5d807cadeeb85040b6287d","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js && node js-ci-harness/local-address.test.js && node js-ci-harness/relay-config.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.22.0_1787043554008_0.9613596370413076","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@offline-protocol/mesh-sdk","version":"0.23.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.23.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"b97d860447a08760c52931657bc32ffa3e6c5886","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.23.0.tgz","fileCount":128,"integrity":"sha512-GoRc9UUIK5NguE2JzK4YVvRbvg4D1qHY/b8TfIQiEHO2OywHC6WcDsrZHRjBeNRExMx9TgL5DTbqcYTx7oEi1A==","signatures":[{"sig":"MEQCIB7Xf+S5X6n6gpIYDn7lm95ZDItHXY5NDKXZPuE35wndAiA8BcDbjPk3eaf2c8DzPyNHZW9lhmSzUus8Gpeahc/IkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@offline-protocol%2fmesh-sdk@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379822267},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"22e781a1cd344989558c33e93fe857c6ea693682","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js && node js-ci-harness/local-address.test.js && node js-ci-harness/relay-config.test.js && node js-ci-harness/data-config.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"gokuloffline","email":"gs@offlineprotocol.com"},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"10.8.2","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"20.20.2","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.23.0_1787241094308_0.20577543189168512","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@offline-protocol/mesh-sdk","version":"0.24.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.24.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"7ab67eb785f295a2622491efacb6d50aaf898b4a","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.24.0.tgz","fileCount":128,"integrity":"sha512-kryOO6JAqpdkgHYZOQYDd8q5kvptM/KnrWAqZWDAkJKxucBEIKKp2eyqjpPYY3ikbNJoxfQgjA22SdprdUTYMg==","signatures":[{"sig":"MEYCIQDBkJ7AhDJbplyP8irXuWNotdCyIcBvLOBrEPyzN9VgKQIhAO6Ejx1e9qATs7an8FJor6q+PItJ4xdpG0rXeefqziRq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@offline-protocol%2fmesh-sdk@0.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":381719001},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"849e93b726ecc66cd97878d018bb3e60ded49904","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js && node js-ci-harness/local-address.test.js && node js-ci-harness/relay-config.test.js && node js-ci-harness/data-config.test.js && node js-ci-harness/security-config.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b46ef8b-9758-4b45-8ef3-e0a5c7b5cbab"}},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"11.17.0","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"24.19.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.24.0_1787577573356_0.9540888720388183","host":"s3://npm-registry-packages-npm-production"}},"0.24.1":{"name":"@offline-protocol/mesh-sdk","version":"0.24.1","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.24.1","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"c107da471e65fe6d25fa024149221004e4a5c4b2","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.24.1.tgz","fileCount":128,"integrity":"sha512-+wDqodmyNFDi29CuTovD3pA9hXhiy4KHnUdSby5OP6Fi5oQs/I/4VKq5XS5HyMxeBZprcgBu/SSLtvt0l/43ZQ==","signatures":[{"sig":"MEUCIQDX6al9Ogw4yj47QxzBpWEPonkCVdXjrHol23KHW9eXJQIgN/prYNUm2qfn0rqTlzezYnLfbDxBMkKj2Fol0gVju18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@offline-protocol%2fmesh-sdk@0.24.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":381704093},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"aa5b9aa4079c49cbff50b3f4198cead46cd7b037","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js && node js-ci-harness/local-address.test.js && node js-ci-harness/forward-priority.test.js && node js-ci-harness/relay-config.test.js && node js-ci-harness/data-config.test.js && node js-ci-harness/security-config.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b46ef8b-9758-4b45-8ef3-e0a5c7b5cbab"}},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"11.17.0","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"24.19.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.24.1_1787743351515_0.009371978159931293","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@offline-protocol/mesh-sdk","version":"0.25.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.25.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"32b3674bce4b6820aa4ffbbaf0e7009f19d83102","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.25.0.tgz","fileCount":134,"integrity":"sha512-5D1G+z4h/vTU0LIazp5EXFWQg7VwD6vbWXBcVtipN747SbqvyxPOEAlukmwUtQnsv2WZJN4y32ZFSfiFRGi+uQ==","signatures":[{"sig":"MEUCIFTyWwq7v+tnOorPQ88HrOq7XOqzOTzLS3jknuwe6H6vAiEApu0MOq6mXoGDxNw7mc4V5lxzLdnMvt3Abzz5t+Bix5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@offline-protocol%2fmesh-sdk@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382470758},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"76b2e0566ccc86dfec4cd3105e577a6d475c79af","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js && node js-ci-harness/local-address.test.js && node js-ci-harness/forward-priority.test.js && node js-ci-harness/relay-config.test.js && node js-ci-harness/data-config.test.js && node js-ci-harness/security-config.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b46ef8b-9758-4b45-8ef3-e0a5c7b5cbab"}},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"11.19.0","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.25.0_1788866302383_0.5791794712738605","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@offline-protocol/mesh-sdk","version":"0.26.0","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","_id":"@offline-protocol/mesh-sdk@0.26.0","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"dde50cd19d345990fb660f137c9721da8c8cfe96","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.26.0.tgz","fileCount":136,"integrity":"sha512-R9GPKnfVJ4gmUK7zPZTkSVdgUF9InfGXp75gGzV1BrGITHk7xwJ44dSTT3btyJY6ggHfUm7cRCRTA3eo3s+0vA==","signatures":[{"sig":"MEYCIQDZ99WTFAsLsK86HisX04MuqBTadRKTqOi2CsuDdx99fAIhALddqJZK89C1XEukNQSoGXZInrGtmshSOjptBLJdfgvi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@offline-protocol%2fmesh-sdk@0.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":439512836},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"984fb2cf44763beaff1477ed3ad29f05a4335468","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js && node js-ci-harness/local-address.test.js && node js-ci-harness/forward-priority.test.js && node js-ci-harness/relay-config.test.js && node js-ci-harness/data-config.test.js && node js-ci-harness/security-config.test.js && node js-ci-harness/telemetry-config.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b46ef8b-9758-4b45-8ef3-e0a5c7b5cbab"}},"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"11.19.0","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/mesh-sdk_0.26.0_1789222591654_0.6871875096472271","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"_id":"@offline-protocol/mesh-sdk@0.27.0","bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"dist":{"shasum":"d9e6225759db18f86ea393c5fbcc13a23053f560","tarball":"https://registry.npmjs.org/@offline-protocol/mesh-sdk/-/mesh-sdk-0.27.0.tgz","fileCount":140,"integrity":"sha512-yTxtiTR9H2xIZuIL4S4wyGSjEe0Ti0Pm7o6/455mDOkGyE73I02JunFKoaXELzqxJa0g7eoRPr11IbKVgGDyZg==","signatures":[{"sig":"MEYCIQCIcaCkDYrK4nuQO+2mvWeUyyE1dFq/9MVAQ1wJ25xHnQIhAO4JU8HYjtpxz/unXp3w7/tlQwHfVgGQkjPGSzAwol3G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDXmJj36lBziYIifQckmAzn1BcoM8wK/NbRoXkfF1h00wIgKz0SCOJA1GmOBJbxy1zatDpDTuJupA49dQkJhZu1gbY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@offline-protocol%2fmesh-sdk@0.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":444406023},"main":"lib/index.js","name":"@offline-protocol/mesh-sdk","types":"lib/index.d.ts","author":{"name":"Offline Protocol, Inc."},"gitHead":"5fada5446e808952b689814492091ff512262b2b","license":"AGPL-3.0-only","scripts":{"build":"tsc","clean":"rm -rf lib/","prepare":"tsc","test:js":"node js-ci-harness/one-shot-hold.test.js && node js-ci-harness/local-address.test.js && node js-ci-harness/forward-priority.test.js && node js-ci-harness/relay-config.test.js && node js-ci-harness/data-config.test.js && node js-ci-harness/security-config.test.js && node js-ci-harness/telemetry-config.test.js","build:all":"bash scripts/build-all.sh","build:ios":"bash scripts/build-ios.sh","build:android":"bash scripts/build-android.sh","prepublishOnly":"npm run clean && npm run build && bash scripts/prepare-npm.sh","build:uniffi:all":"bash scripts/build-uniffi-all.sh","build:uniffi:ios":"bash scripts/build-uniffi-ios.sh","generate:bindings":"bash scripts/generate-bindings.sh","build:uniffi:android":"bash scripts/build-uniffi-android.sh"},"version":"0.27.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b46ef8b-9758-4b45-8ef3-e0a5c7b5cbab"}},"homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"_npmVersion":"11.19.0","description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","directories":{},"maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"_nodeVersion":"24.21.0","react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native":"^0.86.0","@types/react-native":"^0.72.8"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.70.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mesh-sdk_0.27.0_1790286933124_0.37258608162036944"}}},"time":{"created":"2025-11-29T05:31:29.291Z","modified":"2026-09-24T21:55:35.457Z","0.1.0":"2025-11-29T05:22:24.272Z","0.2.0":"2025-11-29T05:31:30.200Z","0.2.1":"2025-12-08T07:23:03.964Z","0.2.2":"2025-12-08T10:10:33.214Z","0.2.3":"2025-12-08T21:14:01.728Z","0.3.0":"2025-12-18T09:45:32.113Z","0.3.1":"2026-01-19T06:15:09.103Z","0.3.2":"2026-01-21T04:16:22.663Z","0.3.3":"2026-01-28T08:18:48.611Z","0.3.4":"2026-01-28T13:57:14.914Z","0.3.5":"2026-01-29T11:59:11.585Z","0.4.0":"2026-02-02T10:51:32.099Z","0.4.1":"2026-02-06T14:11:47.976Z","0.4.2":"2026-02-10T09:29:14.433Z","0.5.0":"2026-02-16T12:52:58.743Z","0.6.0":"2026-03-02T04:43:00.931Z","0.7.0":"2026-03-02T18:26:22.776Z","0.7.1":"2026-03-03T07:29:34.024Z","0.8.0":"2026-03-19T11:42:41.783Z","0.9.0":"2026-03-19T21:10:22.500Z","0.9.1":"2026-03-20T06:54:45.752Z","0.9.2":"2026-03-24T06:17:31.016Z","0.9.3":"2026-03-26T05:40:34.300Z","0.9.4":"2026-03-27T08:16:41.917Z","0.10.0":"2026-04-12T18:58:24.051Z","0.11.0":"2026-07-01T12:03:32.657Z","0.12.0":"2026-07-13T12:54:05.845Z","0.13.0":"2026-07-13T18:09:56.616Z","0.13.1":"2026-07-14T16:50:41.976Z","0.14.0":"2026-07-16T17:47:31.926Z","0.15.0":"2026-07-20T06:43:35.372Z","0.16.0":"2026-07-24T08:13:02.175Z","0.16.1":"2026-07-24T11:12:47.010Z","0.16.2":"2026-07-24T12:44:13.898Z","0.16.3":"2026-07-24T19:12:27.830Z","0.16.4":"2026-07-24T20:25:55.289Z","0.16.5":"2026-07-27T07:08:26.750Z","0.16.6":"2026-07-28T07:58:44.921Z","0.17.0":"2026-07-30T12:07:11.069Z","0.18.0":"2026-07-31T15:23:56.942Z","0.18.1":"2026-07-31T21:34:23.731Z","0.18.2":"2026-08-01T04:09:03.133Z","0.18.3":"2026-08-03T18:02:04.424Z","0.19.0":"2026-08-04T15:13:25.087Z","0.20.0":"2026-08-07T03:47:06.458Z","0.20.1":"2026-08-07T12:14:21.447Z","0.21.0":"2026-08-13T16:01:46.010Z","0.22.0":"2026-08-18T08:59:15.192Z","0.23.0":"2026-08-20T15:51:36.014Z","0.24.0":"2026-08-24T13:19:35.075Z","0.24.1":"2026-08-26T11:22:33.210Z","0.25.0":"2026-09-08T11:18:24.136Z","0.26.0":"2026-09-12T14:16:33.639Z","0.27.0":"2026-09-24T21:55:35.068Z"},"bugs":{"url":"https://github.com/Offline-Protocol/offline-protocol-sdk/issues"},"author":{"name":"Offline Protocol, Inc."},"license":"AGPL-3.0-only","homepage":"https://github.com/Offline-Protocol/offline-protocol-sdk#readme","keywords":["react-native","offline","messaging","p2p","mesh","ble","wifi-direct","dors","relay","offline-first"],"repository":{"url":"git+https://github.com/Offline-Protocol/offline-protocol-sdk.git","type":"git","directory":"bindings/react-native"},"description":"Offline-first mesh networking SDK with intelligent transport switching for React Native","maintainers":[{"name":"gokuloffline","email":"gs@offlineprotocol.com"},{"name":"0xoff","email":"ops@offlineprotocol.com"}],"readme":"# @offline-protocol/mesh-sdk\n\nOffline-first mesh networking SDK for React Native. Enables peer-to-peer messaging over BLE, WiFi Direct, Internet, Reticulum, and Nostr relays with intelligent transport switching.\n\n**Dual-licensed:** use it under [AGPL-3.0-only](./LICENSE), or buy a [commercial license](./LICENSE-COMMERCIAL.md), your call. The npm manifest can only name `AGPL-3.0-only` because SPDX has no identifier for the commercial offer — see [License](#license) for the full breakdown.\n\n> **Upgrading an existing app?** Read [docs/UPGRADING.md](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/main/docs/UPGRADING.md)\n> first — this release changes storage, adds new input rejections, and is not\n> safely downgradable.\n\n## Table of Contents\n\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Platform Setup](#platform-setup)\n- [Quick Start](#quick-start)\n- [End-to-End Encryption](#end-to-end-encryption)\n- [Protocol Lifecycle](#protocol-lifecycle)\n- [Configuration](#configuration)\n- [API Reference](#api-reference)\n- [Events](#events)\n- [Types](#types)\n- [DORS (Transport Switching)](#dors-dynamic-offline-relay-switch)\n- [Mesh Networking](#mesh-networking)\n- [Reliability Layer](#reliability-layer)\n- [File Transfer](#file-transfer)\n- [Troubleshooting](#troubleshooting)\n- [License](#license)\n\n---\n\n## Requirements\n\n| Platform | Version |\n|----------|---------|\n| React Native | >= 0.70.0 |\n| iOS | >= 13.0 |\n| Android | >= API 24 (Android 7.0) |\n| Node.js | >= 16 |\n\n---\n\n## Installation\n\n```bash\nnpm install @offline-protocol/mesh-sdk\n```\n\n### iOS\n\n```bash\ncd ios && pod install\n```\n\nAutolinking picks the SDK up — no `pod` entry, `:modular_headers`, or\n`post_install` hook of your own is required. The pre-built native binary ships as\nan XCFramework, so CocoaPods selects the right slice per build SDK and **device\nand simulator builds both work** with no linker configuration.\n\n> **Upgrading from below 0.20.0:** delete any manual `pod 'MeshSdk', ...` line\n> (and any `post_install` hook that set `OTHER_LDFLAGS`/`LIBRARY_SEARCH_PATHS`\n> for it) from your Podfile before running `pod install`. See\n> [`docs/UPGRADING.md`](../../docs/UPGRADING.md).\n\n### Android\n\nPre-built native libraries are included. No additional setup required.\n\n---\n\n## Platform Setup\n\n### iOS Permissions\n\nAdd to `Info.plist`:\n\n```xml\n<key>NSBluetoothAlwaysUsageDescription</key>\n<string>Required for offline mesh communication</string>\n\n<key>NSBluetoothPeripheralUsageDescription</key>\n<string>Required for offline mesh communication</string>\n\n<key>UIBackgroundModes</key>\n<array>\n    <string>bluetooth-central</string>\n    <string>bluetooth-peripheral</string>\n</array>\n```\n\n### Android Permissions\n\nAdd to `AndroidManifest.xml`:\n\n```xml\n<!-- Bluetooth (Android 12+) -->\n<uses-permission android:name=\"android.permission.BLUETOOTH_SCAN\" />\n<uses-permission android:name=\"android.permission.BLUETOOTH_ADVERTISE\" />\n<uses-permission android:name=\"android.permission.BLUETOOTH_CONNECT\" />\n\n<!-- Bluetooth (Android 11 and below) -->\n<uses-permission android:name=\"android.permission.BLUETOOTH\" />\n<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\" />\n<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />\n\n<!-- WiFi Direct -->\n<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />\n<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\" />\n<uses-permission android:name=\"android.permission.NEARBY_WIFI_DEVICES\" />\n\n<!-- Internet -->\n<uses-permission android:name=\"android.permission.INTERNET\" />\n```\n\n---\n\n## Quick Start\n\n```typescript\nimport { OfflineProtocol, MessagePriority } from '@offline-protocol/mesh-sdk';\n\nconst protocol = new OfflineProtocol({\n  appId: 'my-app',\n  profile: 'user123',\n  // Encryption is enabled by default - MLS is auto-initialized on start()\n});\n\nprotocol.on('message_received', (event) => {\n  console.log(`From ${event.sender}: ${event.content}`);\n  // event.encrypted indicates if the message was encrypted\n});\n\nawait protocol.start(); // MLS auto-initialized with secure storage\n\n// Messages are automatically encrypted when possible!\nconst messageId = await protocol.sendMessage({\n  recipient: 'user456',\n  content: 'Hello!',  // Automatically encrypted\n  priority: MessagePriority.High,\n});\n\nawait protocol.stop();\nawait protocol.destroy();\n```\n\nBuilt-in secure and restartable-state stores are isolated by both `appId` and\n`profile`. Changing either value selects a fresh storage namespace.\n\nUpgrading an install that predates namespacing keeps both halves of its state,\nby two different mechanisms.\n\nIts **MLS identity** is adopted by read-through: the first account to launch\nclaims the old, unscoped secure store and inherits its identity, sessions, and\nTOFU pins on demand. That store was shared by every account on the install, so\nonly one can inherit it — a second account starts from a fresh identity and\nreports it as an `error` diagnostic\n(`Legacy secure store belongs to another account…`).\n\nIts **restartable delivery state** — outbox, pending queue, session and Welcome\nlifecycles, peer key packages and capabilities, media descriptors, blocked\nusers, the Lamport clock — is swept out of the credential store into the app\ncontainer on the first launch of this release, and the credential-store copy is\ndeleted once the move is durable. The sweep is resumable and one-shot.\n\nAn account that loses the claim above gets neither: no identity *and* no\ndelivery state, so it comes up with an empty outbox and an empty block list,\nevery previously blocked peer unblocked. That is what the `error` diagnostic is\ntelling you.\n\nBecause the sweep deletes the credential-store copy, **downgrading is not a\nrollback** — an older build reads the old location and finds none of it. Roll\nforward, not back.\n\n#### Erasing an account on logout\n\n`destroy()` releases the in-memory instance and nothing else: the outbox,\npending queue, block list, and MLS identity stay on disk, so signing back in\nre-drives undelivered messages, and on iOS — where the Keychain outlives the app\ncontainer — the account survives an uninstall and is adopted again after a\nreinstall. To erase it:\n\n```typescript\nawait protocol.destroy();\nawait protocol.wipePersistedState(appId, profile);\n```\n\nWipe after destroy, never under a live instance (the native side rejects that),\nand pass the same `appId`/`profile` the protocol was created with — `destroy()`\nclears the config the namespace is derived from, which is why the identity is an\nargument. It is irreversible, it rotates the account's MLS and Nostr identities,\nand it leaves other accounts on the device untouched. Full semantics, including\nwhat happens to a pre-namespace store shared with another account:\n[UPGRADING §10](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/main/docs/UPGRADING.md#logging-out-and-switching-accounts).\n\n### End-to-End Encryption\n\nThe SDK provides automatic end-to-end encryption using MLS (RFC 9420):\n\n```typescript\nconst protocol = new OfflineProtocol({\n  appId: 'my-app',\n  profile: 'alice',\n  encryption: {\n    enabled: true,           // Auto-encrypt messages (default)\n    autoKeyExchange: true,   // Exchange keys on peer discovery (default)\n    storePending: true,      // Queue messages until session ready (default)\n  },\n});\n\nawait protocol.start(); // MLS auto-initialized when encryption.enabled is true\n\n// That's it! Messages are now automatically encrypted/decrypted.\n// Key packages are exchanged automatically when peers are discovered.\n```\n\nFour runtime kill switches (all default `true`) let you disable a negotiated\nformat or the recovery path without an SDK release:\n\n| Flag | Disables |\n|------|----------|\n| `binaryWireEnabled` (top level) | Compact binary mesh framing, back to the JSON floor |\n| `encryption.compactEnvelopeEnabled` | Compact MLS envelope, back to the JSON floor |\n| `encryption.richPayloadEnabled` | Sealing rich extras — they drop rather than going cleartext |\n| `encryption.cryptoRecoveryEnabled` | Epoch-desync healing, back to legacy drop-and-ACK |\n\nEach degrades independently, and inbound parsing of every format stays on\nregardless, so a disabled fleet still interoperates with an enabled one. See\n[Wire Format Kill Switches](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/main/docs/configuration.md#wire-format-kill-switches)\nand [Crypto-Failure Recovery](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/main/docs/configuration.md#crypto-failure-recovery).\n\nSee the [MLS Integration Guide](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/main/docs/mls-integration.md) for advanced usage.\n\n---\n\n## Protocol Lifecycle\n\n### Complete Flow Example\n\n```typescript\nimport { \n  OfflineProtocol, \n  MessagePriority,\n  ProtocolEvent,\n  MessageReceivedEvent,\n  MessageDeliveredEvent,\n  NeighborDiscoveredEvent,\n} from '@offline-protocol/mesh-sdk';\n\n// 1. CREATE PROTOCOL INSTANCE\nconst protocol = new OfflineProtocol({\n  appId: 'my-chat-app',\n  profile: 'alice-device-001',\n});\n\n// 2. REGISTER EVENT LISTENERS (before starting)\n\n// Track discovered peers\nconst discoveredPeers = new Map<string, number>(); // peerId -> rssi\n\nprotocol.on('neighbor_discovered', (event: NeighborDiscoveredEvent) => {\n  console.log(`[PEER FOUND] ${event.peer_id} via ${event.transport}, RSSI: ${event.rssi}`);\n  discoveredPeers.set(event.peer_id, event.rssi ?? -100);\n});\n\nprotocol.on('neighbor_lost', (event) => {\n  console.log(`[PEER LOST] ${event.peer_id}`);\n  discoveredPeers.delete(event.peer_id);\n});\n\n// Track outgoing messages\nconst pendingMessages = new Map<string, { recipient: string; content: string }>();\n\nprotocol.on('message_sent', (event) => {\n  console.log(`[SENT] Message ${event.message_id} to ${event.recipient}`);\n  pendingMessages.set(event.message_id, {\n    recipient: event.recipient,\n    content: event.content,\n  });\n});\n\nprotocol.on('message_delivered', (event: MessageDeliveredEvent) => {\n  console.log(`[DELIVERED] Message ${event.message_id} in ${event.latency_ms}ms, ${event.hop_count} hops`);\n  pendingMessages.delete(event.message_id);\n});\n\nprotocol.on('message_failed', (event) => {\n  console.log(`[FAILED] Message ${event.message_id}: ${event.reason} (${event.retry_count} retries)`);\n  pendingMessages.delete(event.message_id);\n});\n\n// Handle incoming messages\nprotocol.on('message_received', (event: MessageReceivedEvent) => {\n  console.log(`[RECEIVED] From ${event.sender}: ${event.content}`);\n  console.log(`  - Message ID: ${event.message_id}`);\n  console.log(`  - Hop count: ${event.hop_count}`);\n  console.log(`  - Transport: ${event.transport}`);\n  \n  // Process the message in your app\n  handleIncomingMessage(event);\n});\n\n// Monitor transport changes\nprotocol.on('transport_switched', (event) => {\n  console.log(`[TRANSPORT] Switched from ${event.from} to ${event.to}: ${event.reason}`);\n});\n\n// 3. START THE PROTOCOL\nawait protocol.start();\n// At this point:\n// - BLE scanning begins (discovers nearby devices)\n// - BLE advertising begins (makes this device discoverable)\n// - neighbor_discovered events will start firing as peers are found\n\n// 4. WAIT FOR PEERS (optional helper)\nasync function waitForPeer(peerId: string, timeoutMs = 30000): Promise<boolean> {\n  if (discoveredPeers.has(peerId)) return true;\n  \n  return new Promise((resolve) => {\n    const timeout = setTimeout(() => resolve(false), timeoutMs);\n    \n    const handler = (event: NeighborDiscoveredEvent) => {\n      if (event.peer_id === peerId) {\n        clearTimeout(timeout);\n        protocol.off('neighbor_discovered', handler);\n        resolve(true);\n      }\n    };\n    \n    protocol.on('neighbor_discovered', handler);\n  });\n}\n\n// 5. SEND A MESSAGE\nasync function sendChatMessage(recipientId: string, text: string) {\n  try {\n    const messageId = await protocol.sendMessage({\n      recipient: recipientId,\n      content: text,\n      priority: MessagePriority.High,\n    });\n    console.log(`Message queued with ID: ${messageId}`);\n    return messageId;\n  } catch (error) {\n    console.error('Failed to send message:', error);\n    throw error;\n  }\n}\n\n// 6. CLEANUP ON APP EXIT\nasync function cleanup() {\n  await protocol.stop();\n  await protocol.destroy();\n}\n```\n\n### Event Sequence Timeline\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│                        PROTOCOL LIFECYCLE                           │\n├─────────────────────────────────────────────────────────────────────┤\n│                                                                     │\n│  new OfflineProtocol(config)                                        │\n│       │                                                             │\n│       ▼                                                             │\n│  protocol.on('...', handler)  ← Register all event listeners        │\n│       │                                                             │\n│       ▼                                                             │\n│  await protocol.start()                                             │\n│       │                                                             │\n│       ├──► BLE advertising starts (device becomes discoverable)    │\n│       ├──► BLE scanning starts (looking for other devices)         │\n│       │                                                             │\n│       ▼                                                             │\n│  ┌─────────────────────────────────────────────────────────────┐   │\n│  │  PEER DISCOVERY PHASE                                        │   │\n│  │                                                              │   │\n│  │  neighbor_discovered { peer_id, transport, rssi }           │   │\n│  │  neighbor_discovered { peer_id, transport, rssi }           │   │\n│  │  ...                                                         │   │\n│  │                                                              │   │\n│  │  MeshController evaluates peers, establishes connections     │   │\n│  │  (MEMBER for same cluster, BRIDGE for different clusters)   │   │\n│  └─────────────────────────────────────────────────────────────┘   │\n│       │                                                             │\n│       ▼                                                             │\n│  ┌─────────────────────────────────────────────────────────────┐   │\n│  │  MESSAGING PHASE                                             │   │\n│  │                                                              │   │\n│  │  protocol.sendMessage({ recipient, content, priority })     │   │\n│  │       │                                                      │   │\n│  │       ▼                                                      │   │\n│  │  message_sent { message_id, recipient, content, ... }       │   │\n│  │       │                                                      │   │\n│  │       ├──► [SUCCESS] message_delivered { message_id, ... }  │   │\n│  │       │                                                      │   │\n│  │       └──► [FAILURE] message_failed { message_id, reason }  │   │\n│  │                                                              │   │\n│  │  ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │   │\n│  │                                                              │   │\n│  │  INCOMING: message_received { sender, content, ... }        │   │\n│  └─────────────────────────────────────────────────────────────┘   │\n│       │                                                             │\n│       │  (peers may come and go)                                    │\n│       │                                                             │\n│       ▼                                                             │\n│  neighbor_lost { peer_id }                                          │\n│  neighbor_discovered { peer_id, ... }  ← new peer appears           │\n│       │                                                             │\n│       ▼                                                             │\n│  await protocol.stop()                                              │\n│       │                                                             │\n│       ├──► BLE scanning stops                                       │\n│       ├──► BLE advertising stops                                    │\n│       ├──► All connections closed                                   │\n│       │                                                             │\n│       ▼                                                             │\n│  await protocol.destroy()  ← Clean up resources                     │\n│                                                                     │\n└─────────────────────────────────────────────────────────────────────┘\n```\n\n### What Happens Under the Hood\n\n#### On `protocol.start()`\n\n1. **Protocol core starts** in Rust\n2. **BLE Manager initializes**:\n   - Starts scanning for devices advertising the Offline Protocol service UUID\n   - Starts advertising this device with mesh metadata (degree, free slots, battery, uptime)\n3. **Process timer starts** - polls for outgoing fragments every 100ms\n\n#### On Peer Discovery\n\n1. **BLE scan detects advertisement** from another device\n2. **MeshController.shouldInitiateOutbound()** evaluates the candidate:\n   - Checks connection budget (default max: 4)\n   - Calculates peer score (RSSI, availability, battery, uptime, stability, load)\n   - Determines if this is a cluster bridge opportunity\n3. **If accepted**: BLE connection established, `neighbor_discovered` fires\n4. **If at capacity**: May evict a lower-scoring peer to make room\n\n#### On `protocol.sendMessage()`\n\n1. **Message created** with unique ID, TTL, timestamp, priority\n2. **message_sent event** fires immediately\n3. **Message queued** for transmission\n4. **DORS selects transport** (BLE, WiFi Direct, or Internet)\n5. **Message sent** to connected peers\n6. **ACK tracking begins** (default 10s timeout)\n7. **On ACK received**: `message_delivered` event fires\n8. **On timeout/max retries**: `message_failed` event fires\n\n#### On Incoming Message\n\n1. **BLE fragment received** from peer\n2. **Deduplication check** - skip if message ID already seen\n3. **If addressed to this device**: `message_received` event fires\n4. **ACK sent back** to sender\n5. **Hop count incremented** for metrics\n\n#### On `protocol.stop()`\n\n1. **BLE Manager stops** scanning and advertising\n2. **All peer connections closed**\n3. **neighbor_lost events** fire for each disconnected peer\n4. **Protocol core stops**\n\n### Diagnostic Events\n\nThe SDK emits diagnostic events for debugging:\n\n```typescript\nprotocol.on('diagnostic', (event) => {\n  console.log(`[${event.level.toUpperCase()}] ${event.message}`, event.context);\n});\n```\n\n---\n\n## Configuration\n\n### ProtocolConfig\n\n```typescript\ninterface ProtocolConfig {\n  appId: string;\n  profile: string;\n  transports?: TransportsConfig;\n  binaryWireEnabled?: boolean;  // binary wire-codec kill switch (default: true)\n  encryption?: EncryptionConfig;\n  dors?: DorsConfig;\n  network?: NetworkConfig;\n  reliability?: ReliabilityConfig;\n  fileTransfer?: FileTransferConfig;\n}\n```\n\n### TransportsConfig\n\n```typescript\ninterface TransportsConfig {\n  ble?: {\n    enabled: boolean;  // default: true\n  };\n  internet?: {\n    enabled: boolean;           // default: false\n    serverAddress?: string;     // WebSocket URL\n    autoReconnect?: boolean;    // default: true\n    reconnectDelay?: number;    // ms\n  };\n  wifiDirect?: {\n    enabled: boolean;           // default: false (Android only)\n    deviceName?: string;\n    autoAccept?: boolean;\n    groupOwnerIntent?: number;  // 0-15\n  };\n  reticulum?: {\n    enabled: boolean;           // default: false (requires external daemon)\n  };\n  nostr?: {\n    enabled: boolean;           // default: false\n    relayUrls?: string[];       // wss:// relay URLs\n    connectionTimeout?: number; // seconds, default: 30\n    autoReconnect?: boolean;    // default: true\n    reconnectDelay?: number;    // ms, default: 1000\n    maxReconnectAttempts?: number; // default: 0 (infinite)\n  };\n}\n```\n\n### DorsConfig\n\nControls transport switching behavior.\n\n```typescript\ninterface DorsConfig {\n  preferOnline?: boolean;              // default: false\n  switchHysteresis?: number;           // default: 15.0\n  switchCooldownSecs?: number;         // default: 20\n  bleToWifiRetryThreshold?: number;    // default: 2\n  rssiSwitchThreshold?: number;        // default: -85 dBm\n  congestionQueueThreshold?: number;   // default: 50\n  stabilityWindowSecs?: number;        // default: 8\n  poorSignalDurationSecs?: number;     // default: 10\n  ttlEscalationThreshold?: number;     // default: 2\n  congestionDurationSecs?: number;     // default: 10\n  ttlEscalationHoldSecs?: number;      // default: 20\n  historyWindowSize?: number;          // default: 10\n  queueRecoveryRatio?: number;         // default: 0.5\n}\n```\n\n\n### EncryptionConfig\n\n```typescript\ninterface EncryptionConfig {\n  enabled?: boolean;                 // default: true\n  autoKeyExchange?: boolean;         // default: true\n  storePending?: boolean;            // default: true\n  requireEncryption?: boolean;       // default: true (fail-closed)\n  compactEnvelopeEnabled?: boolean;  // default: true (kill switch)\n  richPayloadEnabled?: boolean;      // default: true (kill switch)\n  cryptoRecoveryEnabled?: boolean;   // default: true (kill switch)\n  pendingQueue?: PendingQueueConfig;\n}\n\ninterface PendingQueueConfig {\n  maxPendingPerPeer?: number;  // default: 64\n  maxPendingGlobal?: number;   // default: 4096\n  pendingTtlMs?: number;       // default: 86400000 (24 h)\n  overflowPolicy?: 'drop_oldest' | 'drop_newest';  // default: drop_oldest\n}\n```\n\n`pendingQueue` bounds the **inbound** pending-decryption queue — messages that\narrived before the MLS session was ready. The **outbound** pre-session queue is a\ndifferent queue: it is bounded at a fixed 64 messages / 2 MiB per peer and\n4096 / 16 MiB globally (not configurable), with a configurable lifetime via\n`reliability.retry.pendingMessageMaxLifetimeMs`.\n\n### NetworkConfig\n\n```typescript\ninterface NetworkConfig {\n  initialTtl?: number;  // default: 8\n}\n```\n\n### ReliabilityConfig\n\n```typescript\ninterface ReliabilityConfig {\n  ack?: {\n    defaultTimeoutMs?: number;   // default: 10000\n    maxPendingAcks?: number;     // default: 1000\n  };\n  retry?: {\n    maxRetries?: number;         // default: 10\n    initialDelayMs?: number;     // default: 1000\n    maxDelayMs?: number;         // default: 300000\n    backoffMultiplier?: number;  // default: 2.0\n    outboxMaxLifetimeMs?: number; // default: 604800000\n    pendingMessageMaxLifetimeMs?: number; // default: 604800000\n  };\n  dedup?: {\n    maxTrackedMessages?: number; // default: 2000, must be > 0\n    retentionTimeSecs?: number;  // default: 86400, must be > 0\n  };\n}\n```\n\nBoth dedup fields are **rejected at `0`** — at `maxTrackedMessages: 0` duplicate\nsuppression is effectively off, which is a replay-defence gap the SDK used to\naccept in silence. A `reliability` block passed to the **constructor** is applied\nduring `start()`, where a rejection is logged and swallowed (the SDK keeps its\ndefaults), so grep for `Failed to apply … configuration` rather than assuming it\ntook. A direct `updateDedupConfig(...)` / `updateAckConfig(...)` /\n`updateRetryConfig(...)` call rejects the promise instead.\n\n### FileTransferConfig\n\n```typescript\ninterface FileTransferConfig {\n  chunkSize?: number;    // default: 32768 (32KB)\n  maxFileSize?: number;  // default: 104857600 (100MB)\n}\n```\n\n---\n\n## API Reference\n\n### Constructor\n\n```typescript\nnew OfflineProtocol(config: ProtocolConfig)\n```\n\n### Lifecycle Methods\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `start()` | `Promise<void>` | Start the protocol and all enabled transports |\n| `stop()` | `Promise<void>` | Stop the protocol and disconnect all peers |\n| `pause()` | `Promise<void>` | Pause for background mode |\n| `resume()` | `Promise<void>` | Resume from paused state |\n| `destroy()` | `Promise<void>` | Clean up all resources |\n| `getState()` | `Promise<ProtocolState>` | Get current state (`Stopped`, `Running`, `Paused`) |\n\n### Messaging\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `sendMessage(params: SendMessageParams)` | `Promise<string>` | Send message, returns message ID |\n| `receiveMessage()` | `Promise<MessageReceivedEvent \\| null>` | Poll for next received message |\n\n```typescript\ninterface SendMessageParams {\n  recipient: string;\n  content: string;\n  priority?: MessagePriority;  // default: Medium\n}\n\nenum MessagePriority {\n  Low = 0,\n  Medium = 1,\n  High = 2,\n  Critical = 3,\n}\n```\n\n### Connection Requests\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `sendConnectionRequest(params)` | `Promise<string>` | Send a connection request, returns message ID |\n| `acceptConnectionRequest(params)` | `Promise<string>` | Accept a received request |\n| `rejectConnectionRequest(params)` | `Promise<string>` | Reject a received request |\n| `cancelConnectionRequest(params)` | `Promise<string>` | Cancel a request you sent |\n\n`recipient` is always the target's canonical address (`off1…`) — the value\nthey derived from their own identity key, which is exactly what\n`neighbor_discovered` reports as `peer_id` (see the identity contract under\n[neighbor_discovered](#neighbor_discovered)).\n\nThe message ID returned by `sendConnectionRequest` is the correlation key\nfor the request's outcome events:\n\n| Outcome | Event | Correlate by |\n|---------|-------|--------------|\n| Recipient offline (relay delivery error) | `connection_request_undeliverable` (`reason` starts with `recipient_unreachable`) | `message_id` |\n| Retry budget exhausted | `connection_request_undeliverable` (`reason: 'max_retries_exceeded'`) **and** `message_failed` | `message_id` |\n| Reached the recipient's device | `message_delivered` | `message_id` |\n| Recipient accepted | `connection_accepted` | `accepted_by` (peer id) |\n| Recipient rejected | `connection_rejected` | `rejected_by` (peer id) |\n| Sender cancelled (recipient side) | `connection_request_cancelled` | `cancelled_by` (peer id) |\n\n`connection_request_undeliverable` is a status signal, not proof of\npermanent failure: the retry machinery may still deliver the original if\nthe peer comes back online, so a user-initiated resend can duplicate the\noriginal request on the recipient's side.\n\n### Transport Management\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `getActiveTransports()` | `Promise<TransportType[]>` | Get list of active transports |\n| `enableTransport(type, config?)` | `Promise<void>` | Enable a transport |\n| `disableTransport(type)` | `Promise<void>` | Disable a transport |\n| `forceTransport(type)` | `Promise<void>` | Force specific transport (override DORS) |\n| `releaseTransportLock()` | `Promise<void>` | Release forced transport, let DORS decide |\n| `getTransportMetrics(type)` | `Promise<TransportMetrics \\| null>` | Get transport statistics |\n\n```typescript\ntype TransportType = 'ble' | 'internet' | 'wifiDirect' | 'reticulum' | 'nostr';\n\ninterface TransportMetrics {\n  packetsSent: number;\n  packetsReceived: number;\n  bytesSent: number;\n  bytesReceived: number;\n  errorRate: number;\n  avgLatencyMs: number;\n}\n```\n\n### Bluetooth\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `isBluetoothEnabled()` | `Promise<boolean>` | Check if Bluetooth is enabled |\n| `requestEnableBluetooth()` | `Promise<boolean>` | Request to enable Bluetooth (Android only) |\n| `getBLePeerCount()` | `Promise<number>` | Get number of discovered BLE peers |\n\n### Network Topology\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `getTopology()` | `Promise<NetworkTopology>` | Get network topology snapshot |\n| `getMessageStats()` | `Promise<MessageDeliveryStats[]>` | Get message delivery statistics |\n| `getDeliverySuccessRate()` | `Promise<number>` | Get delivery success rate (0-1) |\n| `getMedianLatency()` | `Promise<number \\| null>` | Get median latency in ms |\n| `getMedianHops()` | `Promise<number \\| null>` | Get median hop count |\n\n### Battery\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `setBatteryLevel(level)` | `Promise<void>` | Set battery level (0-100) for mesh decisions |\n| `getBatteryLevel()` | `Promise<number \\| null>` | Get current battery level |\n\n### Telemetry\n\nOpt-in by key: the SDK collects, batches and uploads accepted events to the\nOffline Protocol ingest on its own background thread. Nothing reaches\nJavaScript per event, and the native module owns the lifecycle. What leaves\nthe device is inventoried in [docs/telemetry.md](../../docs/telemetry.md);\nthe store disclosures are in [docs/privacy.md](../../docs/privacy.md).\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `enableTelemetry(config)` | `Promise<void>` | Start with `{ apiKey, appId, appVersion }` from the developer portal; rejects `TelemetryConfigInvalid` naming a refused field |\n| `disableTelemetry()` | `Promise<void>` | Final flush (up to 3 s), then stop |\n| `flushTelemetry()` | `Promise<void>` | Ask the uploader to send now |\n| `telemetryStats()` | `Promise<TelemetryStats \\| null>` | Sent, accepted, dropped, buffered, session id, last error |\n| `endTelemetrySession()` | `Promise<void>` | Summary, flush, fresh session id |\n| `setTelemetryEnabled(enabled)` | `Promise<void>` | Runtime opt-out for a user setting; queued batches still drain |\n| `telemetryInstallId()` | `Promise<string \\| null>` | The opaque per-install id, stamped on batches only with `includeDeviceId` |\n\n### DORS Configuration\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `updateDorsConfig(config)` | `Promise<void>` | Update DORS settings at runtime |\n| `getDorsConfig()` | `Promise<DorsConfig>` | Get current DORS configuration |\n| `shouldEscalateToWifi()` | `Promise<boolean>` | Check if DORS recommends WiFi escalation |\n\n### Reliability Configuration\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `updateAckConfig(config)` | `Promise<void>` | Update ACK settings |\n| `updateRetryConfig(config)` | `Promise<void>` | Update retry settings |\n| `updateDedupConfig(config)` | `Promise<void>` | Update deduplication settings |\n| `getDedupStats()` | `Promise<DedupStats>` | Get deduplication statistics |\n| `getPendingAckCount()` | `Promise<number>` | Get pending ACK count |\n| `getRetryQueueSize()` | `Promise<number>` | Get retry queue size |\n\n### Event Listeners\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `on(eventType, listener)` | `this` | Register event listener |\n| `off(eventType, listener)` | `this` | Remove event listener |\n| `once(eventType, listener)` | `this` | Register one-time listener |\n| `removeAllListeners(eventType?)` | `this` | Remove all listeners |\n\n---\n\n## Events\n\n\n### Message Events\n\n#### message_sent\n\n```typescript\ninterface MessageSentEvent {\n  type: 'message_sent';\n  message_id: string;\n  sender: string;\n  recipient: string;\n  content: string;\n  priority: 'low' | 'medium' | 'high' | 'critical';\n  requires_ack: boolean;\n  timestamp: number;\n}\n```\n\n#### message_received\n\n```typescript\ninterface MessageReceivedEvent {\n  type: 'message_received';\n  message_id: string;\n  sender: string;\n  recipient: string;\n  content: string;\n  hop_count: number;\n  transport: string;\n  timestamp: number;\n}\n```\n\n#### message_delivered\n\n```typescript\ninterface MessageDeliveredEvent {\n  type: 'message_delivered';\n  message_id: string;\n  latency_ms: number;\n  hop_count: number;\n  transport: string;\n}\n```\n\n#### message_failed\n\n```typescript\ninterface MessageFailedEvent {\n  type: 'message_failed';\n  message_id: string;\n  reason: string;\n  retry_count: number;\n}\n```\n\n### Network Events\n\n#### transport_switched\n\n```typescript\ninterface TransportSwitchedEvent {\n  type: 'transport_switched';\n  from: string | null;\n  to: string;\n  reason: string;\n}\n```\n\n#### neighbor_discovered\n\n```typescript\ninterface NeighborDiscoveredEvent {\n  type: 'neighbor_discovered';\n  peer_id: string;\n  transport: string;\n  rssi?: number;\n}\n```\n\n<a name=\"identity\"></a>\n**Identity contract**: `peer_id` is the peer's canonical address (`off1…`) —\nthe value that peer derived from its own identity key, regardless of which\ntransport discovered them. Use it directly as `recipient` in `sendMessage`\nand `sendConnectionRequest`; there is no separate transport-level address to\nresolve. No app chooses its own address, so a peer claiming one can be\nchecked by re-deriving it from the key it presents. Your own is\n`localAddress()`.\n\n#### neighbor_lost\n\n```typescript\ninterface NeighborLostEvent {\n  type: 'neighbor_lost';\n  peer_id: string;\n}\n```\n\n#### network_metrics\n\n```typescript\ninterface NetworkMetricsEvent {\n  type: 'network_metrics';\n  neighbor_count: number;\n  relay_count: number;\n  delivery_ratio: number;\n  avg_latency_ms: number;\n}\n```\n\n### Connection Events\n\nSee [Connection Requests](#connection-requests) for the full outcome table.\n\n#### connection_request_received\n\nFires on the recipient's side when a connection request arrives.\n\n```typescript\ninterface ConnectionRequestReceivedEvent {\n  type: 'connection_request_received';\n  sender: string;\n  sender_name: string;\n  timestamp: number;\n  key_package?: number[];\n  initial_message?: string;\n}\n```\n\n#### connection_request_undeliverable\n\nFires on the sender's side when a request could not be delivered — the\nrecipient is offline (`reason` starts with `recipient_unreachable`) or the\nretry budget ran out (`reason: 'max_retries_exceeded'`, alongside a\ngeneric `message_failed`). Correlate via the message ID returned by\n`sendConnectionRequest`. This is a status signal, not proof of permanent\nfailure.\n\n```typescript\ninterface ConnectionRequestUndeliverableEvent {\n  type: 'connection_request_undeliverable';\n  recipient: string;\n  message_id: string;\n  reason: string;\n}\n```\n\n#### connection_accepted\n\n```typescript\ninterface ConnectionAcceptedEvent {\n  type: 'connection_accepted';\n  accepted_by: string;\n  accepted_by_name: string;\n  timestamp: number;\n  key_package?: number[];\n}\n```\n\n#### connection_rejected\n\n```typescript\ninterface ConnectionRejectedEvent {\n  type: 'connection_rejected';\n  rejected_by: string;\n}\n```\n\n#### connection_request_cancelled\n\n```typescript\ninterface ConnectionRequestCancelledEvent {\n  type: 'connection_request_cancelled';\n  cancelled_by: string;\n}\n```\n\n### Presence Events\n\n#### presence_updated\n\nOne unified stream for both presence channels, discriminated by `source`:\n\n```typescript\ninterface PresenceUpdatedEvent {\n  type: 'presence_updated';\n  peer_id: string;\n  status: 'online' | 'away' | 'offline';\n  timestamp: number;\n  last_seen_ms?: number; // relay-sourced only, when the relay knows it\n  source: 'internet' | 'reticulum' | 'peer';\n}\n```\n\n- `source: 'internet'` — relay-observed presence, produced by the SDK's\n  automatic watch loop, an explicit `checkInternetPresence()`, **or a\n  failed send**: when the relay reports a delivery error naming the\n  recipient unreachable, the SDK emits an `internet`-sourced `offline`\n  event for that peer (no `last_seen_ms`) — so headers can see an\n  internet/offline event they never queried for. Carries `last_seen_ms`\n  when the relay knows it (the relay can legitimately not know — e.g. the\n  peer hasn't connected since the relay last restarted — so render \"Last\n  seen\" defensively).\n- `source: 'reticulum'`: a gateway's `PresenceStatus` answer over the\n  Reticulum daemon contract, solicited by the SDK's watchlist or pushed when\n  a watched peer's state changes, and the same `offline` on a failed send.\n  Same standing and same decay as `internet`; the two are named apart only\n  so a header can tell which carrier answered.\n- `source: 'peer'` — a peer-sent self-report (`sendPresenceUpdate`),\n  arriving over any transport.\n\nA direct-chat header that should behave like classic relay presence\n(\"Online\" / \"Last seen …\") must filter on `source === 'internet'`;\nmixing in peer self-reports makes nearby mesh contact flip a header that\nusers read as server-observed reachability.\n\nThe SDK never dedupes unchanged statuses: every relay answer re-emits\nthis event, so a manual check on chat open always produces a fresh event\nto render from. Exceptions: presence for blocked peers and your own user\nid is suppressed entirely.\n\n**Checking presence on demand:**\n\n```typescript\n// Chat open / app focus: force parks the query through the socket's\n// resume window (up to ~8s) instead of failing fast.\nconst sent = await protocol.checkInternetPresence(peerId, { force: true });\n// The answer arrives as presence_updated with source: 'internet'.\n```\n\nSubscribe to `presence_updated` before calling — the answer is an event,\nnot the promise value, and events are not replayed.\n\n**Migrating from an app-side presence layer:** if your app previously\nwrapped the SDK with its own throttle/dedupe/cache, note that the SDK\nitself never throttles or dedupes manual checks — every accepted call\nsends a fresh relay query (only a client-side mirror of the relay's rate\nbudget can defer it, which `force` waits out). Delete the wrapper, filter\non `source === 'internet'`, and use `last_seen_ms` from the event as the\nonly \"last seen\" input.\n\n### File Events\n\n#### file_progress\n\n```typescript\ninterface FileProgressEvent {\n  type: 'file_progress';\n  file_id: string;\n  chunks_sent: number;\n  total_chunks: number;\n  percentage: number;\n}\n```\n\n#### file_received\n\n```typescript\ninterface FileReceivedEvent {\n  type: 'file_received';\n  file_id: string;\n  file_name: string;\n  file_size: number;\n  sender: string;\n}\n```\n\n### Diagnostic Events\n\n```typescript\ninterface DiagnosticEvent {\n  type: 'diagnostic';\n  level: 'info' | 'warning' | 'error';\n  message: string;\n  context?: Record<string, unknown>;\n}\n```\n\n---\n\n## Types\n\n### NetworkTopology\n\n```typescript\ninterface NetworkTopology {\n  timestamp: number;\n  /** This device's `off1…` address; empty string before `initializeMls`. */\n  local_user_id: string;\n  nodes: NetworkNode[];\n  links: NetworkLink[];\n  stats: NetworkStats;\n}\n\ninterface NetworkNode {\n  user_id: string;\n  role: string;  // 'Normal' or 'Relay' from topology API\n  connection_count: number;\n  battery_level?: number;\n  last_seen: number;\n  transports: TransportType[];\n}\n\ninterface NetworkLink {\n  from: string;\n  to: string;\n  quality: number;  // 0.0 - 1.0\n  transport: TransportType;\n  rssi?: number;\n}\n\ninterface NetworkStats {\n  total_nodes: number;\n  relay_nodes: number;  // Count of nodes with 'Relay' role in topology\n  total_connections: number;\n  avg_link_quality: number;\n  network_diameter?: number;\n}\n```\n\n### MessageDeliveryStats\n\n```typescript\ninterface MessageDeliveryStats {\n  message_id: string;\n  sender: string;\n  recipient: string;\n  sent_at: number;\n  delivered_at?: number;\n  hop_count: number;\n  transport?: TransportType;\n  retry_count: number;\n  latency_ms?: number;\n}\n```\n\n### DedupStats\n\n```typescript\ninterface DedupStats {\n  totalTracked: number;\n  recentTracked: number;\n  capacityUsedPercent: number;\n  mode: 'HashMap' | 'BloomFilter';\n}\n```\n\n### FileProgress\n\n```typescript\ninterface FileProgress {\n  file_id: string;\n  file_name: string;\n  file_size: number;\n  chunks_completed: number;\n  total_chunks: number;\n  percentage: number;\n}\n```\n\n### ProtocolState\n\n```typescript\nenum ProtocolState {\n  Stopped = 0,\n  Running = 1,\n  Paused = 2,\n}\n```\n\n---\n\n## DORS (Dynamic Offline Relay Switch)\n\nDORS automatically selects the optimal transport based on real-time conditions.\n\n### Scoring Factors\n\n| Factor | Description |\n|--------|-------------|\n| Signal Strength | RSSI for BLE/WiFi (-50 to -100 dBm) |\n| Proximity | Hop count to destination |\n| Bandwidth | Transport throughput capability |\n| Congestion | Queue depth and backlog |\n| Energy | Battery impact of transport |\n| Reliability | Historical delivery success rate |\n| Load | Current processing capacity |\n\n### Transport Weights\n\n**BLE**: Optimized for energy efficiency and mesh scenarios\n- Signal: 30%, Energy: 30%, Congestion: 15%, Proximity: 15%\n\n**WiFi Direct**: Optimized for high throughput\n- Bandwidth: 35%, Proximity: 20%, Congestion: 20%, Reliability: 15%\n\n**Internet**: Optimized for server connectivity\n- Bandwidth: 35%, Reliability: 30%, Congestion: 15%, Energy: 10%\n\n**Reticulum**: Optimized for resilience and long-range fallback\n- Reliability: 30%, Energy: 25%, Proximity: 20%, Congestion: 15%, Signal: 5%, Bandwidth: 5%\n\n**Nostr**: Optimized for censorship-resistant fallback over WebSocket relays\n- Reliability: 35%, Bandwidth: 20%, Congestion: 20%, Energy: 15%, Load: 10%\n\n### Switching Safeguards\n\n| Safeguard | Default | Description |\n|-----------|---------|-------------|\n| Hysteresis | 15 points | Minimum score improvement to switch |\n| Cooldown | 20 seconds | Wait time between switches |\n| Stability Window | 8 seconds | Transport must be stable before switching |\n\n---\n\n## Mesh Networking\n\n### Cluster Architecture\n\nDevices organize into **clusters** (groups of nearby connected peers). Connections between clusters are handled by **bridge** connections.\n\n**Connection Roles:**\n- `MEMBER` - Intra-cluster connection (devices in same neighborhood)\n- `BRIDGE` - Inter-cluster connection (bridges different neighborhoods)\n\n### How It Works\n\n1. **Discovery**: Devices broadcast BLE advertisements with mesh metadata (degree, free slots, battery, uptime)\n2. **Cluster Detection**: Each device computes a cluster signature from connected peer hashes\n3. **Connection Decisions**: MeshController evaluates candidates - prioritizes bridging different clusters\n4. **Rebalancing**: Periodically swaps lower-quality peers for better candidates or bridge opportunities\n5. **Delivery**: Messages sent to connected peers\n\n### Connection Budget\n\n- Default: 4 connections per device\n- Minimum: 1 connection maintained\n- Connections are scored and rebalanced every ~15 seconds\n- Bridge candidates get priority when clusters need unifying\n\n### Peer Scoring\n\n| Factor | Weight | Description |\n|--------|--------|-------------|\n| RSSI | 35% | Signal strength to peer |\n| Availability | 20% | Free connection slots |\n| Uptime | 15% | How long peer has been active |\n| Battery | 15% | Peer's battery level |\n| Stability | 10% | Connection reliability history |\n| Load | 5% | Current processing load |\n\n**Bridge Favor**: Candidates from different clusters get a score bonus (`bridgeFavor: 0.1`) to encourage network unification.\n\n### Message TTL\n\n- Default: 8 hops\n- Messages are dropped when TTL reaches 0\n- Prevents infinite message circulation\n\n### Group Messaging (MLS-Encrypted)\n\nCreate and manage encrypted groups over the mesh:\n\n```typescript\n// Create a group (you become admin automatically)\nconst group = await protocol.meshCreateGroup('Project Team');\n\n// Invite a member (admin only)\nawait protocol.meshInviteToGroup(group.groupId, 'bob');\n\n// Send an encrypted group message\nawait protocol.meshSendGroupMessage(group.groupId, 'Hello team!');\n\n// Remove a member (admin only)\nawait protocol.meshRemoveFromGroup(group.groupId, 'bob');\n\n// Leave a group\nawait protocol.meshLeaveGroup(group.groupId);\n```\n\n### Group Roles\n\nGroups use role-based access control with two roles: **Admin** and **Member**.\n\n| Method | Description |\n|--------|-------------|\n| `meshSetMemberRole(groupId, userId, role)` | Change a member's role (`\"admin\"` or `\"member\"`) — admin only |\n| `meshGetMemberRole(groupId, userId)` | Get a member's current role |\n| `meshGetGroupRoles(groupId)` | Get all roles as `{ userId: role }` |\n\n```typescript\n// Promote a member to admin\nawait protocol.meshSetMemberRole(groupId, 'bob', 'admin');\n\n// Check a member's role\nconst role = await protocol.meshGetMemberRole(groupId, 'bob'); // \"admin\"\n\n// Get all roles\nconst roles = await protocol.meshGetGroupRoles(groupId);\n// { alice: \"admin\", bob: \"admin\", charlie: \"member\" }\n\n// Listen for role changes\nprotocol.on('group_role_changed', (event) => {\n  console.log(`${event.user_id} is now ${event.new_role}`);\n});\n```\n\n**Security invariants:**\n- The group creator is automatically `Admin`\n- Only admins can invite, remove, or change roles\n- The last admin cannot be demoted, removed, or leave (prevents orphaned groups)\n- If the last admin disconnects unexpectedly, a deterministic election promotes the next admin\n\n---\n\n## Reliability Layer\n\n### Acknowledgments\n\n- Messages require ACK for delivery confirmation\n- Default timeout: 5 seconds\n- `message_delivered` event fires on ACK receipt\n\n### Retry Queue\n\n- Failed messages are retried with exponential backoff\n- Initial delay: 1 second\n- Maximum delay: 30 seconds\n- Maximum retries: 5\n\n### Deduplication\n\nPrevents duplicate message processing:\n\n- **Bloom Filter Mode**: Space-efficient, ~1% false positive rate\n- **HashMap Mode**: Exact tracking, configurable capacity\n\n---\n\n## File Transfer\n\n### Sending Files\n\n```typescript\nconst fileId = await protocol.sendFile({\n  filePath: '/path/to/file.pdf',\n  recipient: 'user456',\n  fileName: 'document.pdf',  // optional\n});\n\nprotocol.on('file_progress', (event) => {\n  console.log(`${event.percentage}% complete`);\n});\n```\n\n### Managing Transfers\n\n```typescript\nconst progress = await protocol.getFileProgress(fileId);\nawait protocol.cancelFileTransfer(fileId);\n```\n\n---\n\n## Troubleshooting\n\n### Messages Not Delivering\n\n1. Verify both devices have protocol started\n2. Check they're within BLE range (~10-30m)\n3. Ensure TTL is sufficient for network size\n4. Monitor `message_failed` events for retry information\n\n### No Peers Discovered\n\n1. Verify Bluetooth is enabled: `await protocol.isBluetoothEnabled()`\n2. Check permissions are granted\n3. Ensure background modes enabled (iOS)\n4. Verify devices are within range\n\n### Several Apps on This SDK on One Phone\n\nEvery app built on this SDK serves the same Bluetooth service, so a phone\nrunning two of them presents two instances of it. Each app reads a small tag\nderived from its `appId` to pick its own counterpart, and a peer running one\nSDK app is paired exactly as before. Keep `appId` the same across builds of one\napp, or its builds will not recognise each other.\n\n- A phone running only other SDK apps still appears in `neighbor_discovered`:\n  it relays for you. Identify your own counterparts by the address you already\n  have for them, not by discovery.\n- An app built on an earlier SDK version cannot pick its counterpart on a phone\n  running several SDK apps. Upgrade every SDK app on your test phones, or keep\n  one per phone while testing.\n- After installing or removing an SDK app on one phone, turn Bluetooth off and\n  on again on the *other* phone if pairing does not resume. iOS may cache a\n  peer's list of services, and a stale list can outlast the change until\n  Bluetooth restarts.\n\n### Frequent Disconnections\n\n1. Check signal strength via `neighbor_discovered` RSSI\n2. Increase `stabilityWindowSecs` in DORS config\n3. Reduce `rebalanceInterval` frequency\n4. Check for BLE interference\n\n### High Battery Drain\n\n1. Reduce connection count (native mesh config)\n2. Verify DORS is selecting BLE over WiFi Direct\n3. Check for excessive retry activity\n4. Use `setBatteryLevel()` to inform mesh decisions\n\n### Transport Not Switching\n\n1. Verify transport is enabled in config\n2. Check hysteresis threshold isn't too high\n3. Ensure cooldown period has elapsed\n4. Use `forceTransport()` to test manually\n\n### Linking Error\n\nIf you see the linking error message:\n1. Remove any leftover manual `pod 'MeshSdk', ...` line from your `ios/Podfile`.\n   Autolinking supplies the pod as of 0.20.0; a line pointing into the package's\n   `ios/` directory fails `pod install` outright (\"no podspec found\"), and one\n   pointing elsewhere can shadow the autolinked pod.\n2. Confirm `pod install` output lists `MeshSdk` under \"Auto-linking React Native\n   modules\". If it doesn't, `npx react-native config` should show a\n   `platforms.ios.podspecPath` ending in `MeshSdk.podspec` for\n   `@offline-protocol/mesh-sdk`.\n3. Run `pod install` (iOS)\n4. Rebuild the app after installing — a JS-only reload will not pick up native changes\n5. Verify not using Expo Go (native modules required)\n\n### iOS Simulator Build Fails to Link\n\nSimulator builds are fully supported from 0.20.0 on. `Undefined symbols` or\n`building for iOS Simulator, but linking in object file built for iOS` means\nsomething is still linking the SDK's binary by hand. Remove any `post_install`\nhook that manipulates `OTHER_LDFLAGS` or `LIBRARY_SEARCH_PATHS` for `MeshSdk`\n(including flags naming `offline_protocol_uniffi_sim`/`_device` — those archives\nno longer exist), then `pod install` again. CocoaPods selects the correct\nXCFramework slice on its own.\n\n---\n\n## License\n\nCopyright © 2025-2026 Offline Protocol, Inc.\n\nThe Offline Protocol SDK is **dual-licensed**:\n\n- **AGPL-3.0-only** — see [LICENSE](./LICENSE). Free for use in projects that comply\n  with AGPL-3.0, including its network-use source-disclosure requirement (section 13).\n- **Commercial License** — for proprietary apps that cannot or do not wish to comply with\n  the AGPL. See [LICENSE-COMMERCIAL.md](./LICENSE-COMMERCIAL.md) (contact legal@offlineprotocol.com).\n\nYou may use the SDK under **either** license; you do not need both.\n","readmeFilename":"README.md"}