{
  "name": "front",
  "version": "0.1.0",
  "private": true,
  "description": "Funkwhale front-end",
  "author": "Funkwhale Collective <contact@funkwhale.audio>",
  "scripts": {
    "dev": "vite",
    "build": "vite build --mode development",
    "build:deployment": "vite build",
    "serve": "vite preview",
    "test": "vitest run",
    "test:unit": "vitest run --coverage",
    "test:generate-mock-server": "msw-auto-mock ../docs/schema.yml -o test/msw-server.ts --node",
    "lint": "eslint --cache --cache-strategy content --ext .ts,.js,.vue,.json,.html src test cypress public/embed.html",
    "lint:tsc": "vue-tsc --noEmit --incremental && tsc --noEmit --incremental -p cypress",
    "fix-fomantic-css": "scripts/fix-fomantic-css.sh",
    "postinstall": "yarn run fix-fomantic-css"
  },
  "dependencies": {
    "@funkwhale/ui": "0.2.2",
    "@sentry/tracing": "7.47.0",
    "@sentry/vue": "7.47.0",
    "@tauri-apps/api": "2.0.0-beta.1",
    "@vue/runtime-core": "3.3.11",
    "@vueuse/core": "10.3.0",
    "@vueuse/integrations": "10.3.0",
    "@vueuse/math": "10.3.0",
    "@vueuse/router": "10.3.0",
    "axios": "1.7.2",
    "axios-auth-refresh": "3.3.6",
    "butterchurn": "3.0.0-beta.4",
    "butterchurn-presets": "3.0.0-beta.4",
    "diff": "5.1.0",
    "dompurify": "3.0.8",
    "focus-trap": "7.2.0",
    "fomantic-ui-css": "2.9.3",
    "idb-keyval": "6.2.1",
    "lodash-es": "4.17.21",
    "lru-cache": "10.2.0",
    "moment": "2.29.4",
    "showdown": "2.1.0",
    "stacktrace-js": "2.0.2",
    "standardized-audio-context": "25.3.60",
    "text-clipper": "2.2.0",
    "transliteration": "2.3.5",
    "universal-cookie": "4.0.4",
    "vite-plugin-pwa": "0.14.4",
    "vue": "3.3.11",
    "vue-gettext": "2.1.12",
    "vue-i18n": "9.9.1",
    "vue-router": "4.2.5",
    "vue-upload-component": "3.1.8",
    "vue-virtual-scroller": "2.0.0-beta.8",
    "vue3-gettext": "2.3.4",
    "vue3-lazyload": "0.3.8",
    "vuedraggable": "4.1.0",
    "vuex": "4.1.0",
    "vuex-persistedstate": "4.1.0",
    "vuex-router-sync": "5.0.0"
  },
  "devDependencies": {
    "@faker-js/faker": "8.4.1",
    "@intlify/eslint-plugin-vue-i18n": "2.0.0",
    "@intlify/unplugin-vue-i18n": "2.0.0",
    "@tauri-apps/cli": "^2.0.2",
    "@types/diff": "5.0.9",
    "@types/dompurify": "3.0.5",
    "@types/jquery": "3.5.29",
    "@types/lodash-es": "4.17.12",
    "@types/moxios": "0.4.17",
    "@types/qs": "6.9.10",
    "@types/semantic-ui": "2.2.9",
    "@types/showdown": "2.0.6",
    "@types/vue-virtual-scroller": "npm:@earltp/vue-virtual-scroller",
    "@typescript-eslint/eslint-plugin": "7.1.0",
    "@vitejs/plugin-vue": "5.0.3",
    "@vitest/coverage-v8": "1.3.1",
    "@vue-macros/volar": "0.13.3",
    "@vue/compiler-sfc": "3.3.11",
    "@vue/eslint-config-standard": "8.0.1",
    "@vue/eslint-config-typescript": "12.0.0",
    "@vue/test-utils": "2.2.7",
    "@vue/tsconfig": "0.5.1",
    "cypress": "13.6.4",
    "eslint": "8.57.0",
    "eslint-config-standard": "17.1.0",
    "eslint-plugin-html": "8.0.0",
    "eslint-plugin-import": "2.29.1",
    "eslint-plugin-n": "16.6.2",
    "eslint-plugin-node": "11.1.0",
    "eslint-plugin-promise": "6.1.1",
    "eslint-plugin-vue": "9.22.0",
    "jsdom": "24.0.0",
    "jsonc-eslint-parser": "2.4.0",
    "msw": "2.2.1",
    "msw-auto-mock": "0.18.0",
    "patch-package": "8.0.0",
    "rollup-plugin-visualizer": "5.9.0",
    "sass": "1.57.1",
    "sinon": "15.0.2",
    "standardized-audio-context-mock": "9.6.32",
    "typescript": "5.3.3",
    "unplugin-vue-macros": "2.4.6",
    "utility-types": "3.10.0",
    "vite": "5.2.12",
    "vitest": "1.3.1",
    "vue-tsc": "1.8.27",
    "workbox-core": "6.5.4",
    "workbox-precaching": "6.5.4",
    "workbox-routing": "6.5.4",
    "workbox-strategies": "6.5.4"
  }
}