{ "name": "telegram-t", "version": "12.0.20", "description": "", "author": "Alexander Zinchuk (alexander@zinchuk.com)", "license": "GPL-3.0-or-later", "type": "module", "main": "index.js", "scripts": { "dev": "cross-env APP_ENV=development webpack serve --mode development", "dev:mocked": "cross-env APP_ENV=test APP_MOCKED_CLIENT=1 webpack serve --mode development --port 1235", "build:dev": "webpack --mode development && bash ./deploy/copy_to_dist.sh", "build:staging": "cross-env APP_ENV=staging npm run build:dev", "build:mocked": "cross-env APP_ENV=test APP_MOCKED_CLIENT=1 npm run build:dev", "build:production": "webpack && bash ./deploy/copy_to_dist.sh", "web:release:production": "npm i && npm run build:production && git add -A && git commit -a -m '[Build]' --no-verify && git push", "tauri": "tauri", "tauri:dev": "tauri dev", "tauri:build": "tauri build", "telegraph:update_changelog": "node ./dev/telegraphChangelog.js", "check": "tsc && stylelint \"**/*.{css,scss}\" --cache --cache-location .cache/.stylelintcache && eslint --cache --cache-location .cache/.eslintcache", "check:fix": "stylelint \"**/*.{css,scss}\" --fix --cache --cache-location .cache/.stylelintcache && eslint --fix --cache --cache-location .cache/.eslintcache", "tl:rehash": "node ./dev/tlHash.js", "gramjs:tl": "tsx ./src/lib/gramjs/tl/generateModules.ts", "lang:ts": "tsx ./dev/generateLangTypes.js", "lang:initial": "tsx ./dev/generateInitialLangFallback.js", "icons:build": "fantasticon -c .fantasticonrc.cjs", "test": "cross-env APP_ENV=test jest --verbose --silent --forceExit", "test:playwright": "playwright test", "test:record": "playwright codegen localhost:1235", "statoscope:validate-diff": "statoscope validate --input input.json --reference reference.json", "postinstall": "node -e \"require('fs').rmSync('.cache', { recursive: true, force: true })\"", "postversion": "echo $(node -p \"require('./package.json').version\") > public/version.txt && git commit --amend --no-verify --no-edit public/version.txt" }, "engines": { "node": "^22.6 || ^24", "npm": "^10.8 || ^11" }, "lint-staged": { "*.{ts,tsx,js}": "eslint --fix", "*.{css,scss}": "stylelint --fix" }, "devDependencies": { "@babel/core": "^7.29.0", "@babel/preset-env": "^7.29.0", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@babel/register": "^7.28.6", "@eslint/js": "^9.39.2", "@glen/jest-raw-loader": "^2.0.0", "@mytonwallet/stylelint-whole-pixel": "github:mytonwallet-org/stylelint-whole-pixel#18b0b8c", "@mytonwallet/webpack-watch-file-plugin": "github:mytonwallet-org/webpack-watch-file-plugin#0e36009", "@playwright/test": "^1.58.1", "@statoscope/cli": "5.29.0", "@statoscope/webpack-plugin": "5.29.0", "@stylistic/eslint-plugin": "^5.7.1", "@stylistic/stylelint-config": "^4.0.0", "@stylistic/stylelint-plugin": "^5.0.1", "@tauri-apps/cli": "^2.9.6", "@testing-library/jest-dom": "^6.9.1", "@types/dom-chromium-ai": "^0.0.13", "@types/dom-view-transitions": "^1.0.6", "@types/hast": "^3.0.4", "@types/jest": "^30.0.0", "@types/node": "^25.1.0", "@types/react": "^19.2.10", "@types/react-dom": "^19.2.3", "@types/webpack": "^5.28.5", "@typescript-eslint/eslint-plugin": "^8.54.0", "@typescript-eslint/parser": "^8.54.0", "@webpack-cli/serve": "^3.0.1", "autoprefixer": "^10.4.24", "babel-loader": "^10.0.0", "babel-plugin-transform-import-meta": "^2.3.3", "buffer": "^6.0.3", "concurrently": "^9.2.1", "copy-webpack-plugin": "^13.0.1", "cross-env": "^10.1.0", "css-loader": "^7.1.3", "dotenv": "^17.2.3", "eslint": "^9.39.2", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jest": "^29.12.1", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-no-null": "^1.0.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks-static-deps": "git+https://github.com/zubiden/eslint-plugin-react-hooks-static-deps#c16f35b", "eslint-plugin-react-x": "^2.8.1", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-tt-multitab": "git+https://github.com/zubiden/eslint-plugin-tt-multitab#137cf50", "eslint-plugin-unused-imports": "^4.3.0", "fake-indexeddb": "^6.2.5", "fantasticon": "^4.1.0", "git-revision-webpack-plugin": "^5.0.0", "gitlog": "^5.1.0", "html-webpack-plugin": "^5.6.6", "husky": "^9.1.7", "jest": "^30.2.0", "jest-environment-jsdom": "^30.2.0", "lint-staged": "^16.2.7", "mini-css-extract-plugin": "^2.10.0", "postcss": "^8.5.6", "postcss-load-config": "^6.0.1", "postcss-loader": "^8.2.0", "postcss-modules": "^6.0.1", "react": "^19.2.4", "sass": "^1.97.3", "sass-loader": "^16.0.6", "script-loader": "^0.7.2", "serve": "^14.2.5", "stylelint": "^17.1.0", "stylelint-config-clean-order": "^8.0.0", "stylelint-config-recommended-scss": "^17.0.0", "stylelint-declaration-block-no-ignored-properties": "^3.0.0", "stylelint-group-selectors": "^1.0.10", "stylelint-high-performance-animation": "^2.0.0", "stylelint-plugin-use-baseline": "^1.2.1", "telegraph-node": "^1.0.4", "tsx": "^4.21.0", "typescript": "5.9.3", "typescript-eslint": "^8.54.0", "user-agent-data-types": "^0.4.2", "webpack": "^5.104.1", "webpack-dev-server": "^5.2.3" }, "dependencies": { "@cryptography/aes": "^0.1.1", "@tauri-apps/api": "^2.9.1", "@tauri-apps/plugin-notification": "^2.3.3", "@tauri-apps/plugin-process": "^2.3.1", "@tauri-apps/plugin-shell": "^2.3.4", "@tauri-apps/plugin-updater": "^2.9.0", "async-mutex": "^0.5.0", "emoji-data-ios": "git+https://github.com/korenskoy/emoji-data-ios#443f1c9", "fflate": "^0.8.2", "idb-keyval": "^6.2.2", "lowlight": "^3.3.0", "music-metadata": "^11.11.1", "opus-recorder": "github:Ajaxy/opus-recorder#116830a", "os-browserify": "^0.3.0", "path-browserify": "^1.0.1", "qr-code-styling": "^1.9.2" }, "browserslist": [ "baseline widely available" ] }