From a64371bf22391fed8176b0ddd676d438ddb9259c Mon Sep 17 00:00:00 2001
From: zuofenghua <11100776@bbktel.com>
Date: Wed, 28 Jul 2021 17:19:45 +0800
Subject: [PATCH] feat: add useUrlState hook
---
docs/.vitepress/router.js | 1 +
package.json | 6 +-
src/index.ts | 24 +++---
src/useToggle/index.en-US.md | 2 +-
src/useUrlState/demo/demo.vue | 22 ++++++
src/useUrlState/demo/index.ts | 1 +
src/useUrlState/index.en-US.md | 48 ++++++++++++
src/useUrlState/index.ts | 114 +++++++++++++++++++++++++++
src/useUrlState/index.zh-CN.md | 48 ++++++++++++
yarn.lock | 139 +++++++++++++++++++++++++--------
10 files changed, 358 insertions(+), 47 deletions(-)
create mode 100644 src/useUrlState/demo/demo.vue
create mode 100644 src/useUrlState/demo/index.ts
create mode 100644 src/useUrlState/index.en-US.md
create mode 100644 src/useUrlState/index.ts
create mode 100644 src/useUrlState/index.zh-CN.md
diff --git a/docs/.vitepress/router.js b/docs/.vitepress/router.js
index 0fa9624..35886dd 100644
--- a/docs/.vitepress/router.js
+++ b/docs/.vitepress/router.js
@@ -11,6 +11,7 @@ const Router = {
'useInViewport',
],
State: [
+ 'useUrlState',
'useToggle',
'useLocalStorageState',
// 'useLocalforage',
diff --git a/package.json b/package.json
index dc72855..4a3fbd7 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,7 @@
}
},
"scripts": {
- "dev": "vitepress-fc dev docs",
+ "dev": "vitepress-fc dev docs --host",
"build": "vite build && yarn type",
"type": "tsc -d",
"test": "jest",
@@ -45,6 +45,7 @@
"devDependencies": {
"@types/jest": "^25.1.3",
"@types/lodash": "^4.14.159",
+ "@types/qs": "^6.9.7",
"@types/whatwg-fetch": "^0.0.33",
"@typescript-eslint/eslint-plugin": "^4.14.1",
"@typescript-eslint/parser": "^4.14.1",
@@ -68,13 +69,14 @@
"screenfull": "^5.1.0",
"ts-jest": "^25.2.1",
"typescript": "^4.1.5",
- "vitepress-for-component": "^0.14.4",
+ "vitepress-for-component": "^0.14.8",
"vue": "^3.0.1",
"whatwg-fetch": "^3.5.0"
},
"homepage": "https://dewfall123.github.io/ahooks-vue/",
"dependencies": {
"lodash": "^4.17.20",
+ "qs": "^6.10.1",
"vue-demi": "^0.6.0"
},
"peerDependencies": {
diff --git a/src/index.ts b/src/index.ts
index 80a8b0a..dfb6ad8 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,17 +1,19 @@
-export * from './useToggle';
-export * from './useFullscreen';
-export * from './useLocalStorageState';
+export * from './useAxios';
+export * from './useDebounce';
export * from './useDocumentVisibility';
+export * from './useFullscreen';
export * from './useHover';
export * from './useInViewport';
-export * from './useSize';
-export * from './useWorkerFunction';
-export * from './useThrottle';
-export * from './useDebounce';
-export * from './useTable';
export * from './useKeyPress';
+export * from './useLocalforage';
+export * from './useLocalStorageState';
export * from './useOLAP';
-export * from './useRequest';
export * from './usePaginatedRequest';
-export * from './useAxios';
-export * from './useLocalforage';
+export * from './useRequest';
+export * from './useSize';
+export * from './useTable';
+export * from './useThrottle';
+export * from './useToggle';
+export * from './useUrlState';
+export * from './useWorkerFunction';
+
diff --git a/src/useToggle/index.en-US.md b/src/useToggle/index.en-US.md
index a0c97bc..13fb901 100644
--- a/src/useToggle/index.en-US.md
+++ b/src/useToggle/index.en-US.md
@@ -18,7 +18,7 @@ The API is different from [ahooks](https://ahooks.js.org/hooks/state/use-toggle)
+ desc="Accept two parameters, switch between them.">
diff --git a/src/useUrlState/demo/demo.vue b/src/useUrlState/demo/demo.vue
new file mode 100644
index 0000000..92275d2
--- /dev/null
+++ b/src/useUrlState/demo/demo.vue
@@ -0,0 +1,22 @@
+
+
+
{{ state }}
+
+
+
+
+
+
diff --git a/src/useUrlState/demo/index.ts b/src/useUrlState/demo/index.ts
new file mode 100644
index 0000000..ce3efa2
--- /dev/null
+++ b/src/useUrlState/demo/index.ts
@@ -0,0 +1 @@
+export { default } from './demo.vue';
diff --git a/src/useUrlState/index.en-US.md b/src/useUrlState/index.en-US.md
new file mode 100644
index 0000000..9e956e5
--- /dev/null
+++ b/src/useUrlState/index.en-US.md
@@ -0,0 +1,48 @@
+---
+map:
+ path: /use-url-state
+---
+
+# useUrlState
+
+一个同步组件内部状态和 query 参数的 hook。
+
+::: warning
+API 有改动,见[ahooks](https://ahooks.js.org/zh-CN/hooks/state)。
+:::
+
+## Examples
+
+### Basic usage
+
+
+
+
+## API
+
+```typescript
+const state = useUrlState(routerPush, DefaultState, {
+ localStorageKey: 'localStorageKey',
+});
+
+interface UseUrlStateOptions {
+ localStorageKey?: string;
+}
+```
+
+### Params
+
+| Property | Description | Type | Default |
+| ------------ | --------------------------------------------------------------------------------------------------------------------- | --------------- | ------- |
+| routerPushFn | Pass `router.push` | `function` | - |
+| initialState | defaultValue | `S | (() => S)` | - |
+| options | If set the `options.localStorageKey` is set, state will use the state saved in localStorage when url params is empty. | UseUrlStateOptions | - |
+
+### Result
+
+| Property | Description | Type |
+| -------- | ----------- | ---- |
+| state | state ref | - |
diff --git a/src/useUrlState/index.ts b/src/useUrlState/index.ts
new file mode 100644
index 0000000..6078bc7
--- /dev/null
+++ b/src/useUrlState/index.ts
@@ -0,0 +1,114 @@
+import qs from 'qs';
+import { Ref, ref, watch } from 'vue-demi';
+import { useLocalStorageState } from '../useLocalStorageState';
+
+export interface UseUrlStateOptions {
+ localStorageKey?: string;
+}
+
+interface UrlState {
+ [key: string]: any;
+}
+
+function encodeParams(value: UrlState) {
+ return qs.stringify(value);
+}
+
+function decodeParams(valueStr: string) {
+ // return JSON.parse(decodeURIComponent(atob(valueStr)));
+ return qs.parse(valueStr, {
+ decoder(str, decoder, charset) {
+ const strWithoutPlus = str.replace(/\+/g, ' ');
+ if (charset === 'iso-8859-1') {
+ // unescape never throws, no try...catch needed:
+ return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
+ }
+
+ if (/^[+-]?\d+(\.\d+)?$/.test(str)) {
+ return parseFloat(str);
+ }
+
+ const keywords: Record = {
+ true: true,
+ false: false,
+ null: null,
+ undefined,
+ };
+ if (str in keywords) {
+ return keywords[str];
+ }
+
+ // utf-8
+ try {
+ return decodeURIComponent(strWithoutPlus);
+ } catch (e) {
+ return strWithoutPlus;
+ }
+ },
+ });
+}
+
+export function useUrlState(
+ routerPushFn: (path: string) => void,
+ initialState?: S | (() => S),
+ options?: UseUrlStateOptions,
+): Ref {
+ const { localStorageKey } = options ?? {};
+
+ const [path, paramsStr] = location.hash.slice(1).split('?');
+
+ const defaultState =
+ (typeof initialState === 'function'
+ ? (initialState as () => S)()
+ : initialState) ?? ({} as S);
+ let state = ref(defaultState) as Ref;
+
+ if (localStorageKey) {
+ state = useLocalStorageState(localStorageKey, defaultState) as Ref;
+ }
+
+ // 初始状态 url > localstorage
+ if (paramsStr) {
+ try {
+ const paramsValue = decodeParams(paramsStr);
+ console.log('解析url结果:');
+ console.log(paramsValue);
+ state.value = {
+ ...defaultState,
+ ...state.value,
+ ...paramsValue,
+ };
+ } catch {
+ state.value = defaultState;
+ }
+ }
+
+ // 去掉多余的key
+ if (initialState && Object.keys(initialState).length) {
+ let newState = { ...initialState } as any;
+ for (const key in newState) {
+ if (key in state.value) {
+ newState[key] = state.value[key];
+ }
+ }
+ state.value = newState;
+ }
+
+ // 把params写到url
+ watch(
+ state,
+ () => {
+ const newParamsStr = encodeParams(state.value);
+
+ routerPushFn(`${path}?${newParamsStr}`);
+ console.log('写url');
+ console.log(`${path}?${newParamsStr}`);
+ },
+ {
+ deep: true,
+ immediate: true,
+ },
+ );
+
+ return state;
+}
diff --git a/src/useUrlState/index.zh-CN.md b/src/useUrlState/index.zh-CN.md
new file mode 100644
index 0000000..6aff236
--- /dev/null
+++ b/src/useUrlState/index.zh-CN.md
@@ -0,0 +1,48 @@
+---
+map:
+ path: /use-url-state
+---
+
+# useUrlState
+
+一个同步组件内部状态和 query 参数的 hook。
+
+::: warning
+API 有改动,见[ahooks](https://ahooks.js.org/zh-CN/hooks/state)。
+:::
+
+## Examples
+
+### 基础用法
+
+
+
+
+## API
+
+```typescript
+const state = useUrlState(routerPush, DefaultState, {
+ localStorageKey: 'localStorageKey',
+});
+
+interface UseUrlStateOptions {
+ localStorageKey?: string;
+}
+```
+
+### Params
+
+| 参数 | 说明 | 类型 | 默认值 |
+| ------------ | ------------------------------------------------------------------------ | ------------------ | ------ |
+| routerPushFn | 一般来说,传 vue-router 的 `router.push`方法就行 | `function` | - |
+| initialState | 默认值 | `S | (() => S)` | - |
+| options | 设置`localStorageKey`的话,若 url 没有参数,会使用存在 localStorage 的值 | UseUrlStateOptions | - |
+
+### Result
+
+| 参数 | 说明 | 类型 |
+| ----- | ------ | ---- |
+| state | 状态值 | - |
diff --git a/yarn.lock b/yarn.lock
index 43eb09b..de81266 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -831,6 +831,11 @@
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f"
integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==
+"@types/qs@^6.9.7":
+ version "6.9.7"
+ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
+ integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
+
"@types/responselike@*":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
@@ -1680,6 +1685,14 @@ cacheable-request@^7.0.1:
normalize-url "^4.1.0"
responselike "^2.0.0"
+call-bind@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+ integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
callsites@^3.0.0, callsites@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -1924,10 +1937,10 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-colorette@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
- integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
+colorette@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
+ integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
@@ -2591,10 +2604,10 @@ error-ex@^1.2.0, error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-esbuild@^0.8.34:
- version "0.8.39"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.39.tgz#18b84a3d56173c55ee8f45bc6c7b5374b0a98ecb"
- integrity sha512-/do5H74a5ChyeKRWfkDh3EpICXpsz6dWTtFFbotb7BlIHvWqnRrZYDb8IBubOHdEtKzuiksilRO19aBtp3/HHQ==
+esbuild@^0.12.8:
+ version "0.12.15"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.15.tgz#9d99cf39aeb2188265c5983e983e236829f08af0"
+ integrity sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw==
escape-goat@^2.0.0:
version "2.1.1"
@@ -3146,6 +3159,11 @@ fsevents@^2.1.2, fsevents@~2.3.1:
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f"
integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==
+fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -3173,6 +3191,15 @@ get-caller-file@^2.0.1:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+get-intrinsic@^1.0.2:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+ integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -3462,6 +3489,11 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+has-symbols@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
+ integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+
has-value@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
@@ -3800,6 +3832,13 @@ is-core-module@^2.1.0:
dependencies:
has "^1.0.3"
+is-core-module@^2.2.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491"
+ integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==
+ dependencies:
+ has "^1.0.3"
+
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -5261,10 +5300,10 @@ mute-stream@0.0.8:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
-nanoid@^3.1.20:
- version "3.1.20"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
- integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
+nanoid@^3.1.23:
+ version "3.1.23"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
+ integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
nanomatch@^1.2.9:
version "1.2.13"
@@ -5490,6 +5529,11 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
+object-inspect@^1.9.0:
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
+ integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
+
object-visit@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
@@ -6003,14 +6047,14 @@ postcss@^7.0.14, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6:
source-map "^0.6.1"
supports-color "^6.1.0"
-postcss@^8.2.1:
- version "8.2.4"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04"
- integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg==
+postcss@^8.3.5:
+ version "8.3.5"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709"
+ integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==
dependencies:
- colorette "^1.2.1"
- nanoid "^3.1.20"
- source-map "^0.6.1"
+ colorette "^1.2.2"
+ nanoid "^3.1.23"
+ source-map-js "^0.6.2"
preact@^10.0.0:
version "10.5.12"
@@ -6119,6 +6163,13 @@ q@^1.5.1:
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
+qs@^6.10.1:
+ version "6.10.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a"
+ integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==
+ dependencies:
+ side-channel "^1.0.4"
+
qs@~6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
@@ -6400,7 +6451,7 @@ resolve@1.1.7:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
-resolve@^1.1.6, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.19.0:
+resolve@^1.1.6, resolve@^1.10.0, resolve@^1.17.0:
version "1.19.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
@@ -6408,6 +6459,14 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.19.0:
is-core-module "^2.1.0"
path-parse "^1.0.6"
+resolve@^1.20.0:
+ version "1.20.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+ integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
+ dependencies:
+ is-core-module "^2.2.0"
+ path-parse "^1.0.6"
+
responselike@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
@@ -6654,6 +6713,15 @@ shellwords@^0.1.1:
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
+side-channel@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+ integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+ dependencies:
+ call-bind "^1.0.0"
+ get-intrinsic "^1.0.2"
+ object-inspect "^1.9.0"
+
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
@@ -6729,6 +6797,11 @@ sort-keys@^1.0.0:
dependencies:
is-plain-obj "^1.0.0"
+source-map-js@^0.6.2:
+ version "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-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"
@@ -7569,22 +7642,22 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
-vite@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/vite/-/vite-2.0.1.tgz#348fc5c0de510aa90bd01ecf87df210ce741b38e"
- integrity sha512-x7ZfikjNs+6n4cdvwb9L5r5xBCdjmtmHFHaI4JVR3nAkJbMCK/dynfDWky8/NseZ9Ncz1jVxTQ/Bcf+n1ps1Ww==
+vite@^2.4.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-2.4.2.tgz#07d00615775c808530bc9f65641062b349b67929"
+ integrity sha512-2MifxD2I9fjyDmmEzbULOo3kOUoqX90A58cT6mECxoVQlMYFuijZsPQBuA14mqSwvV3ydUsqnq+BRWXyO9Qa+w==
dependencies:
- esbuild "^0.8.34"
- postcss "^8.2.1"
- resolve "^1.19.0"
+ esbuild "^0.12.8"
+ postcss "^8.3.5"
+ resolve "^1.20.0"
rollup "^2.38.5"
optionalDependencies:
- fsevents "~2.3.1"
+ fsevents "~2.3.2"
-vitepress-for-component@^0.14.4:
- version "0.14.4"
- resolved "https://registry.yarnpkg.com/vitepress-for-component/-/vitepress-for-component-0.14.4.tgz#6dee452d2740464847976bf5026e1415f2a7beee"
- integrity sha512-k+o12vEMmERp4UwOwEjyIuzuXI6Kqql/5xZn5lyjg3ODQI8CyMyuRjd+7XUISUOI/CQx9GCasmQ9O7RCeDml6g==
+vitepress-for-component@^0.14.8:
+ version "0.14.8"
+ resolved "https://registry.yarnpkg.com/vitepress-for-component/-/vitepress-for-component-0.14.8.tgz#b3ab5f089062c76bde31d8e7fa35485376e22019"
+ integrity sha512-DxtB4tTg9Ck7ZaDSOzEG/tIbk0ymfDB86/F5Ne8SqR3FxNE2nF4gcIVFs0nbG0HmiWWZBP+mR/Ek4GYAOyK0mQ==
dependencies:
"@docsearch/css" "^1.0.0-alpha.28"
"@docsearch/js" "^1.0.0-alpha.28"
@@ -7616,7 +7689,7 @@ vitepress-for-component@^0.14.4:
sirv "^1.0.11"
slash "^3.0.0"
stylus "^0.54.8"
- vite "^2.0.1"
+ vite "^2.4.1"
vue "^3.0.5"
vue-demi@^0.6.0: