{"_id":"expo-react-native-adapter","_rev":"65-b5db1242ee44d6c8f8e1333d89f646b3","name":"expo-react-native-adapter","dist-tags":{"next":"2.1.0-alpha.1","latest":"3.0.1"},"versions":{"0.0.1":{"name":"expo-react-native-adapter","version":"0.0.1","author":"","license":"ISC","_id":"expo-react-native-adapter@0.0.1","maintainers":[{"name":"jesseruder","email":"jesse@sixfivezero.net"}],"dist":{"shasum":"34f00ac0344e33f5c55b723a0d61b744ee64e633","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-0.0.1.tgz","fileCount":1,"integrity":"sha512-q+Sa4D3uGU50C9zwbUbCurG4UN8WVVbYU26niQ4dPePRpC56yCgVz4yxiJLx5MkK/FUOo2etvwR9s8sD/KMbqA==","signatures":[{"sig":"MEQCIBpzfjWUJCZumB+HPvG8Z20vrh68FV+5Wp/Be0ERZ2eNAiAOP2O3KIBZVhXQp279awy4qGmRBidh8/T9/gas+I8FSA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":221,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbP+aOCRA9TVsSAnZWagAAW44P/RxqxFM+CHAqHjO+tft5\niOfSr7P8SQAeUE7ueE0ldH/nmoapnmqTzLHbuv/ja8fyFJE9fc9J5BD/evxV\n8UqzE3XeGq/FM+qruMIi49XAh9o7qo4+ROOec56ZZkWYabmfNkbVy5RvRKac\nR2TMETxXSQDcTPvrCGHEY/mxTFVGpY5qLOYGFrU9ONPpDJgk6jvj7zatUCZr\nW61VyjehtpzJ5P+5U/regfaRK84gclgeMG+Qs39oGAZnfV6e8L9/+lD4ryb9\ng3dte7VpuUoEngfiZ7JVC3jMMY/pAfGtZsTCogUmMKfRQPKzmwlpOJJCq+AX\n5JDv0ZTjyA9MsKw0PADIRSJPOuLQ64OikEqZwjAHrQe+szWRhEa1uzpql/6/\nZleH/n2Si70kBzLXSSEIPtGmKNP2ldzM345Yp7BIsHgTPXkD3dKXuFObvYot\nUXKjds4ko4jk/m06kOWkBr6QMWl239KB9XY6PwqEfZ/dB+NNHsXrAYuK/FS0\ns2bGF32FPTqqvLB8tJNrihLOxjiWMZnrTVTSJeJdeV6LTC4DP7p+oTgR8z62\n4yC5dp4JUrpMDePCMnc1+Z3jwfH8oUDqY1Lj5uOs9gPXVarbL6eTC2DqcXIV\ngfEg+UTUIpHH6QBLxohG2tQWMV8AfRHCwFy0F6Hxwfw9w//0YoDKI54w66u0\nNaaF\r\n=TrM/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jesseruder","email":"jesse@sixfivezero.net"},"_npmVersion":"6.1.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_0.0.1_1530914446244_0.9465436103285505","host":"s3://npm-registry-packages"}},"1.0.0-rc.0":{"name":"expo-react-native-adapter","version":"1.0.0-rc.0","keywords":["react-native","expo"],"author":{"name":"650 Industries, Inc."},"license":"BSD","_id":"expo-react-native-adapter@1.0.0-rc.0","maintainers":[{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesse@sixfivezero.net"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"2611799fd1113f5e2d0a740d18f1462c886ce596","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.0.0-rc.0.tgz","fileCount":36,"integrity":"sha512-sZG1zrXXdfwOm5X3IMCgqTuaVqp7PSfln6oeOzqrBoD0JrdcYlHhs77AmezpoaQnPlhUkGRwxhRNtevjzUmJqg==","signatures":[{"sig":"MEYCIQDAI199Z9ZxC8ufk7NUVdhbXAWmUpi5BA7kOO2e0W1UfAIhAIp+DSAO9vind8V6PtrmjsBr34YnO7LgTT3THKQloZ+u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":81501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbR9BlCRA9TVsSAnZWagAADvgP/2ZwTXZjnilwgVr1K65G\nrFu5M6IgKGM7qLawc3gQ9KYQgvq/5gIjMnQ/+gL+r+XiawO76W6LHkyqVrji\nAhq3XtnPMU/4F6/azk7x9XO8F2h+9vPbI84AtdzN7z6R83nvkOaTicPez3i9\nX6VAJ2TvsHz+pxm3mM9nKli7baeZW/fpOL0BxMSLpDrzSANym2K0xaQ4p+c7\naOdaJYU96Q9hJNarGpMc7VAN62+Q8Pc8CipEaAYrV/z4LD3YRAapzWWp82vn\nIYtW4Hw8y6FIW1ul+mcGtmIpR4U+LUhA2frbWbf2yVtcO8cHUDQTEeiceovl\nIzD3RYH2Tm6u/Td1hIleeGYbPJzDO0ICD/u3OPa2cQpA5+EkYfE0ebr+Neyr\nVE6fHWWLUI1D3AE81Kzs94pYvQ8U5m1D8Hn/8/ZO3K0Q6U5IDxSG2E0SZ/HJ\nwXD/z9WiIw/hqiOIoJl+PZmJPYSYlgJRwlaxhOeBxEXT9fxoR9lChb3yRrrO\nzwMpH4fC4NFEeWZXVozE7YBtQwPk7cwWekc0znNmzPnYEltpH7V8kQLEusyx\nokZQToGyNbhM5H5aE1JRudcvM+5o+MbDbKXzlfv0N4d5wlMhTBSzEXgsgmLk\nxHSqVidyrf3nVcf257757WZnzyDJ3ZHPVaVNzFA6kf7EKGKtrJoNxHC086/M\nqt7B\r\n=GOC6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"9.5.0","dependencies":{"react":"^16.3","expo-core":"^1.0.0-rc.0","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"^1.0.0-rc.0"},"_hasShrinkwrap":false,"devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.0.0-rc.0_1531433061442_0.3566633739210703","host":"s3://npm-registry-packages"}},"1.0.0-rc.1":{"name":"expo-react-native-adapter","version":"1.0.0-rc.1","keywords":["react-native","expo"],"author":{"name":"650 Industries, Inc."},"license":"BSD","_id":"expo-react-native-adapter@1.0.0-rc.1","maintainers":[{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesse@sixfivezero.net"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"9f09a09253df767e2408c35128a69737a002642a","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.0.0-rc.1.tgz","fileCount":39,"integrity":"sha512-h1FAYyKK/1sQbTe/0j6WmqGA2kBJ+rSbI7+JmsuyqhMnEH2d9lh1oiEv8ER0n0bCcpNqu5iqlte6kPUmILxhKw==","signatures":[{"sig":"MEQCIAoLieAPpyeKoyBpTMU/nhnZnU3NwCVqdUMliRjBrS9jAiBhJURMA28LWfVv8KP5Kn8nznMkb5WtMtYD4DInHlYAJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTkgGCRA9TVsSAnZWagAAhd8P/iHJ8hLxGxCl3yBvwzj/\nOfHrdIjsHCeuJK0HxHl7af0oXSHx01V5hEw9hbuQmrbCIDdpWFSCmecBcCqc\namUzxFQbRfUDskR+Kzhm1pqOT6WGpS05jbk/Hllq/VAnbudvQMI/XVBeKOir\n6OwvJKgukOO8QDWezGn87aM9KRYSuwSjnIfXXr/gEv6DVIHv6frVu5hiH3to\nt6LPiZUpDz4D0WdAeYdaEkFM8Or0wlPTwblGhfkYXQNVkWzlQUgL9fKG2LUL\nos+LAS2O6wRMx3lnPF7riEMFtb7X5LcDlCBtvvsYOQYR80rOycUPtVYaMB5B\nWsOEVp4alcsvP8dh0GVnS5lQUuCsUjiQxPhPFZthogF+Ows7y/Nt+UcrRyKO\n5FlbH5TNlDjnSPJgZSaJbJaGYn55P0I0cCPM+NOuEasxR0M7xiVyH09XHh93\nbKkbgQg5syRcGbxokeQ/ZO8DtBE+V/nFefcJj6Sjz6V3JyO2yGxV/d6mZawO\nIgoj2hTrEj19kw5f8F5t8tyzem0xSeN/KJXpnRzLcsDmBxzkl1Wt5NkY+NJG\nU3MEEABEWA/Uqd00Yq8iESd6zPcrgTQxfPQgH7rbdrF36H/0v9SXreFeR2QD\nFVM2jEuoa7wuGFqMP/22P2qGeJZW6wMg8NJMe9u6PhdSR8viVLxGl1Eur7/n\nE4Bw\r\n=5WHo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:expo-react-native-adapter-1.0.0-rc.1.tgz","readme":"# expo-react-native-adapter\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter'`\n\nand run `pod install`.\n\n### iOS (no Cocoapods)\n\n1.  In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`\n2.  Go to `node_modules` ➜ `expo-react-native-adapter` and add `EXReactNativeAdapter.xcodeproj`\n3.  In XCode, in the project navigator, select your project. Add `libEXReactNativeAdapter.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`\n4.  Run your project (`Cmd+R`).\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>` and `<EXReactNativeAdapter/EXNativeModulesProxy.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add two methods to the implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        EXModuleRegistry *moduleRegistry = [[EXModuleRegistry alloc] initWithExperienceId:nil];\n        EXNativeModulesProxy *proxy = [[EXNativeModulesProxy alloc] initWithModuleRegistry:moduleRegistry];\n        NSMutableArray<id<RCTBridgeModule>> *modules = [NSMutableArray arrayWithObject:proxy];\n        [modules addObjectsFromArray:[proxy getBridgeModules]];\n        return modules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it!\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.core.ModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ModuleRegistryProvider mModuleRegistryProvider = new ModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage(),\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"_resolved":"","_integrity":"","_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"9.5.0","dependencies":{"react":"^16.3","expo-core":"^null","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"^1.0.0-rc.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.0.0-rc.1_1531856902828_0.9152948026498651","host":"s3://npm-registry-packages"}},"1.0.0-rc.2":{"name":"expo-react-native-adapter","version":"1.0.0-rc.2","keywords":["react-native","expo"],"author":{"name":"650 Industries, Inc."},"license":"BSD","_id":"expo-react-native-adapter@1.0.0-rc.2","maintainers":[{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesse@sixfivezero.net"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"e4a2a7a669a5f1878a5d414e51f6a6939bc3b032","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.0.0-rc.2.tgz","fileCount":38,"integrity":"sha512-hggFOlJnE83ummazGpaTZ9X0ZvsdqFCBTGiYibtL5O9wtO397+dumeaSXjOC3re/5fipB4U2tykqhZN7b6X/cA==","signatures":[{"sig":"MEUCIQC9VGbzkAatuJzwz+c4edCXGdY7FjnkE24F7xNEWOMgwAIgDvYww+Yp172ytISv6Tds4fm2KNEQSBcaSeY5yqNfzn4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":85054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTk7PCRA9TVsSAnZWagAAWDAP/RdsbKVzdZGdRBYqY0NH\n0vR0SQfqq90/RAVi1da5kU8V5fWreptul8uusf49up/IkDh6ngeJzpjQtRwa\nVzO9vRuP81f2noYVVEByZaa3GdTl5xXzdHCkyqxs/H7KKJvAyMCyWw2MDUB1\nttL/hx0L30OSkywAdO0/7aXxHFD1/AQolUwsngjkzIrQDz0YWM6Wx5DCnAL+\nFfwBMLnOqt+H6nvLkyX0iAZ8z9PLefVxtluOVq/vvLRMFgY+FBMYFDYBprWl\nmhqgY10Qhghs5F0dE6cC4oQvlRWO0jqTpz6lcQuPDXVqucpLQ2Fpk1AqBN3o\nzmLldozjH89gJM/Gc1CAIw9urrTmXEQCasqfk9dQHPZ8boBm0t+EzBwZTCIM\nWEKMm5BCzIFUNIuoG5HHkIcFhNRuKxlE9pO5lUKaWu3Cr9f8J1QUropiJ59Z\nRun/a8VsQ5tFy2YhXENUmBAw9hKfcR8dfg+6F7PDgH8Tmvmqvh8R6oFPiRen\nJVxw4qI+MyDP19gT5RvNh5FzzeHC2ijPQb2SDbZNf67E8kH4HP6/hhxFztlc\nzPVIY4O5jj7asOeW4dBDpVz0P3uhB4X6lRJDa6667BXkl//aCMuCdrj9sGCl\nKzgzJfH/ec/k4PC4/kZEU6JpwOKUG2GUpKCff3ItZlrnpFDDzValyP2MueEY\npmsZ\r\n=s8Z/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:expo-react-native-adapter-1.0.0-rc.2.tgz","readme":"# expo-react-native-adapter\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter'`\n\nand run `pod install`.\n\n### iOS (no Cocoapods)\n\n1.  In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`\n2.  Go to `node_modules` ➜ `expo-react-native-adapter` and add `EXReactNativeAdapter.xcodeproj`\n3.  In XCode, in the project navigator, select your project. Add `libEXReactNativeAdapter.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`\n4.  Run your project (`Cmd+R`).\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>` and `<EXReactNativeAdapter/EXNativeModulesProxy.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add two methods to the implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        EXModuleRegistry *moduleRegistry = [[EXModuleRegistry alloc] initWithExperienceId:nil];\n        EXNativeModulesProxy *proxy = [[EXNativeModulesProxy alloc] initWithModuleRegistry:moduleRegistry];\n        NSMutableArray<id<RCTBridgeModule>> *modules = [NSMutableArray arrayWithObject:proxy];\n        [modules addObjectsFromArray:[proxy getBridgeModules]];\n        return modules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it!\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.core.ModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ModuleRegistryProvider mModuleRegistryProvider = new ModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage(),\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"_resolved":"","_integrity":"","_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"9.5.0","dependencies":{"react":"^16.3","expo-core":"^1.0.0-rc.2","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"^1.0.0-rc.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.0.0-rc.2_1531858639152_0.4275169619536503","host":"s3://npm-registry-packages"}},"1.0.0-rc.3":{"name":"expo-react-native-adapter","version":"1.0.0-rc.3","keywords":["react-native","expo"],"author":{"name":"650 Industries, Inc."},"license":"BSD","_id":"expo-react-native-adapter@1.0.0-rc.3","maintainers":[{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesse@sixfivezero.net"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"36e36ebe6f135d7784924ed7397d9bd0fe26e63c","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.0.0-rc.3.tgz","fileCount":38,"integrity":"sha512-b6W6piIqMldZLF2tR7+rq2SeCWaKh3q2Ex0ejmLzm8TqLK6Hwf50ovZ4bRFODbkotmwhahjSCdy4fYHEwLXzSA==","signatures":[{"sig":"MEUCIQCLerZpnrecv/z5w4BtSEUnD+OvR69yY1kr6dBrTmtXSQIgTVmIWV5F2TQ6Vzh3G76WdVLzM/Fu6OCoE6x9jg8Bkac=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113112,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbT4WSCRA9TVsSAnZWagAAwRoP/0wJy0wDHj5vZAgJGBTB\nnlK8T4d5+oWEkp0/J/MmqbBAF9xaOtZjzc+je1OsKpyfLWLcTNYVnZtWvox0\nNPpEPlPVtC4D5WUV5g/JX9OOlY44ICGTD29LaV8pk817/i0tcc4b+ticiL24\nYD+9ElP4Pu8a/Eid9ZvXBiNBJBiUNJTLfpVvl04PBHlsy11tl9QNFlUeqWbL\nOmEGMiJCsEmX3UuK3MhdFNoCmQY4Q10YaoYCQvkMrMt/ssPMkFUNbTEApHG/\n/vQXgsL6yp7GC4FmQ8Re/+Lj975h36ECgvmbCAS81TBG0+nh5hDeRItm6gib\nc/vysyOBwr1+FYxPIfHXd5U9EjBGu2cuKzJDQ+0jtYNPrgpbEjmAIAMReNyf\nHlodmnsfsd3t+qH1ngQuo4FZ0M9ev1+3+pcTHPj5/Lo1rtcljsyVLZYoI8At\nOuNIqzcEheBZPD0BngVRLeFT3CdyZmlaIx5hNavixvcwhjyhm/i0oSPskZtj\nC0gZkhywjYvnPFbDHoCoI2zhVzHh3ypRXnnc2n+rR1WEw36d3CLI9yNSwtrB\nni6IVn2v62RelQ96ZfroCOctAOdgdA8HzFsrFUNe3i0Yq13xeo2AcUHvhYLB\n9sBqZ6w6aqjrQxPFQCRtCq43WFlHEF9OSKot4AJel8epAdw8mfhR9Y2xKqr2\njZch\r\n=F4Ih\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:expo-react-native-adapter-1.0.0-rc.3.tgz","readme":"# expo-react-native-adapter\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter'`\n\nand run `pod install`.\n\n### iOS (no Cocoapods)\n\n1.  In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`\n2.  Go to `node_modules` ➜ `expo-react-native-adapter` and add `EXReactNativeAdapter.xcodeproj`\n3.  In XCode, in the project navigator, select your project. Add `libEXReactNativeAdapter.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`\n4.  Run your project (`Cmd+R`).\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>` and `<EXReactNativeAdapter/EXNativeModulesProxy.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add two methods to the implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        EXModuleRegistry *moduleRegistry = [[EXModuleRegistry alloc] initWithExperienceId:nil];\n        EXNativeModulesProxy *proxy = [[EXNativeModulesProxy alloc] initWithModuleRegistry:moduleRegistry];\n        NSMutableArray<id<RCTBridgeModule>> *modules = [NSMutableArray arrayWithObject:proxy];\n        [modules addObjectsFromArray:[proxy getBridgeModules]];\n        return modules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it!\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.core.ModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ModuleRegistryProvider mModuleRegistryProvider = new ModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage(),\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"_resolved":"","_integrity":"","_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"9.5.0","dependencies":{"react":"^16.3","expo-core":"^1.0.0-rc.2","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"^1.0.0-rc.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.0.0-rc.3_1531938194485_0.3304433131347613","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"expo-react-native-adapter","version":"1.0.0","keywords":["react-native","expo"],"author":{"name":"650 Industries, Inc."},"license":"BSD","_id":"expo-react-native-adapter@1.0.0","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"37ee9d036e9694478c2eca9d9ad925d916ad38b1","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.0.0.tgz","fileCount":38,"integrity":"sha512-bw/Ml6nEKdySPQz6VefQXJny1Vx0m2m5RDLsKM+TuHp6GybPgDOE0Wh58QL82uRv7i+/3HSW0itodA/kXms1cA==","signatures":[{"sig":"MEUCIE32sCdd5RKI8UX0Gkr+9kltO8x1SMMRwm3rHgqcmoZtAiEArcqN/GdqArjaI64WQYuJ6ddwZjqsIIrqlXEzu9gK/b4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWmhUCRA9TVsSAnZWagAASvEP/0dVtD5IbQ4MJvxnjhdI\n4bvaOST0X2ARXrMWAXY1Ll8Ii7kIu9OsH+C+EroWIAdJPROs9bxEMsFbmAzk\nNPCrEHDIhEP28epjvX4U8uAByFlhHcWRFtYGiFFk4FNR9yr7BUNx1sKgocnc\nHFqquxV3WI5vRTGkleq6/T/jQZcKCOFWOveq/fGskbfR2nAOWtSmJAJCh8pX\nEwD//icVN4DpjmK/6d3fWYQQ+BggsJYT0y+qentWVJIaSQmXt4ymqXz7NFfU\nqOcXrxsKMzr1XwdOwJGUbYr/1kfLXCHOnvxR/+pdV/zlwztZZjkuYPelwfyz\n4Erv49FAd3SBf9572cBAcDlpDpt3g8pScqcvWwvMveYqZGnPOEVsoDIeQw8n\nKlAzgDbB1KUO0pCMvLLHU6im83ijDR+BStym242HJ9CWNX3Z853YS92YGRHU\nKI2IQkDbiNFc+mBOEpnZjCLi5fxSn3McdHQBIjo6RM1f9dzmgOkptCXkcEau\nllMsZFXHHRnR1WB14t2q/G/BbKceWYeWll9zZmCWupcp78lvxxSFwIpaT7TC\nlRNDiX7YLD1eVydPR/gGMz1NS3V2vm5L1hInPHBueYc1pUQcCl+B78n5gLGt\ni1/eM2taAH/khyeDkMFZW1qy2QRyKuEiKq4zRgc1Emd7KjJEIFD+bm/57Z5Q\nWGnF\r\n=3+j+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:expo-react-native-adapter-1.0.0.tgz","_npmUser":{"name":"brentvatne","email":"brentvatne@gmail.com"},"_resolved":"","_integrity":"","_npmVersion":"6.2.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"9.2.0","dependencies":{"react":"^16.3","expo-core":"^1.0.0","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.0.0_1532651603874_0.6018060612803111","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"expo-react-native-adapter","version":"1.0.1","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"BSD","_id":"expo-react-native-adapter@1.0.1","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"13572c878109e7df5585a39bf8e0f197c3d0b4dd","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.0.1.tgz","fileCount":38,"integrity":"sha512-FBMhixYqyRfXYODSItijBoGB2WWQfeq6ZyGM2xPiAHqPSq+HSUWd33ywuufTN/dRaAqwik3guaUQMR1Oq8vCfw==","signatures":[{"sig":"MEUCIQDjSCXLtjVel7/PzHB/euE/vECHknhxEHXpLw/lPoskdgIgJ/g1cPdbgrZQNVg57hGgtWn6Mc1wkNyPgDoCl8JGWOg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113093,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcpCLCRA9TVsSAnZWagAAqKkP/11MxZy6+hmYVMjEOvK2\nJdqcxTmhpEOeq+Y3Z6hDeieIsSi5WnJqCXOu9rmSsYtM0MeLY6dqbU03Zomr\n8mQr+nGtrDKKOFvGrVlCcjnF5ORl8OGtDLAQTCVNuSzjk3Q8//5OI9+DJ9Ca\n7uCnyYQBeU+eHWmyn7BWDjhOOdQl/fhnmE4Hz6epgmNuaZbk2DP1ldyWLuMS\nZfSpIWK+4wIOOrdYqfPFY00edSxj4K0uHDqLOaRXKPHYMBpI98s8YqelS1kG\nLH1W91R2gOx+tQ8sQSkApCxRA9W2pt7MmcFf1Ix4qi4iWo+uCazc0d7j7w5j\n8JttOzN4GYD3wadAJLQciKKTWxW3c9qKwd0dn5pVvaxMoHthd/urqT/Lw9VH\n+QrVR1WaRWUeF6UFyyiFHZZ8q107c9OIVIyRj39aoC+61FOOi463VdKo/FvD\nTbIM7JqzpUuvW9Eau8wkdEyEqSuezeOl83Ro2q2nnMW+tvWP1UTsaJS67Xfd\nHLJqXrQH6mLt7/xYzTQFuTdovFGb7CnVQfK3cAxIHP6Mpbhsm3zVM/NM9sW9\naEerHWSdQU7AGZ1/xLJxyQww9FkOPy67FE/YhXOKVthL+ozaaPIebsYihlVm\nEzedNm0IPk8m0Y4qvCwSUULe2gu5OHL81VaT0DdeActiCs7JDirwHl3Disxg\nzJKw\r\n=q6Te\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:expo-react-native-adapter-1.0.1.tgz","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"_resolved":"","_integrity":"","_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"9.5.0","dependencies":{"expo-core":"^1.0.1","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.0.1_1534234763153_0.7661877110434627","host":"s3://npm-registry-packages"}},"1.1.0-rc.0":{"name":"expo-react-native-adapter","version":"1.1.0-rc.0","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@1.1.0-rc.0","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"0662c71e844bb41a0915bec7737b1453a584ecce","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.1.0-rc.0.tgz","fileCount":41,"integrity":"sha512-z3ILWc6byf1UqZGIvCxTH7Nt6B+QRT+rkJ3Z5bhb7VExBstSwDshXFFAv0N8J6L4ItBT+YdbAPmtdr0uhfzZoA==","signatures":[{"sig":"MEQCIAoMoq256HcEYri0AA9eAaW1tm9f4vc5FnOnkXnyEWwjAiAooK2CCCMbVdl4qVoNeMHIpUQIiSeix0DkDIRxCBPVhw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":125369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbiVBcCRA9TVsSAnZWagAAE+YP/ijcVHdt1Ud/VVC0f5yn\nA/7vbItOCALI7NBu523N0BtS8TDnwGBwwt1eXFME7RxCDOkL1z6HEPpU738k\nNI1qBBoynkczvB43KXCFgQ54sCjvJY4jyWhJL0VSSkJuruwxPCTyw368LrTJ\nVhqibZjGQA4sV6eOrUjs+lJaVKG27S04HrTrAIOxAn5UADuQ7Eg7m2WTjOCY\nMvaBH/jhqxooiPAV1CSHguUPXb5Fpup6ieHMnVQ1M3y7UnfomuXbMrXIAtKy\n8MQjq9OICnTkSsZxOnpI/tX/gngmSVMFJxF3zcBhfMIEUe6de3fJ3zq5HBfK\nwTsUWxlZBswiGfCOncX8dkV/M0OgTzAbDr9LaUXb+9umI47jINdFvPTvbHpi\n31VpI3t4twlTmLL6hFLM429LQSwuTJ/L+xmDKXtYjeKw4SoYJNMtZ/eznUPQ\no/cuvVEtF/losscmyKlFlWS2WNBKINcSdD1shrGc4NgmgEnYbk6RqwUXuPxi\nT67Gxz6zOBz/1YltMnQEuPbp/f7cI8UbfTk4pBMjPVQOfQPjJnhz6a5qro+j\nIN7fLb6px/ANH0QlqvwbP9Tk80q18KfyxApZFVN8veOw3aat5nrsdwQrYErM\npT3wleZFYiMLuKWv7XHCfh+PdNGmG8luojwhcuL1sJ60Vnz8ryAvxd1w4bZo\nuQS6\r\n=vdRU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:expo-react-native-adapter-1.1.0-rc.0.tgz","readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### iOS (no Cocoapods) _[this method is currently not supported, sorry]_\n\n1.  In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`\n2.  Go to `node_modules` ➜ `expo-react-native-adapter` and add `EXReactNativeAdapter.xcodeproj`\n3.  In XCode, in the project navigator, select your project. Add `libEXReactNativeAdapter.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`\n4.  Run your project (`Cmd+R`).\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n    ```objc\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    // add this line\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n    ```\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n    ```objc\n    self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n    ```\n4. Add two methods to the `AppDelegate`'s implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it! All in all, your `AppDelegate.m` should look similar to:\n    <details>\n        <summary>Click to expand</summary>\n        <p>\n\n    ```objc\n    #import \"AppDelegate.h\"\n\n    #import <React/RCTBundleURLProvider.h>\n    #import <React/RCTRootView.h>\n\n    #import <EXCore/EXModuleRegistry.h>\n    #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n    #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n\n    @implementation AppDelegate\n\n    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n    {\n        self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n        RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n        RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n        rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n        UIViewController *rootViewController = [UIViewController new];\n        rootViewController.view = rootView;\n        self.window.rootViewController = rootViewController;\n        [self.window makeKeyAndVisible];\n        return YES;\n    }\n\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n\n    @end\n    ```\n\n    </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.core.ModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ModuleRegistryProvider mModuleRegistryProvider = new ModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage(),\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","_npmUser":{"name":"sjchmiela","email":"sjchmiela@gmail.com"},"_resolved":"","_integrity":"","_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"8.11.4","dependencies":{"expo-core":"^1.1.0-rc.0","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"^1.1.0-rc.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4","expo-font-interface":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.1.0-rc.0_1535725659244_0.9371623692786677","host":"s3://npm-registry-packages"}},"1.1.0-rc.1":{"name":"expo-react-native-adapter","version":"1.1.0-rc.1","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@1.1.0-rc.1","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"669ba10ddb2d2d14f39f7e4099c386a17784bc0e","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.1.0-rc.1.tgz","fileCount":41,"integrity":"sha512-yokhEfImx2kQ9RJqMU89U4J9J89kOV4bxTtGtQbZJAUttwgrhS4GCQJLO8QZhDF0jUFeXEtMj+J7dFA39STL9Q==","signatures":[{"sig":"MEYCIQDOLceem7sKYHMCVByhrKh0Vc1nVUOW5Ump+qLiSS1OsAIhAIsZCep1LQBr2r+wbKXqCbTWvZ6Xlw63qssmj94PaxCz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124040,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbkqSHCRA9TVsSAnZWagAAi90P/33U0d9/deC41W5yzHCB\nIxwoyahkXkhjFH3e5/6K1j9NSDWYQRothpQtBh/Li15fE6CIA92lSIesoaGC\nHgxwHcWEv1xab/r39hVXcfi9Nw8JMvW0v8bTbIxw28L5gNbuKzwfooP7IHfk\nbAle1Ci+gQn0bF8A1etNnfWmcYGWQgNCqPumy5iuqvG8eQmYyW4zjMtg1Gyx\n3bIqWAVdM2woQPYawEOB7AfijpOQ1kje3fNnECVgNmWPvlwKmxjFzvCcOgIm\nMhWHzzMKfTmM5IUS7maoRTG6yYCZW1EG1y5fYO70m2meUaNH1gxIjQCsnziz\n3SPC/DivbTIEsaXfpRL3dh/+e9fEU8mrhNvSr7oZbrrPyt6euXi9aD8k6KQU\n67n+lVAMnV5tUMM58N/fyadE0Y5r16u56Cs1B1JPVsu1RO3E+VrlCp1j0MYy\nEOY2t29jiBEVwzF+gPBaqISyDrvdpAK0mxcjcpPLHh0CiQa4DoCY7ntZVkU/\nbzBsmJONaL4Li7oA4PubkFIN7L3guwvLU59h6mfVLShrWLQPQ3svqEtpLM0v\nZKszYm6G1JJpUD5WVvNqiUndI3ivjCLEdiK1QWOLfWbGO/FdkKqlxFfc/2F/\nffRBkj2MGvXcF3kjqR6sqOv6KLxA4E9m/h5Zfd6Ru06l345H0ZZ/BlEdB3Ri\nQUAI\r\n=64m0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:expo-react-native-adapter-1.1.0-rc.1.tgz","readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### iOS (no Cocoapods) _[this method is currently not supported, sorry]_\n\n1.  In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`\n2.  Go to `node_modules` ➜ `expo-react-native-adapter` and add `EXReactNativeAdapter.xcodeproj`\n3.  In XCode, in the project navigator, select your project. Add `libEXReactNativeAdapter.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`\n4.  Run your project (`Cmd+R`).\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n    ```objc\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    // add this line\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n    ```\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n    ```objc\n    self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n    ```\n4. Add two methods to the `AppDelegate`'s implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it! All in all, your `AppDelegate.m` should look similar to:\n    <details>\n        <summary>Click to expand</summary>\n        <p>\n\n    ```objc\n    #import \"AppDelegate.h\"\n\n    #import <React/RCTBundleURLProvider.h>\n    #import <React/RCTRootView.h>\n\n    #import <EXCore/EXModuleRegistry.h>\n    #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n    #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n\n    @implementation AppDelegate\n\n    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n    {\n        self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n        RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n        RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n        rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n        UIViewController *rootViewController = [UIViewController new];\n        rootViewController.view = rootView;\n        self.window.rootViewController = rootViewController;\n        [self.window makeKeyAndVisible];\n        return YES;\n    }\n\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n\n    @end\n    ```\n\n    </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.core.ModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ModuleRegistryProvider mModuleRegistryProvider = new ModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage(),\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"_resolved":"","_integrity":"","_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"9.5.0","dependencies":{"expo-core":"^1.1.0-rc.1","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"^1.1.0-rc.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4","expo-font-interface":"^1.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.1.0-rc.1_1536337031036_0.41005809675090665","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"expo-react-native-adapter","version":"1.1.0","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@1.1.0","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"7efb07f0f2e58257bd12ba49245342f483234eff","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.1.0.tgz","fileCount":41,"integrity":"sha512-6w3hi/JYLdnAEsG7RKc54fcZRg2jCgGGIDGSNVRs5JBOMji8RpQ7BNowHwZ7MstqU2I4zhh8YMVw+X87ot5wEA==","signatures":[{"sig":"MEYCIQCIUdSgA2q1v033bfUfqI5ITTkF0q9AlGSjl91IKt0nUAIhALH6tWH5jP5JvN38o4Y1IFa7wEHZQMLdzxMRqj429VLA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":123985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbl7dOCRA9TVsSAnZWagAAACcP/A3VnN3A4AZY+ClsHQxV\n65pr+QitWK6RE/jxECIUM3MwuRQwcHsI2Yw31nHTIR60QVgTNAubIMDCicjX\nEaZMQcCtHqYr65gjo0E6Nvx62sPTFUBOQzHSDCfl6y1RIpd/aTWKvsbpPNE7\nKs8ZPvXFWELg1nFaPQy8+v64oHS0UEW052DCaWmybVimPTtgZNRP9k/JpTWj\nz1bO02UGx+/qDPzEi7AclguRy9Lezi8DQ29sojH3HuaenPWXy1f16VOYlPbB\nq57Am++smpmeZNcGE56A3DEMaywqWrINAstyjuWIa0q84V0jWEus66LdRD43\nvoCf1j0ssgJRtT7DBv2Jqfx/tQIsRG2ty2py9JNsTf2S0ngK7i4/CWwjejcf\nKwBEwjN8DY8MoHGgnTinYInuPdbPaTdObhv7I9UGSjjW2gTdRvEzJAH+5K+v\nWLIeYBjbMcg/nsz+HBbxZS3LLkxaWH7qfpDJqOsbkKv7Nlbd0QhdcN02aITp\nZMnNFlvZdj/YUZnX6nzLOOkCKAOo4Sxh0H/IE2+cQtveNfu7DxSXdSz0ju7L\nyLIAC/gINHCIHPuBoy3mFXDK1zHPmueEts8bIjh0rmiCuzaswmJ7FPIFN+4V\n/Y9Psos0HZnBsucz+wa1Q8NLz//iHL3YYswsWkm7GaAqA7cPTj84r/HJlrY4\ncaae\r\n=/Z10\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:expo-react-native-adapter-1.1.0.tgz","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"_resolved":"","_integrity":"","_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"9.5.0","dependencies":{"expo-core":"~1.1.0","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4","expo-font-interface":"~1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.1.0_1536669517800_0.532237099158448","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"expo-react-native-adapter","version":"1.1.1","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@1.1.1","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"a8a4bcd8d17323924aac991ac727e9bcab9da6e1","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.1.1.tgz","fileCount":41,"integrity":"sha512-I2p+IOa3CWKbzbJuAgJaAAdmbZh4o+dfvP4zedDyIGMsma8i807nhqH/864le6/HHnuSJTphWSpRuvvUapw2OQ==","signatures":[{"sig":"MEUCIQC1h0XYoxKkgyRp6xwA+dEIY/MTNtQNvgvz4O2o/45tCQIgbnvdUHUYcMgnsbykcbthrpvEIqoDh6nCYQ9cYXSx1h4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmnK3CRA9TVsSAnZWagAA8b0P/i0+lPCrLL9BwQtgZn64\n1ex/FH9ObcOfLG8013g9VeVadc4wUTLrgZCexP+YIAkBwx+L1Uh8S0WMswdZ\nO6OMvbTRmMKcYWdneycONU263Zs9r3KVANET9ZGDty8z+NooLC2MUde1os4g\ns5dJKSat8pRTRX06s93P/lR7uz8xXGcW+uKBDBhCJn42JjaNopy3oXEpBG3s\nWReyEnPrpxO88eTOYbjh2FCx7/Jgrs0zLw7vySjQmf9O/J9F46r3r6HkhvN6\nL30HHVVAmDsMeA6H/FhDWEDMRcsAjx2jhOKwNH7yAMWj8MGtkKDKb9XpHMo8\nKVYTCC7DTHbEt9jIWH78TYFW1iMQ7/UNmrj7tpykftYatQxw1z6eNYXsZRMW\nJO27kci/mPxzkROfQwf0kfJL0rylWiJ9/KuO6SzWyrPL9GcIDRFTCsA1lYK2\ny5bZQPfLely8SsOfDS5VulrP2fz4FhS+VjROOZoPW0pM+M05n0o+SrGDiHiY\nkfDQufzyWQd+0H1G9VmX89uc20gRYFsgj1bvvnjtdM8UvJwYrc4DLvLWYPDH\nlwlOcZpMnHV8RULCfjEMZViHcb1Bj/+SzbOULKpXVpKvgF24kb/xhCpsGuxz\nubBwr3GyJTCEd9ZN07MVd11wt+SKdn1QGurtgE7PzVlATt8PSOv/KH3z1/Xf\nCsWn\r\n=tj5W\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:expo-react-native-adapter-1.1.1.tgz","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"_resolved":"","_integrity":"","_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"9.5.0","dependencies":{"expo-core":"~1.1.0","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~1.1.0","expo-image-loader-interface":"~1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4","expo-font-interface":"~1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.1.1_1536848566794_0.06532992456072595","host":"s3://npm-registry-packages"}},"1.2.0-rc.0":{"name":"expo-react-native-adapter","version":"1.2.0-rc.0","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@1.2.0-rc.0","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jakubste","email":"jakub.ste@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"ef317615a2c9e258e2a74e8fef42562689e7b88b","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.2.0-rc.0.tgz","fileCount":58,"integrity":"sha512-kC4oAAUxdcMUA9vF68M2xm22ehcpGjw4f6J+Q48eHPkoGU8tVUhVMelbRQYEuqipzHSCtSa+sRKLOgYnqi+c4w==","signatures":[{"sig":"MEYCIQDi16H+Arzn0vTxgd4KNLSu2ffZJPdEWm5zOnxXuAY2XAIhAKNy5HYCGmzlnSTgovsChEqvbCS7c1p+0jemkjl1onPw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb01GKCRA9TVsSAnZWagAAk6IQAKMMftsXfJ2y7AvgF9m2\nlTml3rR+IZ7exVaAWUjbNHzOAXghUXBdh60PR4mkw87NHivIi/LmRnRblrVq\nnGEptHaC/e4WFTjicbC7hrlPwyofpcY9L6cOukEqypNEf4jnZx6++GbJCDGl\nf6h7Skq11j0C6ddbjuK4iIGZqLf03LfRbFjqL0ChB66aJo9wA9Fep5+frDyk\nDnlgyHF5Be/MEqxpBzBHL4kjaK8WifO6+9XQYEFPvH3yiboB37IoclS/A6Ll\nbFi6esFvV1qM9MwrCn13f/RGkZHHJwooE1QO+7PtplLX+39mgiCZIss5BhYL\njW9Wpgfj+GbEcvGrXHXfAVwYu75b0MWSoPFZA6MNyMLxLU6IN6UU+CNrHQKi\nqjFxme2rnpw+kqyU3c7VMoq/AYd5LJnJsmkbSvtagFdhGh11thFWpUvvkiRi\nDqxS5CRqPZRswu32JdIv67pxAATiX2yNvGjTTotRn1Drq/74Wl08n2/HzKuO\nhFVeKBnKjED9bFaHeIBC/oTxrQwNXIGyTqRPd3iizINOvBI+S4ZIZL60kN0g\nOJ7DRPiv6qwhsEq6DqOO3Cd9uzxawNzHHJmRfn6vUtTTTNf4jdHyskdxTDxg\nZUvlT2E+hJ5tts5LkBBmzgkoVIsDAap3kiYGJVLPMsbQFETbUbrvZ8k4k2tD\n08ka\r\n=F3Sj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### iOS (no Cocoapods) _[this method is currently not supported, sorry]_\n\n1.  In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`\n2.  Go to `node_modules` ➜ `expo-react-native-adapter` and add `EXReactNativeAdapter.xcodeproj`\n3.  In XCode, in the project navigator, select your project. Add `libEXReactNativeAdapter.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`\n4.  Run your project (`Cmd+R`).\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n    ```objc\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    // add this line\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n    ```\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n    ```objc\n    self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n    ```\n4. Add two methods to the `AppDelegate`'s implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it! All in all, your `AppDelegate.m` should look similar to:\n    <details>\n        <summary>Click to expand</summary>\n        <p>\n\n    ```objc\n    #import \"AppDelegate.h\"\n\n    #import <React/RCTBundleURLProvider.h>\n    #import <React/RCTRootView.h>\n\n    #import <EXCore/EXModuleRegistry.h>\n    #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n    #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n\n    @implementation AppDelegate\n\n    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n    {\n        self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n        RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n        RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n        rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n        UIViewController *rootViewController = [UIViewController new];\n        rootViewController.view = rootView;\n        self.window.rootViewController = rootViewController;\n        [self.window makeKeyAndVisible];\n        return YES;\n    }\n\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n\n    @end\n    ```\n\n    </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.core.ModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ModuleRegistryProvider mModuleRegistryProvider = new ModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage(),\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"description":"Expo React Native adapter for universal modules","directories":{},"dependencies":{"expo-core":"~1.2.0-rc.0","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~1.2.0-rc.0","expo-image-loader-interface":"~1.1.0-rc.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"expo-font-interface":"~1.1.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.2.0-rc.0_1540575625967_0.9007612750304015","host":"s3://npm-registry-packages"}},"1.2.0-rc.1":{"name":"expo-react-native-adapter","version":"1.2.0-rc.1","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@1.2.0-rc.1","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jakubste","email":"jakub.ste@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"86b03de25e9ceedebb16f7fa4439341cb74c9c10","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.2.0-rc.1.tgz","fileCount":58,"integrity":"sha512-QV1kZE0uyZm2MqZUKuNxpNydqImWJm4i7zlbxXoPlIsAJc3bjMSYLVGMErOqgcjt3z0pUYaGT8/TlP14JEHCoA==","signatures":[{"sig":"MEQCIFRVfXO7uzs/ctSxrvE5vUpbyPnlKgyZadoujBGbrmBHAiAE0psuGnMQ/NiY+eWkIQYoKALovgywllQYPI2p5vosIw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2HDSCRA9TVsSAnZWagAAWQYP/RsRkHKDM/L/bp90sqWe\nZLmRaSBNV0OwDuN1lWVI16QeB8CELVVs5NHwNlcZHSYF5PtEZ6daPf3qkE1M\nr8VlnU2hBzci2oGWgoaWBj+9OBt0y0Jb5MT8iKjt0yLj1t/CI0oyHd6fVb1Q\n7tFlGEnUUpir8OKFWbGCH5jFZBtJ3lJlYcoa43zFbAfiqNbdwzfeEyn/4tdS\nv29bljqVTTgsNKSIiD64GhRR8lJmwTKyDJt6PwLJZzBn6hB3eBjDhKqEvSPQ\nK9h6CuufSY5rB6d5AD/ib0TwjeN1kKGZKVsEsIXuRXuSyFI+u1sNdpLexJM9\ny2T1H1hbtXsk+8EA/NzcvHvBneUvMH3AMbsaTEKB+BRJViz+X3oKLENEXrDG\nPVrOvfyLo7YVV1YxUN4KMgl/jD+lYs1zHk+7RUTguFweBtCL0DBji8fPGCpl\nnYq9yuJbOsDLAExtoY3Tm2NbpzDLZomqDhlwupbZWYUHjXe878rnHs2LinIB\n/4IMcR1GiXucS0sE0OImnFYlomIZfB3+1+zibwNo8D5bThoaMeon/fZov3Q0\ncxvuvz8aB6Fd4bvtfKyxzfRkbgrLAbEfhSxqteP4qKg1hlSra49j3LLslARQ\nXusBJ4m/arnFOUF65ePoOlyMinybcMGfPKhTVBXG41JK+TnuU1c6BD5W59zA\nzNo/\r\n=lnwc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### iOS (no Cocoapods) _[this method is currently not supported, sorry]_\n\n1.  In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`\n2.  Go to `node_modules` ➜ `expo-react-native-adapter` and add `EXReactNativeAdapter.xcodeproj`\n3.  In XCode, in the project navigator, select your project. Add `libEXReactNativeAdapter.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`\n4.  Run your project (`Cmd+R`).\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n    ```objc\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    // add this line\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n    ```\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n    ```objc\n    self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n    ```\n4. Add two methods to the `AppDelegate`'s implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it! All in all, your `AppDelegate.m` should look similar to:\n    <details>\n        <summary>Click to expand</summary>\n        <p>\n\n    ```objc\n    #import \"AppDelegate.h\"\n\n    #import <React/RCTBundleURLProvider.h>\n    #import <React/RCTRootView.h>\n\n    #import <EXCore/EXModuleRegistry.h>\n    #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n    #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n\n    @implementation AppDelegate\n\n    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n    {\n        self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n        RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n        RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n        rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n        UIViewController *rootViewController = [UIViewController new];\n        rootViewController.view = rootView;\n        self.window.rootViewController = rootViewController;\n        [self.window makeKeyAndVisible];\n        return YES;\n    }\n\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n\n    @end\n    ```\n\n    </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.core.ModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ModuleRegistryProvider mModuleRegistryProvider = new ModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage(),\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","_npmUser":{"name":"sjchmiela","email":"sjchmiela@gmail.com"},"description":"Expo React Native adapter for universal modules","directories":{},"dependencies":{"expo-core":"~1.2.0-rc.1","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~1.2.0-rc.1","expo-image-loader-interface":"~1.1.0-rc.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"babel-preset-expo":"^5.0.0-rc.0"},"peerDependencies":{"react-native":"^0.57.1","expo-font-interface":"~1.1.0-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.2.0-rc.1_1540911313634_0.5473852017504035","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"expo-react-native-adapter","version":"1.2.0","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@1.2.0","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jakubste","email":"jakub.ste@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"f175b9fcd29cb470b770653131febcd2c89b33d2","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.2.0.tgz","fileCount":58,"integrity":"sha512-blb0qsX+NRpHXIsPoSaxBHcw2cpoUoQf0gyqSJTuxseyJc0dIkL8Eol4bP3JpQ4GnlGKW6vmjvO6M2TpW/wDUA==","signatures":[{"sig":"MEYCIQCt3liU6KWd08fBvHh/fQZFqCMoznlIICDLF8Uk7g5EawIhAPbUdqsQShrTU4HHm5JBkffsP9gEQQCkWq+cp4VljQBJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92451,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2gurCRA9TVsSAnZWagAAGZ0QAJEj8tLBhM3HWIWgrlxP\nu17Cgi0/ugPZI6Fh8X/2m5Eo8LkrukGbeCe3OjkTtkxPum/RWddJNw5HJ6Nv\nv/IUy9C6jf0UbZ+LRbK8Iy/Pg2Q0p5qVdhykqmyJxiZPQEsnhBkuA/7Wm895\nnvPtg5S89I3IkQEwSQoFt9rd5c8Nk3DD41SFWzximWI6ibJKz7SWTrLOGr3F\nVt+pbRsIoIHe2jRcctCqoVj+F/JvJPcL8D1NEAZM8J4Bs383v0sYa43ZdS8P\nCRy5t/4pFi4rVQHdP+N6ZpDqWfp0NQym1UblERiyRF2BtLWlVgjx4vX2O3lp\njGe3wx7/1KMnJRZwg8kFLmlBqR90H8+58De+5ErrYcyacGtSQyJjwNcGgyp1\nP70mEexw06/6ScL/fsZmi4j6XbUMU0Ag2jEfooy3lDUK90sxolgaDICDz/AP\nrGk6wdk9u/90OZMgW7uox03v2b9MwXL4l74vWBz3pGUQN2dJIzFVLvRn+dz1\ndl/OFink6rFTagPI6zIz9lPVGe8VpowA6ISfs8pt4KYgKO73skPmmIQw98g8\npdWJcFXc4k7cs1wT6y0XOjthC8kTrOKd3UUQGKOSEbc/ZHWEPTQqa+pDyEW6\n1+FQOWn0oScyGsXGh1S67s6s1hGV70XPicRwAPsGg38g+y74YqHe9nWQIyIT\nG67o\r\n=/ktU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"description":"Expo React Native adapter for universal modules","directories":{},"dependencies":{"expo-core":"~1.2.0","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~1.2.0","expo-image-loader-interface":"~1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"babel-preset-expo":"^5.0.0"},"peerDependencies":{"react-native":"^0.57.1","expo-font-interface":"~1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.2.0_1541016490269_0.059677524303650475","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"expo-react-native-adapter","version":"1.0.2","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"BSD","_id":"expo-react-native-adapter@1.0.2","maintainers":[{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jakubste","email":"jakub.ste@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://docs.expo.io/","dist":{"shasum":"d2b46eb1338345ed880984369e2f6d244644fccb","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-1.0.2.tgz","fileCount":38,"integrity":"sha512-EcZG2S68HTBE1gdW4hWJWCaE9uszE1CuOhgGI4QDYQY0emVwnV+5em/E8+tZUUQ82+UczYY3yAvGnZv2M2/tnA==","signatures":[{"sig":"MEUCIHiBh68kuXOUNyLFKHZpyso7noA1DHXImb6GRcDc7qyLAiEAk3lNmZ9dobexlnw5s3U2tVpeQ6a6PR/jkiMPCW4tVGQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113093,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4GBmCRA9TVsSAnZWagAAs30P/2Q7v1Yb7q7eh7pGAg1i\n48QbWUeHDevSEhGhVeSTuLd6O/gPWjoA2VAranrUz6qeuRRMcGKVWeUj+vfM\nFhs5Gx9DshXZZySSsrmHzjwdirN5KHvGaaNidlU6vMJW+LskuhbW+RiZa/Pf\nfWxk3SoMSVfYGAicpIaFlQBQe7vJtDv/Zp36yYTSVANgukmRIbqNz8rnWwVT\n9ggqQaiuTE+w3qJSPlJ6YCYRz3Hn7iyByhlp7n2wZaMqSwhVuNE7XgZNm7IH\nXthSd2QMTogt8OBPFRe3VJarEB2SIo4uM8IV1f9wbb04tg9L2SgxIkZqZcq5\na8f2tlHcDZf5aaus3S12XIk1ADkJ3mwLfz5yks8u+aoDwTUjCE3nZJumgUwa\n/jrUcRlb/fTVSpIIR7fMY3JguMgi8pnaPP1ki645D99G1dkBVVqQICiCt6qh\noOIF8qoKQtX/0JMmRtCEVzSzA9oEwsaUtCcMX1Ud9aEdrBqdDJECDQ81eoqF\nxtgjQ/4SJQg3BuFX/Mr97WmUPfWVBT06Hp8TN1K2uEYi9/k4Da9oefTvvtLo\nb6jD5H0BdzLR/UVslmmTi8w0NjEKqYW0cFhnj8UJ4C2fLMmTZ3csXl6588Bl\nzzeqC6s79Xn/4jrzrrZRUnOPg+83NqbjDdWwfZp7iXVAZlIlzpRqUSHyC+d1\nC0+6\r\n=rWZX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"_npmVersion":"6.1.0","description":"Expo React Native adapter for universal modules","directories":{},"_nodeVersion":"10.11.0","dependencies":{"expo-core":"~1.0.1","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"babel-preset-expo":"^4.0.0"},"peerDependencies":{"react":"^16.3.1","react-native":"^0.55.4"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_1.0.2_1541431397397_0.805712977751299","host":"s3://npm-registry-packages"}},"2.0.0-rc.0":{"name":"expo-react-native-adapter","version":"2.0.0-rc.0","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@2.0.0-rc.0","maintainers":[{"name":"barthec","email":"bartlomiejbukowski.b@gmail.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jakubste","email":"jakub.ste@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","dist":{"shasum":"28af24ea22db1f2fb82b4069c9ec123183d1bca0","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-2.0.0-rc.0.tgz","fileCount":67,"integrity":"sha512-kP9vwYVrYv/T98Ak1ddI+y6fU1OvbVBsqy+0Hv+ueLAX4Oktzu7bHuswmn828CpK+Nmnejrdmg19SPwVSWRbWg==","signatures":[{"sig":"MEYCIQCh0dCpFcMgfoaSlQGcTDI6C+jThW75avQZiNgAV/YuPgIhANAIfHp/KXSjdkiwqlgLuIQD+LriR+JNHYG3+8PqnW6L","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":95988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGm1iCRA9TVsSAnZWagAAuwsP+QGAVjlHtuGIAvxTT/WN\nnyw+f7R8CPZYKXHcqsTin3cs3Eh/3Z2mbhX/UYjel3Z+hb6QkGRD2GCsqQn6\nfMnLWx3C/ua7M6j0UF0oHZMhUCCaGOy/xih70L+oO+M8NjJa7KIeSAeJinhp\nu5UOwR0Mw/Blw3lXWkWVjsVe6bSRsPkSde8NCC8i4udRBk6BiJ0G5aAGIqIL\nbGvnh6QV+mXXBsHbPwNT7NbaX+jF9joNbANHB5AO1Hux40U74Vv0Rhmi2+mP\n5e/igVikjY+Q33F98LtMXYGIdE4qpjdPGARD1L+Ri+wPw/WvMrf2mVyPIx27\nalJr5/wCTKWlvjihzKne5wNpYXNnNmozknsB5FPEvKK2dMW7GLKGwZBY4RDK\nloItsDDkSUpm0Qrbi3FFCnQybfSmAOjMOSlGC1xvcQ9Px4OuYaXs1kfmFjlJ\nWREj/RUKCT9wp6oCH6iqVN5q2wOrdPA+jnHZQTPB8L7XocTpMtxBFJWtPVFz\niBabPJ30AOpErOn1+T8CE0D+/oucwNT8oa0eIeUHDz0973kXfZU+MFZZr3Yv\nYNnxS0W6wj5GQsnhFM+rjSlWbD/Jk5XDWfRXWff5TzFPxWBJ339Pe6dKpQFP\nUYdRNWnwvCv0r6K5H38AZ3XrbQEldm20nC0ixtz/kGNpWE/m/1iL2GS4MPqv\nvKwo\r\n=uaFq\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"expo-module-scripts"},"main":"build/index.js","types":"build/index.d.ts","readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n    ```objc\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    // add this line\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n    ```\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n    ```objc\n    self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n    ```\n4. Add two methods to the `AppDelegate`'s implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it! All in all, your `AppDelegate.m` should look similar to:\n    <details>\n        <summary>Click to expand</summary>\n        <p>\n\n    ```objc\n    #import \"AppDelegate.h\"\n\n    #import <React/RCTBundleURLProvider.h>\n    #import <React/RCTRootView.h>\n\n    #import <EXCore/EXModuleRegistry.h>\n    #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n    #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n\n    @implementation AppDelegate\n\n    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n    {\n        self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n        RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n        RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n        rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n        UIViewController *rootViewController = [UIViewController new];\n        rootViewController.view = rootView;\n        self.window.rootViewController = rootViewController;\n        [self.window makeKeyAndVisible];\n        return YES;\n    }\n\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n\n    @end\n    ```\n\n    </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.adapters.react.ReactModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage()\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","gitHead":"6f6e8d93d4979663581002a9dcd5efc4e6f4fb5f","scripts":{"test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","postinstall":"expo-module postinstall","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"repository":{"url":"https://github.com/expo/expo.git","type":"git"},"description":"The adapter to use Expo universal modules with the React Native bridge","directories":{},"dependencies":{"invariant":"^2.2.4","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~2.0.0-rc.0","expo-image-loader-interface":"~2.0.0-rc.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"expo-core":"~2.0.0-rc.0","babel-preset-expo":"^5.0.0","@types/lodash.omit":"^4.5.4","@types/lodash.pick":"^4.4.4"},"peerDependencies":{"react-native":"^0.57.1","expo-font-interface":"~2.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_2.0.0-rc.0_1545235810249_0.4570634532122877","host":"s3://npm-registry-packages"}},"2.0.0-rc.1":{"name":"expo-react-native-adapter","version":"2.0.0-rc.1","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@2.0.0-rc.1","maintainers":[{"name":"barthec","email":"bartlomiejbukowski.b@gmail.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jakubste","email":"jakub.ste@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","dist":{"shasum":"b5a10681730bd0250292d08c21fd22fa9a78eccc","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-2.0.0-rc.1.tgz","fileCount":67,"integrity":"sha512-6wC+qOPlDQ3iz1G8arR17acmfhZ5RdqPskmvKsPzyq734YtUALLW+kUr1owyRdHU1/xGFGOwUjOj/fR9wIjiIQ==","signatures":[{"sig":"MEUCIFN97PjpPxj+qyhqnHvys1hTnpGfFoaXWt0HgyxS5uPmAiEA4FKvhlqL2fUKRD0tiI6gQPhBqhzj4UAjAIcDqcwTniw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":95942,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcG6cjCRA9TVsSAnZWagAAZ2kP/jtrwnlCfSTcRoL5Tmdk\nuveq/LjEVI8NymrI+xT7CB4rdjT1K6i7umQ6gonFVsLqZJz6Zcz6enqFpSPZ\n8b9u6WhACs/VNgDlXx3DQ5AlA5meg9ointdmvClVbylOn978TkYTzFNUpVgN\nt6gGF/nlyH+KpM8Wk1+4ZohNIykrDAjmd1Fcfd4a32u3D/apNBu/DoVhyW/q\nGyw2u6DTYoWIe9Oij2uo3pE4rWKCcRWctJXLXOYgixCBr75QEWxFZkndwyPT\nBjrhH5mSn4D11InbMtlijA4PgEz64mMpn+hxRqwDbr0Z+zOTLng72z4UnH8p\naSC2EYbAIMCYwlDTe4bzDMPBxPNv+4vBI02xxqwjHxSU1KlNvREib4Jo3/9u\nuREIJy3ce2k1Zb40jutzcY+g+Rbw5mgAyHiisessvj03qw1iad0U4wE0dsx8\nMj5K8jIiNrJCIR0Ata1sM6F6E7zKpJi07BYNY+/2V6RrFsB3V6ZBjkzTWY0H\nnbIl6EPE5KpJcJoNn5d0+npipmX38TTIgMF1VGl2VD25KpeX8VQQUPHDk2X5\n9t9xHlssdicIUkV68ctmG4Zk/+hey0A85ugq4OE9nmyXynEpOAT4tP9c3osz\nz6G7egqMPjpZ4xhppnLNQmGbRXp6oMo5JAHNnAbuSF5eRhFyJGzroCz69PiS\n6FVA\r\n=H91+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"expo-module-scripts"},"main":"build/index.js","types":"build/index.d.ts","readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n    ```objc\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    // add this line\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n    ```\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n    ```objc\n    self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n    ```\n4. Add two methods to the `AppDelegate`'s implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it! All in all, your `AppDelegate.m` should look similar to:\n    <details>\n        <summary>Click to expand</summary>\n        <p>\n\n    ```objc\n    #import \"AppDelegate.h\"\n\n    #import <React/RCTBundleURLProvider.h>\n    #import <React/RCTRootView.h>\n\n    #import <EXCore/EXModuleRegistry.h>\n    #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n    #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n\n    @implementation AppDelegate\n\n    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n    {\n        self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n        RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n        RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n        rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n        UIViewController *rootViewController = [UIViewController new];\n        rootViewController.view = rootView;\n        self.window.rootViewController = rootViewController;\n        [self.window makeKeyAndVisible];\n        return YES;\n    }\n\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n\n    @end\n    ```\n\n    </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.adapters.react.ReactModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage()\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","gitHead":"6ba0420edc58629426183a6c9a9d5dafa1d40c5d","scripts":{"test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"repository":{"url":"https://github.com/expo/expo.git","type":"git"},"description":"The adapter to use Expo universal modules with the React Native bridge","directories":{},"dependencies":{"invariant":"^2.2.4","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~2.0.0-rc.0","expo-image-loader-interface":"~2.0.0-rc.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"expo-core":"~2.0.0-rc.1","babel-preset-expo":"^5.0.0","@types/lodash.omit":"^4.5.4","@types/lodash.pick":"^4.4.4"},"peerDependencies":{"react-native":"^0.57.1","expo-font-interface":"~2.0.0-rc.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_2.0.0-rc.1_1545316130723_0.4737015856083302","host":"s3://npm-registry-packages"}},"2.0.0-rc.2":{"name":"expo-react-native-adapter","version":"2.0.0-rc.2","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@2.0.0-rc.2","maintainers":[{"name":"barthec","email":"bartlomiejbukowski.b@gmail.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jakubste","email":"jakub.ste@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","dist":{"shasum":"939a59654bc041b22c18fd28048ad5a661f3641f","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-2.0.0-rc.2.tgz","fileCount":57,"integrity":"sha512-LANs2MSE50t6+hYHRmJoY/fuk+vJz+P4RBPMihhZrHALtAJgZnBaD60y/xY+IOMYEMMmLvPBZznv+mB/QZ8hZA==","signatures":[{"sig":"MEUCIDAuBkKtUItCOumAsKou5ymkyuaRh0EyEta7iOXZ6W46AiEAwR8QSOHZIz9wzyYNezEgp+LreZKjZfcMm8jDC5xkacY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcG/F/CRA9TVsSAnZWagAAIisP/1nUA0iXFREaVQcOfJvb\nhWKqV48gXSf5Xzq3dP7K+0XYZolhKQHtJY3OSgR933uYYxcr/UVRG2gjUVFK\nJo61SJGtGddYN/8EbFC6ziVXDyPX5lsve6PNH78xbqv3VN88Sz2v5ApcNXND\n9etlpgLLXLxGmCefFTwr/QrQHIeaJB1TmQt69xhokTb65nezCFSYrnQ3xBXh\n9X82fjjsyzHbtqKZADoprKIOM6p8Amhbchthh3W10bMxt7juCACPtEaYpFjD\n3/CX/ZSQJTIhEx+eU8TtoxqLOpn1T6YdKOSugMvkd4vfM2roIr9x1P/sPxpn\n660Nls3oZD61THdrz0qG+Vn+RzBor83MUfUDvZWM+gak1ZYghjt1taSK1jZ/\nT7ceThPLjoGq6wHgA33hr5dUKVAnKnNdUPHcwSmO2i0t6tMHUiPHiAacpGp6\nxYTK7fBX59cF2VZni47eh7C3imYoktf8YO6dU2Mq36IXww9eJJkYRaAK+Jhg\nkEPuzgdhY9YjhnIoGss1kqLGBlNYZHwXFguQCM1mISnoPpVDPGxvwuMfF0N9\nUR07HXCZePLBBALqkUNv1kH0vB1LOSgnIQG+wJeybfbo18rx8ZFNMLe+0sz6\nyJ06qjO3VvdwMz1pp6vq213QMtqSEOD7rrmpSxqmbHHx2KNU0BXNh/1AGSI5\nhEku\r\n=fo6i\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"expo-module-scripts"},"main":"build/index.js","types":"build/index.d.ts","readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n    ```objc\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    // add this line\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n    ```\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n    ```objc\n    self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n    ```\n4. Add two methods to the `AppDelegate`'s implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it! All in all, your `AppDelegate.m` should look similar to:\n    <details>\n        <summary>Click to expand</summary>\n        <p>\n\n    ```objc\n    #import \"AppDelegate.h\"\n\n    #import <React/RCTBundleURLProvider.h>\n    #import <React/RCTRootView.h>\n\n    #import <EXCore/EXModuleRegistry.h>\n    #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n    #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n\n    @implementation AppDelegate\n\n    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n    {\n        self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n        RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n        RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n        rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n        UIViewController *rootViewController = [UIViewController new];\n        rootViewController.view = rootView;\n        self.window.rootViewController = rootViewController;\n        [self.window makeKeyAndVisible];\n        return YES;\n    }\n\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n\n    @end\n    ```\n\n    </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.adapters.react.ReactModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage()\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","gitHead":"36f587788050b6e9acc3ddfbd5b9112bc2c6b285","scripts":{"test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},"repository":{"url":"https://github.com/expo/expo.git","type":"git"},"description":"The adapter to use Expo universal modules with the React Native bridge","directories":{},"dependencies":{"invariant":"^2.2.4","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~2.0.0-rc.1","expo-image-loader-interface":"~2.0.0-rc.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"expo-core":"~2.0.0-rc.2","babel-preset-expo":"^5.0.0","@types/lodash.omit":"^4.5.4","@types/lodash.pick":"^4.4.4","expo-module-scripts":"^1.0.0"},"peerDependencies":{"react-native":"^0.57.1","expo-font-interface":"~2.0.0-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_2.0.0-rc.2_1545335166449_0.19183509467820214","host":"s3://npm-registry-packages"}},"2.0.0-rc.3":{"name":"expo-react-native-adapter","version":"2.0.0-rc.3","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@2.0.0-rc.3","maintainers":[{"name":"barthec","email":"bartlomiejbukowski.b@gmail.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jakubste","email":"jakub.ste@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","dist":{"shasum":"9d008cb63767c958b7f8aaa0fdbab81ad7f0b23f","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-2.0.0-rc.3.tgz","fileCount":57,"integrity":"sha512-QtZKRGj8MhqhrlUTQAXXOYbBx92jA5yjPGhYpChJvn3l6Ns9rCW/fLyfbjiURAsTkj2+DDJLSTGvW/m2D+G5cg==","signatures":[{"sig":"MEQCIDQVDYZBzFIgthJd23uvFk/ooq2Z19mLQ6EJrBquygBhAiB2udwLcEqTU64TVugXJvcM8YwAjNQo3FeLcYEUP0/DOg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLgnXCRA9TVsSAnZWagAAVoMP/3iC1mLEG6lImpUd9YKK\n+P3B/bzTrItjnXCsOU/BoZEciF1GXAdz9Ol4HhAHX1WNzOjcrvwYD/CWOjCd\nh+KCMiNQogQWjCDAAUxDQSv9w0VXvUSToEaVVNnw8fNBFsXLSqkyPOnF6PO0\nu4T6yJ7JMMauZ5irkBmKKIvEDQIqe9hxI5gKY7ZHfs1yosuOfq9P+c8N2l9V\nD8CHIYxzyUIcm2rCwGcUbdLdX5GArXH5f1RuwPjbPSCt2YS9L9unNlIZaEC8\npjkQD2RMSLRylyAaI37mTGF4herf5DGmzyZRsHVPJ0DvG4kjQeaDTON71c/x\ntncFTkQgaP8ouyst53l1WPl+ITrrCXB+BtsclPDx4X6qTaHc47a+KeN+CTHA\nX9NVQCVxZ5nQQleoc9UipSZnbK5Cb5ip1uZArX7E1hFUXwwmxfetcPiaJgpn\n23zsLViWEw5RzQ/4OK77BlUv1fUMGlVvU2Dnzn99XFPksVg8D4A9llfoCNYY\n4Q347aM90kOKOIDL3FyiS9E3pa+r+SwTz3HYPTwlHd0EiH2w2aSWkZdWHLCa\nju+fPShT9acZmk10r9pr21g8yxu6ytAWtLI31TRi9ldhPoBhQpMozKnZXpAo\nAhdtVuRNgREx66jsZ6G4w+CvJlFl/SSW+pmNFXY8oLjGRHWPUDVLtvxN8yL0\nQwjG\r\n=BQEx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"expo-module-scripts"},"main":"build/index.js","types":"build/index.d.ts","readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n    ```objc\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    // add this line\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n    ```\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n    ```objc\n    self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n    ```\n4. Add two methods to the `AppDelegate`'s implementation:\n    ```objc\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n    ```\n5. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n    ```objc\n    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n    ```\n6. That's it! All in all, your `AppDelegate.m` should look similar to:\n    <details>\n        <summary>Click to expand</summary>\n        <p>\n\n    ```objc\n    #import \"AppDelegate.h\"\n\n    #import <React/RCTBundleURLProvider.h>\n    #import <React/RCTRootView.h>\n\n    #import <EXCore/EXModuleRegistry.h>\n    #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n    #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n    @interface AppDelegate () <RCTBridgeDelegate>\n\n    @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n    @end\n\n    @implementation AppDelegate\n\n    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n    {\n        self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n        RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n        RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n        rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n        UIViewController *rootViewController = [UIViewController new];\n        rootViewController.view = rootView;\n        self.window.rootViewController = rootViewController;\n        [self.window makeKeyAndVisible];\n        return YES;\n    }\n\n    - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n    {\n        NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n        // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n        return extraModules;\n    }\n\n    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n        return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n    }\n\n    @end\n    ```\n\n    </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n    ```java\n    import expo.adapters.react.ModuleRegistryAdapter;\n    import expo.adapters.react.ReactAdapterPackage;\n    import expo.adapters.react.ReactModuleRegistryProvider;\n    import expo.core.interfaces.Package;\n    ```\n3. Create an instance variable on the `Application`:\n    ```java\n    private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(Arrays.<Package>asList(\n        new ReactAdapterPackage()\n        // more packages, like\n        // new CameraPackage(), if you use expo-camera\n        // etc.\n    ));\n    ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo(\"file:///...\");\n```\n\nNote that all the methods return `Promise`s.\n","gitHead":"d56980698034063c398c2ed32e065913ba09a757","scripts":{"test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"sjchmiela","email":"sjchmiela@gmail.com"},"repository":{"url":"https://github.com/expo/expo.git","type":"git"},"description":"The adapter to use Expo universal modules with the React Native bridge","directories":{},"dependencies":{"invariant":"^2.2.4","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~2.0.0-rc.2","expo-image-loader-interface":"~2.0.0-rc.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"expo-core":"~2.0.0-rc.3","babel-preset-expo":"^5.0.0","@types/lodash.omit":"^4.5.4","@types/lodash.pick":"^4.4.4","expo-module-scripts":"^1.0.0"},"peerDependencies":{"react-native":"^0.57.1","expo-font-interface":"~2.0.0-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_2.0.0-rc.3_1546521047362_0.753635425134815","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"expo-react-native-adapter","version":"2.0.0","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@2.0.0","maintainers":[{"name":"barthec","email":"bartlomiejbukowski.b@gmail.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"jakubste","email":"jakub.ste@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","dist":{"shasum":"0a8f74e7f79116b2f28eec79deab236c2ee0611f","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-2.0.0.tgz","fileCount":57,"integrity":"sha512-pRlmqqb9mPr1abgzEGnzeEWa7VI8WWqMWRnU/ySJTcOWRyX63oUobTKX/Bw1HuwGyB6+rVRqEF+IObOeo8va4w==","signatures":[{"sig":"MEQCIDDVuhbsdkyfMScZqQyASW6eIrYbkyaRZcZtPv6Y2azgAiAoHCNIMSKftnCMVPzGcgCa3RwCtq29zVdt/PZv7b+M/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLzk1CRA9TVsSAnZWagAAyAYQAKQYVXLJfk+eBmJbJ4Y2\nSps1lXwR3FDthTIL12qc7tlg4WXX4dwtTlQjFrNoYzw5RT6iOwV7GoaiOxBH\nMTOti3Uipfw2timylMc7iTwhm58TVF6HhKS95tYUEZA2qsM8vNuA6Huwy11v\nZbHFI/lR3DiqAfYoNHVtsC93DeKjhIrH+vP5UxluuvmtsOiKEeLcEgKRSnzZ\nwRzHRnMpbbz2fcIdsJYwUvdy1n48u5QzQGuMSAO7qlBku8IIAXu5RyLMdcRl\nDOxUKV9kbxVbAY34YaB6RbfU/xMTKzqiXkrDTXyx2tNTu+eHFesbFKcpegAz\npmjo3FWBmwXA8Wj2kTwgoi5KowRy1hYoFT8fJJNGbxjvu7HzgHhUMflp7zxG\neS02Z6h/o9DJdt1XabpNlq2vLPUwPSDYjCHcyFAVpvb5RZdsRaIuh/Ub3130\n1VjG/MQuuUVUPiET0DVUkcxYo2p7Cdd3MYZys3lLVQcLzfKKAZV0xr//SjCJ\n1Aw2iMYoJ1Z+v83+GiXgT7lNUOEHKJY/xPiwP9hn71oCTNhiJFhG9WPlgBaD\n+GaOkKIdnaN40zANpMQt//VZIYZgEIBR/wVh3/13S+BC2cQp6GoEZMTBgsf2\nGRWqvCdIjhF4tJoj+mFOLqBhmDjM/mDxRc+NxMq2QYLGfM8HDD/i6Qz90CVt\nnixk\r\n=orWs\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"expo-module-scripts"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"f15abc53c111bd0438cd36dc456c59cfa7c56a58","scripts":{"test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"sjchmiela","email":"sjchmiela@gmail.com"},"repository":{"url":"https://github.com/expo/expo.git","type":"git"},"description":"The adapter to use Expo universal modules with the React Native bridge","directories":{},"dependencies":{"invariant":"^2.2.4","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~2.0.0","expo-image-loader-interface":"~2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"expo-core":"~2.0.0","babel-preset-expo":"^5.0.0","@types/lodash.omit":"^4.5.4","@types/lodash.pick":"^4.4.4","expo-module-scripts":"^1.0.0"},"peerDependencies":{"react-native":"^0.57.1","expo-font-interface":"~2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_2.0.0_1546598708963_0.15343445666290179","host":"s3://npm-registry-packages"}},"2.1.0-alpha.0":{"name":"expo-react-native-adapter","version":"2.1.0-alpha.0","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@2.1.0-alpha.0","maintainers":[{"name":"barthec","email":"bartlomiejbukowski.b@gmail.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"janicduplessis","email":"janicduplessis@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},{"name":"wkozyra","email":"wojciech.kozyra@swmansion.com"}],"homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","bugs":{"url":"https://github.com/expo/expo/issues"},"dist":{"shasum":"48bd929d00f9d91ca8fc460ee572750092a55a20","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-2.1.0-alpha.0.tgz","fileCount":64,"integrity":"sha512-/zHfaxoeU1Pht8jvgAWiyBpMSzp0bmGUamYE5Y7UN2hF722F3cZvbvuqS619Xi2gPgqT/AiHj1x7rQF58LO6Ig==","signatures":[{"sig":"MEUCIQC1hDc9dGIMr5Ls+0CL35+bnP5k4t5A+J/x+olnErvpzwIgJCJHFAvIUyjHvmSaP8lErjuDvcAHebQjLV3c+PfyXzo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":127529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbEzcCRA9TVsSAnZWagAA2YUQAIAWW3ho3GOTToFA+XrP\nE4T8IksNovOmd/R2FJR+iITRDOGl4jyXIsEiqtQG0UTrMxIXZklwCwdZV0YL\ncooOK8/xu47plWP/eBjlqfaJuzMoopWiQ5gyU7FRwxz0WjF2rwK9T5VChE9l\nm+1AUxLlOVeYYc3oFwbxo8s2SoRlRO5BF9eDZL/KClsGvLiiH9azWpUIHJdw\n+vREVvRFN+r/tWH4qgE2cct27IfMH55evF/6Y84szxINbu4XMfxkMC+Bq6W3\nOiCrH2kZY7kyQkHT4vBLKduoX9n4ksowohkw9Oir2XRzqJO7StMI9aKlV25u\nVJpMOpE6JLZcaEZkA/a6/tA2FguwNrPv2jyrmhKWET+01NRcorPe/tBGuryK\nc2MjbJ2155x4su0/eeGvLeEFvb/woMD036YJz6Ata/+NExmZODTYS8STXa88\nkXPtZNb/U1nhmqpnLUCR54onZjP7dkwdHBJnSKKZFXk5z0KFG8VRi+pcIoOw\nQzSfb9hCIh4YSCRnEtj93QOjXJ/pp91YvB+xP58hEe+pTCMHOZPvl6g5cPzW\nh0pd/tOPn3CdYC794Ku6EAO56+NPJlcBgpwdzMAZT60mCa5fF6LgWcV2B/Nm\nnQSV+gJ48jyTwe759eUBivPjnuHoeYX5NQECN1XzO20jKufQ/t96N8/bRx4E\nlDyk\r\n=lutM\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"expo-module-scripts"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"f15abc53c111bd0438cd36dc456c59cfa7c56a58","scripts":{"test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"brentvatne","email":"brentvatne@gmail.com"},"repository":{"url":"git+https://github.com/expo/expo.git","type":"git"},"_npmVersion":"6.4.1","description":"The adapter to use Expo universal modules with the React Native bridge","directories":{},"_nodeVersion":"10.12.0","dependencies":{"invariant":"^2.2.4","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~2.0.0","expo-image-loader-interface":"~2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"expo-core":"~2.0.0","babel-preset-expo":"^5.0.0","@types/lodash.omit":"^4.5.4","@types/lodash.pick":"^4.4.4","expo-module-scripts":"^1.0.0"},"peerDependencies":{"react-native":"^0.57.1","expo-font-interface":"~2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_2.1.0-alpha.0_1550601435853_0.496916651377699","host":"s3://npm-registry-packages"}},"2.1.0-alpha.1":{"name":"expo-react-native-adapter","version":"2.1.0-alpha.1","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@2.1.0-alpha.1","maintainers":[{"name":"barthec","email":"bartlomiejbukowski.b@gmail.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"janicduplessis","email":"janicduplessis@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},{"name":"wkozyra","email":"wojciech.kozyra@swmansion.com"}],"homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","bugs":{"url":"https://github.com/expo/expo/issues"},"dist":{"shasum":"5907b2473c6028217efce3d21c94e2fd857b2f87","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-2.1.0-alpha.1.tgz","fileCount":64,"integrity":"sha512-PTBVAmkb9Z8AT+vKhHfI7Lqdf82aRTOvwLYTJ+Qvdjprez5imVWl7zXWYiZtxbQrQsXmjNWJuOT3BLZvbfDjxg==","signatures":[{"sig":"MEYCIQCTEKowEZwIKDSigelqEic++u764h2zWm345ndRMrkebAIhAL3JdEKf/5fbhUU/VJhdaIqZs+4znaOCwoOJw1tRGE2P","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":127716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbIuaCRA9TVsSAnZWagAAVtIP/3mJlu/O3djkcKQOcMqt\nevvTEcNLegp6Cge7QKL4zd73Vdt/wtLMbvUhgtIGOiM1YeRnVwM4J9j1VKJG\nnzQeVBRcOREEriBFrM+R5Kn/6Eg/jBvqaIb29uXGlvBNdWMBTy07DvHAhTpc\nvZ6mO7eWD+HEvTKWWmyqqLsjmWt1JnvoMR93gG0+rJ/y6OvZY9JdBBXyBJ+Z\nkx7oXdBsufGDZEEGBJecZOxr+r3cJ5U/H2g7EIecsP6J3tN5Jm/rU6WvfD2k\nRGygk7QVXsDzvfhfypvgJFAjon+axEzpZE2H3pt2zpoYTEUVuCeSKLyyX3GZ\n7/xTGtble8Ol8ph0dmGSJJCC2b7EK4PmzK19wu+qh4Cgyo4q0JE5c9S4rJs9\n8bed+/13O9Dg9OX5oNEKequirKJ7Ec+6sHWApuUdqI8iPaZrVeopKariN0qC\nxDAJEoOuuLLTG34teX1Vb7uQfpQCuh0dKqwV/sflEA7IJx29zGENx8avQexS\n7B1ztbSrNaPjqWiuxkAaD99W7RxeB0BaK7eFLnw3yFtXDTnGaCSNdlc1Cc5p\nmtdHqO5MPBWIqYYLFp4ijeFkFWPPnLOPK4gpfInXo6mOTUmBQBbz17OEqQKb\notdANaAgIQiZYSZsqRpZAIkcEPNZc8CNhpm9rDFgAm2fAPGomtY3AX6UofpY\nxJzc\r\n=Zfqq\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"expo-module-scripts"},"main":"build/index.js","types":"build/index.d.ts","readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n\n   ```objc\n   @interface AppDelegate () <RCTBridgeDelegate>\n\n   // add this line\n   @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n   @end\n   ```\n\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n   ```objc\n   self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n   ```\n6. Add two methods to the `AppDelegate`'s implementation:\n\n   ```objc\n   - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n   {\n       NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n       // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n       return extraModules;\n   }\n\n   - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n       return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n   }\n   ```\n\n7. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n   ```objc\n   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n   ```\n8. That's it! All in all, your `AppDelegate.m` should look similar to:\n\n   <details>\n       <summary>Click to expand</summary>\n       <p>\n\n   ```objc\n   #import \"AppDelegate.h\"\n\n   #import <React/RCTBundleURLProvider.h>\n   #import <React/RCTRootView.h>\n\n   #import <EXCore/EXModuleRegistry.h>\n   #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n   #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n   @interface AppDelegate () <RCTBridgeDelegate>\n\n   @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n   @end\n\n   @implementation AppDelegate\n\n   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n   {\n       self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n       RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n       RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n       rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n       self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n       UIViewController *rootViewController = [UIViewController new];\n       rootViewController.view = rootView;\n       self.window.rootViewController = rootViewController;\n       [self.window makeKeyAndVisible];\n       return YES;\n   }\n\n   - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n   {\n       NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n       // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n       return extraModules;\n   }\n\n   - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n       return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n   }\n\n   @end\n   ```\n\n   </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n   ```java\n   import expo.adapters.react.ModuleRegistryAdapter;\n   import expo.adapters.react.ReactAdapterPackage;\n   import expo.adapters.react.ReactModuleRegistryProvider;\n   import expo.core.interfaces.Package;\n   ```\n3. Create an instance variable on the `Application`:\n   ```java\n   private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(Arrays.<Package>asList(\n       new ReactAdapterPackage()\n       // more packages, like\n       // new CameraPackage(), if you use expo-camera\n       // etc.\n   ));\n   ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo('file:///...');\n```\n\nNote that all the methods return `Promise`s.\n\n### Synthetic Platform Events\n\nWhen creating web universal modules, you may find that you need to send events back to the API layer.\nIn this case you will want to use the shared `SyntheticPlatformEmitter` instance from `expo-core`. The shared emitter emit events to `react-native`'s `NativeEventEmitter` and `expo-core`'s `EventEmitter` .\n\n`ExponentGyroscope.web.ts`\n\n```js\n// Example from expo-sensors native web gyroscope sensor\n\nimport { SyntheticPlatformEmitter } from 'expo-core';\n\nSyntheticPlatformEmitter.emit('gyroscopeDidUpdate', { x, y, z });\n```\n\nThis emitted event is then received with a `EventEmitter` in the developer-facing API.\n\n```js\nimport { EventEmitter } from 'expo-core';\n\nimport ExponentGyroscope from './ExponentGyroscope';\n\nconst nativeEmitter = new EventEmitter(ExponentGyroscope);\n\n// On Android and iOS, `nativeEmitter` receives events sent from Objective-C and Java. On web, it\n// receives events from the shared `SyntheticPlatformEmitter` instance.\nnativeEmitter.addListener('gyroscopeDidUpdate', ({ x, y, z }) => {});\n```\n","gitHead":"f15abc53c111bd0438cd36dc456c59cfa7c56a58","scripts":{"test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"brentvatne","email":"brentvatne@gmail.com"},"repository":{"url":"git+https://github.com/expo/expo.git","type":"git"},"_npmVersion":"6.4.1","description":"The adapter to use Expo universal modules with the React Native bridge","directories":{},"_nodeVersion":"10.12.0","dependencies":{"invariant":"^2.2.4","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","expo-permissions-interface":"~2.0.0","expo-image-loader-interface":"~2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"expo-core":"~2.0.0","babel-preset-expo":"^5.0.0","@types/lodash.omit":"^4.5.4","@types/lodash.pick":"^4.4.4","expo-module-scripts":"^1.0.0"},"peerDependencies":{"react-native":"^0.57.1","expo-font-interface":"~2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_2.1.0-alpha.1_1550617497830_0.33009456585137875","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"expo-react-native-adapter","version":"3.0.0","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@3.0.0","maintainers":[{"name":"barthec","email":"bartlomiejbukowski.b@gmail.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"janicduplessis","email":"janicduplessis@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},{"name":"wkozyra","email":"wojciech.kozyra@swmansion.com"}],"homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","bugs":{"url":"https://github.com/expo/expo/issues"},"dist":{"shasum":"926f2d798dbf8df52c77035e9b0bf56af8a7576d","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-3.0.0.tgz","fileCount":64,"integrity":"sha512-qpGr+6/SJ6qY8xwZy3dfn4v+XZp2svnCcAsgy3W9OkckKYiI/rMH2Ix7oo7iicbIfUJpWWPIUdr34jc5Qjp8SQ==","signatures":[{"sig":"MEYCIQCP1GM5TII9XySzcy1JmVTVvuEyQ2MhjPFLX6gRcmviywIhAOQqATNSPnuv1mMWWJdAgjnm6KiBqlgntbjUnNz+oDAs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdvuECRA9TVsSAnZWagAArdQP/1zgNG1+4RUYWk4V/Sxc\n5f36m2S6wbViisFsI/hxqJ2449297I7ZXZzS1uvVNpSmSH6sprr7HgUggaYy\nDShtLYsnliNPPZehzD5vNy55tvuTB6foLX+HJaGARivrozPMeHmClmdDauZu\nQx8IrEfdop5izIWX2evZQSzleA4mY7zVVH1VCvYWaY41rPIXhIOSb/QqMTOj\ngYQXgNF8V5GZ6bce9klE9BC2OEKtCQiTlJ42W6fS2UHSn68mCmWA1HegPoMm\npCGBrAWRUqYeLGlpzXvQABqSeOidG9NHHEuvUrJxfx4m8niWT0wZD5czqL4J\n+4RftYijF3xRIfxgu2xYLalO3X+aXUSqBdjv+Qd6GzyQFOBWj46zd7X8Ovia\nZVZpgKRKhb79xdyFdICFDfilXaPNUltpVgG1hlQ9XvHURWVe3TIfW9w2bALU\n6xpojVCg80uqqZEXss84WQe9ZazsS+5Me61Kyzh1wcdRyrbYAuGlSbfRWMUP\n+QPM9nmQj/V1OLki15OY9mAhKcQ4eu9qDGD17PoCenpMDbqVDGmF3x2DpmOk\nDD+X/4B1nPCjPxWlRFJ0Z3KUxgpFtVr7q0WWFXoRU2OjX73TMMTNn008wcAe\nD54ePTHJXxBOyOj/Hc0lF1eIFifJQVCquyZEhX83JnvqRl58W+tsV6bW0aln\nS1nU\r\n=JC6J\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"expo-module-scripts"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"d87c47ba13c7dde7a5d120caf873c98258a42710","scripts":{"test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"brentvatne","email":"brentvatne@gmail.com"},"repository":{"url":"https://github.com/expo/expo.git","type":"git"},"description":"The adapter to use Expo universal modules with the React Native bridge","directories":{},"dependencies":{"invariant":"^2.2.4","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"expo-core":"~3.0.0","babel-preset-expo":"^5.0.0","@types/lodash.omit":"^4.5.4","@types/lodash.pick":"^4.4.4","expo-module-scripts":"^1.0.0"},"peerDependencies":{"react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_3.0.0_1551301507369_0.9465180635609709","host":"s3://npm-registry-packages"},"unimodulePeerDependencies":{"expo-core":"~3.0.0","expo-font-interface":"*","expo-permissions-interface":"*","expo-image-loader-interface":"*"}},"3.0.1":{"name":"expo-react-native-adapter","version":"3.0.1","keywords":["react-native","expo","adapter"],"author":{"name":"650 Industries, Inc."},"license":"MIT","_id":"expo-react-native-adapter@3.0.1","maintainers":[{"name":"barthec","email":"bartlomiejbukowski.b@gmail.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"dsokal","email":"dominiksokal@gmail.com"},{"name":"esamelson","email":"eric@expo.io"},{"name":"evanbacon","email":"baconbrix@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"fson","email":"ville.immonen@iki.fi"},{"name":"ide","email":"ide+npm@jameside.com"},{"name":"janicduplessis","email":"janicduplessis@gmail.com"},{"name":"jesseruder","email":"jesseruder@gmail.com"},{"name":"nikki93","email":"s.nikhilesh@gmail.com"},{"name":"quinlanj","email":"quinlanjung@gmail.com"},{"name":"sjchmiela","email":"sjchmiela@gmail.com"},{"name":"terribleben","email":"ben@exp.host"},{"name":"tsapeta","email":"sapeta.tomasz@gmail.com"},{"name":"wkozyra","email":"wojciech.kozyra@swmansion.com"}],"homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","bugs":{"url":"https://github.com/expo/expo/issues"},"dist":{"shasum":"6ff8c49610b4c6f43385060287910d5349a2e16e","tarball":"https://registry.npmjs.org/expo-react-native-adapter/-/expo-react-native-adapter-3.0.1.tgz","fileCount":64,"integrity":"sha512-QieqynpLzbYAaR8pEc3k6WsvD7xN9/hCgcYOwLihiwg43FX/yOJaIISIY9LqnT2AD9wkDKbMhz1We0KPezxtCg==","signatures":[{"sig":"MEYCIQC/gRrdXaCinlKTrnys8StTxsU8NEe7/yMB+FueVkv3/gIhAPKmMW8FnYEdGdv5hiL63vAzsBsPRV8GTMVpqCuhohgv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":127780,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdv1xCRA9TVsSAnZWagAAPvkP/1wN7puoGhJPZQDYQZvd\nKZm/xTUKyQBoCJRfncG9qYNkZuV/Mka1EzGtddn8tgoUPDM1Wb/73rL9cGDA\nSZNiX+2l+rTFGDO+PhYKBP5pubGWulw+C8XuvbG0bUQFGYOEyfKvmTp0swdg\nneswgM4zyKpWWy/8Bzf1rjtFpBAzSN2KY+CHwtVXA8jkVsPdQV3tFFMzA7xI\nhRunes0uddv5nRwHTuvO6CFonETN5PXyHTvc14TsSHaEzomJcRbWqRpUVA7W\nv8luMtCLrfB/daNd0a6ZqbGwfnjkR6rui+8upmRBdfx12Ag9oUyeETRBs1Op\nbMZyOpSnIjqse6Cc17bCc2LbflqhwC8WVNZC7XWdFxnH04FBMppM/lb/fXmB\nDsOwPlFcw8gWqZfVRof8u6lhCesqC5Y2c4vldt2FazD9uivkI6SWy63MDddU\ntHvhqs6kSqUGGV7PwXEqDooXV+/ULqfzwrL+STWI1rnC7aFIGfuuqIPoIbUD\n/mlrS9uPa5ecXqc9pugclyG06/6Z4BOpV9CuyjKX/Df+EbKjhG0pbOmCGuDb\nP3rKSnok0TiEaOR97Cs9PIZsGqEEldz9m2m7JYDbK4iLj91+P7Ee+KF1s47h\nJ48TlbjKj9v/YqcqicNnUtmox0WvoYAVKNhZxWhT+8/0ZSbPLfoiqtg+mE4u\nx1XJ\r\n=ag4d\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"expo-module-scripts"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"d87c47ba13c7dde7a5d120caf873c98258a42710","scripts":{"test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"brentvatne","email":"brentvatne@gmail.com"},"repository":{"url":"git+https://github.com/expo/expo.git","type":"git"},"_npmVersion":"6.4.1","description":"The adapter to use Expo universal modules with the React Native bridge","directories":{},"_nodeVersion":"10.12.0","dependencies":{"invariant":"^2.2.4","prop-types":"^15.6.1","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"expo-core":"~3.0.0","babel-preset-expo":"^5.0.0","@types/lodash.omit":"^4.5.4","@types/lodash.pick":"^4.4.4","expo-module-scripts":"^1.0.0"},"peerDependencies":{"react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-react-native-adapter_3.0.1_1551302000532_0.9337753022309809","host":"s3://npm-registry-packages"},"unimodulePeerDependencies":{"expo-core":"~3.0.0","expo-font-interface":"*","expo-permissions-interface":"*","expo-image-loader-interface":"*"}}},"time":{"created":"2018-07-06T22:00:46.244Z","modified":"2026-07-30T01:29:47.342Z","0.0.1":"2018-07-06T22:00:46.368Z","1.0.0-rc.0":"2018-07-12T22:04:21.541Z","1.0.0-rc.1":"2018-07-17T19:48:22.970Z","1.0.0-rc.2":"2018-07-17T20:17:19.317Z","1.0.0-rc.3":"2018-07-18T18:23:14.633Z","1.0.0":"2018-07-27T00:33:24.001Z","1.0.1":"2018-08-14T08:19:23.247Z","1.1.0-rc.0":"2018-08-31T14:27:39.415Z","1.1.0-rc.1":"2018-09-07T16:17:11.157Z","1.1.0":"2018-09-11T12:38:37.932Z","1.1.1":"2018-09-13T14:22:47.035Z","1.2.0-rc.0":"2018-10-26T17:40:26.104Z","1.2.0-rc.1":"2018-10-30T14:55:13.722Z","1.2.0":"2018-10-31T20:08:10.477Z","1.0.2":"2018-11-05T15:23:17.605Z","2.0.0-rc.0":"2018-12-19T16:10:10.348Z","2.0.0-rc.1":"2018-12-20T14:28:50.866Z","2.0.0-rc.2":"2018-12-20T19:46:06.546Z","2.0.0-rc.3":"2019-01-03T13:10:47.543Z","2.0.0":"2019-01-04T10:45:09.129Z","2.1.0-alpha.0":"2019-02-19T18:37:16.206Z","2.1.0-alpha.1":"2019-02-19T23:04:58.028Z","3.0.0":"2019-02-27T21:05:07.517Z","3.0.1":"2019-02-27T21:13:20.705Z"},"bugs":{"url":"https://github.com/expo/expo/issues"},"author":{"name":"650 Industries, Inc."},"license":"MIT","homepage":"https://github.com/expo/expo/tree/master/packages/expo-react-native-adapter","keywords":["react-native","expo","adapter"],"repository":{"url":"git+https://github.com/expo/expo.git","type":"git"},"description":"The adapter to use Expo universal modules with the React Native bridge","maintainers":[{"email":"ide+npm@jameside.com","name":"ide"},{"email":"brentvatne@gmail.com","name":"brentvatne"},{"email":"exponent.team@gmail.com","name":"exponent"},{"email":"npm@tsapeta.com","name":"tsapeta"},{"email":"support@expo.io","name":"expoadmin"}],"readme":"# expo-react-native-adapter\n\nA React Native adapter for Expo Universal Modules. It requires [`expo-core`](https://github.com/expo/expo-core) to be installed and linked.\n\n**Note:** The following installation/setup instructions are only applicable to plain React Native applications, i. e. if your project is a detached Expo project and it has ExpoKit/expoview included, the installation has already been done for you.\n\n## JavaScript installation\n\n```sh\n$ yarn add expo-react-native-adapter\n\n# or\n\n$ npm install expo-react-native-adapter --save\n```\n\n## Installation\n\n### iOS (Cocoapods)\n\nIf you're using Cocoapods, add the dependency to your `Podfile`:\n\n`pod 'EXReactNativeAdapter', path: '../node_modules/expo-react-native-adapter/ios', inhibit_warnings: true`\n\nand run `pod install`.\n\n### Android\n\n1.  Append the following lines to `android/settings.gradle`:\n    ```gradle\n    include ':expo-react-native-adapter'\n    project(':expo-react-native-adapter').projectDir = new File(rootProject.projectDir, '../node_modules/expo-react-native-adapter/android')\n    ```\n2.  Insert the following lines inside the dependencies block in `android/app/build.gradle`:\n    ```gradle\n    compile project(':expo-react-native-adapter')\n    ```\n\n## Additional required setup\n\n#### iOS\n\n1. Open the `AppDelegate.m` of your application.\n2. Import `<EXCore/EXModuleRegistry.h>`, `<EXReactNativeAdapter/EXNativeModulesProxy.h>` and `<EXReactNativeAdapter/EXModuleRegistryAdapter.h>`.\n3. Make `AppDelegate` implement `RCTBridgeDelegate` protocol (`@interface AppDelegate () <RCTBridgeDelegate>`).\n4. Add a new instance variable to your `AppDelegate`:\n\n   ```objc\n   @interface AppDelegate () <RCTBridgeDelegate>\n\n   // add this line\n   @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n   @end\n   ```\n\n5. In `-application:didFinishLaunchingWithOptions:` add the following at the top of the implementation:\n   ```objc\n   self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n   ```\n6. Add two methods to the `AppDelegate`'s implementation:\n\n   ```objc\n   - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n   {\n       NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n       // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n       return extraModules;\n   }\n\n   - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n       return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n   }\n   ```\n\n7. When initializing `RCTBridge`, make the `AppDelegate` a delegate of the bridge:\n   ```objc\n   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n   ```\n8. That's it! All in all, your `AppDelegate.m` should look similar to:\n\n   <details>\n       <summary>Click to expand</summary>\n       <p>\n\n   ```objc\n   #import \"AppDelegate.h\"\n\n   #import <React/RCTBundleURLProvider.h>\n   #import <React/RCTRootView.h>\n\n   #import <EXCore/EXModuleRegistry.h>\n   #import <EXReactNativeAdapter/EXNativeModulesProxy.h>\n   #import <EXReactNativeAdapter/EXModuleRegistryAdapter.h>\n\n   @interface AppDelegate () <RCTBridgeDelegate>\n\n   @property (nonatomic, strong) EXModuleRegistryAdapter *moduleRegistryAdapter;\n\n   @end\n\n   @implementation AppDelegate\n\n   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n   {\n       self.moduleRegistryAdapter = [[EXModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[EXModuleRegistryProvider alloc] init]];\n       RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];\n       RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@\"YOUR_MODULE_NAME\" initialProperties:nil];\n       rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];\n\n       self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n       UIViewController *rootViewController = [UIViewController new];\n       rootViewController.view = rootView;\n       self.window.rootViewController = rootViewController;\n       [self.window makeKeyAndVisible];\n       return YES;\n   }\n\n   - (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge\n   {\n       NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge andExperience:nil];\n       // If you'd like to export some custom RCTBridgeModules that are not Expo modules, add them here!\n       return extraModules;\n   }\n\n   - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {\n       return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\" fallbackResource:nil];\n   }\n\n   @end\n   ```\n\n   </details>\n\n#### Android\n\n1. Open the `MainApplication.java` of your application.\n2. Add to the imports:\n   ```java\n   import expo.adapters.react.ModuleRegistryAdapter;\n   import expo.adapters.react.ReactAdapterPackage;\n   import expo.adapters.react.ReactModuleRegistryProvider;\n   import expo.core.interfaces.Package;\n   ```\n3. Create an instance variable on the `Application`:\n   ```java\n   private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(Arrays.<Package>asList(\n       new ReactAdapterPackage()\n       // more packages, like\n       // new CameraPackage(), if you use expo-camera\n       // etc.\n   ), /* singletonModules */ null);\n   ```\n4. Add `new ModuleRegistryAdapter(mModuleRegistryProvider)` to the list returned by `protected List<ReactPackage> getPackages()`.\n5. You're good to go!\n\n## Usage\n\n### Calling methods on native modules\n\nNative modules are available behind the proxy (`NativeModulesProxy` of `expo-core`).\n\nTo call an exported method, use `NativeModulesProxy[clientCodeName].exportedMethod(...arguments)`, like this:\n\n```js\n// For EX_REGISTER_MODULE(FileSystem,) or EX_REGISTER_EXPORTED_MODULE(FileSystem)\n// and EX_EXPORT_METHOD_AS(getInfo, getInfo:(NSString *)path)\n\n// or for method\n// @ExpoMethod\n// public void getInfo(String path, Promise promise)\n// defined in native module with name FileSystem\n\nimport { NativeModulesProxy } from 'expo-core';\n\nconst { FileSystem } = NativeModulesProxy;\n\nFileSystem.getInfo('file:///...');\n```\n\nNote that all the methods return `Promise`s.\n\n### Synthetic Platform Events\n\nWhen creating web universal modules, you may find that you need to send events back to the API layer.\nIn this case you will want to use the shared `SyntheticPlatformEmitter` instance from `expo-core`. The shared emitter emit events to `react-native`'s `NativeEventEmitter` and `expo-core`'s `EventEmitter` .\n\n`ExponentGyroscope.web.ts`\n\n```js\n// Example from expo-sensors native web gyroscope sensor\n\nimport { SyntheticPlatformEmitter } from 'expo-core';\n\nSyntheticPlatformEmitter.emit('gyroscopeDidUpdate', { x, y, z });\n```\n\nThis emitted event is then received with a `EventEmitter` in the developer-facing API.\n\n```js\nimport { EventEmitter } from 'expo-core';\n\nimport ExponentGyroscope from './ExponentGyroscope';\n\nconst nativeEmitter = new EventEmitter(ExponentGyroscope);\n\n// On Android and iOS, `nativeEmitter` receives events sent from Objective-C and Java. On web, it\n// receives events from the shared `SyntheticPlatformEmitter` instance.\nnativeEmitter.addListener('gyroscopeDidUpdate', ({ x, y, z }) => {});\n```\n","readmeFilename":"README.md"}