diff --git a/README.md b/README.md index e73efb9..b66c76f 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Nuxt 3 frontend template for third-party API integrations. - [ ] 🍍 [State & Store Management (Pinia)](https://pinia.vuejs.org/) - [ ] 🍍 [Subscribing to the state](https://pinia.vuejs.org/core-concepts/state.html#Subscribing-to-the-state) - [x] 🍀 [Vue Composition Collection (Vueuse)](https://vueuse.org/) +- [ ] 🆎 [Internationalization (i18n)](https://v8.i18n.nuxtjs.org/) ## Setup diff --git a/lang/en-US.json b/lang/en-US.json new file mode 100644 index 0000000..03f8d50 --- /dev/null +++ b/lang/en-US.json @@ -0,0 +1,3 @@ +{ + "hello": "Hello" +} diff --git a/lang/th-TH.json b/lang/th-TH.json new file mode 100644 index 0000000..245defa --- /dev/null +++ b/lang/th-TH.json @@ -0,0 +1,3 @@ +{ + "hello": "สวัสดี" +} diff --git a/nuxt.config.ts b/nuxt.config.ts index b6dd54a..2733bbc 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -2,7 +2,28 @@ export default defineNuxtConfig({ devtools: { enabled: true }, - modules: ["@nuxtjs/tailwindcss", "@nuxtjs/eslint-module", "@vueuse/nuxt"], + modules: [ + "@nuxtjs/tailwindcss", + "@nuxtjs/eslint-module", + "@vueuse/nuxt", + "@nuxtjs/i18n", + ], + + i18n: { + locales: [ + { + code: "en", + file: "en-US.json", + }, + { + code: "th", + file: "th-TH.json", + }, + ], + lazy: true, + langDir: "lang", + defaultLocale: "en", + }, postcss: { plugins: { diff --git a/package.json b/package.json index 35a2412..349b90d 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "devDependencies": { "@nuxtjs/eslint-config-typescript": "^12.1.0", "@nuxtjs/eslint-module": "^4.1.0", + "@nuxtjs/i18n": "^8.2.0", "@nuxtjs/tailwindcss": "^6.11.4", "@vueuse/core": "^10.9.0", "@vueuse/nuxt": "^10.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da35541..d1891fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: dependencies: nuxt: specifier: ^3.11.1 - version: 3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7) + version: 3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.13.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7) vue: specifier: ^3.4.21 version: 3.4.21(typescript@5.3.3) @@ -21,16 +21,19 @@ devDependencies: version: 12.1.0(eslint@8.57.0)(typescript@5.3.3) '@nuxtjs/eslint-module': specifier: ^4.1.0 - version: 4.1.0(eslint@8.57.0)(vite@5.2.7)(webpack@5.91.0) + version: 4.1.0(eslint@8.57.0)(rollup@4.13.2)(vite@5.2.7)(webpack@5.91.0) + '@nuxtjs/i18n': + specifier: ^8.2.0 + version: 8.2.0(rollup@4.13.2)(vue@3.4.21) '@nuxtjs/tailwindcss': specifier: ^6.11.4 - version: 6.11.4 + version: 6.11.4(rollup@4.13.2) '@vueuse/core': specifier: ^10.9.0 version: 10.9.0(vue@3.4.21) '@vueuse/nuxt': specifier: ^10.9.0 - version: 10.9.0(nuxt@3.11.1)(vue@3.4.21) + version: 10.9.0(nuxt@3.11.1)(rollup@4.13.2)(vue@3.4.21) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -741,6 +744,106 @@ packages: transitivePeerDependencies: - supports-color + /@intlify/bundle-utils@7.5.1(vue-i18n@9.10.2): + resolution: {integrity: sha512-UovJl10oBIlmYEcWw+VIHdKY5Uv5sdPG0b/b6bOYxGLln3UwB75+2dlc0F3Fsa0RhoznQ5Rp589/BZpABpE4Xw==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + dependencies: + '@intlify/message-compiler': 9.10.2 + '@intlify/shared': 9.10.2 + acorn: 8.11.3 + escodegen: 2.1.0 + estree-walker: 2.0.2 + jsonc-eslint-parser: 2.4.0 + magic-string: 0.30.8 + mlly: 1.6.1 + source-map-js: 1.2.0 + vue-i18n: 9.10.2(vue@3.4.21) + yaml-eslint-parser: 1.2.2 + dev: true + + /@intlify/core-base@9.10.2: + resolution: {integrity: sha512-HGStVnKobsJL0DoYIyRCGXBH63DMQqEZxDUGrkNI05FuTcruYUtOAxyL3zoAZu/uDGO6mcUvm3VXBaHG2GdZCg==} + engines: {node: '>= 16'} + dependencies: + '@intlify/message-compiler': 9.10.2 + '@intlify/shared': 9.10.2 + dev: true + + /@intlify/core@9.10.2: + resolution: {integrity: sha512-t/RVemtM3bTE/wa7zqR+zkumy4dda5skVhxAh+3oYbOyJRw1y3B0FWiuB2Awa1HgoYC0DuPYrsAsQoeLy2eQPQ==} + engines: {node: '>= 16'} + dependencies: + '@intlify/core-base': 9.10.2 + '@intlify/shared': 9.10.2 + dev: true + + /@intlify/h3@0.5.0: + resolution: {integrity: sha512-cgfrtD3qu3BPJ47gfZ35J2LJpI64Riic0K8NGgid5ilyPXRQTNY7mXlT/B+HZYQg1hmBxKa5G5HJXyAZ4R2H5A==} + engines: {node: '>= 18'} + dependencies: + '@intlify/core': 9.10.2 + '@intlify/utils': 0.12.0 + dev: true + + /@intlify/message-compiler@9.10.2: + resolution: {integrity: sha512-ntY/kfBwQRtX5Zh6wL8cSATujPzWW2ZQd1QwKyWwAy5fMqJyyixHMeovN4fmEyCqSu+hFfYOE63nU94evsy4YA==} + engines: {node: '>= 16'} + dependencies: + '@intlify/shared': 9.10.2 + source-map-js: 1.2.0 + dev: true + + /@intlify/shared@9.10.2: + resolution: {integrity: sha512-ttHCAJkRy7R5W2S9RVnN9KYQYPIpV2+GiS79T4EE37nrPyH6/1SrOh3bmdCRC1T3ocL8qCDx7x2lBJ0xaITU7Q==} + engines: {node: '>= 16'} + dev: true + + /@intlify/unplugin-vue-i18n@2.0.0(rollup@4.13.2)(vue-i18n@9.10.2): + resolution: {integrity: sha512-1oKvm92L9l2od2H9wKx2ZvR4tzn7gUtd7bPLI7AWUmm7U9H1iEypndt5d985ypxGsEs0gToDaKTrytbBIJwwSg==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + vue-i18n-bridge: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + vue-i18n-bridge: + optional: true + dependencies: + '@intlify/bundle-utils': 7.5.1(vue-i18n@9.10.2) + '@intlify/shared': 9.10.2 + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) + '@vue/compiler-sfc': 3.4.21 + debug: 4.3.4 + fast-glob: 3.3.2 + js-yaml: 4.1.0 + json5: 2.2.3 + pathe: 1.1.2 + picocolors: 1.0.0 + source-map-js: 1.2.0 + unplugin: 1.10.1 + vue-i18n: 9.10.2(vue@3.4.21) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@intlify/utils@0.12.0: + resolution: {integrity: sha512-yCBNcuZQ49iInqmWC2xfW0rgEQyNtCM8C8KcWKTXxyscgUE1+48gjLgZZqP75MjhlApxwph7ZMWLqyABkSgxQA==} + engines: {node: '>= 18'} + dev: true + /@ioredis/commands@1.2.0: resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} @@ -845,6 +948,16 @@ packages: - encoding - supports-color + /@miyaneee/rollup-plugin-json5@1.2.0(rollup@4.13.2): + resolution: {integrity: sha512-JjTIaXZp9WzhUHpElrqPnl1AzBi/rvRs065F71+aTmlqvTMVkdbjZ8vfFl4nRlgJy+TPBw69ZK4pwFdmOAt4aA==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) + json5: 2.2.3 + rollup: 4.13.2 + dev: true + /@netlify/functions@2.6.0: resolution: {integrity: sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==} engines: {node: '>=14.0.0'} @@ -961,16 +1074,16 @@ packages: /@nuxt/devalue@2.0.2: resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - /@nuxt/devtools-kit@1.1.5(nuxt@3.11.1)(vite@5.2.7): + /@nuxt/devtools-kit@1.1.5(nuxt@3.11.1)(rollup@4.13.2)(vite@5.2.7): resolution: {integrity: sha512-Nb/NKFCRtxyqcPD6snB52rXtbRQMjGtn3ncpa8cLWsnoqnkd9emQ4uwV8IwCNxTnqUBtbGU79/TlJ79SKH9TAw==} peerDependencies: nuxt: ^3.9.0 vite: '*' dependencies: - '@nuxt/kit': 3.11.1 - '@nuxt/schema': 3.11.1 + '@nuxt/kit': 3.11.1(rollup@4.13.2) + '@nuxt/schema': 3.11.1(rollup@4.13.2) execa: 7.2.0 - nuxt: 3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7) + nuxt: 3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.13.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7) vite: 5.2.7 transitivePeerDependencies: - rollup @@ -991,7 +1104,7 @@ packages: rc9: 2.1.1 semver: 7.6.0 - /@nuxt/devtools@1.1.5(@unocss/reset@0.58.8)(floating-vue@5.2.2)(nuxt@3.11.1)(unocss@0.58.8)(vite@5.2.7)(vue@3.4.21): + /@nuxt/devtools@1.1.5(@unocss/reset@0.58.8)(floating-vue@5.2.2)(nuxt@3.11.1)(rollup@4.13.2)(unocss@0.58.8)(vite@5.2.7)(vue@3.4.21): resolution: {integrity: sha512-aDEqz4L1GDj4DDnX7PL9ety3Wx0kLyKTb2JOSoJR8uX09fC3gonCvj/gYHLSSIKqhPasUjoOO5RPCtT+r9dtsA==} hasBin: true peerDependencies: @@ -999,9 +1112,9 @@ packages: vite: '*' dependencies: '@antfu/utils': 0.7.7 - '@nuxt/devtools-kit': 1.1.5(nuxt@3.11.1)(vite@5.2.7) + '@nuxt/devtools-kit': 1.1.5(nuxt@3.11.1)(rollup@4.13.2)(vite@5.2.7) '@nuxt/devtools-wizard': 1.1.5 - '@nuxt/kit': 3.11.1 + '@nuxt/kit': 3.11.1(rollup@4.13.2) '@vue/devtools-applet': 7.0.25(@unocss/reset@0.58.8)(floating-vue@5.2.2)(unocss@0.58.8)(vite@5.2.7)(vue@3.4.21) '@vue/devtools-core': 7.0.25(vite@5.2.7)(vue@3.4.21) '@vue/devtools-kit': 7.0.25(vue@3.4.21) @@ -1020,7 +1133,7 @@ packages: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.3 - nuxt: 3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7) + nuxt: 3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.13.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7) nypm: 0.3.8 ohash: 1.1.3 pacote: 17.0.6 @@ -1034,7 +1147,7 @@ packages: sirv: 2.0.4 unimport: 3.7.1(rollup@4.13.2) vite: 5.2.7 - vite-plugin-inspect: 0.8.3(@nuxt/kit@3.11.1)(vite@5.2.7) + vite-plugin-inspect: 0.8.3(@nuxt/kit@3.11.1)(rollup@4.13.2)(vite@5.2.7) vite-plugin-vue-inspector: 4.0.2(vite@5.2.7) which: 3.0.1 ws: 8.16.0 @@ -1061,11 +1174,11 @@ packages: - utf-8-validate - vue - /@nuxt/kit@3.11.1: + /@nuxt/kit@3.11.1(rollup@4.13.2): resolution: {integrity: sha512-8VVlhaY4N+wipgHmSXP+gLM+esms9TEBz13I/J++PbOUJuf2cJlUUTyqMoRVL0xudVKK/8fJgSndRkyidy1m2w==} engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@nuxt/schema': 3.11.1 + '@nuxt/schema': 3.11.1(rollup@4.13.2) c12: 1.10.0 consola: 3.2.3 defu: 6.1.4 @@ -1087,7 +1200,7 @@ packages: - rollup - supports-color - /@nuxt/schema@3.11.1: + /@nuxt/schema@3.11.1(rollup@4.13.2): resolution: {integrity: sha512-XyGlJsf3DtkouBCvBHlvjz+xvN4vza3W7pY3YBNMnktxlMQtfFiF3aB3A2NGLmBnJPqD3oY0j7lljraELb5hkg==} engines: {node: ^14.18.0 || >=16.10.0} dependencies: @@ -1106,11 +1219,11 @@ packages: - rollup - supports-color - /@nuxt/telemetry@2.5.3: + /@nuxt/telemetry@2.5.3(rollup@4.13.2): resolution: {integrity: sha512-Ghv2MgWbJcUM9G5Dy3oQP0cJkUwEgaiuQxEF61FXJdn0a69Q4StZEP/hLF0MWPM9m6EvAwI7orxkJHM7MrmtVg==} hasBin: true dependencies: - '@nuxt/kit': 3.11.1 + '@nuxt/kit': 3.11.1(rollup@4.13.2) ci-info: 4.0.0 consola: 3.2.3 create-require: 1.1.1 @@ -1134,13 +1247,13 @@ packages: /@nuxt/ui-templates@1.3.1: resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==} - /@nuxt/vite-builder@3.11.1(eslint@8.57.0)(typescript@5.3.3)(vue@3.4.21): + /@nuxt/vite-builder@3.11.1(eslint@8.57.0)(rollup@4.13.2)(typescript@5.3.3)(vue@3.4.21): resolution: {integrity: sha512-8DVK2Jb9xgfnvTfKr5mL3UDdAIrd3q3F4EmoVsXVKJe8NTt9LW38QdGwGViIQm9wzLDDEo0mgWF+n7WoGEH0xQ==} engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: vue: ^3.3.4 dependencies: - '@nuxt/kit': 3.11.1 + '@nuxt/kit': 3.11.1(rollup@4.13.2) '@rollup/plugin-replace': 5.0.5(rollup@4.13.2) '@vitejs/plugin-vue': 5.0.4(vite@5.2.7)(vue@3.4.21) '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.7)(vue@3.4.21) @@ -1235,12 +1348,12 @@ packages: - supports-color dev: true - /@nuxtjs/eslint-module@4.1.0(eslint@8.57.0)(vite@5.2.7)(webpack@5.91.0): + /@nuxtjs/eslint-module@4.1.0(eslint@8.57.0)(rollup@4.13.2)(vite@5.2.7)(webpack@5.91.0): resolution: {integrity: sha512-lW9ozEjOrnU8Uot3GOAZ/0ThNAds0d6UAp9n46TNxcTvH/MOcAggGbMNs16c0HYT2HlyPQvXORCHQ5+9p87mmw==} peerDependencies: eslint: '>=7' dependencies: - '@nuxt/kit': 3.11.1 + '@nuxt/kit': 3.11.1(rollup@4.13.2) chokidar: 3.6.0 eslint: 8.57.0 eslint-webpack-plugin: 4.1.0(eslint@8.57.0)(webpack@5.91.0) @@ -1253,10 +1366,44 @@ packages: - webpack dev: true - /@nuxtjs/tailwindcss@6.11.4: + /@nuxtjs/i18n@8.2.0(rollup@4.13.2)(vue@3.4.21): + resolution: {integrity: sha512-t37aF/WOD1g8CA/iCyCJrURXocjPy7diZG+kJcHLkLmJh1v4/2Zhe0AeUsjXubGgvQKLSL3b5w8rZuPkG4yhUw==} + engines: {node: ^14.16.0 || >=16.11.0} + dependencies: + '@intlify/h3': 0.5.0 + '@intlify/shared': 9.10.2 + '@intlify/unplugin-vue-i18n': 2.0.0(rollup@4.13.2)(vue-i18n@9.10.2) + '@intlify/utils': 0.12.0 + '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.13.2) + '@nuxt/kit': 3.11.1(rollup@4.13.2) + '@rollup/plugin-yaml': 4.1.2(rollup@4.13.2) + '@vue/compiler-sfc': 3.4.21 + debug: 4.3.4 + defu: 6.1.4 + estree-walker: 3.0.3 + is-https: 4.0.0 + knitwork: 1.1.0 + magic-string: 0.30.8 + mlly: 1.6.1 + pathe: 1.1.2 + scule: 1.3.0 + sucrase: 3.35.0 + ufo: 1.5.3 + unplugin: 1.10.1 + vue-i18n: 9.10.2(vue@3.4.21) + vue-router: 4.3.0(vue@3.4.21) + transitivePeerDependencies: + - petite-vue-i18n + - rollup + - supports-color + - vue + - vue-i18n-bridge + dev: true + + /@nuxtjs/tailwindcss@6.11.4(rollup@4.13.2): resolution: {integrity: sha512-09cksgZD4seQj054Z/BeiwFg1bzQTol8KPulLDLGnmMTkEi21vj/z+WlXQRpVbN1GS9+oU9tcSsu2ufXCM3DBg==} dependencies: - '@nuxt/kit': 3.11.1 + '@nuxt/kit': 3.11.1(rollup@4.13.2) autoprefixer: 10.4.19(postcss@8.4.38) chokidar: 3.6.0 clear-module: 4.1.2 @@ -1518,6 +1665,21 @@ packages: smob: 1.5.0 terser: 5.30.0 + /@rollup/plugin-yaml@4.1.2(rollup@4.13.2): + resolution: {integrity: sha512-RpupciIeZMUqhgFE97ba0s98mOFS7CWzN3EJNhJkqSv9XLlWYtwVdtE6cDw6ASOF/sZVFS7kRJXftaqM2Vakdw==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) + js-yaml: 4.1.0 + rollup: 4.13.2 + tosource: 2.0.0-alpha.3 + dev: true + /@rollup/pluginutils@4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -1953,7 +2115,7 @@ packages: unhead: 1.9.3 vue: 3.4.21(typescript@5.3.3) - /@unocss/astro@0.58.8(vite@5.2.7): + /@unocss/astro@0.58.8(rollup@4.13.2)(vite@5.2.7): resolution: {integrity: sha512-pAjsKuVg41dXNPWpFKx/SDxz198Miu/hqAL4lMkE2ITY+nFgqt9SH1lGS9P+VzElrHZ+Uqwmmtw8SjaT2EfCMA==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -1963,12 +2125,12 @@ packages: dependencies: '@unocss/core': 0.58.8 '@unocss/reset': 0.58.8 - '@unocss/vite': 0.58.8(vite@5.2.7) + '@unocss/vite': 0.58.8(rollup@4.13.2)(vite@5.2.7) vite: 5.2.7 transitivePeerDependencies: - rollup - /@unocss/cli@0.58.8: + /@unocss/cli@0.58.8(rollup@4.13.2): resolution: {integrity: sha512-TxFyrMPBuPPkyvW1oJ+f9Q0IOX7hXcuZqmFzsv7n153HXHU6fZCNxFzqbOWUR2K1eS4ScBREjIOWZYekXx7s2g==} engines: {node: '>=14'} hasBin: true @@ -2124,7 +2286,7 @@ packages: dependencies: '@unocss/core': 0.58.8 - /@unocss/vite@0.58.8(vite@5.2.7): + /@unocss/vite@0.58.8(rollup@4.13.2)(vite@5.2.7): resolution: {integrity: sha512-Eh0cG1I/BivvhUPdFxPi/z7Q+LMDnjHgL/dIE6/tmJK9rerdGeOBCAXxEetZfvBrOhWVnsOW/ydesyAhkzRg3w==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -2189,7 +2351,7 @@ packages: vite: 5.2.7 vue: 3.4.21(typescript@5.3.3) - /@vue-macros/common@1.10.2(vue@3.4.21): + /@vue-macros/common@1.10.2(rollup@4.13.2)(vue@3.4.21): resolution: {integrity: sha512-WC66NPVh2mJWqm4L0l/u/cOqm4pNOIwVdMGnDYAH2rHcOWy5x68GkhpkYTBu1+xwCSeHWOQn1TCGGbD+98fFpA==} engines: {node: '>=16.14.0'} peerDependencies: @@ -2359,7 +2521,7 @@ packages: colord: 2.9.3 floating-vue: 5.2.2(vue@3.4.21) focus-trap: 7.5.4 - unocss: 0.58.8(postcss@8.4.38)(vite@5.2.7) + unocss: 0.58.8(postcss@8.4.38)(rollup@4.13.2)(vite@5.2.7) vue: 3.4.21(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' @@ -2478,16 +2640,16 @@ packages: /@vueuse/metadata@10.9.0: resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} - /@vueuse/nuxt@10.9.0(nuxt@3.11.1)(vue@3.4.21): + /@vueuse/nuxt@10.9.0(nuxt@3.11.1)(rollup@4.13.2)(vue@3.4.21): resolution: {integrity: sha512-nC4Efg28Q6E41fUD5R+zM9uT5c+NfaDzaJCpqaEV/qHj+/BNJmkDBK8POLIUsiVOY35d0oD/YxZ+eVizqWBZow==} peerDependencies: nuxt: ^3.0.0 dependencies: - '@nuxt/kit': 3.11.1 + '@nuxt/kit': 3.11.1(rollup@4.13.2) '@vueuse/core': 10.9.0(vue@3.4.21) '@vueuse/metadata': 10.9.0 local-pkg: 0.5.0 - nuxt: 3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7) + nuxt: 3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.13.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7) vue-demi: 0.14.7(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' @@ -2898,7 +3060,7 @@ packages: '@babel/parser': 7.24.1 pathe: 1.1.2 - /ast-kit@0.9.5: + /ast-kit@0.9.5(rollup@4.13.2): resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} engines: {node: '>=16.14.0'} dependencies: @@ -2908,12 +3070,12 @@ packages: transitivePeerDependencies: - rollup - /ast-walker-scope@0.5.0: + /ast-walker-scope@0.5.0(rollup@4.13.2): resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} engines: {node: '>=16.14.0'} dependencies: '@babel/parser': 7.24.1 - ast-kit: 0.9.5 + ast-kit: 0.9.5(rollup@4.13.2) transitivePeerDependencies: - rollup @@ -3898,6 +4060,18 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + /eslint-config-prettier@9.1.0(eslint@8.57.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -4262,6 +4436,12 @@ packages: acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} @@ -5090,6 +5270,10 @@ packages: dependencies: is-extglob: 2.1.1 + /is-https@4.0.0: + resolution: {integrity: sha512-FeMLiqf8E5g6SdiVJsPcNZX8k4h2fBs1wp5Bb6uaNxn58ufK1axBqQZdmAQsqh0t9BuwFObybrdVJh6MKyPlyg==} + dev: true + /is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -5326,6 +5510,16 @@ packages: engines: {node: '>=6'} hasBin: true + /jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.0 + dev: true + /jsonc-parser@3.2.1: resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} @@ -6093,7 +6287,7 @@ packages: optionalDependencies: fsevents: 2.3.3 - /nuxt@3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7): + /nuxt@3.11.1(@unocss/reset@0.58.8)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.13.2)(typescript@5.3.3)(unocss@0.58.8)(vite@5.2.7): resolution: {integrity: sha512-CsncE1dxP0cmOYT+PBdjMD0bOK8eZizG5tgNWUOJAAAtU45sO38maoBumYYL2kUpT/SC/dMP+831DAcVPvi9pQ==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true @@ -6107,12 +6301,12 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.1.5(@unocss/reset@0.58.8)(floating-vue@5.2.2)(nuxt@3.11.1)(unocss@0.58.8)(vite@5.2.7)(vue@3.4.21) - '@nuxt/kit': 3.11.1 - '@nuxt/schema': 3.11.1 - '@nuxt/telemetry': 2.5.3 + '@nuxt/devtools': 1.1.5(@unocss/reset@0.58.8)(floating-vue@5.2.2)(nuxt@3.11.1)(rollup@4.13.2)(unocss@0.58.8)(vite@5.2.7)(vue@3.4.21) + '@nuxt/kit': 3.11.1(rollup@4.13.2) + '@nuxt/schema': 3.11.1(rollup@4.13.2) + '@nuxt/telemetry': 2.5.3(rollup@4.13.2) '@nuxt/ui-templates': 1.3.1 - '@nuxt/vite-builder': 3.11.1(eslint@8.57.0)(typescript@5.3.3)(vue@3.4.21) + '@nuxt/vite-builder': 3.11.1(eslint@8.57.0)(rollup@4.13.2)(typescript@5.3.3)(vue@3.4.21) '@unhead/dom': 1.9.3 '@unhead/ssr': 1.9.3 '@unhead/vue': 1.9.3(vue@3.4.21) @@ -6155,7 +6349,7 @@ packages: unenv: 1.9.0 unimport: 3.7.1(rollup@4.13.2) unplugin: 1.10.1 - unplugin-vue-router: 0.7.0(vue-router@4.3.0)(vue@3.4.21) + unplugin-vue-router: 0.7.0(rollup@4.13.2)(vue-router@4.3.0)(vue@3.4.21) unstorage: 1.10.2(ioredis@5.3.2) untyped: 1.4.2 vue: 3.4.21(typescript@5.3.3) @@ -7951,6 +8145,11 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + /tosource@2.0.0-alpha.3: + resolution: {integrity: sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==} + engines: {node: '>=10'} + dev: true + /totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} @@ -8183,7 +8382,7 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - /unocss@0.58.8(postcss@8.4.38)(vite@5.2.7): + /unocss@0.58.8(postcss@8.4.38)(rollup@4.13.2)(vite@5.2.7): resolution: {integrity: sha512-oMWCEgwvxJcF1BZxxkbTyTd83xtArsza3DModUrJrPndnpOVVz9fZ5g6wcrDbVpv6+cvRrgMCeKMlWKt9WIIsA==} engines: {node: '>=14'} peerDependencies: @@ -8195,8 +8394,8 @@ packages: vite: optional: true dependencies: - '@unocss/astro': 0.58.8(vite@5.2.7) - '@unocss/cli': 0.58.8 + '@unocss/astro': 0.58.8(rollup@4.13.2)(vite@5.2.7) + '@unocss/cli': 0.58.8(rollup@4.13.2) '@unocss/core': 0.58.8 '@unocss/extractor-arbitrary-variants': 0.58.8 '@unocss/postcss': 0.58.8(postcss@8.4.38) @@ -8214,14 +8413,14 @@ packages: '@unocss/transformer-compile-class': 0.58.8 '@unocss/transformer-directives': 0.58.8 '@unocss/transformer-variant-group': 0.58.8 - '@unocss/vite': 0.58.8(vite@5.2.7) + '@unocss/vite': 0.58.8(rollup@4.13.2)(vite@5.2.7) vite: 5.2.7 transitivePeerDependencies: - postcss - rollup - supports-color - /unplugin-vue-router@0.7.0(vue-router@4.3.0)(vue@3.4.21): + /unplugin-vue-router@0.7.0(rollup@4.13.2)(vue-router@4.3.0)(vue@3.4.21): resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} peerDependencies: vue-router: ^4.1.0 @@ -8231,8 +8430,8 @@ packages: dependencies: '@babel/types': 7.24.0 '@rollup/pluginutils': 5.1.0(rollup@4.13.2) - '@vue-macros/common': 1.10.2(vue@3.4.21) - ast-walker-scope: 0.5.0 + '@vue-macros/common': 1.10.2(rollup@4.13.2)(vue@3.4.21) + ast-walker-scope: 0.5.0(rollup@4.13.2) chokidar: 3.6.0 fast-glob: 3.3.2 json5: 2.2.3 @@ -8477,7 +8676,7 @@ packages: vite: 5.2.7 dev: true - /vite-plugin-inspect@0.8.3(@nuxt/kit@3.11.1)(vite@5.2.7): + /vite-plugin-inspect@0.8.3(@nuxt/kit@3.11.1)(rollup@4.13.2)(vite@5.2.7): resolution: {integrity: sha512-SBVzOIdP/kwe6hjkt7LSW4D0+REqqe58AumcnCfRNw4Kt3mbS9pEBkch+nupu2PBxv2tQi69EQHQ1ZA1vgB/Og==} engines: {node: '>=14'} peerDependencies: @@ -8488,7 +8687,7 @@ packages: optional: true dependencies: '@antfu/utils': 0.7.7 - '@nuxt/kit': 3.11.1 + '@nuxt/kit': 3.11.1(rollup@4.13.2) '@rollup/pluginutils': 5.1.0(rollup@4.13.2) debug: 4.3.4 error-stack-parser-es: 0.1.1 @@ -8627,6 +8826,18 @@ packages: - supports-color dev: true + /vue-i18n@9.10.2(vue@3.4.21): + resolution: {integrity: sha512-ECJ8RIFd+3c1d3m1pctQ6ywG5Yj8Efy1oYoAKQ9neRdkLbuKLVeW4gaY5HPkD/9ssf1pOnUrmIFjx2/gkGxmEw==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@intlify/core-base': 9.10.2 + '@intlify/shared': 9.10.2 + '@vue/devtools-api': 6.6.1 + vue: 3.4.21(typescript@5.3.3) + dev: true + /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.21): resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} peerDependencies: @@ -8831,6 +9042,15 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + /yaml-eslint-parser@1.2.2: + resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.4.1 + dev: true + /yaml@2.4.1: resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} engines: {node: '>= 14'}