{
  "name": "@comfyorg/comfyui-frontend",
  "version": "1.40.8",
  "private": true,
  "description": "Official front-end implementation of ComfyUI",
  "homepage": "https://comfy.org",
  "license": "GPL-3.0-only",
  "repository": "https://github.com/Comfy-Org/ComfyUI_frontend",
  "type": "module",
  "scripts": {
    "build:desktop": "nx build @comfyorg/desktop-ui",
    "build-storybook": "storybook build",
    "build:types": "nx build --config vite.types.config.mts && node scripts/prepare-types.js",
    "build:analyze": "cross-env ANALYZE_BUNDLE=true pnpm build",
    "build": "cross-env NODE_OPTIONS='--max-old-space-size=8192' pnpm typecheck && nx build",
    "size:collect": "node scripts/size-collect.js",
    "size:report": "node scripts/size-report.js",
    "collect-i18n": "pnpm exec playwright test --config=playwright.i18n.config.ts",
    "dev:cloud": "cross-env DEV_SERVER_COMFYUI_URL='https://testcloud.comfy.org/' nx serve",
    "dev:desktop": "nx dev @comfyorg/desktop-ui",
    "dev:electron": "cross-env DISTRIBUTION=desktop nx serve --config vite.electron.config.mts",
    "dev:no-vue": "cross-env DISABLE_VUE_PLUGINS=true nx serve",
    "dev": "nx serve",
    "devtools:pycheck": "python3 -m compileall -q tools/devtools",
    "format:check": "oxfmt --check",
    "format": "oxfmt --write",
    "json-schema": "tsx scripts/generate-json-schema.ts",
    "knip:no-cache": "knip",
    "knip": "knip --cache",
    "lint:fix:no-cache": "oxlint src --type-aware --fix && eslint src --fix",
    "lint:fix": "oxlint src --type-aware --fix && eslint src --cache --fix",
    "lint:no-cache": "oxlint src --type-aware && eslint src",
    "lint:unstaged:fix": "git diff --name-only HEAD | grep -E '\\.(js|ts|vue|mts)$' | xargs -r eslint --cache --fix",
    "lint:unstaged": "git diff --name-only HEAD | grep -E '\\.(js|ts|vue|mts)$' | xargs -r eslint --cache",
    "lint": "oxlint src --type-aware && eslint src --cache",
    "lint:desktop": "nx run @comfyorg/desktop-ui:lint",
    "locale": "lobe-i18n locale",
    "oxlint": "oxlint src --type-aware",
    "preinstall": "pnpm dlx only-allow pnpm",
    "prepare": "husky || true && git config blame.ignoreRevsFile .git-blame-ignore-revs || true",
    "preview": "nx preview",
    "storybook": "nx storybook",
    "storybook:desktop": "nx run @comfyorg/desktop-ui:storybook",
    "stylelint:fix": "stylelint --cache --fix '{apps,packages,src}/**/*.{css,vue}'",
    "stylelint": "stylelint --cache '{apps,packages,src}/**/*.{css,vue}'",
    "test:browser": "pnpm exec nx e2e",
    "test:browser:local": "cross-env PLAYWRIGHT_LOCAL=1 pnpm test:browser",
    "test:unit": "nx run test",
    "typecheck": "vue-tsc --noEmit",
    "typecheck:browser": "vue-tsc --project browser_tests/tsconfig.json",
    "typecheck:desktop": "nx run @comfyorg/desktop-ui:typecheck",
    "zipdist": "node scripts/zipdist.js",
    "clean": "nx reset"
  },
  "dependencies": {
    "@alloc/quick-lru": "catalog:",
    "@atlaskit/pragmatic-drag-and-drop": "^1.3.1",
    "@comfyorg/comfyui-electron-types": "catalog:",
    "@comfyorg/design-system": "workspace:*",
    "@comfyorg/registry-types": "workspace:*",
    "@comfyorg/shared-frontend-utils": "workspace:*",
    "@comfyorg/tailwind-utils": "workspace:*",
    "@iconify/json": "catalog:",
    "@primeuix/forms": "catalog:",
    "@primeuix/styled": "catalog:",
    "@primeuix/utils": "catalog:",
    "@primevue/core": "catalog:",
    "@primevue/forms": "catalog:",
    "@primevue/icons": "catalog:",
    "@primevue/themes": "catalog:",
    "@sentry/vue": "catalog:",
    "@sparkjsdev/spark": "catalog:",
    "@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": "catalog:",
    "@vueuse/integrations": "catalog:",
    "@xterm/addon-fit": "^0.10.0",
    "@xterm/addon-serialize": "^0.13.0",
    "@xterm/xterm": "^5.5.0",
    "algoliasearch": "catalog:",
    "axios": "catalog:",
    "chart.js": "^4.5.0",
    "cva": "catalog:",
    "dompurify": "^3.2.5",
    "dotenv": "catalog:",
    "es-toolkit": "^1.39.9",
    "extendable-media-recorder": "^9.2.27",
    "extendable-media-recorder-wav-encoder": "^7.0.129",
    "firebase": "catalog:",
    "fuse.js": "^7.0.0",
    "glob": "^11.0.3",
    "jsonata": "catalog:",
    "jsondiffpatch": "^0.6.0",
    "loglevel": "^1.9.2",
    "marked": "^15.0.11",
    "pinia": "catalog:",
    "primeicons": "catalog:",
    "primevue": "catalog:",
    "reka-ui": "catalog:",
    "semver": "^7.7.2",
    "three": "^0.170.0",
    "tiptap-markdown": "^0.8.10",
    "typegpu": "catalog:",
    "vue": "catalog:",
    "vue-i18n": "catalog:",
    "vue-router": "catalog:",
    "vuefire": "catalog:",
    "wwobjloader2": "catalog:",
    "yjs": "catalog:",
    "zod": "catalog:",
    "zod-validation-error": "catalog:"
  },
  "devDependencies": {
    "@eslint/js": "catalog:",
    "@intlify/eslint-plugin-vue-i18n": "catalog:",
    "@lobehub/i18n-cli": "catalog:",
    "@nx/eslint": "catalog:",
    "@nx/playwright": "catalog:",
    "@nx/storybook": "catalog:",
    "@nx/vite": "catalog:",
    "@pinia/testing": "catalog:",
    "@playwright/test": "catalog:",
    "@sentry/vite-plugin": "catalog:",
    "@storybook/addon-docs": "catalog:",
    "@storybook/addon-mcp": "catalog:",
    "@storybook/vue3": "catalog:",
    "@storybook/vue3-vite": "catalog:",
    "@tailwindcss/vite": "catalog:",
    "@types/fs-extra": "catalog:",
    "@types/jsdom": "catalog:",
    "@types/node": "catalog:",
    "@types/semver": "catalog:",
    "@types/three": "catalog:",
    "@vitejs/plugin-vue": "catalog:",
    "@vitest/coverage-v8": "catalog:",
    "@vitest/ui": "catalog:",
    "@vue/test-utils": "catalog:",
    "@webgpu/types": "catalog:",
    "cross-env": "catalog:",
    "eslint": "catalog:",
    "eslint-config-prettier": "catalog:",
    "eslint-import-resolver-typescript": "catalog:",
    "eslint-plugin-import-x": "catalog:",
    "eslint-plugin-oxlint": "catalog:",
    "eslint-plugin-storybook": "catalog:",
    "eslint-plugin-unused-imports": "catalog:",
    "eslint-plugin-vue": "catalog:",
    "fs-extra": "^11.2.0",
    "globals": "catalog:",
    "happy-dom": "catalog:",
    "husky": "catalog:",
    "jiti": "catalog:",
    "jsdom": "catalog:",
    "knip": "catalog:",
    "lint-staged": "catalog:",
    "markdown-table": "catalog:",
    "mixpanel-browser": "catalog:",
    "nx": "catalog:",
    "oxfmt": "catalog:",
    "oxlint": "catalog:",
    "oxlint-tsgolint": "catalog:",
    "picocolors": "catalog:",
    "postcss-html": "catalog:",
    "pretty-bytes": "catalog:",
    "rollup-plugin-visualizer": "catalog:",
    "storybook": "catalog:",
    "stylelint": "catalog:",
    "tailwindcss": "catalog:",
    "tailwindcss-primeui": "catalog:",
    "tsx": "catalog:",
    "tw-animate-css": "catalog:",
    "typescript": "catalog:",
    "typescript-eslint": "catalog:",
    "unplugin-icons": "catalog:",
    "unplugin-typegpu": "catalog:",
    "unplugin-vue-components": "catalog:",
    "uuid": "^11.1.0",
    "vite": "catalog:",
    "vite-plugin-dts": "catalog:",
    "vite-plugin-html": "catalog:",
    "vite-plugin-vue-devtools": "catalog:",
    "vitest": "catalog:",
    "vue-component-type-helpers": "catalog:",
    "vue-eslint-parser": "catalog:",
    "vue-tsc": "catalog:",
    "zip-dir": "^2.0.0",
    "zod-to-json-schema": "catalog:"
  },
  "pnpm": {
    "overrides": {
      "vite": "catalog:"
    }
  }
}
