From: Eduardo San Martin Morote Date: Tue, 18 Apr 2023 12:58:50 +0000 (+0200) Subject: feat: make setup stores context aware X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=03a3ee13932f57be95e80b1bf65d8f8fae2d3cde;p=thirdparty%2Fvuejs%2Fpinia.git feat: make setup stores context aware --- diff --git a/package.json b/package.json index 8bb9eb47..6a69acc2 100644 --- a/package.json +++ b/package.json @@ -29,8 +29,8 @@ "@types/lodash.kebabcase": "^4.1.7", "@types/node": "^18.15.11", "@vitest/coverage-c8": "^0.30.1", - "@vue/compiler-sfc": "^3.2.47", - "@vue/server-renderer": "^3.2.47", + "@vue/compiler-sfc": "alpha", + "@vue/server-renderer": "alpha", "c8": "^7.13.0", "chalk": "^5.2.0", "conventional-changelog-cli": "^2.2.2", @@ -52,9 +52,18 @@ "typedoc-plugin-markdown": "^3.14.0", "typescript": "^4.9.4", "vitest": "^0.30.1", - "vue": "^3.2.47", + "vue": "alpha", "yorkie": "^2.0.0" }, + "pnpm": { + "overrides": { + "vue": "alpha", + "@vue/compiler-sfc": "alpha", + "@vue/runtime-core": "alpha", + "@vue/runtime-dom": "alpha", + "@vue/server-renderer": "alpha" + } + }, "gitHooks": { "pre-commit": "lint-staged", "commit-msg": "node scripts/verifyCommit.mjs" diff --git a/packages/pinia/__tests__/appContext.spec.ts b/packages/pinia/__tests__/appContext.spec.ts new file mode 100644 index 00000000..035be07f --- /dev/null +++ b/packages/pinia/__tests__/appContext.spec.ts @@ -0,0 +1,68 @@ +import { beforeEach, describe, it, expect } from 'vitest' +import { createPinia, defineStore, setActivePinia } from '../src' +import { createApp, h, inject, provide } from 'vue' +import { mount } from '@vue/test-utils' +import { mockWarn } from './vitest-mock-warn' + +describe('app context injections', () => { + mockWarn() + + beforeEach(() => { + setActivePinia(createPinia()) + }) + + const useStore = defineStore('main', () => { + const injected = inject('injected') + return { injected } + }) + + it('injects app provides', () => { + // use it before mounting to ensure out of app context + const wrapper = mount( + { + setup() { + const store = useStore() + return { store } + }, + template: `

{{ store.injected }}

`, + }, + { + global: { + provide: { + injected: 'app injected', + }, + }, + } + ) + + expect(wrapper.text()).toBe('app injected') + + const store = useStore() + expect(store.injected).toBe('app injected') + }) + + it('can be used in older versions', () => { + const pinia = createPinia() + setActivePinia(pinia) + useStore(pinia) + expect('inject() can only be used').toHaveBeenWarned() + }) + + it('can use getCurrentInstance', () => { + const pinia = createPinia() + setActivePinia(pinia) + const app = createApp({ + setup() { + provide('injected', 'should not appear') + const store = useStore() + return () => h('p', `${store.injected}`) + }, + }) + app.use(pinia) + app.provide('injected', 'test 2') + + expect(app.mount(document.createElement('div')).$el.innerText).toBe( + 'test 2' + ) + }) +}) diff --git a/packages/pinia/__tests__/storeSetup.spec.ts b/packages/pinia/__tests__/storeSetup.spec.ts index b7709c3e..767fffd7 100644 --- a/packages/pinia/__tests__/storeSetup.spec.ts +++ b/packages/pinia/__tests__/storeSetup.spec.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, it, expect, vi } from 'vitest' import { createPinia, defineStore, setActivePinia } from '../src' -import { computed, nextTick, ref, watch } from 'vue' +import { computed, inject, nextTick, ref, watch } from 'vue' function expectType(_value: T): void {} diff --git a/packages/pinia/src/createPinia.ts b/packages/pinia/src/createPinia.ts index f71497fd..1f13555d 100644 --- a/packages/pinia/src/createPinia.ts +++ b/packages/pinia/src/createPinia.ts @@ -46,6 +46,14 @@ export function createPinia(): Pinia { return this }, + _run(fn) { + // in some scenarios, the pinia is not installed yet but people might still try to instantiate stores. In those + // scenarios we want to avoid a undefined is not a function (_a will be null until available) + return pinia._a && typeof pinia._a.runWithContext === 'function' + ? this._a.runWithContext(fn) + : fn() + }, + _p, // it's actually undefined here // @ts-expect-error diff --git a/packages/pinia/src/rootStore.ts b/packages/pinia/src/rootStore.ts index 0509a5c8..2df59b06 100644 --- a/packages/pinia/src/rootStore.ts +++ b/packages/pinia/src/rootStore.ts @@ -71,6 +71,15 @@ export interface Pinia { */ _a: App + /** + * Runs a function using the app context if available. + * + * @internal + * + * @param fn - function to run in the scope of the pinia + */ + _run(fn: () => T): T + /** * Effect scope the pinia is attached to * diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5691429..d3b1087d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,12 @@ lockfileVersion: '6.0' +overrides: + vue: alpha + '@vue/compiler-sfc': alpha + '@vue/runtime-core': alpha + '@vue/runtime-dom': alpha + '@vue/server-renderer': alpha + importers: .: @@ -29,11 +36,11 @@ importers: specifier: ^0.30.1 version: 0.30.1(vitest@0.30.1) '@vue/compiler-sfc': - specifier: ^3.2.47 - version: 3.2.47 + specifier: alpha + version: 3.3.0-alpha.11 '@vue/server-renderer': - specifier: ^3.2.47 - version: 3.2.47(vue@3.2.47) + specifier: alpha + version: 3.3.0-alpha.11(vue@3.3.0-alpha.11) c8: specifier: ^7.13.0 version: 7.13.0 @@ -98,8 +105,8 @@ importers: specifier: ^0.30.1 version: 0.30.1(happy-dom@9.8.1) vue: - specifier: ^3.2.47 - version: 3.2.47 + specifier: alpha + version: 3.3.0-alpha.11 yorkie: specifier: ^2.0.0 version: 2.0.0 @@ -366,7 +373,7 @@ packages: '@babel/helper-compilation-targets': 7.20.0(@babel/core@7.20.2) '@babel/helper-module-transforms': 7.20.2 '@babel/helpers': 7.20.1 - '@babel/parser': 7.20.13 + '@babel/parser': 7.21.4 '@babel/template': 7.18.10 '@babel/traverse': 7.20.1 '@babel/types': 7.20.7 @@ -535,8 +542,8 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.20.13: - resolution: {integrity: sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==} + /@babel/parser@7.21.4: + resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: @@ -585,7 +592,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.21.4 - '@babel/parser': 7.20.13 + '@babel/parser': 7.21.4 '@babel/types': 7.20.7 /@babel/traverse@7.20.1: @@ -598,7 +605,7 @@ packages: '@babel/helper-function-name': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.20.13 + '@babel/parser': 7.21.4 '@babel/types': 7.20.7 debug: 4.3.4 globals: 11.12.0 @@ -908,14 +915,14 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 /@jridgewell/gen-mapping@0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.17 /@jridgewell/gen-mapping@0.3.3: @@ -954,7 +961,6 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true /@jridgewell/trace-mapping@0.3.16: resolution: {integrity: sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==} @@ -1179,7 +1185,7 @@ packages: resolution: {integrity: sha512-jfpVHxi1AHfNO3D6iD1RJE6fx/7cAzekvG90poIzVawp/L+I4DNdy8pCgqBScJW4bfWOpHeLYbtQQlL/hPmkjw==} dev: true - /@nuxt/vite-builder@3.0.0(@types/node@18.15.11)(typescript@4.8.4)(vue@3.2.45): + /@nuxt/vite-builder@3.0.0(@types/node@18.15.11)(typescript@4.8.4)(vue@3.3.0-alpha.11): resolution: {integrity: sha512-eMnpPpjHU8rGZcsJUksCuSX+6dpId03q8LOSStsm6rXzrNJtZIcwt0nBRTUaigckXIozX8ZNl5u2OPGUfUbMrw==} engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} peerDependencies: @@ -1187,8 +1193,8 @@ packages: dependencies: '@nuxt/kit': 3.0.0(rollup@2.79.1) '@rollup/plugin-replace': 5.0.1(rollup@2.79.1) - '@vitejs/plugin-vue': 3.2.0(vite@3.2.5)(vue@3.2.45) - '@vitejs/plugin-vue-jsx': 2.1.1(vite@3.2.5)(vue@3.2.45) + '@vitejs/plugin-vue': 3.2.0(vite@3.2.5)(vue@3.3.0-alpha.11) + '@vitejs/plugin-vue-jsx': 2.1.1(vite@3.2.5)(vue@3.3.0-alpha.11) autoprefixer: 10.4.13(postcss@8.4.21) chokidar: 3.5.3 cssnano: 5.1.14(postcss@8.4.21) @@ -1217,7 +1223,7 @@ packages: vite: 3.2.5(@types/node@18.15.11) vite-node: 0.25.2(@types/node@18.15.11) vite-plugin-checker: 0.5.1(typescript@4.8.4)(vite@3.2.5) - vue: 3.2.45 + vue: 3.3.0-alpha.11 vue-bundle-renderer: 1.0.0 transitivePeerDependencies: - '@types/node' @@ -1670,14 +1676,14 @@ packages: '@unhead/schema': 1.0.0 dev: true - /@unhead/vue@1.0.0(vue@3.2.45): + /@unhead/vue@1.0.0(vue@3.3.0-alpha.11): resolution: {integrity: sha512-t1DBboJsYN+Mr8zjbJkgk9EEhKd+bcRTMSuTbK1nDJg4aM0uJ/sq1nEgReSq92MjVVLunljnpHqBbiiek0CXQg==} peerDependencies: vue: '>=2.7 || >=3' dependencies: '@unhead/schema': 1.0.0 hookable: 5.4.2 - vue: 3.2.45 + vue: 3.3.0-alpha.11 dev: true /@vercel/nft@0.22.1: @@ -1700,7 +1706,7 @@ packages: - supports-color dev: true - /@vitejs/plugin-vue-jsx@2.1.1(vite@3.2.5)(vue@3.2.45): + /@vitejs/plugin-vue-jsx@2.1.1(vite@3.2.5)(vue@3.3.0-alpha.11): resolution: {integrity: sha512-JgDhxstQlwnHBvZ1BSnU5mbmyQ14/t5JhREc6YH5kWyu2QdAAOsLF6xgHoIWarj8tddaiwFrNzLbWJPudpXKYA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1711,12 +1717,12 @@ packages: '@babel/plugin-transform-typescript': 7.20.2(@babel/core@7.20.2) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.20.2) vite: 3.2.5(@types/node@18.15.11) - vue: 3.2.45 + vue: 3.3.0-alpha.11 transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-vue@3.2.0(vite@3.2.5)(vue@3.2.45): + /@vitejs/plugin-vue@3.2.0(vite@3.2.5)(vue@3.3.0-alpha.11): resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1724,7 +1730,7 @@ packages: vue: ^3.2.25 dependencies: vite: 3.2.5(@types/node@18.15.11) - vue: 3.2.45 + vue: 3.3.0-alpha.11 dev: true /@vitejs/plugin-vue@4.1.0(vite@4.2.1)(vue@3.2.47): @@ -1736,6 +1742,18 @@ packages: dependencies: vite: 4.2.1(@types/node@18.15.11) vue: 3.2.47 + dev: true + + /@vitejs/plugin-vue@4.1.0(vite@4.2.1)(vue@3.3.0-alpha.11): + resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.2.25 + dependencies: + vite: 4.2.1(@types/node@18.15.11) + vue: 3.3.0-alpha.11 + dev: false /@vitest/coverage-c8@0.30.1(vitest@0.30.1): resolution: {integrity: sha512-/Wa3dtSuckpdngAmiCwowaEXXgJkqPrtfvrs9HTB9QoEfNbZWPu4E4cjEn4lJZb4qcGf4fxFtUA2f9DnDNAzBA==} @@ -1811,7 +1829,7 @@ packages: '@volar/language-core': 1.3.0-alpha.0 '@volar/source-map': 1.3.0-alpha.0 '@vue/compiler-dom': 3.2.47 - '@vue/compiler-sfc': 3.2.47 + '@vue/compiler-sfc': 3.3.0-alpha.11 '@vue/reactivity': 3.2.47 '@vue/shared': 3.2.47 minimatch: 6.2.0 @@ -1847,29 +1865,21 @@ packages: - supports-color dev: true - /@vue/compiler-core@3.2.45: - resolution: {integrity: sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==} - dependencies: - '@babel/parser': 7.20.13 - '@vue/shared': 3.2.45 - estree-walker: 2.0.2 - source-map: 0.6.1 - dev: true - /@vue/compiler-core@3.2.47: resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} dependencies: - '@babel/parser': 7.20.13 + '@babel/parser': 7.21.4 '@vue/shared': 3.2.47 estree-walker: 2.0.2 source-map: 0.6.1 - /@vue/compiler-dom@3.2.45: - resolution: {integrity: sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==} + /@vue/compiler-core@3.3.0-alpha.11: + resolution: {integrity: sha512-Nv5Q6DLuZup8u8Z5J3r9SIryKPhPGJo5Ua0jTyRCTCYDU6sa08SVMpCJX5TmL3OmNftbrdSauqqcLaPq4L09lQ==} dependencies: - '@vue/compiler-core': 3.2.45 - '@vue/shared': 3.2.45 - dev: true + '@babel/parser': 7.21.4 + '@vue/shared': 3.3.0-alpha.11 + estree-walker: 2.0.2 + source-map-js: 1.0.2 /@vue/compiler-dom@3.2.47: resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} @@ -1877,47 +1887,31 @@ packages: '@vue/compiler-core': 3.2.47 '@vue/shared': 3.2.47 - /@vue/compiler-sfc@3.2.45: - resolution: {integrity: sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==} + /@vue/compiler-dom@3.3.0-alpha.11: + resolution: {integrity: sha512-q9DHXm/mbSxQE8I1bSjs9GNdFbSjVe31wc1h+LupeJvLdjX7YqdcklYYAjuZuYxHUGnVj0TAjtuAAG9SLhTadQ==} dependencies: - '@babel/parser': 7.20.13 - '@vue/compiler-core': 3.2.45 - '@vue/compiler-dom': 3.2.45 - '@vue/compiler-ssr': 3.2.45 - '@vue/reactivity-transform': 3.2.45 - '@vue/shared': 3.2.45 - estree-walker: 2.0.2 - magic-string: 0.25.9 - postcss: 8.4.21 - source-map: 0.6.1 - dev: true + '@vue/compiler-core': 3.3.0-alpha.11 + '@vue/shared': 3.3.0-alpha.11 - /@vue/compiler-sfc@3.2.47: - resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} + /@vue/compiler-sfc@3.3.0-alpha.11: + resolution: {integrity: sha512-v/KrdUfz9sicXRlWOWO0d3ASdTOPXcv0o94YywLiIuB2c3kRqhxb+88lPxVnQP4xExWA7giIoRJ2SIEy9jwn8A==} dependencies: - '@babel/parser': 7.20.13 - '@vue/compiler-core': 3.2.47 - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-ssr': 3.2.47 - '@vue/reactivity-transform': 3.2.47 - '@vue/shared': 3.2.47 + '@babel/parser': 7.21.4 + '@vue/compiler-core': 3.3.0-alpha.11 + '@vue/compiler-dom': 3.3.0-alpha.11 + '@vue/compiler-ssr': 3.3.0-alpha.11 + '@vue/reactivity-transform': 3.3.0-alpha.11 + '@vue/shared': 3.3.0-alpha.11 estree-walker: 2.0.2 - magic-string: 0.25.9 + magic-string: 0.30.0 postcss: 8.4.21 - source-map: 0.6.1 - - /@vue/compiler-ssr@3.2.45: - resolution: {integrity: sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==} - dependencies: - '@vue/compiler-dom': 3.2.45 - '@vue/shared': 3.2.45 - dev: true + source-map-js: 1.0.2 - /@vue/compiler-ssr@3.2.47: - resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} + /@vue/compiler-ssr@3.3.0-alpha.11: + resolution: {integrity: sha512-botFNHfxr8piUcccQ0VE4ORNWVu2zkuIG3VYhA5R8yZ6E9WHC4zSi6wbX0hAlVXCOm4Vg9xJbWcrjEnFlMOKAQ==} dependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-dom': 3.3.0-alpha.11 + '@vue/shared': 3.3.0-alpha.11 /@vue/composition-api@1.4.0(vue@3.2.47): resolution: {integrity: sha512-fanqJw1cqhkfS1dcpFY52CeR0aWDBr7ub/0ObPWqMnNPdRsMi1gX04Q3aLeRtJEuVeCFewNbqvkPskkSPTVaXQ==} @@ -1935,24 +1929,14 @@ packages: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} dev: false - /@vue/reactivity-transform@3.2.45: - resolution: {integrity: sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==} - dependencies: - '@babel/parser': 7.20.13 - '@vue/compiler-core': 3.2.45 - '@vue/shared': 3.2.45 - estree-walker: 2.0.2 - magic-string: 0.25.9 - dev: true - - /@vue/reactivity-transform@3.2.47: - resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} + /@vue/reactivity-transform@3.3.0-alpha.11: + resolution: {integrity: sha512-rN2VaF2MJNkIIinzLewQG+oiS6eaLcIYepxzuRtThaJ372RrELYSI0Z5wxEMalOuBGbVJ7T9Y24veBtYtKMPBQ==} dependencies: - '@babel/parser': 7.20.13 - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 + '@babel/parser': 7.21.4 + '@vue/compiler-core': 3.3.0-alpha.11 + '@vue/shared': 3.3.0-alpha.11 estree-walker: 2.0.2 - magic-string: 0.25.9 + magic-string: 0.30.0 /@vue/reactivity@3.2.45: resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==} @@ -1964,53 +1948,43 @@ packages: resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} dependencies: '@vue/shared': 3.2.47 - - /@vue/runtime-core@3.2.45: - resolution: {integrity: sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==} - dependencies: - '@vue/reactivity': 3.2.45 - '@vue/shared': 3.2.45 dev: true - /@vue/runtime-core@3.2.47: - resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==} + /@vue/reactivity@3.3.0-alpha.11: + resolution: {integrity: sha512-qGt7vkRHmo1mybbOylRxrv1DGcDhsYLBCpH9JY4PcwokKxbsoNQGZmlaV9sgGq8fX/fZcSR2dvXlmyKN3FcZAQ==} dependencies: - '@vue/reactivity': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/shared': 3.3.0-alpha.11 - /@vue/runtime-dom@3.2.45: - resolution: {integrity: sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==} + /@vue/runtime-core@3.3.0-alpha.11: + resolution: {integrity: sha512-uxi8oLsfiwcGRkiZ9Dok2dCpoH7pyZhy9j06UmuqK6vF4JCg9sndYln/74FUikham+akUTqZgtgxc5gtPygh3w==} dependencies: - '@vue/runtime-core': 3.2.45 - '@vue/shared': 3.2.45 - csstype: 2.6.21 - dev: true + '@vue/reactivity': 3.3.0-alpha.11 + '@vue/shared': 3.3.0-alpha.11 - /@vue/runtime-dom@3.2.47: - resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==} + /@vue/runtime-dom@3.3.0-alpha.11: + resolution: {integrity: sha512-XCN8wQqtJMLdIy0y2uQEAjlVn83PBPUFsCCnETsN/kCZ3YhP+/o8wJ1iNhCoRb7ZPrIOOI9J/9pVPzlm3WGPTQ==} dependencies: - '@vue/runtime-core': 3.2.47 - '@vue/shared': 3.2.47 - csstype: 2.6.21 + '@vue/runtime-core': 3.3.0-alpha.11 + '@vue/shared': 3.3.0-alpha.11 + csstype: 3.1.2 - /@vue/server-renderer@3.2.45(vue@3.2.45): - resolution: {integrity: sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==} + /@vue/server-renderer@3.3.0-alpha.11(vue@3.2.47): + resolution: {integrity: sha512-ZGq6ujgMQeDvITvIe0M2lAaM0x9TTr5ZQ/OMr7qEMo3HyaWxEDsG3m/KhPmlx0OvJjeGqXCqjs2nzOlO0UC77Q==} peerDependencies: - vue: 3.2.45 + vue: 3.3.0-alpha.11 dependencies: - '@vue/compiler-ssr': 3.2.45 - '@vue/shared': 3.2.45 - vue: 3.2.45 - dev: true + '@vue/compiler-ssr': 3.3.0-alpha.11 + '@vue/shared': 3.3.0-alpha.11 + vue: 3.2.47 - /@vue/server-renderer@3.2.47(vue@3.2.47): - resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==} + /@vue/server-renderer@3.3.0-alpha.11(vue@3.3.0-alpha.11): + resolution: {integrity: sha512-ZGq6ujgMQeDvITvIe0M2lAaM0x9TTr5ZQ/OMr7qEMo3HyaWxEDsG3m/KhPmlx0OvJjeGqXCqjs2nzOlO0UC77Q==} peerDependencies: - vue: 3.2.47 + vue: 3.3.0-alpha.11 dependencies: - '@vue/compiler-ssr': 3.2.47 - '@vue/shared': 3.2.47 - vue: 3.2.47 + '@vue/compiler-ssr': 3.3.0-alpha.11 + '@vue/shared': 3.3.0-alpha.11 + vue: 3.3.0-alpha.11 /@vue/shared@3.2.45: resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==} @@ -2019,6 +1993,9 @@ packages: /@vue/shared@3.2.47: resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} + /@vue/shared@3.3.0-alpha.11: + resolution: {integrity: sha512-bMoJDESDKvjQEuIUthdBi18Z33AvOjQ1Fn3XmdjUY7ZjLcU6Xu7QKZ1wT+qlyeQA1BqSjtEzbAGKomvUsT0uHw==} + /@vue/test-utils@2.3.2(vue@3.2.47): resolution: {integrity: sha512-hJnVaYhbrIm0yBS0+e1Y0Sj85cMyAi+PAbK4JHqMRUZ6S622Goa+G7QzkRSyvCteG8wop7tipuEbHoZo26wsSA==} peerDependencies: @@ -2028,7 +2005,7 @@ packages: vue: 3.2.47 optionalDependencies: '@vue/compiler-dom': 3.2.47 - '@vue/server-renderer': 3.2.47(vue@3.2.47) + '@vue/server-renderer': 3.3.0-alpha.11(vue@3.2.47) dev: true /@vueuse/core@10.0.2(vue@3.2.47): @@ -2043,7 +2020,19 @@ packages: - vue dev: false - /@vueuse/head@1.0.15(vue@3.2.45): + /@vueuse/core@10.0.2(vue@3.3.0-alpha.11): + resolution: {integrity: sha512-/UGc2cXbxbeIFLDSJyHUjI9QZ4CJJkhiJe9TbKNPSofcWmYhhUgJ+7iw9njXTKu/Xc3Z6UeXVR9fosW1+cyrnQ==} + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 10.0.2 + '@vueuse/shared': 10.0.2(vue@3.3.0-alpha.11) + vue-demi: 0.14.0(@vue/composition-api@1.4.0)(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/head@1.0.15(vue@3.3.0-alpha.11): resolution: {integrity: sha512-2wFKdxtGs7Aip6OYEL2NE6gW3J7ux+nvWUgJvPONEnWEU+Fvq6Mm+horkYwMSvQJ2O0KvVkJ5rGoIV+A4lSD/g==} peerDependencies: vue: '>=2.7 || >=3' @@ -2051,8 +2040,8 @@ packages: '@unhead/dom': 1.0.0 '@unhead/schema': 1.0.0 '@unhead/ssr': 1.0.0 - '@unhead/vue': 1.0.0(vue@3.2.45) - vue: 3.2.45 + '@unhead/vue': 1.0.0(vue@3.3.0-alpha.11) + vue: 3.3.0-alpha.11 dev: true /@vueuse/metadata@10.0.2: @@ -2068,6 +2057,15 @@ packages: - vue dev: false + /@vueuse/shared@10.0.2(vue@3.3.0-alpha.11): + resolution: {integrity: sha512-7W2l6qZaFvla3zAeEVo8hNHkNRKCezJa3JjZAKv3K4KsevXobHhVNr+RHaOVNK/6ETpFmtqiK+0pMIADbHjjag==} + dependencies: + vue-demi: 0.14.0(@vue/composition-api@1.4.0)(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + /@zhead/schema@1.0.1: resolution: {integrity: sha512-n6BDs+MjSOesuv6krG2QGyCPfdndxWX0M/G2wEGu1SPHc5jLHHi3EY1+vQvudFVXRVXquZHKsDPE7pSyeyGgHg==} dev: true @@ -3103,8 +3101,8 @@ packages: css-tree: 1.1.3 dev: true - /csstype@2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} /cuint@0.2.2: resolution: {integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==} @@ -5102,11 +5100,6 @@ packages: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} dev: true - /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - /magic-string@0.26.7: resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} engines: {node: '>=12'} @@ -5125,7 +5118,6 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: true /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -5671,11 +5663,11 @@ packages: '@nuxt/schema': 3.0.0(rollup@2.79.1) '@nuxt/telemetry': 2.1.8(rollup@2.79.1) '@nuxt/ui-templates': 1.0.0 - '@nuxt/vite-builder': 3.0.0(@types/node@18.15.11)(typescript@4.8.4)(vue@3.2.45) + '@nuxt/vite-builder': 3.0.0(@types/node@18.15.11)(typescript@4.8.4)(vue@3.3.0-alpha.11) '@unhead/ssr': 1.0.0 '@vue/reactivity': 3.2.45 '@vue/shared': 3.2.45 - '@vueuse/head': 1.0.15(vue@3.2.45) + '@vueuse/head': 1.0.15(vue@3.3.0-alpha.11) chokidar: 3.5.3 cookie-es: 0.5.0 defu: 6.1.1 @@ -5706,10 +5698,10 @@ packages: unimport: 1.0.1(rollup@2.79.1) unplugin: 1.0.0 untyped: 1.0.0 - vue: 3.2.45 + vue: 3.3.0-alpha.11 vue-bundle-renderer: 1.0.0 vue-devtools-stub: 0.1.0 - vue-router: 4.1.6(vue@3.2.45) + vue-router: 4.1.6(vue@3.3.0-alpha.11) transitivePeerDependencies: - '@types/node' - bufferutil @@ -6414,15 +6406,6 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.19: - resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.4 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /postcss@8.4.21: resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} engines: {node: ^10 || ^12 || >=14} @@ -7867,7 +7850,7 @@ packages: dependencies: '@types/node': 18.15.11 esbuild: 0.15.10 - postcss: 8.4.19 + postcss: 8.4.21 resolve: 1.22.1 rollup: 2.79.1 optionalDependencies: @@ -7913,15 +7896,15 @@ packages: dependencies: '@docsearch/css': 3.3.3 '@docsearch/js': 3.3.3(@algolia/client-search@4.17.0) - '@vitejs/plugin-vue': 4.1.0(vite@4.2.1)(vue@3.2.47) + '@vitejs/plugin-vue': 4.1.0(vite@4.2.1)(vue@3.3.0-alpha.11) '@vue/devtools-api': 6.5.0 - '@vueuse/core': 10.0.2(vue@3.2.47) + '@vueuse/core': 10.0.2(vue@3.3.0-alpha.11) body-scroll-lock: 4.0.0-beta.0 mark.js: 8.11.1 minisearch: 6.0.1 shiki: 0.14.1 vite: 4.2.1(@types/node@18.15.11) - vue: 3.2.47 + vue: 3.3.0-alpha.11 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -8088,23 +8071,23 @@ packages: vue-demi: 0.14.0(@vue/composition-api@1.4.0)(vue@3.2.47) dev: false - /vue-router@4.1.6(vue@3.2.45): + /vue-router@4.1.6(vue@3.2.47): resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.4.5 - vue: 3.2.45 - dev: true + vue: 3.2.47 + dev: false - /vue-router@4.1.6(vue@3.2.47): + /vue-router@4.1.6(vue@3.3.0-alpha.11): resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.4.5 - vue: 3.2.47 - dev: false + vue: 3.3.0-alpha.11 + dev: true /vue-template-compiler@2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} @@ -8124,25 +8107,24 @@ packages: typescript: 4.8.4 dev: true - /vue@3.2.45: - resolution: {integrity: sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==} - dependencies: - '@vue/compiler-dom': 3.2.45 - '@vue/compiler-sfc': 3.2.45 - '@vue/runtime-dom': 3.2.45 - '@vue/server-renderer': 3.2.45(vue@3.2.45) - '@vue/shared': 3.2.45 - dev: true - /vue@3.2.47: resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==} dependencies: '@vue/compiler-dom': 3.2.47 - '@vue/compiler-sfc': 3.2.47 - '@vue/runtime-dom': 3.2.47 - '@vue/server-renderer': 3.2.47(vue@3.2.47) + '@vue/compiler-sfc': 3.3.0-alpha.11 + '@vue/runtime-dom': 3.3.0-alpha.11 + '@vue/server-renderer': 3.3.0-alpha.11(vue@3.2.47) '@vue/shared': 3.2.47 + /vue@3.3.0-alpha.11: + resolution: {integrity: sha512-w6Fhcu181zGhBM5gBgEX+dJSUV4WB+qppWeQk5mDiVeqtxBL4uRnLwxMLmdED7OIGqVhgVjwAjSV5kqkAqJYcw==} + dependencies: + '@vue/compiler-dom': 3.3.0-alpha.11 + '@vue/compiler-sfc': 3.3.0-alpha.11 + '@vue/runtime-dom': 3.3.0-alpha.11 + '@vue/server-renderer': 3.3.0-alpha.11(vue@3.3.0-alpha.11) + '@vue/shared': 3.3.0-alpha.11 + /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: