{"_id":"@4rgus/react-native-transcription","_rev":"2-0fc5af25757c50cbaeadcc3bdee7d626","name":"@4rgus/react-native-transcription","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@4rgus/react-native-transcription","version":"0.1.0","keywords":["react-native","ios","android"],"author":{"url":"https://github.com/4RGUS","name":"Vineeth Nambiar","email":"vntnambiar4@gmail.com"},"license":"MIT","_id":"@4rgus/react-native-transcription@0.1.0","maintainers":[{"name":"vntnambiar4","email":"vntnambiar4@gmail.com"}],"homepage":"https://github.com/4RGUS/react-native-transcription#readme","bugs":{"url":"https://github.com/4RGUS/react-native-transcription/issues"},"dist":{"shasum":"03d59fe56d249cbf3d3f33c342f817f04204193d","tarball":"https://registry.npmjs.org/@4rgus/react-native-transcription/-/react-native-transcription-0.1.0.tgz","fileCount":31,"integrity":"sha512-m6E+HUJjvuucsgYYbJaAy9wjhOy5qR2kD81gcUMUenH4elTsblEvzsos3EXfDbaLiRe+BrSJ28ueXzlCXIFJFg==","signatures":[{"sig":"MEUCIQD4uCcHq2C/QU+p+5180Ms58QgxH/qXPQRGO1WQ9HNVXAIgOBrQS/U1liYy2aqDAz1ITw8nFXFpdMBPDzqimbGSoqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33515},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"aafd7236679f2f054b760643ff5bddba27723969","private":false,"scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace react-native-transcription-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"vntnambiar4","email":"vntnambiar4@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/4RGUS/react-native-transcription.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native library for speech transcription (TurboModules, Android & iOS)","directories":{},"_nodeVersion":"20.19.2","codegenConfig":{"name":"TranscriptionSpec","type":"modules","android":{"javaPackageName":"com.transcription"},"jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"^0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.11","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-transcription_0.1.0_1749457547684_0.23934109708262374","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","module":true,"version":"0.50.3","languages":"kotlin-objc","typescript":true,"newArchitecture":true}},"0.1.1":{"name":"@4rgus/react-native-transcription","version":"0.1.1","private":false,"description":"React Native library for speech transcription (TurboModules, Android & iOS)","main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"source":"./src/index.tsx","types":"./lib/typescript/src/index.d.ts","default":"./lib/module/index.js"},"./package.json":"./package.json"},"scripts":{"example":"yarn workspace react-native-transcription-example","test":"jest","typecheck":"tsc","lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","prepare":"bob build","release":"release-it --only-version"},"keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/4RGUS/react-native-transcription.git"},"author":{"name":"Vineeth Nambiar","email":"vntnambiar4@gmail.com","url":"https://github.com/4RGUS"},"license":"MIT","bugs":{"url":"https://github.com/4RGUS/react-native-transcription/issues"},"homepage":"https://github.com/4RGUS/react-native-transcription#readme","publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@commitlint/config-conventional":"^19.6.0","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@eslint/js":"^9.22.0","@evilmartians/lefthook":"^1.5.0","@react-native-community/cli":"15.0.0-alpha.2","@react-native/babel-preset":"0.79.2","@react-native/eslint-config":"^0.78.0","@release-it/conventional-changelog":"^9.0.2","@types/jest":"^29.5.5","@types/react":"^19.0.0","commitlint":"^19.6.1","del-cli":"^5.1.0","eslint":"^9.22.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","jest":"^29.7.0","prettier":"^3.0.3","react":"19.0.0","react-native":"^0.79.2","react-native-builder-bob":"^0.40.11","release-it":"^17.10.0","turbo":"^1.10.7","typescript":"^5.8.3"},"peerDependencies":{"react":"*","react-native":"*"},"workspaces":["example"],"packageManager":"yarn@3.6.1","jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"commitMessage":"chore: release ${version}","tagName":"v${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"prettier":{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false},"react-native-builder-bob":{"source":"src","output":"lib","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"codegenConfig":{"name":"TranscriptionSpec","type":"modules","jsSrcsDir":"src","android":{"javaPackageName":"com.transcription"}},"create-react-native-library":{"module":true,"typescript":true,"newArchitecture":true,"languages":"kotlin-objc","type":"turbo-module","version":"0.50.3"},"_id":"@4rgus/react-native-transcription@0.1.1","gitHead":"38a034f8ea4b47c9da02d807c33b0dab83bad001","_nodeVersion":"20.19.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-lTvra4/kZFmct7MrvFst0C1lbGNcgVhEE6d6Fau7pG7n8bdyIIdtiQt5GcPF31rAkd2yKizH96fuf0DR0B7AXA==","shasum":"6ce346a402c9b0154ec51436e3697e24c49509e1","tarball":"https://registry.npmjs.org/@4rgus/react-native-transcription/-/react-native-transcription-0.1.1.tgz","fileCount":31,"unpackedSize":34236,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAga99s0zjC2RjqrlM2dnqWGq0UPPUkbfen91Q4YldfkAiEA24YsPXxGFm6/xXtr2fkHBpNfRJPyq75g2J4NhFo3fhI="}]},"_npmUser":{"name":"vntnambiar4","email":"vntnambiar4@gmail.com"},"directories":{},"maintainers":[{"name":"vntnambiar4","email":"vntnambiar4@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-transcription_0.1.1_1749464420384_0.10239915709855607"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-09T08:25:47.598Z","modified":"2025-06-09T10:20:20.767Z","0.1.0":"2025-06-09T08:25:47.905Z","0.1.1":"2025-06-09T10:20:20.563Z"},"bugs":{"url":"https://github.com/4RGUS/react-native-transcription/issues"},"author":{"name":"Vineeth Nambiar","email":"vntnambiar4@gmail.com","url":"https://github.com/4RGUS"},"license":"MIT","homepage":"https://github.com/4RGUS/react-native-transcription#readme","keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/4RGUS/react-native-transcription.git"},"description":"React Native library for speech transcription (TurboModules, Android & iOS)","maintainers":[{"name":"vntnambiar4","email":"vntnambiar4@gmail.com"}],"readme":"# @4rgus/react-native-transcription\r\n\r\nA cross-platform **speech-to-text** module for React Native apps, powered by native speech recognition APIs on both **Android** and **iOS**.\r\n\r\n\r\n\r\n---\r\n\r\n## ✨ Features\r\n\r\n- 🎙️ Real-time speech-to-text\r\n- 📱 Supports Android & iOS\r\n- 🔄 Handles partial and final results\r\n- 📡 Emits lifecycle events: start, result, error, end\r\n- 🧩 Easy to integrate with any React Native app\r\n\r\n---\r\n\r\nyarn add @4rgus/react-native-transcription\r\n## 📦 Installation\r\n\r\n```bash\r\nwith npm:\r\nnpm install @4rgus/react-native-transcription\r\n\r\nor with Yarn:\r\nyarn add @4rgus/react-native-transcription\r\n```\r\n\r\n## ⚙️ Usage\r\n```\r\nimport {\r\n  TranscriptionEventEmitter,\r\n  startListening,\r\n  stopListening,\r\n  destroyRecognizer,\r\n  language,\r\n} from '@4rgus/react-native-transcription';\r\n\r\nconst resultListener = TranscriptionEventEmitter.addListener(\r\n    'onSpeechResults',\r\n    event => {\r\n    console.log('Result from native:', event);\r\n    },\r\n);\r\nconst partialResultListener = TranscriptionEventEmitter.addListener(\r\n    'onSpeechPartialResults',\r\n    event => {\r\n    console.log('Partial result', event);\r\n    },\r\n);\r\nconst errorListener = TranscriptionEventEmitter.addListener(\r\n    'onSpeechError',\r\n    event => {\r\n    console.log('onSpeechError', event);\r\n    },\r\n);\r\n\r\nstartListening(language.englishIN)\r\nstopListening()\r\n```\r\n\r\n## 🧪 API Reference\r\n| Method / Event                                                              | Description                        | Parameters                        | Returns               |\r\n| --------------------------------------------------------------------------- | ---------------------------------- | --------------------------------- | --------------------- |\r\n| `startListening(language?: string)`                                         | Starts speech recognition.         | `language` (optional) BCP-47 code | `void`                |\r\n| `stopListening()`                                                           | Stops speech recognition.          | None                              | None                  |\r\n| `TranscriptionEventEmitter.addListener('onSpeechError', callback)`          | Listen for recognition errors.     | `callback(event: any)`            | Event listener (void) |\r\n| `TranscriptionEventEmitter.addListener('onSpeechPartialResults', callback)` | Listen for partial speech results. | `callback(event: any)`            | Event listener (void) |\r\n| `TranscriptionEventEmitter.addListener('onSpeechResults', callback)` | Listen for complete speech results. | `callback(event: any)`            | Event listener (void) |\r\n\r\n\r\n\r\n## 🚦 Permissions\r\n\r\n<b>Android</b>\r\nAdd to your AndroidManifest.xml:\r\n```\r\n<uses-permission android:name=\"android.permission.RECORD_AUDIO\" />\r\n```\r\n\r\n<b>iOS</b>\r\nIn your Info.plist:\r\n```\r\n<key>NSMicrophoneUsageDescription</key>\r\n<string>This app requires access to the microphone for speech recognition.</string>\r\n<key>NSSpeechRecognitionUsageDescription</key>\r\n<string>This app uses speech recognition to convert speech to text.</string>\r\n```","readmeFilename":"README.md"}