{"_id":"@asif-pindi/react-native-custom-camera","_rev":"3-454ba4ee09b385004470effb81f92769","name":"@asif-pindi/react-native-custom-camera","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.2":{"name":"@asif-pindi/react-native-custom-camera","version":"1.0.2","keywords":["react-native","ios","android"],"author":{"url":"https://github.com/asifali741","name":"Asif Ali","email":"221866@students.au.edu.pk"},"license":"MIT","_id":"@asif-pindi/react-native-custom-camera@1.0.2","maintainers":[{"name":"asif-pindi","email":"asif1465majid@gmail.com"}],"homepage":"https://github.com/asifali741/react-native-custom-camera.git#readme","bugs":{"url":"https://github.com/asifali741/react-native-custom-camera.git/issues"},"dist":{"shasum":"c600827f57f5f91eeaf625e5e5f168336b646664","tarball":"https://registry.npmjs.org/@asif-pindi/react-native-custom-camera/-/react-native-custom-camera-1.0.2.tgz","fileCount":37,"integrity":"sha512-V586RylbaGwjJr258ki664+RXO7NxhnAB0mvCBeSUi54S7BJ4FkpDOOmg2I/fBI/f8t+SzNmZBgk7Du6uZdgOQ==","signatures":[{"sig":"MEUCIQDjKUf8Mirtd9URUBiYbDHMZwLYYzJ9hCsVCOfRaBSfOQIgMXlaiBDiyXZkon2HsZR4wBdK/W3L58nu8GBTDY36jOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18061},"jest":{"preset":"@react-native/jest-preset","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":"3c3e38a8d40c6ae7ea4e50b85a68471460e46ec6","scripts":{"web":"vite","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-custom-camera-example","prepare":"bob build","release":"release-it --only-version","build:web":"vite build","typecheck":"tsc"},"_npmUser":{"name":"asif-pindi","email":"asif1465majid@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/asifali741/react-native-custom-camera.git.git","type":"git"},"workspaces":["example"],"_npmVersion":"11.6.0","description":"Camera","directories":{},"_nodeVersion":"22.14.0","codegenConfig":{"name":"CustomCameraSpec","type":"modules","android":{"javaPackageName":"com.customcamera"},"jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.11.0","devDependencies":{"jest":"^29.7.0","react":"19.2.3","turbo":"^2.9.16","eslint":"^9.39.4","del-cli":"^7.0.0","lefthook":"^2.1.9","prettier":"^3.8.3","@eslint/js":"^10.0.1","commitlint":"^21.0.2","release-it":"^20.2.0","typescript":"^6.0.3","@types/react":"^19.2.0","react-native":"0.85.0","@jest/globals":"^29.7.0","@eslint/compat":"^2.1.0","@eslint/eslintrc":"^3.3.5","react-native-web":"~0.21.2","eslint-plugin-ft-flow":"^3.0.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","react-native-builder-bob":"^0.41.0","@react-native/jest-preset":"0.85.0","@react-native/babel-preset":"0.85.0","@react-native/eslint-config":"0.85.0","@commitlint/config-conventional":"^21.0.2","@release-it/conventional-changelog":"^11.0.1"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-custom-camera_1.0.2_1781183176224_0.11503869891945406","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","tools":["eslint","jest","lefthook","release-it","vite"],"version":"0.62.1","languages":"kotlin-objc"}},"1.0.3":{"name":"@asif-pindi/react-native-custom-camera","version":"1.0.3","keywords":["react-native","ios","android"],"author":{"url":"https://github.com/asifali741","name":"Asif Ali","email":"221866@students.au.edu.pk"},"license":"MIT","_id":"@asif-pindi/react-native-custom-camera@1.0.3","maintainers":[{"name":"asif-pindi","email":"asif1465majid@gmail.com"}],"homepage":"https://github.com/asifali741/react-native-custom-camera.git#readme","bugs":{"url":"https://github.com/asifali741/react-native-custom-camera.git/issues"},"dist":{"shasum":"66e7e51b801bee4c2cbfbb1f7d4ccd40f3811643","tarball":"https://registry.npmjs.org/@asif-pindi/react-native-custom-camera/-/react-native-custom-camera-1.0.3.tgz","fileCount":37,"integrity":"sha512-QmOwQ4SpuFB6kxjrwcinh9dx6Dn07r4I9xVY50i2DDhkdM6oFipgczHekmSQxjys5XD1e5GiwW8ZdLKstRIYCg==","signatures":[{"sig":"MEUCIAmhW33DlrKrnl8kK7BlfoX3x8Qm/ItumgoAkyydc7AmAiEA4gRPxI5mWb3X+eZjg89edk7yVuWDsFvw+Maep80nTZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18075},"jest":{"preset":"@react-native/jest-preset","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":"2a79150e5ab43ebe429f6737195936e1b5d733f7","scripts":{"web":"vite","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-custom-camera-example","prepare":"bob build","release":"release-it --only-version","build:web":"vite build","typecheck":"tsc"},"_npmUser":{"name":"asif-pindi","email":"asif1465majid@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/asifali741/react-native-custom-camera.git.git","type":"git"},"workspaces":["example"],"_npmVersion":"11.6.0","description":"Camera","directories":{},"_nodeVersion":"22.14.0","codegenConfig":{"name":"CustomCameraSpec","type":"modules","android":{"javaPackageName":"com.customcamera"},"jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.11.0","devDependencies":{"jest":"^29.7.0","react":"19.2.3","turbo":"^2.9.16","eslint":"^9.39.4","del-cli":"^7.0.0","lefthook":"^2.1.9","prettier":"^3.8.3","@eslint/js":"^10.0.1","commitlint":"^21.0.2","release-it":"^20.2.0","typescript":"^6.0.3","@types/react":"^19.2.0","react-native":"0.85.0","@jest/globals":"^29.7.0","@eslint/compat":"^2.1.0","@eslint/eslintrc":"^3.3.5","react-native-web":"~0.21.2","eslint-plugin-ft-flow":"^3.0.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","react-native-builder-bob":"^0.41.0","@react-native/jest-preset":"0.85.0","@react-native/babel-preset":"0.85.0","@react-native/eslint-config":"0.85.0","@commitlint/config-conventional":"^21.0.2","@release-it/conventional-changelog":"^11.0.1"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-custom-camera_1.0.3_1781189411522_0.2147691743990363","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","tools":["eslint","jest","lefthook","release-it","vite"],"version":"0.62.1","languages":"kotlin-objc"}},"1.0.4":{"name":"@asif-pindi/react-native-custom-camera","version":"1.0.4","description":"Camera","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-custom-camera-example","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","prepare":"bob build","typecheck":"tsc","lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","release":"release-it --only-version","web":"vite","build:web":"vite build"},"keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/asifali741/react-native-custom-camera.git.git"},"author":{"name":"Asif Ali","email":"221866@students.au.edu.pk","url":"https://github.com/asifali741"},"license":"MIT","bugs":{"url":"https://github.com/asifali741/react-native-custom-camera.git/issues"},"homepage":"https://github.com/asifali741/react-native-custom-camera.git#readme","publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@commitlint/config-conventional":"^21.0.2","@eslint/compat":"^2.1.0","@eslint/eslintrc":"^3.3.5","@eslint/js":"^10.0.1","@jest/globals":"^29.7.0","@react-native/babel-preset":"0.85.0","@react-native/eslint-config":"0.85.0","@react-native/jest-preset":"0.85.0","@release-it/conventional-changelog":"^11.0.1","@types/react":"^19.2.0","commitlint":"^21.0.2","del-cli":"^7.0.0","eslint":"^9.39.4","eslint-config-prettier":"^10.1.8","eslint-plugin-ft-flow":"^3.0.11","eslint-plugin-prettier":"^5.5.6","jest":"^29.7.0","lefthook":"^2.1.9","prettier":"^3.8.3","react":"19.2.3","react-native":"0.85.0","react-native-builder-bob":"^0.41.0","react-native-web":"~0.21.2","release-it":"^20.2.0","turbo":"^2.9.16","typescript":"^6.0.3"},"peerDependencies":{"react":"*","react-native":"*"},"workspaces":["example"],"packageManager":"yarn@4.11.0","react-native-builder-bob":{"source":"src","output":"lib","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"codegenConfig":{"name":"CustomCameraSpec","type":"modules","jsSrcsDir":"src","android":{"javaPackageName":"com.customcamera"}},"prettier":{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false},"jest":{"preset":"@react-native/jest-preset","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"commitMessage":"chore: release ${version}","tagName":"v${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"create-react-native-library":{"type":"turbo-module","languages":"kotlin-objc","tools":["eslint","jest","lefthook","release-it","vite"],"version":"0.62.1"},"_id":"@asif-pindi/react-native-custom-camera@1.0.4","gitHead":"3763d3253898460a9ba1d0a1320d6fcbc2c928a3","_nodeVersion":"22.14.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-PAFnscyx4USf1HRBQUbQjvSNWrYlHhFCl10jQFgjan2p0Nvq3iGFKQwa4/VUYUydP7sPcDauph7XogjUb8m7XQ==","shasum":"b627c58464277739747252d2fb4e0e5b8057e4f4","tarball":"https://registry.npmjs.org/@asif-pindi/react-native-custom-camera/-/react-native-custom-camera-1.0.4.tgz","fileCount":37,"unpackedSize":18188,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCw84/WLrzO/UxycVAw8ZiEGkN7nzeU7vk9i5oXv6NAyAIhAM+pJnUezd2+rU4xzT3JXvSCZEqy5xyfaUadFYrCwoez"}]},"_npmUser":{"name":"asif-pindi","email":"asif1465majid@gmail.com"},"directories":{},"maintainers":[{"name":"asif-pindi","email":"asif1465majid@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-custom-camera_1.0.4_1781189833669_0.9213621679595199"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-11T13:06:16.039Z","modified":"2026-06-11T14:57:13.926Z","1.0.2":"2026-06-11T13:06:16.433Z","1.0.3":"2026-06-11T14:50:11.720Z","1.0.4":"2026-06-11T14:57:13.800Z"},"bugs":{"url":"https://github.com/asifali741/react-native-custom-camera.git/issues"},"author":{"name":"Asif Ali","email":"221866@students.au.edu.pk","url":"https://github.com/asifali741"},"license":"MIT","homepage":"https://github.com/asifali741/react-native-custom-camera.git#readme","keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/asifali741/react-native-custom-camera.git.git"},"description":"Camera","maintainers":[{"name":"asif-pindi","email":"asif1465majid@gmail.com"}],"readme":"# @asif-pindi/react-native-custom-camera\n\nA custom React Native native module for opening the device camera.\n\n## Installation\n\nInstall the package in a React Native app:\n\n```sh\nnpm install @asif-pindi/react-native-custom-camera\n```\n\nor:\n\n```sh\nyarn add @asif-pindi/react-native-custom-camera\n```\n\nAfter installing or updating a native module, rebuild the native app:\n\n```sh\nnpx react-native run-android\n```\n\n## Usage\n\nImport and call `openCamera`:\n\n```tsx\nimport { openCamera } from '@asif-pindi/react-native-custom-camera';\n\nopenCamera();\n```\n\nButton example:\n\n```tsx\nimport { Button, View } from 'react-native';\nimport { openCamera } from '@asif-pindi/react-native-custom-camera';\n\nexport default function App() {\n  return (\n    <View>\n      <Button title=\"Open Camera\" onPress={() => void openCamera()} />\n    </View>\n  );\n}\n```\n\n## Android Permission\n\nThe package declares the Android camera permission. Android will ask the user for camera permission the first time the camera opens.\n\nIf permission is denied, call `openCamera()` again after the user enables camera permission from app settings.\n\n## Platform Support\n\n- Android: supported.\n- iOS: native files are included, but camera opening behavior currently needs iOS implementation.\n- Web: not supported. `openCamera()` rejects with an unsupported-platform error.\n\n## Example App\n\nClone the repository and install dependencies:\n\n```sh\ngit clone https://github.com/asifali741/react-native-custom-camera.git\ncd react-native-custom-camera\nyarn install\n```\n\nStart Metro:\n\n```sh\nyarn example start\n```\n\nRun the Android example:\n\n```sh\nyarn example android\n```\n\n## Updating The Package\n\nWhen a new version is published, update it in your app:\n\n```sh\nnpm install @asif-pindi/react-native-custom-camera@latest\n```\n\nor:\n\n```sh\nyarn add @asif-pindi/react-native-custom-camera@latest\n```\n\nThen rebuild the native app.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}