{
  "scripts": {
    "prepare": "cd .. && husky install console/.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": "run-s build:console build:uc",
    "build:uc": "vue-tsc --noEmit && vite build --config ./vite.uc.config.ts",
    "build:console": "vue-tsc --noEmit && vite build --config ./vite.config.ts",
    "build:packages": "pnpm --filter \"./packages/**\" build",
    "preview": "vite preview --port 5050",
    "api-client:gen": "pnpm --filter \"./packages/api-client\" gen",
    "test:unit": "vitest --environment jsdom --run && pnpm run test:unit:packages",
    "test:unit:watch": "vitest --environment jsdom --watch",
    "test:unit:ui": "vitest --environment jsdom --watch --ui",
    "test:unit:coverage": "vitest run --environment jsdom --coverage",
    "test:e2e": "start-server-and-test preview http://127.0.0.1:5050/ 'cypress open'",
    "test:e2e:ci": "start-server-and-test preview http://127.0.0.1:5050/ 'cypress run'",
    "typecheck": "vue-tsc --noEmit -p tsconfig.app.json --composite false && pnpm run typecheck:packages",
    "lint": "eslint './src' './console-src' './uc-src' --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-path .gitignore --max-warnings=0 && pnpm run lint:packages",
    "prettier": "prettier --write './{src,uc-src,console-src}/**/*.{vue,js,jsx,ts,tsx,css,scss,json,yml,yaml,html}' && pnpm run prettier:packages",
    "typecheck:packages": "pnpm --parallel --filter \"./packages/**\" run typecheck",
    "lint:packages": "pnpm --parallel --filter \"./packages/**\" lint",
    "prettier:packages": "pnpm --parallel --filter \"./packages/**\" prettier",
    "test:unit:packages": "pnpm --parallel --filter \"./packages/**\" run test:unit",
    "link:editor": "pnpm link --global @halo-dev/richtext-editor"
  },
  "lint-staged": {
    "*.{vue,js,jsx,ts,tsx,css,scss,json,yml,yaml,html}": [
      "prettier --write"
    ],
    "*.{js,ts,vue,tsx,jsx}": [
      "eslint --fix --max-warnings=0"
    ]
  },
  "workspaces": [
    "packages/*"
  ],
  "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.0.8",
    "@formkit/core": "^1.4.0",
    "@formkit/i18n": "^1.4.0",
    "@formkit/inputs": "^1.4.0",
    "@formkit/themes": "^1.4.0",
    "@formkit/utils": "^1.4.0",
    "@formkit/validation": "^1.4.0",
    "@formkit/vue": "^1.4.0",
    "@halo-dev/api-client": "workspace:*",
    "@halo-dev/components": "workspace:*",
    "@halo-dev/console-shared": "workspace:*",
    "@halo-dev/richtext-editor": "workspace:*",
    "@tanstack/vue-query": "^4.29.1",
    "@tiptap/extension-character-count": "^2.1.16",
    "@uppy/core": "^3.8.0",
    "@uppy/dashboard": "^3.7.1",
    "@uppy/drag-drop": "^3.0.3",
    "@uppy/file-input": "^3.0.4",
    "@uppy/locales": "^3.5.0",
    "@uppy/progress-bar": "^3.0.4",
    "@uppy/status-bar": "^3.2.5",
    "@uppy/vue": "^1.1.0",
    "@uppy/xhr-upload": "^3.6.0",
    "@vueuse/components": "^10.3.0",
    "@vueuse/core": "^10.3.0",
    "@vueuse/integrations": "^10.5.0",
    "@vueuse/router": "^10.3.0",
    "@vueuse/shared": "^10.3.0",
    "axios": "^0.27.2",
    "codemirror": "^6.0.1",
    "colorjs.io": "^0.4.3",
    "cropperjs": "^1.5.13",
    "dayjs": "^1.11.7",
    "emoji-mart": "^5.3.3",
    "floating-vue": "2.0.0-beta.24",
    "fuse.js": "^6.6.2",
    "jsencrypt": "^3.3.2",
    "lodash-es": "^4.17.21",
    "overlayscrollbars": "^2.1.1",
    "overlayscrollbars-vue": "^0.5.1",
    "path-browserify": "^1.0.1",
    "pinia": "^2.1.6",
    "pretty-bytes": "^6.0.0",
    "qrcode": "^1.5.3",
    "qs": "^6.11.1",
    "short-unique-id": "^5.0.2",
    "transliteration": "^2.3.5",
    "vue": "^3.3.4",
    "vue-demi": "^0.14.5",
    "vue-grid-layout": "3.0.0-beta1",
    "vue-i18n": "9.3.0-beta.25",
    "vue-router": "^4.2.4",
    "vuedraggable": "^4.1.0"
  },
  "devDependencies": {
    "@changesets/cli": "^2.25.2",
    "@iconify-json/mdi": "^1.1.50",
    "@iconify-json/vscode-icons": "^1.1.22",
    "@intlify/unplugin-vue-i18n": "^0.12.2",
    "@rushstack/eslint-patch": "^1.3.2",
    "@tailwindcss/aspect-ratio": "^0.4.2",
    "@tailwindcss/container-queries": "^0.1.0",
    "@tailwindcss/forms": "^0.5.7",
    "@tsconfig/node18": "^2.0.1",
    "@types/jsdom": "^20.0.1",
    "@types/lodash-es": "^4.17.12",
    "@types/node": "^18.11.19",
    "@types/qs": "^6.9.7",
    "@types/randomstring": "^1.1.8",
    "@vitejs/plugin-vue": "^4.2.3",
    "@vitejs/plugin-vue-jsx": "^3.0.1",
    "@vitest/ui": "^0.34.1",
    "@vue/compiler-sfc": "^3.3.4",
    "@vue/eslint-config-prettier": "^7.1.0",
    "@vue/eslint-config-typescript": "^11.0.3",
    "@vue/test-utils": "^2.4.1",
    "@vue/tsconfig": "^0.4.0",
    "autoprefixer": "^10.4.14",
    "c8": "^7.12.0",
    "cypress": "^10.11.0",
    "eslint": "^8.43.0",
    "eslint-plugin-cypress": "^2.13.3",
    "eslint-plugin-vue": "^9.17.0",
    "husky": "^8.0.3",
    "jsdom": "^20.0.3",
    "lint-staged": "^13.2.2",
    "npm-run-all": "^4.1.5",
    "postcss": "^8.4.21",
    "postcss-viewport-height-correction": "^1.1.1",
    "prettier": "^2.8.8",
    "prettier-plugin-tailwindcss": "^0.1.13",
    "randomstring": "^1.2.3",
    "rollup-plugin-gzip": "^3.1.0",
    "sass": "^1.56.2",
    "start-server-and-test": "^1.14.0",
    "tailwindcss": "^3.2.7",
    "tailwindcss-safe-area": "^0.2.2",
    "tailwindcss-themer": "^2.0.3",
    "typescript": "~5.0.4",
    "unplugin-icons": "^0.14.15",
    "vite": "^4.2.3",
    "vite-plugin-externals": "^0.6.2",
    "vite-plugin-html": "^3.2.0",
    "vite-plugin-pwa": "^0.16.4",
    "vite-plugin-static-copy": "^0.17.0",
    "vitest": "^0.34.1",
    "vue-tsc": "^1.8.8"
  }
}
