mirror of
https://github.com/mattermost/mattermost-mobile.git
synced 2026-11-14 23:21:13 +00:00
The ci/test-coverage step (test:ci --coverage) intermittently fails on base GitHub-hosted runners: all suites pass, then the Jest process is killed with exit 143 (SIGTERM) during coverage aggregation as memory exceeds the runner's physical RAM. This surfaces as "The hosted runner lost communication with the server" and an inflated ~59-min job. Add --workerIdleMemoryLimit=1GB so Jest recycles workers once they exceed 1GB heap, keeping peak memory under the runner ceiling. Worker count is left at the default (base runners are 4 vCPU), so wall-clock is unaffected. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
231 lines
9.0 KiB
JSON
231 lines
9.0 KiB
JSON
{
|
|
"name": "mattermost-mobile",
|
|
"version": "2.43.0",
|
|
"description": "Mattermost Mobile with React Native",
|
|
"main": "index.tsx",
|
|
"repository": "git@github.com:mattermost/mattermost-mobile.git",
|
|
"author": "Mattermost, Inc.",
|
|
"license": "Apache 2.0",
|
|
"private": true,
|
|
"engines": {
|
|
"node": "^22.11.0 || ^24.15.0",
|
|
"npm": "^10 || ^11"
|
|
},
|
|
"dependencies": {
|
|
"@formatjs/intl-datetimeformat": "7.4.2",
|
|
"@formatjs/intl-displaynames": "7.3.5",
|
|
"@formatjs/intl-getcanonicallocales": "3.2.6",
|
|
"@formatjs/intl-listformat": "8.3.5",
|
|
"@formatjs/intl-locale": "5.3.5",
|
|
"@formatjs/intl-numberformat": "9.3.5",
|
|
"@formatjs/intl-pluralrules": "6.3.5",
|
|
"@formatjs/intl-relativetimeformat": "12.3.5",
|
|
"@gorhom/bottom-sheet": "5.2.13",
|
|
"@gorhom/portal": "1.0.14",
|
|
"@mattermost/calls": "github:mattermost/calls-common#bf5c7a25d43478b7949a45d4cbbdacac17705b59",
|
|
"@mattermost/calls-native": "file:./libraries/@mattermost/calls-native",
|
|
"@mattermost/compass-icons": "0.1.53",
|
|
"@mattermost/hardware-keyboard": "file:./libraries/@mattermost/hardware-keyboard",
|
|
"@mattermost/react-native-emm": "1.7.0",
|
|
"@mattermost/react-native-network-client": "1.10.3",
|
|
"@mattermost/react-native-paste-input": "2.0.1",
|
|
"@mattermost/react-native-turbo-log": "0.6.0",
|
|
"@mattermost/rnshare": "file:./libraries/@mattermost/rnshare",
|
|
"@mattermost/rnutils": "file:./libraries/@mattermost/rnutils",
|
|
"@mattermost/secure-pdf-viewer": "file:./libraries/@mattermost/secure-pdf-viewer",
|
|
"@msgpack/msgpack": "3.1.3",
|
|
"@nozbe/watermelondb": "0.28.1-0",
|
|
"@preeternal/react-native-cookie-manager": "6.3.2",
|
|
"@react-native-camera-roll/camera-roll": "7.10.2",
|
|
"@react-native-clipboard/clipboard": "1.16.3",
|
|
"@react-native-community/cli": "20.1.3",
|
|
"@react-native-community/cli-platform-android": "20.1.3",
|
|
"@react-native-community/cli-platform-ios": "20.1.3",
|
|
"@react-native-community/datetimepicker": "9.1.0",
|
|
"@react-native-community/netinfo": "12.0.1",
|
|
"@react-native-documents/picker": "12.0.1",
|
|
"@react-native-documents/viewer": "4.0.0",
|
|
"@react-native-vector-icons/common": "13.0.0",
|
|
"@react-navigation/bottom-tabs": "7.15.13",
|
|
"@react-navigation/native": "7.2.4",
|
|
"@react-navigation/native-stack": "7.14.14",
|
|
"@react-navigation/stack": "7.8.13",
|
|
"@rneui/base": "5.0.0",
|
|
"@sentry/react-native": "8.11.0",
|
|
"@shopify/flash-list": "2.3.1",
|
|
"base-64": "1.0.0",
|
|
"commonmark": "npm:@mattermost/commonmark@0.31.2-0",
|
|
"commonmark-react-renderer": "github:mattermost/commonmark-react-renderer#81b5d27509652bae50b4b510ede777dd3bd923cf",
|
|
"deep-equal": "2.2.3",
|
|
"emoji-regex": "10.6.0",
|
|
"expo": "55.0.23",
|
|
"expo-application": "55.0.14",
|
|
"expo-crypto": "55.0.14",
|
|
"expo-device": "55.0.16",
|
|
"expo-image": "55.0.10",
|
|
"expo-linear-gradient": "55.0.13",
|
|
"expo-router": "55.0.14",
|
|
"expo-splash-screen": "55.0.20",
|
|
"expo-store-review": "55.0.13",
|
|
"expo-video-thumbnails": "55.0.14",
|
|
"expo-web-browser": "55.0.15",
|
|
"fflate": "0.8.2",
|
|
"fuse.js": "7.3.0",
|
|
"grapheme-splitter": "1.0.4",
|
|
"html-entities": "2.6.0",
|
|
"js-sha256": "0.11.1",
|
|
"mime-db": "1.54.0",
|
|
"moment-timezone": "0.6.2",
|
|
"node-html-parser": "7.1.0",
|
|
"path-to-regexp": "8.4.2",
|
|
"prismjs": "1.30.0",
|
|
"ratex-react-native": "0.1.4",
|
|
"react": "19.2.6",
|
|
"react-freeze": "1.0.4",
|
|
"react-intl": "10.1.5",
|
|
"react-native": "0.83.9",
|
|
"react-native-dotenv": "3.4.11",
|
|
"react-native-gesture-handler": "2.31.2",
|
|
"react-native-haptic-feedback": "3.0.0",
|
|
"react-native-image-picker": "8.2.1",
|
|
"react-native-incall-manager": "4.2.1",
|
|
"react-native-keyboard-controller": "1.21.10",
|
|
"react-native-keychain": "10.0.0",
|
|
"react-native-localize": "3.7.0",
|
|
"react-native-nitro-bg-timer-plus": "0.3.2",
|
|
"react-native-nitro-modules": "0.35.6",
|
|
"react-native-notifications": "5.2.2",
|
|
"react-native-performance": "6.0.0",
|
|
"react-native-permissions": "5.5.1",
|
|
"react-native-reanimated": "4.3.1",
|
|
"react-native-safe-area-context": "5.7.0",
|
|
"react-native-screens": "4.24.0",
|
|
"react-native-share": "12.3.1",
|
|
"react-native-svg": "15.15.4",
|
|
"react-native-url-polyfill": "3.0.0",
|
|
"react-native-video": "6.19.2",
|
|
"react-native-walkthrough-tooltip": "1.6.0",
|
|
"react-native-webrtc": "124.0.7",
|
|
"react-native-worklets": "0.8.3",
|
|
"react-syntax-highlighter": "16.1.1",
|
|
"semver": "7.8.0",
|
|
"tinycolor2": "1.6.0",
|
|
"url-parse": "1.5.10"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/eslint-parser": "7.28.6",
|
|
"@babel/plugin-proposal-decorators": "7.29.0",
|
|
"@babel/plugin-transform-class-properties": "7.28.6",
|
|
"@babel/plugin-transform-flow-strip-types": "7.27.1",
|
|
"@babel/plugin-transform-runtime": "7.29.0",
|
|
"@babel/preset-env": "7.29.5",
|
|
"@babel/preset-typescript": "7.28.5",
|
|
"@babel/runtime": "7.29.2",
|
|
"@react-native/babel-preset": "0.83.9",
|
|
"@react-native/eslint-config": "0.83.9",
|
|
"@react-native/metro-config": "0.83.9",
|
|
"@react-native/typescript-config": "0.83.9",
|
|
"@stylistic/eslint-plugin": "5.10.0",
|
|
"@testing-library/react-native": "13.3.3",
|
|
"@types/base-64": "1.0.2",
|
|
"@types/commonmark": "0.27.10",
|
|
"@types/commonmark-react-renderer": "4.3.4",
|
|
"@types/deep-equal": "1.0.4",
|
|
"@types/jest": "30.0.0",
|
|
"@types/lodash": "4.17.24",
|
|
"@types/mime-db": "1.43.6",
|
|
"@types/pako": "2.0.4",
|
|
"@types/querystringify": "2.0.2",
|
|
"@types/react": "19.2.14",
|
|
"@types/react-native-dotenv": "0.2.2",
|
|
"@types/react-syntax-highlighter": "15.5.13",
|
|
"@types/semver": "7.7.1",
|
|
"@types/tinycolor2": "1.4.6",
|
|
"@types/tough-cookie": "4.0.5",
|
|
"@types/url-parse": "1.4.11",
|
|
"@types/uuid": "10.0.0",
|
|
"@typescript-eslint/eslint-plugin": "8.59.2",
|
|
"@typescript-eslint/parser": "8.59.2",
|
|
"babel-plugin-formatjs": "11.3.6",
|
|
"babel-plugin-module-resolver": "5.0.3",
|
|
"eslint": "9.39.4",
|
|
"eslint-plugin-header": "3.1.1",
|
|
"eslint-plugin-import": "2.32.0",
|
|
"eslint-plugin-jest": "29.15.2",
|
|
"eslint-plugin-react": "7.37.5",
|
|
"eslint-plugin-react-hooks": "7.1.1",
|
|
"husky": "9.1.7",
|
|
"jest": "29.7.0",
|
|
"jest-cli": "29.7.0",
|
|
"jest-expo": "55.0.17",
|
|
"jetifier": "2.0.0",
|
|
"mmjstool": "github:mattermost/mattermost-utilities#83b1b311972b8f5e750aae4019457a40abb5aa44",
|
|
"nock": "14.0.15",
|
|
"patch-package": "8.0.1",
|
|
"react-test-renderer": "19.2.6",
|
|
"timezones.json": "1.7.2",
|
|
"tough-cookie": "6.0.1",
|
|
"ts-jest": "29.4.9",
|
|
"typescript": "6.0.3",
|
|
"uuid": "14.0.0"
|
|
},
|
|
"overrides": {
|
|
"@babel/runtime": "7.29.2",
|
|
"postcss": "8.5.13",
|
|
"xcode": {
|
|
"uuid": "14.0.0"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"android": "react-native run-android",
|
|
"build:android": "./scripts/build.sh apk",
|
|
"build:android-unsigned": "./scripts/build.sh apk unsigned",
|
|
"build:ios": "./scripts/build.sh ipa",
|
|
"build:ios-sim": "./scripts/build.sh ipa simulator",
|
|
"build:ios-unsigned": "./scripts/build.sh ipa unsigned",
|
|
"check": "npm run lint && npm run tsc",
|
|
"check-test": "npm run lint && npm run tsc && npm run test",
|
|
"clean": "./scripts/clean.sh",
|
|
"e2e:android": "cd detox && npm run e2e:android-build && npm run e2e:android-test && cd ..",
|
|
"e2e:ios": "cd detox && npm run e2e:ios-test && cd ..",
|
|
"fix": "npm run lint -- --fix",
|
|
"i18n-clean-empty": "npm run mmjstool -- i18n clean-empty --mobile-dir .",
|
|
"i18n-extract": "npm run mmjstool -- i18n extract-mobile",
|
|
"ios": "react-native run-ios",
|
|
"ios-gems": "bundle install",
|
|
"intune:disable": "./scripts/intune-disable.sh",
|
|
"intune:enable": "INTUNE_ENABLED=1 npm run intune:link && INTUNE_ENABLED=1 npm run pod-install",
|
|
"intune:init": "./scripts/intune-init.sh",
|
|
"intune:link": "npm install --install-links --no-save ./libraries/@mattermost/intune",
|
|
"intune:status": "./scripts/intune-status.sh",
|
|
"lint": "eslint --ignore-pattern .gitignore --ignore-pattern node_modules --quiet .",
|
|
"mmjstool": "mmjstool",
|
|
"pod-install": "cd ios && RCT_NEW_ARCH_ENABLED=1 pod install",
|
|
"postinstall": "patch-package && ./scripts/postinstall.sh",
|
|
"prepare": "husky",
|
|
"preinstall": "./scripts/preinstall.sh && npx solidarity",
|
|
"start": "react-native start --host 127.0.0.1",
|
|
"test": "NODE_OPTIONS=--max_old_space_size=12000 jest --maxWorkers=4",
|
|
"test:ci": "NODE_OPTIONS=--max_old_space_size=12000 jest --verbose=false --forceExit --workerIdleMemoryLimit=1GB",
|
|
"test:ci:coverage": "npm run test:ci -- --coverage",
|
|
"test:coverage": "npm test -- --coverage",
|
|
"test:watch": "npm test -- --watch",
|
|
"tsc": "NODE_OPTIONS=--max_old_space_size=12000 tsc --noEmit",
|
|
"updatesnapshot": "NODE_OPTIONS=--max_old_space_size=12000 jest --updateSnapshot"
|
|
},
|
|
"expo": {
|
|
"autolinking": {
|
|
"exclude": [
|
|
"expo-keep-awake",
|
|
"expo-font"
|
|
],
|
|
"android": {
|
|
"buildFromSource": [
|
|
"expo-image",
|
|
"expo-video-thumbnails"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|