{ "name": "threema-web", "version": "2.3.5", "description": "Threema Webclient", "scripts": { "build": "npm run build:js && npm run build:css", "build:js": "webpack --config webpack.prod.js", "build:css": "node-sass -o public/css/ --output-style compressed src/sass/", "build:css:watch": "node-sass -w -r --source-map true --source-map-embed true -o public/css/ --output-style compressed src/sass/", "build:tests": "echo -e 'NOTE: Use either \"npm build:unittests\" or \"npm build:uitests\"\n' && exit 1", "build:unittests": "webpack --config webpack.tests.js", "build:uitests": "npm run build:css && webpack --config webpack.tests.js", "dist": "npm run clean && npm run build && echo \"\" && node dist/build-package.js", "serve:live": "echo 'NOTE: serve:live command has been renamed to devserver'", "devserver": "npm run build:css && concurrently --kill-others --names \"css,server\" -p name \"npm run build:css:watch\" \"npx webpack-dev-server --config webpack.dev.js\"", "testserver": "npx webpack-dev-server --config webpack.tests.js", "test": "echo -e 'NOTE: Use either \"npm run test:unit\" or \"npm run test:ui\"\n' && exit 1", "test:unit": "npm run build:unittests && karma start --single-run --log-level=debug --colors", "test:ui": "bash tests/ui/run.sh", "lint": "npm run lint:ts && npm run lint:sass", "lint:ts": "tslint -c tslint.json --project tsconfig.json --exclude \"**/src/config.ts\"", "lint:sass": "sass-lint -c .sass-lint.yml -v -q", "lint:sass:fix": "sass-lint-auto-fix -c .sass-lint.yml", "clean": "rm -rf dist/generated" }, "keywords": [ "threema", "saltyrtc", "webrtc", "messenger" ], "author": "Threema GmbH", "license": "AGPL-3.0+", "private": true, "homepage": "https://threema.ch/", "dependencies": { "@babel/core": "^7.8.4", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-runtime": "^7.8.3", "@babel/preset-env": "^7.8.4", "@babel/runtime": "^7.8.4", "@saltyrtc/client": "^0.14.4", "@saltyrtc/task-relayed-data": "^0.3.1", "@saltyrtc/task-webrtc": "^0.14.1", "@threema/compose-area": "^0.3.5", "@types/angular": "^1.6.57", "@types/angular-material": "^1.1.71", "@types/angular-sanitize": "^1.7.0", "@types/angular-translate": "^2.16.2", "@types/file-saver": "^2.0.1", "@types/jquery": "^3.3.32", "@types/msgpack-lite": "^0.1.7", "@types/webrtc": "0.0.26", "@uirouter/angularjs": "^1.0.25", "angular": "^1.7.9", "angular-animate": "^1.7.9", "angular-aria": "^1.7.9", "angular-material": "=1.1.11", "angular-messages": "^1.7.9", "angular-qrcode": "~7.2", "angular-route": "^1.7.9", "angular-sanitize": "^1.7.9", "angular-translate": "~2.18.2", "angularjs-scroll-glue": "=2.1.0", "autolinker": "^3.12.0", "babel-loader": "^8.0.6", "core-js": "^3.6.4", "croppie": "^2.6.4", "emojibase-regex": "^3.2.1", "file-saver": "^2.0.2", "messageformat": "^2.3.0", "msgpack-lite": "~0.1.26", "node-sass": "^4.13.1", "sdp": "~2.12.0", "ts-events": "~3.4.0", "ts-loader": "~6.2.1", "ts-log": "^2.1.4", "tweetnacl": "^1.0.3", "twemoji": "^12.1.5", "typescript": "~3.7.5", "webpack": "^4.41.6", "webpack-cli": "^3.3.11", "webpack-merge": "^4.2.2", "webrtc-adapter": "^7.5.0" }, "devDependencies": { "@types/chai": "^4.2.9", "@types/jasmine": "^3.5.4", "@types/selenium-webdriver": "^4.0.8", "angular-mocks": "^1.7.9", "chai": "^4.2.0", "concurrently": "~5.1.0", "geckodriver": "~1.19.1", "jasmine": "~3.5.0", "jasmine-core": "~3.5.0", "karma": "~4.4.1", "karma-chrome-launcher": "~3.1.0", "karma-firefox-launcher": "~1.3.0", "karma-jasmine": "~3.1.1", "sass-lint": "~1.13.1", "sass-lint-auto-fix": "~0.21.0", "selenium-webdriver": "^4.0.0-alpha.5", "term-color": "^1.0.1", "ts-node": "~8.6.2", "tslint": "~6.0.0", "webpack-dev-server": "^3.10.3" } }