{ "name": "client", "private": true, "type": "module", "scripts": { "watch": "pnpm vite build --watch --mode development", "build": "pnpm vite build", "build:debug": "pnpm run build", "lint": "pnpm biome check **/*.ts --apply ; pnpm run lint:vue", "lint:vue": "pnpm eslint src --fix '**/*.vue' --cache ; pnpm run format", "types:check": "pnpm vue-tsc --noEmit", "format": "pnpm biome format * --write" }, "devDependencies": { "@eslint-sets/eslint-config-vue3": "^5.13.0", "@eslint-sets/eslint-config-vue3-ts": "^3.3.0", "@phosphor-icons/web": "^2.1.1", "@rollup/plugin-alias": "5.1.0", "@rollup/plugin-json": "6.1.0", "@rollup/pluginutils": "^5.1.0", "@syuilo/aiscript": "0.17.0", "@misskey-dev/browser-image-resizer": "2024.1.0", "@types/autosize": "^4.0.3", "@types/glob": "8.1.0", "@types/insert-text-at-cursor": "^0.3.2", "@types/katex": "0.16.7", "@types/matter-js": "0.19.6", "@types/prismjs": "^1.26.4", "@types/punycode": "2.1.4", "@types/qrcode": "1.5.5", "@types/seedrandom": "3.0.8", "@types/textarea-caret": "^3.0.3", "@types/throttle-debounce": "5.0.2", "@types/tinycolor2": "1.4.6", "@types/uuid": "9.0.8", "@vitejs/plugin-vue": "5.0.4", "@vue/runtime-core": "3.4.27", "autobind-decorator": "2.4.0", "autosize": "6.0.1", "broadcast-channel": "7.0.0", "chart.js": "4.4.2", "chartjs-adapter-date-fns": "3.0.0", "chartjs-chart-matrix": "^2.0.1", "chartjs-plugin-gradient": "0.6.1", "chartjs-plugin-zoom": "2.0.1", "city-timezones": "^1.2.1", "compare-versions": "6.1.0", "cropperjs": "2.0.0-beta.5", "date-fns": "3.6.0", "emojilib": "^3.0.12", "eslint-plugin-file-progress": "^1.3.0", "eventemitter3": "5.0.1", "fast-blurhash": "^1.1.2", "firefish-js": "workspace:*", "focus-trap": "^7.5.4", "focus-trap-vue": "^4.0.3", "gsap": "^3.12.5", "idb-keyval": "6.2.1", "insert-text-at-cursor": "0.3.0", "json5": "2.2.3", "katex": "0.16.10", "long": "^5.2.3", "libopenmpt-wasm": "github:TheEssem/libopenmpt-packaging#build", "matter-js": "0.19.0", "mfm-js": "0.24.0", "multer": "1.4.5-lts.1", "moment": "2.30.1", "photoswipe": "5.4.3", "prismjs": "1.29.0", "punycode": "2.3.1", "qrcode": "1.5.3", "qrcode-vue3": "^1.6.8", "rollup": "4.17.2", "s-age": "1.1.2", "sass": "1.77.1", "seedrandom": "3.0.5", "stringz": "2.1.0", "swiper": "11.1.1", "syuilo-password-strength": "0.0.1", "textarea-caret": "3.1.0", "three": "0.164.1", "throttle-debounce": "5.0.0", "tinycolor2": "1.6.0", "tinyld": "^1.3.4", "typescript": "5.4.5", "unicode-emoji-json": "^0.6.0", "uuid": "9.0.1", "vite": "5.2.11", "vite-plugin-compression": "^0.5.1", "vue": "3.4.27", "vue-draggable-plus": "^0.4.0", "vue-plyr": "^7.0.0", "vue-prism-editor": "2.0.0-alpha.2", "vue-tsc": "2.0.17" } }