{ "name": "ferdium", "productName": "Ferdium", "desktopName": "ferdium.desktop", "appId": "org.ferdium.ferdium-app", "version": "7.2.3", "description": "Messaging app for WhatsApp, Slack, Telegram, Hangouts and many many more.", "author": "Ferdium Contributors (https://ferdium.org/)", "license": "Apache-2.0", "copyright": "org.ferdium", "main": "index.js", "homepage": "https://github.com/ferdium/ferdium-app", "repository": "https://github.com/ferdium/ferdium-app.git", "private": true, "engines": { "node": "24.18.1", "pnpm": "11.20.0" }, "engine-strict": true, "volta": { "node": "24.18.1", "pnpm": "11.20.0" }, "packageManager": "pnpm@11.20.0", "scripts": { "prepare": "node scripts/prepare.js", "start": "electron ./build", "start:local": "cross-env USE_LOCAL_API=1 pnpm start", "start:live": "cross-env USE_LIVE_API=1 pnpm start", "start:all-dev": "concurrently \"pnpm dev\" \"wait-on http-get://127.0.0.1:8080 && pnpm start\"", "dev": "node esbuild.mjs --watch", "test": "jest", "test:watch": "jest --watch", "typecheck": "tsc --noEmit", "lint": "eslint . --max-warnings 0", "lint:fix": "pnpm lint --cache --fix", "biome:check": "pnpm biome check .", "biome:check:fix": "pnpm biome:check --apply-unsafe", "extract": "formatjs extract \"src/**/*.{js,jsx,mjs,ts,tsx}\" --ignore=\"**/*.d.ts\" --out-file temp.json --flatten --id-interpolation-pattern '[sha512:contenthash:base64:6]' --preserve-whitespace", "compile": "formatjs compile \"temp.json\" --out-file src/i18n/locales/en-US.json", "manage-translations": "pnpm extract && pnpm compile && rimraf temp.json", "build": "preval-build-info-cli && node esbuild.mjs && node ./node_modules/electron-builder/cli.js", "contributors": "all-contributors", "reformat-files": "prettier --ignore-path .eslintignore --write --cache \"**/*.{js,jsx,mjs,ts,tsx,scss}\"", "prepare-code": "pnpm typecheck && pnpm lint:fix && pnpm biome:check:fix && pnpm reformat-files && pnpm manage-translations", "link-readme": "ts-node scripts/link-readme.ts", "minify-images": "./scripts/minify-images.sh", "start:server": "ts-node src/internal-server/test.ts", "add-crowdin-contributors": "ts-node scripts/add-crowdin-contributors.ts", "debug": "cross-env-shell DEBUG_COLORS=1 DEBUG=Ferdium:* pnpm start:all-dev" }, "dependencies": { "@adonisjs/ace": "5.1.0", "@adonisjs/bodyparser": "2.3.0", "@adonisjs/cors": "1.0.7", "@adonisjs/drive": "1.0.4", "@adonisjs/fold": "4.1.0", "@adonisjs/framework": "5.0.13", "@adonisjs/ignitor": "2.0.8", "@adonisjs/lucid": "6.3.0", "@adonisjs/shield": "1.1.0", "@adonisjs/validator": "5.1.0", "@electron/remote": "2.1.2", "@emotion/react": "11.13.3", "@emotion/styled": "11.13.0", "@mdi/js": "7.4.47", "@mdi/react": "1.6.1", "@mui/icons-material": "5.16.7", "@mui/material": "5.16.7", "@octokit/core": "5.1.0", "@sentry/electron": "4.14.0", "@superwf/mobx-react-router": "7.4.0", "@syed_umair/electron-process-manager": "1.1.0", "auto-launch": "5.0.6", "classnames": "2.5.1", "color": "4.2.3", "csstype": "3.1.3", "darkreader": "4.9.96", "dbus-next": "0.10.2", "debug": "4.3.7", "electron-dl": "3.5.2", "electron-find": "1.0.7", "electron-react-titlebar": "1.2.1", "electron-updater": "6.3.9", "electron-webauthn-linux": "0.1.1", "electron-window-state": "5.0.3", "fast-folder-size": "2.2.0", "fs-extra": "11.2.0", "google-translate-api-x": "10.7.1", "history": "5.3.0", "immutable": "4.3.7", "jsonwebtoken": "9.0.2", "jss": "10.10.0", "languagedetect": "2.0.0", "lodash": "4.17.21", "macos-version": "5.2.1", "markdown-to-jsx": "7.5.0", "minimist": "1.2.8", "mobx": "6.13.5", "mobx-localstorage": "1.2.0", "mobx-react": "7.6.0", "mobx-react-form": "6.10.1", "moment": "2.30.1", "ms": "2.1.3", "normalize-url": "6.1.0", "os-name": "4.0.1", "pretty-bytes": "5.6.0", "prop-types": "15.8.1", "rc-progress": "3.5.1", "react": "18.3.1", "react-color": "2.19.3", "react-confetti": "6.1.0", "react-dom": "18.3.1", "react-dropzone": "14.2.9", "react-electron-web-view": "2.0.1", "react-intl": "6.6.8", "react-jss": "10.10.0", "react-loader-spinner": "5.4.5", "react-modal": "3.16.1", "react-router-dom": "6.24.1", "react-sortable-hoc": "2.0.0", "react-tooltip": "5.28.0", "react-topbar-progress-indicator": "4.1.1", "react-transition-group": "4.4.5", "route-parser": "0.0.5", "sanitize-filename": "1.6.3", "semver": "7.6.3", "sqlite3": "5.1.6", "tar": "6.2.1", "tinycolor2": "1.6.0", "tslib": "2.7.0", "useragent-generator": "1.1.1-amkt-22079-finish.0", "uuid": "9.0.1", "validator": "13.12.0" }, "devDependencies": { "@biomejs/biome": "1.6.1", "@commitlint/cli": "19.5.0", "@commitlint/config-conventional": "19.5.0", "@electron/notarize": "2.5.0", "@eslint-react/eslint-plugin": "1.5.12", "@formatjs/cli": "6.2.15", "@jest/types": "29.6.3", "@types/auto-launch": "5.0.5", "@types/color": "3.0.6", "@types/fs-extra": "11.0.4", "@types/jest": "29.5.14", "@types/lodash": "4.17.13", "@types/minimist": "1.2.5", "@types/ms": "0.7.34", "@types/node": "20.14.10", "@types/prop-types": "15.7.13", "@types/react": "18.3.12", "@types/react-color": "3.0.12", "@types/react-dom": "18.3.1", "@types/react-transition-group": "4.4.11", "@types/route-parser": "0.1.7", "@types/semver": "7.5.8", "@types/tar": "6.1.13", "@types/tinycolor2": "1.4.6", "@types/uuid": "9.0.8", "@types/validator": "13.12.2", "@typescript-eslint/eslint-plugin": "7.10.0", "@typescript-eslint/parser": "7.10.0", "all-contributors-cli": "6.26.1", "chalk": "5.3.0", "concurrently": "8.2.2", "cross-env": "7.0.3", "electron": "43.3.0", "electron-builder": "26.15.7", "esbuild": "0.16.17", "esbuild-plugin-copy": "2.1.1", "esbuild-runner": "2.2.2", "esbuild-sass-plugin": "2.16.1", "eslint": "8.57.0", "eslint-config-airbnb": "19.0.4", "eslint-config-airbnb-typescript": "18.0.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.29.1", "eslint-plugin-jest": "27.9.0", "eslint-plugin-jsx-a11y": "6.8.0", "eslint-plugin-prettier": "5.1.3", "eslint-plugin-react": "7.34.1", "eslint-plugin-react-hooks": "4.6.0", "eslint-plugin-sonar": "0.13.2", "eslint-plugin-unicorn": "52.0.0", "gulp-livereload": "4.0.2", "husky": "9.1.6", "is-ci": "3.0.1", "jest": "29.7.0", "prettier": "3.3.3", "preval-build-info": "1.0.3", "rimraf": "5.0.7", "sass": "1.102.0", "simple-git": "3.27.0", "tiny-glob": "0.2.9", "ts-node": "10.9.2", "typescript": "5.4.5", "wait-on": "7.2.0" }, "overrides": { "usocket": "_EXCLUDED_" }, "optionalDependencies": { "macos-notification-state": "github:ferdium/macos-notification-state#7d740bcea260feb08197bd210912133e72853d93", "node-mac-permissions": "2.4.0" }, "browserslist": [ "last 2 Chrome versions" ], "autoload": { "App": "./src/internal-server/app" } }