{ "name": "@comfyorg/comfyui-frontend", "private": true, "version": "1.37.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": { "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": "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:no-cache": "prettier --check './**/*.{js,ts,tsx,vue,mts}'", "format:check": "prettier --check './**/*.{js,ts,tsx,vue,mts}' --cache", "format:no-cache": "prettier --write './**/*.{js,ts,tsx,vue,mts}' --list-different", "format": "prettier --write './**/*.{js,ts,tsx,vue,mts}' --cache --list-different", "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:desktop": "nx run @comfyorg/desktop-ui:typecheck", "zipdist": "node scripts/zipdist.js", "clean": "nx reset" }, "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:", "@prettier/plugin-oxc": "catalog:", "@sentry/vite-plugin": "catalog:", "@storybook/addon-docs": "catalog:", "@storybook/vue3": "catalog:", "@storybook/vue3-vite": "catalog:", "@tailwindcss/vite": "catalog:", "@trivago/prettier-plugin-sort-imports": "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:", "oxlint": "catalog:", "oxlint-tsgolint": "catalog:", "picocolors": "catalog:", "postcss-html": "catalog:", "prettier": "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:" }, "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", "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:" } }