{ "name": "signal-desktop", "productName": "Signal", "description": "Private messaging from your desktop", "repository": "https://github.com/signalapp/Signal-Desktop.git", "version": "1.10.0-beta.1", "license": "GPL-3.0", "author": { "name": "Open Whisper Systems", "email": "support@signal.org" }, "main": "main.js", "scripts": { "postinstall": "electron-builder install-app-deps && rimraf node_modules/dtrace-provider", "start": "electron .", "grunt": "grunt", "icon-gen": "electron-icon-maker --input=images/icon_1024.png --output=./build", "generate": "npm run icon-gen && grunt", "build": "build --config.extraMetadata.environment=$SIGNAL_ENV", "build-release": "SIGNAL_ENV=production npm run build -- --config.directories.output=release", "prepare-beta-build": "node prepare_beta_build.js", "prepare-import-build": "node prepare_import_build.js", "publish-to-apt": "NAME=$npm_package_name VERSION=$npm_package_version ./aptly.sh", "test": "yarn test-node && yarn test-electron", "test-electron": "yarn grunt test", "test-node": "mocha --recursive test/app test/modules ts/test", "test-node-coverage": "nyc --reporter=lcov --reporter=text mocha --recursive test/app test/modules ts/test", "eslint": "eslint .", "jscs": "yarn grunt jscs", "jshint": "yarn grunt jshint", "lint": "yarn format --list-different && yarn lint-windows", "lint-windows": "yarn eslint && yarn grunt lint && yarn tslint", "tslint": "tslint --config tslint.json --format stylish --project .", "format": "prettier --write \"*.js\" \"js/**/*.js\" \"ts/**/*.{ts,tsx}\" \"test/**/*.js\"", "transpile": "tsc", "clean-transpile": "rimraf ts/**/*.js ts/*.js", "open-coverage": "open coverage/lcov-report/index.html", "styleguide": "styleguidist server" }, "dependencies": { "@sindresorhus/is": "^0.8.0", "archiver": "^2.1.1", "blob-util": "^1.3.0", "blueimp-canvas-to-blob": "^3.14.0", "blueimp-load-image": "^2.18.0", "bunyan": "^1.8.12", "classnames": "^2.2.5", "config": "^1.28.1", "decompress": "^4.2.0", "electron-config": "^1.0.0", "electron-editor-context-menu": "^1.1.1", "electron-is-dev": "^0.3.0", "electron-unhandled": "https://github.com/gasi/electron-unhandled.git#1edf81fe542e505368fafaeef27609dc21678f8c", "electron-updater": "^2.21.0", "emoji-datasource": "4.0.0", "emoji-datasource-apple": "4.0.0", "emoji-js": "^3.4.0", "emoji-panel": "https://github.com/scottnonnenberg/emoji-panel.git#v0.5.5", "filesize": "^3.6.1", "firstline": "^1.2.1", "form-data": "^2.3.2", "fs-extra": "^5.0.0", "google-libphonenumber": "^3.0.7", "got": "^8.2.0", "linkify-it": "^2.0.3", "lodash": "^4.17.4", "mkdirp": "^0.5.1", "moment": "^2.21.0", "node-fetch": "https://github.com/scottnonnenberg/node-fetch.git#3e5f51e08c647ee5f20c43b15cf2d352d61c36b4", "node-notifier": "^5.1.2", "os-locale": "^2.1.0", "pify": "^3.0.0", "proxy-agent": "^2.1.0", "react": "^16.2.0", "react-dom": "^16.2.0", "read-last-lines": "^1.3.0", "rimraf": "^2.6.2", "semver": "^5.4.1", "spellchecker": "^3.4.4", "testcheck": "^1.0.0-rc.2", "tmp": "^0.0.33", "to-arraybuffer": "^1.0.1", "websocket": "^1.0.25" }, "devDependencies": { "@types/chai": "^4.1.2", "@types/classnames": "^2.2.3", "@types/filesize": "^3.6.0", "@types/jquery": "^3.3.1", "@types/lodash": "^4.14.106", "@types/mocha": "^5.0.0", "@types/qs": "^6.5.1", "@types/react": "^16.3.1", "@types/react-dom": "^16.0.4", "arraybuffer-loader": "^1.0.3", "asar": "^0.14.0", "bower": "^1.8.2", "chai": "^4.1.2", "electron": "1.8.4", "electron-builder": "^20.2.0", "electron-icon-maker": "0.0.3", "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", "glob": "^7.1.2", "grunt": "^1.0.1", "grunt-cli": "^1.2.0", "grunt-contrib-concat": "^1.0.1", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-jshint": "^1.1.0", "grunt-contrib-watch": "^1.0.0", "grunt-exec": "^3.0.0", "grunt-gitinfo": "^0.1.7", "grunt-jscs": "^3.0.1", "grunt-sass": "^2.0.0", "mocha": "^4.1.0", "mocha-testcheck": "^1.0.0-rc.0", "node-sass-import-once": "^1.2.0", "nsp": "^3.2.1", "nyc": "^11.4.1", "prettier": "1.12.0", "qs": "^6.5.1", "react-docgen-typescript": "^1.2.6", "react-styleguidist": "^7.0.1", "sinon": "^4.4.2", "spectron": "^3.8.0", "ts-loader": "^4.1.0", "tslint": "^5.9.1", "tslint-microsoft-contrib": "^5.0.3", "tslint-react": "^3.5.1", "typescript": "^2.8.1", "webpack": "^4.4.1" }, "engines": { "node": "^8.2.1" }, "build": { "appId": "org.whispersystems.signal-desktop", "mac": { "artifactName": "${name}-mac-${version}.${ext}", "category": "public.app-category.social-networking", "icon": "build/icons/mac/icon.icns", "publish": [ { "provider": "generic", "url": "https://updates.signal.org/desktop" } ], "target": [ "zip" ], "bundleVersion": "1" }, "win": { "asarUnpack": "node_modules/spellchecker/vendor/hunspell_dictionaries", "artifactName": "${name}-win-${version}.${ext}", "certificateSubjectName": "Signal", "publisherName": "Signal (Quiet Riddle Ventures, LLC)", "icon": "build/icons/win/icon.ico", "publish": [ { "provider": "generic", "url": "https://updates.signal.org/desktop" } ], "target": [ "nsis" ] }, "nsis": { "deleteAppDataOnUninstall": true }, "linux": { "category": "Network", "desktop": { "StartupWMClass": "Signal" }, "asarUnpack": "node_modules/spellchecker/vendor/hunspell_dictionaries", "target": [ "deb" ], "icon": "build/icons/png" }, "deb": { "depends": [ "gconf2", "gconf-service", "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", "_locales/**", "protos/*", "js/**", "ts/**/*.js", "ts/*.js", "stylesheets/*.css", "!js/register.js", "!js/views/standalone_registration_view.js", "app/*", "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}", "node_modules/spellchecker/build/Release/*.node", "node_modules/websocket/build/Release/*.node" ] } }