{ "type": "module", "workspaces": [ "packages/*" ], "scripts": { "prepare": "cd .. && husky install ui/.husky", "dev": "run-p dev:console dev:uc", "dev:uc": "vite --host --config ./vite.uc.config.ts", "dev:console": "vite --host --config ./vite.config.ts", "build": "vue-tsc --noEmit -p tsconfig.app.json --composite false && run-p build:console build:uc", "build:uc": "vite build --config ./vite.uc.config.ts", "build:console": "vite build --config ./vite.config.ts", "build:packages": "pnpm -r run build", "api-client:gen": "pnpm -C packages/api-client gen", "test:unit": "vitest --run && pnpm run test:unit:packages", "test:unit:watch": "vitest --watch", "test:unit:ui": "vitest --watch --ui", "test:unit:coverage": "vitest run --coverage", "typecheck": "vue-tsc --noEmit -p tsconfig.app.json --composite false && pnpm run typecheck:packages", "lint": "eslint . --max-warnings=0 -f html -o build/lint-result/index.html", "prettier": "prettier . --write", "typecheck:packages": "pnpm --parallel -r run typecheck", "test:unit:packages": "pnpm --parallel -r run test:unit", "publish:packages": "pnpm -r publish --access public --no-git-checks" }, "lint-staged": { "**/*": "prettier --write --ignore-unknown", "*.{ts,mts,tsx,vue}": [ "eslint --fix --max-warnings=0" ] }, "browserslist": [ "defaults" ], "prettier": { "plugins": [ "prettier-plugin-organize-imports", "prettier-plugin-tailwindcss" ], "trailingComma": "es5" }, "resolutions": { "axios": "^1.7.9" }, "dependencies": { "@codemirror/commands": "^6.1.2", "@codemirror/lang-css": "^6.0.1", "@codemirror/lang-html": "^6.2.0", "@codemirror/lang-javascript": "^6.1.1", "@codemirror/lang-json": "^6.0.1", "@codemirror/language": "^6.3.1", "@codemirror/legacy-modes": "^6.3.0", "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.5.1", "@emoji-mart/data": "^1.2.1", "@formkit/core": "^1.5.9", "@formkit/drag-and-drop": "^0.1.6", "@formkit/i18n": "^1.5.9", "@formkit/inputs": "^1.5.9", "@formkit/themes": "^1.5.9", "@formkit/utils": "^1.5.9", "@formkit/validation": "^1.5.9", "@formkit/vue": "^1.5.9", "@halo-dev/api-client": "workspace:*", "@halo-dev/components": "workspace:*", "@halo-dev/console-shared": "workspace:*", "@halo-dev/richtext-editor": "workspace:*", "@he-tree/tree-utils": "0.1.0-alpha.6", "@he-tree/vue": "^2.9.4", "@number-flow/vue": "^0.4.8", "@tanstack/vue-query": "^4.37.1", "@tiptap/extension-character-count": "^2.24.1", "@uppy/core": "^3.11.3", "@uppy/dashboard": "^3.8.3", "@uppy/drag-drop": "^3.1.0", "@uppy/file-input": "^3.1.2", "@uppy/image-editor": "^2.4.6", "@uppy/locales": "^3.5.3", "@uppy/progress-bar": "^3.1.1", "@uppy/status-bar": "^3.3.3", "@uppy/vue": "^1.1.2", "@uppy/xhr-upload": "3.6.0", "@vueuse/components": "^10.11.1", "@vueuse/core": "^10.11.1", "@vueuse/integrations": "^10.11.1", "@vueuse/router": "^10.11.1", "@vueuse/shared": "^10.11.1", "axios": "^1.7.9", "codemirror": "^6.0.1", "colorjs.io": "^0.4.3", "core-js": "^3.43.0", "cropperjs": "^1.5.13", "crypto-js": "^4.2.0", "dayjs": "^1.11.7", "emoji-mart": "^5.6.0", "floating-vue": "^5.2.2", "fuse.js": "^6.6.2", "lodash-es": "^4.17.21", "object-hash": "^3.0.0", "overlayscrollbars": "^2.5.0", "overlayscrollbars-vue": "^0.5.7", "path-browserify": "^1.0.1", "pinia": "^3.0.3", "pretty-bytes": "^6.0.0", "qrcode": "^1.5.3", "qs": "^6.11.1", "sanitize-html": "^2.17.0", "short-unique-id": "^5.0.2", "transliteration": "^2.3.5", "ua-parser-js": "^1.0.38", "vue": "^3.5.16", "vue-demi": "^0.14.10", "vue-draggable-plus": "^0.4.1", "vue-grid-layout": "3.0.0-beta1", "vue-i18n": "^11.1.5", "vue-router": "^4.5.1" }, "devDependencies": { "@iconify/json": "^2.2.343", "@intlify/unplugin-vue-i18n": "^6.0.8", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/forms": "^0.5.10", "@tsconfig/node18": "^2.0.1", "@types/crypto-js": "^4.2.2", "@types/jsdom": "^21.1.7", "@types/lodash-es": "^4.17.12", "@types/node": "^18.11.19", "@types/object-hash": "^3.0.6", "@types/qs": "^6.9.7", "@types/sanitize-html": "^2.16.0", "@types/ua-parser-js": "^0.7.39", "@typescript/native-preview": "7.0.0-dev.20250619.1", "@vitejs/plugin-vue": "^6.0.1", "@vitejs/plugin-vue-jsx": "^5.0.1", "@vitest/eslint-plugin": "^1.3.4", "@vitest/ui": "^3.2.4", "@vue/compiler-sfc": "^3.5.16", "@vue/eslint-config-prettier": "^10.2.0", "@vue/eslint-config-typescript": "^14.5.0", "@vue/test-utils": "^2.4.6", "@vue/tsconfig": "^0.5.1", "autoprefixer": "^10.4.21", "c8": "^7.12.0", "eslint": "^9.22.0", "eslint-plugin-vue": "^9.33.0", "husky": "^8.0.3", "js-yaml": "^4.1.0", "jsdom": "^26.1.0", "lint-staged": "^13.2.2", "npm-run-all": "^4.1.5", "postcss": "^8.4.21", "postcss-viewport-height-correction": "^1.1.1", "prettier": "^3.6.0", "prettier-plugin-organize-imports": "^4.1.0", "prettier-plugin-tailwindcss": "^0.6.13", "rollup-plugin-gzip": "^3.1.0", "sass-embedded": "^1.82.0", "start-server-and-test": "^1.14.0", "tailwindcss": "^3.4.17", "tailwindcss-themer": "^4.1.1", "terser": "^5.37.0", "tsdown": "^0.13.5", "typescript": "~5.8.0", "unplugin-icons": "^22.1.0", "vite": "^7.0.5", "vite-plugin-dts": "^4.5.4", "vite-plugin-externals": "^0.6.2", "vite-plugin-html": "^3.2.2", "vite-plugin-pwa": "^0.20.0", "vite-plugin-static-copy": "^1.0.6", "vitest": "^3.2.4", "vue-tsc": "^2.2.10" }, "packageManager": "pnpm@10.12.4+sha512.5ea8b0deed94ed68691c9bad4c955492705c5eeb8a87ef86bc62c74a26b037b08ff9570f108b2e4dbd1dd1a9186fea925e527f141c648e85af45631074680184", "pnpm": { "overrides": { "vite": "npm:rolldown-vite@7.1.4", "prosemirror-model": "1.25.1", "prosemirror-view": "1.40.0", "prosemirror-transform": "1.10.4" }, "onlyBuiltDependencies": [ "@nestjs/core", "@openapitools/openapi-generator-cli", "@parcel/watcher", "@tailwindcss/oxide", "core-js", "esbuild", "vue-demi" ] } }