{"_id":"@contegris/rn-intellicon-chat-sdk-cli","_rev":"9-3d4838c0b1a2b98fe375fe176c2ab98a","name":"@contegris/rn-intellicon-chat-sdk-cli","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.1":{"name":"@contegris/rn-intellicon-chat-sdk-cli","version":"1.0.1","license":"MIT","_id":"@contegris/rn-intellicon-chat-sdk-cli@1.0.1","maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"dist":{"shasum":"c2306a35ca8fec17db2818bb6510de0b58248a5a","tarball":"https://registry.npmjs.org/@contegris/rn-intellicon-chat-sdk-cli/-/rn-intellicon-chat-sdk-cli-1.0.1.tgz","fileCount":144,"integrity":"sha512-qWCa9TuVKNfPdSHXBqDg6j2gOE7JYL/ezRsoGj9ZWxgQJQpGCmeb1OFjhD2Evz6PefON+2719lfDDXVnuirLjw==","signatures":[{"sig":"MEYCIQCiNgMmFs6y4jaARDPTQVOkwPlw2agGcgbOCrsITCYj/QIhAPVeWKM3ybIAGbTNf6xQWhR6JmNZbJzDZCwgmUjAVxA1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1153190},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"4131b102513c175634400a6bacf83d43571e6d4b","scripts":{"dev":"tsup src/index.ts --format cjs,esm --watch --dts --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video","build":"tsup src/index.ts --format cjs,esm --dts --clean --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video"},"_npmUser":{"name":"devcx9","email":"devcx9@gmail.com"},"_npmVersion":"10.9.4","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@contegris/rn-intellicon-chat-sdk":"file:../core"},"react-native":"src/index.ts","_hasShrinkwrap":false,"peerDependencies":{"react":">=18","react-native":">=0.74","react-native-fs":">=2.20.0","react-native-video":">=6.0.0","lucide-react-native":"^0.395.0","react-native-permissions":">=5.0.0","react-native-image-picker":">=8.0.0","@react-native-documents/picker":">=12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-intellicon-chat-sdk-cli_1.0.1_1779375332792_0.905986271312716","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@contegris/rn-intellicon-chat-sdk-cli","version":"1.0.2","license":"MIT","_id":"@contegris/rn-intellicon-chat-sdk-cli@1.0.2","maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"dist":{"shasum":"e0df3dab5be58f04f1a0d5de0078419bb8213221","tarball":"https://registry.npmjs.org/@contegris/rn-intellicon-chat-sdk-cli/-/rn-intellicon-chat-sdk-cli-1.0.2.tgz","fileCount":14,"integrity":"sha512-Fb8XMHXYDU2QROtBYcrABazFXl9kZiTadkbokq3Nn+q08nCbUWS+srwExsD6cKpJ7k7RDRY9c2dXXT560VOQpA==","signatures":[{"sig":"MEUCIA3F3OWPKmMO7CUOgVO+pIq90Yr2prdO5B5pjT08g2ABAiEAlxhdkjtNYX4hefJLOUBLouRzmMYOua/Sf9b/Wre9J40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":492554},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"c156588c7a45c51febadfc185cc9923291a91beb","scripts":{"dev":"tsup src/index.ts --format cjs,esm --watch --dts --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video","build":"tsup src/index.ts --format cjs,esm --dts --clean --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video"},"_npmUser":{"name":"devcx9","email":"devcx9@gmail.com"},"_npmVersion":"10.9.4","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@contegris/rn-intellicon-chat-sdk":"^1.0.4"},"react-native":"src/index.ts","_hasShrinkwrap":false,"peerDependencies":{"react":">=18","react-native":">=0.74","react-native-fs":">=2.20.0","react-native-video":">=6.0.0","lucide-react-native":"^0.395.0","react-native-permissions":">=5.0.0","react-native-image-picker":">=8.0.0","@react-native-documents/picker":">=12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-intellicon-chat-sdk-cli_1.0.2_1780318745479_0.33672818070718247","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@contegris/rn-intellicon-chat-sdk-cli","version":"1.0.5","license":"MIT","_id":"@contegris/rn-intellicon-chat-sdk-cli@1.0.5","maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"dist":{"shasum":"39a943b5fb3f67f0a40da5a52e5a8bd6c602a0b7","tarball":"https://registry.npmjs.org/@contegris/rn-intellicon-chat-sdk-cli/-/rn-intellicon-chat-sdk-cli-1.0.5.tgz","fileCount":14,"integrity":"sha512-0Vra4fvqKlRryuQR6Yp3rIKQXu/fdh3TqDa2I+5W+YO24+UCQAali1eBO8/VMt6nS//4jHhunLu8QSPO68BwiQ==","signatures":[{"sig":"MEYCIQCEklPC5SoMg3Nv9dnULNY/A+Zl5A13yaeCVrJ5o3c+YAIhAI1Aojq69M9QzVnKarn/emZ3rHRCQfR3iYoMbhuEjsMC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":492589},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"a9759bbe376dc8bad71eba6ee6145da89fef51c3","scripts":{"dev":"tsup src/index.ts --format cjs,esm --watch --dts --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video","build":"tsup src/index.ts --format cjs,esm --dts --clean --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video"},"_npmUser":{"name":"devcx9","email":"devcx9@gmail.com"},"_npmVersion":"10.9.4","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@contegris/rn-intellicon-chat-sdk":"v1.0.5"},"react-native":"dist/index.js","_hasShrinkwrap":false,"peerDependencies":{"react":">=18","react-native":">=0.74","react-native-fs":">=2.20.0","react-native-video":">=6.0.0","lucide-react-native":"^0.395.0","react-native-permissions":">=5.0.0","react-native-image-picker":">=8.0.0","@react-native-documents/picker":">=12.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-intellicon-chat-sdk-cli_1.0.5_1780324582399_0.9646754304905842","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@contegris/rn-intellicon-chat-sdk-cli","version":"1.0.6","license":"MIT","_id":"@contegris/rn-intellicon-chat-sdk-cli@1.0.6","maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"dist":{"shasum":"329d63a68694baad8136456668c8c9599559c30c","tarball":"https://registry.npmjs.org/@contegris/rn-intellicon-chat-sdk-cli/-/rn-intellicon-chat-sdk-cli-1.0.6.tgz","fileCount":14,"integrity":"sha512-om74FutLm1auuU1FQjGhngJJkp/d8sOdZkwOTkoQl1ulw2eXK0CjrEvrA5AJbFEFktexucV3WmUrYiK84tGFoA==","signatures":[{"sig":"MEQCIH9/L4ug2osR23XbwPHRKn7h8uDNRzXg4zjdFtV5a72IAiBaArKzbfliXpXEZF8yi6YEK0DJ4DH1et3DRGBbFQCmUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187270},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"0ed25e778d31d8439c4961d8422a2d10939ac6f5","scripts":{"dev":"tsup src/index.ts --format cjs,esm --watch --dts --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context","build":"tsup src/index.ts --format cjs,esm --dts --clean --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context"},"_npmUser":{"name":"devcx9","email":"devcx9@gmail.com"},"_npmVersion":"10.9.4","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@contegris/rn-intellicon-chat-sdk":"v1.0.6"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.6","@types/react":"^19.2.14","react-native":"^0.85.3","react-native-svg":"^15.0.0","react-native-safe-area-context":"^4.0.0"},"peerDependencies":{"react":">=18","react-native":">=0.74","react-native-fs":">=2.20.0","react-native-svg":">=15.0.0","react-native-video":">=6.0.0","lucide-react-native":"^0.395.0","react-native-permissions":">=5.0.0","react-native-image-picker":">=8.0.0","@react-native-documents/picker":">=12.0.0","react-native-safe-area-context":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-intellicon-chat-sdk-cli_1.0.6_1780359115595_0.6632245428946164","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@contegris/rn-intellicon-chat-sdk-cli","version":"1.0.7","license":"MIT","_id":"@contegris/rn-intellicon-chat-sdk-cli@1.0.7","maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"dist":{"shasum":"d4578e449a690640f2f758b18b1ac5b95d58981f","tarball":"https://registry.npmjs.org/@contegris/rn-intellicon-chat-sdk-cli/-/rn-intellicon-chat-sdk-cli-1.0.7.tgz","fileCount":16,"integrity":"sha512-/5VtK97hQNgHCvXghEdPybHHdBNUoB6gVUjPsJ7MT+PU0kgkBwBQM7Btmb/eOp3WkiVlSZocygdx9aHRDhtqxg==","signatures":[{"sig":"MEYCIQC5+Fu88OyjCQuPB+qONQVCDyN7v47tVVD6l/NXju2yxAIhALjWQ0G19vOeRDxqypa2ZFwUAPkcJaxMxo6cc/8zcKu8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202180},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"35cb78c3df44299f375e13579dc15b8f33c7bec3","scripts":{"dev":"tsup src/index.ts --format cjs,esm --watch --dts --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context","build":"tsup src/index.ts --format cjs,esm --dts --clean --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context"},"_npmUser":{"name":"devcx9","email":"devcx9@gmail.com"},"_npmVersion":"10.9.4","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@contegris/rn-intellicon-chat-sdk":"^1.0.7"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.6","@types/react":"^19.2.14","react-native":"^0.85.3","react-native-svg":"^15.0.0","react-native-safe-area-context":"^4.0.0"},"peerDependencies":{"react":">=18","react-native":">=0.74","react-native-fs":">=2.20.0","react-native-svg":">=15.0.0","react-native-video":">=6.0.0","lucide-react-native":"^0.395.0","react-native-permissions":">=5.0.0","react-native-image-picker":">=8.0.0","@react-native-documents/picker":">=12.0.0","react-native-safe-area-context":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-intellicon-chat-sdk-cli_1.0.7_1780471930632_0.1477471213513899","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@contegris/rn-intellicon-chat-sdk-cli","version":"1.0.8","license":"MIT","_id":"@contegris/rn-intellicon-chat-sdk-cli@1.0.8","maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"dist":{"shasum":"667d425afdacc45c67092fe4abebea941840c7d8","tarball":"https://registry.npmjs.org/@contegris/rn-intellicon-chat-sdk-cli/-/rn-intellicon-chat-sdk-cli-1.0.8.tgz","fileCount":16,"integrity":"sha512-gaiDbrOtUZxXdo/P27LciJeCnzY75I99UuGbSfIA6c7tUUNg9NadLm8kw8XBsFrDemlzPgJO8xwH+txCHAwPWQ==","signatures":[{"sig":"MEYCIQD7DuoLZVRU4xtqfPKAhsUSqCVzY0GE5ZopwV6OJJbmYQIhAIh/fEQNnQtUMKuPRUgI07KvvmEqveKO1cl9FnxTkwg2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205386},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"cf62ff85733ee30fcd1bdedb8ba1f6f452ad3ad1","scripts":{"dev":"tsup src/index.ts --format cjs,esm --watch --dts --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context","build":"tsup src/index.ts --format cjs,esm --dts --clean --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context"},"_npmUser":{"name":"devcx9","email":"devcx9@gmail.com"},"_npmVersion":"10.9.4","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@contegris/rn-intellicon-chat-sdk":"^1.0.8"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.6","@types/react":"^19.2.14","react-native":"^0.85.3","react-native-svg":"^15.0.0","react-native-safe-area-context":"^4.0.0"},"peerDependencies":{"react":">=18","react-native":">=0.74","react-native-fs":">=2.20.0","react-native-svg":">=15.0.0","react-native-video":">=6.0.0","lucide-react-native":"^0.395.0","react-native-permissions":">=5.0.0","react-native-image-picker":">=8.0.0","@react-native-documents/picker":">=12.0.0","react-native-safe-area-context":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-intellicon-chat-sdk-cli_1.0.8_1780529204973_0.36378440119392175","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@contegris/rn-intellicon-chat-sdk-cli","version":"1.0.9","license":"MIT","_id":"@contegris/rn-intellicon-chat-sdk-cli@1.0.9","maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"dist":{"shasum":"ea70c7f43c8f60a16c23b62da6a97aa2406b6017","tarball":"https://registry.npmjs.org/@contegris/rn-intellicon-chat-sdk-cli/-/rn-intellicon-chat-sdk-cli-1.0.9.tgz","fileCount":16,"integrity":"sha512-/04QULxUnshL9Ywe07P8AgMsSy+dXib7WSSQU8b1H1HJaRi554J9egC9NAqTh1oONVnWcI572/+fo1TpekGbCA==","signatures":[{"sig":"MEUCIEAHmJx5/GXUAPv+/K7TW8W234BnGU61EIWAXjRol+DtAiEA6lHrXQpnmYhfV0i3t4IqdvesJFsp45qsuRNltW2eTPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331349},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"6e6bae4e559b331876b6f44e2b5e1bc45bb7ce3f","scripts":{"dev":"tsup src/index.ts --format cjs,esm --watch --dts --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context","build":"tsup src/index.ts --format cjs,esm --dts --clean --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context"},"_npmUser":{"name":"devcx9","email":"devcx9@gmail.com"},"_npmVersion":"10.9.4","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@contegris/rn-intellicon-chat-sdk":"file:../core"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.6","@types/react":"^19.2.14","react-native":"^0.85.3","react-native-svg":"^15.0.0","react-native-safe-area-context":"^4.0.0"},"peerDependencies":{"react":">=18","react-native":">=0.74","react-native-fs":">=2.20.0","react-native-svg":">=15.0.0","react-native-video":">=6.0.0","lucide-react-native":"^0.395.0","react-native-permissions":">=5.0.0","react-native-image-picker":">=8.0.0","@react-native-documents/picker":">=12.0.0","react-native-safe-area-context":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-intellicon-chat-sdk-cli_1.0.9_1781022754741_0.47006155076608547","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@contegris/rn-intellicon-chat-sdk-cli","version":"1.1.0","license":"MIT","_id":"@contegris/rn-intellicon-chat-sdk-cli@1.1.0","maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"dist":{"shasum":"0409de16fe3f9aa1d679d5e6604bf3f695b96e53","tarball":"https://registry.npmjs.org/@contegris/rn-intellicon-chat-sdk-cli/-/rn-intellicon-chat-sdk-cli-1.1.0.tgz","fileCount":16,"integrity":"sha512-S3xG4KzMi4paDN5emkpvkWQ3ireKZlgnHxcjJOuprxTVb5DgRF++FrknwzdtRx86zyqi4QStyX/9CkVY/OV0DQ==","signatures":[{"sig":"MEUCIDO7FQLUhHAX2vYGksqVpg5/cq12ENkLxBvCWs+k6Vk2AiEAzBze/pYBxXb+kAIQV4/z2G2BO7H3sYdwdmKexuxy0I0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331343},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"80f76aa3a04f07e25d70725192e0050ea5f864f8","scripts":{"dev":"tsup src/index.ts --format cjs,esm --watch --dts --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context","build":"tsup src/index.ts --format cjs,esm --dts --clean --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context"},"_npmUser":{"name":"devcx9","email":"devcx9@gmail.com"},"_npmVersion":"10.9.4","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@contegris/rn-intellicon-chat-sdk":"^1.0.9"},"react-native":"dist/index.js","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.6","@types/react":"^19.2.14","react-native":"^0.85.3","react-native-svg":"^15.0.0","react-native-safe-area-context":"^4.0.0"},"peerDependencies":{"react":">=18","react-native":">=0.74","react-native-fs":">=2.20.0","react-native-svg":">=15.0.0","react-native-video":">=6.0.0","lucide-react-native":"^0.395.0","react-native-permissions":">=5.0.0","react-native-image-picker":">=8.0.0","@react-native-documents/picker":">=12.0.0","react-native-safe-area-context":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-intellicon-chat-sdk-cli_1.1.0_1781070372268_0.42753351162227626","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@contegris/rn-intellicon-chat-sdk-cli","version":"1.1.1","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","main":"dist/index.js","module":"dist/index.mjs","react-native":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context","dev":"tsup src/index.ts --format cjs,esm --watch --dts --external @contegris/rn-intellicon-chat-sdk --external react --external react-native --external lucide-react-native --external @react-native-documents/picker --external react-native-fs --external react-native-image-picker --external react-native-permissions --external react-native-video --external react-native-svg --external react-native-safe-area-context"},"dependencies":{"@contegris/rn-intellicon-chat-sdk":"^1.1.1"},"peerDependencies":{"@react-native-documents/picker":">=12.0.0","lucide-react-native":"^0.395.0","react":">=18","react-native":">=0.74","react-native-fs":">=2.20.0","react-native-image-picker":">=8.0.0","react-native-permissions":">=5.0.0","react-native-safe-area-context":">=4.0.0","react-native-svg":">=15.0.0","react-native-video":">=6.0.0"},"devDependencies":{"@types/react":"^19.2.14","react":"^19.2.6","react-native":"^0.85.3","react-native-safe-area-context":"^4.0.0","react-native-svg":"^15.0.0"},"license":"MIT","_id":"@contegris/rn-intellicon-chat-sdk-cli@1.1.1","gitHead":"92a18697a62f45d8a41f907c3af27a05f7b62567","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-uU4jIATZiQT/WfoWXyd+10/MuCs+MkmT9e9repe9i9V/C23CKC2XGcL7uribHgQfNNGPv6z4PtcAKiNt8rTEmw==","shasum":"95e8f73f459dcef3b3b1b9bacb396220f86d7a9a","tarball":"https://registry.npmjs.org/@contegris/rn-intellicon-chat-sdk-cli/-/rn-intellicon-chat-sdk-cli-1.1.1.tgz","fileCount":16,"unpackedSize":331175,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA/blRqxEKSFlskFch1oVMgYREwFNxIq6FGKQtnEp8YBAiBB0skuAA2efLiRz7OlI1zLvIeNwS7Sm8VxlP0SbbsYaQ=="}]},"_npmUser":{"name":"devcx9","email":"devcx9@gmail.com"},"directories":{},"maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rn-intellicon-chat-sdk-cli_1.1.1_1781276558485_0.2554260628691687"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T14:55:32.571Z","modified":"2026-06-12T15:02:38.971Z","1.0.1":"2026-05-21T14:55:32.986Z","1.0.2":"2026-06-01T12:59:05.633Z","1.0.5":"2026-06-01T14:36:22.568Z","1.0.6":"2026-06-02T00:11:55.785Z","1.0.7":"2026-06-03T07:32:10.783Z","1.0.8":"2026-06-03T23:26:45.109Z","1.0.9":"2026-06-09T16:32:34.884Z","1.1.0":"2026-06-10T05:46:12.398Z","1.1.1":"2026-06-12T15:02:38.795Z"},"license":"MIT","description":"Intellicon Chat SDK - React Native CLI adapter (text messaging + basic media placeholders)","maintainers":[{"name":"rajasabiq","email":"ther.sabiqarfan@gmail.com"},{"name":"habibshahid","email":"habib@contegris.com"},{"name":"devcx9","email":"devcx9@gmail.com"}],"readme":"# @contegris/rn-intellicon-chat-sdk-cli\n\n[![npm version](https://img.shields.io/npm/v/@contegris/rn-intellicon-chat-sdk-cli)](https://www.npmjs.com/package/@contegris/rn-intellicon-chat-sdk-cli)\n[![license](https://img.shields.io/npm/l/@contegris/rn-intellicon-chat-sdk-cli)](../../LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-ready-blue)](https://www.typescriptlang.org/)\n\n> **Full-featured chat SDK for React Native CLI (bare workflow)**  \n> Complete media support without Expo dependencies. Perfect for React Native CLI projects.\n\n---\n\n## Overview\n\nThe **CLI adapter** provides a production-ready chat interface with full media capabilities using React Native community modules. Designed specifically for bare React Native CLI projects (no Expo dependencies required).\n\n### When to Use This Package\n\n✅ **Use CLI adapter if:**\n- You're using React Native CLI (bare workflow)\n- You need media attachments (images, videos, audio, documents)\n- You don't want to install Expo dependencies\n- You prefer community-maintained native modules\n\n❌ **Don't use CLI adapter if:**\n- You're using Expo managed workflow → Use [`@contegris/rn-intellicon-chat-sdk-expo`](../expo)\n- You only need text messaging → Use [`@contegris/rn-intellicon-chat-sdk`](../core)\n\n---\n\n## Features\n\n### Media Support\n\n- ✅ **Audio recording** with basic waveform UI\n- ✅ **Audio playback** with seek controls and reliable completion detection via `AVAudioPlayerDelegate`\n- ✅ **Image attachments** from camera or gallery (react-native-image-picker)\n- ✅ **Video attachments** with thumbnail preview (react-native-video)\n- ✅ **Document picker** for any file type (@react-native-documents/picker)\n- ✅ **File caching and downloads** (react-native-fs)\n- ✅ **Upload progress** indicators with cancel/retry\n- ✅ **Permission handling** (react-native-permissions)\n\n### Native Module Reliability\n\n- ✅ **Automatic iOS native module linking** — `react-native.config.js` properly configured with `ios.podspecPath` for seamless auto-linking\n- ✅ **Graceful fallback on missing native modules** — user-friendly `Alert` instead of hard crash if a native module is unavailable\n\n> **Note:** Unlike the Expo adapter, the CLI adapter does NOT include an emoji keyboard. Use a third-party package if needed.\n\n### Core Features (Inherited from Core Package)\n\n- ✅ Real-time text messaging via Socket.IO\n- ✅ Automatic reconnection and background sync\n- ✅ Offline message queueing\n- ✅ Optimistic UI updates\n- ✅ Paginated message history\n- ✅ Full theme customization\n- ✅ TypeScript support\n- ✅ Connection status monitoring\n\n---\n\n## Installation\n\n### Step 1: Install the package\n\n```bash\n# npm\nnpm install @contegris/rn-intellicon-chat-sdk-cli\n\n# yarn\nyarn add @contegris/rn-intellicon-chat-sdk-cli\n\n# pnpm\npnpm add @contegris/rn-intellicon-chat-sdk-cli\n```\n\n### Step 2: Install peer dependencies\n\n> **Note:** `@contegris/rn-intellicon-chat-sdk` (the core package) is automatically installed as a dependency — you do **not** need to add it manually.\n\n```bash\n# npm\nnpm install \\\n  @react-native-async-storage/async-storage \\\n  react-native-safe-area-context \\\n  react-native-svg \\\n  lucide-react-native \\\n  react-native-image-picker \\\n  react-native-video \\\n  @react-native-documents/picker \\\n  react-native-fs \\\n  react-native-permissions\n\n# yarn\nyarn add \\\n  @react-native-async-storage/async-storage \\\n  react-native-safe-area-context \\\n  react-native-svg \\\n  lucide-react-native \\\n  react-native-image-picker \\\n  react-native-video \\\n  @react-native-documents/picker \\\n  react-native-fs \\\n  react-native-permissions\n\n# pnpm\npnpm add \\\n  @react-native-async-storage/async-storage \\\n  react-native-safe-area-context \\\n  react-native-svg \\\n  lucide-react-native \\\n  react-native-image-picker \\\n  react-native-video \\\n  @react-native-documents/picker \\\n  react-native-fs \\\n  react-native-permissions\n```\n\n### Step 3: iOS - Install CocoaPods dependencies\n\n```bash\ncd ios && pod install && cd ..\n```\n\nOr use the shorthand:\n\n```bash\nnpx pod-install ios\n```\n\n### Step 4: iOS - Configure Info.plist\n\nAdd permission descriptions to `ios/YourApp/Info.plist`:\n\n```xml\n<key>NSMicrophoneUsageDescription</key>\n<string>This app needs microphone access to record voice messages.</string>\n\n<key>NSPhotoLibraryUsageDescription</key>\n<string>This app needs photo library access to send images in chat.</string>\n\n<key>NSPhotoLibraryAddUsageDescription</key>\n<string>This app needs photo library access to save images.</string>\n\n<key>NSCameraUsageDescription</key>\n<string>This app needs camera access to take photos for chat.</string>\n```\n\n### Step 5: Android - Configure permissions\n\nVerify `android/app/src/main/AndroidManifest.xml` contains:\n\n```xml\n<uses-permission android:name=\"android.permission.CAMERA\" />\n<uses-permission android:name=\"android.permission.RECORD_AUDIO\" />\n\n<!-- For Android 13+ (API 33+) -->\n<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\" />\n<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\" />\n<uses-permission android:name=\"android.permission.READ_MEDIA_AUDIO\" />\n\n<!-- For Android 12 and below -->\n<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />\n<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />\n```\n\n### Step 6: Android - Configure SDK location\n\nCreate `android/local.properties` if it doesn't exist:\n\n**Windows:**\n```properties\nsdk.dir=C:\\\\Users\\\\YourUsername\\\\AppData\\\\Local\\\\Android\\\\Sdk\n```\n\n**macOS/Linux:**\n```properties\nsdk.dir=/Users/YourUsername/Library/Android/sdk\n```\n\n### Step 7: Request runtime permissions (Android)\n\nThe SDK does **NOT** automatically request permissions. You must handle this:\n\n```tsx\nimport { PermissionsAndroid, Platform } from 'react-native';\n\nasync function requestPermissions() {\n  if (Platform.OS === 'android') {\n    await PermissionsAndroid.requestMultiple([\n      PermissionsAndroid.PERMISSIONS.CAMERA,\n      PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,\n      PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES,\n      PermissionsAndroid.PERMISSIONS.READ_MEDIA_VIDEO,\n    ]);\n  }\n}\n\n// Call before rendering Chat\nrequestPermissions();\n```\n\nOr use `react-native-permissions` for unified iOS/Android handling:\n\n```tsx\nimport { request, PERMISSIONS, RESULTS } from 'react-native-permissions';\n\nasync function requestPermissions() {\n  if (Platform.OS === 'ios') {\n    await request(PERMISSIONS.IOS.CAMERA);\n    await request(PERMISSIONS.IOS.MICROPHONE);\n    await request(PERMISSIONS.IOS.PHOTO_LIBRARY);\n  } else {\n    await request(PERMISSIONS.ANDROID.CAMERA);\n    await request(PERMISSIONS.ANDROID.RECORD_AUDIO);\n    await request(PERMISSIONS.ANDROID.READ_MEDIA_IMAGES);\n  }\n}\n```\n\n### Step 8: Rebuild your app\n\n```bash\n# iOS\nnpx react-native run-ios\n\n# Android\nnpx react-native run-android\n```\n\n---\n\n## Quick Start\n\n### Minimal Example\n\n```tsx\nimport React from 'react';\nimport { SafeAreaView, StyleSheet } from 'react-native';\nimport { Chat } from '@contegris/rn-intellicon-chat-sdk-cli';\nimport type { User, Config } from '@contegris/rn-intellicon-chat-sdk';\n\nconst user: User = {\n  participantId: 'user_12345',\n  name: 'Jane Doe',\n};\n\nconst config: Config = {\n  baseUrl: 'https://your-intellicon-server.com',\n  appId: 'your_app_id',\n};\n\nexport default function ChatScreen() {\n  return (\n      <Chat\n        user={user}\n        config={config}\n        onFeedbackSubmit={() => {\n          // Called when user submits the post-conversation rating\n          // e.g. navigation.goBack()\n        }}\n      />\n  );\n}\n\n```\n\n---\n\n## Configuration\n\n### User Object\n\n```tsx\ninterface User {\n  participantId: string;  // Unique user ID (required)\n  name: string;           // Display name (required)\n  fcmToken?: string;      // Optional FCM token for push notifications\n}\n```\n\n### Config Object\n\n```tsx\ninterface Config {\n  baseUrl: string;        // Intellicon server URL (required)\n  appId: string;          // App ID from Intellicon dashboard (required)\n  title?: string;         // Chat header title (default: 'Chat')\n  history?: {\n    show: boolean;\n    view?: 'inSingleView' | 'listView';\n  };\n}\n```\n\n---\n\n## Theming\n\nCustomize every aspect of the UI using the `ChatTheme` interface. All properties are optional and fall back to [DEFAULT_CHAT_THEME](../core/src/types/theme.types.ts:252).\n\n### Complete Theme Reference\n\n```tsx\nimport { Chat, type ChatTheme } from '@contegris/rn-intellicon-chat-sdk';\n\nconst theme: ChatTheme = {\n  // ─── Global Font ────────────────────────────────────────────────────────\n  fontFamily: 'Inter',              // Default: 'Outfit' | null for system font\n  \n  // ─── Background ─────────────────────────────────────────────────────────\n  backgroundColor: '#0F172A',       // Solid fallback color\n  backgroundImage: 'https://...',   // Wallpaper URI (local or remote)\n  backgroundGradientColors: ['#1E293B', '#0F172A'], // ≥2 stops (overrides image/bg)\n  backgroundGradientDirection: 'diagonal', // 'horizontal' | 'vertical' | 'diagonal'\n  backgroundOverlay: 'rgba(0,0,0,0.2)', // Semi-transparent tint layer\n  \n  // ─── Loading & Error States ─────────────────────────────────────────────\n  loaderColor: '#60A5FA',\n  loaderSize: 'large',              // 'small' | 'large'\n  LoadingComponent: MyCustomLoader, // Replace entire loading screen\n  ErrorComponent: MyErrorScreen,    // Replace entire error screen\n  errorTextStyle: { color: '#EF4444', fontSize: 15 },\n  errorContainerStyle: { backgroundColor: '#0F172A' },\n  \n  // ─── Layout ─────────────────────────────────────────────────────────────\n  containerStyle: { flex: 1 },     // SafeAreaView style\n  listContentStyle: { flexGrow: 1 }, // FlatList contentContainerStyle\n  listPaddingVertical: 12,         // Message list vertical padding\n  listPaddingHorizontal: 0,        // Message list horizontal padding\n  \n  // ─── Pagination (Load More) ─────────────────────────────────────────────\n  loadMoreThreshold: 0.15,         // FlatList onEndReachedThreshold (0–1)\n  loadMoreLoaderColor: '#60A5FA',\n  showLoadMoreSpinner: true,\n  \n  // ─── AppBar ─────────────────────────────────────────────────────────────\n  appBar: {\n    enabled: true,                 // Show/hide AppBar\n    bgColor: '#1E293B',\n    gradientColors: ['#1E3A8A', '#3B82F6'], // Overrides bgColor\n    gradientDirection: 'horizontal',\n    titleStyle: { color: '#F1F5F9', fontSize: 18, fontWeight: '700' },\n    iconColor: '#60A5FA',\n    centerTitle: false,\n  },\n  \n  // ─── Message Bubbles ────────────────────────────────────────────────────\n  bubbleStyle: {\n    agent: {\n      bgColor: '#334155',\n      textStyle: { color: '#F1F5F9', fontSize: 14 },\n      audioMessage: {\n        sliderColor: '#60A5FA',\n        inactiveColor: '#475569',\n        playPauseIconColor: '#60A5FA',\n        downloadIconColor: '#60A5FA',\n        durationStyle: { color: '#94A3B8', fontSize: 12 },\n      },\n      videoMessage: {\n        playButtonColor: '#60A5FA',\n      },\n      documentMessage: {\n        downloadIconColor: '#60A5FA',\n        copyIconColor: '#94A3B8',\n        attachmentIconColor: '#CBD5E1',\n        textStyle: { color: '#F1F5F9', fontSize: 13, fontWeight: '600' },\n      },\n    },\n    visitor: {\n      bgColor: '#2563EB',\n      textStyle: { color: '#FFFFFF', fontSize: 14 },\n      audioMessage: {\n        sliderColor: '#FFFFFF',\n        inactiveColor: '#93C5FD',\n        playPauseIconColor: '#FFFFFF',\n        downloadIconColor: '#FFFFFF',\n        durationStyle: { color: '#DBEAFE', fontSize: 12 },\n      },\n      videoMessage: {\n        playButtonColor: '#FFFFFF',\n      },\n      documentMessage: {\n        downloadIconColor: '#FFFFFF',\n        copyIconColor: '#DBEAFE',\n        attachmentIconColor: '#EFF6FF',\n        textStyle: { color: '#FFFFFF', fontSize: 13, fontWeight: '600' },\n      },\n    },\n  },\n  \n  // ─── Date Separator ─────────────────────────────────────────────────────\n  dateSeparator: {\n    containerStyle: {\n      alignSelf: 'center',\n      paddingHorizontal: 12,\n      paddingVertical: 4,\n      borderRadius: 12,\n      backgroundColor: 'rgba(30,41,59,0.85)',\n    },\n    textStyle: { color: '#94A3B8', fontSize: 12, fontWeight: '500' },\n  },\n  \n  // ─── Message Input Bar ──────────────────────────────────────────────────\n  messageInput: {\n    bgColor: '#1E293B',\n    inputContainerStyle: { borderRadius: 20 },\n    hintStyle: { color: '#64748B', fontSize: 14, fontStyle: 'italic' },\n    messageTextStyle: { color: '#F8FAFC', fontSize: 14 },\n    emojiIconColor: '#64748B',\n    attachmentIconColor: '#64748B',\n    attachmentModalBgColor: '#334155',\n    micInactiveIconColor: '#64748B',\n    micActiveIconColor: '#EF4444',\n    micSendBgColor: '#2563EB',\n    sendIconColor: '#FFFFFF',\n    sendVoiceMessageIconColor: '#60A5FA',\n    deleteVoiceMessageIconColor: '#EF4444',\n  },\n  \n  // ─── Feedback / Rating Widget ───────────────────────────────────────────\n  feedback: {\n    containerStyle: { backgroundColor: '#334155' },\n    activeColor: '#60A5FA',\n    inactiveColor: '#475569',\n    textActiveColor: '#FFFFFF',\n    textInactiveColor: '#94A3B8',\n  },\n};\n\n<Chat user={user} config={config} theme={theme} />\n```\n\n### Quick Start Examples\n\n**Minimal Theme (Dark Mode)**\n```tsx\nconst theme: ChatTheme = {\n  fontFamily: 'Inter',\n  backgroundColor: '#0F172A',\n  appBar: { bgColor: '#1E293B', iconColor: '#60A5FA' },\n};\n```\n\n**Light Mode**\n```tsx\nconst theme: ChatTheme = {\n  backgroundColor: '#FFFFFF',\n  appBar: {\n    bgColor: '#F8FAFC',\n    titleStyle: { color: '#0F172A' },\n    iconColor: '#2563EB',\n  },\n  bubbleStyle: {\n    agent: { bgColor: '#F1F5F9', textStyle: { color: '#0F172A' } },\n    visitor: { bgColor: '#2563EB', textStyle: { color: '#FFFFFF' } },\n  },\n  messageInput: { bgColor: '#F8FAFC', sendIconColor: '#2563EB' },\n};\n```\n\n**Gradient Background**\n```tsx\nconst theme: ChatTheme = {\n  backgroundGradientColors: ['#1E3A8A', '#3B0764', '#BE123C'],\n  backgroundGradientDirection: 'diagonal',\n  backgroundOverlay: 'rgba(0,0,0,0.3)',\n};\n```\n\nFor the default theme definition, see [theme.types.ts](../core/src/types/theme.types.ts:252).\n\n---\n\n## Media Features\n\n### Audio Recording\n\nTap and hold the microphone button to record. Release to send.\n\n**Features:**\n- Basic waveform visualization\n- Recording duration counter\n- Cancel or send controls\n\n**Permissions required:**\n- iOS: `NSMicrophoneUsageDescription` in Info.plist\n- Android: `RECORD_AUDIO` permission (must request at runtime)\n\n---\n\n### Image/Video Attachments\n\nTap the attachment button to choose:\n- 📷 **Camera** — Take a photo or video\n- 🖼️ **Gallery** — Choose existing media\n\n**Features:**\n- Image preview in message bubble\n- Video thumbnail (tap to open in external player)\n- Upload progress indicators\n\n**Permissions required:**\n- iOS: `NSCameraUsageDescription`, `NSPhotoLibraryUsageDescription`\n- Android: `CAMERA`, `READ_MEDIA_IMAGES`, `READ_MEDIA_VIDEO`\n\n> **Note:** Unlike the Expo adapter, videos open in the device's default player (not in-app playback).\n\n---\n\n### Document Attachments\n\nChoose any file type from device storage.\n\n**Features:**\n- File name and icon display\n- Download/open controls\n- Progress indicators\n\n**File size limits:**\n- Images: 10 MB\n- Videos: 50 MB\n- Audio: 20 MB\n- Documents: 25 MB\n\n---\n\n## Troubleshooting\n\n### Installation Issues\n\n#### ❌ Error: \"Unable to resolve module `react-native-image-picker`\"\n\n**Cause:** Missing peer dependency.\n\n**Fix:**\n```bash\nnpm install react-native-image-picker react-native-video @react-native-documents/picker react-native-fs react-native-permissions\n```\n\n---\n\n#### ❌ Error: \"Invariant Violation: Native module cannot be null\"\n\n**Cause:** Native modules not linked.\n\n**Fix:**\n```bash\ncd ios && pod install && cd ..\nnpx react-native run-ios\n```\n\n---\n\n#### ❌ iOS build fails with \"Undefined symbol: _RNCAsyncStorage\"\n\n**Cause:** CocoaPods not installed or outdated.\n\n**Fix:**\n```bash\ncd ios\nrm -rf Pods Podfile.lock\npod install\ncd ..\nnpx react-native run-ios\n```\n\n---\n\n#### ❌ Android build fails with \"SDK location not found\"\n\n**Cause:** Missing `android/local.properties`.\n\n**Fix:** Create `android/local.properties`:\n```properties\nsdk.dir=C:\\\\Users\\\\YourUsername\\\\AppData\\\\Local\\\\Android\\\\Sdk\n```\n\n---\n\n#### ❌ Android build fails with \"Duplicate class androidx.lifecycle.ViewModelLazy\"\n\n**Cause:** Dependency version conflict.\n\n**Fix:** Clear Gradle cache:\n```bash\ncd android\n./gradlew clean\ncd ..\nnpx react-native run-android\n```\n\n---\n\n#### ❌ Error: \"com.android.builder.testing.api.DeviceException: No connected devices!\"\n\n**Cause:** No emulator or physical device connected.\n\n**Fix:**\n```bash\n# Start an emulator\nemulator -avd Pixel_5_API_33 -netdelay none -netspeed full\n\n# Or list connected devices\nadb devices\n```\n\n---\n\n### Runtime Issues\n\n#### ❌ Audio recording not working on iOS\n\n**Cause:** Missing microphone permission in Info.plist.\n\n**Fix:** Add to `ios/YourApp/Info.plist`:\n```xml\n<key>NSMicrophoneUsageDescription</key>\n<string>This app needs microphone access to record voice messages.</string>\n```\n\nThen rebuild:\n```bash\nnpx react-native run-ios\n```\n\n---\n\n#### ❌ Camera not opening on Android\n\n**Cause:** Permission not requested at runtime.\n\n**Fix:**\n```tsx\nimport { PermissionsAndroid, Platform } from 'react-native';\n\nuseEffect(() => {\n  if (Platform.OS === 'android') {\n    PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.CAMERA);\n  }\n}, []);\n```\n\n---\n\n#### ❌ Image picker crashes on Android 13\n\n**Cause:** Using legacy `READ_EXTERNAL_STORAGE` permission on Android 13+.\n\n**Fix:** Add granular media permissions to `AndroidManifest.xml`:\n```xml\n<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\" />\n<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\" />\n<uses-permission android:name=\"android.permission.READ_MEDIA_AUDIO\" />\n```\n\nThen rebuild:\n```bash\nnpx react-native run-android\n```\n\n---\n\n#### ❌ Video playback shows black screen\n\n**Expected behavior:** The CLI adapter shows video thumbnails only. Tapping opens the video in the device's default player (not in-app).\n\n**If you need in-app video playback:** Use the Expo adapter instead:\n```bash\nnpm uninstall @contegris/rn-intellicon-chat-sdk-cli\nnpm install @contegris/rn-intellicon-chat-sdk-expo\n```\n\n---\n\n#### ❌ Upload fails with \"Network request failed\"\n\n**Possible causes:**\n1. File too large (exceeds limits)\n2. Network connectivity issue\n3. Server-side upload disabled\n4. iOS App Transport Security blocking HTTP\n\n**Debug steps:**\n1. Enable logging: `<Chat showLogToggle={true} />`\n2. Check file size\n3. Verify network connectivity\n4. For iOS HTTP (not HTTPS) servers, add to `Info.plist`:\n   ```xml\n   <key>NSAppTransportSecurity</key>\n   <dict>\n     <key>NSAllowsArbitraryLoads</key>\n     <true/>\n   </dict>\n   ```\n\n---\n\n#### ❌ Document picker shows \"No app can perform this action\"\n\n**Cause:** No app installed to handle the file type.\n\n**Expected behavior:** This is normal on emulators or devices without file manager apps.\n\n**Fix:** Test on a real device with file manager installed.\n\n---\n\n#### ❌ Audio recording permission denied on iOS even after granting\n\n**Cause:** iOS caches permission state. Need to reset.\n\n**Fix:**\n1. Delete app from device/simulator\n2. Rebuild: `npx react-native run-ios`\n3. Grant permission when prompted\n\n---\n\n### Build Issues\n\n#### ❌ iOS build fails with \"Command PhaseScriptExecution failed with a nonzero exit code\"\n\n**Cause:** CocoaPods or build script issue.\n\n**Fix:**\n```bash\ncd ios\nrm -rf Pods Podfile.lock build\npod install\ncd ..\nnpx react-native run-ios\n```\n\n---\n\n#### ❌ Android build fails with \"Execution failed for task ':app:mergeDebugResources'\"\n\n**Cause:** Resource conflict or Gradle cache corruption.\n\n**Fix:**\n```bash\ncd android\n./gradlew clean\nrm -rf .gradle app/build\ncd ..\nnpx react-native run-android\n```\n\n---\n\n#### ❌ Metro bundler error: \"Unable to resolve module `@babel/runtime/helpers/interopRequireDefault`\"\n\n**Cause:** Node modules cache corruption.\n\n**Fix:**\n```bash\nrm -rf node_modules package-lock.json\nnpm install\nnpm start -- --reset-cache\n```\n\n---\n\n#### ❌ iOS build fails with \"library not found for -lDoubleConversion\"\n\n**Cause:** Xcode build cache issue.\n\n**Fix:**\n1. Open `ios/YourApp.xcworkspace` in Xcode\n2. Product → Clean Build Folder (Shift+Cmd+K)\n3. Close Xcode\n4. `npx react-native run-ios`\n\n---\n\n## Common Mistakes\n\n### 1. Not Requesting Permissions on Android\n\n**Wrong:**\n```tsx\n// Assume permissions are granted ❌\n<Chat user={user} config={config} />\n```\n\n**Correct:**\n```tsx\nimport { PermissionsAndroid } from 'react-native';\n\nuseEffect(() => {\n  PermissionsAndroid.requestMultiple([\n    PermissionsAndroid.PERMISSIONS.CAMERA,\n    PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,\n  ]);\n}, []);\n\n<Chat user={user} config={config} />\n```\n\n---\n\n### 2. Forgetting to Run pod install After Installing (iOS)\n\n**Wrong:**\n```bash\nnpm install @contegris/rn-intellicon-chat-sdk-cli\nnpx react-native run-ios  # ❌ Pods not updated\n```\n\n**Correct:**\n```bash\nnpm install @contegris/rn-intellicon-chat-sdk-cli\ncd ios && pod install && cd ..\nnpx react-native run-ios\n```\n\n---\n\n### 3. Missing iOS Permissions in Info.plist\n\n**Wrong:**\n```xml\n<!-- No permission descriptions ❌ -->\n```\n\n**Correct:**\n```xml\n<key>NSMicrophoneUsageDescription</key>\n<string>This app needs microphone access to record voice messages.</string>\n<key>NSCameraUsageDescription</key>\n<string>This app needs camera access to take photos for chat.</string>\n<key>NSPhotoLibraryUsageDescription</key>\n<string>This app needs photo library access to send images in chat.</string>\n```\n\n---\n\n### 4. Using Legacy Android Permissions on Android 13+\n\n**Wrong (Android 13+):**\n```xml\n<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />\n<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />\n```\n\n**Correct (Android 13+):**\n```xml\n<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\" />\n<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\" />\n<uses-permission android:name=\"android.permission.READ_MEDIA_AUDIO\" />\n```\n\n---\n\n### 5. Not Wrapping in SafeAreaView\n\n**Wrong:**\n```tsx\n<View style={{ flex: 1 }}>\n  <Chat user={user} config={config} />\n</View>\n```\n\n**Correct:**\n```tsx\nimport { SafeAreaView } from 'react-native';\n\n<SafeAreaView style={{ flex: 1 }}>\n  <Chat user={user} config={config} />\n</SafeAreaView>\n```\n\n---\n\n## Dependencies\n\n### Bundled (installed automatically)\n\n| Package | Version | Why |\n|---------|---------|-----|\n| `@contegris/rn-intellicon-chat-sdk` | ^1.0.9 | Core SDK (chat engine, types, theme) |\n\n### Peer Dependencies (you must install)\n\n| Package | Min Version | Why |\n|---------|-------------|-----|\n| `react` | >=18 | React runtime |\n| `react-native` | >=0.74 | React Native runtime |\n| `@react-native-async-storage/async-storage` | >=1.23.1 | Persistent storage |\n| `react-native-safe-area-context` | >=4.0.0 | Safe area insets |\n| `react-native-svg` | >=15.0.0 | SVG support for icons |\n| `lucide-react-native` | >=0.395.0 | Icons |\n| `react-native-image-picker` | >=8.0.0 | Camera/gallery access |\n| `react-native-video` | >=6.0.0 | Video thumbnails |\n| `@react-native-documents/picker` | >=12.0.0 | Document picker |\n| `react-native-fs` | >=2.20.0 | File caching |\n| `react-native-permissions` | >=5.0.0 | Permission handling |\n\n---\n\n## API Reference\n\n### Chat Component Props\n\n```tsx\ninterface ChatProps {\n  user: User;\n  config: Config;\n  customData?: Record<string, unknown>;\n  theme?: ChatTheme;\n  downloadFile?: (params: { url: string; stopLoading: () => void; type: 'image' | 'video' | 'document'; fileName?: string }) => void;\n  onFeedbackSubmit?: () => void;\n  onPerformanceReport?: (report: PerformanceReport) => void;\n  showLogToggle?: boolean;\n  keyboardVerticalOffset?: number;\n  goBack?: () => void;\n}\n```\n\n| Prop | Type | Required | Default | Description |\n|------|------|----------|---------|-------------|\n| `user` | `User` | ✅ Yes | N/A | User identification object |\n| `config` | `Config` | ✅ Yes | N/A | Server configuration |\n| `customData` | `Record<string, unknown>` | ❌ No | `undefined` | Arbitrary metadata sent to server |\n| `theme` | `ChatTheme` | ❌ No | `DEFAULT_CHAT_THEME` | Visual customization (50+ tokens) |\n| `downloadFile` | `(params: { url: string; stopLoading: () => void; type: 'image' \\| 'video' \\| 'document'; fileName?: string }) => void` | ❌ No | `undefined` | Custom handler for media downloads (image, video, document) |\n| `onFeedbackSubmit` | `() => void` | ❌ No | `undefined` | Called after the user submits feedback/rating. Use to navigate away or close the chat screen. |\n| `onPerformanceReport` | `(report: PerformanceReport) => void` | ❌ No | `undefined` | Callback for APM integration |\n| `showLogToggle` | `boolean` | ❌ No | `false` | Show debug toggle button (dev only) |\n| `keyboardVerticalOffset` | `number` | ❌ No | `0` | Keyboard vertical offset for KeyboardAvoidingView on iOS |\n| `goBack` | `() => void` | ❌ No | `undefined` | When provided, renders a back arrow in the AppBar. Use to navigate back (e.g., `navigation.goBack()`). |\n\n### useChat Hook\n\n```tsx\nconst {\n  messages,\n  isLoading,\n  sendMessage,\n  sendMediaMessage,  // CLI-specific: supports images, videos, audio, documents\n  cancelUpload,\n  retryUpload,\n  // ... more\n} = useChat(user, config, customData);\n```\n\n---\n\n## Migration Guide\n\n### From Expo Adapter to CLI Adapter\n\nIf you're migrating from Expo to React Native CLI:\n\n**Step 1:** Uninstall Expo packages:\n```bash\nnpm uninstall @contegris/rn-intellicon-chat-sdk-expo expo-audio expo-document-picker expo-file-system expo-image-picker expo-video\n```\n\n**Step 2:** Install CLI package and its peer dependencies (`@contegris/rn-intellicon-chat-sdk` is included automatically):\n```bash\nnpm install @contegris/rn-intellicon-chat-sdk-cli react-native-image-picker react-native-video @react-native-documents/picker react-native-fs react-native-permissions\n```\n\n**Step 3:** Update imports:\n```tsx\n// Before\nimport { Chat } from '@contegris/rn-intellicon-chat-sdk-expo';\n\n// After\nimport { Chat } from '@contegris/rn-intellicon-chat-sdk-cli';\n```\n\n**Step 4:** iOS: Install CocoaPods:\n```bash\ncd ios && pod install && cd ..\n```\n\n**Step 5:** Rebuild:\n```bash\nnpx react-native run-ios\nnpx react-native run-android\n```\n\n---\n\n## Platform Support\n\n| Platform | Min Version | Status |\n|----------|-------------|--------|\n| iOS | 13.0+ | ✅ Fully supported |\n| Android | 8.0+ (API 26) | ✅ Fully supported |\n| React Native | 0.74+ | ✅ Fully supported |\n| New Architecture | N/A | ✅ Compatible |\n\n---\n\n## Examples\n\nSee [IMPLEMENTATION_GUIDE.md](./IMPLEMENTATION_GUIDE.md) for complete examples.\n\n---\n\n## Links\n\n- **Main Documentation:** [Monorepo README](../../README.md)\n- **Implementation Guide:** [IMPLEMENTATION_GUIDE.md](./IMPLEMENTATION_GUIDE.md)\n- **Core Package:** [`@contegris/rn-intellicon-chat-sdk`](../core)\n- **GitHub:** [https://github.com/contegris/rn-intellicon-chat-sdk](https://github.com/contegris/rn-intellicon-chat-sdk)\n- **npm:** [https://www.npmjs.com/package/@contegris/rn-intellicon-chat-sdk-cli](https://www.npmjs.com/package/@contegris/rn-intellicon-chat-sdk-cli)\n\n---\n\n## License\n\nMIT © [Contegris](https://contegris.com)\n","readmeFilename":"README.md"}