From 2b51a23c35baa442661d84fa466e85f25900ea9a Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Tue, 20 Apr 2021 10:25:08 -0400 Subject: [PATCH] Update dependencies and fix metro bundler --- app/i18n/index.ts | 1 - ios/Podfile.lock | 64 +- metro.config.js | 6 +- package-lock.json | 561 +++++++++--------- package.json | 46 +- ...h => react-native-device-info+8.1.2.patch} | 0 patches/react-native-image-picker+2.3.4.patch | 476 --------------- ...atch => react-native-keychain+7.0.0.patch} | 14 +- 8 files changed, 339 insertions(+), 829 deletions(-) rename patches/{react-native-device-info+8.1.0.patch => react-native-device-info+8.1.2.patch} (100%) delete mode 100644 patches/react-native-image-picker+2.3.4.patch rename patches/{react-native-keychain+6.2.0.patch => react-native-keychain+7.0.0.patch} (86%) diff --git a/app/i18n/index.ts b/app/i18n/index.ts index 125ed5a86..3a1b952a7 100644 --- a/app/i18n/index.ts +++ b/app/i18n/index.ts @@ -1,7 +1,6 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import 'intl'; import moment from 'moment'; import en from '@assets/i18n/en.json'; diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 0fda755e6..8300d375b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -3,10 +3,10 @@ PODS: - BVLinearGradient (2.5.6): - React - DoubleConversion (1.1.6) - - EXConstants (10.1.2): + - EXConstants (10.1.3): - UMConstantsInterface - UMCore - - EXFileSystem (11.0.1): + - EXFileSystem (11.0.2): - UMCore - UMFileSystemInterface - FBLazyVector (0.64.0) @@ -29,9 +29,9 @@ PODS: - libwebp/mux (1.1.0): - libwebp/demux - libwebp/webp (1.1.0) - - Permission-Camera (3.0.1): + - Permission-Camera (3.0.2): - RNPermissions - - Permission-PhotoLibrary (3.0.1): + - Permission-PhotoLibrary (3.0.2): - RNPermissions - RCT-Folly (2020.01.13.00): - boost-for-react-native @@ -239,8 +239,6 @@ PODS: - React-Core - react-native-hw-keyboard-event (0.0.4): - React - - react-native-image-picker (2.3.4): - - React-Core - react-native-netinfo (6.0.0): - React-Core - react-native-notifications (3.4.2): @@ -255,7 +253,7 @@ PODS: - react-native-video/Video (= 5.1.1) - react-native-video/Video (5.1.1): - React-Core - - react-native-webview (11.3.2): + - react-native-webview (11.4.0): - React-Core - React-perflogger (0.64.0) - React-RCTActionSheet (0.64.0): @@ -340,7 +338,7 @@ PODS: - React-Core - RNCMaskedView (0.1.10): - React - - RNDeviceInfo (8.1.0): + - RNDeviceInfo (8.1.2): - React-Core - RNDevMenu (4.0.2): - React-Core @@ -354,11 +352,11 @@ PODS: - React-Core - RNGestureHandler (1.10.3): - React-Core - - RNKeychain (6.2.0): - - React - - RNLocalize (2.0.2): + - RNKeychain (7.0.0): - React-Core - - RNPermissions (3.0.1): + - RNLocalize (2.0.3): + - React-Core + - RNPermissions (3.0.2): - React-Core - RNReactNativeHapticFeedback (1.11.0): - React-Core @@ -394,16 +392,16 @@ PODS: - RNRudderSdk (1.0.0): - React - Rudder - - RNSentry (2.4.0): + - RNSentry (2.4.1): - React-Core - Sentry (= 6.1.4) - - RNShare (5.2.2): + - RNShare (6.0.0): - React-Core - - RNSVG (12.1.1-0): + - RNSVG (12.1.1): - React - RNVectorIcons (8.1.0): - React-Core - - Rudder (1.0.9) + - Rudder (1.0.11) - SDWebImage (5.9.4): - SDWebImage/Core (= 5.9.4) - SDWebImage/Core (5.9.4) @@ -428,7 +426,7 @@ PODS: - UMImageLoaderInterface (6.1.0) - UMPermissionsInterface (6.1.0): - UMCore - - UMReactNativeAdapter (6.2.1): + - UMReactNativeAdapter (6.2.2): - React-Core - UMCore - UMFontInterface @@ -473,7 +471,6 @@ DEPENDENCIES: - react-native-document-picker (from `../node_modules/react-native-document-picker`) - "react-native-emm (from `../node_modules/@mattermost/react-native-emm`)" - react-native-hw-keyboard-event (from `../node_modules/react-native-hw-keyboard-event`) - - react-native-image-picker (from `../node_modules/react-native-image-picker`) - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" - react-native-notifications (from `../node_modules/react-native-notifications`) - "react-native-paste-input (from `../node_modules/@mattermost/react-native-paste-input`)" @@ -598,8 +595,6 @@ EXTERNAL SOURCES: :path: "../node_modules/@mattermost/react-native-emm" react-native-hw-keyboard-event: :path: "../node_modules/react-native-hw-keyboard-event" - react-native-image-picker: - :path: "../node_modules/react-native-image-picker" react-native-netinfo: :path: "../node_modules/@react-native-community/netinfo" react-native-notifications: @@ -713,15 +708,15 @@ SPEC CHECKSUMS: boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872 DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de - EXConstants: 9d38f1a67f2bfcb222bb1d108a7070cf38132891 - EXFileSystem: b3857957f9ca86c8743c6c60cc27fa078ac2992b + EXConstants: c00cd53a17a65b2e53ddb3890e4e74d3418e406e + EXFileSystem: 35769beb727d5341d1276fd222710f9704f7164e FBLazyVector: 49cbe4b43e445b06bf29199b6ad2057649e4c8f5 FBReactNativeSpec: a804c9d6c798f94831713302354003ee54ea18cb glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 jail-monkey: 80c9e34da2cd54023e5ad08bf7051ec75bd43d5b libwebp: 946cb3063cea9236285f7e9a8505d806d30e07f3 - Permission-Camera: 0d2d15352e9c54c3ea8686c8c21fb1a9edf3431b - Permission-PhotoLibrary: e5d0500209f22e2a5b281501cd3744a965747726 + Permission-Camera: 4eb4a67be32698c5927cb12313c3c1f23ee5b7b2 + Permission-PhotoLibrary: 5b198e177c0bc5c91c20e66ae7202d0183c78b87 RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c RCTRequired: 2f8cb5b7533219bf4218a045f92768129cf7050a RCTTypeSafety: 512728b73549e72ad7330b92f3d42936f2a4de5b @@ -739,13 +734,12 @@ SPEC CHECKSUMS: react-native-document-picker: d2b8fa4d9b268a316515b1f631236f7a87813df6 react-native-emm: 480fc1cf19a8f3cd2b7e96d15ae3a238307bd534 react-native-hw-keyboard-event: b517cefb8d5c659a38049c582de85ff43337dc53 - react-native-image-picker: 32d1ad2c0024ca36161ae0d5c2117e2d6c441f11 react-native-netinfo: 34f4d7a42f49157f3b45c14217d256bce7dc9682 react-native-notifications: e914ff49de3b2268cfa1b5e2ad21fd27c36d5b7b react-native-paste-input: 003693cff6fcea476066172e66901beb7ef25670 react-native-safe-area-context: e471852c5ed67eea4b10c5d9d43c1cebae3b231d react-native-video: 1574074179ecaf6a9dd067116c8f31bf9fec15c8 - react-native-webview: aea3233f26253f5c360164ee87d01ef9f7b9a27f + react-native-webview: fdd3c7c2ad173e8ca8c82729ed05f3fda2491a82 React-perflogger: 9c547d8f06b9bf00cb447f2b75e8d7f19b7e02af React-RCTActionSheet: 3080b6e12e0e1a5b313c8c0050699b5c794a1b11 React-RCTAnimation: 3f96f21a497ae7dabf4d2f150ee43f906aaf516f @@ -764,22 +758,22 @@ SPEC CHECKSUMS: RNCAsyncStorage: cb9a623793918c6699586281f0b51cbc38f046f9 RNCClipboard: 5e299c6df8e0c98f3d7416b86ae563d3a9f768a3 RNCMaskedView: f5c7d14d6847b7b44853f7acb6284c1da30a3459 - RNDeviceInfo: 77944ee74f4464aa4672b62e3239e4fa69ab534f + RNDeviceInfo: 4f480456c7ac8c9919448375399c1a6f14479549 RNDevMenu: 9f80d65b80ba1fa84e5361d017b8c854a2f05005 RNFastImage: d4870d58f5936111c56218dbd7fcfc18e65b58ff RNFileViewer: 83cc066ad795b1f986791d03b56fe0ee14b6a69f RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 - RNKeychain: b8e0711b959a19c5b057d1e970d3c83d159b6da5 - RNLocalize: 47e22ef8c36df1d572e42a87c8ae22e3fcf551dd - RNPermissions: eb94f9fdc0a8ecd02fcce0676d56ffb1395d41e1 + RNKeychain: f75b8c8b2f17d3b2aa1f25b4a0ac5b83d947ff8f + RNLocalize: 29e84ea169d3bca6c3b83584536c7f586a07fb98 + RNPermissions: 84ffe5ee7d608e037d9ed1db846ffb1d5d4e1dba RNReactNativeHapticFeedback: 653a8c126a0f5e88ce15ffe280b3ff37e1fbb285 RNReanimated: b8c8004b43446e3c2709fe64b2b41072f87428ad RNRudderSdk: 5d99b1a5a582ab55d6213b38018d35e98818af63 - RNSentry: b0d55027200c96f52e26b9bfb20296d47fc5051d - RNShare: 5cfe16bfd42cd2c4869a7692462181ac8cc15a6d - RNSVG: 1a8855adeb20c5beb0a808281608315fc1092d15 + RNSentry: 824a6a0ec885428163fe6827aa08014f9962f223 + RNShare: 31fa0cedbd06c2744a78e0d2b7ba364778aa3506 + RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4 - Rudder: 90ed801a09c73017184e6fc901370be1754eb182 + Rudder: ef340f877a39653f19e69124dffae12fde3f881b SDWebImage: b69257f4ab14e9b6a2ef53e910fdf914d8f757c1 SDWebImageWebPCoder: d0dac55073088d24b2ac1b191a71a8f8d0adac21 Sentry: 9d055e2de30a77685e86b219acf02e59b82091fc @@ -794,7 +788,7 @@ SPEC CHECKSUMS: UMFontInterface: 81a951117d03f57aa636fba3992adefd0191f200 UMImageLoaderInterface: 5cd09b41630dc8aef7619fabc497c01c0f6b715c UMPermissionsInterface: 4351145563e703c521fe2299e08227bc3584b94a - UMReactNativeAdapter: 7e15ed07bf2d7290e997e5d892e31bd276d4f4f1 + UMReactNativeAdapter: 7b458ca3d4497b5114e6bb766b223432bad22d8a UMSensorsInterface: 50439b47826e716a514cbd7384aebe9ab4fde5f4 UMTaskManagerInterface: 482155764886069beb1bc7fcf6036f12e4ad0751 WatermelonDB: e6706a0fac2221e2be4bdc93ff0e3990231d91bd diff --git a/metro.config.js b/metro.config.js index 79f019b01..ed503210a 100644 --- a/metro.config.js +++ b/metro.config.js @@ -17,7 +17,9 @@ const config = { console.log('BUILDING MODULES FOR', platform); const moduleMap = {}; let modulePaths = []; - if (platform === 'ios') { + if (platform === 'android') { + modulePaths = require('./packager/modules.android'); + } else { modulePaths = require('./packager/modules.ios'); } modulePaths.forEach((path) => { @@ -35,7 +37,7 @@ const config = { preloadedModules: moduleMap, transform: { inlineRequires: { - blacklist: moduleMap, + blockList: moduleMap, }, }, }; diff --git a/package-lock.json b/package-lock.json index fcbb72775..b2c4e22ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@babel/cli": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.14.tgz", - "integrity": "sha512-zmEFV8WBRsW+mPQumO1/4b34QNALBVReaiHJOkxhUsdo/AvYM62c+SKSuLi2aZ42t3ocK6OI0uwUXRvrIbREZw==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.16.tgz", + "integrity": "sha512-cL9tllhqvsQ6r1+d9Invf7nNXg/3BlfL1vvvL/AdH9fZ2l5j0CeBcoq6UjsqHpvyN1v5nXSZgqJZoGeK+ZOAbw==", "dev": true, "requires": { "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", @@ -16,7 +16,6 @@ "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.1.0", "glob": "^7.0.0", - "lodash": "^4.17.19", "make-dir": "^2.1.0", "slash": "^2.0.0", "source-map": "^0.5.0" @@ -44,19 +43,19 @@ "integrity": "sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==" }, "@babel/core": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.15.tgz", - "integrity": "sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz", + "integrity": "sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.9", - "@babel/helper-compilation-targets": "^7.13.13", + "@babel/generator": "^7.13.16", + "@babel/helper-compilation-targets": "^7.13.16", "@babel/helper-module-transforms": "^7.13.14", - "@babel/helpers": "^7.13.10", - "@babel/parser": "^7.13.15", + "@babel/helpers": "^7.13.16", + "@babel/parser": "^7.13.16", "@babel/template": "^7.12.13", "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.14", + "@babel/types": "^7.13.16", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -79,21 +78,21 @@ "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==" }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.16.tgz", + "integrity": "sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg==", "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.13.16", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-compilation-targets": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", - "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", + "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", "requires": { - "@babel/compat-data": "^7.13.12", + "@babel/compat-data": "^7.13.15", "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" @@ -180,6 +179,16 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" }, + "@babel/helpers": { + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.16.tgz", + "integrity": "sha512-x5otxUaLpdWHl02P4L94wBU+2BJXBkvO+6d6uzQ+xD9/h2hTSAwA5O8QV8GqKx/l8i+VYmKKQg9e2QGTa2Wu3Q==", + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.16" + } + }, "@babel/highlight": { "version": "7.13.10", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", @@ -191,9 +200,9 @@ } }, "@babel/parser": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", - "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==" + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.16.tgz", + "integrity": "sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==" }, "@babel/template": { "version": "7.12.13", @@ -221,12 +230,11 @@ } }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.16.tgz", + "integrity": "sha512-7enM8Wxhrl1hB1+k6+xO6RmxpNkaveRWkdpyii8DkrLWRgr0l3x29/SEuhTIkP+ynHsU/Hpjn8Evd/axv/ll6Q==", "requires": { "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -2938,9 +2946,9 @@ } }, "@babel/runtime": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", - "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.16.tgz", + "integrity": "sha512-7VsWJsI5USRhBLE/3of+VU2DDNWtYHQlq2IHu2iL15+Yx4qVqP8KllR6JMHQlTKWRyDk9Tw6unkqSusaHXt//A==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -3214,17 +3222,17 @@ } }, "@expo/config": { - "version": "3.3.35", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-3.3.35.tgz", - "integrity": "sha512-0jYSYBCge8s9TqvUbky64lWvpdAHKB9V+e4OrKOmxF8MILmBq2fYHiHkywn5VU7OaWiJQJixhrNUEBHWLJm4ig==", + "version": "3.3.37", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-3.3.37.tgz", + "integrity": "sha512-RJrGwjEWGvRVo9zZ4T0q/5bwW6ewf2FsIS5Cj79IOS9AFu1LNJpUuI6PdJ6VX6O4xR3BDxCtL713rWgihQfbmg==", "requires": { "@babel/core": "7.9.0", "@babel/plugin-proposal-class-properties": "~7.12.13", "@babel/preset-env": "~7.12.13", "@babel/preset-typescript": "~7.12.13", - "@expo/config-plugins": "1.0.25", + "@expo/config-plugins": "1.0.27", "@expo/config-types": "^40.0.0-beta.2", - "@expo/json-file": "8.2.28", + "@expo/json-file": "8.2.29", "fs-extra": "9.0.0", "getenv": "^1.0.0", "glob": "7.1.6", @@ -3273,12 +3281,11 @@ }, "dependencies": { "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.16.tgz", + "integrity": "sha512-7enM8Wxhrl1hB1+k6+xO6RmxpNkaveRWkdpyii8DkrLWRgr0l3x29/SEuhTIkP+ynHsU/Hpjn8Evd/axv/ll6Q==", "requires": { "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } } @@ -3413,12 +3420,11 @@ }, "dependencies": { "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.16.tgz", + "integrity": "sha512-7enM8Wxhrl1hB1+k6+xO6RmxpNkaveRWkdpyii8DkrLWRgr0l3x29/SEuhTIkP+ynHsU/Hpjn8Evd/axv/ll6Q==", "requires": { "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -3484,14 +3490,14 @@ } }, "@expo/config-plugins": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.25.tgz", - "integrity": "sha512-iRoBWnkMsGxrSxfXUXWpVfxpGjTUipI60+w9vO/QdXH02wFrS4k/jcZ4OSlPJMxpU/Lv5kgvgjvcJ22/SJpRow==", + "version": "1.0.27", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.27.tgz", + "integrity": "sha512-rdLykx/RgcfYmJEZ23+d1wH6RxifMsPh+q8TSzsBb3yXQPU/oCz14/RFLgNojWvKTAjTo9kNu5erIVlwDIJHxQ==", "requires": { "@expo/config-types": "^40.0.0-beta.2", "@expo/configure-splash-screen": "0.3.4", - "@expo/image-utils": "0.3.12", - "@expo/json-file": "8.2.28", + "@expo/image-utils": "0.3.13", + "@expo/json-file": "8.2.29", "@expo/plist": "0.0.12", "find-up": "~5.0.0", "fs-extra": "9.0.0", @@ -3669,9 +3675,9 @@ } }, "@expo/image-utils": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.12.tgz", - "integrity": "sha512-QMMAjyCJUFXI8b6AOrVC40gubkt++qYfRJdKgbegf9JHQNul/O4Q1ENWTgid+PH0EUqlMLbv6kJ6ai0ZjO08kw==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.13.tgz", + "integrity": "sha512-BpKoFVJBjG9H5AU040Skrm3R2uDGpWXBU/4TivB5H10cyJphoJKp3GNJVPHYLOVc70OtAxjWDIhLMW6xsWfrgw==", "requires": { "@expo/spawn-async": "1.5.0", "chalk": "^4.0.0", @@ -3779,9 +3785,9 @@ } }, "@expo/json-file": { - "version": "8.2.28", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.28.tgz", - "integrity": "sha512-C28McDuCIOmCmp6e2ZgIpNaT/fZG+L3/WFv5x2DCrooOQmamrkLSH/4Dib0NUmLgWVhgIhXL2hU4RB+LjzVvkQ==", + "version": "8.2.29", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.29.tgz", + "integrity": "sha512-9C8XwpJiJN9fyClnnNDSTh034zJU9hon6MCUqbBa4dZYQN7OZ00KFZEpbtjy+FndE7YD+KagDxRD6O1HS5vU0g==", "requires": { "@babel/code-frame": "~7.10.4", "fs-extra": "9.0.0", @@ -6164,13 +6170,6 @@ "rambdax": "2.15.0", "rxjs": "^6.5.3", "sql-escape-string": "^1.1.0" - }, - "dependencies": { - "lokijs": { - "version": "npm:@nozbe/lokijs@1.5.12-wmelon", - "resolved": "https://registry.npmjs.org/@nozbe/lokijs/-/lokijs-1.5.12-wmelon.tgz", - "integrity": "sha512-7xQUn80pzPBB9VcwvB/W2V9/60xIfuk+3IDIvS9cU7W29jJx4QBXe5dBWTaARmxD9hXozPCcPWh2wfd7m4dbTA==" - } } }, "@nozbe/with-observables": { @@ -6658,9 +6657,9 @@ } }, "@sentry/cli": { - "version": "1.63.2", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.63.2.tgz", - "integrity": "sha512-oG1Cg85BI/sc7MjgmShmCp0feB+LDi7XZKpiUggrOUVUgcWy4o+hkmESAwNCJsIXg0mW8TTCjmRFU8b836c+Mw==", + "version": "1.64.0", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.64.0.tgz", + "integrity": "sha512-MHWHiYVBJaE0y/JVSziZIclBYhINiI4VsJ10r7rcJYAwDah3JYBPMrv0iwmuxBVWRFMSuAmSpivkzn67JS6sPg==", "requires": { "https-proxy-agent": "^5.0.0", "mkdirp": "^0.5.5", @@ -6727,9 +6726,9 @@ } }, "@sentry/react-native": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-2.4.0.tgz", - "integrity": "sha512-yRUN36tKRSsGEtNHihEzl0KqGh7pmWfNV0h3jf5Q1VKXNHA9iO2ABcmr47wScrbrK2MDL1umO1AQNq2+6z24QA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-2.4.1.tgz", + "integrity": "sha512-aht7NzhjV9aBxd2EfTiMjyBn2/woJEx6qo21pfEQfBlWN+7iiCF4nZPP5wCMhB4B817uPBy5loO426ZXzVsh5A==", "requires": { "@sentry/browser": "6.2.1", "@sentry/core": "6.2.1", @@ -6769,9 +6768,9 @@ } }, "@sentry/wizard": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@sentry/wizard/-/wizard-1.2.3.tgz", - "integrity": "sha512-XS2X+0dBSIEzDh3K76Z4uz+CsZUNMpCVvhv6R1CWvhtHCor9yD/LNwIDF3zy323vIHyN9QTauNKiUUkT7Pk5ng==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@sentry/wizard/-/wizard-1.2.6.tgz", + "integrity": "sha512-2flmpdOGfKXutHbiTRYWE4j5rUyTZGVHacai2A+z5giDN4WMSr1sqy04weyZzxF/fqMN6KMkDE5wtmK+btnEfw==", "requires": { "@sentry/cli": "^1.52.4", "chalk": "^2.4.1", @@ -6822,18 +6821,18 @@ } }, "@storybook/addon-knobs": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-6.2.7.tgz", - "integrity": "sha512-bnQpd20FWUpnUOgw0vKVouWszWEaKTRm9bWhli7RbQkHBIiWBN8rEi7Pg/x/H5lO87LBPHywT6wbKy/c6pweZQ==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-6.2.8.tgz", + "integrity": "sha512-GODdcBe39sfUDI3hNgIgzGyRMQvl1qI7bSn7NfFLb7bsR51vginiMa3BMB771rMR3ply3VQN4ZDJPi4cXajcrQ==", "dev": true, "requires": { - "@storybook/addons": "6.2.7", - "@storybook/api": "6.2.7", - "@storybook/channels": "6.2.7", - "@storybook/client-api": "6.2.7", - "@storybook/components": "6.2.7", - "@storybook/core-events": "6.2.7", - "@storybook/theming": "6.2.7", + "@storybook/addons": "6.2.8", + "@storybook/api": "6.2.8", + "@storybook/channels": "6.2.8", + "@storybook/client-api": "6.2.8", + "@storybook/components": "6.2.8", + "@storybook/core-events": "6.2.8", + "@storybook/theming": "6.2.8", "copy-to-clipboard": "^3.3.1", "core-js": "^3.8.2", "escape-html": "^1.0.3", @@ -6855,9 +6854,9 @@ "dev": true }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", "dev": true }, "qs": { @@ -7092,17 +7091,17 @@ } }, "@storybook/addons": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.2.7.tgz", - "integrity": "sha512-OHVGzkS2al/jirChr2otampV3oBvODbisUpHMhgUJQ+fcjKdBOXualJFBHhAI2TNwTODfjld+TsKQlBtiMDNDw==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.2.8.tgz", + "integrity": "sha512-zbavtYi66HAtgAROw5h4mR3mD9239ocCaYiasRanM+qyprguIvADPMGzgOA7COVfNI9MiIkxSA+E9oZ1y5PKfQ==", "dev": true, "requires": { - "@storybook/api": "6.2.7", - "@storybook/channels": "6.2.7", - "@storybook/client-logger": "6.2.7", - "@storybook/core-events": "6.2.7", - "@storybook/router": "6.2.7", - "@storybook/theming": "6.2.7", + "@storybook/api": "6.2.8", + "@storybook/channels": "6.2.8", + "@storybook/client-logger": "6.2.8", + "@storybook/core-events": "6.2.8", + "@storybook/router": "6.2.8", + "@storybook/theming": "6.2.8", "core-js": "^3.8.2", "global": "^4.4.0", "regenerator-runtime": "^0.13.7" @@ -7117,19 +7116,19 @@ } }, "@storybook/api": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.2.7.tgz", - "integrity": "sha512-GKD9b6OkQi7eDlaPmpjSz7MJsPIY+q7eGvBAWkovLXzvfEY6sE6VqUt9aWn3i6IkzqjYF7c+wgQzpA0JBTzH1Q==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.2.8.tgz", + "integrity": "sha512-jaYT/IzFBUQTx/PqOIBty4HzZnRuk36vsGnBs/CWr8p3JCcnmLRaULsO0Q61rwFj2e4nMFMHEsZXEqRUXk4riw==", "dev": true, "requires": { "@reach/router": "^1.3.4", - "@storybook/channels": "6.2.7", - "@storybook/client-logger": "6.2.7", - "@storybook/core-events": "6.2.7", + "@storybook/channels": "6.2.8", + "@storybook/client-logger": "6.2.8", + "@storybook/core-events": "6.2.8", "@storybook/csf": "0.0.1", - "@storybook/router": "6.2.7", + "@storybook/router": "6.2.8", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.2.7", + "@storybook/theming": "6.2.8", "@types/reach__router": "^1.3.7", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -7144,16 +7143,6 @@ "util-deprecate": "^1.0.2" }, "dependencies": { - "@storybook/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", - "dev": true, - "requires": { - "core-js": "^3.6.5", - "find-up": "^4.1.0" - } - }, "@types/reach__router": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.7.tgz", @@ -7163,25 +7152,6 @@ "@types/react": "*" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -7189,24 +7159,9 @@ "dev": true }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", "dev": true }, "qs": { @@ -7244,14 +7199,14 @@ } }, "@storybook/channel-postmessage": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.2.7.tgz", - "integrity": "sha512-l+62q/oZrDeuU3xhqVKnyk7FoUZKwr+4ZG6fXc/uXKCryoACiHT1RvStoX4AZqua9xIxMPpQr36UpHUElNHtyg==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.2.8.tgz", + "integrity": "sha512-SWBpZopkMDstxuhC0qzhzZoJUbLpGkNFjy+f8BAXLikOWcEISk5e74dZm3Q20yV10KSRUoIGfPqhHG3QmkLwBA==", "dev": true, "requires": { - "@storybook/channels": "6.2.7", - "@storybook/client-logger": "6.2.7", - "@storybook/core-events": "6.2.7", + "@storybook/channels": "6.2.8", + "@storybook/client-logger": "6.2.8", + "@storybook/core-events": "6.2.8", "core-js": "^3.8.2", "global": "^4.4.0", "qs": "^6.10.0", @@ -7259,9 +7214,9 @@ }, "dependencies": { "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", "dev": true }, "qs": { @@ -7332,9 +7287,9 @@ } }, "@storybook/channels": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.2.7.tgz", - "integrity": "sha512-s79ghVFrbhj4hEt/HPNz7VgOqKQx8S8JozndHQuiE/KSNxfcgGihUXWxIVr7RGAzQcMT3HsAZ0nDbKdusV9jAg==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.2.8.tgz", + "integrity": "sha512-wn4I1kljyhEYhdJV98SrzQutbeigBwtTtisCdICJrUoENpLBWjZYWg5s+Wam1Q65375ajgIzeL7IZH7/TjxeKg==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -7351,16 +7306,16 @@ } }, "@storybook/client-api": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.2.7.tgz", - "integrity": "sha512-ZeKNkI1lXW55RnREDYt/wmHi34iMYdRNpybE9QqPBEcFLyvpB7m1bifXxFSgqyMbK+eSTYOfPB1NGQJi77P/iQ==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.2.8.tgz", + "integrity": "sha512-CZL+ANDUZ2uAdIQ/fe+qLLk7Cba7iT04mwiFIgL4zsG/51RQ8MXksh75RkW1VCLMRiJEuBt3P+Hqe0xs0yLoUw==", "dev": true, "requires": { - "@storybook/addons": "6.2.7", - "@storybook/channel-postmessage": "6.2.7", - "@storybook/channels": "6.2.7", - "@storybook/client-logger": "6.2.7", - "@storybook/core-events": "6.2.7", + "@storybook/addons": "6.2.8", + "@storybook/channel-postmessage": "6.2.8", + "@storybook/channels": "6.2.8", + "@storybook/client-logger": "6.2.8", + "@storybook/core-events": "6.2.8", "@storybook/csf": "0.0.1", "@types/qs": "^6.9.5", "@types/webpack-env": "^1.16.0", @@ -7389,9 +7344,9 @@ "dev": true }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", "dev": true }, "qs": { @@ -7429,9 +7384,9 @@ } }, "@storybook/client-logger": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.2.7.tgz", - "integrity": "sha512-IhTaZ3NPrV2g7vnoSuq5yb6QLuXQgD5+iuwzOAXlP8vU5X/Tm3zNr5PtqNjrKg1A3ls6A0pCBa5QctWdN/tnuQ==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.2.8.tgz", + "integrity": "sha512-O1pmTmKUwR8KW1Bv4o2z3LII/g5PQqykIvUMEoDLjL4ogS7aDaxXZSlONSPpCyGYcH9pVdHiRex37R7U9N8r3A==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -7439,15 +7394,15 @@ } }, "@storybook/components": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.2.7.tgz", - "integrity": "sha512-ccKOwGIkuhEHFLzjZvaZG11GIbMvk56bNdCAG8iINKYUjJE3l0PsO5xPhNsyTlwpDScZGwEBKB48Vn54UjiS8g==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.2.8.tgz", + "integrity": "sha512-fd0ivsOhHDLISEScWzDIVM4X93gR5Vw0LsxaMW/2qKJZGVHG6cxti5j+LhO41aaGmB7mWcDtgloOWNwTv47YAA==", "dev": true, "requires": { "@popperjs/core": "^2.6.0", - "@storybook/client-logger": "6.2.7", + "@storybook/client-logger": "6.2.8", "@storybook/csf": "0.0.1", - "@storybook/theming": "6.2.7", + "@storybook/theming": "6.2.8", "@types/color-convert": "^2.0.0", "@types/overlayscrollbars": "^1.12.0", "@types/react-syntax-highlighter": "11.0.5", @@ -7551,9 +7506,9 @@ } }, "@storybook/core-events": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.2.7.tgz", - "integrity": "sha512-CwMftGVwWDqFva48rs5TlTSkimO7Q42dAuKKmUVHaN2tPacs8NdxhjqHmj+ls+5cxZuDnJy1x3JAo1PyHGyWiw==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.2.8.tgz", + "integrity": "sha512-1TVzA5/FEwtgxor2q6tsBBMTmhyJubNWlP3akznume8F7kqoCl+k/ss0PQ0ywlzc9PjWQXS7HGmSVzx0r8gdHQ==", "dev": true, "requires": { "core-js": "^3.8.2" @@ -9604,13 +9559,13 @@ } }, "@storybook/router": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.2.7.tgz", - "integrity": "sha512-ZHz5T/IvpsXq0O/frdZN6kNltzy7QiL1TgekwY5evjtRWFAX6vRBQXfQH9opGQ3dThZIhMUi7kA9h9utrHp8HA==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.2.8.tgz", + "integrity": "sha512-SDoSa5gp/tzv7GIYauDyrKAiqDOg2bZ+JBIjLbAh29U5fJ/wkHbTeHCMhw9B5RE8O/e4dK2NOaYcuJJx+mFbGA==", "dev": true, "requires": { "@reach/router": "^1.3.4", - "@storybook/client-logger": "6.2.7", + "@storybook/client-logger": "6.2.8", "@types/reach__router": "^1.3.7", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -9637,9 +9592,9 @@ "dev": true }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", "dev": true }, "qs": { @@ -9670,16 +9625,62 @@ } } }, + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, "@storybook/theming": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.2.7.tgz", - "integrity": "sha512-0zTw1DhPWuNsk/fSg7rqLa/99+dxUfwjDnCYu4WJAUjfBWP/++0VWtQJVtt8ogyHKsY2dUzm5mhUg8EtqnGePg==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.2.8.tgz", + "integrity": "sha512-aQ+VCvzbfaAsq99g0ZsP1/rZFwXqbsTYLaRV/uZ8DA+wLF7uzlAl+FA5HyneStSj9ysyvdyARGxT2SBAT+azyQ==", "dev": true, "requires": { "@emotion/core": "^10.1.1", "@emotion/is-prop-valid": "^0.8.6", "@emotion/styled": "^10.0.27", - "@storybook/client-logger": "6.2.7", + "@storybook/client-logger": "6.2.8", "core-js": "^3.8.2", "deep-object-diff": "^1.1.0", "emotion-theming": "^10.0.27", @@ -9956,9 +9957,9 @@ } }, "@types/react-native": { - "version": "0.64.2", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.2.tgz", - "integrity": "sha512-w2y04h+GVLY+OMlFSmq4adPuS51XtEp1yUr83OvXf+moMQ4zDG1Q07HhyvYDXdc+BSS9ANHySBqVCz0hFxli9Q==", + "version": "0.64.4", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.4.tgz", + "integrity": "sha512-VqnlmadGkD5usREvnuyVpWDS1W8f6cCz6MP5fZdgONsaZ9/Ijfb9Iq9MZ5O3bnW1OyJixDX9HtSp3COsFSLD8Q==", "requires": { "@types/react": "*" } @@ -10350,12 +10351,11 @@ } }, "@unimodules/react-native-adapter": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@unimodules/react-native-adapter/-/react-native-adapter-6.2.1.tgz", - "integrity": "sha512-dVg0FnaH04VvLr6hRPQJuFoiTQhR1RgShjtm1w/vndAGK4CJ1oerLSBL+p887UFmNTk/NSMLkcbdS1ZIRH06Rg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@unimodules/react-native-adapter/-/react-native-adapter-6.2.2.tgz", + "integrity": "sha512-hBXL+IX3u+4TcAHu9lIItdycA7pYWZn3Tt7s5TTna9QKHjyrwo0zVss27LkpJ40tXRHyh/GJ8VzN2CD+0M5I2A==", "requires": { - "invariant": "^2.2.4", - "lodash": "^4.5.0" + "invariant": "^2.2.4" } }, "@webassemblyjs/ast": { @@ -13808,9 +13808,9 @@ } }, "detox": { - "version": "18.11.1", - "resolved": "https://registry.npmjs.org/detox/-/detox-18.11.1.tgz", - "integrity": "sha512-h8z8jnJhHVYEcaQyP2rgJk+bIW4fRV/7Q14kZPNJyuaZqIIWXEjGIN2BLJaGPvjPshtne7VsH+Ddfyf9+Ok3rA==", + "version": "18.12.0", + "resolved": "https://registry.npmjs.org/detox/-/detox-18.12.0.tgz", + "integrity": "sha512-AZLbI1TInfK1/aQjqIDDGYtgdlaocexnC40wN9NIa3rEwUjh21UyasYeYjG9RmHGVz3QQjVdmp2cDx+rKduDfg==", "dev": true, "requires": { "bunyan": "^1.8.12", @@ -13834,7 +13834,7 @@ "telnet-client": "1.2.8", "tempfile": "^2.0.0", "which": "^1.3.1", - "ws": "^7.4.3", + "ws": "^7.0.0", "yargs": "^16.0.3", "yargs-unparser": "^2.0.0" }, @@ -14004,9 +14004,9 @@ } }, "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", + "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", "dev": true }, "y18n": { @@ -14101,9 +14101,9 @@ }, "dependencies": { "csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", "dev": true } } @@ -14505,6 +14505,11 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, "escodegen": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.2.tgz", @@ -15642,18 +15647,18 @@ } }, "expo-constants": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-10.1.2.tgz", - "integrity": "sha512-rK4znSUYYtAB5wN1VnS+11IeAqXlQfUTdsKQ4bn0eTgYe3xUq+/fJChX4Nv0ML/20KvbR1PXWcYyvBb+cyxhNA==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-10.1.3.tgz", + "integrity": "sha512-Eq/xeshnhSoe4ok89d5lrHvI9jq3bMe1FhJUbiHVGcGmW8mGCotwbQBIfDkkMrAKnSOwQq/Qfyg0XBxnG2XFjw==", "requires": { "@expo/config": "^3.3.35", "uuid": "^3.3.2" } }, "expo-file-system": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-11.0.1.tgz", - "integrity": "sha512-GI1orhdUlzmi7SlhSrYAotcuyLdTmF7Cu+JSX2fRCN+u5Kv+6NxihbJUuipr5iHmAE16nSi4nzWXHDQgtk8vfA==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-11.0.2.tgz", + "integrity": "sha512-nodNvUVa+US4N4xnj5BFw8W9ZF/qCHJVC2t45cHWrBiwkVVxz45wjE7uSHUmkMWyWT7a/7AJuL3XJfYp7h90IQ==", "requires": { "@expo/config-plugins": "^1.0.18", "uuid": "^3.4.0" @@ -15664,6 +15669,11 @@ "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-2.1.1.tgz", "integrity": "sha512-EeItNIsmw4g+FIb9S9AHE7FAWQkuiIguFMua/RQ2mFHKFZYa/BU32MGagY+e4LzasBVbDKWgd3NHO+EYC6XeEA==" }, + "expo-permissions": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/expo-permissions/-/expo-permissions-12.0.1.tgz", + "integrity": "sha512-TtypNPPLG4SdVEKBlrArLLZIyhlhE+3B4dhz2HaY1Mve2rcvKE0C7z/e1WoUVU8+LgcdKoNGwg/wRVeCkxeEhg==" + }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -15996,13 +16006,6 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } } }, "file-entry-cache": { @@ -17338,11 +17341,6 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, - "intl": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", - "integrity": "sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=" - }, "intl-messageformat": { "version": "9.6.7", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.6.7.tgz", @@ -22561,6 +22559,11 @@ } } }, + "lokijs": { + "version": "npm:@nozbe/lokijs@1.5.12-wmelon", + "resolved": "https://registry.npmjs.org/@nozbe/lokijs/-/lokijs-1.5.12-wmelon.tgz", + "integrity": "sha512-7xQUn80pzPBB9VcwvB/W2V9/60xIfuk+3IDIvS9cU7W29jJx4QBXe5dBWTaARmxD9hXozPCcPWh2wfd7m4dbTA==" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -23606,9 +23609,9 @@ } }, "metro-react-native-babel-preset": { - "version": "0.65.2", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.65.2.tgz", - "integrity": "sha512-jBpZwJwnGHXUnzoZl81LlUzvec2dh1llMJ2A7pbTMuCKhx4LjqOGEE1E+hkNqj/Uh7gi6tCPy5JYSCo9Ue/Vog==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.66.0.tgz", + "integrity": "sha512-rO3yayxplLNxFDc7HyMShN+psgEb2mbw15EMreNvgV8QnXNYHmgU6e15tLbtEvC8LuftOLuSufEdSmR/ykm+aA==", "dev": true, "requires": { "@babel/core": "^7.0.0", @@ -25609,9 +25612,9 @@ } }, "react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -25959,14 +25962,15 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.3.3.tgz", "integrity": "sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w==", + "dev": true, "requires": { "prop-types": "^15.7.2" } }, "react-native-calendars": { - "version": "1.1255.0", - "resolved": "https://registry.npmjs.org/react-native-calendars/-/react-native-calendars-1.1255.0.tgz", - "integrity": "sha512-BM9+dOEbmrd9sFp/ntDUKc4L5mJYMctahwXTyuzal0ex3LSddGOfnAJUOgxhgeojINmtzi/F9QHV5HsMwSUd9g==", + "version": "1.1257.0", + "resolved": "https://registry.npmjs.org/react-native-calendars/-/react-native-calendars-1.1257.0.tgz", + "integrity": "sha512-nBL+ZTTUqYKJnjZZIpuAU6iC3zGxJge+NC0nPauwlgOgpCTLK1MZcBd+TjbK5cldRvzFles6dKpF5FW6Jhks5A==", "requires": { "hoist-non-react-statics": "^3.3.1", "immutable": "^4.0.0-rc.12", @@ -26001,9 +26005,9 @@ "dev": true }, "react-native-device-info": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-8.1.0.tgz", - "integrity": "sha512-szEbRRFQ1NYPOjGWyIMsZGk5W2eU4JTiFLaNVXTbK4u/BS/Z5moVJKcoJgYR6Fxiu6qPAY/ofJySJoSdhSeOnw==" + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-8.1.2.tgz", + "integrity": "sha512-5jaQBL42H3g8+KXkFlIy2lMyKyPPETI8eUYgEg7JylW7rltkMPngn/wDnupgP4NhDYI+fBdMRGdRjEeetFr0IQ==" }, "react-native-document-picker": { "version": "5.0.3", @@ -26095,25 +26099,15 @@ "resolved": "https://registry.npmjs.org/react-native-hw-keyboard-event/-/react-native-hw-keyboard-event-0.0.4.tgz", "integrity": "sha512-G8qp0nm17PHigLb/axgdF9xg51BKCG2p1AGeq//J/luLp5zNczIcQJh+nm02R1MeEUE3e53wqO4LMe0MV3raZg==" }, - "react-native-image-picker": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-native-image-picker/-/react-native-image-picker-2.3.4.tgz", - "integrity": "sha512-4UHu+zOyDT570r5mIbjH6h1iMrKIq/qfsKiAVUEZwncVegh0usJiEYNyJw4CEVwNeehmye/ia5sLDsa+kzIE4g==" - }, - "react-native-keyboard-aware-scrollview": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/react-native-keyboard-aware-scrollview/-/react-native-keyboard-aware-scrollview-2.1.0.tgz", - "integrity": "sha512-XfWozWFPhdecfxN+wuqERX3mCGDrAim5siC6TWg3Qw7wK/zlwIwe1UIsHDNOQCzf9oIh0SkZXvoOFsMrnyIVmQ==" - }, "react-native-keyboard-tracking-view": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/react-native-keyboard-tracking-view/-/react-native-keyboard-tracking-view-5.7.0.tgz", "integrity": "sha512-MDeEwAbn9LJDOfHq0QLCGaZirVLk2X/tHqkAqz3y6uxryTRdSl9PwleOVar5Jx2oAPEg4J9BXbUD1wwOOi+5Kg==" }, "react-native-keychain": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/react-native-keychain/-/react-native-keychain-6.2.0.tgz", - "integrity": "sha512-U6fnOQRJPq+c0Abl+FoYy9v0H3kQU587tMamU/o+MoBSUScFLE3DQpkyT1PW4NF5IObgiGuqQdmjC2KgtBpjGA==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/react-native-keychain/-/react-native-keychain-7.0.0.tgz", + "integrity": "sha512-tH26sgW4OxB/llXmhO+DajFISEUoF1Ip2+WSDMIgCt8SP1xRE81m2qFzgIOc/7StYsUERxHhDPkxvq2H0/Goig==" }, "react-native-linear-gradient": { "version": "2.5.6", @@ -26121,9 +26115,9 @@ "integrity": "sha512-HDwEaXcQIuXXCV70O+bK1rizFong3wj+5Q/jSyifKFLg0VWF95xh8XQgfzXwtq0NggL9vNjPKXa016KuFu+VFg==" }, "react-native-localize": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-2.0.2.tgz", - "integrity": "sha512-4Ii7lqiD9iL0LxTWifAiEsDcDPpvos/29fEVkHxgEDD7J5f+NROMkFSFomKgz1Cab1TmN5mau3o8yFmYrPFcnw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-2.0.3.tgz", + "integrity": "sha512-6SILy2yX/U1rTjF56/BiywcFXeO9AY8LmPF2p3TgP3Y2uKejxAOOQ4nzr+bAP1h+X5TaBmwTPBGNMZ1TttEJvA==" }, "react-native-modal": { "version": "11.7.0", @@ -26179,9 +26173,9 @@ "integrity": "sha512-kJL3fDQu2LaCmz94dpUjWbpXSTwoouHCNpYQgIwNDL4H4lp7h5TNnfoo0owwA0CSz9E1egWz9o3CioM/unZw/w==" }, "react-native-permissions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-3.0.1.tgz", - "integrity": "sha512-loCoNEeBeLsrvITZmrkuCUEMFiuwhKuFvkWbC5Imco4bj2hUW7BVI29i8QyxkC53ydRfSR9OtbR3KQIyghWiNQ==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-3.0.2.tgz", + "integrity": "sha512-Uvye5evur8prriN/OxPyYOVoY1DaIh9980OgF9vXTPflQwvmpdygDHBOOmeFMUuMPAc+kNdi++BkV2PJCGvSSQ==" }, "react-native-ratings": { "version": "7.6.1", @@ -26219,9 +26213,9 @@ "integrity": "sha512-k2Nty4PwSnrg9HwrYeeE+EYqViYJoOFwEy9LxL5RIRfoqxAq/uQXNGwpUg2/u4gnKpBbEPa9eRh15KKMe/VHkA==" }, "react-native-share": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-5.2.2.tgz", - "integrity": "sha512-Jn92T+fXzq8ZIfiZllznFYrhDQoFUcMZ6vO0oXgQJYR5leVZuesqy8II3taWLtQzbAD5tl4Y+EaNYo7Z6TNGTw==" + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-6.0.0.tgz", + "integrity": "sha512-6mNDXKt5/d8pQbl56EmxzXSTsW4g/6zwXt8/YfzJL4WFx/Go5YEaKbb/PYyD2XLv2UU8CPEa2bHpnzwLmUnMDg==" }, "react-native-size-matters": { "version": "0.3.1", @@ -26412,9 +26406,9 @@ } }, "react-native-svg": { - "version": "12.1.1-0", - "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-12.1.1-0.tgz", - "integrity": "sha512-fj4R5yQWNgSLKO4umOLEeMYWE6QQ90OSzXPeh8kQIFDd2k6RDo8i9tbNNeGWMobQ83LexYgsE3j5B5cWIBx5Pg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-12.1.1.tgz", + "integrity": "sha512-NIAJ8jCnXGCqGWXkkJ1GTzO4a3Md5at5sagYV8Vh4MXYnL4z5Rh428Wahjhh+LIjx40EE5xM5YtwyJBqOIba2Q==", "requires": { "css-select": "^2.1.0", "css-tree": "^1.0.0-alpha.39" @@ -26426,17 +26420,18 @@ "integrity": "sha512-Ns7Bn9H/Tyw278+5SQx9oAblDZ7JixyzeOczcBK8dipQk2pD7Djkcfnf1nB/8RErAmMLL9iXgW0QHqiII8AhKw==" }, "react-native-unimodules": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/react-native-unimodules/-/react-native-unimodules-0.13.2.tgz", - "integrity": "sha512-LQ9WsHZi6RSygnS4glOyDp3JsdQwnSjwiEZkfVuZZE/21jaBOAhkTYoWTvR5m7X0DM/kw+7lr4JlQ4cbzK6bZg==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/react-native-unimodules/-/react-native-unimodules-0.13.3.tgz", + "integrity": "sha512-fjbNbAcvJHF8Ywqe77oveRW1WfaAKCQGV4a3Fxgpai17oNHq1LFwwKw0crFo0k7Njm5u7kCMVNbm9ZILNBfABQ==", "requires": { "@unimodules/core": "~7.1.0", - "@unimodules/react-native-adapter": "~6.2.1", + "@unimodules/react-native-adapter": "~6.2.2", "chalk": "^2.4.2", "expo-asset": "~8.3.1", - "expo-constants": "~10.1.2", - "expo-file-system": "~11.0.1", + "expo-constants": "~10.1.3", + "expo-file-system": "~11.0.2", "expo-image-loader": "~2.1.1", + "expo-permissions": "~12.0.1", "find-up": "~5.0.0", "unimodules-app-loader": "~2.1.0", "unimodules-barcode-scanner-interface": "~6.1.0", @@ -26622,9 +26617,9 @@ } }, "react-native-webview": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-11.3.2.tgz", - "integrity": "sha512-j+0eUKYY3MCO7DRhZaIPY6+0q+Yo1Iyhz5f7cde+i5vR71CcJ/60DhZPw5SSqXZnZiVX0Myz1D46u8dtfRmQFg==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-11.4.0.tgz", + "integrity": "sha512-il4OOJxBJgFXk8rtVgYQJIGRqYD5wJXc4By6nvnkHlH3hbyw1Mx5HKfP9Qmsy8xdCwHYgCBjUuCfHoGXJ9hMSA==", "requires": { "escape-string-regexp": "2.0.0", "invariant": "2.2.4" @@ -27574,9 +27569,9 @@ } }, "serialize-error": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-8.0.1.tgz", - "integrity": "sha512-r5o60rWFS+8/b49DNAbB+GXZA0SpDpuWE758JxDKgRTga05r3U5lwyksE91dYKDhXSmnu36RALj615E6Aj5pSg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-8.1.0.tgz", + "integrity": "sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==", "requires": { "type-fest": "^0.20.2" }, @@ -28905,9 +28900,9 @@ "dev": true }, "ts-jest": { - "version": "26.5.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.4.tgz", - "integrity": "sha512-I5Qsddo+VTm94SukBJ4cPimOoFZsYTeElR2xy6H2TOVs+NsvgYglW8KuQgKoApOKuaU/Ix/vrF9ebFZlb5D2Pg==", + "version": "26.5.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.5.tgz", + "integrity": "sha512-7tP4m+silwt1NHqzNRAPjW1BswnAhopTdc2K3HEkRZjF0ZG2F/e/ypVH0xiZIMfItFtD3CX0XFbwPzp9fIEUVg==", "dev": true, "requires": { "bs-logger": "0.x", @@ -29085,9 +29080,9 @@ } }, "underscore": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.0.tgz", - "integrity": "sha512-sCs4H3pCytsb5K7i072FAEC9YlSYFIbosvM0tAKAlpSSUgD7yC1iXSEGdl5XrDKQ1YUB+p/HDzYrSG2H2Vl36g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", + "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", "dev": true }, "unfetch": { diff --git a/package.json b/package.json index 3b86cd8ef..29a253c04 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "license": "Apache 2.0", "private": true, "dependencies": { - "@babel/runtime": "7.13.10", + "@babel/runtime": "7.13.16", "@mattermost/react-native-emm": "1.1.1", "@mattermost/react-native-paste-input": "0.1.3", "@nozbe/watermelondb": "0.21.0", @@ -19,25 +19,23 @@ "@react-native-community/masked-view": "0.1.10", "@react-native-community/netinfo": "6.0.0", "@rudderstack/rudder-sdk-react-native": "1.0.6", - "@sentry/react-native": "2.4.0", + "@sentry/react-native": "2.4.1", "commonmark": "github:mattermost/commonmark.js#f6ab98dede6ce4b4e7adea140ac77249bfb2d6ce", "commonmark-react-renderer": "github:mattermost/commonmark-react-renderer#3a2ac19cab725ad28b170fdc1d397dddedcf87eb", "deep-equal": "2.0.5", "deepmerge": "4.2.2", "emoji-regex": "9.2.2", "fuse.js": "6.4.6", - "intl": "1.2.5", "jail-monkey": "2.3.3", "mime-db": "1.47.0", "moment-timezone": "0.5.33", "prop-types": "15.7.2", - "react": "17.0.1", + "react": "17.0.2", "react-intl": "5.15.8", "react-native": "0.64.0", "react-native-android-open-settings": "1.3.0", - "react-native-animatable": "1.3.3", - "react-native-calendars": "1.1255.0", - "react-native-device-info": "8.1.0", + "react-native-calendars": "1.1257.0", + "react-native-device-info": "8.1.2", "react-native-document-picker": "5.0.3", "react-native-elements": "3.3.2", "react-native-exception-handler": "2.10.10", @@ -46,36 +44,34 @@ "react-native-gesture-handler": "1.10.3", "react-native-haptic-feedback": "1.11.0", "react-native-hw-keyboard-event": "0.0.4", - "react-native-image-picker": "2.3.4", - "react-native-keyboard-aware-scrollview": "2.1.0", "react-native-keyboard-tracking-view": "5.7.0", - "react-native-keychain": "6.2.0", + "react-native-keychain": "7.0.0", "react-native-linear-gradient": "2.5.6", - "react-native-localize": "2.0.2", + "react-native-localize": "2.0.3", "react-native-navigation": "7.13.0", "react-native-notifications": "3.4.2", - "react-native-permissions": "3.0.1", + "react-native-permissions": "3.0.2", "react-native-reanimated": "2.1.0", "react-native-redash": "16.0.11", "react-native-safe-area-context": "3.2.0", - "react-native-share": "5.2.2", + "react-native-share": "6.0.0", "react-native-slider": "0.11.0", - "react-native-svg": "12.1.1-0", - "react-native-unimodules": "0.13.2", + "react-native-svg": "12.1.1", + "react-native-unimodules": "0.13.3", "react-native-vector-icons": "8.1.0", "react-native-video": "5.1.1", - "react-native-webview": "11.3.2", + "react-native-webview": "11.4.0", "react-native-youtube": "2.0.1", "rn-placeholder": "3.0.3", "semver": "7.3.5", - "serialize-error": "8.0.1", + "serialize-error": "8.1.0", "shallow-equals": "1.0.0", "tinycolor2": "1.4.2", "url-parse": "1.5.1" }, "devDependencies": { - "@babel/cli": "7.13.14", - "@babel/core": "7.13.15", + "@babel/cli": "7.13.16", + "@babel/core": "7.13.16", "@babel/plugin-proposal-class-properties": "7.13.0", "@babel/plugin-proposal-decorators": "7.13.15", "@babel/plugin-transform-flow-strip-types": "7.13.0", @@ -84,14 +80,14 @@ "@babel/preset-typescript": "7.13.0", "@babel/register": "7.13.14", "@react-native-community/eslint-config": "2.0.0", - "@storybook/addon-knobs": "6.2.7", + "@storybook/addon-knobs": "6.2.8", "@storybook/addon-ondevice-knobs": "5.3.25", "@storybook/react-native": "5.3.25", "@storybook/react-native-server": "5.3.23", "@testing-library/react-native": "7.2.0", "@types/jest": "26.0.22", "@types/react": "17.0.3", - "@types/react-native": "0.64.2", + "@types/react-native": "0.64.4", "@types/react-native-share": "3.3.2", "@types/react-native-video": "5.0.4", "@types/react-test-renderer": "17.0.1", @@ -107,7 +103,7 @@ "babel-plugin-module-resolver": "4.1.0", "babel-plugin-transform-remove-console": "6.9.4", "deep-freeze": "0.0.1", - "detox": "18.11.1", + "detox": "18.12.0", "eslint": "7.24.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-jest": "24.3.5", @@ -118,16 +114,16 @@ "jest": "26.6.3", "jest-cli": "26.6.3", "jetifier": "1.6.6", - "metro-react-native-babel-preset": "0.65.2", + "metro-react-native-babel-preset": "0.66.0", "mmjstool": "github:mattermost/mattermost-utilities#519b99a4e51e6c67a0dbd46a6efdff27dc835aaa", "mock-async-storage": "2.2.0", "patch-package": "6.4.7", "react-native-dev-menu": "4.0.2", "react-native-dotenv": "2.5.5", "react-native-storybook-loader": "2.0.2", - "ts-jest": "26.5.4", + "ts-jest": "26.5.5", "typescript": "4.2.4", - "underscore": "1.13.0", + "underscore": "1.13.1", "util": "0.12.3" }, "scripts": { diff --git a/patches/react-native-device-info+8.1.0.patch b/patches/react-native-device-info+8.1.2.patch similarity index 100% rename from patches/react-native-device-info+8.1.0.patch rename to patches/react-native-device-info+8.1.2.patch diff --git a/patches/react-native-image-picker+2.3.4.patch b/patches/react-native-image-picker+2.3.4.patch deleted file mode 100644 index 683f7a8af..000000000 --- a/patches/react-native-image-picker+2.3.4.patch +++ /dev/null @@ -1,476 +0,0 @@ -diff --git a/node_modules/react-native-image-picker/android/src/main/java/com/imagepicker/ImagePickerModule.java b/node_modules/react-native-image-picker/android/src/main/java/com/imagepicker/ImagePickerModule.java -index 48fb5c1..3872d91 100644 ---- a/node_modules/react-native-image-picker/android/src/main/java/com/imagepicker/ImagePickerModule.java -+++ b/node_modules/react-native-image-picker/android/src/main/java/com/imagepicker/ImagePickerModule.java -@@ -3,6 +3,7 @@ package com.imagepicker; - import android.Manifest; - import android.app.Activity; - import android.content.ActivityNotFoundException; -+import android.content.ContentResolver; - import android.content.Context; - import android.content.DialogInterface; - import android.content.Intent; -@@ -49,6 +50,7 @@ import java.io.InputStream; - import java.io.OutputStream; - import java.lang.ref.WeakReference; - import java.util.List; -+import java.util.ArrayList; - - import com.facebook.react.modules.core.PermissionListener; - import com.facebook.react.modules.core.PermissionAwareActivity; -@@ -69,6 +71,7 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - public static final int REQUEST_LAUNCH_IMAGE_LIBRARY = 13002; - public static final int REQUEST_LAUNCH_VIDEO_LIBRARY = 13003; - public static final int REQUEST_LAUNCH_VIDEO_CAPTURE = 13004; -+ public static final int REQUEST_LAUNCH_MIXED_CAPTURE = 13005; - public static final int REQUEST_PERMISSIONS_FOR_CAMERA = 14001; - public static final int REQUEST_PERMISSIONS_FOR_LIBRARY = 14002; - -@@ -266,26 +269,24 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - cameraIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, videoDurationLimit); - } - } -+ else if (pickBoth) { -+ Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); -+ this.setImageCaptureUri(takePictureIntent); -+ Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); -+ cameraIntent = new Intent(Intent.ACTION_CHOOSER); -+ Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT); -+ Intent[] intentArray = new Intent[]{takePictureIntent,takeVideoIntent}; -+ cameraIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent); -+ cameraIntent.putExtra(Intent.EXTRA_TITLE, "Choose an action"); -+ cameraIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray); -+ requestCode = REQUEST_LAUNCH_MIXED_CAPTURE; -+ } - else - { - requestCode = REQUEST_LAUNCH_IMAGE_CAPTURE; - cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - -- final File original = createNewFile(reactContext, this.options, false); -- imageConfig = imageConfig.withOriginalFile(original); -- -- if (imageConfig.original != null) { -- cameraCaptureURI = RealPathUtil.compatUriFromFile(reactContext, imageConfig.original); -- }else { -- responseHelper.invokeError(callback, "Couldn't get file path for photo"); -- return; -- } -- if (cameraCaptureURI == null) -- { -- responseHelper.invokeError(callback, "Couldn't get file path for photo"); -- return; -- } -- cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, cameraCaptureURI); -+ this.setImageCaptureUri(cameraIntent); - } - - if (cameraIntent.resolveActivity(reactContext.getPackageManager()) == null) -@@ -350,16 +351,19 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - libraryIntent = new Intent(Intent.ACTION_PICK); - libraryIntent.setType("video/*"); - } -+ else if (pickBoth) { -+ libraryIntent = new Intent(Intent.ACTION_GET_CONTENT); -+ libraryIntent.addCategory(Intent.CATEGORY_OPENABLE); -+ libraryIntent.setType("image/*"); -+ libraryIntent.putExtra(Intent.EXTRA_MIME_TYPES, new String[] {"image/*", "video/*"}); -+ requestCode = REQUEST_LAUNCH_MIXED_CAPTURE; -+ } - else - { - requestCode = REQUEST_LAUNCH_IMAGE_LIBRARY; - libraryIntent = new Intent(Intent.ACTION_PICK, - MediaStore.Images.Media.EXTERNAL_CONTENT_URI); -- -- if (pickBoth) -- { -- libraryIntent.setType("image/* video/*"); -- } -+ libraryIntent.setType("image/*"); - } - - if (libraryIntent.resolveActivity(reactContext.getPackageManager()) == null) -@@ -385,75 +389,47 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - } - } - -- @Override -- public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) { -- //robustness code -- if (passResult(requestCode)) -- { -- return; -- } -- -- responseHelper.cleanResponse(); -- -- // user cancel -- if (resultCode != Activity.RESULT_OK) -- { -- removeUselessFiles(requestCode, imageConfig); -- responseHelper.invokeCancel(callback); -- callback = null; -- return; -- } -+ protected String getMimeType(Activity activity, Uri uri) { -+ String mimeType = null; -+ if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) { -+ ContentResolver cr = activity.getApplicationContext().getContentResolver(); -+ mimeType = cr.getType(uri); -+ } else { -+ String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri -+ .toString()); -+ mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension( -+ fileExtension.toLowerCase()); -+ } -+ return mimeType; -+ } - -- Uri uri = null; -- switch (requestCode) -+ protected void extractImageFromResult(Activity activity, Uri uri, int requestCode) { -+ String realPath = getRealPathFromURI(uri); -+ String mime = getMimeType(activity, uri); -+ final boolean isUrl = !TextUtils.isEmpty(realPath) && -+ Patterns.WEB_URL.matcher(realPath).matches(); -+ if (realPath == null || isUrl) - { -- case REQUEST_LAUNCH_IMAGE_CAPTURE: -- uri = cameraCaptureURI; -- break; -- -- case REQUEST_LAUNCH_IMAGE_LIBRARY: -- uri = data.getData(); -- String realPath = getRealPathFromURI(uri); -- final boolean isUrl = !TextUtils.isEmpty(realPath) && -- Patterns.WEB_URL.matcher(realPath).matches(); -- if (realPath == null || isUrl) -- { -- try -- { -- File file = createFileFromURI(uri); -- realPath = file.getAbsolutePath(); -- uri = Uri.fromFile(file); -- } -- catch (Exception e) -- { -- // image not in cache -- responseHelper.putString("error", "Could not read photo"); -- responseHelper.putString("uri", uri.toString()); -- responseHelper.invokeResponse(callback); -- callback = null; -- return; -- } -- } -- imageConfig = imageConfig.withOriginalFile(new File(realPath)); -- break; -- -- case REQUEST_LAUNCH_VIDEO_LIBRARY: -- responseHelper.putString("uri", data.getData().toString()); -- responseHelper.putString("path", getRealPathFromURI(data.getData())); -- responseHelper.invokeResponse(callback); -- callback = null; -- return; -- -- case REQUEST_LAUNCH_VIDEO_CAPTURE: -- final String path = getRealPathFromURI(data.getData()); -- responseHelper.putString("uri", data.getData().toString()); -- responseHelper.putString("path", path); -- fileScan(reactContext, path); -+ try -+ { -+ File file = createFileFromURI(uri); -+ realPath = file.getAbsolutePath(); -+ uri = Uri.fromFile(file); -+ } -+ catch (Exception e) -+ { -+ // image not in cache -+ responseHelper.putString("error", "Could not read photo"); -+ responseHelper.putString("uri", uri.toString()); - responseHelper.invokeResponse(callback); - callback = null; -+ this.options = null; - return; -+ } - } - -+ imageConfig = imageConfig.withOriginalFile(new File(realPath)); -+ - final ReadExifResult result = readExifInterface(responseHelper, imageConfig); - - if (result.error != null) -@@ -461,6 +437,7 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - removeUselessFiles(requestCode, imageConfig); - responseHelper.invokeError(callback, result.error.getMessage()); - callback = null; -+ this.options = null; - return; - } - -@@ -472,7 +449,7 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - updatedResultResponse(uri, imageConfig.original.getAbsolutePath()); - - // don't create a new file if contraint are respected -- if (imageConfig.useOriginal(initialWidth, initialHeight, result.currentRotation)) -+ if (imageConfig.useOriginal(initialWidth, initialHeight, result.currentRotation) || mime.equals("image/gif")) - { - responseHelper.putInt("width", initialWidth); - responseHelper.putInt("height", initialHeight); -@@ -481,6 +458,14 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - else - { - imageConfig = getResizedImage(reactContext, this.options, imageConfig, initialWidth, initialHeight, requestCode); -+ if (imageConfig == null) -+ { -+ responseHelper.invokeError(callback, "Could not read image"); -+ callback = null; -+ this.options = null; -+ return; -+ } -+ - if (imageConfig.resized == null) - { - removeUselessFiles(requestCode, imageConfig); -@@ -523,6 +508,64 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - this.options = null; - } - -+ protected void extractVideoFromResult(Uri uri) { -+ responseHelper.putString("uri", uri.toString()); -+ responseHelper.putString("path", getRealPathFromURI(uri)); -+ responseHelper.invokeResponse(callback); -+ callback = null; -+ this.options = null; -+ } -+ -+ @Override -+ public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) { -+ //robustness code -+ if (passResult(requestCode)) -+ { -+ return; -+ } -+ -+ responseHelper.cleanResponse(); -+ -+ // user cancel -+ if (resultCode != Activity.RESULT_OK) -+ { -+ removeUselessFiles(requestCode, imageConfig); -+ responseHelper.invokeCancel(callback); -+ callback = null; -+ return; -+ } -+ -+ switch (requestCode) -+ { -+ case REQUEST_LAUNCH_IMAGE_CAPTURE: -+ extractImageFromResult(activity, cameraCaptureURI, requestCode); -+ break; -+ -+ case REQUEST_LAUNCH_IMAGE_LIBRARY: -+ extractImageFromResult(activity, data.getData(), requestCode); -+ break; -+ -+ case REQUEST_LAUNCH_VIDEO_LIBRARY: -+ extractVideoFromResult(data.getData()); -+ break; -+ -+ case REQUEST_LAUNCH_MIXED_CAPTURE: -+ case REQUEST_LAUNCH_VIDEO_CAPTURE: -+ if (data == null || data.getData() == null) { -+ extractImageFromResult(activity, cameraCaptureURI, requestCode); -+ } else { -+ Uri selectedMediaUri = data.getData(); -+ String mime = getMimeType(activity, selectedMediaUri); -+ if (mime.contains("image")) { -+ extractImageFromResult(activity, selectedMediaUri, requestCode); -+ } else { -+ extractVideoFromResult(selectedMediaUri); -+ } -+ } -+ break; -+ } -+ } -+ - public void invokeCustomButton(@NonNull final String action) - { - responseHelper.invokeCustomButton(this.callback, action); -@@ -551,7 +594,8 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - { - return callback == null || (cameraCaptureURI == null && requestCode == REQUEST_LAUNCH_IMAGE_CAPTURE) - || (requestCode != REQUEST_LAUNCH_IMAGE_CAPTURE && requestCode != REQUEST_LAUNCH_IMAGE_LIBRARY -- && requestCode != REQUEST_LAUNCH_VIDEO_LIBRARY && requestCode != REQUEST_LAUNCH_VIDEO_CAPTURE); -+ && requestCode != REQUEST_LAUNCH_VIDEO_LIBRARY && requestCode != REQUEST_LAUNCH_VIDEO_CAPTURE -+ && requestCode != REQUEST_LAUNCH_MIXED_CAPTURE); - } - - private void updatedResultResponse(@Nullable final Uri uri, -@@ -571,22 +615,23 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - @NonNull final Callback callback, - @NonNull final int requestCode) - { -- final int writePermission = ActivityCompat -- .checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); -- final int cameraPermission = ActivityCompat -- .checkSelfPermission(activity, Manifest.permission.CAMERA); -- -- boolean permissionsGranted = false; -- -+ int selfCheckResult = 0; - switch (requestCode) { - case REQUEST_PERMISSIONS_FOR_LIBRARY: -- permissionsGranted = writePermission == PackageManager.PERMISSION_GRANTED; -+ selfCheckResult = ActivityCompat -+ .checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); - break; - case REQUEST_PERMISSIONS_FOR_CAMERA: -- permissionsGranted = cameraPermission == PackageManager.PERMISSION_GRANTED && writePermission == PackageManager.PERMISSION_GRANTED; -+ selfCheckResult = ActivityCompat -+ .checkSelfPermission(activity, Manifest.permission.CAMERA); -+ if (selfCheckResult == PackageManager.PERMISSION_GRANTED) { -+ selfCheckResult = ActivityCompat -+ .checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); -+ } - break; - } - -+ final boolean permissionsGranted = selfCheckResult == PackageManager.PERMISSION_GRANTED; - if (!permissionsGranted) - { - final Boolean dontAskAgain = ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) && ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.CAMERA); -@@ -787,4 +832,22 @@ public class ImagePickerModule extends ReactContextBaseJavaModule - videoDurationLimit = options.getInt("durationLimit"); - } - } -+ -+ private void setImageCaptureUri(Intent cameraIntent) { -+ final File original = createNewFile(reactContext, this.options, false); -+ imageConfig = imageConfig.withOriginalFile(original); -+ -+ if (imageConfig.original != null) { -+ cameraCaptureURI = RealPathUtil.compatUriFromFile(reactContext, imageConfig.original); -+ }else { -+ responseHelper.invokeError(callback, "Couldn't get file path for photo"); -+ return; -+ } -+ if (cameraCaptureURI == null) -+ { -+ responseHelper.invokeError(callback, "Couldn't get file path for photo"); -+ return; -+ } -+ cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, cameraCaptureURI); -+ } - } -diff --git a/node_modules/react-native-image-picker/android/src/main/java/com/imagepicker/utils/RealPathUtil.java b/node_modules/react-native-image-picker/android/src/main/java/com/imagepicker/utils/RealPathUtil.java -index cc90dce..c1cc74d 100644 ---- a/node_modules/react-native-image-picker/android/src/main/java/com/imagepicker/utils/RealPathUtil.java -+++ b/node_modules/react-native-image-picker/android/src/main/java/com/imagepicker/utils/RealPathUtil.java -@@ -7,16 +7,22 @@ import android.net.Uri; - import android.os.Build; - import android.provider.DocumentsContract; - import android.provider.MediaStore; -+import android.provider.OpenableColumns; - import android.content.ContentUris; - import android.os.Environment; -+import android.os.ParcelFileDescriptor; -+import android.webkit.MimeTypeMap; - import androidx.annotation.NonNull; - import androidx.annotation.Nullable; - import androidx.core.content.FileProvider; - --import java.io.File; -+import java.io.*; -+import java.nio.channels.FileChannel; - - public class RealPathUtil { - -+ public static final String CACHE_DIR_NAME = "mmShare"; -+ - public static @Nullable Uri compatUriFromFile(@NonNull final Context context, - @NonNull final File file) { - Uri result = null; -@@ -58,12 +64,7 @@ public class RealPathUtil { - } - // DownloadsProvider - else if (isDownloadsDocument(uri)) { -- -- final String id = DocumentsContract.getDocumentId(uri); -- final Uri contentUri = ContentUris.withAppendedId( -- Uri.parse("content://downloads/public_downloads"), Long.valueOf(id)); -- -- return getDataColumn(context, contentUri, null, null); -+ return getPathFromSavingTempFile(context, uri); - } - // MediaProvider - else if (isMediaDocument(uri)) { -@@ -89,7 +90,7 @@ public class RealPathUtil { - } - } - // MediaStore (and general) -- else if ("content".equalsIgnoreCase(uri.getScheme())) { -+ if ("content".equalsIgnoreCase(uri.getScheme())) { - - // Return the remote address - if (isGooglePhotosUri(uri)) -@@ -98,7 +99,7 @@ public class RealPathUtil { - if (isFileProviderUri(context, uri)) - return getFileProviderPath(context, uri); - -- return getDataColumn(context, uri, null, null); -+ return getPathFromSavingTempFile(context, uri); - } - // File - else if ("file".equalsIgnoreCase(uri.getScheme())) { -@@ -108,6 +109,49 @@ public class RealPathUtil { - return null; - } - -+ -+ public static String getPathFromSavingTempFile(Context context, final Uri uri) { -+ File tmpFile; -+ String fileName = null; -+ -+ // Try and get the filename from the Uri -+ try { -+ Cursor returnCursor = -+ context.getContentResolver().query(uri, null, null, null, null); -+ int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); -+ returnCursor.moveToFirst(); -+ fileName = returnCursor.getString(nameIndex); -+ } catch (Exception e) { -+ // just continue to get the filename with the last segment of the path -+ } -+ -+ try { -+ if (fileName == null) { -+ fileName = uri.getLastPathSegment().toString().trim(); -+ } -+ -+ -+ File cacheDir = new File(context.getCacheDir(), CACHE_DIR_NAME); -+ if (!cacheDir.exists()) { -+ cacheDir.mkdirs(); -+ } -+ -+ tmpFile = new File(cacheDir, fileName); -+ tmpFile.createNewFile(); -+ -+ ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r"); -+ -+ FileChannel src = new FileInputStream(pfd.getFileDescriptor()).getChannel(); -+ FileChannel dst = new FileOutputStream(tmpFile).getChannel(); -+ dst.transferFrom(src, 0, src.size()); -+ src.close(); -+ dst.close(); -+ } catch (IOException ex) { -+ return null; -+ } -+ return tmpFile.getAbsolutePath(); -+ } -+ - /** - * Get the value of the data column for this Uri. This is useful for - * MediaStore Uris, and other file-based ContentProviders. diff --git a/patches/react-native-keychain+6.2.0.patch b/patches/react-native-keychain+7.0.0.patch similarity index 86% rename from patches/react-native-keychain+6.2.0.patch rename to patches/react-native-keychain+7.0.0.patch index d7a1f5682..435b48cba 100644 --- a/patches/react-native-keychain+6.2.0.patch +++ b/patches/react-native-keychain+7.0.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/react-native-keychain/android/src/main/java/com/oblador/keychain/KeychainModule.java b/node_modules/react-native-keychain/android/src/main/java/com/oblador/keychain/KeychainModule.java -index d4ded69..af35eaa 100644 +index 3da433f..112cc74 100644 --- a/node_modules/react-native-keychain/android/src/main/java/com/oblador/keychain/KeychainModule.java +++ b/node_modules/react-native-keychain/android/src/main/java/com/oblador/keychain/KeychainModule.java @@ -1,6 +1,7 @@ @@ -7,10 +7,10 @@ index d4ded69..af35eaa 100644 import android.os.Build; +import android.os.Bundle; - import android.os.Looper; import android.text.TextUtils; import android.util.Log; -@@ -128,6 +129,7 @@ public class KeychainModule extends ReactContextBaseJavaModule { + +@@ -129,6 +130,7 @@ public class KeychainModule extends ReactContextBaseJavaModule { //region Members /** Name-to-instance lookup map. */ private final Map cipherStorageMap = new HashMap<>(); @@ -18,12 +18,12 @@ index d4ded69..af35eaa 100644 /** Shared preferences storage. */ private final PrefsStorage prefsStorage; //endregion -@@ -139,13 +141,13 @@ public class KeychainModule extends ReactContextBaseJavaModule { +@@ -140,13 +142,13 @@ public class KeychainModule extends ReactContextBaseJavaModule { super(reactContext); prefsStorage = new PrefsStorage(reactContext); - addCipherStorageToMap(new CipherStorageFacebookConceal(reactContext)); -+ // addCipherStorageToMap(new CipherStorageFacebookConceal(reactContext)); ++ //addCipherStorageToMap(new CipherStorageFacebookConceal(reactContext)); addCipherStorageToMap(new CipherStorageKeystoreAesCbc()); // we have a references to newer api that will fail load of app classes in old androids OS @@ -36,7 +36,7 @@ index d4ded69..af35eaa 100644 } /** Allow initialization in chain. */ -@@ -277,6 +279,12 @@ public class KeychainModule extends ReactContextBaseJavaModule { +@@ -278,6 +280,12 @@ public class KeychainModule extends ReactContextBaseJavaModule { @Nullable final ReadableMap options, @NonNull final Promise promise) { try { @@ -49,7 +49,7 @@ index d4ded69..af35eaa 100644 final ResultSet resultSet = prefsStorage.getEncryptedEntry(alias); if (resultSet == null) { -@@ -299,6 +307,7 @@ public class KeychainModule extends ReactContextBaseJavaModule { +@@ -300,6 +308,7 @@ public class KeychainModule extends ReactContextBaseJavaModule { credentials.putString(Maps.USERNAME, decryptionResult.username); credentials.putString(Maps.PASSWORD, decryptionResult.password); credentials.putString(Maps.STORAGE, current.getCipherStorageName());