{
  "name": "session-desktop",
  "productName": "Session",
  "description": "Private messaging from your desktop",
  "version": "1.14.3",
  "license": "GPL-3.0",
  "author": {
    "name": "Oxen Labs",
    "email": "team@oxen.io"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/session-foundation/session-desktop.git"
  },
  "main": "ts/mains/main_node.js",
  "resolutions": {
    "minimist": "^1.2.6",
    "getobject": "^1.0.0",
    "ansi-regex": "^4.1.1",
    "async": "^2.6.4",
    "lodash": "^4.17.20",
    "ini": "^1.3.6",
    "ejs": "^3.1.7",
    "react": "18.3.1",
    "@types/react": "18.3.3",
    "glob-parent": "^6.0.1",
    "got": "^11.8.5",
    "jpeg-js": "^0.4.4",
    "json5": "^2.2.2",
    "loader-utils": "^2.0.4",
    "http-cache-semantics": "^4.1.1",
    "terser": "^5.14.2",
    "minimatch": "^3.0.5"
  },
  "scripts": {
    "start-prod": "cross-env NODE_ENV=production NODE_APP_INSTANCE=devprod$MULTI electron .",
    "start-prod:pretty": "cross-env NODE_ENV=production NODE_APP_INSTANCE=devprod$MULTI electron . | npx bunyan",
    "start-dev": "cross-env NODE_ENV=development NODE_APP_INSTANCE=devprod$MULTI electron .",
    "build-everything": "yarn clean && yarn protobuf && yarn update-git-info && yarn sass && yarn build:locales-soft && tsc && yarn build:workers",
    "build-everything:soft": "yarn clean && yarn protobuf && yarn update-git-info && yarn sass && yarn build:locales-soft && tsc && yarn build:workers",
    "build-everything:watch": "yarn clean && yarn protobuf && yarn update-git-info && yarn sass && yarn build:locales-soft && yarn build:workers && yarn tsc -w",
    "start-dev:pretty": "cross-env NODE_ENV=production NODE_APP_INSTANCE=devprod$MULTI electron . | npx bunyan",
    "build:workers": "yarn worker:utils && yarn worker:libsession",
    "build:locales": "python3 ./tools/localization/generateLocales.py --generate-types --print-problems --error-on-problems --error-old-dynamic-variables",
    "build:locales-soft": "python3 ./tools/localization/generateLocales.py --generate-types --print-problems --print-problem-strings",
    "watch": "yarn clean && yarn protobuf && yarn update-git-info && yarn build-everything:watch",
    "protobuf": "pbjs --target static-module --wrap commonjs --out ts/protobuf/compiled.js protos/*.proto && pbts --out ts/protobuf/compiled.d.ts ts/protobuf/compiled.js --force-long",
    "sass": "rimraf 'stylesheets/dist/' && webpack  --config=./sass.config.js",
    "clean": "rimraf 'ts/**/*.js' 'ts/*.js' 'ts/*.js.map' 'ts/**/*.js.map' && rimraf tsconfig.tsbuildinfo;",
    "lint-full": "yarn dedup-yarn-lock && yarn format-full && eslint .",
    "format-full": "prettier --list-different --write \"*.{css,js,json,scss,ts,tsx}\" \"./**/*.{css,js,json,scss,ts,tsx}\"",
    "start-prod-test": "cross-env NODE_ENV=production NODE_APP_INSTANCE=$MULTI electron .",
    "test": "mocha",
    "build-release-base": "cross-env NODE_ENV=production electron-builder --config.extraMetadata.environment=production",
    "build-release": "yarn build-release-base --publish=never --config.directories.output=release",
    "build-release-publish": "yarn build-release-base --publish=always",
    "ready": "yarn dedup-yarn-lock --fail && yarn build-everything && yarn lint-full && yarn test",
    "postinstall": "yarn patch-package && yarn electron-builder install-app-deps",
    "update-git-info": "node ./build/updateLocalConfig.js",
    "worker:utils": "webpack  --config=./utils.worker.config.js",
    "worker:libsession": "rimraf 'ts/webworker/workers/node/libsession/*.node' && webpack  --config=./libsession.worker.config.js",
    "dedup-yarn-lock": "npx --yes yarn-deduplicate yarn.lock",
    "prepare": "husky install"
  },
  "dependencies": {
    "@emoji-mart/data": "^1.1.2",
    "@emoji-mart/react": "^1.1.1",
    "@reduxjs/toolkit": "1.9.7",
    "@signalapp/better-sqlite3": "^8.4.3",
    "@types/react-mentions": "^4.1.8",
    "@types/react-test-renderer": "^18.3.0",
    "abort-controller": "3.0.0",
    "auto-bind": "^4.0.0",
    "backbone": "1.3.3",
    "blob-util": "2.0.2",
    "blueimp-load-image": "^5.16.0",
    "buffer-crc32": "0.2.13",
    "bunyan": "https://github.com/Bilb/node-bunyan",
    "bytebuffer": "^5.0.1",
    "classnames": "2.2.5",
    "config": "1.28.1",
    "curve25519-js": "https://github.com/oxen-io/curve25519-js",
    "date-fns": "^3.6.0",
    "dompurify": "^2.0.7",
    "electron-localshortcut": "^3.2.1",
    "electron-updater": "^4.2.2",
    "emoji-mart": "^5.5.2",
    "filesize": "3.6.1",
    "focus-trap-react": "^10.2.3",
    "framer-motion": "^11.0.3",
    "fs-extra": "9.0.0",
    "glob": "7.1.2",
    "image-type": "^4.1.0",
    "libsession_util_nodejs": "https://github.com/oxen-io/libsession-util-nodejs/releases/download/v0.3.23/libsession_util_nodejs-v0.3.23.tar.gz",
    "libsodium-wrappers-sumo": "^0.7.9",
    "linkify-it": "^4.0.1",
    "lodash": "^4.17.21",
    "long": "^4.0.0",
    "maxmind": "^4.3.18",
    "mic-recorder-to-mp3": "^2.2.2",
    "node-fetch": "^2.6.7",
    "os-locale": "5.0.0",
    "p-retry": "^4.2.0",
    "pify": "3.0.0",
    "protobufjs": "^7.2.4",
    "rc-slider": "^10.6.2",
    "react": "18.3.1",
    "react-contexify": "^6.0.0",
    "react-dom": "18.3.1",
    "react-draggable": "^4.4.4",
    "react-error-boundary": "^4.0.13",
    "react-h5-audio-player": "^3.2.0",
    "react-intersection-observer": "^9.7.0",
    "react-mentions": "^4.4.9",
    "react-qrcode-logo": "^3.0.0",
    "react-redux": "8.1.3",
    "react-test-renderer": "^18.3.1",
    "react-toastify": "^6.0.9",
    "react-use": "^17.5.0",
    "react-virtualized": "^9.22.4",
    "redux": "4.2.1",
    "redux-logger": "3.0.6",
    "redux-persist": "^6.0.0",
    "redux-promise-middleware": "^6.2.0",
    "rimraf": "2.6.2",
    "sanitize.css": "^12.0.1",
    "semver": "^7.5.4",
    "styled-components": "^6.1.11",
    "uuid": "8.3.2",
    "webrtc-adapter": "^4.1.1"
  },
  "devDependencies": {
    "@commitlint/cli": "^17.7.1",
    "@commitlint/config-conventional": "^17.7.0",
    "@commitlint/types": "^17.4.4",
    "@electron/notarize": "^2.1.0",
    "@testing-library/jest-dom": "^6.4.6",
    "@testing-library/react": "^15.0.7",
    "@testing-library/user-event": "^14.5.2",
    "@types/backbone": "1.4.2",
    "@types/blueimp-load-image": "^5.16.2",
    "@types/buffer-crc32": "^0.2.0",
    "@types/bunyan": "^1.8.8",
    "@types/bytebuffer": "^5.0.41",
    "@types/chai": "4.2.18",
    "@types/chai-as-promised": "^7.1.2",
    "@types/classnames": "2.2.3",
    "@types/config": "0.0.34",
    "@types/dompurify": "^2.0.0",
    "@types/electron-localshortcut": "^3.1.0",
    "@types/filesize": "3.6.0",
    "@types/fs-extra": "5.0.5",
    "@types/jsdom": "^21.1.6",
    "@types/libsodium-wrappers-sumo": "^0.7.5",
    "@types/linkify-it": "^3.0.2",
    "@types/lodash": "^4.14.194",
    "@types/mocha": "5.0.0",
    "@types/node-fetch": "^2.5.7",
    "@types/pify": "3.0.2",
    "@types/react": "18.3.3",
    "@types/react-dom": "18.3.0",
    "@types/react-redux": "^7.1.33",
    "@types/react-virtualized": "^9.21.30",
    "@types/redux-logger": "3.0.13",
    "@types/rimraf": "2.0.2",
    "@types/semver": "5.5.0",
    "@types/sinon": "9.0.4",
    "@types/styled-components": "^5.1.34",
    "@types/uuid": "8.3.4",
    "@typescript-eslint/eslint-plugin": "7.1.0",
    "@typescript-eslint/parser": "7.1.0",
    "chai": "^4.3.4",
    "chai-as-promised": "^7.1.1",
    "chai-bytes": "^0.1.2",
    "cross-env": "^6.0.3",
    "css-loader": "^6.7.2",
    "dmg-builder": "23.6.0",
    "electron": "25.8.4",
    "electron-builder": "23.0.8",
    "eslint": "8.57.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-prettier": "9.1.0",
    "eslint-import-resolver-typescript": "3.6.1",
    "eslint-plugin-import": "2.29.1",
    "eslint-plugin-mocha": "^10.1.0",
    "eslint-plugin-more": "^1.0.5",
    "eslint-plugin-react": "7.33.2",
    "eslint-plugin-react-hooks": "^4.6.0",
    "events": "^3.3.0",
    "husky": "^8.0.0",
    "jsdom": "^22.1.0",
    "jsdom-global": "^3.0.2",
    "lint-staged": "^14.0.1",
    "mini-css-extract-plugin": "^2.7.5",
    "mocha": "10.0.0",
    "node-loader": "^2.0.0",
    "patch-package": "^6.4.7",
    "postinstall-prepare": "^1.0.1",
    "prettier": "3.2.5",
    "protobufjs-cli": "^1.1.1",
    "sass": "^1.60.0",
    "sass-loader": "^13.2.2",
    "sinon": "9.0.2",
    "ts-loader": "^9.4.2",
    "typescript": "^5.5.4",
    "webpack": "^5.76.3",
    "webpack-cli": "^5.1.4"
  },
  "engines": {
    "node": "18.15.0"
  },
  "build": {
    "appId": "com.loki-project.messenger-desktop",
    "afterSign": "build/notarize.js",
    "afterPack": "build/afterPackHook.js",
    "artifactName": "${name}-${os}-${arch}-${version}.${ext}",
    "extraResources": [
      {
        "from": "./build/launcher-script.sh",
        "to": "./launcher-script.sh"
      },
      "mmdb/GeoLite2-Country.mmdb"
    ],
    "publish": {
      "provider": "github",
      "repo": "session-desktop",
      "owner": "oxen-io",
      "releaseType": "release"
    },
    "mac": {
      "category": "public.app-category.social-networking",
      "icon": "build/icon-mac.icns",
      "target": [
        "dmg",
        "zip"
      ],
      "bundleVersion": "1",
      "hardenedRuntime": true,
      "gatekeeperAssess": false,
      "entitlements": "build/entitlements.mac.plist",
      "entitlementsInherit": "build/entitlements.mac.plist",
      "extendInfo": {
        "NSCameraUsageDescription": "Session requires camera access to record video.",
        "NSMicrophoneUsageDescription": "Session requires microphone access to record audio."
      }
    },
    "dmg": {
      "sign": false
    },
    "win": {
      "asarUnpack": "node_modules/spellchecker/vendor/hunspell_dictionaries",
      "publisherName": "Oxen Labs",
      "verifyUpdateCodeSignature": false,
      "icon": "build/icon.ico",
      "target": [
        "nsis"
      ]
    },
    "nsis": {
      "deleteAppDataOnUninstall": true,
      "oneClick": false,
      "allowToChangeInstallationDirectory": true
    },
    "linux": {
      "category": "Network",
      "desktop": {
        "StartupWMClass": "Session"
      },
      "asarUnpack": "node_modules/spellchecker/vendor/hunspell_dictionaries",
      "target": ["deb"],
      "icon": "build/icon-linux.icns"
    },
    "asarUnpack": [
      "node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node",
      "node_modules/libsession_util_nodejs/build/Release/libsession_util_nodejs.node",
      "ts/webworker/workers/node/libsession/*.node",
      "ts/mains/main_node.js"
    ],
    "deb": {
      "depends": [
        "libnotify4",
        "libxtst6",
        "libnss3",
        "libasound2",
        "libxss1"
      ],
      "packageCategory": "net"
    },
    "files": [
      "package.json",
      "config/default.json",
      "config/production.json",
      "config/local-production.json",
      "background.html",
      "about.html",
      "password.html",
      "_locales/**",
      "mnemonic_languages/**",
      "protos/*",
      "js/**",
      "ts/**/*.js",
      "ts/*.js",
      "!dist/**",
      "stylesheets/fonts.css",
      "stylesheets/dist/*",
      "!js/register.js",
      "preload.js",
      "about_preload.js",
      "settings_preload.js",
      "password_preload.js",
      "images/**",
      "fonts/*",
      "sound/*",
      "build/assets",
      "node_modules/**",
      "!node_modules/spellchecker/vendor/hunspell/**/*",
      "!node_modules/@iconify/icons-mdi/*",
      "node_modules/@iconify/icons-mdi/play-circle*",
      "node_modules/@iconify/icons-mdi/pause-circle*",
      "node_modules/@iconify/icons-mdi/skip-previous*",
      "node_modules/@iconify/icons-mdi/skip-next*",
      "node_modules/@iconify/icons-mdi/fast-forward*",
      "node_modules/@iconify/icons-mdi/rewind*",
      "node_modules/@iconify/icons-mdi/volume-high*",
      "node_modules/@iconify/icons-mdi/volume-mute*",
      "node_modules/@iconify/icons-mdi/repeat*",
      "node_modules/@iconify/icons-mdi/repeat-off*",
      "!node_modules/lamejs/testdata/*",
      "!node_modules/@reduxjs/**/*",
      "node_modules/@reduxjs/**/*.js",
      "node_modules/@reduxjs/toolkit/package.json",
      "!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme,test,__tests__,tests,powered-test,example,examples,*.d.ts}",
      "!**/node_modules/.bin",
      "!**/node_modules/*/build/**",
      "!**/*.{o,hprof,orig,pyc,pyo,rbc}",
      "!**/._*",
      "!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,__pycache__,thumbs.db,.gitignore,.gitattributes,.editorconfig,.flowconfig,.yarn-metadata.json,.idea,appveyor.yml,.travis.yml,circle.yml,npm-debug.log,,yarn.lock,.yarn-integrity,.map}",
      "!**/*.js.map",
      "!**/*.ts",
      "node_modules/spellchecker/build/Release/*.node",
      "node_modules/websocket/build/Release/*.node",
      "node_modules/libsession_util_nodejs/build/Release/*.node",
      "node_modules/socks/build/*.js",
      "node_modules/socks/build/common/*.js",
      "node_modules/socks/build/client/*.js",
      "node_modules/smart-buffer/build/*.js",
      "node_modules/react-draggable/build/cjs/*.js",
      "node_modules/react-draggable/build/cjs/utils/*.js",
      "!build/*.js",
      "build/afterPackHook.js",
      "build/launcher-script.sh",
      "!node_modules/@signalapp/better-sqlite3/deps/*",
      "!node_modules/@signalapp/better-sqlite3/src/*",
      "!node_modules/@signalapp/better-sqlite3/build/Release/obj/*",
      "node_modules/@signalapp/better-sqlite3/build/Release/better_sqlite3.node",
      "!node_modules/libsession_util_nodejs/libsession-util/*",
      "!node_modules/libsession_util_nodejs/src/*",
      "ts/webworker/workers/node/libsession/*.node",
      "!dev-app-update.yml"
    ]
  }
}