{
  "name": "koel",
  "author": "Phan An <me@phanan.net>",
  "homepage": "https://koel.dev",
  "license": "MIT",
  "description": "A personal music streaming server that works",
  "keywords": [
    "music",
    "audio",
    "stream"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/koel/koel"
  },
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^6.1.1",
    "@fortawesome/free-brands-svg-icons": "^6.1.1",
    "@fortawesome/free-regular-svg-icons": "^6.1.1",
    "@fortawesome/free-solid-svg-icons": "^6.1.1",
    "@fortawesome/vue-fontawesome": "^3.0.1",
    "axios": "^1.7.7",
    "compare-versions": "^3.5.1",
    "dompurify": "^3.1.4",
    "events": "^3.3.0",
    "fuse.js": "^7.0.0",
    "ismobilejs": "^0.4.0",
    "js-md5": "^0.8.3",
    "local-storage": "^2.0.0",
    "lodash": "^4.17.19",
    "lucide-vue-next": "^0.452.0",
    "nouislider": "^14.0.2",
    "nprogress": "^0.2.0",
    "plyr": "1.5.x",
    "pusher-js": "^4.1.0",
    "qrcode": "^1.5.4",
    "select": "^1.1.2",
    "sketch-js": "^1.1.3",
    "slugify": "^1.0.2",
    "three": "^0.146.0",
    "tiny-typed-emitter": "^2.1.0",
    "vue": "^3.3.4",
    "vue-advanced-cropper": "^2.8.9",
    "youtube-player": "^3.0.4"
  },
  "devDependencies": {
    "@antfu/eslint-config": "^3.7.3",
    "@commitlint/cli": "^19.4.0",
    "@commitlint/config-conventional": "^19.2.2",
    "@faker-js/faker": "^6.2.0",
    "@floating-ui/dom": "^1.0.3",
    "@testing-library/user-event": "^14.4.3",
    "@testing-library/vue": "^6.6.1",
    "@types/axios": "^0.14.0",
    "@types/dompurify": "^3.0.5",
    "@types/local-storage": "^1.4.0",
    "@types/lodash": "^4.14.150",
    "@types/nprogress": "^0.2.0",
    "@types/pusher-js": "^4.2.2",
    "@types/three": "^0.144.0",
    "@types/youtube-player": "^5.5.2",
    "@vitejs/plugin-vue": "^5.0.4",
    "@vueuse/components": "^10.9.0",
    "@vueuse/core": "^10.9.0",
    "@vueuse/integrations": "^10.9.0",
    "autoprefixer": "^10.4.19",
    "cypress": "^9.5.4",
    "eslint": "^9.11.1",
    "eslint-plugin-format": "^0.1.2",
    "factoria": "^4.0.0",
    "husky": "^9.1.5",
    "jest-serializer-vue": "^2.0.2",
    "jsdom": "^19.0.0",
    "laravel-vite-plugin": "^1.0.2",
    "lint-staged": "^10.3.0",
    "postcss": "^8.4.38",
    "postcss-mixins": "^10.0.0",
    "postcss-nested": "^6.0.1",
    "tailwindcss": "^3.4.3",
    "typescript": "^4.8.4",
    "vite": "^5.1.8",
    "vitepress": "^1.0.0-rc.45",
    "vitest": "^0.24.0",
    "yarn": "^1.22.22"
  },
  "scripts": {
    "lint": "eslint ./resources/assets",
    "lint:fix": "eslint ./resources/assets --fix",
    "test": "vitest",
    "test:unit": "vitest",
    "test:e2e": "kill-port 8080 && start-test dev http-get://localhost:8080/api/ping 'cypress open'",
    "test:e2e:ci": "kill-port 8080 && start-test 'php artisan serve --port=8080 --quiet' http-get://localhost:8080/api/ping 'cypress run --browser chromium'",
    "build": "vite build",
    "dev": "node -e \"console.warn('Command \\\"yarn dev\\\" has been removed. Use \\\"composer dev\\\" instead.')\"",
    "docs:dev": "vitepress dev docs",
    "docs:build": "vitepress build docs",
    "docs:preview": "vitepress preview docs",
    "prepare": "husky"
  },
  "lint-staged": {
    "**/*.php": [
      "composer cs"
    ],
    "resources/assets/**/*.{js,ts,css,pcss,vue}": [
      "eslint --fix"
    ],
    "cypress/**/*.ts": [
      "eslint --fix"
    ]
  },
  "type": "module",
  "packageManager": "yarn@1.22.19"
}
