From 26d842e5611a00820157b4afcc97ac36c0d95ba1 Mon Sep 17 00:00:00 2001 From: trydofor Date: Fri, 15 Nov 2024 17:34:38 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20useApiRoute=20composables=20#97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/great-toys-smell.md | 6 + .tool-versions | 2 +- .vscode/settings.json | 1 + hoist-layer.json | 7 + layers/common/composables/UseApiRoute.ts | 29 ++ layers/common/package.json | 3 +- layers/common/tests/UseApiRoute.test.ts | 77 ++++ layers/mobile/package.json | 2 +- package.json | 6 +- pnpm-lock.yaml | 500 +++++++++++++++-------- pnpm-workspace.yaml | 1 + 11 files changed, 464 insertions(+), 170 deletions(-) create mode 100644 .changeset/great-toys-smell.md create mode 100644 layers/common/composables/UseApiRoute.ts create mode 100644 layers/common/tests/UseApiRoute.test.ts diff --git a/.changeset/great-toys-smell.md b/.changeset/great-toys-smell.md new file mode 100644 index 0000000..bb4976b --- /dev/null +++ b/.changeset/great-toys-smell.md @@ -0,0 +1,6 @@ +--- +"@fessional/razor-common": patch +"@fessional/razor-mobile": patch +--- + +✨ useApiRoute composables #97 diff --git a/.tool-versions b/.tool-versions index 5cdd0bf..4f65f12 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ nodejs 20.18.0 -pnpm 9.13.0 +pnpm 9.13.2 diff --git a/.vscode/settings.json b/.vscode/settings.json index 769303f..90f8041 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -26,6 +26,7 @@ "nuxi", "nuxt", "nuxtjs", + "ofetch", "pinia", "pnpmfile", "revi", diff --git a/hoist-layer.json b/hoist-layer.json index c992917..952c08a 100644 --- a/hoist-layer.json +++ b/hoist-layer.json @@ -30,6 +30,7 @@ "@vue/test-utils": "catalog:commonDev", "eslint": "catalog:commonDev", "happy-dom": "catalog:commonDev", + "msw": "catalog:commonDev", "nuxi": "catalog:commonDev", "nuxt": "catalog:commonDev", "typescript": "catalog:commonDev", @@ -67,6 +68,7 @@ "@vue/test-utils": "catalog:commonDev", "eslint": "catalog:commonDev", "happy-dom": "catalog:commonDev", + "msw": "catalog:commonDev", "nuxi": "catalog:commonDev", "nuxt": "catalog:commonDev", "typescript": "catalog:commonDev", @@ -109,6 +111,7 @@ "@vue/test-utils": "catalog:commonDev", "eslint": "catalog:commonDev", "happy-dom": "catalog:commonDev", + "msw": "catalog:commonDev", "nuxi": "catalog:commonDev", "nuxt": "catalog:commonDev", "typescript": "catalog:commonDev", @@ -145,6 +148,7 @@ "@vue/test-utils": "catalog:commonDev", "eslint": "catalog:commonDev", "happy-dom": "catalog:commonDev", + "msw": "catalog:commonDev", "nuxi": "catalog:commonDev", "nuxt": "catalog:commonDev", "typescript": "catalog:commonDev", @@ -181,6 +185,7 @@ "@vue/test-utils": "catalog:commonDev", "eslint": "catalog:commonDev", "happy-dom": "catalog:commonDev", + "msw": "catalog:commonDev", "nuxi": "catalog:commonDev", "nuxt": "catalog:commonDev", "typescript": "catalog:commonDev", @@ -215,6 +220,7 @@ "@vue/test-utils": "catalog:commonDev", "eslint": "catalog:commonDev", "happy-dom": "catalog:commonDev", + "msw": "catalog:commonDev", "nuxi": "catalog:commonDev", "nuxt": "catalog:commonDev", "typescript": "catalog:commonDev", @@ -252,6 +258,7 @@ "@vue/test-utils": "catalog:commonDev", "eslint": "catalog:commonDev", "happy-dom": "catalog:commonDev", + "msw": "catalog:commonDev", "nuxi": "catalog:commonDev", "nuxt": "catalog:commonDev", "typescript": "catalog:commonDev", diff --git a/layers/common/composables/UseApiRoute.ts b/layers/common/composables/UseApiRoute.ts new file mode 100644 index 0000000..f115881 --- /dev/null +++ b/layers/common/composables/UseApiRoute.ts @@ -0,0 +1,29 @@ +/** + * A helper for handling API fetch with apiRoute prefix. + * + * @returns {Object} The API helper. + * @returns {Function} `url(uri: string): string` - the url apiRoute prefix. + * @returns {Function} `get(uri: string): Promise>` - GET request with apiRoute prefix + * @returns {Function} `post(uri: string): Promise>` - POST request with apiRoute prefix + */ +export function useApiRoute() { + const prefix = useRuntimeConfig().public.apiRoute; + return { + url: (uri: string) => prefix + uri, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + get: (uri: string, query?: Record) => $fetch>( + prefix + uri, + { + method: 'get', + query, + }), + // eslint-disable-next-line @typescript-eslint/no-explicit-any + post: (uri: string, body?: Record | URLSearchParams | FormData, query?: Record) => $fetch>( + prefix + uri, + { + method: 'post', + query, + body, + }), + }; +} diff --git a/layers/common/package.json b/layers/common/package.json index dfb5fa9..afda232 100644 --- a/layers/common/package.json +++ b/layers/common/package.json @@ -1,7 +1,7 @@ { "name": "@fessional/razor-common", "type": "module", - "version": "0.2.0", + "version": "0.2.1", "description": "common layer for mobile and desktop", "main": "./nuxt.config.ts", "types": "./index.d.ts", @@ -27,6 +27,7 @@ "@vue/test-utils": "catalog:commonDev", "eslint": "catalog:commonDev", "happy-dom": "catalog:commonDev", + "msw": "catalog:commonDev", "nuxi": "catalog:commonDev", "nuxt": "catalog:commonDev", "typescript": "catalog:commonDev", diff --git a/layers/common/tests/UseApiRoute.test.ts b/layers/common/tests/UseApiRoute.test.ts new file mode 100644 index 0000000..c03cc62 --- /dev/null +++ b/layers/common/tests/UseApiRoute.test.ts @@ -0,0 +1,77 @@ +import { describe, it, expect, beforeAll, afterAll, afterEach } from 'vitest'; +import { setupServer } from 'msw/node'; +import { http, HttpResponse } from 'msw'; +import { createFetch } from 'ofetch'; +import { useApiRoute } from '../composables/UseApiRoute'; + +const server = setupServer( + http.get('/api/v1/test-get.json', ({ request }) => { + const contentType = request.headers.get('content-type'); + return HttpResponse.json({ + success: true, + data: contentType, + }); + }), + http.post('/api/v1/test-post.json', ({ request }) => { + const contentType = request.headers.get('content-type'); + return HttpResponse.json({ + success: true, + data: contentType, + }); + }), +); + +beforeAll(() => { + server.listen({ onUnhandledRequest: 'error' }); + // eslint-disable-next-line + // @ts-ignore https://github.com/nuxt/test-utils/issues/775 + // 404 Cannot find any path matching /api/v1/test-get.json if comment + globalThis.$fetch = createFetch(); + console.log('set env 24'); +}); + +afterEach(() => { + server.resetHandlers(); +}); + +afterAll(() => { + server.close(); +}); + +describe('useApiRoute with real $fetch requests', () => { + it('should send GET request with correct Content-Type (no body)', async () => { + const { get } = useApiRoute(); + const rs = await get('/test-get.json'); + console.log('get', JSON.stringify(rs)); + expect(rs.data).toBeNull(); + }); + + it('should send POST request with JSON Content-Type', async () => { + const { post } = useApiRoute(); + const jsonBody = { key: 'value' }; + const rs = await post('/test-post.json', jsonBody); + console.log('post JSON', JSON.stringify(rs)); + expect(rs.data).toBe('application/json'); + }); + + it('should send POST request with FormData Content-Type', async () => { + const { post } = useApiRoute(); + const formData = new FormData(); + formData.append('key', 'value'); + + const rs = await post('/test-post.json', formData); + console.log('post FormData', JSON.stringify(rs)); + // in nuxt dev, it auto set `multipart/form-data; boundary`, but test not !! + // expect(rs.data).toContain('multipart/form-data'); + }); + + it('should send POST request with URLSearchParams Content-Type', async () => { + const { post } = useApiRoute(); + const params = new URLSearchParams(); + params.append('key', 'value'); + + const rs = await post('/test-post.json', params); + console.log('post SearchParams', JSON.stringify(rs)); + expect(rs.data).toContain('application/x-www-form-urlencoded'); + }); +}); diff --git a/layers/mobile/package.json b/layers/mobile/package.json index 439325f..99d55b5 100644 --- a/layers/mobile/package.json +++ b/layers/mobile/package.json @@ -1,7 +1,7 @@ { "name": "@fessional/razor-mobile", "type": "module", - "version": "0.2.0", + "version": "0.2.1", "description": "mobile layer with ionic and capacitor", "main": "./nuxt.config.ts", "scripts": { diff --git a/package.json b/package.json index 69f8a85..3fdf3f2 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,12 @@ { "name": "@fessional/razor", "type": "module", - "version": "0.2.0", + "version": "0.2.1", "description": "Use front-end tech (Nuxt/Ts) to build multi-platform from one codebase, suitable for small team and app to write app once, apply almost anywhere.", - "packageManager": "pnpm@9.13.0", + "packageManager": "pnpm@9.13.2", "engines": { "node": "20.18.0", - "pnpm": "9.13.0" + "pnpm": "9.13.2" }, "files": [ "hoist-layer.json", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e041e5e..f72f935 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,6 +58,9 @@ catalogs: happy-dom: specifier: 15.11.6 version: 15.11.6 + msw: + specifier: 2.6.4 + version: 2.6.4 nuxi: specifier: 3.15.0 version: 3.15.0 @@ -155,7 +158,7 @@ importers: version: 0.6.1(eslint@9.14.0(jiti@2.4.0))(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0)) '@nuxt/test-utils': specifier: catalog:commonDev - version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) + version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) '@pinia/nuxt': specifier: catalog:commonDev version: 0.7.0(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) @@ -173,7 +176,7 @@ importers: version: 0.64.0 '@vitest/coverage-v8': specifier: catalog:commonDev - version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0)) + version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0)) '@vue/test-utils': specifier: catalog:commonDev version: 2.4.6 @@ -183,6 +186,9 @@ importers: happy-dom: specifier: catalog:commonDev version: 15.11.6 + msw: + specifier: catalog:commonDev + version: 2.6.4(@types/node@22.9.0)(typescript@5.6.3) nuxi: specifier: catalog:commonDev version: 3.15.0 @@ -200,7 +206,7 @@ importers: version: 5.4.11(@types/node@22.9.0)(terser@5.36.0) vitest: specifier: catalog:commonDev - version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0) + version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0) vue-tsc: specifier: catalog:commonDev version: 2.1.10(typescript@5.6.3) @@ -246,7 +252,7 @@ importers: version: 0.6.1(eslint@9.14.0(jiti@2.4.0))(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0)) '@nuxt/test-utils': specifier: catalog:commonDev - version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) + version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) '@nuxtjs/ionic': specifier: catalog:mobileDev version: 0.15.1(magicast@0.3.5)(rollup@4.26.0)(vue@3.5.12(typescript@5.6.3)) @@ -258,7 +264,7 @@ importers: version: 0.64.0 '@unocss/nuxt': specifier: catalog:commonDev - version: 0.64.0(magicast@0.3.5)(postcss@8.4.49)(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))(webpack@5.96.1(esbuild@0.24.0)) + version: 0.64.0(magicast@0.3.5)(postcss@8.4.49)(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))(webpack@5.96.1(esbuild@0.23.1)) '@unocss/preset-icons': specifier: catalog:commonDev version: 0.64.0 @@ -267,7 +273,7 @@ importers: version: 0.64.0 '@vitest/coverage-v8': specifier: catalog:commonDev - version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0)) + version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0)) '@vue/test-utils': specifier: catalog:commonDev version: 2.4.6 @@ -277,6 +283,9 @@ importers: happy-dom: specifier: catalog:commonDev version: 15.11.6 + msw: + specifier: catalog:commonDev + version: 2.6.4(@types/node@22.9.0)(typescript@5.6.3) nuxi: specifier: catalog:commonDev version: 3.15.0 @@ -288,13 +297,13 @@ importers: version: 5.6.3 unocss: specifier: catalog:commonDev - version: 0.64.0(@unocss/webpack@0.64.0(rollup@4.26.0)(webpack@5.96.1(esbuild@0.24.0)))(postcss@8.4.49)(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) + version: 0.64.0(@unocss/webpack@0.64.0(rollup@4.26.0)(webpack@5.96.1(esbuild@0.23.1)))(postcss@8.4.49)(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) vite: specifier: catalog:commonDev version: 5.4.11(@types/node@22.9.0)(terser@5.36.0) vitest: specifier: catalog:commonDev - version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0) + version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0) vue-tsc: specifier: catalog:commonDev version: 2.1.10(typescript@5.6.3) @@ -328,7 +337,7 @@ importers: version: 0.6.1(eslint@9.14.0(jiti@2.4.0))(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0)) '@nuxt/test-utils': specifier: catalog:commonDev - version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) + version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) '@pinia/nuxt': specifier: catalog:commonDev version: 0.7.0(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) @@ -346,7 +355,7 @@ importers: version: 0.64.0 '@vitest/coverage-v8': specifier: catalog:commonDev - version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0)) + version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0)) '@vue/test-utils': specifier: catalog:commonDev version: 2.4.6 @@ -356,6 +365,9 @@ importers: happy-dom: specifier: catalog:commonDev version: 15.11.6 + msw: + specifier: catalog:commonDev + version: 2.6.4(@types/node@22.9.0)(typescript@5.6.3) nuxi: specifier: catalog:commonDev version: 3.15.0 @@ -373,7 +385,7 @@ importers: version: 5.4.11(@types/node@22.9.0)(terser@5.36.0) vitest: specifier: catalog:commonDev - version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0) + version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0) vue-tsc: specifier: catalog:commonDev version: 2.1.10(typescript@5.6.3) @@ -410,7 +422,7 @@ importers: version: 0.6.1(eslint@9.14.0(jiti@2.4.0))(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0)) '@nuxt/test-utils': specifier: catalog:commonDev - version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) + version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) '@pinia/nuxt': specifier: catalog:commonDev version: 0.7.0(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) @@ -428,7 +440,7 @@ importers: version: 0.64.0 '@vitest/coverage-v8': specifier: catalog:commonDev - version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0)) + version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0)) '@vue/test-utils': specifier: catalog:commonDev version: 2.4.6 @@ -438,6 +450,9 @@ importers: happy-dom: specifier: catalog:commonDev version: 15.11.6 + msw: + specifier: catalog:commonDev + version: 2.6.4(@types/node@22.9.0)(typescript@5.6.3) nuxi: specifier: catalog:commonDev version: 3.15.0 @@ -455,7 +470,7 @@ importers: version: 5.4.11(@types/node@22.9.0)(terser@5.36.0) vitest: specifier: catalog:commonDev - version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0) + version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0) vue-tsc: specifier: catalog:commonDev version: 2.1.10(typescript@5.6.3) @@ -507,7 +522,7 @@ importers: version: 0.6.1(eslint@9.14.0(jiti@2.4.0))(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0)) '@nuxt/test-utils': specifier: catalog:commonDev - version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) + version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) '@nuxtjs/ionic': specifier: catalog:mobileDev version: 0.15.1(magicast@0.3.5)(rollup@4.26.0)(vue@3.5.12(typescript@5.6.3)) @@ -528,7 +543,7 @@ importers: version: 0.64.0 '@vitest/coverage-v8': specifier: catalog:commonDev - version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0)) + version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0)) '@vue/test-utils': specifier: catalog:commonDev version: 2.4.6 @@ -538,6 +553,9 @@ importers: happy-dom: specifier: catalog:commonDev version: 15.11.6 + msw: + specifier: catalog:commonDev + version: 2.6.4(@types/node@22.9.0)(typescript@5.6.3) nuxi: specifier: catalog:commonDev version: 3.15.0 @@ -555,7 +573,7 @@ importers: version: 5.4.11(@types/node@22.9.0)(terser@5.36.0) vitest: specifier: catalog:commonDev - version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0) + version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0) vue-tsc: specifier: catalog:commonDev version: 2.1.10(typescript@5.6.3) @@ -595,7 +613,7 @@ importers: version: 0.6.1(eslint@9.14.0(jiti@2.4.0))(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0)) '@nuxt/test-utils': specifier: catalog:commonDev - version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) + version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) '@pinia/nuxt': specifier: catalog:commonDev version: 0.7.0(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) @@ -613,7 +631,7 @@ importers: version: 0.64.0 '@vitest/coverage-v8': specifier: catalog:commonDev - version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0)) + version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0)) '@vue/test-utils': specifier: catalog:commonDev version: 2.4.6 @@ -623,6 +641,9 @@ importers: happy-dom: specifier: catalog:commonDev version: 15.11.6 + msw: + specifier: catalog:commonDev + version: 2.6.4(@types/node@22.9.0)(typescript@5.6.3) nuxi: specifier: catalog:commonDev version: 3.15.0 @@ -640,7 +661,7 @@ importers: version: 5.4.11(@types/node@22.9.0)(terser@5.36.0) vitest: specifier: catalog:commonDev - version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0) + version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0) vue-tsc: specifier: catalog:commonDev version: 2.1.10(typescript@5.6.3) @@ -695,7 +716,7 @@ importers: version: 0.6.1(eslint@9.14.0(jiti@2.4.0))(magicast@0.3.5)(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0)) '@nuxt/test-utils': specifier: catalog:commonDev - version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) + version: 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) '@nuxtjs/ionic': specifier: catalog:mobileDev version: 0.15.1(magicast@0.3.5)(rollup@4.26.0)(vue@3.5.12(typescript@5.6.3)) @@ -716,7 +737,7 @@ importers: version: 0.64.0 '@vitest/coverage-v8': specifier: catalog:commonDev - version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0)) + version: 2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0)) '@vue/test-utils': specifier: catalog:commonDev version: 2.4.6 @@ -726,6 +747,9 @@ importers: happy-dom: specifier: catalog:commonDev version: 15.11.6 + msw: + specifier: catalog:commonDev + version: 2.6.4(@types/node@22.9.0)(typescript@5.6.3) nuxi: specifier: catalog:commonDev version: 3.15.0 @@ -743,7 +767,7 @@ importers: version: 5.4.11(@types/node@22.9.0)(terser@5.36.0) vitest: specifier: catalog:commonDev - version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0) + version: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0) vue-tsc: specifier: catalog:commonDev version: 2.1.10(typescript@5.6.3) @@ -915,6 +939,15 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@bundled-es-modules/cookie@2.0.1': + resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} + + '@bundled-es-modules/statuses@1.0.1': + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + + '@bundled-es-modules/tough-cookie@0.1.6': + resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + '@capacitor/cli@6.1.2': resolution: {integrity: sha512-HKCNGE0RP8U7aiEF2vg5wTivJROS8BVfu8a3yYJb1mRQvzv+czpmtHNsTWS/WukvwoxUjyjRmsNQSAACHfMTmQ==} engines: {node: '>=18.0.0'} @@ -1427,8 +1460,8 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@1.2.2': - resolution: {integrity: sha512-jhgiIrsw+tRfcBQ4BFl2C3vCrIUw2trCY0cnDvGZpwTtKCEDmZhAtMfrEUP/KpnwM6PrO0T+Ltm+ccW74olG3Q==} + '@eslint/compat@1.2.3': + resolution: {integrity: sha512-wlZhwlDFxkxIZ571aH0FoK4h4Vwx7P3HJx62Gp8hTc10bfpwT2x0nULuAHmQSJBOWPgPeVf+9YtnD4j50zVHmA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^9.10.0 @@ -1462,8 +1495,8 @@ packages: resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.2': - resolution: {integrity: sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==} + '@eslint/plugin-kit@0.2.3': + resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -1498,6 +1531,26 @@ packages: '@iconify/utils@2.1.33': resolution: {integrity: sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==} + '@inquirer/confirm@5.0.2': + resolution: {integrity: sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + + '@inquirer/core@10.1.0': + resolution: {integrity: sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.8': + resolution: {integrity: sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==} + engines: {node: '>=18'} + + '@inquirer/type@3.0.1': + resolution: {integrity: sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@ionic/cli-framework-output@2.2.8': resolution: {integrity: sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==} engines: {node: '>=16.0.0'} @@ -1635,6 +1688,10 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true + '@mswjs/interceptors@0.36.10': + resolution: {integrity: sha512-GXrJgakgJW3DWKueebkvtYgGKkxA7s0u5B0P5syJM5rvQUnrpLPigvci8Hukl7yEM+sU06l+er2Fgvx/gmiRgg==} + engines: {node: '>=18'} + '@netlify/functions@2.8.2': resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} engines: {node: '>=14.0.0'} @@ -1776,6 +1833,15 @@ packages: '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + '@open-draft/deferred-promise@2.2.0': + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + + '@open-draft/logger@0.3.0': + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + + '@open-draft/until@2.1.0': + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@parcel/watcher-android-arm64@2.5.0': resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} engines: {node: '>= 10.0.0'} @@ -2081,6 +2147,9 @@ packages: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -2114,6 +2183,12 @@ packages: '@types/slice-ansi@4.0.0': resolution: {integrity: sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==} + '@types/statuses@2.0.5': + resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} @@ -2816,6 +2891,10 @@ packages: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + clipboardy@4.0.0: resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} engines: {node: '>=18'} @@ -2910,6 +2989,10 @@ packages: cookie-es@1.2.2: resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + cookiejar@2.1.4: resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} @@ -3193,8 +3276,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.58: - resolution: {integrity: sha512-al2l4r+24ZFL7WzyPTlyD0fC33LLzvxqLCwurtBibVPghRGO9hSTl+tis8t1kD7biPiH/en4U0I7o/nQbYeoVA==} + electron-to-chromium@1.5.59: + resolution: {integrity: sha512-faAXB6+gEbC8FsiRdpOXgOe4snP49YwjiXynEB8Mp7sUx80W5eN+BnnBHJ/F7eIeLzs+QBfDD40bJMm97oEFcw==} elementtree@0.1.7: resolution: {integrity: sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==} @@ -3315,8 +3398,8 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-regexp@2.6.0: - resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} + eslint-plugin-regexp@2.7.0: + resolution: {integrity: sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' @@ -3646,6 +3729,7 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} @@ -3688,6 +3772,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -3732,6 +3820,9 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + headers-polyfill@4.0.3: + resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + hexoid@1.0.0: resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} engines: {node: '>=8'} @@ -3914,6 +4005,9 @@ packages: is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-node-process@1.2.0: + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -4151,7 +4245,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lodash._baseassign@3.2.0: - resolution: {integrity: sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ==} + resolution: {integrity: sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=} lodash._basecopy@3.0.1: resolution: {integrity: sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==} @@ -4381,12 +4475,26 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + msw@2.6.4: + resolution: {integrity: sha512-Pm4LmWQeytDsNCR+A7gt39XAdtH6zQb6jnIKRig0FlvYOn8eksn3s1nXxUfz5KYUjbckof7Z4p2ewzgffPoCbg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: '>= 4.8.x' + peerDependenciesMeta: + typescript: + optional: true + muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4571,6 +4679,9 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + outvariant@1.4.3: + resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -4685,6 +4796,9 @@ packages: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -4960,6 +5074,9 @@ packages: pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + psl@1.10.0: + resolution: {integrity: sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==} + pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} @@ -4971,6 +5088,9 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -5059,6 +5179,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -5344,6 +5467,9 @@ packages: streamx@2.20.2: resolution: {integrity: sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==} + strict-event-emitter@0.5.1: + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -5504,8 +5630,8 @@ packages: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} - tinypool@1.0.1: - resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@1.2.0: @@ -5532,6 +5658,10 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -5626,6 +5756,10 @@ packages: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -5728,6 +5862,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} @@ -5994,6 +6131,10 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -6076,6 +6217,10 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + zhead@2.2.4: resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} @@ -6302,6 +6447,19 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@bundled-es-modules/cookie@2.0.1': + dependencies: + cookie: 0.7.2 + + '@bundled-es-modules/statuses@1.0.1': + dependencies: + statuses: 2.0.1 + + '@bundled-es-modules/tough-cookie@0.1.6': + dependencies: + '@types/tough-cookie': 4.0.5 + tough-cookie: 4.1.4 + '@capacitor/cli@6.1.2': dependencies: '@ionic/cli-framework-output': 2.2.8 @@ -6705,7 +6863,7 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.2.2(eslint@9.14.0(jiti@2.4.0))': + '@eslint/compat@1.2.3(eslint@9.14.0(jiti@2.4.0))': optionalDependencies: eslint: 9.14.0(jiti@2.4.0) @@ -6761,7 +6919,7 @@ snapshots: '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.2.2': + '@eslint/plugin-kit@0.2.3': dependencies: levn: 0.4.1 @@ -6800,6 +6958,32 @@ snapshots: transitivePeerDependencies: - supports-color + '@inquirer/confirm@5.0.2(@types/node@22.9.0)': + dependencies: + '@inquirer/core': 10.1.0(@types/node@22.9.0) + '@inquirer/type': 3.0.1(@types/node@22.9.0) + '@types/node': 22.9.0 + + '@inquirer/core@10.1.0(@types/node@22.9.0)': + dependencies: + '@inquirer/figures': 1.0.8 + '@inquirer/type': 3.0.1(@types/node@22.9.0) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/figures@1.0.8': {} + + '@inquirer/type@3.0.1(@types/node@22.9.0)': + dependencies: + '@types/node': 22.9.0 + '@ionic/cli-framework-output@2.2.8': dependencies: '@ionic/utils-terminal': 2.3.5 @@ -7102,6 +7286,15 @@ snapshots: - encoding - supports-color + '@mswjs/interceptors@0.36.10': + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 + '@netlify/functions@2.8.2': dependencies: '@netlify/serverless-functions-api': 1.26.1 @@ -7222,7 +7415,7 @@ snapshots: eslint-flat-config-utils: 0.4.0 eslint-plugin-import-x: 4.4.2(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3) eslint-plugin-jsdoc: 50.5.0(eslint@9.14.0(jiti@2.4.0)) - eslint-plugin-regexp: 2.6.0(eslint@9.14.0(jiti@2.4.0)) + eslint-plugin-regexp: 2.7.0(eslint@9.14.0(jiti@2.4.0)) eslint-plugin-unicorn: 56.0.0(eslint@9.14.0(jiti@2.4.0)) eslint-plugin-vue: 9.31.0(eslint@9.14.0(jiti@2.4.0)) globals: 15.12.0 @@ -7339,7 +7532,7 @@ snapshots: - rollup - supports-color - '@nuxt/test-utils@3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))': + '@nuxt/test-utils@3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3))': dependencies: '@nuxt/kit': 3.14.159(magicast@0.3.5)(rollup@4.26.0) '@nuxt/schema': 3.14.159(magicast@0.3.5)(rollup@4.26.0) @@ -7366,13 +7559,13 @@ snapshots: unenv: 1.10.0 unplugin: 1.16.0 vite: 5.4.11(@types/node@22.9.0)(terser@5.36.0) - vitest-environment-nuxt: 1.0.1(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) + vitest-environment-nuxt: 1.0.1(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) vue: 3.5.12(typescript@5.6.3) vue-router: 4.4.5(vue@3.5.12(typescript@5.6.3)) optionalDependencies: '@vue/test-utils': 2.4.6 happy-dom: 15.11.6 - vitest: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0) + vitest: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0) transitivePeerDependencies: - magicast - rollup @@ -7459,6 +7652,15 @@ snapshots: '@one-ini/wasm@0.1.1': {} + '@open-draft/deferred-promise@2.2.0': {} + + '@open-draft/logger@0.3.0': + dependencies: + is-node-process: 1.2.0 + outvariant: 1.4.3 + + '@open-draft/until@2.1.0': {} + '@parcel/watcher-android-arm64@2.5.0': optional: true @@ -7713,6 +7915,8 @@ snapshots: '@trysound/sax@0.2.0': {} + '@types/cookie@0.6.0': {} + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -7747,6 +7951,10 @@ snapshots: '@types/slice-ansi@4.0.0': {} + '@types/statuses@2.0.5': {} + + '@types/tough-cookie@4.0.5': {} + '@types/web-bluetooth@0.0.20': {} '@typescript-eslint/eslint-plugin@8.14.0(@typescript-eslint/parser@8.14.0(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.14.0(jiti@2.4.0))(typescript@5.6.3)': @@ -7937,31 +8145,6 @@ snapshots: - vue - webpack - '@unocss/nuxt@0.64.0(magicast@0.3.5)(postcss@8.4.49)(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3))(webpack@5.96.1(esbuild@0.24.0))': - dependencies: - '@nuxt/kit': 3.14.159(magicast@0.3.5)(rollup@4.26.0) - '@unocss/config': 0.64.0 - '@unocss/core': 0.64.0 - '@unocss/preset-attributify': 0.64.0 - '@unocss/preset-icons': 0.64.0 - '@unocss/preset-tagify': 0.64.0 - '@unocss/preset-typography': 0.64.0 - '@unocss/preset-uno': 0.64.0 - '@unocss/preset-web-fonts': 0.64.0 - '@unocss/preset-wind': 0.64.0 - '@unocss/reset': 0.64.0 - '@unocss/vite': 0.64.0(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@unocss/webpack': 0.64.0(rollup@4.26.0)(webpack@5.96.1(esbuild@0.24.0)) - unocss: 0.64.0(@unocss/webpack@0.64.0(rollup@4.26.0)(webpack@5.96.1(esbuild@0.24.0)))(postcss@8.4.49)(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - transitivePeerDependencies: - - magicast - - postcss - - rollup - - supports-color - - vite - - vue - - webpack - '@unocss/postcss@0.64.0(postcss@8.4.49)': dependencies: '@unocss/config': 0.64.0 @@ -8075,22 +8258,6 @@ snapshots: - rollup - supports-color - '@unocss/webpack@0.64.0(rollup@4.26.0)(webpack@5.96.1(esbuild@0.24.0))': - dependencies: - '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.3(rollup@4.26.0) - '@unocss/config': 0.64.0 - '@unocss/core': 0.64.0 - chokidar: 3.6.0 - magic-string: 0.30.12 - tinyglobby: 0.2.10 - unplugin: 1.16.0 - webpack: 5.96.1(esbuild@0.24.0) - webpack-sources: 3.2.3 - transitivePeerDependencies: - - rollup - - supports-color - '@vercel/nft@0.27.6': dependencies: '@mapbox/node-pre-gyp': 1.0.11 @@ -8124,7 +8291,7 @@ snapshots: vite: 5.4.11(@types/node@22.9.0)(terser@5.36.0) vue: 3.5.12(typescript@5.6.3) - '@vitest/coverage-v8@2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))': + '@vitest/coverage-v8@2.1.5(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -8138,7 +8305,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0) + vitest: 2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0) transitivePeerDependencies: - supports-color @@ -8149,12 +8316,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))': + '@vitest/mocker@2.1.5(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))': dependencies: '@vitest/spy': 2.1.5 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: + msw: 2.6.4(@types/node@22.9.0)(typescript@5.6.3) vite: 5.4.11(@types/node@22.9.0)(terser@5.36.0) '@vitest/pretty-format@2.1.5': @@ -8649,7 +8817,7 @@ snapshots: browserslist@4.24.2: dependencies: caniuse-lite: 1.0.30001680 - electron-to-chromium: 1.5.58 + electron-to-chromium: 1.5.59 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) @@ -8777,6 +8945,8 @@ snapshots: cli-width@3.0.0: {} + cli-width@4.1.0: {} + clipboardy@4.0.0: dependencies: execa: 8.0.1 @@ -8852,6 +9022,8 @@ snapshots: cookie-es@1.2.2: {} + cookie@0.7.2: {} + cookiejar@2.1.4: {} copy-anything@3.0.5: @@ -9103,7 +9275,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.58: {} + electron-to-chromium@1.5.59: {} elementtree@0.1.7: dependencies: @@ -9251,7 +9423,7 @@ snapshots: eslint-config-flat-gitignore@0.3.0(eslint@9.14.0(jiti@2.4.0)): dependencies: - '@eslint/compat': 1.2.2(eslint@9.14.0(jiti@2.4.0)) + '@eslint/compat': 1.2.3(eslint@9.14.0(jiti@2.4.0)) eslint: 9.14.0(jiti@2.4.0) find-up-simple: 1.0.0 @@ -9301,7 +9473,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-regexp@2.6.0(eslint@9.14.0(jiti@2.4.0)): + eslint-plugin-regexp@2.7.0(eslint@9.14.0(jiti@2.4.0)): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.4.0)) '@eslint-community/regexpp': 4.12.1 @@ -9379,7 +9551,7 @@ snapshots: '@eslint/core': 0.7.0 '@eslint/eslintrc': 3.1.0 '@eslint/js': 9.14.0 - '@eslint/plugin-kit': 0.2.2 + '@eslint/plugin-kit': 0.2.3 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 @@ -9790,6 +9962,8 @@ snapshots: graphemer@1.4.0: {} + graphql@16.9.0: {} + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 @@ -9837,6 +10011,8 @@ snapshots: he@1.2.0: {} + headers-polyfill@4.0.3: {} + hexoid@1.0.0: {} hookable@5.5.3: {} @@ -10035,6 +10211,8 @@ snapshots: is-module@1.0.0: {} + is-node-process@1.2.0: {} + is-number@7.0.0: {} is-path-inside@4.0.0: {} @@ -10451,10 +10629,37 @@ snapshots: ms@2.1.3: {} + msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.0.2(@types/node@22.9.0) + '@mswjs/interceptors': 0.36.10 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + chalk: 4.1.2 + graphql: 16.9.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + strict-event-emitter: 0.5.1 + type-fest: 4.26.1 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - '@types/node' + muggle-string@0.4.1: {} mute-stream@0.0.8: {} + mute-stream@2.0.0: {} + nanoid@3.3.7: {} nanoid@5.0.8: {} @@ -10827,6 +11032,8 @@ snapshots: outdent@0.5.0: {} + outvariant@1.4.3: {} + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -10942,6 +11149,8 @@ snapshots: lru-cache: 11.0.2 minipass: 7.1.2 + path-to-regexp@6.3.0: {} + path-type@4.0.0: {} path-type@5.0.0: {} @@ -11184,6 +11393,10 @@ snapshots: pseudomap@1.0.2: {} + psl@1.10.0: + dependencies: + punycode: 2.3.1 + pump@3.0.2: dependencies: end-of-stream: 1.4.4 @@ -11195,6 +11408,8 @@ snapshots: dependencies: side-channel: 1.0.6 + querystringify@2.2.0: {} + queue-microtask@1.2.3: {} queue-tick@1.0.1: {} @@ -11293,6 +11508,8 @@ snapshots: require-from-string@2.0.2: {} + requires-port@1.0.0: {} + resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -11596,6 +11813,8 @@ snapshots: optionalDependencies: bare-events: 2.5.0 + strict-event-emitter@0.5.1: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -11738,17 +11957,6 @@ snapshots: optionalDependencies: esbuild: 0.23.1 - terser-webpack-plugin@5.3.10(esbuild@0.24.0)(webpack@5.96.1(esbuild@0.24.0)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.36.0 - webpack: 5.96.1(esbuild@0.24.0) - optionalDependencies: - esbuild: 0.24.0 - terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -11783,7 +11991,7 @@ snapshots: fdir: 6.4.2(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.0.1: {} + tinypool@1.0.2: {} tinyrainbow@1.2.0: {} @@ -11801,6 +12009,13 @@ snapshots: totalist@3.0.1: {} + tough-cookie@4.1.4: + dependencies: + psl: 1.10.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + tr46@0.0.3: {} tree-kill@1.2.2: {} @@ -11908,6 +12123,8 @@ snapshots: universalify@0.1.2: {} + universalify@0.2.0: {} + universalify@2.0.1: {} unocss@0.64.0(@unocss/webpack@0.64.0(rollup@4.26.0)(webpack@5.96.1(esbuild@0.23.1)))(postcss@8.4.49)(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)): @@ -11938,34 +12155,6 @@ snapshots: - supports-color - vue - unocss@0.64.0(@unocss/webpack@0.64.0(rollup@4.26.0)(webpack@5.96.1(esbuild@0.24.0)))(postcss@8.4.49)(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)): - dependencies: - '@unocss/astro': 0.64.0(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - '@unocss/cli': 0.64.0(rollup@4.26.0) - '@unocss/core': 0.64.0 - '@unocss/postcss': 0.64.0(postcss@8.4.49) - '@unocss/preset-attributify': 0.64.0 - '@unocss/preset-icons': 0.64.0 - '@unocss/preset-mini': 0.64.0 - '@unocss/preset-tagify': 0.64.0 - '@unocss/preset-typography': 0.64.0 - '@unocss/preset-uno': 0.64.0 - '@unocss/preset-web-fonts': 0.64.0 - '@unocss/preset-wind': 0.64.0 - '@unocss/transformer-attributify-jsx': 0.64.0 - '@unocss/transformer-compile-class': 0.64.0 - '@unocss/transformer-directives': 0.64.0 - '@unocss/transformer-variant-group': 0.64.0 - '@unocss/vite': 0.64.0(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vue@3.5.12(typescript@5.6.3)) - optionalDependencies: - '@unocss/webpack': 0.64.0(rollup@4.26.0)(webpack@5.96.1(esbuild@0.24.0)) - vite: 5.4.11(@types/node@22.9.0)(terser@5.36.0) - transitivePeerDependencies: - - postcss - - rollup - - supports-color - - vue - unplugin-vue-router@0.10.8(rollup@4.26.0)(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)): dependencies: '@babel/types': 7.26.0 @@ -12052,6 +12241,11 @@ snapshots: dependencies: punycode: 2.3.1 + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + urlpattern-polyfill@8.0.2: {} util-deprecate@1.0.2: {} @@ -12149,9 +12343,9 @@ snapshots: fsevents: 2.3.3 terser: 5.36.0 - vitest-environment-nuxt@1.0.1(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)): + vitest-environment-nuxt@1.0.1(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)): dependencies: - '@nuxt/test-utils': 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) + '@nuxt/test-utils': 3.14.4(@vue/test-utils@2.4.6)(h3@1.13.0)(happy-dom@15.11.6)(magicast@0.3.5)(nitropack@2.10.4(@capacitor/preferences@6.0.2(@capacitor/core@6.1.2))(typescript@5.6.3))(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0))(vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0))(vue-router@4.4.5(vue@3.5.12(typescript@5.6.3)))(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' @@ -12172,10 +12366,10 @@ snapshots: - vue - vue-router - vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(terser@5.36.0): + vitest@2.1.5(@types/node@22.9.0)(happy-dom@15.11.6)(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(terser@5.36.0): dependencies: '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0)) + '@vitest/mocker': 2.1.5(msw@2.6.4(@types/node@22.9.0)(typescript@5.6.3))(vite@5.4.11(@types/node@22.9.0)(terser@5.36.0)) '@vitest/pretty-format': 2.1.5 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -12189,7 +12383,7 @@ snapshots: std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.1 - tinypool: 1.0.1 + tinypool: 1.0.2 tinyrainbow: 1.2.0 vite: 5.4.11(@types/node@22.9.0)(terser@5.36.0) vite-node: 2.1.5(@types/node@22.9.0)(terser@5.36.0) @@ -12325,36 +12519,6 @@ snapshots: - esbuild - uglify-js - webpack@5.96.1(esbuild@0.24.0): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.0 - browserslist: 4.24.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.24.0)(webpack@5.96.1(esbuild@0.24.0)) - watchpack: 2.4.2 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - whatwg-mimetype@3.0.0: {} whatwg-url@5.0.0: @@ -12389,6 +12553,12 @@ snapshots: word-wrap@1.2.5: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -12456,6 +12626,8 @@ snapshots: yocto-queue@1.1.1: {} + yoctocolors-cjs@2.1.2: {} + zhead@2.2.4: {} zip-stream@6.0.1: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a37b5c4..e979716 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -30,6 +30,7 @@ catalogs: "@vue/test-utils": "2.4.6" "eslint": "9.14.0" "happy-dom": "15.11.6" # peer of @nuxt/test-utils + "msw": "2.6.4" # API mocking "nuxi": "3.15.0" # by nuxt "nuxt": "3.14.159" "typescript": "5.6.3"