diff --git a/apps/duckguessr/app/app.vue b/apps/duckguessr/app/app.vue index 8d9da7318..ae4e55b86 100644 --- a/apps/duckguessr/app/app.vue +++ b/apps/duckguessr/app/app.vue @@ -1,8 +1,10 @@ diff --git a/apps/duckguessr/env.d.ts b/apps/duckguessr/env.d.ts index b7c7d1b2e..123276ea4 100644 --- a/apps/duckguessr/env.d.ts +++ b/apps/duckguessr/env.d.ts @@ -1,6 +1,7 @@ /// interface ImportMetaEnv { + readonly MODE: string; readonly VITE_CLOUDINARY_URL_ROOT: string; readonly VITE_DM_URL: string; readonly VITE_DM_SOCKET_URL: string; diff --git a/apps/duckguessr/nuxt.config.ts b/apps/duckguessr/nuxt.config.ts index 46a3cbe11..9153e31a2 100644 --- a/apps/duckguessr/nuxt.config.ts +++ b/apps/duckguessr/nuxt.config.ts @@ -63,6 +63,7 @@ export default defineNuxtConfig({ ], "@nuxt/eslint", "unplugin-icons/nuxt", + "@pinia/colada-nuxt", ], // Auto-imports @@ -114,6 +115,31 @@ export default defineNuxtConfig({ resolve: { dedupe: ["vue", "vue-i18n", "@vueuse/core", "bootstrap-vue-next"], }, + server: { + watch: { + // Reduce file watching to prevent EMFILE errors + ignored: [ + "**/node_modules/**", + "**/.git/**", + "**/dist/**", + "**/.nuxt/**", + "**/.output/**", + "**/storybook-static/**", + "**/.turbo/**", + "**/api/prisma/client_*/**", + "**/.pnpm-store/**", + "**/coverage/**", + "**/.storybook/**", + "**/.pnpm/**", + "**/builds/**", + ], + // Use polling as fallback if native watching fails + usePolling: false, + // Reduce the number of files watched + interval: 100, + binaryInterval: 300, + }, + }, }, // App configuration @@ -129,7 +155,20 @@ export default defineNuxtConfig({ sourcemap: { client: "hidden", + server: false, }, - ignore: ["**/node_modules", "**/dist", ".git/**", "api/prisma/client_*"], + ignore: [ + "**/node_modules", + "**/dist", + ".git/**", + "api/prisma/client_*", + "**/.pnpm-store/**", + "**/coverage/**", + "**/.storybook/**", + "**/.nuxt/**", + "**/.output/**", + "**/storybook-static/**", + "**/.turbo/**", + ], }); diff --git a/apps/duckguessr/package.json b/apps/duckguessr/package.json index 70cb69d34..cce25feef 100644 --- a/apps/duckguessr/package.json +++ b/apps/duckguessr/package.json @@ -24,6 +24,8 @@ "dependencies": { "@nuxtjs/i18n": "^10.2.1", "@nuxtjs/storybook": "^9.0.1", + "@pinia/colada": "^0.21.2", + "@pinia/colada-nuxt": "^0.3.1", "@pinia/nuxt": "^0.11.3", "@sentry/nuxt": "^10.30.0", "@unhead/vue": "^2.0.19", @@ -51,6 +53,7 @@ "@nuxt/devtools": "^3.1.1", "@nuxt/eslint": "^1.12.1", "@nuxt/typescript-build": "^3.0.2", + "@pinia/colada-devtools": "^0.4.2", "@storybook-vue/nuxt": "^9.0.1", "@storybook/vue3": "^9.1.16", "@types/eslint": "^9.6.1", diff --git a/apps/duckguessr/pnpm-lock.yaml b/apps/duckguessr/pnpm-lock.yaml index e6b3a980d..6b4cbd4dd 100644 --- a/apps/duckguessr/pnpm-lock.yaml +++ b/apps/duckguessr/pnpm-lock.yaml @@ -14,6 +14,12 @@ importers: '@nuxtjs/storybook': specifier: ^9.0.1 version: 9.0.1(@types/node@22.19.3)(eslint@9.39.2(jiti@2.6.1))(magicast@0.5.1)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@22.19.3)(@vue/compiler-sfc@3.5.25)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.53.3)(sass@1.96.0)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.7(@types/node@22.19.3)(jiti@2.6.1)(sass@1.96.0)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@3.1.5(typescript@5.9.3))(yaml@2.8.2))(optionator@0.9.4)(rollup@4.53.3)(sass@1.96.0)(storybook@10.1.8(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.1)(typescript@5.9.3)(vite@7.2.7(@types/node@22.19.3)(jiti@2.6.1)(sass@1.96.0)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@3.1.5(typescript@5.9.3))(vue@3.5.25(typescript@5.9.3))(yaml@2.8.2) + '@pinia/colada': + specifier: ^0.21.2 + version: 0.21.2(pinia@3.0.4(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3)) + '@pinia/colada-nuxt': + specifier: ^0.3.1 + version: 0.3.1(@pinia/colada@0.21.2(pinia@3.0.4(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3)))(magicast@0.5.1) '@pinia/nuxt': specifier: ^0.11.3 version: 0.11.3(magicast@0.5.1)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3))) @@ -90,6 +96,9 @@ importers: '@nuxt/typescript-build': specifier: ^3.0.2 version: 3.0.2(@nuxt/types@2.18.1)(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(webpack@5.102.1(esbuild@0.27.1)) + '@pinia/colada-devtools': + specifier: ^0.4.2 + version: 0.4.2 '@storybook-vue/nuxt': specifier: ^9.0.1 version: 9.0.1(@types/node@22.19.3)(eslint@9.39.2(jiti@2.6.1))(magicast@0.5.1)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@22.19.3)(@vue/compiler-sfc@3.5.25)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.8.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.53.3)(sass@1.96.0)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.7(@types/node@22.19.3)(jiti@2.6.1)(sass@1.96.0)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@3.1.5(typescript@5.9.3))(yaml@2.8.2))(optionator@0.9.4)(rollup@4.53.3)(sass@1.96.0)(storybook@10.1.8(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.1)(typescript@5.9.3)(vite@7.2.7(@types/node@22.19.3)(jiti@2.6.1)(sass@1.96.0)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@3.1.5(typescript@5.9.3))(vue@3.5.25(typescript@5.9.3))(yaml@2.8.2) @@ -1751,6 +1760,20 @@ packages: resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} + '@pinia/colada-devtools@0.4.2': + resolution: {integrity: sha512-BikO2+rfSNeUyKoHncWDQINEEiux3yN4/JbAoCjt6Tv32f7sG8aBFiHkXJ/xWa3kIxAP9Xgj/+CmTueTYzj7fA==} + + '@pinia/colada-nuxt@0.3.1': + resolution: {integrity: sha512-JqByosIs2nNEV74fYqj89f5NJKPBPmEKVxuVXnh1PWt1dbC3B7hKx8SqkXJctk17aU9qxGxoq5Yx0paHPAMCNw==} + peerDependencies: + '@pinia/colada': '>=0.21.2' + + '@pinia/colada@0.21.2': + resolution: {integrity: sha512-k2epk1jed5cTmNA7l00UtsFRyqw9HfyU6WO4cV0BMUT3sSE4CMLCilprbLAL5h2bxD76WSiglciI/6o+Uh7Vzw==} + peerDependencies: + pinia: ^2.2.6 || ^3.0.0 + vue: ^3.5.17 + '@pinia/nuxt@0.11.3': resolution: {integrity: sha512-7WVNHpWx4qAEzOlnyrRC88kYrwnlR/PrThWT0XI1dSNyUAXu/KBv9oR37uCgYkZroqP5jn8DfzbkNF3BtKvE9w==} peerDependencies: @@ -6143,8 +6166,8 @@ packages: vue-component-type-helpers@2.2.12: resolution: {integrity: sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==} - vue-component-type-helpers@3.1.8: - resolution: {integrity: sha512-oaowlmEM6BaYY+8o+9D9cuzxpWQWHqHTMKakMxXu0E+UCIOMTljyIPO15jcnaCwJtZu/zWDotK7mOIHvWD9mcw==} + vue-component-type-helpers@3.2.4: + resolution: {integrity: sha512-05lR16HeZDcDpB23ku5b5f1fBOoHqFnMiKRr2CiEvbG5Ux4Yi0McmQBOET0dR0nxDXosxyVqv67q6CzS3AK8rw==} vue-devtools-stub@0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} @@ -8129,6 +8152,20 @@ snapshots: '@parcel/watcher-win32-ia32': 2.5.1 '@parcel/watcher-win32-x64': 2.5.1 + '@pinia/colada-devtools@0.4.2': {} + + '@pinia/colada-nuxt@0.3.1(@pinia/colada@0.21.2(pinia@3.0.4(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3)))(magicast@0.5.1)': + dependencies: + '@nuxt/kit': 4.2.2(magicast@0.5.1) + '@pinia/colada': 0.21.2(pinia@3.0.4(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3)) + transitivePeerDependencies: + - magicast + + '@pinia/colada@0.21.2(pinia@3.0.4(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3))': + dependencies: + pinia: 3.0.4(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3)) + vue: 3.5.25(typescript@5.9.3) + '@pinia/nuxt@0.11.3(magicast@0.5.1)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.25(typescript@5.9.3)))': dependencies: '@nuxt/kit': 4.2.2(magicast@0.5.1) @@ -8604,7 +8641,7 @@ snapshots: storybook: 10.1.8(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) type-fest: 2.19.0 vue: 3.5.25(typescript@5.9.3) - vue-component-type-helpers: 3.1.8 + vue-component-type-helpers: 3.2.4 '@storybook/vue3@9.1.2(storybook@10.1.8(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vue@3.5.25(typescript@5.9.3))': dependencies: @@ -8612,7 +8649,7 @@ snapshots: storybook: 10.1.8(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) type-fest: 2.19.0 vue: 3.5.25(typescript@5.9.3) - vue-component-type-helpers: 3.1.8 + vue-component-type-helpers: 3.2.4 '@stylistic/eslint-plugin@5.6.1(eslint@9.39.2(jiti@2.6.1))': dependencies: @@ -13005,7 +13042,7 @@ snapshots: vue-component-type-helpers@2.2.12: {} - vue-component-type-helpers@3.1.8: {} + vue-component-type-helpers@3.2.4: {} vue-devtools-stub@0.1.0: {}