139 lines
5.0 KiB
JSON
139 lines
5.0 KiB
JSON
{
|
|
"name": "front",
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"private": true,
|
|
"description": "Funkwhale front-end",
|
|
"author": "Funkwhale Collective <contact@funkwhale.audio>",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"dev:docs": "VP_DOCS=true vitepress dev ui-docs",
|
|
"build": "vite build --mode development",
|
|
"build:deployment": "vite build",
|
|
"build:docs": "VP_DOCS=true vitepress build ui-docs",
|
|
"serve:docs": "VP_DOCS=true vitepress serve ui-docs",
|
|
"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": "yarn lint:es && yarn lint:tsc",
|
|
"lint:es": "eslint --max-warnings 0 --cache --cache-strategy content --ext .ts,.js,.vue,.json,.html,.cjs . cypress public/embed.html src test ui-docs",
|
|
"lint:tsc": "vue-tsc --noEmit --incremental && tsc --noEmit --incremental --project tsconfig.json",
|
|
"generate-types-from-local-schema": "yarn run openapi-typescript ../api/funkwhale_api/common/schema.yml -o src/generated/types.ts",
|
|
"generate-types-from-remote-schema": "yarn run openapi-typescript https://docs.funkwhale.audio/develop/swagger/schema.yml -o src/generated/types.ts",
|
|
"fmt:es": "yarn lint:es --fix",
|
|
"fmt:html": "node --experimental-strip-types node_modules/prettier/bin/prettier.cjs index.html public/embed.html --write"
|
|
},
|
|
"dependencies": {
|
|
"@sentry/tracing": "7.47.0",
|
|
"@sentry/vue": "7.47.0",
|
|
"@tauri-apps/api": "2.0.0-beta.1",
|
|
"@types/jsmediatags": "3.9.6",
|
|
"@vue/runtime-core": "3.3.11",
|
|
"@vueuse/components": "10.6.1",
|
|
"@vueuse/core": "10.6.1",
|
|
"@vueuse/integrations": "10.6.1",
|
|
"@vueuse/math": "10.6.1",
|
|
"@vueuse/router": "10.6.1",
|
|
"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.2.4",
|
|
"focus-trap": "7.2.0",
|
|
"idb-keyval": "6.2.1",
|
|
"jquery": "3.7.1",
|
|
"jsmediatags": "3.9.7",
|
|
"lodash-es": "4.17.21",
|
|
"lru-cache": "10.2.0",
|
|
"magic-regexp": "0.8.0",
|
|
"moment": "2.29.4",
|
|
"music-metadata-browser": "2.5.10",
|
|
"nanoid": "5.0.4",
|
|
"pinia": "2.1.7",
|
|
"showdown": "2.1.0",
|
|
"stacktrace-js": "2.0.2",
|
|
"standardized-audio-context": "25.3.60",
|
|
"text-clipper": "2.2.0",
|
|
"transliteration": "2.3.5",
|
|
"type-fest": "4.30.1",
|
|
"universal-cookie": "4.0.4",
|
|
"vite-plugin-pwa": "0.14.4",
|
|
"vue": "3.5.13",
|
|
"vue-dompurify-html": "5.2.0",
|
|
"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",
|
|
"@iconify/vue": "4.1.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.1.4",
|
|
"@vitest/coverage-v8": "1.3.1",
|
|
"@vue-macros/common": "1.15.1",
|
|
"@vue-macros/volar": "0.17.2",
|
|
"@vue/compiler-sfc": "3.3.11",
|
|
"@vue/eslint-config-standard": "8.0.1",
|
|
"@vue/eslint-config-typescript": "12.0.0",
|
|
"@vue/test-utils": "2.4.1",
|
|
"@vue/tsconfig": "0.6.0",
|
|
"cypress": "13.6.4",
|
|
"eslint": "8.57.0",
|
|
"eslint-config-standard": "17.1.0",
|
|
"eslint-plugin-html": "8.1.2",
|
|
"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",
|
|
"openapi-typescript": "7.6.0",
|
|
"patch-package": "8.0.0",
|
|
"rollup-plugin-visualizer": "5.9.0",
|
|
"sass": "1.68.0",
|
|
"sinon": "15.0.2",
|
|
"standardized-audio-context-mock": "9.6.32",
|
|
"typescript": "5.3.3",
|
|
"unocss": "0.58.0",
|
|
"unplugin-vue-macros": "2.6.2",
|
|
"utility-types": "3.10.0",
|
|
"vite": "5.2.12",
|
|
"vite-plugin-node-polyfills": "0.17.0",
|
|
"vite-plugin-pwa": "0.14.4",
|
|
"vite-plugin-vue-devtools": "^7.5.2",
|
|
"vitepress": "1.5.0",
|
|
"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"
|
|
},
|
|
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
}
|