{
  "name": "telegram-t",
  "version": "12.0.29",
  "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:ts": "tsc && eslint --cache --cache-location .cache/.eslintcache",
    "check:css": "stylelint \"**/*.{css,scss}\" --cache --cache-location .cache/.stylelintcache",
    "fix:ts": "tsc && eslint --cache --cache-location .cache/.eslintcache --fix",
    "fix:css": "stylelint \"**/*.{css,scss}\" --cache --cache-location .cache/.stylelintcache --fix",
    "check": "npm run check:ts && npm run check:css",
    "fix": "npm run fix:ts && npm run fix:css",
    "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": "tsx ./dev/buildIcons.ts",
    "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 --cache --cache-location .cache/.eslintcache --fix",
    "*.{css,scss}": "stylelint --cache --cache-location .cache/.stylelintcache --fix"
  },
  "devDependencies": {
    "@babel/core": "^7.29.0",
    "@babel/preset-env": "^7.29.2",
    "@babel/preset-react": "^7.28.5",
    "@babel/preset-typescript": "^7.28.5",
    "@babel/register": "^7.28.6",
    "@eslint-react/eslint-plugin": "^3.0.0",
    "@eslint/js": "^10.0.1",
    "@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.2",
    "@statoscope/cli": "5.29.0",
    "@statoscope/webpack-plugin": "5.29.0",
    "@stylistic/eslint-plugin": "^5.10.0",
    "@stylistic/stylelint-config": "^5.0.0",
    "@stylistic/stylelint-plugin": "^5.1.0",
    "@tauri-apps/cli": "^2.10.1",
    "@testing-library/jest-dom": "^6.9.1",
    "@types/dom-chromium-ai": "^0.0.16",
    "@types/dom-view-transitions": "^1.0.6",
    "@types/hast": "^3.0.4",
    "@types/jest": "^30.0.0",
    "@types/node": "^25.5.0",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@types/webpack": "^5.28.5",
    "@typescript-eslint/eslint-plugin": "^8.58.0",
    "@typescript-eslint/parser": "^8.58.0",
    "@webpack-cli/serve": "^3.0.1",
    "autoprefixer": "^10.4.27",
    "babel-loader": "^10.1.1",
    "babel-plugin-transform-import-meta": "^2.3.3",
    "buffer": "^6.0.3",
    "concurrently": "^9.2.1",
    "copy-webpack-plugin": "^14.0.0",
    "cross-env": "^10.1.0",
    "css-loader": "^7.1.4",
    "dotenv": "^17.3.1",
    "eslint": "^10.1.0",
    "eslint-import-resolver-typescript": "^4.4.4",
    "eslint-plugin-import-x": "^4.16.2",
    "eslint-plugin-jest": "^29.15.1",
    "eslint-plugin-no-null": "^1.0.2",
    "eslint-plugin-react-hooks-static-deps": "github:zubiden/eslint-plugin-react-hooks-static-deps#160ac4a",
    "eslint-plugin-react-x": "^3.0.0",
    "eslint-plugin-simple-import-sort": "^12.1.1",
    "eslint-plugin-tt-multitab": "github:zubiden/eslint-plugin-tt-multitab#137cf50",
    "eslint-plugin-unused-imports": "^4.4.1",
    "fake-indexeddb": "^6.2.5",
    "git-revision-webpack-plugin": "^5.0.0",
    "gitlog": "^5.1.0",
    "html-webpack-plugin": "^5.6.6",
    "husky": "^9.1.7",
    "jest": "^30.3.0",
    "jest-environment-jsdom": "^30.3.0",
    "lint-staged": "^16.4.0",
    "mini-css-extract-plugin": "^2.10.2",
    "postcss": "^8.5.8",
    "postcss-load-config": "^6.0.1",
    "postcss-loader": "^8.2.1",
    "postcss-modules": "^6.0.1",
    "react": "^19.2.4",
    "sass": "^1.98.0",
    "sass-loader": "^16.0.7",
    "script-loader": "^0.7.2",
    "serve": "^14.2.6",
    "stylelint": "^17.6.0",
    "stylelint-config-clean-order": "^8.0.1",
    "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.4.1",
    "svgtofont": "^6.5.1",
    "telegraph-node": "^1.0.4",
    "tsx": "^4.21.0",
    "typescript": "^6.0.2",
    "typescript-eslint": "^8.58.0",
    "user-agent-data-types": "^0.4.3",
    "webpack": "^5.105.4",
    "webpack-dev-server": "^5.2.3"
  },
  "dependencies": {
    "@cryptography/aes": "^0.1.1",
    "@tauri-apps/api": "^2.10.1",
    "@tauri-apps/plugin-notification": "^2.3.3",
    "@tauri-apps/plugin-process": "^2.3.1",
    "@tauri-apps/plugin-shell": "^2.3.5",
    "@tauri-apps/plugin-updater": "^2.10.0",
    "async-mutex": "^0.5.0",
    "emoji-data-ios": "git+https://github.com/korenskoy/emoji-data-ios#30529a2",
    "fflate": "^0.8.2",
    "idb-keyval": "^6.2.2",
    "lowlight": "^3.3.0",
    "music-metadata": "^11.12.3",
    "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"
  ]
}
