diff --git a/docs/api/vue-composable.api.md b/docs/api/vue-composable.api.md index ef3ddbb9b..f9cbc7ba3 100644 --- a/docs/api/vue-composable.api.md +++ b/docs/api/vue-composable.api.md @@ -729,9 +729,7 @@ export interface LocalStorageReturn { clear: () => void; remove: () => void; setSync: (sync: boolean) => void; - // (undocumented) - storage: Ref; - // (undocumented) + storage: Ref; supported: boolean; } @@ -1071,6 +1069,14 @@ export interface ScrollResult { scrollTopTo: (y: number) => void; } +// @public (undocumented) +export interface sessionStorageReturn { + clear: () => void; + remove: () => void; + storage: Ref; + supported: boolean; +} + // Warning: (ae-forgotten-export) The symbol "TailwindConfigEmpty" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "ExtractTailwindScreens" needs to be exported by the entry point index.d.ts // @@ -1749,17 +1755,11 @@ export function useLanguage(): { }; // @public (undocumented) -export function useLocalStorage( - key: RefTyped, - defaultValue?: RefTyped, - sync?: boolean -): LocalStorageReturn; - -// @public (undocumented) -export function useLocalStorage( +export function useLocalStorage( key: RefTyped, defaultValue?: RefTyped, - sync?: boolean + sync?: boolean, + useDebounce?: boolean ): LocalStorageReturn; // @public (undocumented) @@ -2169,18 +2169,11 @@ export function useRetry>( ): RetryReturnFactory; // @public (undocumented) -export function useSessionStorage( - key: RefTyped, - defaultValue?: RefTyped, - sync?: boolean -): LocalStorageReturn; - -// @public (undocumented) -export function useSessionStorage( +export function useSessionStorage( key: RefTyped, defaultValue?: RefTyped, - sync?: boolean -): LocalStorageReturn; + useDebounce?: boolean +): sessionStorageReturn; // Warning: (ae-forgotten-export) The symbol "NavigatorShareData" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "ShareReturn" needs to be exported by the entry point index.d.ts @@ -2302,7 +2295,7 @@ export function useWorkerFunction>( export const VERSION: string; // @public (undocumented) -export const VUE_VERSION: "2" | "3"; +export const VUE_VERSION: "2" | "2.7" | "3"; // @public (undocumented) export const VueComposableDevtools: { @@ -2351,7 +2344,7 @@ export interface WebStorage { $watchHandlers: Map; clear(): void; getItem(key: string): Ref | null; - getRef(key: RefTyped): Ref; + getRef(key: RefTyped, useDebounce?: boolean): Ref; key(index: number): string | null; readonly length: number; removeItem(key: string): void; @@ -2401,7 +2394,7 @@ export type WrapRef = T extends Ref ? T : Ref; // Warnings were encountered during analysis: // -// dist/v3/packages/vue-composable/src/validation/validation.d.ts:72:5 - (ae-forgotten-export) The symbol "ToObjectOutput" needs to be exported by the entry point index.d.ts +// src/validation/validation.ts:397:46 - (ae-forgotten-export) The symbol "ToObjectOutput" needs to be exported by the entry point index.d.ts // (No @packageDocumentation comment for this package) ``` diff --git a/jest.config.js b/jest.config.js index 69185f492..e62881904 100644 --- a/jest.config.js +++ b/jest.config.js @@ -7,6 +7,7 @@ module.exports = { __SSR__: true, __VERSION__: pkg.version, __VUE_2__: process.env.VUE === "2", + __VUE_2Dot7__: process.env.VUE === "2.7", __COMMIT__: "none", }, setupFiles: [ diff --git a/package.json b/package.json index dc2d01d8b..9bdf5113d 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,14 @@ "scripts": { "build": "node scripts/build.js", "build:vue2": "yarn build --version=2", + "build:vue2.7": "yarn build --version=2.7", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 1", "release": "node scripts/publish.js", "test": "jest --coverage", "test:watch": "jest --coverage --watch", "test:prod": "npm run lint && npm run test -- --no-cache", "test:vue2": "cross-env VUE=2 yarn test", + "test:vue2.7": "cross-env VUE=2.7 yarn test", "docs:dev": "vuepress dev docs", "docs:build": "vuepress build docs", "lint": "prettier \"packages/**/*.ts\" \"docs/(.vuepress|Examples|composable)/**/*.md\" \"docs/.vuepress/*.js\" \"docs/**/*.vue\" --write" @@ -98,6 +100,7 @@ "vue": "^2.6.14", "vue-server-renderer": "^2.6.14", "vue-template-compiler": "^2.6.14", + "vue2.7": "npm:vue@^2.7.0", "vuepress": "^1.8.2", "yorkie": "^2.0.0", "zlib": "^1.0.5" diff --git a/packages/axios/api-extractor.v2.7.json b/packages/axios/api-extractor.v2.7.json new file mode 100644 index 000000000..1c5085b14 --- /dev/null +++ b/packages/axios/api-extractor.v2.7.json @@ -0,0 +1,7 @@ +{ + "extends": "../../api-extractor.json", + "mainEntryPointFilePath": "./dist/v2.7/packages//src/index.d.ts", + "dtsRollup": { + "untrimmedFilePath": "./dist/v2.7/.d.ts" + } +} \ No newline at end of file diff --git a/packages/axios/package.json b/packages/axios/package.json index 387e8cd26..a8688698a 100644 --- a/packages/axios/package.json +++ b/packages/axios/package.json @@ -60,5 +60,9 @@ "@types/node": "^16.4.7", "@vue/runtime-core": "^3.0.7", "typescript": "^4.2.4" + }, + "peerDependencies": { + "vue": "^3.0.0", + "axios": "^0.22.0" } -} \ No newline at end of file +} diff --git a/packages/axios/src/api.2.7.ts b/packages/axios/src/api.2.7.ts new file mode 100644 index 000000000..041e551b3 --- /dev/null +++ b/packages/axios/src/api.2.7.ts @@ -0,0 +1,18 @@ +/* istanbul ignore file */ + +export { + ref, + unref, + isRef, + Ref, + onMounted, + onUnmounted, + inject, + InjectionKey, + provide, + reactive, + computed, + UnwrapRef, + ComputedRef, + getCurrentInstance, +} from "vue2.7"; diff --git a/packages/cookie/api-extractor.v2.7.json b/packages/cookie/api-extractor.v2.7.json new file mode 100644 index 000000000..1c5085b14 --- /dev/null +++ b/packages/cookie/api-extractor.v2.7.json @@ -0,0 +1,7 @@ +{ + "extends": "../../api-extractor.json", + "mainEntryPointFilePath": "./dist/v2.7/packages//src/index.d.ts", + "dtsRollup": { + "untrimmedFilePath": "./dist/v2.7/.d.ts" + } +} \ No newline at end of file diff --git a/packages/cookie/package.json b/packages/cookie/package.json index fdc287494..33b0c9f62 100644 --- a/packages/cookie/package.json +++ b/packages/cookie/package.json @@ -62,5 +62,10 @@ "@types/node": "^16.4.7", "@vue/runtime-core": "^3.0.7", "typescript": "^4.2.4" + }, + "peerDependencies": { + "vue": "^3.0.0", + "@types/js-cookie": "^2.2.6", + "js-cookie": "^2.2.1" } -} \ No newline at end of file +} diff --git a/packages/cookie/src/api.2.7.ts b/packages/cookie/src/api.2.7.ts new file mode 100644 index 000000000..1a063c897 --- /dev/null +++ b/packages/cookie/src/api.2.7.ts @@ -0,0 +1,3 @@ +/* istanbul ignore file */ + +export { ref, Ref, onMounted, watch } from "vue2.7"; diff --git a/packages/global.d.ts b/packages/global.d.ts index 95275a498..840862f9d 100644 --- a/packages/global.d.ts +++ b/packages/global.d.ts @@ -4,4 +4,5 @@ declare var __JSDOM__: boolean; declare var __COMMIT__: string; declare var __VERSION__: string; declare var __VUE_2__: boolean; +declare var __VUE_2Dot7__: boolean; declare var __SSR__: boolean; diff --git a/packages/vue-composable/api-extractor.v2.7.json b/packages/vue-composable/api-extractor.v2.7.json new file mode 100644 index 000000000..4beacf914 --- /dev/null +++ b/packages/vue-composable/api-extractor.v2.7.json @@ -0,0 +1,7 @@ +{ + "extends": "../../api-extractor.json", + "mainEntryPointFilePath": "./dist/v2.7/packages//src/index.d.ts", + "dtsRollup": { + "untrimmedFilePath": "./dist/v2.7/.d.ts" + } +} \ No newline at end of file diff --git a/packages/vue-composable/package.json b/packages/vue-composable/package.json index 92cc6ae8e..a2321a32c 100644 --- a/packages/vue-composable/package.json +++ b/packages/vue-composable/package.json @@ -52,5 +52,11 @@ "peerDependencies2": { "@vue/composition-api": "^1.0.0-beta.14", "vue": "^2.6.10" + }, + "peerDependencies2.7": { + "vue": "^2.7.0" + }, + "peerDependencies": { + "vue": "^3.0.0" } -} \ No newline at end of file +} diff --git a/packages/vue-composable/scripts/postinstall.js b/packages/vue-composable/scripts/postinstall.js index ef16b16bb..a66a5d17d 100755 --- a/packages/vue-composable/scripts/postinstall.js +++ b/packages/vue-composable/scripts/postinstall.js @@ -73,6 +73,8 @@ if (!Vue || typeof Vue.version !== "string") { console.warn( "[vue-composable] Vue is not detected in the dependencies. Please install Vue first." ); +} else if (Vue.version.startsWith("2.7")) { + switchVersion(2.7); } else if (Vue.version.startsWith("2.")) { const VCA = loadModule("@vue/composition-api"); if (!VCA) { diff --git a/packages/vue-composable/src/api.2.7.ts b/packages/vue-composable/src/api.2.7.ts new file mode 100644 index 000000000..14b21ac35 --- /dev/null +++ b/packages/vue-composable/src/api.2.7.ts @@ -0,0 +1,52 @@ +/* istanbul ignore file */ + +export { + ref, + isRef, + unref, + Ref, + inject, + InjectionKey, + provide, + watch, + reactive, + computed, + getCurrentInstance, + onMounted, + onUnmounted, + onActivated, + onBeforeMount, + onBeforeUnmount, + onDeactivated, + ComputedRef, + toRaw, + UnwrapRef, // Plugin, + customRef, + watchEffect, +} from "vue2.7"; +export { VueConstructor as App } from "vue2.7"; + +import Vue, { PluginFunction } from "vue2.7"; +import { computed, Ref, set } from "vue2.7"; +import { unwrap } from "./utils"; + +export type Plugin = PluginFunction; + +export const vueDelete = (x: any, o: string) => Vue.delete(x, o); +export const vueSet = set; + +// FAKE readonly +export function readonly( + target: T +): T extends Ref ? DeepReadonly : DeepReadonly> { + return computed(() => unwrap(target)) as any; +} + +// FAKE DeepReadonly +export type DeepReadonly = Readonly; + +declare module "vue2.7" { + interface VueConstructor { + provide(key: any, value: any): void; + } +} diff --git a/packages/vue-composable/src/index.ts b/packages/vue-composable/src/index.ts index a9d40553a..d12d57ff7 100644 --- a/packages/vue-composable/src/index.ts +++ b/packages/vue-composable/src/index.ts @@ -20,5 +20,9 @@ export * from "./dom"; export const VERSION = __VERSION__; // istanbul ignore next -export const VUE_VERSION: "2" | "3" = __VUE_2__ ? "2" : "3"; +export const VUE_VERSION: "2" | "2.7" | "3" = __VUE_2Dot7__ + ? "2.7" + : __VUE_2__ + ? "2" + : "3"; export const COMMIT = __COMMIT__; diff --git a/packages/vue-composable/src/web/pageVisibility.ts b/packages/vue-composable/src/web/pageVisibility.ts index a4354bcb2..aa4720a51 100644 --- a/packages/vue-composable/src/web/pageVisibility.ts +++ b/packages/vue-composable/src/web/pageVisibility.ts @@ -1,7 +1,7 @@ import { ref, Ref } from "../api"; import { isClient, PASSIVE_EV } from "../utils"; -let visibility: Ref | undefined = undefined; +let visibility: Ref | undefined = undefined; let hidden: Ref | undefined = undefined; export function usePageVisibility() { @@ -21,11 +21,11 @@ export function usePageVisibility() { PASSIVE_EV ); } else { - visibility = ref("visible"); + visibility = ref("visible"); } } return { visibility, - hidden + hidden, }; } diff --git a/rollup.config.js b/rollup.config.js index bd588ab9e..d00788a13 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -213,6 +213,7 @@ function createReplacePlugin( : "'production'", __VUE_2__: process.env.VUE_VERSION === "2", + __VUE_2Dot7__: process.env.VUE_VERSION === "2.7", }, }); } diff --git a/scripts/build.js b/scripts/build.js index 00ef5bc6c..d1e0b6646 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -37,7 +37,7 @@ async function buildAll(targets, targetVersion = version) { } async function build(target, targetVersion) { - assert([2, 3].includes(targetVersion)); + assert([2, 2.7, 3].includes(targetVersion)); const mainPkg = require(path.resolve("package.json")); @@ -59,7 +59,7 @@ async function build(target, targetVersion) { pkg.dependencies && pkg.dependencies["vue-composable"] ? { ...pkg.dependencies, - "vue-composable": `^${mainPkg.version}` + "vue-composable": `^${mainPkg.version}`, } : pkg.dependencies; @@ -91,10 +91,10 @@ async function build(target, targetVersion) { buildTypes ? `TYPES:true` : ``, prodOnly ? `PROD_ONLY:true` : ``, `VERSION:${mainPkg.version}`, - `VUE_VERSION:${targetVersion}` + `VUE_VERSION:${targetVersion}`, ] .filter(Boolean) - .join(",") + .join(","), ], { stdio: "inherit" } ); @@ -116,19 +116,18 @@ async function build(target, targetVersion) { // build types const { Extractor, - ExtractorConfig + ExtractorConfig, } = require("@microsoft/api-extractor"); const extractorConfigPath = path.resolve( pkgDir, `api-extractor.v${targetVersion}.json` ); - const extractorConfig = ExtractorConfig.loadFileAndPrepare( - extractorConfigPath - ); + const extractorConfig = + ExtractorConfig.loadFileAndPrepare(extractorConfigPath); const result = Extractor.invoke(extractorConfig, { localBuild: true, - showVerboseMessages: true + showVerboseMessages: true, }); if (result.succeeded) { @@ -137,7 +136,7 @@ async function build(target, targetVersion) { const dtsPath = path.resolve(pkgDir, pkg.types); const existing = await fs.readFile(dtsPath, "utf-8"); const toAdd = await Promise.all( - pkg.buildOptions.dts.map(file => { + pkg.buildOptions.dts.map((file) => { return fs.readFile(path.resolve(pkgDir, file), "utf-8"); }) ); @@ -181,7 +180,7 @@ function checkAllSizes(targets) { console.log(); } -const resolvePkgDir = target => path.resolve(`packages/${target}`); +const resolvePkgDir = (target) => path.resolve(`packages/${target}`); function checkSize(target) { const pkgDir = path.resolve(`packages/${target}`); @@ -202,7 +201,7 @@ function checkSize(target) { } async function apiRename(target, targetVersion) { - assert([2, 3].includes(targetVersion)); + assert([2, 2.7, 3].includes(targetVersion)); const pkgDir = path.resolve(`packages/${target}`); // await fs.rename(`${pkgDir}/src/api.ts`, `${pkgDir}/src/api.N.ts`); @@ -214,7 +213,7 @@ async function apiRename(target, targetVersion) { const restore = async () => { await fs.copy(`${pkgDir}/src/api.3.ts`, `${pkgDir}/src/api.ts`, { - overwrite: true + overwrite: true, }); // await fs.rename(`${pkgDir}/src/api.N.ts`, `${pkgDir}/src/api.ts`); }; @@ -229,7 +228,7 @@ async function removeFiles(from) { } const files = await fs.readdir(from); await Promise.all( - files.map(async x => { + files.map(async (x) => { const fp = path.join(from, x); const s = await fs.lstat(fp); if (!s.isFile()) return Promise.resolve(); @@ -245,7 +244,7 @@ async function copyFolder(from, to) { } const files = await fs.readdir(from); await Promise.all( - files.map(async x => { + files.map(async (x) => { const fp = path.join(from, x); const s = await fs.lstat(fp); if (!s.isFile()) return Promise.resolve(); diff --git a/yarn.lock b/yarn.lock index d2d434511..5caa94c85 100644 --- a/yarn.lock +++ b/yarn.lock @@ -270,6 +270,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== +"@babel/parser@^7.18.4": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.0.tgz#497fcafb1d5b61376959c1c338745ef0577aa02c" + integrity sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw== + "@babel/plugin-proposal-async-generator-functions@^7.13.5": version "7.13.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.5.tgz#69e3fbb9958949b09036e27b26eba1aafa1ba3db" @@ -1631,6 +1636,15 @@ "@vue/compiler-core" "3.2.20" "@vue/shared" "3.2.20" +"@vue/compiler-sfc@2.7.10": + version "2.7.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-2.7.10.tgz#3fe08e780053a3bbf41328c65ae5dfdee0385206" + integrity sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q== + dependencies: + "@babel/parser" "^7.18.4" + postcss "^8.4.14" + source-map "^0.6.1" + "@vue/compiler-sfc@^3.1.5": version "3.2.20" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.20.tgz#2d7668e76f066c566dd7c09c15c9acce4e876e0a" @@ -3961,6 +3975,11 @@ csstype@^2.6.8: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.18.tgz#980a8b53085f34af313410af064f2bd241784218" integrity sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ== +csstype@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" + integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -7692,6 +7711,11 @@ nanoid@^3.1.28: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -8328,6 +8352,11 @@ picocolors@^0.2.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + picomatch@^2.0.4, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" @@ -8773,6 +8802,15 @@ postcss@^8.1.10: picocolors "^0.2.1" source-map-js "^0.6.2" +postcss@^8.4.14: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -9893,6 +9931,11 @@ source-map-js@^0.6.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -11105,6 +11148,14 @@ vue-template-es2015-compiler@^1.9.0: resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== +"vue2.7@npm:vue@^2.7.0": + version "2.7.10" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.10.tgz#ae516cc6c88e1c424754468844218fdd5e280f40" + integrity sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg== + dependencies: + "@vue/compiler-sfc" "2.7.10" + csstype "^3.1.0" + vue@^2.6.10, vue@^2.6.14: version "2.6.14" resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235"