diff --git a/package.json b/package.json index 171caf9f7..11cca1941 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "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": "pnpm typecheck && nx build", + "build": "cross-env NODE_OPTIONS='--max-old-space-size=8192' pnpm typecheck && nx build", "collect-i18n": "pnpm exec playwright test --config=playwright.i18n.config.ts", "dev:desktop": "nx dev @comfyorg/desktop-ui", "dev:electron": "nx serve --config vite.electron.config.mts", @@ -66,6 +66,7 @@ "@vitest/coverage-v8": "catalog:", "@vitest/ui": "catalog:", "@vue/test-utils": "catalog:", + "cross-env": "catalog:", "eslint": "catalog:", "eslint-config-prettier": "catalog:", "eslint-plugin-prettier": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6f0094338..b39070de4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -123,6 +123,9 @@ catalogs: axios: specifier: ^1.8.2 version: 1.11.0 + cross-env: + specifier: ^10.1.0 + version: 10.1.0 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -507,6 +510,9 @@ importers: '@vue/test-utils': specifier: 'catalog:' version: 2.4.6 + cross-env: + specifier: 'catalog:' + version: 10.1.0 eslint: specifier: 'catalog:' version: 9.35.0(jiti@2.4.2) @@ -1425,6 +1431,9 @@ packages: '@emnapi/wasi-threads@1.0.4': resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} + '@epic-web/invariant@1.0.0': + resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} + '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -3888,6 +3897,11 @@ packages: crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + cross-env@10.1.0: + resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==} + engines: {node: '>=20'} + hasBin: true + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -6906,6 +6920,9 @@ packages: vue-component-type-helpers@3.1.0: resolution: {integrity: sha512-cC1pYNRZkSS1iCvdlaMbbg2sjDwxX098FucEjtz9Yig73zYjWzQsnMe5M9H8dRNv55hAIDGUI29hF2BEUA4FMQ==} + vue-component-type-helpers@3.1.1: + resolution: {integrity: sha512-B0kHv7qX6E7+kdc5nsaqjdGZ1KwNKSUQDWGy7XkTYT7wFsOpkEyaJ1Vq79TjwrrtuLRgizrTV7PPuC4rRQo+vw==} + vue-demi@0.14.10: resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} engines: {node: '>=12'} @@ -8103,6 +8120,8 @@ snapshots: dependencies: tslib: 2.8.1 + '@epic-web/invariant@1.0.0': {} + '@esbuild/aix-ppc64@0.21.5': optional: true @@ -9484,7 +9503,7 @@ snapshots: storybook: 9.1.6(@testing-library/dom@10.4.1)(prettier@3.3.2)(vite@5.4.19(@types/node@20.14.10)(lightningcss@1.30.1)(terser@5.39.2)) type-fest: 2.19.0 vue: 3.5.13(typescript@5.9.2) - vue-component-type-helpers: 3.1.0 + vue-component-type-helpers: 3.1.1 '@swc/helpers@0.5.17': dependencies: @@ -10856,6 +10875,11 @@ snapshots: crelt@1.0.6: {} + cross-env@10.1.0: + dependencies: + '@epic-web/invariant': 1.0.0 + cross-spawn: 7.0.6 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -14359,6 +14383,8 @@ snapshots: vue-component-type-helpers@3.1.0: {} + vue-component-type-helpers@3.1.1: {} + vue-demi@0.14.10(vue@3.5.13(typescript@5.9.2)): dependencies: vue: 3.5.13(typescript@5.9.2) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index afa1d2844..b83486127 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,60 +3,19 @@ packages: - packages/** catalog: - # Core frameworks - typescript: ^5.9.2 - vue: ^3.5.13 - - # Build tools + '@alloc/quick-lru': ^5.2.0 + '@eslint/js': ^9.35.0 + '@iconify-json/lucide': ^1.1.178 + '@iconify/json': ^2.2.380 + '@iconify/tailwind': ^1.1.3 + '@intlify/eslint-plugin-vue-i18n': ^4.1.0 + '@lobehub/i18n-cli': ^1.25.1 '@nx/eslint': 21.4.1 '@nx/playwright': 21.4.1 '@nx/storybook': 21.4.1 '@nx/vite': 21.4.1 - nx: 21.4.1 - tsx: ^4.15.6 - vite: ^5.4.19 - '@vitejs/plugin-vue': ^5.1.4 - 'vite-plugin-dts': ^4.5.4 - vue-tsc: ^3.0.7 - - # Testing - 'happy-dom': ^15.11.0 - jsdom: ^26.1.0 '@pinia/testing': ^0.1.5 '@playwright/test': ^1.52.0 - '@vitest/coverage-v8': ^3.2.4 - '@vitest/ui': ^3.0.0 - vitest: ^3.2.4 - '@vue/test-utils': ^2.4.6 - - # Linting & Formatting - '@eslint/js': ^9.35.0 - eslint: ^9.34.0 - 'eslint-config-prettier': ^10.1.8 - 'eslint-plugin-prettier': ^5.5.4 - 'eslint-plugin-storybook': ^9.1.6 - 'eslint-plugin-unused-imports': ^4.2.0 - 'eslint-plugin-vue': ^10.4.0 - globals: ^15.9.0 - '@intlify/eslint-plugin-vue-i18n': ^4.1.0 - postcss-html: ^1.8.0 - prettier: ^3.3.2 - stylelint: ^16.24.0 - 'typescript-eslint': ^8.44.0 - 'vue-eslint-parser': ^10.2.0 - - # Vue ecosystem - '@sentry/vue': ^8.48.0 - '@vueuse/core': ^11.0.0 - '@vueuse/integrations': ^13.9.0 - 'vite-plugin-html': ^3.2.2 - 'vite-plugin-vue-devtools': ^7.7.6 - pinia: ^2.1.7 - 'vue-i18n': ^9.14.3 - 'vue-router': ^4.4.3 - vuefire: ^3.2.1 - - # PrimeVue UI framework '@primeuix/forms': 0.0.2 '@primeuix/styled': 0.3.2 '@primeuix/utils': ^0.3.2 @@ -64,54 +23,73 @@ catalog: '@primevue/forms': ^4.2.5 '@primevue/icons': 4.2.5 '@primevue/themes': ^4.2.5 - primeicons: ^7.0.0 - primevue: ^4.2.5 - - # Tailwind CSS and design - '@iconify/json': ^2.2.380 - '@iconify-json/lucide': ^1.1.178 - '@iconify/tailwind': ^1.1.3 - '@tailwindcss/vite': ^4.1.12 - tailwindcss: ^4.1.12 - 'tailwindcss-primeui': ^0.6.1 - 'tw-animate-css': ^1.3.8 - 'unplugin-icons': ^0.22.0 - 'unplugin-vue-components': ^0.28.0 - - # Storybook + '@sentry/vue': ^8.48.0 '@storybook/addon-docs': ^9.1.1 - storybook: ^9.1.6 '@storybook/vue3': ^9.1.1 '@storybook/vue3-vite': ^9.1.1 - - # Data and validation - algoliasearch: ^5.21.0 - axios: ^1.8.2 - firebase: ^11.6.0 - yjs: ^13.6.27 - zod: ^3.23.8 - 'zod-validation-error': ^3.3.0 - - # Dev tools - dotenv: ^16.4.5 - husky: ^9.0.11 - jiti: 2.4.2 - knip: ^5.62.0 - 'lint-staged': ^15.2.7 - - # Type definitions + '@tailwindcss/vite': ^4.1.12 + '@trivago/prettier-plugin-sort-imports': ^5.2.0 '@types/fs-extra': ^11.0.4 '@types/jsdom': ^21.1.7 '@types/node': ^20.14.8 '@types/semver': ^7.7.0 '@types/three': ^0.169.0 - 'vue-component-type-helpers': ^3.0.7 - 'zod-to-json-schema': ^3.24.1 - - # i18n - '@alloc/quick-lru': ^5.2.0 - '@lobehub/i18n-cli': ^1.25.1 - '@trivago/prettier-plugin-sort-imports': ^5.2.0 + '@vitejs/plugin-vue': ^5.1.4 + '@vitest/coverage-v8': ^3.2.4 + '@vitest/ui': ^3.0.0 + '@vue/test-utils': ^2.4.6 + '@vueuse/core': ^11.0.0 + '@vueuse/integrations': ^13.9.0 + algoliasearch: ^5.21.0 + axios: ^1.8.2 + cross-env: ^10.1.0 + dotenv: ^16.4.5 + eslint: ^9.34.0 + eslint-config-prettier: ^10.1.8 + eslint-plugin-prettier: ^5.5.4 + eslint-plugin-storybook: ^9.1.6 + eslint-plugin-unused-imports: ^4.2.0 + eslint-plugin-vue: ^10.4.0 + firebase: ^11.6.0 + globals: ^15.9.0 + happy-dom: ^15.11.0 + husky: ^9.0.11 + jiti: 2.4.2 + jsdom: ^26.1.0 + knip: ^5.62.0 + lint-staged: ^15.2.7 + nx: 21.4.1 + pinia: ^2.1.7 + postcss-html: ^1.8.0 + prettier: ^3.3.2 + primeicons: ^7.0.0 + primevue: ^4.2.5 + storybook: ^9.1.6 + stylelint: ^16.24.0 + tailwindcss: ^4.1.12 + tailwindcss-primeui: ^0.6.1 + tsx: ^4.15.6 + tw-animate-css: ^1.3.8 + typescript: ^5.9.2 + typescript-eslint: ^8.44.0 + unplugin-icons: ^0.22.0 + unplugin-vue-components: ^0.28.0 + vite: ^5.4.19 + vite-plugin-dts: ^4.5.4 + vite-plugin-html: ^3.2.2 + vite-plugin-vue-devtools: ^7.7.6 + vitest: ^3.2.4 + vue: ^3.5.13 + vue-component-type-helpers: ^3.0.7 + vue-eslint-parser: ^10.2.0 + vue-i18n: ^9.14.3 + vue-router: ^4.4.3 + vue-tsc: ^3.0.7 + vuefire: ^3.2.1 + yjs: ^13.6.27 + zod: ^3.23.8 + zod-to-json-schema: ^3.24.1 + zod-validation-error: ^3.3.0 ignoredBuiltDependencies: - '@firebase/util'