{"_id":"@tensorflow/tfjs-react-native","_rev":"30-9b9376ed8ffa7198c3a5fecd46fa263a","name":"@tensorflow/tfjs-react-native","dist-tags":{"alpha":"0.1.0-alpha.2","latest":"1.0.0"},"versions":{"0.1.0-alpha.0":{"name":"@tensorflow/tfjs-react-native","version":"0.1.0-alpha.0","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"tsc","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","test":"karma start","test-ci":"./scripts/test-ci.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":"^1.2.8","@types/base64-js":"^1.2.5","@types/jasmine":"~2.5.53","@types/react-native":"^0.60.2","clang-format":"~1.2.2","expo-gl":"^5.0.1","jasmine":"~3.1.0","jasmine-core":"~3.1.0","karma":"~4.2.0","karma-browserstack-launcher":"~1.4.0","karma-chrome-launcher":"~2.2.0","karma-jasmine":"~1.1.0","karma-typescript":"~4.1.1","karma-verbose-reporter":"^0.0.6","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.2.8","expo-gl":"^5.0.1","react-native":">= 0.58.0 < 0.60.0"},"_id":"@tensorflow/tfjs-react-native@0.1.0-alpha.0","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Io1yXAp0Ln6vT1r8sxMpDlfwLCHgHWLSTex+kpHjlmtyO0CYk3yiWLGoKnBHSkmHE4PZAbuSYzMJpGIIW8m10w==","shasum":"568963ed09e363c8909ad157732b563e5611d9b1","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.1.0-alpha.0.tgz","fileCount":33,"unpackedSize":83124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaBpjCRA9TVsSAnZWagAAducP/jhSF1S4bxCYK9M7erP2\np85axkfErM4WYrcFNXe2lumE4YxxURMcaRZr7m90yzZVexa3gI9yVzElCZQZ\nlylke8squjjxQaWKttZkZyJlcognSXVyXfnCzQwy/wQNhvSSo2idLTsf08nl\ngW9DFxX/Mosq65QD28IN2HukRQ1Fx71YVriAv0PC8tc3LvvQDMXWm3bZLyXn\nvX62kyXxK3YIuJc0oaILCR0QZt9HGaaiKi7Fx2plA4xVug5ECwlDgufLTYxK\nVKWXcRoJgFdbUOUOgilHNxJ3rhgECqJiKkSruZinT4O81YKLBjWJpfw1vAUU\nCn/n4q20miI4l6KN2kYUmKxjQr3QPc5ILirjPOauELbiEvwEjym8UHHLCJvQ\nmhZp+IaKpzPKMmtaHaGVuiQdsO/409/+E8aexqNlvCGAY0IRVon83cqR3q6s\n7OCWKNc0sXxOkoTpbUagNiAlH9RvPsNAPRPyc33j3HXs6RK9bf1+ZvZmVWvZ\ngdLgR063tUUvS97CoFWswKFIYi9zRQag8fa43FSdcaZZTCev1eMXp07vSffA\nwANXQrrOHUhMhkuuq4FDslfrpgnh6PiPT86GPoH7l2xpRS9u16aIh/WHT+tF\nJrLRGLsAo07YsYbu3bSySrerXfHJGVja78XKW8yJXfWQAAg8OOrmQVZYhbSv\nmRHK\r\n=2bIo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCviYWEwM/0+79a7wJdh5BS6SqDEY31kNo9WYWRXgPsvgIhAOHaJwnhUMeD4yDhvv/TxqWQxHfFACTmStwaAi8UkUnO"}]},"maintainers":[{"name":"kangyizhang","email":"kangyizhang@google.com"},{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"nkreeger","email":"nick.kreeger@gmail.com"},{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"dsmilkov","email":"dsmilkov@gmail.com"},{"name":"nsthorat","email":"nsthorat@google.com"},{"name":"davidsoergel","email":"soergel@google.com"},{"name":"tafsiri","email":"yassogba@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"ericdnielsen","email":"ericdnielsen@gmail.com"},{"name":"bileschi","email":"bileschi@gmail.com"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.1.0-alpha.0_1567103587090_0.8791137294320073"},"_hasShrinkwrap":false},"0.1.0-alpha.1":{"name":"@tensorflow/tfjs-react-native","version":"0.1.0-alpha.1","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"tsc","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","test":"karma start","test-ci":"./scripts/test-ci.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":"^1.2.8","@types/base64-js":"^1.2.5","@types/jasmine":"~2.5.53","@types/react-native":"^0.60.2","clang-format":"~1.2.2","expo-gl":"^5.0.1","jasmine":"~3.1.0","jasmine-core":"~3.1.0","karma":"~4.2.0","karma-browserstack-launcher":"~1.4.0","karma-chrome-launcher":"~2.2.0","karma-jasmine":"~1.1.0","karma-typescript":"~4.1.1","karma-verbose-reporter":"^0.0.6","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.2.8","expo-gl":"^5.0.1","react-native":">= 0.58.0 < 0.60.0"},"_id":"@tensorflow/tfjs-react-native@0.1.0-alpha.1","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-mdDfYqRbT10CjMqYrjY/CQFp/8A7Qc7ZLmMH2bThz32+oGs04Hhis0xheRhy0yU48NqfUD8ZUXGiHnbZtiHiSA==","shasum":"7bb93d835b2aa5e11e2ceb95c4bcd9cb4630d409","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.1.0-alpha.1.tgz","fileCount":33,"unpackedSize":83146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaCPOCRA9TVsSAnZWagAAbrIP/0xXgT/dLZxkgrOFUMEe\negBaqAtA2zPRS6pMk3GxY7ODUfmvpFyAPHK0T5vsLb66RyYeHNZS0+KHwYaI\nmh0OfnnZhDo+ITi4en1X48Fr2lMcsZ48CvLS4TJpauQtEq0dJs0N3GyEadI7\n4TYwqkEJuRkPyG1OlD5OaHQXgFZof54bTA1HPR3kDX5lTLyg+gdTusfVOdN9\nl6CwDnbbLgiiMZTMTwBjILbOOddn7CDCpY0UW6rCks5qgeL7mVw3c+VYd9vh\nLc45RKEV079y/o334Pxf5KTwSzStEfsRlUaHOR/WWkstkY1YhfM0dWufIeqI\nzxdIEuxOGSrdHAqlwx1y8FortOdZU0EpZ7vryCHvzyOrX48teJcTcBlr4r+w\nxy+xibEcxrqspgM+0eZlkuyGrS9b0+LqzXwCHlivV+b0HuI3a2wwBOHJVCR2\nvzEkUkIHULvx0GqtIEMNmLGntFZ3RCRnas6qExOxPhFwjtfuCQMLNO7xZKv2\nh6H2qNPNmyj5dQMofLopLhq0nWnepI6r8mUGpenE3PnbdrjkSRCjUByafRDv\n37C3aOX92wPG3ZZYLgDxE+N4KNjRSvss10GAHRfkrM/Qvf3Bo4+e7Wrr6T73\n/cCC7yiEeCtPSHlDkUF1fJVFqH4BTxXN8B+cA5vkI7kg35ggVqfWCxVTnFav\nsTvB\r\n=q6gQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXyAMXJnsiNGyxz1VsTy9I+o5tewwpNuQrI7k+4dtH2QIhAM3CGyoDbgt8WogBDp1WEcUHg43qeeu+WYaYfjnL03Hc"}]},"maintainers":[{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"bileschi","email":"bileschi@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"davidsoergel","email":"soergel@google.com"},{"name":"dsmilkov","email":"dsmilkov@gmail.com"},{"name":"ericdnielsen","email":"ericdnielsen@gmail.com"},{"name":"kangyizhang","email":"kangyizhang@google.com"},{"name":"nkreeger","email":"nick.kreeger@gmail.com"},{"name":"nsthorat","email":"nsthorat@google.com"},{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"tafsiri","email":"yassogba@gmail.com"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.1.0-alpha.1_1567105997975_0.8136670755415434"},"_hasShrinkwrap":false},"0.1.0-alpha.2":{"name":"@tensorflow/tfjs-react-native","version":"0.1.0-alpha.2","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"tsc","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","test":"karma start","test-ci":"./scripts/test-ci.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":"^1.2.8","@types/base64-js":"^1.2.5","@types/jasmine":"~2.5.53","@types/react-native":"^0.60.2","clang-format":"~1.2.2","expo-gl":"^5.0.1","jasmine":"~3.1.0","jasmine-core":"~3.1.0","karma":"~4.2.0","karma-browserstack-launcher":"~1.4.0","karma-chrome-launcher":"~2.2.0","karma-jasmine":"~1.1.0","karma-typescript":"~4.1.1","karma-verbose-reporter":"^0.0.6","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.2.8","expo-gl":"^5.0.1","react-native":">= 0.58.0 < 0.60.0"},"readme":"# Platform Adapter for React Native\n\nThis package provides a TensorFlow.js platform adapter for react native. It\nprovides GPU accelerated execution of TensorFlow.js supporting all major modes\nof tfjs usage, include:\n  - Support for both model inference and training\n  - GPU support with WebGL via expo-gl.\n  - Support for loading models pretrained models (tfjs-models) from the web.\n  - IOHandlers to support loading models from asyncStorage and models\n    that are compiled into the app bundle.\n\n## Status\nThis package is currently an **alpha release**. We welcome react native developers\nto try it and give us feedback.\n\n## Setting up a React Native app with tfjs-react-native\n\nThese instructions **assume that you are generally familiar with [react native](https://facebook.github.io/react-native/) developement**. This library has only been tested with React Native 0.58.X & 0.59.X. React Native 0.60 is not supported.\n\n### Step 1. Create your react native app.\n\nYou can use the [React Native CLI](https://facebook.github.io/react-native/docs/getting-started) or [Expo](https://expo.io/). This library relies on a couple of dependencies from the Expo project so it may be convenient to use expo but is not mandatory.\n\nOn macOS (to develop iOS applications) You will also need to use Cocoapods to install these dependencies.\n\n### Step 2: Install expo related libraries\n\nDepending on which workflow you used to set up your app you will need to install different dependencies.\n\n- React Native CLI App\n  - Install and configure [react-native-unimodules](https://github.com/unimodules/react-native-unimodules)\n  - Install and configure [expo-gl-cpp](https://github.com/expo/expo/tree/master/packages/expo-gl-cpp) and [expo-gl](https://github.com/expo/expo/tree/master/packages/expo-gl)\n- Expo Bare App\n  - Install and configure [expo-gl-cpp](https://github.com/expo/expo/tree/master/packages/expo-gl-cpp) and [expo-gl](https://github.com/expo/expo/tree/master/packages/expo-gl)\n- Expo Managed App\n  - Install and configure [expo-gl](https://github.com/expo/expo/tree/master/packages/expo-gl)\n\n> If you are in a _managed_ expo application these libraries should be present and you should be able to skip this step.\n\n> After this point, if you are using XCode to build for ios, you should use a ‘.workspace’ file instead of the ‘.xcodeproj’\n\n### Step 3: Configure [Metro](https://facebook.github.io/metro/en/)\n\nEdit your `metro.config.js` to look like the following. Changes are noted in\nthe comments below.\n\n```js\n// Change 1 (import the blacklist utility)\nconst blacklist = require('metro-config/src/defaults/blacklist');\n\nmodule.exports = {\n  transformer: {\n    getTransformOptions: async () => ({\n      transform: {\n        experimentalImportSupport: false,\n        inlineRequires: false,\n      },\n    }),\n  },\n  resolver: {\n    // Change 2 (add 'bin' to assetExts)\n    assetExts: ['bin', 'txt', 'jpg'],\n    sourceExts: ['js', 'json', 'ts', 'tsx', 'jsx'],\n    // Change 3 (add platform_node to blacklist)\n    blacklistRE: blacklist([/platform_node/])\n  },\n};\n```\n\n### Step 4: Install TensorFlow.js and tfjs-react-native\n\n- Install @tensorflow/tfjs - `npm install @tensorflow/tfjs`\n- Install @tensorflow/tfjs-react-native - `npm install @tensorflow/tfjs-react-native@alpha`\n\n### Step 4.5: (Optional) Install and configure async-storage\n\n- If you want use `asyncStorageIO` (see below) to save and load models, add [async-storage](https://github.com/react-native-community/async-storage) to your project.\n\n### Step 5: Test that it is working\n\nBefore using tfjs in a react native app, you need to call `tf.ready()` and wait for it to complete.\nThis is an **async function** so you might want to do this in a `componentDidMount` or before\nthe app is rendered.\n\nThe example below uses a flag in the App state to indicate that TensorFlow is ready.\n\n\n```js\nimport * as tf from '@tensorflow/tfjs';\nimport '@tensorflow/tfjs-react-native';\n\nexport class App extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      isTfReady: false,\n    };\n  }\n\n  async componentDidMount() {\n    // Wait for tf to be ready.\n    await tf.ready();\n    // Signal to the app that tensorflow.js can now be used.\n    this.setState({\n      isTfReady: true,\n    });\n  }\n\n\n  render() {\n    //\n  }\n}\n\n```\n\nAfter gathering feedback in the alpha release we will add an example to the [tensorflow/tfjs-examples](https://github.com/tensorflow/tfjs-examples) repository.\n\nFor now you can take a look at [`integration_rn59/App.tsx`](integration_rn59/App.tsx) for an example of what using tfjs-react-native looks like.\nThe [Webcam demo folder](integration_rn70/components/webcam) has an example of a style transfer app.\n\n![style transfer app initial screen](images/rn-styletransfer_1.jpg)\n![style transfer app initial screen](images/rn-styletransfer_2.jpg)\n![style transfer app initial screen](images/rn-styletransfer_3.jpg)\n![style transfer app initial screen](images/rn-styletransfer_4.jpg)\n\n\n## API Docs\n\n`tfjs-react-native` exports a number of utility functions\n\n### asyncStorageIO(modelKey: string)\n\n```js\nasync function asyncStorageExample() {\n  // Define a model\n  const model = tf.sequential();\n  model.add(tf.layers.dense({units: 5, inputShape: [1]}));\n  model.add(tf.layers.dense({units: 1}));\n  model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});\n\n  // Save the model to async storage\n  await model.save(asyncStorageIO('custom-model-test'));\n  // Load the model from async storage\n  await tf.loadLayersModel(asyncStorageIO('custom-model-test'));\n}\n```\n\nThe `asyncStorageIO` function returns an io handler that can be used to save an load models\nto and from AsyncStorage.\n\n### bundleResourceIO(modelArchitecture: Object, modelWeights: number)\n\n```js\nconst modelJson = require('../path/to/model.json');\nconst modelWeights = require('../path/to/model_weights.bin');\nasync function bundleResourceIOExample() {\n  const model =\n      await tf.loadLayersModel(bundleResourceIO(modelJson, modelWeights));\n\n  const res = model.predict(tf.randomNormal([1, 28, 28, 1])) as tf.Tensor;\n}\n```\n\nThe `bundleResourceIO` function returns an IOHandler that is able to **load** models\nthat have been bundled with the app (apk or ipa) at compile time. It takes two\nparameters.\n\n1. modelArchitecture: This is a JavaScript object (and notably not a string). This is\n   because metro will automatically resolve `require`'s for JSON file and return parsed\n   JavaScript objects.\n\n2. modelWeights: This is the numeric id returned by the metro bundler for the binary weights file\n   via `require`. The IOHandler will be able to load the actual data from the bundle package.\n\n`bundleResourceIO` only supports non sharded models at the moment. It also cannot save models. Though you\ncan use the asyncStorageIO handler to save to AsyncStorage.\n\n\n### fetch(path: string, init?: RequestInit, options?: tf.io.RequestDetails)\n\ntfjs react native exports a custom fetch function that is able to correctly load binary files into\n`arrayBuffer`'s. The first two parameters are the same as regular [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). The 3rd paramater is an optional custom `options` object, it currently has one option\n\n- options.isBinary: A boolean indicating if this is request for a binary file.\n\nThis is needed because the response from `fetch` as currently implemented in React Native does not support the `arrayBuffer()` call.\n","readmeFilename":"README.md","_id":"@tensorflow/tfjs-react-native@0.1.0-alpha.2","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-VRatwALllGbJuo/8dov9LmGcmwcNItQwc8YEnQDLnEw4x5rpCSfcigvKmm0J4EcdFHgzh65j0ODzbO00QK9Z1g==","shasum":"83e4efd6b8ff4e454df6cb3ccc56330b7547b5be","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.1.0-alpha.2.tgz","fileCount":37,"unpackedSize":269646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaTRyCRA9TVsSAnZWagAABVkQAKDvFKx/ggZFcji5Je9N\n4UjmroxMHKbQsc/tC68mq7I3S1x6kySj6aNsFOu2OS0hAyL/8/CUVO7QFYs8\n/SM4A01sapJCrlfXK2FZXACtCDmII4jP26O+UYcWvjflzsbvZtLFS4auFU19\n/eTaGeCmxHgt5LNmCOdMec+nIWdPXYioWlZwqT4bc5e/Bd8UwC+grETw9KX8\nmMlWVxk+iNgYq84andRjjWSHwq3U3aXyFa/bTwGP7p+CKhBGpKb7cVHNKZ8V\n0Fm428KFz0moaFFYhGIAw/AndT+iCpV7P1RyvxcHSiekbxHRNOwETr8QhEgx\neSuTu7DCr4A7lq5lwK5akyhK1tX+9Ey3mAFoEFL/z3V46PWpOo/+RXWW3RuP\nhgvFnuD5rmlf8i2s69BwGA2DIvMFo+SPXt3i/HQrR71AY9Zp4ofh4MXEou56\nmC4f0TJuMxYu5yKx0QqgaGh1Py86s5L+Mb1hxa5W6MrH+05QDSmtP+pT0hj7\nDj3KKwtkLPA6h9jQkPf/8Z3b7iYcWF2fWZs3fCfz3yT1OA0pZf05G+mhkJ2g\nLLTR5+ZQLOh5+3rHP6dl12qD9yQbYjqu5qfzEKHjiQwjxkHSfAToYU1ECzTi\ngTPRPvlXPTHvItamyd5hKO+gKgiECDOhH0g96bXpJNHSQpshGPp3g8YG+40y\n9e0T\r\n=Ntp/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwSOm0AN6N4JNGjbj4Md7MPAIKBccLICiHsp0sAVcLHwIhALKFs03vnNM6BueBIDEQ4/CvgRhmcbn603usJcq3xGN7"}]},"maintainers":[{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"bileschi","email":"bileschi@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"davidsoergel","email":"soergel@google.com"},{"name":"dsmilkov","email":"dsmilkov@gmail.com"},{"name":"ericdnielsen","email":"ericdnielsen@gmail.com"},{"name":"kangyizhang","email":"kangyizhang@google.com"},{"name":"nkreeger","email":"nick.kreeger@gmail.com"},{"name":"nsthorat","email":"nsthorat@google.com"},{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"tafsiri","email":"yassogba@gmail.com"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.1.0-alpha.2_1567175793851_0.8254430727670126"},"_hasShrinkwrap":false},"0.1.0-alpha.3":{"name":"@tensorflow/tfjs-react-native","version":"0.1.0-alpha.3","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"tsc","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","test":"karma start","test-ci":"./scripts/test-ci.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","@types/base64-js":"^1.2.5","@types/jasmine":"~2.5.53","@types/react-native":"^0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-gl":"^5.0.1","expo-asset":"^7.0.0","jasmine":"~3.1.0","jasmine-core":"~3.1.0","karma":"~4.2.0","karma-browserstack-launcher":"~1.4.0","karma-chrome-launcher":"~2.2.0","karma-jasmine":"~1.1.0","karma-typescript":"~4.1.1","karma-verbose-reporter":"^0.0.6","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.3.6"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","expo-gl":"^5.0.1","expo-asset":"^7.0.0","react-native":">= 0.58.0","react-native-fs":"^2.16.1"},"_id":"@tensorflow/tfjs-react-native@0.1.0-alpha.3","_nodeVersion":"12.10.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-kWpwnBinfutoMYW8tTtXVbNy2Iw8lpQDwirS9HC8tuI6566Z/xHUbX4H8NdSzZYrTBq8iZ/O0pFL4U07uGO24w==","shasum":"307176a58ff66f2080fbab4f43e60e5a480fc15b","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.1.0-alpha.3.tgz","fileCount":51,"unpackedSize":303783,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzAvFCRA9TVsSAnZWagAAdHgQAKSDkRbcTRWJfsnnx116\ni8qHcZykGa6ResqmafMO+O3n+6py52JkXneM6mcRRYlBdvD7ABr+/6HgI2Mv\nv95saqSv4APAAafswFOzkSzjuTqiX5pFCcchTpSSACi6uUCmj3ttdFNg19M4\nDeOIYNz1DCNIoqVVjECKYX+tsx4RUN3QeTe4kiNVoYBLm2jwGR1y1LiIvtCG\nxVxRHqS0ORlNFYiqmw39IlKTIdmsF35b2P2TFa5kcQKsgZCg2IJQTpXrSIRx\nRiopl1+Z+cyslobNCqmw1ONBO94wD7Ib67LFqEM9rZG2XoPcMfLvVEwN956i\n0oKBS6LHCwzG+cN4QrEoGGo5XCDfJ7FclnMIWMNwZr2fFTbSPFg88PWWWw+9\nfEcOPdi02qENq4hQEWRWKB1mJPgKfLSdTROEqhx7S6M9p+7frXmg1XpZ3mvO\n7+pcPFmeMUuVF/DLi+EbJALIqhOB//BFaD1bKZssc1qF2phM6VHx3Z0EMMdc\ngMPe3RARRFPgMLk6HUSwoIqg8aVMyKAOZvayrf2HTQMXnt7ycweKXGbmmj9s\nfSCe1pyrOh8B4J5C9Kp23e73Fcp8D0aExxTmET5M2scmHGhWx2MqxnwoF8e8\ndTGFdvC650UrumhUNdMNzc2YABmbw4aOSmYNMKWVVgjBuaotNnJK9vkbUKUW\nWfH1\r\n=vfMX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHgmmqQf2fWz6p9euTjVZN5R7XF2b+WwNo7z8vov9le8AiEAo832uAGLFbC0qFxHJsmytDBvhUbmZkvg8feABsvy5q4="}]},"maintainers":[{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"bileschi","email":"bileschi@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"davidsoergel","email":"soergel@google.com"},{"name":"dsmilkov","email":"dsmilkov@gmail.com"},{"name":"ericdnielsen","email":"ericdnielsen@gmail.com"},{"name":"kangyizhang","email":"kangyizhang@google.com"},{"name":"nkreeger","email":"nick.kreeger@gmail.com"},{"name":"nsthorat","email":"nsthorat@google.com"},{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"tafsiri","email":"yassogba@gmail.com"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.1.0-alpha.3_1573653444954_0.23064174500755175"},"_hasShrinkwrap":false},"0.2.0":{"name":"@tensorflow/tfjs-react-native","version":"0.2.0","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^1.1.2","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.3.6"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.16.1"},"_id":"@tensorflow/tfjs-react-native@0.2.0","_nodeVersion":"12.10.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-BYfzWrzoUHijMTTE2PUX7tyfEt/2SyrBPZ+0fpHw8TyRDe99XhExiVtEdMKg0kvPWdcQvgsn8Ow2zjIeY67mrA==","shasum":"ad769d69aec4a4b158931cba730fc58460ce9656","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.2.0.tgz","fileCount":86,"unpackedSize":474457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKbtpCRA9TVsSAnZWagAAFIIP/0qNrbmaXX+7lGntI4oO\neK3Pc96O9WfFHigtl1KNqaGAeNRtE8Uy6uRaiv/PGpTrIKmfnPzoBkATvOzN\n9eej36z9WE/d6o5R0boTO3iqXrMygCot1LwIgKSF/6SbWbTZEvPsL7kagLf3\nmsLF1uHlbZHRcBV5fpi5N+tZgMki6UTJ1zK/38r1yCm1+Be2zxxby7CaXlf/\n11XYyvUJQCzp5luxLykacicmMOcdV2jD3nEcgPDsFvAvxvrBTIYgn//fcpBP\npRLC43R/1hV0siRmcMTiCZ0Rd/iAyL4qbaJGYcEmM+ghYgqOSmMGO81YbJ58\npO041a3tJAi0UviuZs4ldz3Q7eoFfR/OoBvGGQEyD2X5sNAvbrl2wsd6Nn7e\nOdHjbWF92yLQy3Fq8tPO+U5zn27ZpnQBY1edYt59XkBMv4MBtVmnCKjA0mAI\neJm6OAy0CSM+Dg73R1fwbWz9IAD5SIrpRNFgxzzkXajTDw5QgomILxd97kkC\nlwVGctbQGz6wDyNnIOU1TvvVKt7jMxyY91FyGvkSYC3yAZiZFOVTMUx9v7BF\neVKlreSYK8a3ZljBwcOt/aWZvczwXEWUNWhMwBtBCDgBu0h0Cx2CVQF1p0kD\nc7K1KPT/GxNr4Mv3SRGYDt1DHwt/t2lBkYJ22l/Jmb45xFvmm0es/xFtd+5q\nf5GB\r\n=STot\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbRjZo/Zux7se2YHIYBCV4Jy3MPRfBa03BukUPbBPocAIhAJ33salcJK9YHp+APMQwAp8Hqq99RSYMomDJlYVi0ldF"}]},"maintainers":[{"email":"annyuan@gmail.com","name":"annxingyuan"},{"email":"bileschi@gmail.com","name":"bileschi"},{"email":"cais@google.com","name":"caisq"},{"email":"soergel@google.com","name":"davidsoergel"},{"email":"dsmilkov@gmail.com","name":"dsmilkov"},{"email":"ericdnielsen@gmail.com","name":"ericdnielsen"},{"email":"kangyizhang@google.com","name":"kangyizhang"},{"email":"linazhao128@gmail.com","name":"linazhao128"},{"email":"nick.kreeger@gmail.com","name":"nkreeger"},{"email":"nsthorat@google.com","name":"nsthorat"},{"email":"ping.yu.11@gmail.com","name":"pyu10055"},{"email":"yassogba@gmail.com","name":"tafsiri"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.2.0_1579793256675_0.6693388916583654"},"_hasShrinkwrap":false},"0.2.1":{"name":"@tensorflow/tfjs-react-native","version":"0.2.1","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^1.1.2","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.3.6"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.16.1"},"_id":"@tensorflow/tfjs-react-native@0.2.1","_nodeVersion":"12.10.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-eI6AiNHR7FQBtuW2ssXPayc1lHf2b1BrukhkXMnpqVKf/P/yMQWdJMbgPMbbYUMXnr+17Hl9fIWngXcoe9wjSQ==","shasum":"2e3be2afdb11eb39a5594d9bc76893abd05283f2","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.2.1.tgz","fileCount":101,"unpackedSize":545582,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKcfTCRA9TVsSAnZWagAAlugP/AzgLr52S+bclsIgVZpU\nGELaAbeCTpreK5z6TbjtMpmzeXlghQWwpKmhIYnSCeUY8mUaLvM1Xmd0nbip\nLnEigrYr2vB/0AQkqn/GpEPNh/4c3QLX9izrk+eDDch7qBPoEQ6umI08bk/p\nhxakXwJq0g3pFvddRqScjruS36uXELaxbKoM23vH/nEmCNwWF1TnEOpwZHLW\nKdNlesAPcomncpWdEtHGX78rwMe2jMbhTdF2BETkpQPzcIAdhSfyuH2HNxQQ\nd9RtSPF1D7vAjWJ5/plWPbJ8oNOe7Xm8xfg4MKFX14x1PRAe+1OiZ5sJ/3wy\n2VPwfLVMo95JXPnFyxGY4JdNTRx1v/Y9sZsDqka+QQhmmVOv39g6TrtLA/cL\nURE6DbLAHFGBo17j7l1hkkTED8rPEsZ0NY1dqkY6fU7n7B9DYrmj7HYIw9Ph\nvfiRK2ipTDNKHEbwVnaHc0ULbQOip5lyiIm2rmZH3HYIwnJ70J3Ytg6ngqHV\ntiDSYFx2AOgSehIZ5ZYQVMkyuLDZ36T0AYhlO/mMmt23pWMalCfKp4WL8dtc\nVHtCjLbZ1mM9XZhC7cz55fmnfQEAmtRv6KbGTn6PrXhdaiFnnZZpxYKW0Eq+\nUTVXHPhurXMsR/uz04wg98lZV9ZAhJ1y5883iccQkjpW+DvRftn/DZr+ur0+\nj0h+\r\n=0XJj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICUKetSSWheI6Th/Mi19lNnahsm+I+DCb+jSO+J6LHQMAiBU33/KHo7RG18JmzTmgmxnYF3l7VU9ChjjNxH7UQgfzQ=="}]},"maintainers":[{"email":"annyuan@gmail.com","name":"annxingyuan"},{"email":"bileschi@gmail.com","name":"bileschi"},{"email":"cais@google.com","name":"caisq"},{"email":"soergel@google.com","name":"davidsoergel"},{"email":"dsmilkov@gmail.com","name":"dsmilkov"},{"email":"ericdnielsen@gmail.com","name":"ericdnielsen"},{"email":"kangyizhang@google.com","name":"kangyizhang"},{"email":"linazhao128@gmail.com","name":"linazhao128"},{"email":"nick.kreeger@gmail.com","name":"nkreeger"},{"email":"nsthorat@google.com","name":"nsthorat"},{"email":"ping.yu.11@gmail.com","name":"pyu10055"},{"email":"yassogba@gmail.com","name":"tafsiri"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.2.1_1579796434813_0.8441180681915426"},"_hasShrinkwrap":false},"0.2.2":{"name":"@tensorflow/tfjs-react-native","version":"0.2.2","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^1.1.2","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.3.6"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.14.1"},"_id":"@tensorflow/tfjs-react-native@0.2.2","_nodeVersion":"12.10.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-NbyMkizIhFxO6D3fUyWUZs//xFVrrFJ5lxMTIyBrbUzeJEp04L0QykdCctZydJ1cVEI9oF5mtMCRK4HpH+Yv/g==","shasum":"f25662fb818cc0bed3a80bdc3a29110c24ee4ff3","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.2.2.tgz","fileCount":83,"unpackedSize":520106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQzJBCRA9TVsSAnZWagAA3S8P/Rq+oagbsaRgcw+gcUnK\nukxDaKaGFh2yX97tNl4PuNR7NhECGv+gjKdXxBl8H6cZAF5giCy6AyoQSPac\nIQXowr6+qWrZvzs50Z3TkKoOeHKIRdKszdWYT1hQ3mPHJDKGg3LK4bnocWvA\nqHTseeQBJo8y0p0YGcQAl94DubLB4SlXMLFL0IGdyJxAnHf7Av0TLwUrqwzQ\njx+oxBbxqLBcjsq2TTPVTXtFR82kp/KIsrpIjnWwA+XeZ6B0+7Ix+8Hk4kHZ\nEoBA1EX+aKQu4//yQTI+nfsZdxuskzcRjmPvJ3GnzIReGevgkrVCY/1CSG0D\n4fULyy0ibjIC4FRVTRaUvgccfGjCh9jlyE+WqrNFk5sUOIFXCBcEr7wqXfnu\nbT5PidThs+TZp4RmaZgcSU7MNtO/1hoqEnDoqWAommAiTPfDvo1bINiN/R/u\nuOCZuoVqM7jFK/ocCMoVRbITvcwi+Ahw5bi5OSNdzo6sxeHXZIMC/HxCzoXi\ndFkEu0lClalyZY9lnntaFMC0lAVhrGE9tzOwDRme7q0GXxu34kTLtoIgAP2r\nn4HJh/UL2lACteEqFjDeMXgWjXv6EmQtvoKOIZY9F3oAcIyW8r9TQUAnc5MA\nwcj/VthAIydqpo5+MCZREcZXdsvjODFWw9gGY+lHFbdVRTX+fwv2SvpPbt9+\nsMee\r\n=9JTV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF4kbCRfjD/laUuAWMri1WSmtYqDiTElDVuNWPrIlmHJAiEA81LssX+BUemTQ1dl39dzRoAFK4xuU+5o1h8bSanqzas="}]},"maintainers":[{"email":"annyuan@gmail.com","name":"annxingyuan"},{"email":"bileschi@gmail.com","name":"bileschi"},{"email":"cais@google.com","name":"caisq"},{"email":"soergel@google.com","name":"davidsoergel"},{"email":"dsmilkov@gmail.com","name":"dsmilkov"},{"email":"ericdnielsen@gmail.com","name":"ericdnielsen"},{"email":"kangyizhang@google.com","name":"kangyizhang"},{"email":"linazhao128@gmail.com","name":"linazhao128"},{"email":"nick.kreeger@gmail.com","name":"nkreeger"},{"email":"nsthorat@google.com","name":"nsthorat"},{"email":"ping.yu.11@gmail.com","name":"pyu10055"},{"email":"yassogba@gmail.com","name":"tafsiri"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.2.2_1581462081152_0.36273130203840065"},"_hasShrinkwrap":false},"0.2.3":{"name":"@tensorflow/tfjs-react-native","version":"0.2.3","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^1.1.2","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.3.6"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-core":">=1.3.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.14.1"},"_id":"@tensorflow/tfjs-react-native@0.2.3","_nodeVersion":"12.10.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-Dt51xqVQ28/NVEwPY5WXnML9LPNES04/WYqZLhItJh4ivZSlLL3m1kby3tH03nrw1CUS9J2O4zGMEKsplfNLqA==","shasum":"16f8f9467f84d1721acb43f8eb65e20cd7a4d7e8","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.2.3.tgz","fileCount":83,"unpackedSize":520530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRDpqCRA9TVsSAnZWagAAsDAP/3YC1iD2hDDiexjG3eb0\n2R5oMSajtAgCY7I8UwYcSJp++3BnQ0m1m9vAGqzsmY+nmRUp3T76JAMuzvHd\nF7FsNLMBgYzNcstha7MVXdAKiBstgejscHD/oB0RU4Mr3Blwg1vQleJ0aQyW\n8JUqCoSXURxIjcfM6iX3uYdQIZxu2WLKkBygURrDcIhUn3ds0m6MrinK3x+m\n+pZgN6xD9A+u9xoFwZ1KqIQ3+RxUnPIlbAT4zsfuA9izAxuV0z89iztKDmBI\nUDrn2b4FrfoXaI3JmgZGHiQrBLU82Uf0yJ2p4XoK4jMYWrSm9Hu/HZbo0q3Q\n+jZZhnS+uAeuhXCifwpR5dOB8UcXJhO3iJmlmTgiVzc3TdGwtwl4UBMJYSTE\nOprgudou2eRWXZkd7BnuQorpoWCInn1HdM985gPlnUt/MOZuzACZTWdqO7c8\nAuCB2+wDYTlvYubXYBx00L/L5nTMb1qjq7wd8w5Z/LHrYhJh28HILiDEpVag\njPV8H25B+o15SUB71zoR51MwRaxKxYqS5em2t5o7UnHsEAZ/5eL3jahn5SmJ\neQ/Zy1jQ8Qur59aebnUqbs9Y6N/sH5GhFga5vvzbQCjXlTS6RMD2GElRzjo8\nmNbV69sasbfa8ZSfPkfHwSmTLdGXjZSgn4hLwS2eaAovs832UtlQEwMn65Dd\nA0wy\r\n=Jy8H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHGpzo5xn68v2L+wBmkPrj3qgXxKFuyTIrDEs0f2F7TQAiBg/IOkl7XlWbtCUtZVVQtqwIZkVSpsyak1XcpsujNBUQ=="}]},"maintainers":[{"email":"annyuan@gmail.com","name":"annxingyuan"},{"email":"bileschi@gmail.com","name":"bileschi"},{"email":"cais@google.com","name":"caisq"},{"email":"soergel@google.com","name":"davidsoergel"},{"email":"dsmilkov@gmail.com","name":"dsmilkov"},{"email":"ericdnielsen@gmail.com","name":"ericdnielsen"},{"email":"kangyizhang@google.com","name":"kangyizhang"},{"email":"linazhao128@gmail.com","name":"linazhao128"},{"email":"nick.kreeger@gmail.com","name":"nkreeger"},{"email":"nsthorat@google.com","name":"nsthorat"},{"email":"ping.yu.11@gmail.com","name":"pyu10055"},{"email":"yassogba@gmail.com","name":"tafsiri"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.2.3_1581529705980_0.5603543465141965"},"_hasShrinkwrap":false},"0.3.0":{"name":"@tensorflow/tfjs-react-native","version":"0.3.0","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-ci":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","build-deps":"yarn build-core && yarn build-backend-cpu && yarn build-backend-webgl","build-deps-ci":"yarn build-core-ci && yarn build-backend-cpu-ci && yarn build-backend-webgl-ci","build-core":"cd ../tfjs-core && yarn install && yarn build","build-core-ci":"cd ../tfjs-core && yarn && yarn build-ci","build-backend-cpu":"cd ../tfjs-backend-cpu && yarn && yarn build","build-backend-cpu-ci":"cd ../tfjs-backend-cpu && yarn && yarn build-ci","build-backend-webgl":"cd ../tfjs-backend-webgl && yarn && yarn build","build-backend-webgl-ci":"cd ../tfjs-backend-webgl && yarn && yarn build-ci","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-backend-cpu":"2.0.0","@tensorflow/tfjs-backend-webgl":"2.0.0","@tensorflow/tfjs-core":"2.0.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^1.1.2","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.3.6"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-backend-webgl":"2.0.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.14.1"},"_id":"@tensorflow/tfjs-react-native@0.3.0","_nodeVersion":"12.10.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-4Nb/KBRDs8CCAWIUp+FxNzMJJPL6fi1+oG7rY+357TaHx+4OKwZcKOZacmyPOvTS5Bn679QMmv+jANjbLiBkLA==","shasum":"aa8c4c05314b3c73e78d76a14c7868b61569524f","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.3.0.tgz","fileCount":84,"unpackedSize":517809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1Rd1CRA9TVsSAnZWagAAl58P/300HxAhAygJJETDlJlo\ngIfwxA/CWfTVbHFynBz3seY21nuUPdkcREvpTbCjexkPcr1gTud8/l+Ehn99\nkD3TXw5bkv3HvOsZuQp1oW7KubLPgmJ29g8uc7oN2l1MsT88gbG69IETVPLu\naKBnAOy9ffzd68w1PZxxCkF+9d61vGSvbwti6FuwbbxDGQzaGvHbohQ0iDOB\nF+nYHvCJyMwP5dvEpiQApoIATbrW3ig+HbbnMvUs2Mx43K4xk0zZJxf64S4Z\npQzRU1dXa7411ON8ggHyJCsuRYac88qjWz6/t75t09dRB762oCnllw1byabl\nr/aC7U9CoakprmkzA4fCPQWN0QR9IVVK8ZVAZoWNcErnuy6fJgI5f1KGZ1IK\noOA7ZUkY7p2Aqf6AnDXBo+ISAgDVo74CTlgKJHzLqSJd3J3ByKP0Kd2NUNyj\nfVWQAd2z4IC4RDMTOqkvLZfIBRidl1vn3YlI3GHSxcevs3NahmDfw2MYel5P\nNIu6HQDungjJ/nRV9DQ5xpQ1L3ASf8lDe8/pbiMqhy4O2ErQypgtbqwEknWb\n7z4rx8xg+4kmFnXNcEclhAB2PnrjbenzjztrTk7D3ylWRzR6Aop+rxtWWLxe\nkOT/mLyhquz2PrT2cGAorSw4mjlZo24AmfGo+F2oR/rlo3jXUeYl44syQ6BF\nvgsp\r\n=dsGC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICBVj+/6WoozzhDjD+F8l9HLxczrwh6gnmRZLmR0+2eyAiEAra+YXFCKQeJBtgO8ZSZuyirvHW5YRjzyus2GChnQ6MA="}]},"maintainers":[{"email":"annyuan@gmail.com","name":"annxingyuan"},{"email":"bileschi@gmail.com","name":"bileschi"},{"email":"cais@google.com","name":"caisq"},{"email":"soergel@google.com","name":"davidsoergel"},{"email":"dsmilkov@gmail.com","name":"dsmilkov"},{"email":"ericdnielsen@gmail.com","name":"ericdnielsen"},{"email":"kangyizhang@google.com","name":"kangyizhang"},{"email":"linazhao128@gmail.com","name":"linazhao128"},{"email":"nick.kreeger@gmail.com","name":"nkreeger"},{"email":"nsthorat@google.com","name":"nsthorat"},{"email":"ping.yu.11@gmail.com","name":"pyu10055"},{"email":"yassogba@gmail.com","name":"tafsiri"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.3.0_1591023476920_0.09844088618491731"},"_hasShrinkwrap":false},"0.4.0":{"name":"@tensorflow/tfjs-react-native","version":"0.4.0","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-ci":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","build-deps":"yarn build-core && yarn build-backend-cpu && yarn build-backend-webgl","build-deps-ci":"yarn build-core-ci && yarn build-backend-cpu-ci && yarn build-backend-webgl-ci","build-core":"cd ../tfjs-core && yarn install && yarn build","build-core-ci":"cd ../tfjs-core && yarn && yarn build-ci","build-backend-cpu":"cd ../tfjs-backend-cpu && yarn && yarn build","build-backend-cpu-ci":"cd ../tfjs-backend-cpu && yarn && yarn build-ci","build-backend-webgl":"cd ../tfjs-backend-webgl && yarn && yarn build","build-backend-webgl-ci":"cd ../tfjs-backend-webgl && yarn && yarn build-ci","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-backend-cpu":"~2.6.0","@tensorflow/tfjs-backend-webgl":"~2.6.0","@tensorflow/tfjs-core":"~2.6.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^1.1.2","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.3.6"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-backend-webgl":"~2.6.0","@tensorflow/tfjs-backend-cpu":"~2.6.0","@tensorflow/tfjs-core":"~2.6.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.14.1"},"_id":"@tensorflow/tfjs-react-native@0.4.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Bfo7wAGOJXQxm7Lz4ss53089kwXivBicWXqfhCpPKY5Z17GAE8CeChRA+pkzrhAMk8GrJTYte1Cn9Gi739FDaw==","shasum":"75b32428104fad0d078d1db5c3fd479c828ffd96","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.4.0.tgz","fileCount":84,"unpackedSize":516578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgIGzCRA9TVsSAnZWagAAo3cP/i86R6exAI0A4Cqon9/j\nfZ/2KLgf0EpPxGKSZXyCacueEt3ua3jYySAwO7U91DZ+An4JjsoAqCTyitsS\nh8s0lQRidKNQCCG+Y1g5uUC4gJkITxT7V5qHo1eZI21A29ph/WQBybW06LfJ\nJ6pWL5OfQxTHHelyQCOkVXHsEwvz83DYAMVpyLhFv2cNaKWfcwh3E6IyiS4i\nXUsW/zIAXsJ99kesbfx8FRaAHg2dz/J8gtWgLLqqBCe/2O/CTvw7ukdaA51o\nIta9vZWvSkk4Mhs/+pI7nmGH4d2sNDe72JB1XyuwgtB9BYxY6C4UeBI7WesX\nG9AL774Rl7XtyoK9EIUbeiuS9sr7JYfjQCsyPnAheVysw2ECudCzmnGAcKXi\nGwn44jK8gUAdGp493lt3nn87fqk9kMwdmqQkMGShxtFVMM3ZLFfMH22wzTOm\nWpZrEc0tQ+Fa80BqVjN69oVEigPqNj1wz8+jF+caGLHY82csV84uqPF8JMzB\nlFLZTKnQwnf69eBq/8po7PAu42vYSHsN9CoUndgyvNtNd2KKDCGdq3JuMfHT\n3BkjeUudw8nLX2xHbG64ydP/t6OiNjxfsrk2uIkh/WlyKIvPcpNxstYP+VSK\nPTT5M8ERDQRpCWuLnf2hVZxrdWiDgkHwygoRgHRgGt3UNN2fZRhdFombDZ/B\n76jC\r\n=BvE8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDu8SZGrnvxH68kKu2L7rrSUCo+8aYVLSSotwV2+dK/lgIgQfWBQ3ZnC6I2HvXnTfpvGZHkml3fu4YKqwwK+gHNEsw="}]},"maintainers":[{"name":"linazhao128","email":"linazhao128@gmail.com"},{"name":"kangyizhang","email":"kangyizhang@google.com"},{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"nkreeger","email":"nick.kreeger@gmail.com"},{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"dsmilkov","email":"dsmilkov@gmail.com"},{"name":"nsthorat","email":"nsthorat@google.com"},{"name":"davidsoergel","email":"soergel@google.com"},{"name":"tafsiri","email":"yassogba@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"ericdnielsen","email":"ericdnielsen@gmail.com"},{"name":"bileschi","email":"bileschi@gmail.com"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.4.0_1602257331158_0.20528011784000277"},"_hasShrinkwrap":false},"0.5.0":{"name":"@tensorflow/tfjs-react-native","version":"0.5.0","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-ci":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","build-deps":"yarn build-core && yarn build-backend-cpu && yarn build-backend-webgl","build-deps-ci":"yarn build-core-ci && yarn build-backend-cpu-ci && yarn build-backend-webgl-ci","build-core":"cd ../tfjs-core && yarn install && yarn build","build-core-ci":"cd ../tfjs-core && yarn && yarn build-ci","build-backend-cpu":"cd ../tfjs-backend-cpu && yarn && yarn build","build-backend-cpu-ci":"cd ../tfjs-backend-cpu && yarn && yarn build-ci","build-backend-webgl":"cd ../tfjs-backend-webgl && yarn && yarn build","build-backend-webgl-ci":"cd ../tfjs-backend-webgl && yarn && yarn build-ci","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-backend-cpu":"~2.7.0","@tensorflow/tfjs-backend-webgl":"~2.7.0","@tensorflow/tfjs-core":"~2.7.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^1.1.2","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~5.11.0","tslint-no-circular-imports":"^0.5.0","typescript":"3.5.3","yalc":"^1.0.0-pre.32"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.3.6"},"peerDependencies":{"@react-native-community/async-storage":"^1.4.2","@tensorflow/tfjs-backend-webgl":"~2.7.0","@tensorflow/tfjs-backend-cpu":"~2.7.0","@tensorflow/tfjs-core":"~2.7.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.14.1"},"_id":"@tensorflow/tfjs-react-native@0.5.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-m2DXnozWY1Ng60dyg8olEvBAIrXab3X1BBJudSD7jLOePiu8qJqmy+UQxMfInt+xHxXwF834ZYdMmbEFqXMgzw==","shasum":"fd9c770b6f18578fa7d4debe22f5ddc32c10d061","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.5.0.tgz","fileCount":84,"unpackedSize":527977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmJVzCRA9TVsSAnZWagAASKYP/RgmXqslg2YAIitzASIR\nWQpAyKse/Zuz3D8rf65oDNJIazzwdtCpFZy14cZYy9z/JN3AsYIc08awaDFt\nvEa5zgjdyVDW1K+IQj4l3vri2ncIoNPDo4etmsMOrsT5seWEwV/yhwb9/IxY\ngetdh96r159ahHSnGiQZfvTG81qKDl0lVjXEOVqCAb2dAazc6Y7QQbaPj0QC\nBncAxFB8+81x4NQ7xl5poMiGSShBB+emz1EBXnyUYNZPwA26kHEe/UAs9G9c\nsEXaK46zaJ8jThcVTKjzp4iV4rhGZqknBDSj4zd43xQxTIlx6czJRc8p3eq3\nGd0uGWkUIpYN+voJij9nCGR4YpOgpeOPbvEg6uX8CdFcgNWdGaakm+NshShb\n2MxXnHD+j5OI4I8/wk2pYaWeEate81u+Ol1pgDXJNEuHby4X4M+0czyepGMt\noBKqX8HChW6I0t+rrz+pLmFxWZ0EV3gSOe6b5Sfyv3aT68lxaigEWDe31spu\nIU1ZWpI7RXDFNPDrfzuSwAruDvCI0TOp6ElDnjNqfzpzuVf5fhO6PSC9nd6T\nZSxbh9nvPel9EzypOT8IpqS+hatI2Y3nT0/jRvu4Q1BJGqYkEt3UNVV8Rhjs\ne+LnaxrzPHWIgP7OaCaFOvJ6E9e8NHq+M4K8m62UnaK77LORY6/Jh5YrNCLo\nDM4Y\r\n=Ex+2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrAmzOC3drrT+l6ZboLV9ed+burVysammX9Vj7sqf9SAIhAJSHhhCEKSyKd+bmrWdHElV+B7B5cChQlAyr/2Iaw8lQ"}]},"maintainers":[{"name":"linazhao128","email":"linazhao128@gmail.com"},{"name":"kangyizhang","email":"kangyizhang@google.com"},{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"nkreeger","email":"nick.kreeger@gmail.com"},{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"dsmilkov","email":"dsmilkov@gmail.com"},{"name":"nsthorat","email":"nsthorat@google.com"},{"name":"davidsoergel","email":"soergel@google.com"},{"name":"tafsiri","email":"yassogba@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"ericdnielsen","email":"ericdnielsen@gmail.com"},{"name":"bileschi","email":"bileschi@gmail.com"}],"_npmUser":{"name":"tafsiri","email":"yassogba@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.5.0_1603835250769_0.0202301761722834"},"_hasShrinkwrap":false},"0.6.0":{"name":"@tensorflow/tfjs-react-native","version":"0.6.0","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-ci":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","build-deps":"yarn build-core && yarn build-backend-cpu && yarn build-backend-webgl","build-deps-ci":"yarn build-core-ci && yarn build-backend-cpu-ci && yarn build-backend-webgl-ci","build-core":"cd ../tfjs-core && yarn install && yarn build","build-core-ci":"cd ../tfjs-core && yarn && yarn build-ci","build-backend-cpu":"cd ../tfjs-backend-cpu && yarn && yarn build","build-backend-cpu-ci":"cd ../tfjs-backend-cpu && yarn && yarn build-ci","build-backend-webgl":"cd ../tfjs-backend-webgl && yarn && yarn build","build-backend-webgl-ci":"cd ../tfjs-backend-webgl && yarn && yarn build-ci","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-async-storage/async-storage":"^1.13.0","@tensorflow/tfjs-backend-cpu":"~3.7.0","@tensorflow/tfjs-backend-webgl":"~3.7.0","@tensorflow/tfjs-core":"3.7.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^3.1.0","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~6.1.3","tslint-no-circular-imports":"^0.7.0","typescript":"3.5.3","yalc":"^1.0.0-pre.50"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.4.3"},"peerDependencies":{"@react-native-async-storage/async-storage":"^1.13.0","@tensorflow/tfjs-backend-cpu":"~3.7.0","@tensorflow/tfjs-backend-webgl":"~3.7.0","@tensorflow/tfjs-core":"~3.7.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.14.1"},"_id":"@tensorflow/tfjs-react-native@0.6.0","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-kwYIaCZazFdUz2ynYYLSdhViur7GDYNU4QunHk6qowRO8TBBEZ2tJrnYPu8mkwX0YRbFKEiC9JtO17uVsX5HTQ==","shasum":"b91e85bda7fc36d1ef47dff8a443865b8122dec5","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.6.0.tgz","fileCount":85,"unpackedSize":1140793,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg059JCRA9TVsSAnZWagAACB4P/RS3EUAwE/mjn5oamePh\nr1bZEofpzMtZsQMT61lZ1R1gopKel+aGpXynk2ykSK24AAvXD3zDMwn4pc6Q\nczmKbr2ssbhjd6yxIwlbaWAuVFBmYBjK7JfSwBSyo1zyROx8W81iThbeYZX1\nxbDTsIq8DNuhFB6VsfHhp+WEkHkDSsp5RxZy0wcZM8QTowXNohkZtA2PnV09\ndOOOYOI0/7X7hjDgA+lPmfFvQBIZB+JVUyN2RoSXVza9p2hOvtmgperAbo1m\nY6dPIcvwfHzRcCjSBw5azOmX6kbzs3XK7mvRkL3LHro56bwP+NpbMxZNEoBV\nZl47b3Hqmv0njj6D3rT7f1t9NUUAc2JrTyvgZ9sPSkFlUsZzcUnAKHegGSXt\nV5VYerRlylkjUlNexseLfdJRi3X4mvkd2DZRU4kXdGrhJ85D8fCttjDzSC8X\nmbqYHk0lEv8EszjOzvVQX9d21qieqzgV5PezZ8ZmQdeHtHVKsndESPW4+JUm\n8FmR5mIvlGGXYeFpRA1GMROMub4upgqdwn3lrBiIGErL7zUWaU1NC6uAFPCg\nV3YmZWejvhOJYaAbAwRQ4sdUNoxwwQChAWNuZUmHbjj7LvF5YWvbxjOp8x5e\nk5+G81rjy/lE2K6BHdlYUb1ZQCzS1LGDIevXzsFC2TNqwz6ZxhEDqlymLrxM\nY7Wy\r\n=mNgz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfk6jIMJylbypewL7PI4dolvzOOeaXrYWOLqb1LxeVNwIhAJw4bKldGsMYHN8E46SH4FXxH/zZvpGlcjXe1yo/YHug"}]},"_npmUser":{"name":"mattsoulanille","email":"matthew@soulanille.net"},"directories":{},"maintainers":[{"name":"ahmedsabie","email":"ahmed13579@gmail.com"},{"name":"jinjingforever","email":"jinjingforever@gmail.com"},{"name":"mattsoulanille","email":"matthew@soulanille.net"},{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"dsmilkov","email":"dsmilkov@gmail.com"},{"name":"nsthorat","email":"nsthorat@google.com"},{"name":"tafsiri","email":"yassogba@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"kangyizhang","email":"kangyizhang@google.com"},{"name":"linazhao128","email":"linazhao128@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.6.0_1624481608584_0.199556358241475"},"_hasShrinkwrap":false},"0.7.0":{"name":"@tensorflow/tfjs-react-native","version":"0.7.0","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-ci":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","build-deps":"yarn build-core && yarn build-backend-cpu && yarn build-backend-webgl","build-deps-ci":"yarn build-core-ci && yarn build-backend-cpu-ci && yarn build-backend-webgl-ci","build-core":"cd ../tfjs-core && yarn install && yarn build","build-core-ci":"cd ../tfjs-core && yarn && yarn build-ci","build-backend-cpu":"cd ../tfjs-backend-cpu && yarn && yarn build","build-backend-cpu-ci":"cd ../tfjs-backend-cpu && yarn && yarn build-ci","build-backend-webgl":"cd ../tfjs-backend-webgl && yarn && yarn build","build-backend-webgl-ci":"cd ../tfjs-backend-webgl && yarn && yarn build-ci","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-async-storage/async-storage":"^1.13.0","@tensorflow/tfjs-backend-cpu":"~3.7.0","@tensorflow/tfjs-backend-webgl":"~3.7.0","@tensorflow/tfjs-core":"3.7.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^3.1.0","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~6.1.3","tslint-no-circular-imports":"^0.7.0","typescript":"3.5.3","yalc":"^1.0.0-pre.50"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.4.3"},"peerDependencies":{"@react-native-async-storage/async-storage":"^1.13.0","@tensorflow/tfjs-backend-cpu":"~3.7.0","@tensorflow/tfjs-backend-webgl":"~3.7.0","@tensorflow/tfjs-core":"~3.7.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.14.1"},"_id":"@tensorflow/tfjs-react-native@0.7.0","_nodeVersion":"14.16.0","_npmVersion":"7.6.2","dist":{"integrity":"sha512-2uA4d0BYh44JXqJ1n9wTuGGZ1OP3y9om6aQRFWt2MWrAoNceO2iwBIXdwfqzHiY3T/mBfH/sCp39FDa0L8LWEw==","shasum":"7e82c34db1a0055f798c94aa7019906cb3ac4916","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.7.0.tgz","fileCount":85,"unpackedSize":1182647,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDX7ZcQoDPvhqB7Vi4bHK7EjBV9z7Cqudr/Zn0YluKZOwIgI97OthJjK0ZNWLn5inzenwcF0K8V5VvyVRSEydfmuKI="}]},"_npmUser":{"name":"jinjingforever","email":"jinjingforever@gmail.com"},"directories":{},"maintainers":[{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"dsmilkov","email":"dsmilkov@gmail.com"},{"name":"nsthorat","email":"nsthorat@google.com"},{"name":"tafsiri","email":"yassogba@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"kangyizhang","email":"kangyizhang@google.com"},{"name":"linazhao128","email":"linazhao128@gmail.com"},{"name":"mattsoulanille","email":"matthew@soulanille.net"},{"name":"jinjingforever","email":"jinjingforever@gmail.com"},{"name":"ahmedsabie","email":"ahmed13579@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.7.0_1631915455233_0.06191959382133527"},"_hasShrinkwrap":false},"0.8.0":{"name":"@tensorflow/tfjs-react-native","version":"0.8.0","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-ci":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","build-deps":"yarn build-core && yarn build-backend-cpu && yarn build-backend-webgl","build-deps-ci":"yarn build-core-ci && yarn build-backend-cpu-ci && yarn build-backend-webgl-ci","build-core":"cd ../tfjs-core && yarn install && yarn build","build-core-ci":"cd ../tfjs-core && yarn && yarn build-ci","build-backend-cpu":"cd ../tfjs-backend-cpu && yarn && yarn build","build-backend-cpu-ci":"cd ../tfjs-backend-cpu && yarn && yarn build-ci","build-backend-webgl":"cd ../tfjs-backend-webgl && yarn && yarn build","build-backend-webgl-ci":"cd ../tfjs-backend-webgl && yarn && yarn build-ci","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-async-storage/async-storage":"^1.13.0","@tensorflow/tfjs-backend-cpu":"~3.11.0","@tensorflow/tfjs-backend-webgl":"~3.11.0","@tensorflow/tfjs-core":"3.7.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.2.2","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^3.1.0","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~6.1.3","tslint-no-circular-imports":"^0.7.0","typescript":"3.5.3","yalc":"^1.0.0-pre.50"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.4.3"},"peerDependencies":{"@react-native-async-storage/async-storage":"^1.13.0","@tensorflow/tfjs-backend-cpu":"~3.11.0","@tensorflow/tfjs-backend-webgl":"~3.11.0","@tensorflow/tfjs-core":"~3.11.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","react":"^16.12.0","react-native":">= 0.58.0","react-native-fs":"^2.14.1"},"_id":"@tensorflow/tfjs-react-native@0.8.0","_nodeVersion":"14.15.0","_npmVersion":"7.20.6","dist":{"integrity":"sha512-iZKCTvX0cxMJWs+ma32x9+CijANW7IH9EaTK2L3FXvR8Qqe/ueW8SUMOh0L3QusPIWE+ggtrGIfsv4OWo1xf/g==","shasum":"1b4b8c0cd50266534c5ff990823960ca190fa042","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-0.8.0.tgz","fileCount":89,"unpackedSize":1159645,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcOnu/2litJ8WEsUUJH+1QRzVqygcAIld7v1h9uV8IsgIhAO2q8BRoqc4CXIc2ie09nX99MupwWJQ3mzuQXnPFbmJE"}]},"_npmUser":{"name":"jinjingforever","email":"jinjingforever@gmail.com"},"directories":{},"maintainers":[{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"dsmilkov","email":"dsmilkov@gmail.com"},{"name":"nsthorat","email":"nsthorat@google.com"},{"name":"tafsiri","email":"yassogba@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"kangyizhang","email":"kangyizhang@google.com"},{"name":"linazhao128","email":"linazhao128@gmail.com"},{"name":"mattsoulanille","email":"matthew@soulanille.net"},{"name":"jinjingforever","email":"jinjingforever@gmail.com"},{"name":"ahmedsabie","email":"ahmed13579@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_0.8.0_1635975936242_0.1303661041697335"},"_hasShrinkwrap":false},"1.0.0":{"name":"@tensorflow/tfjs-react-native","version":"1.0.0","description":"TensorFlow.js platform implementation for React Native","main":"dist/index.js","repository":{"type":"git","url":"git+https://github.com/tensorflow/tfjs.git","directory":"tfjs-react-native"},"types":"dist/index.d.ts","license":"Apache-2.0","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"scripts":{"publish-local":"rimraf dist/ && yarn build && rollup -c && yalc push","build":"./scripts/enumerate-tests.js && tsc","build-ci":"./scripts/enumerate-tests.js && tsc","build-npm":"yarn build","build-deps":"yarn build-core && yarn build-backend-cpu && yarn build-backend-webgl","build-deps-ci":"yarn build-core-ci && yarn build-backend-cpu-ci && yarn build-backend-webgl-ci","build-core":"cd ../tfjs-core && yarn install && yarn build","build-core-ci":"cd ../tfjs-core && yarn && yarn build-ci","build-backend-cpu":"cd ../tfjs-backend-cpu && yarn && yarn build","build-backend-cpu-ci":"cd ../tfjs-backend-cpu && yarn && yarn build-ci","build-backend-webgl":"cd ../tfjs-backend-webgl && yarn && yarn build","build-backend-webgl-ci":"cd ../tfjs-backend-webgl && yarn && yarn build-ci","link-local":"yalc link","unlink-local":"yalc remove","lint":"tslint -p . -t verbose","update-apk":"./scripts/update-apk.sh"},"devDependencies":{"@react-native-async-storage/async-storage":"^1.13.0","@tensorflow/tfjs-backend-cpu":"~4.3.0","@tensorflow/tfjs-backend-webgl":"~4.3.0","@tensorflow/tfjs-core":"4.3.0","@types/base64-js":"^1.2.5","@types/jasmine":"~3.3.0","@types/react-native":"0.60.2","@types/react-native-fs":"^2.13.0","clang-format":"~1.8.0","expo-asset":"^7.0.0","expo-camera":"^7.0.0","expo-gl":"^7.0.0","gts":"^3.1.0","react":"^16.12.0","rimraf":"~2.6.2","rollup":"^0.58.2","rollup-plugin-commonjs":"9.1.3","rollup-plugin-node-resolve":"3.3.0","rollup-plugin-typescript2":"0.13.0","rollup-plugin-uglify":"~3.0.0","tslint":"~6.1.3","tslint-no-circular-imports":"^0.7.0","typescript":"4.4.2","yalc":"^1.0.0-pre.50"},"dependencies":{"base64-js":"^1.3.0","buffer":"^5.2.1","jpeg-js":"^0.4.3"},"peerDependencies":{"@react-native-async-storage/async-storage":"^1.13.0","@tensorflow/tfjs-backend-cpu":"^4.13.0","@tensorflow/tfjs-backend-webgl":"^4.13.0","@tensorflow/tfjs-core":"^4.13.0","expo-camera":"^13.4.4","expo-gl":"^13.0.1","react":"*","react-native":">= 0.72.0","react-native-fs":"^2.20.0"},"resolutions":{"minimist":"1.2.6"},"_id":"@tensorflow/tfjs-react-native@1.0.0","gitHead":"6fe8a02b297557c1c5ed399f664a704845ba4852","bugs":{"url":"https://github.com/tensorflow/tfjs/issues"},"homepage":"https://github.com/tensorflow/tfjs#readme","_nodeVersion":"20.6.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-YzzJeb6ZDtCNBRvwKKQwASfcd0zIP8DWkQJyOlQPzJS/XIMMK1Qxf6LVLDpNoOC4FGdFd4QoGD6AvmU9gSUrHg==","shasum":"ff43be88ab3c15fc3c7a0c53718bafa15c1f058b","tarball":"https://registry.npmjs.org/@tensorflow/tfjs-react-native/-/tfjs-react-native-1.0.0.tgz","fileCount":89,"unpackedSize":779150,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBZns5+PzkJ4he42iySPKQPllYe2G70XwRAsIxs06vKAIgTxw5npSdDtVpv4z+1It8CeQSfdqVy8xP5WyHXtCDd4E="}]},"_npmUser":{"name":"mattsoulanille","email":"matthew@soulanille.net"},"directories":{},"maintainers":[{"name":"delhibabu","email":"delhibabu@google.com"},{"name":"laxma4675","email":"laxmareddyp@google.com"},{"name":"fengwuyao","email":"yaofengwu123@gmail.com"},{"name":"linchan","email":"linchan@google.com"},{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"linazhao128","email":"linazhao128@gmail.com"},{"name":"mattsoulanille","email":"matthew@soulanille.net"},{"name":"jinjingforever","email":"jinjingforever@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tfjs-react-native_1.0.0_1701379928442_0.9292578628808246"},"_hasShrinkwrap":false}},"time":{"created":"2019-08-29T18:33:07.020Z","0.1.0-alpha.0":"2019-08-29T18:33:07.260Z","modified":"2023-11-30T21:32:09.012Z","0.1.0-alpha.1":"2019-08-29T19:13:18.081Z","0.1.0-alpha.2":"2019-08-30T14:36:34.025Z","0.1.0-alpha.3":"2019-11-13T13:57:25.071Z","0.2.0":"2020-01-23T15:27:36.937Z","0.2.1":"2020-01-23T16:20:35.001Z","0.2.2":"2020-02-11T23:01:21.331Z","0.2.3":"2020-02-12T17:48:26.202Z","0.3.0":"2020-06-01T14:57:57.092Z","0.4.0":"2020-10-09T15:28:51.298Z","0.5.0":"2020-10-27T21:47:31.029Z","0.6.0":"2021-06-23T20:53:28.819Z","0.7.0":"2021-09-17T21:50:55.459Z","0.8.0":"2021-11-03T21:45:36.406Z","1.0.0":"2023-11-30T21:32:08.688Z"},"maintainers":[{"name":"delhibabu","email":"delhibabu@google.com"},{"name":"laxma4675","email":"laxmareddyp@google.com"},{"name":"fengwuyao","email":"yaofengwu123@gmail.com"},{"name":"linchan","email":"linchan@google.com"},{"name":"pyu10055","email":"ping.yu.11@gmail.com"},{"name":"caisq","email":"cais@google.com"},{"name":"annxingyuan","email":"annyuan@gmail.com"},{"name":"linazhao128","email":"linazhao128@gmail.com"},{"name":"mattsoulanille","email":"matthew@soulanille.net"},{"name":"jinjingforever","email":"jinjingforever@gmail.com"}],"description":"TensorFlow.js platform implementation for React Native","license":"Apache-2.0","readme":"# Platform Adapter for React Native\n\nThis package provides a TensorFlow.js platform adapter for react native. It\nprovides GPU accelerated execution of TensorFlow.js supporting all major modes\nof tfjs usage, include:\n  - Support for both model inference and training\n  - GPU support with WebGL via expo-gl.\n  - Support for loading models pretrained models (tfjs-models) from the web.\n  - IOHandlers to support loading models from asyncStorage and models\n    that are compiled into the app bundle.\n\n## Setting up a React Native app with tfjs-react-native\n\nThese instructions (and this library) **assume that you are generally familiar with [react native](https://facebook.github.io/react-native/) development**.\n\n## Expo compatibility\n\nThis library relies on [expo-gl](https://github.com/expo/expo/tree/master/packages/expo-gl) and [expo-gl-cpp](https://github.com/expo/expo/tree/master/packages/expo-gl-cpp). Thus you must use a version of React Native that is supported by Expo.\n\nSome parts of tfjs-react-native are not compatible with _managed expo apps_. You must use the bare workflow (or just plain react native) if you want to use the following functionality:\n - Loading local models using [bundleResourceIO](https://js.tensorflow.org/api_react_native/latest/#bundleResourceIO). You can instead load models from a webserver.\n\n### Step 1. Create your react native app.\n\nYou can use the [React Native CLI](https://facebook.github.io/react-native/docs/getting-started) or [Expo](https://expo.io/).\n\nOn macOS (to develop iOS applications) You will also need to use CocoaPods to install these dependencies.\n\n### Step 2: Install dependencies\n\nNote that if you are using in a managed expo app the install instructions may be different.\n\n  - Install and configure [react-native-unimodules](https://github.com/unimodules/react-native-unimodules) (can be skipped if in an expo app)\n  - Install and configure [expo-gl](https://github.com/expo/expo/tree/master/packages/expo-gl)\n  - Install and configure [expo-camera](https://www.npmjs.com/package/expo-camera)\n  - Install and configure [async-storage](https://github.com/react-native-community/async-storage)\n  - Install and configure [react-native-fs](https://www.npmjs.com/package/react-native-fs)\n  - **Install @tensorflow/tfjs** - `npm install @tensorflow/tfjs`\n  - **Install @tensorflow/tfjs-react-native** - `npm install @tensorflow/tfjs-react-native`\n\nIf you encounter dependency conflict error in npm install, you can either:\n- Follow the instructions to use `--force` or `--legacy-peer-deps`\n- Or use yarn to install\n\n> After this point, if you are using Xcode to build for ios, you should use a ‘.workspace’ file instead of the ‘.xcodeproj’\n\n### Step 3: Configure [Metro](https://facebook.github.io/metro/)\n\nThis step is only needed if you want to use the [bundleResourceIO](https://js.tensorflow.org/api_react_native/latest/#bundleResourceIO) loader.\n\nEdit your `metro.config.js` to look like the following. Changes are noted in\nthe comments below.\n\n```js\nconst { getDefaultConfig } = require('metro-config');\nmodule.exports = (async () => {\n  const defaultConfig = await getDefaultConfig();\n  const { assetExts } = defaultConfig.resolver;\n  return {\n    resolver: {\n      // Add bin to assetExts\n      assetExts: [...assetExts, 'bin'],\n    }\n  };\n})();\n```\n\n### Step 4: Test that it is working\n\nBefore using tfjs in a react native app, you need to call `tf.ready()` and wait for it to complete. This is an **async function** so you might want to do this in a `componentDidMount` or before the app is rendered.\n\nThe example below uses a flag in the App state to indicate that TensorFlow is ready.\n\n\n```js\nimport * as tf from '@tensorflow/tfjs';\nimport '@tensorflow/tfjs-react-native';\n\nexport class App extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      isTfReady: false,\n    };\n  }\n\n  async componentDidMount() {\n    // Wait for tf to be ready.\n    await tf.ready();\n    // Signal to the app that tensorflow.js can now be used.\n    this.setState({\n      isTfReady: true,\n    });\n  }\n\n\n  render() {\n    //\n  }\n}\n```\n\nIf you use expo and encounter a build failure when running `npm run web` due to\n`You may need an appropriate loader to handle this file type...` error, follow\nthe steps below to make expo correctly transpile tfjs packages:\n\n- Run: `expo customize:web`\n  - Use the space key to select the `webpack.config.js` entry, then press \"enter\".\n  - This will create a bare-minimum `webpack.config.js` file.\n- Edit the `webpack.config.js` file as follows:\n\n```\nconst createExpoWebpackConfigAsync = require('@expo/webpack-config');\n\nmodule.exports = async function(env, argv) {\n  const config = await createExpoWebpackConfigAsync(\n      {\n        ...env,\n        babel: {\n          dangerouslyAddModulePathsToTranspile: [\n            // Ensure that all packages starting with @tensorflow are\n            // transpiled.\n            '@tensorflow',\n          ],\n        },\n      },\n      argv);\n  return config;\n};\n```\n\nYou can take a look at [`integration_rn59/App.tsx`](integration_rn59/App.tsx) for an example of what using tfjs-react-native looks like. In future we will add an example to the [tensorflow/tfjs-examples](https://github.com/tensorflow/tfjs-examples) repository.\nThe [Webcam demo folder](integration_rn59/components/webcam) has an example of a style transfer app.\n\n![style transfer app initial screen](images/rn-styletransfer_1.jpg)\n![style transfer app initial screen](images/rn-styletransfer_2.jpg)\n![style transfer app initial screen](images/rn-styletransfer_3.jpg)\n![style transfer app initial screen](images/rn-styletransfer_4.jpg)\n\n\n## API Docs\n\n[API docs are available here](https://js.tensorflow.org/api_react_native/latest/)\n\n## Compatibility with TFJS models\n\nMany [tfjs-models](https://github.com/tensorflow/tfjs-models) use web APIs for rendering or input, these are not generally compatible with React Native, to use them you generally need to **feed a tensor** into the model and do any rendering of the model output with react native components. If there is no API for passing a tensor into a [tfjs-model](https://github.com/tensorflow/tfjs-models), feel free to file a GitHub issue.\n\n## Debugging and reporting errors\n\nWhen reporting bugs with tfjs-react-native please include the following information:\n\n  - Is the app created using expo? If so is it a managed or bare app?\n  - Which version of react native and the dependencies in the install instructions above are you using?\n  - What device(s) are you running on? Note that not all simulators support webgl and thus may not work with tfjs-react-native.\n  - What error messages are you seeing? Are there any relevant messages [in the device logs](https://reactnative.dev/docs/debugging#accessing-console-logs)?\n  - How could this bug be reproduced? Is there an example repo we can use to replicate the issue?\n","readmeFilename":"README.md","keywords":["tensorflow","tensorflowjs","machine learning","deep learning","neural networks","react native"],"homepage":"https://github.com/tensorflow/tfjs#readme","repository":{"type":"git","url":"git+https://github.com/tensorflow/tfjs.git","directory":"tfjs-react-native"},"bugs":{"url":"https://github.com/tensorflow/tfjs/issues"}}