{
  "name": "vikunja-frontend",
  "description": "The todo app to organize your life.",
  "private": true,
  "version": "0.10.0",
  "license": "AGPL-3.0-or-later",
  "repository": {
    "type": "git",
    "url": "https://kolaente.dev/vikunja/vikunja"
  },
  "bugs": {
    "url": "https://kolaente.dev/vikunja/vikunja/issues"
  },
  "homepage": "https://vikunja.io/",
  "funding": "https://opencollective.com/vikunja",
  "packageManager": "pnpm@10.12.3",
  "keywords": [
    "todo",
    "productivity",
    "task management",
    "organisation",
    "gantt",
    "kanban"
  ],
  "type": "module",
  "scripts": {
    "dev": "vite",
    "serve": "pnpm run dev",
    "preview": "vite preview --port 4173",
    "preview:dev": "vite preview --outDir dist-dev --mode development --port 4173",
    "preview:vikunja": "../vikunja",
    "build": "vite build && workbox copyLibraries dist/",
    "build:dev": "vite build --mode development --outDir dist-dev/",
    "lint": "eslint 'src/**/*.{js,ts,vue}'",
    "lint:fix": "pnpm run lint --fix",
    "test:e2e": "start-server-and-test preview http://127.0.0.1:4173 'cypress run --e2e --browser chrome'",
    "test:e2e-record-test": "start-server-and-test preview:test http://127.0.0.1:4173 'cypress run --e2e --browser chrome --record'",
    "test:e2e-dev-dev": "start-server-and-test preview:dev http://127.0.0.1:4173 'cypress open --e2e'",
    "test:e2e-dev": "start-server-and-test preview http://127.0.0.1:4173 'cypress open --e2e'",
    "test:unit": "vitest --dir ./src",
    "typecheck": "vue-tsc --build --force",
    "fonts:update": "pnpm fonts:download && pnpm fonts:subset",
    "fonts:download": "./scripts/fonts-download.sh",
    "fonts:subset": "./scripts/fonts-subset.sh",
    "story:dev": "histoire dev",
    "story:build": "histoire build",
    "story:preview": "histoire preview"
  },
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "6.7.2",
    "@fortawesome/free-regular-svg-icons": "6.7.2",
    "@fortawesome/free-solid-svg-icons": "6.7.2",
    "@fortawesome/vue-fontawesome": "3.0.8",
    "@github/hotkey": "3.1.1",
    "@infectoone/vue-ganttastic": "2.3.2",
    "@intlify/unplugin-vue-i18n": "6.0.8",
    "@kyvg/vue3-notification": "3.4.1",
    "@sentry/tracing": "7.120.3",
    "@sentry/vue": "9.34.0",
    "@tiptap/core": "2.23.1",
    "@tiptap/extension-code-block": "2.23.1",
    "@tiptap/extension-code-block-lowlight": "2.23.1",
    "@tiptap/extension-hard-break": "2.23.1",
    "@tiptap/extension-image": "2.23.1",
    "@tiptap/extension-link": "2.23.1",
    "@tiptap/extension-placeholder": "2.23.1",
    "@tiptap/extension-table": "2.23.1",
    "@tiptap/extension-table-cell": "2.23.1",
    "@tiptap/extension-table-header": "2.23.1",
    "@tiptap/extension-table-row": "2.23.1",
    "@tiptap/extension-task-item": "2.23.1",
    "@tiptap/extension-task-list": "2.23.1",
    "@tiptap/extension-typography": "2.23.1",
    "@tiptap/extension-underline": "2.23.1",
    "@tiptap/pm": "2.23.1",
    "@tiptap/starter-kit": "2.23.1",
    "@tiptap/suggestion": "2.23.1",
    "@tiptap/vue-3": "2.23.1",
    "@vueuse/core": "13.5.0",
    "@vueuse/router": "13.5.0",
    "axios": "1.10.0",
    "blurhash": "2.0.5",
    "bulma-css-variables": "0.9.33",
    "change-case": "5.4.4",
    "dayjs": "1.11.13",
    "dompurify": "3.2.6",
    "fast-deep-equal": "3.1.3",
    "flatpickr": "4.6.13",
    "flexsearch": "0.7.43",
    "floating-vue": "5.2.2",
    "is-touch-device": "1.0.1",
    "klona": "2.0.6",
    "lowlight": "3.3.0",
    "marked": "16.0.0",
    "pinia": "3.0.3",
    "register-service-worker": "1.7.2",
    "sortablejs": "1.15.6",
    "tailwindcss": "3.4.17",
    "tippy.js": "6.3.7",
    "ufo": "1.6.1",
    "vue": "3.5.17",
    "vue-advanced-cropper": "2.8.9",
    "vue-flatpickr-component": "11.0.5",
    "vue-i18n": "11.1.8",
    "vue-router": "4.5.1",
    "vuemoji-picker": "0.3.2",
    "workbox-precaching": "7.3.0",
    "zhyswan-vuedraggable": "4.1.3"
  },
  "devDependencies": {
    "@4tw/cypress-drag-drop": "2.3.0",
    "@cypress/vite-dev-server": "6.0.3",
    "@cypress/vue": "6.0.2",
    "@faker-js/faker": "9.9.0",
    "@histoire/plugin-screenshot": "1.0.0-alpha.2",
    "@histoire/plugin-vue": "1.0.0-alpha.2",
    "@tsconfig/node22": "22.0.2",
    "@types/codemirror": "5.60.16",
    "@types/is-touch-device": "1.0.3",
    "@types/node": "22.16.0",
    "@types/sortablejs": "1.15.8",
    "@typescript-eslint/eslint-plugin": "8.35.1",
    "@typescript-eslint/parser": "8.35.1",
    "@vitejs/plugin-vue": "6.0.0",
    "@vue/eslint-config-typescript": "14.5.1",
    "@vue/test-utils": "2.4.6",
    "@vue/tsconfig": "0.7.0",
    "autoprefixer": "10.4.21",
    "browserslist": "4.25.1",
    "caniuse-lite": "1.0.30001726",
    "csstype": "3.1.3",
    "cypress": "14.5.1",
    "esbuild": "0.25.5",
    "eslint": "9.30.1",
    "eslint-plugin-vue": "10.2.0",
    "happy-dom": "18.0.1",
    "histoire": "1.0.0-alpha.2",
    "postcss": "8.5.6",
    "postcss-easing-gradients": "3.0.1",
    "postcss-preset-env": "10.2.4",
    "rollup": "4.44.1",
    "rollup-plugin-visualizer": "6.0.3",
    "sass-embedded": "1.89.2",
    "start-server-and-test": "2.0.12",
    "typescript": "5.8.3",
    "unplugin-inject-preload": "3.0.0",
    "vite": "7.0.0",
    "vite-plugin-pwa": "1.0.1",
    "vite-plugin-sentry": "1.4.1",
    "vite-plugin-vue-devtools": "7.7.7",
    "vite-svg-loader": "5.1.0",
    "vitest": "3.2.4",
    "vue-tsc": "3.0.0",
    "wait-on": "8.0.3",
    "workbox-cli": "7.3.0"
  },
  "pnpm": {
    "patchedDependencies": {
      "@github/hotkey@3.1.1": "patches/@github__hotkey@3.1.1.patch",
      "flexsearch@0.7.43": "patches/flexsearch@0.7.43.patch"
    },
    "onlyBuiltDependencies": [
      "@parcel/watcher",
      "@sentry/cli",
      "cypress",
      "esbuild",
      "puppeteer",
      "vue-demi"
    ]
  }
}
