{ "name": "session-messenger-desktop", "productName": "Session", "description": "Private messaging from your desktop", "version": "1.2.1", "license": "GPL-3.0", "author": { "name": "Loki Project", "email": "team@loki.network" }, "repository": { "type": "git", "url": "https://github.com/loki-project/session-desktop.git" }, "main": "main.js", "scripts": { "postinstall": "electron-builder install-app-deps && rimraf node_modules/dtrace-provider", "start": "cross-env NODE_APP_INSTANCE=$MULTI electron .", "start-prod": "cross-env NODE_ENV=production NODE_APP_INSTANCE=devprod$MULTI electron .", "start-swarm-test": "cross-env NODE_ENV=swarm-testing NODE_APP_INSTANCE=$MULTI electron .", "grunt": "grunt", "icon-gen": "electron-icon-maker --input=images/icon_1024.png --output=./build", "generate": "yarn icon-gen && yarn grunt", "build-release": "cross-env SIGNAL_ENV=production electron-builder --config.extraMetadata.environment=production --publish=never --config.directories.output=release", "build-module-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", "clean-module-protobuf": "rm -f ts/protobuf/compiled.d.ts ts/protobuf/compiled.js", "build-protobuf": "yarn build-module-protobuf", "clean-protobuf": "yarn clean-module-protobuf", "test": "yarn test-node && yarn test-electron", "test-view": "NODE_ENV=test yarn run start", "test-lib-view": "NODE_ENV=test-lib yarn run start", "test-loki-view": "NODE_ENV=test-loki yarn run start", "test-electron": "yarn grunt test", "test-integration": "ELECTRON_DISABLE_SANDBOX=1 mocha --exit --full-trace --timeout 10000 ts/test/session/integration/integration_itest.js", "test-node": "mocha --recursive --exit --timeout 10000 test/app test/modules \"./ts/test/**/*_test.js\" libloki/test/node ", "test-session": "mocha --recursive --exit ts/test/session/unit --full-trace --timeout 10000", "test-medium-groups": "ELECTRON_DISABLE_SANDBOX=1 mocha --exit --timeout 10000 integration_test/integration_test.js --grep 'senderkeys'", "test-groups": "ELECTRON_DISABLE_SANDBOX=1 mocha --exit --timeout 10000 integration_test/integration_test.js --grep 'Closed groups'", "eslint": "eslint --cache .", "eslint-fix": "eslint --fix .", "eslint-full": "eslint .", "lint": "yarn format && yarn lint-files", "lint-full": "yarn format-full && yarn lint-files-full", "dev-lint": "yarn format && yarn lint-files", "lint-files": "yarn eslint && yarn tslint", "lint-files-full": "yarn eslint-full && yarn tslint", "lint-deps": "node ts/util/lint/linter.js", "tslint": "tslint --format stylish --project .", "format": "prettier --list-different --write `git ls-files --modified *.{css,js,json,scss,ts,tsx}` `git ls-files --modified ./**/*.{css,js,json,scss,ts,tsx}`", "format-full": "prettier --list-different --write \"*.{css,js,json,scss,ts,tsx}\" \"./**/*.{css,js,json,scss,ts,tsx}\"", "format-full-check": "prettier --check \"*.{css,js,json,scss,ts,tsx}\" \"./**/*.{css,js,json,scss,ts,tsx}\"", "transpile": "tsc --incremental", "clean-transpile": "rimraf ts/**/*.js && rimraf ts/*.js", "pow-metrics": "node metrics_app.js localhost 9000", "ready": "yarn clean-transpile && yarn grunt && yarn lint-full && yarn test-node && yarn test-electron && yarn lint-deps" }, "dependencies": { "@journeyapps/sqlcipher": "https://github.com/scottnonnenberg-signal/node-sqlcipher.git#b10f232fac62ba7f8775c9e086bb5558fe7d948b", "@sindresorhus/is": "0.8.0", "backbone": "1.3.3", "blob-util": "1.3.0", "blueimp-canvas-to-blob": "3.14.0", "blueimp-load-image": "2.18.0", "buffer-crc32": "0.2.13", "bunyan": "1.8.12", "bytebuffer": "^5.0.1", "classnames": "2.2.5", "color": "^3.1.2", "config": "1.28.1", "cross-env": "^6.0.3", "dompurify": "^2.0.7", "electron-is-dev": "^1.1.0", "electron-localshortcut": "^3.2.1", "electron-updater": "^4.2.2", "emoji-datasource": "4.0.0", "emoji-datasource-apple": "4.0.0", "emoji-js": "3.4.0", "emoji-panel": "https://github.com/scottnonnenberg-signal/emoji-panel.git#v0.5.5", "filesize": "3.6.1", "firstline": "1.2.1", "form-data": "^3.0.0", "fs-extra": "9.0.0", "glob": "7.1.2", "he": "1.2.0", "jquery": "3.3.1", "jsbn": "1.1.0", "libsodium-wrappers": "^0.7.6", "linkify-it": "2.0.3", "lodash": "4.17.11", "long": "^4.0.0", "mkdirp": "0.5.1", "moment": "2.21.0", "mustache": "2.3.0", "node-fetch": "2.3.0", "node-sass": "4.9.3", "os-locale": "2.1.0", "p-retry": "^4.2.0", "pify": "3.0.0", "protobufjs": "^6.9.0", "rc-slider": "^8.7.1", "react": "16.8.3", "react-contextmenu": "2.11.0", "react-dom": "16.8.3", "react-portal": "^4.2.0", "react-qr-svg": "^2.2.1", "react-redux": "6.0.1", "react-virtualized": "9.21.0", "read-last-lines": "1.3.0", "redux": "4.0.1", "redux-logger": "3.0.6", "redux-promise-middleware": "6.1.0", "reselect": "4.0.0", "rimraf": "2.6.2", "semver": "5.4.1", "tar": "4.4.8", "tmp": "0.0.33", "to-arraybuffer": "1.0.1", "underscore": "1.9.0", "uuid": "3.3.2" }, "devDependencies": { "@types/backbone": "^1.4.2", "@types/bytebuffer": "^5.0.41", "@types/chai": "4.1.2", "@types/chai-as-promised": "^7.1.2", "@types/classnames": "2.2.3", "@types/color": "^3.0.0", "@types/config": "0.0.34", "@types/dompurify": "^2.0.0", "@types/electron-is-dev": "^1.1.1", "@types/filesize": "3.6.0", "@types/fs-extra": "5.0.5", "@types/jquery": "3.3.29", "@types/linkify-it": "2.0.3", "@types/lodash": "4.14.106", "@types/mkdirp": "0.5.2", "@types/mocha": "5.0.0", "@types/node-fetch": "^2.5.7", "@types/pify": "3.0.2", "@types/qs": "6.5.1", "@types/rc-slider": "^8.6.5", "@types/react": "16.8.5", "@types/react-dom": "16.8.2", "@types/react-portal": "^4.0.2", "@types/react-redux": "7.0.1", "@types/react-virtualized": "9.18.12", "@types/redux-logger": "3.0.7", "@types/rimraf": "2.0.2", "@types/semver": "5.5.0", "@types/sinon": "9.0.4", "@types/uuid": "3.4.4", "arraybuffer-loader": "1.0.3", "asar": "0.14.0", "bower": "1.8.2", "chai": "4.1.2", "chai-as-promised": "^7.1.1", "dashdash": "1.14.1", "electron": "8.2.0", "electron-builder": "22.3.6", "electron-icon-maker": "0.0.3", "electron-notarize": "^0.2.0", "eslint": "4.14.0", "eslint-config-airbnb-base": "12.1.0", "eslint-config-prettier": "2.9.0", "eslint-plugin-import": "2.8.0", "eslint-plugin-mocha": "4.12.1", "eslint-plugin-more": "0.3.1", "extract-zip": "1.6.6", "grunt": "1.0.1", "grunt-cli": "1.2.0", "grunt-contrib-concat": "1.0.1", "grunt-contrib-copy": "1.0.0", "grunt-contrib-watch": "1.0.0", "grunt-exec": "3.0.0", "grunt-gitinfo": "0.1.7", "grunt-sass": "3.0.1", "mocha": "4.1.0", "mocha-testcheck": "1.0.0-rc.0", "node-gyp": "3.8.0", "node-sass-import-once": "1.2.0", "nyc": "11.4.1", "prettier": "1.19.0", "qs": "6.5.1", "react-docgen-typescript": "1.2.6", "react-styleguidist": "7.0.1", "sinon": "9.0.2", "spectron": "^10.0.0", "ts-loader": "4.1.0", "ts-mock-imports": "^1.3.0", "tslint": "5.19.0", "tslint-microsoft-contrib": "6.0.0", "tslint-react": "3.6.0", "typescript": "3.7.4", "webpack": "4.4.1" }, "engines": { "node": "^10.13.0" }, "build": { "appId": "com.loki-project.messenger-desktop", "afterSign": "build/notarize.js", "artifactName": "${name}-${os}-${arch}-${version}.${ext}", "mac": { "category": "public.app-category.social-networking", "icon": "build/icons/mac/icon.icns", "target": [ "dmg", "zip" ], "bundleVersion": "1", "hardenedRuntime": true, "gatekeeperAssess": false, "entitlements": "build/entitlements.mac.plist", "entitlementsInherit": "build/entitlements.mac.plist" }, "dmg": { "sign": false }, "win": { "asarUnpack": "node_modules/spellchecker/vendor/hunspell_dictionaries", "publisherName": "Loki Project", "verifyUpdateCodeSignature": false, "icon": "build/icons/win/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", "AppImage" ], "icon": "build/icons/png" }, "deb": { "depends": [ "libnotify4", "libappindicator1", "libxtst6", "libnss3", "libasound2", "libxss1" ] }, "files": [ "package.json", "config/default.json", "config/${env.SIGNAL_ENV}.json", "config/local-${env.SIGNAL_ENV}.json", "background.html", "about.html", "password.html", "permissions_popup.html", "debug_log.html", "_locales/**", "libloki/modules/*.js", "mnemonic_languages/**", "protos/*", "js/**", "ts/**/*.js", "ts/*.js", "stylesheets/*.css", "!js/register.js", "js/views/standalone_registration_view.js", "app/*", "preload.js", "about_preload.js", "settings_preload.js", "permissions_popup_preload.js", "debug_log_preload.js", "password_preload.js", "main.js", "images/**", "fonts/*", "build/assets", "node_modules/**", "!node_modules/emoji-panel/dist/*", "!node_modules/emoji-panel/lib/emoji-panel-emojione-*.css", "!node_modules/emoji-panel/lib/emoji-panel-google-*.css", "!node_modules/emoji-panel/lib/emoji-panel-twitter-*.css", "!node_modules/emoji-panel/lib/emoji-panel-apple-{16,20,64}.css", "!node_modules/emoji-datasource/emoji_pretty.json", "!node_modules/emoji-datasource/*.png", "!node_modules/emoji-datasource-apple/emoji_pretty.json", "!node_modules/emoji-datasource-apple/img/apple/{sheets-128,sheets-256}/*.png", "!node_modules/emoji-datasource-apple/img/apple/sheets/{16,20,32}.png", "!node_modules/spellchecker/vendor/hunspell/**/*", "!**/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,.nyc_output,yarn.lock,.yarn-integrity,.map}", "node_modules/spellchecker/build/Release/*.node", "node_modules/websocket/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/@journeyapps/sqlcipher/deps/*", "!node_modules/@journeyapps/sqlcipher/build/*", "!node_modules/@journeyapps/sqlcipher/lib/binding/node-*", "!build/*.js", "!dev-app-update.yml" ] } }