{ "name": "tg-live-game-web", "private": true, "version": "1.0.27", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview", "lint": "eslint . --ext .vue,.js,.jsx,.ts,.tsx", "lint:fix": "eslint . --ext .vue,.js,.jsx,.ts,.tsx --fix", "prettier": "prettier --write .", "format": "prettier --write ./src", "format-staged": "git diff --name-only --cached --diff-filter=ACMRT | grep -E '\\.(js|ts|jsx|tsx|css|scss|json|md|vue)$' | xargs npx prettier --write", "lint-staged": "lint-staged", "test": "vitest", "test:run": "vitest run", "test:ui": "vitest --ui", "test:coverage": "vitest run --coverage", "test:e2e": "playwright test", "test:e2e:ui": "playwright test --ui", "type-check": "vue-tsc --noEmit -p tsconfig.app.json --composite false", "prepare": "husky install", "deploy": "wrangler pages deploy dist --project-name=tg-live-game-web --branch=main", "deploy:preview": "wrangler pages deploy dist --project-name=tg-live-game-web --branch=preview", "build:deploy": "pnpm run build && pnpm run deploy", "i18n": "i18next-scanner --config i18next-scanner.config.cjs && node scripts/sort-json.cjs", "i18n:scan": "i18next-scanner --config i18next-scanner.config.cjs" }, "lint-staged": { "*.{vue,js,ts}": [ "prettier --write" ] }, "dependencies": { "@codemirror/lang-json": "^6.0.2", "@codemirror/theme-one-dark": "^6.1.3", "@codemirror/view": "^6.39.11", "@element-plus/icons-vue": "^2.1.0", "@vueuse/core": "^14.1.0", "axios": "^1.4.0", "codemirror": "^6.0.2", "cz-customizable": "^7.5.1", "date-fns": "^4.1.0", "date-fns-tz": "^3.2.0", "dayjs": "^1.11.19", "element-plus": "2.7.5", "element-plus-table-dragable": "^1.0.0", "hls.js": "^1.4.10", "lodash-es": "^4.17.22", "nprogress": "^0.2.0", "pinia": "^2.0.36", "sass": "^1.62.1", "vue": "^3.5.13", "vue-codemirror": "^6.1.1", "vue-i18n": "^11.2.8", "vue-router": "^4.2.0" }, "devDependencies": { "@commitlint/cli": "^12.1.1", "@commitlint/config-conventional": "^12.1.1", "@iconify-json/ep": "^1.2.3", "@iconify-json/mdi": "^1.2.3", "@iconify-json/ri": "^1.2.7", "@iconify/vue": "^5.0.0", "@playwright/test": "^1.57.0", "@types/lodash-es": "^4.17.12", "@types/node": "^18.16.8", "@types/nprogress": "^0.2.3", "@typescript-eslint/eslint-plugin": "^8.20.0", "@typescript-eslint/parser": "^8.20.0", "@vitejs/plugin-vue": "5.0.5", "@vitest/coverage-v8": "^4.0.16", "@vitest/ui": "^4.0.16", "@vue/test-utils": "^2.0.0-rc.4", "@vue/tsconfig": "^0.4.0", "@vue/eslint-config-prettier": "^7.1.0", "@vue/eslint-config-typescript": "^11.0.3", "eslint": "^8.57.1", "eslint-config-airbnb-base": "^14.2.1", "eslint-config-prettier": "^8.1.0", "eslint-plugin-import": "^2.22.1", "eslint-plugin-jest": "^28.11.0", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-unused-imports": "^4.1.4", "eslint-plugin-vue": "^9.11.0", "happy-dom": "^20.0.11", "husky": "^6.0.0", "i18next-scanner": "^4.6.0", "i18next-scanner-typescript": "^1.2.1", "lint-staged": "^10.5.4", "prettier": "^2.8.8", "typescript": "~5.6.3", "unplugin-auto-import": "^0.19.0", "unplugin-icons": "^22.5.0", "unplugin-vue-components": "^0.28.0", "vite": "5.3.1", "vite-plugin-vue-devtools": "^7.7.0", "vitest": "^4.0.16", "vue-tsc": "2.1.10" }, "config": { "commitizen": { "path": "./node_modules/cz-customizable" } } }