{ "name": "vikunja-frontend", "version": "0.10.0", "private": true, "scripts": { "serve": "vite", "serve:dist-dev": "node scripts/serve-dist.js", "serve:dist": "vite preview --port 4173", "build": "vite build && workbox copyLibraries dist/", "build:modern-only": "BUILD_MODERN_ONLY=true vite build && workbox copyLibraries dist/", "build:dev": "vite build -m development --outDir dist-dev/", "typecheck": "vue-tsc --noEmit", "lint": "eslint --ignore-pattern '*.test.*' ./src --ext .vue,.js,.ts", "cypress:open": "cypress open", "test:unit": "vitest run", "test:unit-watch": "vitest watch", "test:frontend": "cypress run", "browserslist:update": "npx browserslist@latest --update-db" }, "dependencies": { "@github/hotkey": "2.0.0", "@kyvg/vue3-notification": "2.3.4", "@sentry/tracing": "6.19.6", "@sentry/vue": "6.19.6", "@types/is-touch-device": "1.0.0", "@types/sortablejs": "1.10.7", "@vue/compat": "3.2.31", "@vueuse/core": "8.2.5", "@vueuse/router": "8.2.5", "blurhash": "1.1.5", "bulma-css-variables": "0.9.33", "camel-case": "4.1.2", "codemirror": "5.65.2", "copy-to-clipboard": "3.3.1", "date-fns": "2.28.0", "dompurify": "2.3.6", "easymde": "2.16.1", "flatpickr": "4.6.11", "flexsearch": "0.7.21", "highlight.js": "11.5.1", "is-touch-device": "1.0.1", "lodash.clonedeep": "4.5.0", "lodash.debounce": "4.0.8", "marked": "4.0.14", "minimist": "1.2.6", "register-service-worker": "1.7.2", "snake-case": "3.0.4", "ufo": "0.8.3", "v-tooltip": "4.0.0-beta.17", "vue": "3.2.32", "vue-advanced-cropper": "2.8.1", "vue-drag-resize": "2.0.3", "vue-flatpickr-component": "9.0.6", "vue-i18n": "9.2.0-beta.30", "vue-router": "4.0.14", "vuedraggable": "4.1.0", "vuex": "4.0.2", "workbox-precaching": "6.5.2" }, "devDependencies": { "@4tw/cypress-drag-drop": "2.1.0", "@faker-js/faker": "6.1.2", "@fortawesome/fontawesome-svg-core": "6.1.1", "@fortawesome/free-regular-svg-icons": "6.1.1", "@fortawesome/free-solid-svg-icons": "6.1.1", "@fortawesome/vue-fontawesome": "3.0.0-5", "@types/flexsearch": "0.7.3", "@typescript-eslint/eslint-plugin": "5.19.0", "@typescript-eslint/parser": "5.19.0", "@vitejs/plugin-legacy": "1.8.1", "@vitejs/plugin-vue": "2.3.1", "@vue/eslint-config-typescript": "10.0.0", "autoprefixer": "10.4.4", "axios": "0.26.1", "browserslist": "4.20.2", "caniuse-lite": "1.0.30001327", "cypress": "9.5.4", "esbuild": "0.14.34", "eslint": "8.13.0", "eslint-plugin-vue": "8.6.0", "express": "4.17.3", "happy-dom": "2.55.0", "netlify-cli": "9.16.5", "postcss": "8.4.12", "postcss-preset-env": "7.4.3", "rollup": "2.70.1", "rollup-plugin-visualizer": "5.6.0", "sass": "1.50.0", "typescript": "4.6.3", "vite": "2.9.1", "vite-plugin-pwa": "0.11.13", "vite-svg-loader": "3.2.0", "vitest": "0.8.4", "vue-tsc": "0.34.6", "wait-on": "6.0.1", "workbox-cli": "6.5.2" }, "eslintConfig": { "root": true, "env": { "browser": true, "es2021": true, "node": true, "vue/setup-compiler-macros": 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" ], "vue/script-setup-uses-vars": "error", "vue/multi-word-component-names": 0 }, "parser": "vue-eslint-parser", "parserOptions": { "parser": "@typescript-eslint/parser", "ecmaVersion": 2022 }, "ignorePatterns": [ "*.test.*", "cypress/*" ], "globals": { "defineProps": "readonly" } }, "postcss": { "plugins": { "autoprefixer": {} } }, "license": "AGPL-3.0-or-later", "packageManager": "yarn@1.22.18" }