{"_id":"@bsky.app/expo-guess-language","_rev":"8-2fbe7dc1f857d9a71adf707f08627569","name":"@bsky.app/expo-guess-language","dist-tags":{"latest":"0.2.8"},"versions":{"0.1.0":{"name":"@bsky.app/expo-guess-language","version":"0.1.0","keywords":["react-native","expo","language-detection","nlp"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"samuel@blueskyweb.xyz"},"license":"MIT","_id":"@bsky.app/expo-guess-language@0.1.0","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"rafaeleyng","email":"rafaeleyng@gmail.com"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-guess-language#readme","bugs":{"url":"https://github.com/bluesky-social/expo-guess-language/issues"},"dist":{"shasum":"8127fd64f94093efd94f62178e699d2968b6603d","tarball":"https://registry.npmjs.org/@bsky.app/expo-guess-language/-/expo-guess-language-0.1.0.tgz","fileCount":41,"integrity":"sha512-O0pVhQ2cpWeubxJpRjZuJG7p3A/bkgnLQjFaVk5jrF8XiQw+4YWk3cgbfUGcT8GM3J7edVI5iZYnp4gpqv0HpA==","signatures":[{"sig":"MEYCIQDV3/RwKuRg56WHJ8gZaBx6VUZA6TQi2QM9PK/8jJkcDgIhANPN9YPTGOR/yuZjgizIWSqBzkeUE1TwWxmEM/SsDQOe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25747},"main":"build/index.js","types":"build/index.d.ts","gitHead":"cf858f1c3d454849356619e77ed5e81b09702c10","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"mozzius","email":"mozzius@protonmail.com"},"repository":{"url":"git+https://github.com/bluesky-social/expo-guess-language.git","type":"git"},"_npmVersion":"10.8.2","description":"Guess the language of a text snippet using native APIs","directories":{},"_nodeVersion":"20.19.4","dependencies":{"lande":"^1.0.10"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.26.2+sha512.0e308ff2005fc7410366f154f625f6631ab2b16b1d2e70238444dd6ae9d630a8482d92a451144debc492416896ed16f7b114a86ec68b8404b2443869e68ffda6","devDependencies":{"expo":"^54.0.33","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^55.0.2"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-guess-language_0.1.0_1772356200292_0.15260499689784535","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bsky.app/expo-guess-language","version":"0.2.0","keywords":["react-native","expo","language-detection","nlp"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"samuel@blueskyweb.xyz"},"license":"MIT","_id":"@bsky.app/expo-guess-language@0.2.0","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"rafaeleyng","email":"rafaeleyng@gmail.com"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-guess-language#readme","bugs":{"url":"https://github.com/bluesky-social/expo-guess-language/issues"},"dist":{"shasum":"a37ff345e3ca30203bca2971085b358f27635bdc","tarball":"https://registry.npmjs.org/@bsky.app/expo-guess-language/-/expo-guess-language-0.2.0.tgz","fileCount":41,"integrity":"sha512-6aKn0DZ2JWnpW2cJ0sBBH6kkLMaTThdVeIbYRbnP7uRczkkD+9HTfAOZgsMJChRLOkgfGe5aYBTbJOFnY2BH1g==","signatures":[{"sig":"MEUCIEoJWSQjfSFOc5c2ETiivayn1GYCWEv20iG1Z3Fhu1JDAiEAlo13PxCknLtWg1s2uxMjA4V5HuKIYLQ9CZGUECEr2RM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28449},"main":"build/index.js","types":"build/index.d.ts","gitHead":"479632aa4858c739cbc3607f3dd19aa725105b0e","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"mozzius","email":"mozzius@protonmail.com"},"repository":{"url":"git+https://github.com/bluesky-social/expo-guess-language.git","type":"git"},"_npmVersion":"10.8.2","description":"Guess the language of a text snippet using native APIs","directories":{},"_nodeVersion":"20.19.4","dependencies":{"lande":"^1.0.10"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.26.2+sha512.0e308ff2005fc7410366f154f625f6631ab2b16b1d2e70238444dd6ae9d630a8482d92a451144debc492416896ed16f7b114a86ec68b8404b2443869e68ffda6","devDependencies":{"expo":"^54.0.33","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^55.0.2"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-guess-language_0.2.0_1772357561001_0.9946013563738136","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bsky.app/expo-guess-language","version":"0.2.1","keywords":["react-native","expo","language-detection","nlp"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"samuel@blueskyweb.xyz"},"license":"MIT","_id":"@bsky.app/expo-guess-language@0.2.1","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"rafaeleyng","email":"rafaeleyng@gmail.com"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-guess-language#readme","bugs":{"url":"https://github.com/bluesky-social/expo-guess-language/issues"},"dist":{"shasum":"e8c634da78771a4ef9d899973d14c82061000f32","tarball":"https://registry.npmjs.org/@bsky.app/expo-guess-language/-/expo-guess-language-0.2.1.tgz","fileCount":41,"integrity":"sha512-XWXsbCwRwSxHWq6ymBEl6FlOEslMM2bmYncYerTghWjzP1d5MTqvV2JFyqFUfkdrcb3m89WXEwSaEPLHzE/1Kg==","signatures":[{"sig":"MEYCIQCO1nyuInWijh6iX7wFfrlDON2OWg3gtWSjSl3hK35V7AIhAPI+yi9pCCFzQ+xK2LWXX0XhOiAUhRNf+/Z3RzxZWpOh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28595},"main":"build/index.js","types":"build/index.d.ts","gitHead":"c0aa51109723748306ecf8263ab3cf27afc70292","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"mozzius","email":"mozzius@protonmail.com"},"repository":{"url":"git+https://github.com/bluesky-social/expo-guess-language.git","type":"git"},"_npmVersion":"10.8.2","description":"Guess the language of a text snippet using native APIs","directories":{},"_nodeVersion":"20.19.4","dependencies":{"lande":"^1.0.10"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.26.2+sha512.0e308ff2005fc7410366f154f625f6631ab2b16b1d2e70238444dd6ae9d630a8482d92a451144debc492416896ed16f7b114a86ec68b8404b2443869e68ffda6","devDependencies":{"expo":"^54.0.33","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^55.0.2"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-guess-language_0.2.1_1772362848007_0.6400225907493078","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@bsky.app/expo-guess-language","version":"0.2.2","keywords":["react-native","expo","language-detection","nlp"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"samuel@blueskyweb.xyz"},"license":"MIT","_id":"@bsky.app/expo-guess-language@0.2.2","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"rafaeleyng","email":"rafaeleyng@gmail.com"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-guess-language#readme","bugs":{"url":"https://github.com/bluesky-social/expo-guess-language/issues"},"dist":{"shasum":"b02a04f8bf61d5b36972c2dd70188a53d89b3556","tarball":"https://registry.npmjs.org/@bsky.app/expo-guess-language/-/expo-guess-language-0.2.2.tgz","fileCount":42,"integrity":"sha512-/qCfEd79ucJPzZzhnFD/N9HHnFykf/JSTo4ly3qI4bbifRX748/I0EjBVfMC+z5q+yAGYnnsnvn5zd4Zf7kGEQ==","signatures":[{"sig":"MEQCIFArkyd0rV8MQwg/ZnCTHryPvAH8JwJNEE+J5nCRpqXpAiBLpcTcAKnUxbMbwJZTUek0bfu9LxyDPNNudUUFglXw7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29291},"main":"build/index.js","types":"build/index.d.ts","gitHead":"1dced1cadc795d1adbd197e5dd29a2f7f437dd10","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","format":"prettier --write .","prepare":"expo-module prepare","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"mozzius","email":"mozzius@protonmail.com"},"repository":{"url":"git+https://github.com/bluesky-social/expo-guess-language.git","type":"git"},"_npmVersion":"10.8.2","description":"Guess the language of a text snippet using native APIs","directories":{},"_nodeVersion":"20.19.4","dependencies":{"lande":"^1.0.10"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3+sha512.c961d1e0a2d8e354ecaa5166b822516668b7f44cb5bd95122d590dd81922f606f5473b6d23ec4a5be05e7fcd18e8488d47d978bbe981872f1145d06e9a740017","devDependencies":{"expo":"^54.0.33","prettier":"^3.8.1","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^5.0.8"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-guess-language_0.2.2_1772381551868_0.09800303349249795","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@bsky.app/expo-guess-language","version":"0.2.3","keywords":["react-native","expo","language-detection","nlp"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"samuel@blueskyweb.xyz"},"license":"MIT","_id":"@bsky.app/expo-guess-language@0.2.3","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"rafaeleyng","email":"rafaeleyng@gmail.com"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-guess-language#readme","bugs":{"url":"https://github.com/bluesky-social/expo-guess-language/issues"},"dist":{"shasum":"9edfa605591fef89d0a4e0116aafc3650c97fb30","tarball":"https://registry.npmjs.org/@bsky.app/expo-guess-language/-/expo-guess-language-0.2.3.tgz","fileCount":42,"integrity":"sha512-bDStgrqx9kDGrR2xEWYdTyprUXv6s9Bttv1rBqWGjyWaJTHN0MySrmCYJB6Jb9RnVMerYPmmF/d29LWjdKj12g==","signatures":[{"sig":"MEQCIADNXtDmf7rLN+e4/9znIzPUzckva7k0miWFXc6AghuhAiAENWtZOOaQk8SPmSoX+si/N0bZlfYU6smVr1cEpSeKsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29291},"main":"build/index.js","types":"build/index.d.ts","gitHead":"16e55fc3b7ab41f0bd851a4ada0d5285646f35dc","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","format":"prettier --write .","prepare":"expo-module prepare","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"mozzius","email":"mozzius@protonmail.com"},"repository":{"url":"git+https://github.com/bluesky-social/expo-guess-language.git","type":"git"},"_npmVersion":"10.8.2","description":"Guess the language of a text snippet using native APIs","directories":{},"_nodeVersion":"20.19.4","dependencies":{"lande":"^1.0.10"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3+sha512.c961d1e0a2d8e354ecaa5166b822516668b7f44cb5bd95122d590dd81922f606f5473b6d23ec4a5be05e7fcd18e8488d47d978bbe981872f1145d06e9a740017","devDependencies":{"expo":"^54.0.33","prettier":"^3.8.1","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^5.0.8"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-guess-language_0.2.3_1772542054719_0.31159021557360633","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@bsky.app/expo-guess-language","version":"0.2.7","keywords":["react-native","expo","language-detection","nlp"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"samuel@blueskyweb.xyz"},"license":"MIT","_id":"@bsky.app/expo-guess-language@0.2.7","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"rafaeleyng","email":"rafaeleyng@gmail.com"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-guess-language#readme","bugs":{"url":"https://github.com/bluesky-social/expo-guess-language/issues"},"dist":{"shasum":"0def5fc90894ef6b2ffa3f78c365cf4f66b2e960","tarball":"https://registry.npmjs.org/@bsky.app/expo-guess-language/-/expo-guess-language-0.2.7.tgz","fileCount":42,"integrity":"sha512-6VaBk6Q+JhAG2EYNUzpOceXLV2HeH5ca24dzZca12nJ0NjKRb46cjOx8Y2W3Db25obMTVohsGYUFXd6mNxlKfw==","signatures":[{"sig":"MEYCIQCtVGLKFQ45eMWeN8d+CZIigL1dw1K0LcEduhbl2sN8awIhANS4fPfxDD9+oVqRO1/zRKu5lWBcZPB65fYgR5Bk1JUZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsky.app%2fexpo-guess-language@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29056},"main":"build/index.js","_from":"file:bsky.app-expo-guess-language-0.2.7.tgz","types":"build/index.d.ts","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","format":"prettier --write .","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be40d44b-4074-4d49-8ea3-621dcf279141"}},"_resolved":"/tmp/d7af2ff63634dcc5af3135eb858aa9ac/bsky.app-expo-guess-language-0.2.7.tgz","_integrity":"sha512-6VaBk6Q+JhAG2EYNUzpOceXLV2HeH5ca24dzZca12nJ0NjKRb46cjOx8Y2W3Db25obMTVohsGYUFXd6mNxlKfw==","repository":{"url":"git+https://github.com/bluesky-social/expo-guess-language.git","type":"git"},"_npmVersion":"11.8.0","description":"Guess the language of a text snippet using native APIs","directories":{},"_nodeVersion":"24.13.1","dependencies":{"lande":"^1.0.10"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^54.0.33","prettier":"^3.8.1","typescript":"^5.9.3","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^5.0.8"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-guess-language_0.2.7_1772543626605_0.4979934627519689","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@bsky.app/expo-guess-language","version":"0.2.8","description":"Guess the language of a text snippet using native APIs","main":"build/index.js","types":"build/index.d.ts","keywords":["react-native","expo","language-detection","nlp"],"repository":{"type":"git","url":"git+https://github.com/bluesky-social/expo-guess-language.git"},"bugs":{"url":"https://github.com/bluesky-social/expo-guess-language/issues"},"author":{"name":"Samuel Newman","email":"samuel@blueskyweb.xyz","url":"https://github.com/mozzius"},"license":"MIT","homepage":"https://github.com/bluesky-social/expo-guess-language#readme","devDependencies":{"@expo/npm-proofread":"^1.0.1","@types/react":"~19.1.1","expo":"^54.0.33","expo-module-scripts":"^5.0.8","prettier":"^3.8.1","react-native":"0.81.5","typescript":"^5.9.3"},"dependencies":{"lande":"^1.0.10"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"scripts":{"build":"expo-module build","clean":"expo-module clean","lint":"expo-module lint","test":"expo-module test","expo-module":"expo-module","open:ios":"xed example/ios","open:android":"open -a \"Android Studio\" example/android","format":"prettier --write ."},"_id":"@bsky.app/expo-guess-language@0.2.8","_integrity":"sha512-krcQfMSJn39kaFRpaOWxLUW9rT04reoBqjQviu2fTGQWXWEImG25SJondSObVNyGXlmRMrltt72Sc+aRPpQeog==","_resolved":"/tmp/f735462961b8a93fce32a6df3173eb8b/bsky.app-expo-guess-language-0.2.8.tgz","_from":"file:bsky.app-expo-guess-language-0.2.8.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-krcQfMSJn39kaFRpaOWxLUW9rT04reoBqjQviu2fTGQWXWEImG25SJondSObVNyGXlmRMrltt72Sc+aRPpQeog==","shasum":"e1c2d03b8852eb5fb7397316b0ec8cd7c4f98747","tarball":"https://registry.npmjs.org/@bsky.app/expo-guess-language/-/expo-guess-language-0.2.8.tgz","fileCount":47,"unpackedSize":29515,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsky.app%2fexpo-guess-language@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDo15AApgT/KhroKyl4k92lYfBWCx3L3FS/p7QyUxTBeQIhALikkSkHCqoaPcNrI1Sbck/rW3qVQavD4rQLsZ26/ftQ"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be40d44b-4074-4d49-8ea3-621dcf279141"}},"directories":{},"maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/expo-guess-language_0.2.8_1775595136522_0.8867378670844088"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-01T09:10:00.202Z","modified":"2026-04-07T20:52:17.033Z","0.1.0":"2026-03-01T09:10:00.452Z","0.2.0":"2026-03-01T09:32:41.150Z","0.2.1":"2026-03-01T11:00:48.160Z","0.2.2":"2026-03-01T16:12:32.015Z","0.2.3":"2026-03-03T12:47:34.880Z","0.2.7":"2026-03-03T13:13:46.744Z","0.2.8":"2026-04-07T20:52:16.691Z"},"bugs":{"url":"https://github.com/bluesky-social/expo-guess-language/issues"},"author":{"name":"Samuel Newman","email":"samuel@blueskyweb.xyz","url":"https://github.com/mozzius"},"license":"MIT","homepage":"https://github.com/bluesky-social/expo-guess-language#readme","keywords":["react-native","expo","language-detection","nlp"],"repository":{"type":"git","url":"git+https://github.com/bluesky-social/expo-guess-language.git"},"description":"Guess the language of a text snippet using native APIs","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"readme":"# @bsky.app/expo-guess-language\n\nAn Expo module for language detection using native platform APIs, with a JavaScript fallback.\n\n## Platform support\n\n| Platform                   | Backend                                                                            | Notes                         |\n| -------------------------- | ---------------------------------------------------------------------------------- | ----------------------------- |\n| iOS                        | [NaturalLanguage](https://developer.apple.com/documentation/naturallanguage)       | Always available (iOS 15.1+)  |\n| Android                    | [ML Kit Language ID](https://developers.google.com/ml-kit/language/identification) | Requires Google Play Services |\n| Android (no Play Services) | [lande](https://github.com/fabiospampinato/lande)                                  | Automatic JS fallback         |\n| Web                        | [lande](https://github.com/fabiospampinato/lande)                                  | JS-only                       |\n\n## Installation\n\n```\nnpx expo install @bsky.app/expo-guess-language\n```\n\nFor bare React Native projects, run `npx pod-install` after installing.\n\n## Usage\n\n### Async\n\n```ts\nimport { guessLanguageAsync } from \"@bsky.app/expo-guess-language\";\n\nconst results = await guessLanguageAsync(\"Hello, world!\");\n// [{ language: \"en\", confidence: 0.98 }, ...]\n```\n\n### Sync\n\n```ts\nimport { guessLanguageSync } from \"@bsky.app/expo-guess-language\";\n\nconst results = guessLanguageSync(\"Hello, world!\");\n// [{ language: \"en\", confidence: 0.98 }, ...]\n```\n\nOn iOS, `guessLanguageSync` uses the native NaturalLanguage framework. On Android and web, it uses the [lande](https://github.com/fabiospampinato/lande) JS library.\n\n### Options\n\n```ts\nconst results = await guessLanguageAsync(\"Bonjour le monde!\", {\n  maxResults: 3, // default: 10\n});\n```\n\n### Types\n\n```ts\ntype LanguageResult = {\n  language: string; // BCP-47 code (\"en\", \"fr\", \"ja\", ...)\n  confidence: number; // 0 to 1\n};\n\ntype GuessLanguageOptions = {\n  maxResults?: number; // default 10\n};\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}