Rocket.Chat.ReactNative/package.json

228 lines
8.4 KiB
JSON
Raw Normal View History

2017-08-03 18:23:43 +00:00
{
"name": "rocket-chat-reactnative",
2021-07-28 20:20:09 +00:00
"version": "4.19.0",
2017-08-03 18:23:43 +00:00
"private": true,
"scripts": {
"start": "react-native start",
2017-08-05 18:16:32 +00:00
"test": "jest",
2017-11-13 13:07:35 +00:00
"test-update": "jest --updateSnapshot",
2017-08-05 18:16:32 +00:00
"lint": "eslint .",
"ci": "npm run precommit && codecov",
"ios": "npx react-native run-ios",
2020-12-16 14:41:02 +00:00
"android": "npx react-native run-android --variant=experimentalPlayDebug",
"android-whitelabel": "npx react-native run-android --main-activity chat.rocket.reactnative.MainActivity --variant=experimentalPlayDebug --appId",
2017-08-09 13:12:00 +00:00
"log-android": "react-native log-android",
"snyk-protect": "snyk protect",
"precommit": "lint-staged",
"generate-source-maps-ios": "react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ios-release.bundle --sourcemap-output ios-release.bundle.map",
"generate-source-maps-android": "bugsnag-sourcemaps",
"postinstall": "patch-package && jetify",
"prepare": "husky install"
},
"lint-staged": {
"*.{js,ts,tsx}": [
"eslint",
"jest --bail --findRelatedTests"
]
},
2017-08-03 18:23:43 +00:00
"dependencies": {
"@codler/react-native-keyboard-aware-scroll-view": "^1.0.1",
"@nozbe/watermelondb": "0.19.0",
"@react-native-community/art": "^1.2.0",
"@react-native-community/async-storage": "1.12.1",
"@react-native-community/blur": "^3.6.0",
"@react-native-community/cameraroll": "4.0.4",
"@react-native-community/datetimepicker": "3.5.2",
"@react-native-community/hooks": "2.6.0",
"@react-native-community/masked-view": "0.1.11",
"@react-native-community/netinfo": "6.0.0",
"@react-native-community/picker": "^1.8.1",
"@react-native-community/slider": "3.0.3",
"@react-native-cookies/cookies": "6.0.8",
"@react-native-firebase/analytics": "^7.3.1",
"@react-native-firebase/app": "^8.2.0",
"@react-native-firebase/crashlytics": "^8.1.2",
"@react-navigation/drawer": "5.12.5",
"@react-navigation/native": "5.9.4",
"@react-navigation/stack": "5.14.5",
"@rocket.chat/react-native-fast-image": "^8.2.0",
"@rocket.chat/sdk": "RocketChat/Rocket.Chat.js.SDK#mobile",
"@rocket.chat/ui-kit": "0.13.0",
"bugsnag-react-native": "2.23.10",
[NEW] E2E Encryption (#2394) * Add E2EKey to Subscription Model * Install react-native-simple-crypto * Install bytebuffer * Add translations * CreateChannel Encrypted toggle * Request E2E_Enabled setting * Add some E2E API methods * POC E2E Encryption * Garbage remove * Remove keys cleaner * Android cast JWK -> PKCS1 * Initialize E2E when Login Success * Add some translations * Add e2e property to Message model * Send Encrypted messages * (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys * (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys * Create an encrypted channel * Fix app crashing on RoomsList * Create room key * Set Room E2E Key (Android) * Edit room encrypted * Show encrypted icon on messages * logEvents * Decrypt pending subscriptions & messages * Handle user cancel e2e password entry * E2ESavePasswordView * Update Snapshot * Add encrypted props to message on Send * Thread messages encryption * E2E -> Encryption * Share Extension: Share encrypted text * (POC) Search messages on Encrypted room * Provide room key to new users * Request roomKey on stream-notify-room-users * Add e2eKeyId to Room Model * (WIP) E2E Encryption Screens * Remove encryption subscription file * Move E2E_Enable to Server Model * Encryption List Banner * Move Encryption init to Sagas * Show banner only when enabled * Use RocketChat/react-native-simple-crypto * Search on WM only when is an Encrypted channel * (WIP) Encryption Banner * Encryption banner * Patch -> Fork * Improve send encrypted message * Update simple-crypto * Not decrypt already decrypted messages * Add comments * Change eslint disable to inline * Improve code * Remove comment * Some fixes * (WIP) Encryption Screens * Improve sub find * Resend an encrypted message * Fix comment * Code improvements * Hide e2e buttons on features if it is not enabled * InApp notifications of a encrypted room * Encryption stop logic * Edit encrypted message * DB batch on decryptPending * Encryption ready client * Comments * Handle getRoomInstance errors * Multiple messages decrypt * Remove unnecessary try/catch * Fix decrypt all messages history * Just add a questionmark * Fix some subscriptions missing decrypt * Disable request key logic * Fix unicode emojis * Fix e2ekey request * roomId -> subscription * Decrypt subscription after merge * E2ERoom -> EncryptionRoom * Fix infinite loading * Handle import key errors * Handle request key errors * Move e2eRequestRoomKey to Rocket.Chat * WIP handshake when key should be requested * Add search messages explanation * Remove some TODO and update comments * Improvements * Dont show message hash to user * Handle key request & prevent multiple calls * Request E2EKey on decryptSubscription that doesn't exists on database yet * Insert decrypted subscription * Fix crash after login * Decrypt sub when receive the key * Decrypt pending messages of a room * Encrypted as a switch * Buffer to Base64 URI Safe * Add a relevant comment * Prevent import key without a privateKey * Prevent create a new instance when client is not ready * Update simple-crypto & remove replace trick * More comments * Remove useless comment * Remove useless try/catch * I18n all E2E screens * E2ESavePassword -> E2ESaveYourPassword * Prevent multiple views on message when is not encrypted * Fix encryption toggle not working sometimes * follow some suggestions * dont rotate icons * remove unnecessary condition * remove unreachable event * create channel comment * disable no-bitwise rule for entire file * loadKeys -> persistKeys * getMasterKey -> generateMasterKey * explicit difference between E2EKey & e2eKeyId * roomId -> rid * group columns * Remove server selector * missing log events * remove comment * use stored public key * update simple-crypto & remove base64-js patch * add some logs * remove unreachable condition * log errors * handle errors on provide key directly on subscription * Downgrade RocketChat/react-native-simple-crypto * improve get room instance * migration of older apps * check encrypted status before send a message * wait client ready * use our own base64-js * add more jest tests * explain return * remove unncessary stop * thrown error to caller * remove superfluous checks * use Encryption property * change ready state logic * ready -> establishing * encryption.room -> encryptionRoom * EncryptionRoom -> Room * add documentation * wait establishing before provide a room key * remove superfluous condition * improve error handling logic * fallback e2ekey set * remove no longer necessary check * remove e.g. * improve getRoomInstance * import from index * use batch * fix a comment * decrypt tmsg * dont show hash when message is encrypted * Fix detox * Apply suggestions from code review Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-09-11 14:31:38 +00:00
"bytebuffer": "^5.0.1",
"color2k": "1.2.4",
"commonmark": "git+https://github.com/RocketChat/commonmark.js.git",
"commonmark-react-renderer": "git+https://github.com/RocketChat/commonmark-react-renderer.git",
"dequal": "^2.0.2",
"ejson": "2.2.1",
"eslint-config-airbnb": "^18.1.0",
"expo-apple-authentication": "^2.2.1",
"expo-av": "8.2.1",
"expo-file-system": "9.0.1",
"expo-haptics": "8.2.1",
"expo-keep-awake": "8.2.1",
"expo-local-authentication": "9.2.0",
"expo-video-thumbnails": "5.1.0",
"expo-web-browser": "8.3.1",
"hoist-non-react-statics": "3.3.2",
"i18n-js": "3.8.0",
"js-base64": "3.6.1",
"js-sha256": "^0.9.0",
"lint-staged": "^11.1.0",
"lodash": "4.17.21",
"moment": "2.29.1",
"pretty-bytes": "5.6.0",
"prop-types": "15.7.2",
"react": "17.0.1",
"react-native": "RocketChat/react-native#0.64.2",
"react-native-animatable": "^1.3.3",
"react-native-appearance": "0.3.4",
"react-native-background-timer": "2.4.1",
"react-native-bootsplash": "3.2.4",
"react-native-config-reader": "^4.1.1",
"react-native-console-time-polyfill": "1.2.3",
"react-native-device-info": "8.1.3",
"react-native-document-picker": "5.2.0",
[NEW] Passcode and biometric unlock (#2059) * Update expo libs * Configure expo-local-authentication * ScreenLockedView * Authenticate server change * Auth on app resume * localAuthentication util * Add servers.lastLocalAuthenticatedSession column * Save last session date on background * Use our own version of app state redux * Fix libs * Remove inactive * ScreenLockConfigView * Apply on saved data * Auto lock option label * Starting passcode * Basic passcode flow working * Change passcode * Check if biometry is enrolled * Use fork * Migration * Patch expo-local-authentication * Use async storage * Styling * Timer * Refactor * Lock orientation portrait when not on tablet * share extension * Deep linking * Share extension * Refactoring passcode * use state * Stash * Refactor * Change passcode * Animate dots on error * Matching passcodes * Shake * Remove lib * Delete button * Fade animation on modal * Refactoring * ItemInfo * I18n * I18n * Remove unnecessary prop * Save biometry column * Raise time to lock to 30 seconds * Vibrate on wrong confirmation passcode * Reset attempts and save last authentication on local passcode confirmation * Remove inline style * Save last auth * Fix header blink * Change function name * Fix android modal * Fix vibration permission * PasscodeEnter calls biometry * Passcode on the state * Biometry button on PasscodeEnter * Show whole passcode * Secure passcode * Save passcode with promise to prevent empty passcodes and immediately lock * Patch expo-local-authentication * I18n * Fix biometry being called every time * Blur screen on app inactive * Revert "Blur screen on app inactive" This reverts commit a4ce812934adcf6cf87eb1a92aec9283e2f26753. * Remove immediately because of how Activities work on Android * Pods * New layout * stash * Layout refactored * Fix icons * Force set passcode from server * Lint * Improve permission message * Forced passcode subtitle * Disable based on admin's choice * Require local authentication on login success * Refactor * Update tests * Update react-native-device-info to fix notch * Lint * Fix modal * Fix icons * Fix min auto lock time * Review * keep enabled on mobile * fix forced by admin when enable unlock with passcode * use DEFAULT_AUTO_LOCK when manual enable screenLock * fix check has passcode * request biometry on first password * reset auto time lock when disabled on server Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
2020-05-08 17:04:37 +00:00
"react-native-easy-grid": "^0.2.2",
"react-native-easy-toast": "^1.2.0",
"react-native-gesture-handler": "^1.10.3",
"react-native-image-crop-picker": "RocketChat/react-native-image-crop-picker",
2019-12-18 21:13:11 +00:00
"react-native-image-progress": "^1.1.1",
"react-native-jitsi-meet": "RocketChat/react-native-jitsi-meet",
2019-11-25 20:01:17 +00:00
"react-native-keycommands": "2.0.3",
"react-native-localize": "2.1.1",
"react-native-mime-types": "2.3.0",
"react-native-mmkv-storage": "0.3.5",
"react-native-modal": "11.10.0",
"react-native-navigation-bar-color": "2.0.1",
"react-native-notifications": "2.1.7",
"react-native-notifier": "1.6.1",
"react-native-orientation-locker": "1.3.1",
"react-native-picker-select": "^8.0.4",
"react-native-platform-touchable": "1.1.1",
"react-native-popover-view": "4.0.1",
"react-native-progress": "4.1.2",
2020-03-03 20:27:38 +00:00
"react-native-prompt-android": "^1.1.0",
"react-native-reanimated": "1.9.0",
"react-native-restart": "0.0.22",
"react-native-safe-area-context": "3.2.0",
"react-native-screens": "2.9.0",
"react-native-scroll-bottom-sheet": "0.6.2",
"react-native-scrollable-tab-view": "^1.0.0",
"react-native-simple-crypto": "RocketChat/react-native-simple-crypto#0.5.0",
"react-native-slowlog": "^1.0.2",
"react-native-ui-lib": "RocketChat/react-native-ui-lib#minor-improvements",
"react-native-unimodules": "0.10.1",
"react-native-vector-icons": "8.1.0",
"react-native-webview": "10.3.2",
"react-redux": "7.2.4",
"reactotron-react-native": "5.0.0",
"redux": "4.1.0",
[NEW] E2E Encryption push (iOS) (#2463) * link pods to notification service * push encryption poc * decrypt room key poc * read user key from mmkv and cast into a pkcs * push decrypt poc (iOS) * expose needed watermelon methods * watermelon -> database * indent & simple-crypto update * string extensions * storage * toBase64 -> toData * remove a forced unwrap * remove unused import * database driver * improvement * folder structure & watermelon bridge * more improvement stuff * watermelon -> database * reuse database instance * improvement * database fix: bypass watermelon cache * some code improvements * encryption instances * start api stuff * network layer * improve notification service * improve folder structure * watermelon patch * retry fetch logic * rocketchat class * fix try to decrypt without a roomKey * fallback to original content that is translated * some fixes to rocketchat logic * merge develop * remove unnecessary extension * [CHORE] Improve reply notification code (iOS) * undo sign changes * remove mocked value * import direct from library * send message request * reply notification with encrypted message working properly * revert apple sign * fix api onerror * trick to display sender name on group notifications * revert data.host change * fix some multithread issues * use sendername sent by server * small improvement * Bump crypto lib * Update ios/NotificationService/NotificationService.swift * add experimental string * remove trailing slash * remove trailing slash on reply * fix decrypt messages Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-09-24 18:34:13 +00:00
"redux-immutable-state-invariant": "2.1.0",
2019-11-18 17:52:08 +00:00
"redux-saga": "1.1.3",
"remove-markdown": "^0.3.0",
[NEW] Channel avatars (#2504) * [WIP] Avatar cache invalidation * [WIP] Avatar container * [IMPROVEMENT] Avatar container * [CHORE] Improve code * Allow static image on Avatar * Fix avatar changing while change username (#1583) Co-authored-by: Prateek93a <prateek93a@gmail.com> * Add default props to properly update on Sidebar and ProfileView * Fix subscribing on the wrong moment * Storyshots update * RoomItem using Avatar Component * use iife to unsubscribe from user * Use component on avatar container * RoomItem as a React.Component * Move servers models to servers folder * Avatar -> AvatarContainer * Users indexed fields * Initialize author and check if u is present * Not was found -> User not found (turn comments more relevant) * RoomItemInner -> Wrapper * Revert Avatar Touchable logic * Revert responsability of LeftButton on Tablet Mode * Prevent setState on constructor * Run avatarURL only when its not static * Add streams RC Version * Move entire add user logic to result.success * Reorder init on RoomItem * onPress as a class function * Fix roomItem using same username * Add avatar Stories * Fix pick an image from gallery on ProfileView * Format Avatar URL to use RoomId. Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com> * edit room avatar * invalidate cache of room images * reinit avatar if something change * read avatar cache on search * room avatar changed system message * add avatar by rid test * update snapshot * etag cache on select channel * reset room avatar * increase caching to have a better image quality * fix lgtm warn * invalidate ci cache * get avatar etag on select users of create discussion * invalidate ci cache * Fix migration * Fix sidebar avatar not updating * Remove outdated comment * Tests Co-authored-by: Prateek93a <prateek93a@gmail.com> Co-authored-by: Diego Mello <diegolmello@gmail.com> Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
2020-10-30 13:51:04 +00:00
"reselect": "4.0.0",
"rn-extensions-share": "RocketChat/rn-extensions-share",
2020-09-30 19:31:59 +00:00
"rn-fetch-blob": "0.12.0",
"rn-root-view": "1.0.3",
"semver": "7.3.5",
"ua-parser-js": "0.7.28",
"url-parse": "1.5.1",
"use-deep-compare-effect": "1.6.1",
"xregexp": "5.0.2"
2017-08-03 18:23:43 +00:00
},
"devDependencies": {
"@babel/core": "^7.12.9",
"@babel/eslint-parser": "^7.13.4",
"@babel/eslint-plugin": "^7.13.0",
"@babel/plugin-proposal-decorators": "^7.8.3",
"@babel/runtime": "^7.12.5",
"@storybook/addon-storyshots": "5.3.21",
"@storybook/react-native": "5.3.25",
"@types/react-native": "^0.62.7",
"axios": "0.21.1",
"babel-jest": "27.0.2",
"babel-plugin-transform-remove-console": "^6.9.4",
"bugsnag-sourcemaps": "1.3.0",
"codecov": "3.8.2",
"detox": "18.17.0",
"eslint": "7.14.0",
"eslint-plugin-import": "2.22.0",
"eslint-plugin-jsx-a11y": "6.3.1",
"eslint-plugin-react": "7.20.3",
"eslint-plugin-react-native": "3.8.1",
"husky": "^6.0.0",
2017-11-13 13:07:35 +00:00
"identity-obj-proxy": "^3.0.0",
"jest": "^26.6.3",
"jest-cli": "^27.0.6",
"metro-react-native-babel-preset": "^0.64.0",
"mocha": "9.0.1",
"otp.js": "1.2.0",
"patch-package": "6.4.7",
"react-dom": "17.0.1",
"react-test-renderer": "17.0.1",
"reactotron-redux": "3.1.3",
"reactotron-redux-saga": "4.2.3"
2017-08-03 18:23:43 +00:00
},
"jest": {
2018-05-23 13:39:18 +00:00
"testPathIgnorePatterns": [
2019-03-01 14:40:22 +00:00
"e2e",
"node_modules"
2018-05-23 13:39:18 +00:00
],
"transformIgnorePatterns": [
"node_modules/(?!(jest-)?@?react-native|@react-native-community|@react-navigation)"
],
"preset": "react-native",
"coverageDirectory": "./coverage/",
2017-11-13 13:07:35 +00:00
"collectCoverage": true,
"moduleNameMapper": {
".+\\.(css|styl|less|sass|scss)$": "identity-obj-proxy",
".+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js"
},
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
2017-11-13 13:07:35 +00:00
}
},
"snyk": true,
"engines": {
"node": ">=8.x",
Beta (#265) * Fabric iOS * Fabric configured on iOS and Android * - react-native-fabric configured - login tracked * README updated * Run scripts from README updated * README scripts * get rooms and messages by rest * user status * more improves * more improves * send pong on timeout * fix some methods * more tests * rest messages * Room actions (#266) * Toggle notifications * Search messages * Invite users * Mute/Unmute users in room * rocket.cat messages * Room topic layout fixed * Starred messages loading onEndReached * Room actions onEndReached * Unnecessary login request * Login loading * Login services fixed * User presence layout * ïmproves on room actions view * Removed unnecessary data from SelectedUsersView * load few messages on open room, search message improve * fix loading messages forever * Removed state from search * Custom message time format * secureTextEntry layout * Reduce android app size * Roles subscription fix * Public routes navigation * fix reconnect * - New login/register, login, register * proguard * Login flux * App init/restore * Android layout fixes * Multiple meteor connection requests fixed * Nested attachments * Nested attachments * fix check status * New login layout (#269) * Public routes navigation * New login/register, login, register * Multiple meteor connection requests fixed * Nested attachments * Button component * TextInput android layout fixed * Register fixed * Thinner close modal button * Requests /me after login only one time * Static images moved * fix reconnect * fix ddp * fix custom emoji * New message layout (#273) * Grouping messages * Message layout * Users typing animation * Image attachment layout
2018-04-24 19:34:03 +00:00
"npm": ">=4.x"
2018-05-23 13:39:18 +00:00
},
"detox": {
"runner-config": "e2e/.mocharc.json",
"specs": "e2e/tests",
2018-05-23 13:39:18 +00:00
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/Rocket.Chat Experimental.app",
"build": "xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"device": {
"type": "iPhone 11 Pro"
}
},
"ios.sim.release": {
"binaryPath": "ios/build/Build/Products/Release-iphonesimulator/Rocket.Chat Experimental.app",
"build": "xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Release -sdk iphonesimulator -derivedDataPath ios/build",
2018-05-23 13:39:18 +00:00
"type": "ios.simulator",
"device": {
"type": "iPhone 11 Pro"
},
"artifacts": {
"plugins": {
"screenshot": {
"enabled": true,
"shouldTakeAutomaticSnapshots": true,
"keepOnlyFailedTestsArtifacts": true,
"takeWhen": {
"testStart": true,
"testDone": true,
"appNotReady": true
}
}
}
}
2018-05-23 13:39:18 +00:00
}
}
2017-08-03 18:23:43 +00:00
}
}