{ "name": "threema-web", "version": "2.2.1", "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.4.5", "@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/plugin-transform-runtime": "^7.4.4", "@babel/preset-env": "^7.4.5", "@babel/runtime": "^7.4.5", "@saltyrtc/client": "^0.14.4", "@saltyrtc/task-relayed-data": "^0.3.1", "@saltyrtc/task-webrtc": "^0.14.1", "@threema/compose-area": "^0.3.3", "@types/angular": "^1.6.54", "@types/angular-material": "^1.1.68", "@types/angular-sanitize": "^1.3.7", "@types/angular-translate": "^2.16.0", "@types/file-saver": "^2.0.1", "@types/jquery": "^3.3.29", "@types/msgpack-lite": "^0.1.6", "@types/webrtc": "0.0.25", "@uirouter/angularjs": "^1.0.22", "angular": "^1.7.8", "angular-animate": "^1.7.8", "angular-aria": "^1.7.8", "angular-material": "=1.1.11", "angular-messages": "^1.7.8", "angular-qrcode": "~7.2", "angular-route": "^1.7.8", "angular-sanitize": "^1.7.8", "angular-translate": "~2.18", "angularjs-scroll-glue": "=2.1.0", "autolinker": "^2.2.2", "babel-loader": "^8.0.6", "core-js": "^3.1.4", "croppie": "^2.6.4", "emoji-regex": "^8.0.0", "file-saver": "^2.0.2", "messageformat": "^2.2.1", "msgpack-lite": "~0.1.26", "node-sass": "^4.12.0", "sdp": "~2.9.0", "ts-events": "^3.3.1", "ts-loader": "^6", "ts-log": "^2.1.4", "tweetnacl": "^1.0.1", "twemoji": "^11.3.0", "typescript": "^3.5.2", "webpack": "^4.35.0", "webpack-cli": "^3.3.5", "webpack-merge": "^4.2.1", "webrtc-adapter": "^7.2.4" }, "devDependencies": { "@types/chai": "^4.1.7", "@types/jasmine": "^3.3.13", "@types/selenium-webdriver": "^4.0.0", "angular-mocks": "^1.7.8", "chai": "^4.2.0", "concurrently": "~4.1.0", "geckodriver": "^1.16.2", "jasmine": "^3.4.0", "jasmine-core": "^3.4.0", "karma": "^4.1.0", "karma-chrome-launcher": "^2.2.0", "karma-firefox-launcher": "^1.1.0", "karma-jasmine": "^2.0.1", "sass-lint": "^1.13.1", "sass-lint-auto-fix": "^0.17", "selenium-webdriver": "^4.0.0-alpha.4", "term-color": "^1.0.1", "ts-node": "^8", "tslint": "^5.18.0", "webpack-dev-server": "^3.7.2" } }