{
  "name": "@comfyorg/comfyui-frontend",
  "private": true,
  "version": "1.23.2",
  "type": "module",
  "repository": "https://github.com/Comfy-Org/ComfyUI_frontend",
  "homepage": "https://comfy.org",
  "description": "Official front-end implementation of ComfyUI",
  "license": "GPL-3.0-only",
  "scripts": {
    "dev": "vite",
    "dev:electron": "vite --config vite.electron.config.mts",
    "build": "npm run typecheck && vite build",
    "build:types": "vite build --config vite.types.config.mts && node scripts/prepare-types.js",
    "zipdist": "node scripts/zipdist.js",
    "typecheck": "vue-tsc --noEmit",
    "format": "prettier --write './**/*.{js,ts,tsx,vue,mts}'",
    "format:check": "prettier --check './**/*.{js,ts,tsx,vue,mts}'",
    "test:browser": "npx playwright test",
    "test:unit": "vitest run tests-ui/tests",
    "test:component": "vitest run src/components/",
    "prepare": "husky || true",
    "preview": "vite preview",
    "lint": "eslint src",
    "lint:fix": "eslint src --fix",
    "locale": "lobe-i18n locale",
    "collect-i18n": "playwright test --config=playwright.i18n.config.ts",
    "json-schema": "tsx scripts/generate-json-schema.ts"
  },
  "devDependencies": {
    "@eslint/js": "^9.8.0",
    "@executeautomation/playwright-mcp-server": "^1.0.5",
    "@iconify/json": "^2.2.245",
    "@lobehub/i18n-cli": "^1.20.0",
    "@pinia/testing": "^0.1.5",
    "@playwright/test": "^1.52.0",
    "@trivago/prettier-plugin-sort-imports": "^5.2.0",
    "@types/dompurify": "^3.0.5",
    "@types/fs-extra": "^11.0.4",
    "@types/lodash": "^4.17.6",
    "@types/node": "^20.14.8",
    "@types/three": "^0.169.0",
    "@vitejs/plugin-vue": "^5.1.4",
    "@vue/test-utils": "^2.4.6",
    "autoprefixer": "^10.4.19",
    "chalk": "^5.3.0",
    "eslint": "^9.12.0",
    "eslint-config-prettier": "^10.1.2",
    "eslint-plugin-prettier": "^5.2.6",
    "eslint-plugin-unused-imports": "^4.1.4",
    "eslint-plugin-vue": "^9.27.0",
    "fs-extra": "^11.2.0",
    "globals": "^15.9.0",
    "happy-dom": "^15.11.0",
    "husky": "^9.0.11",
    "identity-obj-proxy": "^3.0.0",
    "lint-staged": "^15.2.7",
    "postcss": "^8.4.39",
    "prettier": "^3.3.2",
    "tailwindcss": "^3.4.4",
    "tsx": "^4.15.6",
    "typescript": "^5.4.5",
    "typescript-eslint": "^8.0.0",
    "unplugin-icons": "^0.19.3",
    "unplugin-vue-components": "^0.27.4",
    "vite": "^5.4.19",
    "vite-plugin-dts": "^4.3.0",
    "vite-plugin-html": "^3.2.2",
    "vite-plugin-vue-devtools": "^7.7.6",
    "vitest": "^2.0.0",
    "vue-tsc": "^2.1.10",
    "zip-dir": "^2.0.0",
    "zod-to-json-schema": "^3.24.1"
  },
  "dependencies": {
    "@alloc/quick-lru": "^5.2.0",
    "@atlaskit/pragmatic-drag-and-drop": "^1.3.1",
    "@comfyorg/comfyui-electron-types": "^0.4.43",
    "@comfyorg/litegraph": "^0.15.15",
    "@primevue/forms": "^4.2.5",
    "@primevue/themes": "^4.2.5",
    "@sentry/vue": "^8.48.0",
    "@tiptap/core": "^2.10.4",
    "@tiptap/extension-link": "^2.10.4",
    "@tiptap/extension-table": "^2.10.4",
    "@tiptap/extension-table-cell": "^2.10.4",
    "@tiptap/extension-table-header": "^2.10.4",
    "@tiptap/extension-table-row": "^2.10.4",
    "@tiptap/starter-kit": "^2.10.4",
    "@vueuse/core": "^11.0.0",
    "@xterm/addon-fit": "^0.10.0",
    "@xterm/addon-serialize": "^0.13.0",
    "@xterm/xterm": "^5.5.0",
    "algoliasearch": "^5.21.0",
    "axios": "^1.8.2",
    "dompurify": "^3.2.5",
    "dotenv": "^16.4.5",
    "firebase": "^11.6.0",
    "fuse.js": "^7.0.0",
    "jsondiffpatch": "^0.6.0",
    "lodash": "^4.17.21",
    "loglevel": "^1.9.2",
    "marked": "^15.0.11",
    "pinia": "^2.1.7",
    "primeicons": "^7.0.0",
    "primevue": "^4.2.5",
    "three": "^0.170.0",
    "tiptap-markdown": "^0.8.10",
    "vue": "^3.5.13",
    "vue-i18n": "^9.14.3",
    "vue-router": "^4.4.3",
    "vuefire": "^3.2.1",
    "zod": "^3.23.8",
    "zod-validation-error": "^3.3.0"
  }
}
