{
  "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",
    "lint": "eslint --ext .ts,.js,.vue,.json,.html src test public/embed.html",
    "lint:tsc": "vue-tsc --noEmit",
    "fix-fomantic-css": "scripts/fix-fomantic-css.sh",
    "postinstall": "yarn run fix-fomantic-css"
  },
  "dependencies": {
    "@sentry/tracing": "7.27.0",
    "@sentry/vue": "7.27.0",
    "@vue/runtime-core": "3.2.45",
    "@vueuse/core": "9.12.0",
    "@vueuse/integrations": "9.12.0",
    "@vueuse/math": "9.12.0",
    "@vueuse/router": "9.12.0",
    "axios": "1.2.3",
    "axios-auth-refresh": "3.3.6",
    "butterchurn": "3.0.0-beta.4",
    "butterchurn-presets": "3.0.0-beta.4",
    "diff": "5.1.0",
    "dompurify": "2.4.3",
    "focus-trap": "7.2.0",
    "fomantic-ui-css": "2.9.1",
    "howler": "2.2.3",
    "idb-keyval": "6.2.0",
    "js-logger": "1.6.1",
    "lodash-es": "4.17.21",
    "lru-cache": "7.14.1",
    "moment": "2.29.4",
    "showdown": "2.1.0",
    "standardized-audio-context": "25.3.37",
    "text-clipper": "2.2.0",
    "transliteration": "2.3.5",
    "universal-cookie": "4.0.4",
    "vue": "3.2.45",
    "vue-gettext": "2.1.12",
    "vue-i18n": "9.3.0-beta.16",
    "vue-router": "4.1.6",
    "vue-upload-component": "3.1.6",
    "vue-virtual-scroller": "2.0.0-beta.7",
    "vue3-gettext": "2.3.4",
    "vue3-lazyload": "0.3.6",
    "vuedraggable": "4.1.0",
    "vuex": "4.1.0",
    "vuex-persistedstate": "4.1.0",
    "vuex-router-sync": "5.0.0"
  },
  "devDependencies": {
    "@intlify/eslint-plugin-vue-i18n": "2.0.0",
    "@intlify/unplugin-vue-i18n": "0.8.2",
    "@types/diff": "5.0.2",
    "@types/dompurify": "2.4.0",
    "@types/howler": "2.2.7",
    "@types/jquery": "3.5.16",
    "@types/lodash-es": "4.17.6",
    "@types/moxios": "0.4.15",
    "@types/qs": "6.9.7",
    "@types/semantic-ui": "2.2.7",
    "@types/showdown": "2.0.0",
    "@types/vue-virtual-scroller": "npm:@earltp/vue-virtual-scroller",
    "@typescript-eslint/eslint-plugin": "5.48.2",
    "@vitejs/plugin-vue": "4.0.0",
    "@vitest/coverage-c8": "0.25.8",
    "@vue/compiler-sfc": "3.2.47",
    "@vue/eslint-config-standard": "8.0.1",
    "@vue/eslint-config-typescript": "11.0.2",
    "@vue/test-utils": "2.2.7",
    "@vue/tsconfig": "0.1.3",
    "axios-mock-adapter": "1.21.4",
    "eslint": "8.30.0",
    "eslint-config-standard": "17.0.0",
    "eslint-plugin-html": "7.1.0",
    "eslint-plugin-import": "2.26.0",
    "eslint-plugin-n": "15.6.1",
    "eslint-plugin-node": "11.1.0",
    "eslint-plugin-promise": "6.1.1",
    "eslint-plugin-vue": "9.8.0",
    "jsdom": "20.0.3",
    "jsonc-eslint-parser": "2.1.0",
    "sass": "1.57.1",
    "sinon": "15.0.1",
    "standardized-audio-context-mock": "9.6.18",
    "typescript": "4.9.4",
    "utility-types": "3.10.0",
    "vite": "4.0.4",
    "vite-plugin-pwa": "0.14.1",
    "vitest": "0.25.8",
    "vue-tsc": "1.0.24",
    "workbox-core": "6.5.4",
    "workbox-precaching": "6.5.4",
    "workbox-routing": "6.5.4",
    "workbox-strategies": "6.5.4"
  }
}
