{ "name": "vikunja-frontend", "version": "0.10.0", "private": true, "scripts": { "serve": "vite", "serve:dist-dev": "node scripts/serve-dist.js", "serve:dist": "vite preview", "build": "vite build && workbox copyLibraries dist/", "build:dev": "vite build -m development --outDir dist-dev/", "lint": "eslint --ignore-pattern '*.test.*' ./src --ext .vue,.js,.ts", "cypress:open": "cypress open", "test:unit": "jest", "test:frontend": "cypress run" }, "dependencies": { "@vue/compat": "3.2.14", "browserslist": "4.17.1", "bulma": "0.9.3", "camel-case": "4.1.2", "copy-to-clipboard": "3.3.1", "date-fns": "2.24.0", "dompurify": "2.3.3", "highlight.js": "11.2.0", "is-touch-device": "1.0.1", "lodash": "4.17.21", "marked": "3.0.4", "register-service-worker": "1.7.2", "snake-case": "3.0.4", "ufo": "0.7.9", "vue": "3.2.14", "vue-advanced-cropper": "1.8.2", "vue-drag-resize": "1.5.4", "vue-easymde": "1.4.0", "vue-flatpickr-component": "9.0.4", "vue-i18n": "8.26.3", "vue-router": "4.0.11", "vue-shortkey": "3.1.7", "vuedraggable": "2.24.3", "vuex": "3.6.2", "workbox-precaching": "6.3.0" }, "devDependencies": { "@4tw/cypress-drag-drop": "2.0.0", "@fortawesome/fontawesome-svg-core": "1.2.36", "@fortawesome/free-regular-svg-icons": "5.15.4", "@fortawesome/free-solid-svg-icons": "5.15.4", "@fortawesome/vue-fontawesome": "3.0.0-4", "@types/jest": "27.0.2", "@typescript-eslint/eslint-plugin": "4.32.0", "@typescript-eslint/parser": "4.32.0", "@vitejs/plugin-vue": "^1.9.0", "@vue/babel-preset-app": "4.5.13", "@vue/eslint-config-typescript": "7.0.0", "@vue/runtime-dom": "latest", "autoprefixer": "10.3.6", "axios": "0.21.4", "cypress": "8.5.0", "cypress-file-upload": "5.0.8", "esbuild": "0.13.3", "eslint": "7.32.0", "eslint-plugin-vue": "7.18.0", "express": "4.17.1", "faker": "5.5.3", "jest": "27.2.4", "rollup-plugin-terser": "7.0.2", "rollup-plugin-visualizer": "5.5.2", "sass": "1.42.1", "ts-jest": "27.0.5", "typescript": "4.4.3", "vite": "2.6.1", "vite-plugin-pwa": "0.11.2", "vue-notification": "1.3.20", "wait-on": "6.0.0", "workbox-cli": "6.3.0" }, "eslintConfig": { "root": true, "env": { "browser": true, "es2021": true, "node": true }, "extends": [ "eslint:recommended", "plugin:vue/vue3-essential", "@vue/typescript" ], "rules": { "vue/html-quotes": [ "error", "double" ], "quotes": [ "error", "single" ], "comma-dangle": [ "error", "always-multiline" ], "semi": [ "error", "never" ] }, "parser": "vue-eslint-parser", "parserOptions": { "parser": "@typescript-eslint/parser", "ecmaVersion": 2021 }, "ignorePatterns": [ "*.test.*", "cypress/*" ] }, "postcss": { "plugins": { "autoprefixer": {} } }, "browserslist": [ "> 1%", "last 2 versions", "not ie > 0", "not dead", "Firefox ESR" ], "jest": { "testPathIgnorePatterns": [ "cypress" ], "testEnvironment": "jsdom", "preset": "ts-jest", "roots": [ "/src" ], "transform": { "^.+\\.(js|tsx?)$": "ts-jest" }, "moduleFileExtensions": [ "ts", "js", "json" ] }, "license": "AGPL-3.0-or-later" }