{ "name": "photoprism", "version": "1", "description": "AI-Powered Photos App", "author": "PhotoPrism UG", "license": "AGPL-3.0", "private": true, "scripts": { "watch": "webpack --watch", "build": "webpack --node-env=production", "trace": "webpack --stats-children", "debug": "webpack --stats-error-details", "lint": "eslint --cache src/ *.js", "fmt": "eslint --cache --fix src/ *.js .eslintrc.js", "test": "karma start", "upgrade": "npm --depth 10 update && npm audit fix", "testcafe": "testcafe", "acceptance-local": "testcafe chromium --selector-timeout 5000 -S -s tests/acceptance/screenshots tests/acceptance", "gettext-extract": "gettext-extract --output src/locales/translations.pot $(find ${SRC:-src} -type f \\( -iname \\*.vue -o -iname \\*.js \\) -not -path src/common/vm.js)", "gettext-compile": "gettext-compile --output src/locales/translations.json src/locales/*.po" }, "dependencies": { "@babel/cli": "^7.23.0", "@babel/core": "^7.23.2", "@babel/eslint-parser": "^7.22.15", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-transform-runtime": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/register": "^7.22.15", "@babel/runtime": "^7.23.2", "@lcdp/offline-plugin": "^5.1.1", "@vvo/tzdb": "^6.109.0", "axios": "^1.6.0", "axios-mock-adapter": "^1.22.0", "babel-loader": "^9.1.3", "babel-plugin-istanbul": "^6.1.1", "browserslist": "^4.22.1", "chai": "^4.3.10", "cheerio": "1.0.0-rc.10", "chrome-finder": "^1.0.7", "core-js": "^3.33.1", "cross-env": "^7.0.3", "css-loader": "^6.8.1", "cssnano": "^6.0.1", "easygettext": "^2.17.0", "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "eslint-config-standard": "^17.1.0", "eslint-formatter-pretty": "^5.0.0", "eslint-plugin-html": "^7.1.0", "eslint-plugin-import": "^2.28.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier-vue": "^5.0.0", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-vue": "^9.17.0", "eslint-webpack-plugin": "^4.0.1", "eventsource-polyfill": "^0.9.6", "file-loader": "^6.2.0", "file-saver": "^2.0.5", "hls.js": "^1.4.12", "i": "^0.3.7", "karma": "^6.4.2", "karma-chrome-launcher": "^3.2.0", "karma-coverage-istanbul-reporter": "^3.0.3", "karma-htmlfile-reporter": "^0.3.8", "karma-mocha": "^2.0.1", "karma-verbose-reporter": "^0.0.8", "karma-webpack": "^5.0.0", "luxon": "^3.4.3", "maplibre-gl": "^3.5.1", "memoize-one": "^6.0.0", "mini-css-extract-plugin": "^2.7.6", "minimist": ">=1.2.5", "mocha": "^10.2.0", "node-storage-shim": "^2.0.1", "photoswipe": "^4.1.3", "postcss": "^8.4.31", "postcss-import": "^15.1.0", "postcss-loader": "^7.3.3", "postcss-preset-env": "^9.2.0", "postcss-reporter": "^7.0.5", "postcss-url": "^10.1.3", "prettier": "^3.0.3", "pubsub-js": "^1.9.4", "regenerator-runtime": "^0.14.0", "resolve-url-loader": "^5.0.0", "sass": "^1.69.4", "sass-loader": "^13.3.2", "server": "^1.0.38", "sockette": "^2.0.6", "style-loader": "^3.3.3", "svg-url-loader": "^8.0.0", "tar": "^6.2.0", "url-loader": "^4.1.1", "util": "^0.12.5", "vue": "^2.7.14", "vue-fullscreen": "^2.6.1", "vue-gettext": "^2.1.12", "vue-infinite-scroll": "^2.0.2", "vue-loader": "^15.10.1", "vue-loader-plugin": "^1.3.0", "vue-luxon": "^0.10.0", "vue-router": "^3.6.5", "vue-style-loader": "^4.1.3", "vue-template-compiler": "^2.7.13", "vue2-filters": "^0.14.0", "vuetify": "^1.5.24", "webpack": "^5.89.0", "webpack-bundle-analyzer": "^4.9.1", "webpack-cli": "^5.1.4", "webpack-hot-middleware": "^2.25.4", "webpack-manifest-plugin": "^5.0.0", "webpack-md5-hash": "^0.0.6", "webpack-merge": "^5.10.0" }, "engines": { "node": ">= 18.0.0", "npm": ">= 9.0.0", "yarn": "please use npm" }, "browserslist": ">0.25% and last 2 years" }