{ "name": "magicmirror", "version": "2.17.1", "description": "The open source modular smart mirror platform.", "main": "js/electron.js", "scripts": { "start": "DISPLAY=\"${DISPLAY:=:0}\" ./node_modules/.bin/electron js/electron.js", "start:dev": "DISPLAY=\"${DISPLAY:=:0}\" ./node_modules/.bin/electron js/electron.js dev", "server": "node ./serveronly", "install": "echo \"Installing vendor files ...\n\" && cd vendor && npm install --loglevel=error", "install-fonts": "echo \"Installing fonts ...\n\" && cd fonts && npm install --loglevel=error", "postinstall": "npm run install-fonts && echo \"MagicMirror installation finished successfully! \n\"", "test": "NODE_ENV=test jest -i --forceExit", "test:coverage": "NODE_ENV=test nyc --reporter=lcov --reporter=text jest -i --forceExit", "test:electron": "NODE_ENV=test jest --selectProjects electron -i --forceExit", "test:e2e": "NODE_ENV=test jest --selectProjects e2e -i --forceExit", "test:unit": "NODE_ENV=test jest --selectProjects unit -i --forceExit", "test:prettier": "prettier . --check", "test:js": "eslint 'js/**/*.js' 'modules/default/**/*.js' 'clientonly/*.js' 'serveronly/*.js' 'translations/*.js' 'vendor/*.js' 'tests/**/*.js' 'config/*' --config .eslintrc.json", "test:css": "stylelint 'css/main.css' 'fonts/*.css' 'modules/default/**/*.css' 'vendor/*.css' --config .stylelintrc.json", "test:calendar": "node ./modules/default/calendar/debug.js", "config:check": "node js/check_config.js", "lint:prettier": "prettier . --write", "lint:js": "eslint 'js/**/*.js' 'modules/default/**/*.js' 'clientonly/*.js' 'serveronly/*.js' 'translations/*.js' 'vendor/*.js' 'tests/**/*.js' 'config/*' --config .eslintrc.json --fix", "lint:css": "stylelint 'css/main.css' 'fonts/*.css' 'modules/default/**/*.css' 'vendor/*.css' --config .stylelintrc.json --fix", "lint:staged": "pretty-quick --staged", "prepare": "[ -f node_modules/.bin/husky ] && husky install || echo no husky installed." }, "repository": { "type": "git", "url": "git+https://github.com/MichMich/MagicMirror.git" }, "keywords": [ "magic mirror", "smart mirror", "mirror UI", "modular" ], "author": "Michael Teeuw", "contributors": [ "https://github.com/MichMich/MagicMirror/graphs/contributors" ], "license": "MIT", "bugs": { "url": "https://github.com/MichMich/MagicMirror/issues" }, "homepage": "https://magicmirror.builders", "devDependencies": { "eslint-config-prettier": "^8.3.0", "eslint-plugin-jest": "^24.4.2", "eslint-plugin-jsdoc": "^36.1.0", "eslint-plugin-prettier": "^4.0.0", "express-basic-auth": "^1.2.0", "husky": "^7.0.2", "jest": "^27.2.2", "jsdom": "^17.0.0", "lodash": "^4.17.21", "nyc": "^15.1.0", "prettier": "^2.4.1", "pretty-quick": "^3.1.1", "sinon": "^11.1.2", "spectron": "^15.0.0", "stylelint": "^13.13.1", "stylelint-config-prettier": "^8.0.2", "stylelint-config-standard": "^22.0.0", "stylelint-prettier": "^1.2.0", "suncalc": "^1.8.0" }, "optionalDependencies": { "electron": "^13.5.1" }, "dependencies": { "colors": "^1.4.0", "console-stamp": "^3.0.3", "digest-fetch": "^1.2.1", "eslint": "^7.32.0", "express": "^4.17.1", "express-ipfilter": "^1.2.0", "feedme": "^2.0.2", "helmet": "^4.6.0", "iconv-lite": "^0.6.3", "module-alias": "^2.2.2", "moment": "^2.29.1", "node-fetch": "^2.6.5", "node-ical": "^0.13.0", "request": "^2.88.2", "socket.io": "^4.2.0" }, "_moduleAliases": { "node_helper": "js/node_helper.js", "logger": "js/logger.js" }, "engines": { "node": ">=12" }, "jest": { "verbose": true, "projects": [ { "displayName": "unit", "moduleNameMapper": { "logger": "/js/logger.js" }, "testMatch": [ "**/tests/unit/**/*.[jt]s?(x)" ], "testPathIgnorePatterns": [ "/tests/unit/mocks" ] }, { "displayName": "electron", "testMatch": [ "**/tests/electron/**/*.[jt]s?(x)" ], "testPathIgnorePatterns": [ "/tests/electron/modules/mocks", "/tests/electron/global-setup.js", "/tests/electron/modules/basic-auth.js" ] }, { "displayName": "e2e", "setupFilesAfterEnv": [ "/tests/e2e/mock-console.js" ], "testMatch": [ "**/tests/e2e/**/*.[jt]s?(x)" ], "modulePaths": [ "/js/" ], "testPathIgnorePatterns": [ "/tests/e2e/global-setup.js", "/tests/e2e/mock-console.js" ] } ] } }