feat(plugin-page-collection): 新增 plugin-netlify-functions 使用示例插件

This commit is contained in:
pengzhanbo 2022-05-11 02:16:50 +08:00
parent edf54568ea
commit 10af20343a
21 changed files with 711 additions and 37 deletions

View File

@ -26,6 +26,7 @@
"esbuild",
"gsap",
"iarna",
"leancloud",
"nprogress",
"pnpm",
"portfinder",

3
docs/.env Normal file
View File

@ -0,0 +1,3 @@
LEAN_CLOUD_APP_ID='ffJFpeMv0Rrt8bmTepTymbjc-MdYXbMMI'
LEAN_CLOUD_APP_KEY='ggObpE4NSp31bK2dAE9F7vc2'
LEAN_CLOUD_MASTER_KEY='9NI6pBUrFtvMSAtezpBQOD6G'

View File

@ -15,6 +15,8 @@
"@vuepress/client": "2.0.0-beta.43",
"@vuepress/utils": "2.0.0-beta.43",
"anywhere": "^1.5.0",
"leancloud-storage": "^4.12.2",
"sass": "^1.49.9",
"sass-loader": "^12.6.0",
"vue": "^3.2.33"
}

View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (C) 2021 - PRESENT by pengzhanbo
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@ -0,0 +1,17 @@
# `@vuepress-plume/vuepress-plugin-page-collection`
## Install
```
yarn add @vuepress-plume/vuepress-plugin-page-collection
```
## Usage
``` js
// .vuepress/config.js
module.exports = {
//...
plugins: [
pageCollectionPlugin()
]
// ...
}
```

View File

@ -0,0 +1,48 @@
{
"name": "@vuepress-plume/vuepress-plugin-page-collection",
"version": "1.0.0-beta.31",
"description": "The Plugin for VuePres 2",
"homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme",
"bugs": {
"url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/pengzhanbo/vuepress-theme-plume.git"
},
"license": "MIT",
"author": "pengzhanbo <volodymyr@foxmail.com>",
"main": "lib/node/index.js",
"files": [
"lib"
],
"scripts": {
"build": "pnpm run clean && pnpm run copy && pnpm run ts",
"clean": "rimraf lib *.tsbuildinfo",
"copy": "cpx \"src/**/*.{d.ts,vue,css,scss,jpg,png}\" lib",
"copy:watch": "cpx \"src/**/*.{d.ts,vue,css,scss,jpg,png}\" lib -w",
"dev": "concurrently \"pnpm copy:watch\" \"pnpm ts:watch\"",
"ts": "tsc -b tsconfig.build.json",
"ts:watch": "tsc -b tsconfig.build.json --watch"
},
"dependencies": {
"@netlify/functions": "^1.0.0",
"@vuepress-plume/vuepress-plugin-netlify-functions": "workspace:*",
"@vuepress/client": "2.0.0-beta.43",
"@vuepress/core": "2.0.0-beta.43",
"@vuepress/shared": "2.0.0-beta.43",
"@vuepress/utils": "2.0.0-beta.43",
"leancloud-storage": "^4.12.2",
"vue": "^3.2.33",
"vue-router": "^4.0.14"
},
"publishConfig": {
"access": "public"
},
"keyword": [
"VuePress",
"vuepress plugin",
"pageCollection",
"vuepress-plugin-plugin-page-collection"
]
}

View File

@ -0,0 +1,6 @@
import { defineClientAppEnhance } from '@vuepress/client'
import Collection from './components/PageCollection'
export default defineClientAppEnhance(({ app }) => {
app.component('PageCollection', Collection)
})

View File

@ -0,0 +1,17 @@
import { defineComponent, h } from 'vue'
import { usePageCollection } from '../composables'
export default defineComponent({
name: 'PageCollection',
setup() {
const collection = usePageCollection()
return () =>
h(
'span',
{
class: 'page-collection',
},
`阅读数:${collection.visitCount}`
)
},
})

View File

@ -0,0 +1 @@
export * from './usePageCollection'

View File

@ -0,0 +1,52 @@
import { onMounted, reactive } from 'vue'
import { useRoute } from 'vue-router'
declare const __COLLECTION_PROXY_PREFIX__: string
const prefix = __COLLECTION_PROXY_PREFIX__
interface PageCollection {
visitCount: number
}
interface ResponseData {
code: number
result: Record<string, any>
}
const fetchCollection = async (url: string): Promise<PageCollection> => {
const response = await fetch(`${prefix}/page_collection`, {
method: 'POST',
headers: {
'content-type': 'application/json',
},
body: JSON.stringify({ url }),
})
const result = (await response.json()) as unknown as ResponseData
if (result.code === 200) {
return (result.result || {}) as PageCollection
} else {
return {
visitCount: 0,
}
}
}
export const usePageCollection = (): PageCollection => {
const collection = reactive({
visitCount: 0,
})
const route = useRoute()
const getPageCollection = async (url: string): Promise<void> => {
const { visitCount } = await fetchCollection(url)
collection.visitCount = visitCount
}
onMounted(() => {
// why ? mounted 比 router enter 更早
setTimeout(async () => {
await getPageCollection(route.path)
}, 0)
})
return collection
}

View File

@ -0,0 +1,64 @@
import type { Handler } from '@netlify/functions'
import * as lean from 'leancloud-storage'
lean.init({
appId: process.env.LEAN_CLOUD_APP_ID || '',
appKey: process.env.LEAN_CLOUD_APP_KEY || '',
masterKey: process.env.LEAN_CLOUD_MASTER_KEY || '',
})
interface ResponseRes {
statusCode: number
body?: string
message?: string
}
const response = (
code: number,
message: string,
data?: Record<string, any>
): ResponseRes => {
return {
statusCode: 200,
body: JSON.stringify({
code,
result: data || '',
message,
}),
}
}
const successRes = (data: Record<string, any>): ResponseRes => {
return response(200, 'success', data)
}
const errorRes = (message: string, code = 500): ResponseRes => {
return response(code, message)
}
export const handler: Handler = async (event, context) => {
const { url } = JSON.parse(event.body || '') || {}
if (!url) {
return errorRes('params [url] not found')
}
const query = new lean.Query('Page')
const Page = lean.Object.extend('Page')
try {
query.equalTo('url', url)
let current = await query.first()
if (current) {
current.set('visitCount', current.get('visitCount') + 1)
} else {
current = new Page()
current.set('url', url)
current.increment('visitCount', 1)
}
current = await current.save()
return successRes({
visitCount: current.get('visitCount'),
})
} catch (e: any) {
return errorRes(e.message, e.code || e.status || e.statusCode)
}
}

View File

@ -0,0 +1,6 @@
import { pageCollectionPlugin } from './plugin'
export * from './plugin'
export * from '../shared'
export default pageCollectionPlugin

View File

@ -0,0 +1,27 @@
import { useNetlifyFunctionsPlugin } from '@vuepress-plume/vuepress-plugin-netlify-functions'
import type { App, Plugin } from '@vuepress/core'
import { path } from '@vuepress/utils'
import type { PageCollectionOptions } from '../shared'
export const pageCollectionPlugin = (
options: PageCollectionOptions = {}
): Plugin => {
return (app: App) => {
const { proxyPrefix, preparePluginFunctions, generatePluginFunctions } =
useNetlifyFunctionsPlugin(app, {
directory: path.join(__dirname, 'functions'),
})
return {
name: '@vuepress-plume/vuepress-plugin-page-collection',
define: () => ({
__COLLECTION_PROXY_PREFIX__: proxyPrefix,
}),
clientAppEnhanceFiles: path.resolve(
__dirname,
'../client/clientAppEnhance.js'
),
onPrepared: () => preparePluginFunctions(),
onGenerated: () => generatePluginFunctions(),
}
}
}

View File

@ -0,0 +1,3 @@
export interface PageCollectionOptions {
a?: string
}

View File

@ -0,0 +1,12 @@
{
"extends": "../../tsconfig.base.json",
"references": [
{
"path": "./tsconfig.esm.json"
},
{
"path": "./tsconfig.cjs.json"
}
],
"files": []
}

View File

@ -0,0 +1,9 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"module": "CommonJS",
"rootDir": "./src",
"outDir": "./lib"
},
"include": ["./src/node", "./src/shared"]
}

View File

@ -0,0 +1,10 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"module": "ES2020",
"rootDir": "./src",
"outDir": "./lib",
"types": ["@vuepress/client/types"]
},
"include": ["./src/client", "./src/shared"]
}

View File

@ -39,6 +39,7 @@
"@vuepress-plume/vuepress-plugin-baidu-tongji": "workspace:*",
"@vuepress-plume/vuepress-plugin-caniuse": "workspace:*",
"@vuepress-plume/vuepress-plugin-copy-code": "workspace:*",
"@vuepress-plume/vuepress-plugin-page-collection": "workspace:*",
"@vuepress/client": "2.0.0-beta.43",
"@vuepress/core": "2.0.0-beta.43",
"@vuepress/plugin-active-header-links": "2.0.0-beta.43",

View File

@ -30,6 +30,7 @@ const enabledSidebar = computed(() => {
<div class="page-content">
<h1>{{ page.title }}</h1>
<PostMeta :post="page" type="post" border />
<PageCollection />
<Content />
<div class="comment-container">
<Comment :darkmode="isDarkMode" />

View File

@ -1,3 +1,4 @@
import { pageCollectionPlugin } from '@vuepress-plume/vuepress-plugin-page-collection'
import type { PluginConfig } from '@vuepress/core'
import type {
PlumeThemeLocaleOptions,
@ -41,6 +42,7 @@ export const getPlugins = (
resolveSeo(plugins, localeOptions),
resolveThemeData(localeOptions),
resolveBaiduTongji(plugins),
pageCollectionPlugin(),
]
return resolvePlugins
}

445
pnpm-lock.yaml generated
View File

@ -66,8 +66,6 @@ importers:
docs:
specifiers:
'@vuepress-plume/vuepress-plugin-netlify-functions': workspace:*
'@vuepress-plume/vuepress-plugin-visit-count': workspace:*
'@vuepress-plume/vuepress-theme-plume': workspace:*
'@vuepress/bundler-vite': 2.0.0-beta.43
'@vuepress/bundler-webpack': 2.0.0-beta.43
@ -75,19 +73,21 @@ importers:
'@vuepress/client': 2.0.0-beta.43
'@vuepress/utils': 2.0.0-beta.43
anywhere: ^1.5.0
leancloud-storage: ^4.12.2
sass: ^1.49.9
sass-loader: ^12.6.0
vue: ^3.2.33
dependencies:
'@vuepress-plume/vuepress-plugin-netlify-functions': link:../packages/plugin-netlify-functions
'@vuepress-plume/vuepress-plugin-visit-count': link:../packages/plugin-visit-count
'@vuepress-plume/vuepress-theme-plume': link:../packages/theme
'@vuepress/bundler-vite': 2.0.0-beta.43
'@vuepress/bundler-vite': 2.0.0-beta.43_sass@1.51.0
'@vuepress/bundler-webpack': 2.0.0-beta.43
'@vuepress/cli': 2.0.0-beta.43
'@vuepress/client': 2.0.0-beta.43
'@vuepress/utils': 2.0.0-beta.43
anywhere: 1.6.0
sass-loader: 12.6.0
leancloud-storage: 4.12.2
sass: 1.51.0
sass-loader: 12.6.0_sass@1.51.0
vue: 3.2.33
packages/plugin-baidu-tongji:
@ -163,17 +163,27 @@ importers:
netlify-cli: 10.3.0
portfinder: 1.0.28
packages/plugin-visit-count:
packages/plugin-page-collection:
specifiers:
'@netlify/functions': ^1.0.0
'@vuepress-plume/vuepress-plugin-netlify-functions': workspace:*
'@vuepress/client': 2.0.0-beta.43
'@vuepress/core': 2.0.0-beta.43
'@vuepress/shared': 2.0.0-beta.43
'@vuepress/utils': 2.0.0-beta.43
leancloud-storage: ^4.12.2
vue: ^3.2.33
vue-router: ^4.0.14
dependencies:
'@netlify/functions': 1.0.0
'@vuepress-plume/vuepress-plugin-netlify-functions': link:../plugin-netlify-functions
'@vuepress/client': 2.0.0-beta.43
'@vuepress/core': 2.0.0-beta.43
'@vuepress/shared': 2.0.0-beta.43
'@vuepress/utils': 2.0.0-beta.43
leancloud-storage: 4.12.2
vue: 3.2.33
vue-router: 4.0.14_vue@3.2.33
packages/theme:
specifiers:
@ -181,6 +191,7 @@ importers:
'@vuepress-plume/vuepress-plugin-baidu-tongji': workspace:*
'@vuepress-plume/vuepress-plugin-caniuse': workspace:*
'@vuepress-plume/vuepress-plugin-copy-code': workspace:*
'@vuepress-plume/vuepress-plugin-page-collection': workspace:*
'@vuepress/client': 2.0.0-beta.43
'@vuepress/core': 2.0.0-beta.43
'@vuepress/plugin-active-header-links': 2.0.0-beta.43
@ -218,6 +229,7 @@ importers:
'@vuepress-plume/vuepress-plugin-baidu-tongji': link:../plugin-baidu-tongji
'@vuepress-plume/vuepress-plugin-caniuse': link:../plugin-caniuse
'@vuepress-plume/vuepress-plugin-copy-code': link:../plugin-copy-code
'@vuepress-plume/vuepress-plugin-page-collection': link:../plugin-page-collection
'@vuepress/client': 2.0.0-beta.43
'@vuepress/core': 2.0.0-beta.43
'@vuepress/plugin-active-header-links': 2.0.0-beta.43
@ -533,6 +545,13 @@ packages:
'@babel/types': 7.17.10
dev: false
/@babel/runtime/7.17.9:
resolution: {integrity: sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.13.9
dev: false
/@babel/template/7.16.7:
resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==}
engines: {node: '>=6.9.0'}
@ -934,6 +953,61 @@ packages:
type-detect: 4.0.8
dev: true
/@leancloud/adapter-types/3.0.0:
resolution: {integrity: sha512-/1l2PWJ6pXizHphBorMN7B0d2YjmxZJf1s+bitvLALt7wBid5qbGpHqGGKE/yRdNlCKwl9FbXG1x5wUFZfQwHQ==}
dev: false
/@leancloud/adapter-types/5.0.0:
resolution: {integrity: sha512-psnPaa4ONaA6X9y9xsjLmJXH+2spySH/YQUz59S0cZUTWVbZaUFwLQyHkv8OzZFixKqs+eV3xnWl7nUxCCCIeg==}
dev: false
/@leancloud/adapter-utils/1.2.2:
resolution: {integrity: sha512-B/bZM6WGN+sxMdZJeTWLAN/Gin00LX0E/M0MoygZhtrgCfCZSz47wgziOq5Fvl6yPifyvYBGaobydhyr7vxjxg==}
dev: false
/@leancloud/adapters-superagent/1.4.2:
resolution: {integrity: sha512-UpawevTXaIIFEpvtW6rm6PKH28i3OCIjgdJUmcFWbI8lezHz6bBznKB9g0aCRX8/c2h6SJThzjgqNlPny8I32g==}
dependencies:
'@leancloud/adapter-types': 5.0.0
'@leancloud/adapter-utils': 1.2.2
'@types/superagent': 4.1.15
superagent: 5.3.1
transitivePeerDependencies:
- supports-color
dev: false
/@leancloud/platform-adapters-browser/1.5.2:
resolution: {integrity: sha512-O7FRG4KvH20tiIP+dUbb7FE7kgkwEZifu7XmSRdPB5yO/+wR61BKykVQggQUdqJE6T9HZVSrqqbWWNqcMdJK6g==}
dependencies:
'@leancloud/adapter-types': 5.0.0
'@leancloud/adapters-superagent': 1.4.2
transitivePeerDependencies:
- supports-color
dev: false
/@leancloud/platform-adapters-node/1.5.2:
resolution: {integrity: sha512-FhvL6u0CXG33M5UCla2Rfja6Rrv8Sj1mrRWCZvI6m5sW4A7RyWFICW8akBL++uHUNP8WDc7szfrBz8TJHQWDcg==}
dependencies:
'@leancloud/adapter-types': 5.0.0
'@leancloud/adapters-superagent': 1.4.2
'@types/ws': 7.4.7
localstorage-memory: 1.0.3
ws: 5.2.3
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
dev: false
/@leancloud/platform-adapters-weapp/1.6.1:
resolution: {integrity: sha512-/Pxj0Zk9829OTQdt1KdfglqVBiOteber8gUzw5Kgjws1+hlPJ7x8x5VZcdPM3lnTh6UsP4f6CkOtS/QOeLu6JA==}
dependencies:
'@leancloud/adapter-types': 5.0.0
'@leancloud/adapter-utils': 1.2.2
event-target-shim: 5.0.1
miniprogram-api-typings: 2.12.0
dev: false
/@leichtgewicht/ip-codec/2.0.3:
resolution: {integrity: sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==}
dev: false
@ -1854,6 +1928,10 @@ packages:
'@types/node': 17.0.31
dev: false
/@types/cookiejar/2.1.2:
resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==}
dev: false
/@types/debug/4.1.7:
resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
dependencies:
@ -2109,6 +2187,13 @@ packages:
'@types/node': 17.0.31
dev: false
/@types/superagent/4.1.15:
resolution: {integrity: sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ==}
dependencies:
'@types/cookiejar': 2.1.2
'@types/node': 17.0.31
dev: false
/@types/trusted-types/2.0.2:
resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==}
dev: false
@ -2116,6 +2201,12 @@ packages:
/@types/webpack-env/1.16.4:
resolution: {integrity: sha512-llS8qveOUX3wxHnSykP5hlYFFuMfJ9p5JvIyCiBgp7WTfl6K5ZcyHj8r8JsN/J6QODkAsRRCLIcTuOCu8etkUw==}
/@types/ws/7.4.7:
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
dependencies:
'@types/node': 17.0.31
dev: false
/@types/ws/8.5.3:
resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==}
dependencies:
@ -2366,7 +2457,7 @@ packages:
vite: ^2.5.10
vue: ^3.2.25
dependencies:
vite: 2.9.8
vite: 2.9.8_sass@1.51.0
vue: 3.2.33
dev: false
@ -2457,7 +2548,7 @@ packages:
resolution: {integrity: sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==}
dev: false
/@vuepress/bundler-vite/2.0.0-beta.43:
/@vuepress/bundler-vite/2.0.0-beta.43_sass@1.51.0:
resolution: {integrity: sha512-bNUanrWymNPex1pJ5HSWqyv8s2bTXkPjXDRppe5tQI2qY7DiL+2hwZfWtlKuLzR6jrEX6CHH/DGbZJdaxR30Wg==}
dependencies:
'@vitejs/plugin-vue': 2.3.2_vite@2.9.8+vue@3.2.33
@ -2469,7 +2560,7 @@ packages:
connect-history-api-fallback: 1.6.0
postcss: 8.4.13
rollup: 2.72.1
vite: 2.9.8
vite: 2.9.8_sass@1.51.0
vue: 3.2.33
vue-router: 4.0.14_vue@3.2.33
transitivePeerDependencies:
@ -3370,6 +3461,13 @@ packages:
resolution: {integrity: sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM=}
dev: false
/ascli/1.0.1:
resolution: {integrity: sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=}
dependencies:
colour: 0.7.1
optjs: 3.2.2
dev: false
/assign-symbols/1.0.0:
resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=}
engines: {node: '>=0.10.0'}
@ -3389,6 +3487,10 @@ packages:
engines: {node: '>=8'}
dev: true
/async-limiter/1.0.1:
resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
dev: false
/async/1.5.2:
resolution: {integrity: sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=}
dev: false
@ -3436,6 +3538,13 @@ packages:
resolution: {integrity: sha512-UIWUlE4TOVPNNj2jjrU39wI4hEYbneUypEqcyRmRFIx5CC2gNdg3rQr+Zh7/3h6egbBvm33TDQjNQKtj9Tk1HA==}
dev: false
/babel-runtime/6.26.0:
resolution: {integrity: sha1-llxwWGaOgrVde/4E/yM3vItWR/4=}
dependencies:
core-js: 2.6.12
regenerator-runtime: 0.11.1
dev: false
/backoff/2.5.0:
resolution: {integrity: sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=}
engines: {node: '>= 0.6'}
@ -3459,6 +3568,11 @@ packages:
pascalcase: 0.1.1
dev: false
/base64-arraybuffer/0.1.5:
resolution: {integrity: sha1-c5JncZI7Whl0etZmqlzUv5xunOg=}
engines: {node: '>= 0.6.0'}
dev: false
/base64-js/1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@ -3684,6 +3798,13 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
/bytebuffer/5.0.1:
resolution: {integrity: sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0=}
engines: {node: '>=0.8'}
dependencies:
long: 3.2.0
dev: false
/bytes/3.0.0:
resolution: {integrity: sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=}
engines: {node: '>= 0.8'}
@ -3803,6 +3924,11 @@ packages:
quick-lru: 4.0.1
dev: true
/camelcase/2.1.1:
resolution: {integrity: sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=}
engines: {node: '>=0.10.0'}
dev: false
/camelcase/5.3.1:
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
engines: {node: '>=6'}
@ -3869,6 +3995,10 @@ packages:
/chardet/0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
/charenc/0.0.2:
resolution: {integrity: sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=}
dev: false
/chart.js/3.7.1:
resolution: {integrity: sha512-8knRegQLFnPQAheZV8MjxIXc5gQEfDFD897BJgv/klO/vtIyFFmgMXrNfgrXpbTr/XbTturxRgxIXx/Y+ASJBA==}
dev: false
@ -4009,6 +4139,14 @@ packages:
/cli-width/2.2.1:
resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==}
/cliui/3.2.0:
resolution: {integrity: sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=}
dependencies:
string-width: 1.0.2
strip-ansi: 3.0.1
wrap-ansi: 2.1.0
dev: false
/cliui/7.0.4:
resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
dependencies:
@ -4109,6 +4247,11 @@ packages:
text-hex: 1.0.0
dev: false
/colour/0.7.1:
resolution: {integrity: sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=}
engines: {node: '>=0.8'}
dev: false
/combined-stream/1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
@ -4486,6 +4629,10 @@ packages:
engines: {node: '>= 0.6'}
dev: false
/cookiejar/2.1.3:
resolution: {integrity: sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==}
dev: false
/copy-descriptor/0.1.1:
resolution: {integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=}
engines: {node: '>=0.10.0'}
@ -4525,6 +4672,12 @@ packages:
webpack: 5.72.0
dev: false
/core-js/2.6.12:
resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
deprecated: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
requiresBuild: true
dev: false
/core-util-is/1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@ -4663,6 +4816,10 @@ packages:
shebang-command: 2.0.0
which: 2.0.2
/crypt/0.0.2:
resolution: {integrity: sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=}
dev: false
/crypto-random-string/2.0.0:
resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
engines: {node: '>=8'}
@ -5389,7 +5546,6 @@ packages:
/decamelize/1.2.0:
resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=}
engines: {node: '>=0.10.0'}
dev: true
/decode-uri-component/0.2.0:
resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=}
@ -6752,6 +6908,19 @@ packages:
resolution: {integrity: sha1-F8dUt5K+7z+maE15z1pHxjxM2jA=}
dev: false
/event-target-shim/5.0.1:
resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
engines: {node: '>=6'}
dev: false
/eventemitter3/2.0.3:
resolution: {integrity: sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=}
dev: false
/eventemitter3/3.1.2:
resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==}
dev: false
/eventemitter3/4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
dev: false
@ -7344,6 +7513,11 @@ packages:
fetch-blob: 3.1.5
dev: false
/formidable/1.2.6:
resolution: {integrity: sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==}
deprecated: 'Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau'
dev: false
/forwarded/0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
@ -8487,6 +8661,11 @@ packages:
p-is-promise: 1.1.0
dev: false
/invert-kv/1.0.0:
resolution: {integrity: sha1-EEqOSqym09jNFXqO+L+rLXo//bY=}
engines: {node: '>=0.10.0'}
dev: false
/ipaddr.js/1.9.1:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
engines: {node: '>= 0.10'}
@ -8906,6 +9085,10 @@ packages:
plist: 3.0.5
dev: false
/javascript-state-machine/2.4.0:
resolution: {integrity: sha1-2L4x7DjySsGhgy8LZy/DzV95yW4=}
dev: false
/javascript-stringify/2.1.0:
resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==}
dev: false
@ -9216,6 +9399,65 @@ packages:
readable-stream: 2.3.7
dev: false
/lcid/1.0.0:
resolution: {integrity: sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=}
engines: {node: '>=0.10.0'}
dependencies:
invert-kv: 1.0.0
dev: false
/leancloud-realtime-plugin-live-query/1.2.0_qa34jk7udl3taecoo2zo34pbau:
resolution: {integrity: sha512-eJooIH8/FyUoozr3Eeby2DpDnmX39m1bfxfxlYPuojkio+i/DLwPD+aTHnRDH6QXJcT6tNTt85RcxVR/Txg98Q==}
peerDependencies:
leancloud-realtime: ^3.5.0 || ^4.0.0-beta.2 || ^5.0.0-alpha.2
dependencies:
leancloud-realtime: 5.0.0-rc.7
dev: false
/leancloud-realtime/5.0.0-rc.7:
resolution: {integrity: sha512-T5D12cvONg/eLlMKO+J31CdolM0ydgCnRpcTwWaCq1KrboROOvwgovKQpfeSKm4MxKNIio5gEKf41xAbE3K5dA==}
dependencies:
'@babel/runtime': 7.17.9
'@leancloud/adapter-types': 3.0.0
'@leancloud/platform-adapters-browser': 1.5.2
'@leancloud/platform-adapters-node': 1.5.2
'@leancloud/platform-adapters-weapp': 1.6.1
base64-arraybuffer: 0.1.5
debug: 3.2.7
eventemitter3: 3.1.2
javascript-state-machine: 2.4.0
lodash: 4.17.21
promise-timeout: 1.3.0
protobufjs: 5.0.3
uuid: 3.4.0
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
dev: false
/leancloud-storage/4.12.2:
resolution: {integrity: sha512-GsyzkNufQoZ5f75vt3tgwhkhfxQ2ZR88Kq3Kt6HoWtsY13+L0Y6IBmGcLsNvN4NSKB2Qd01GNk2m9b9KFELHlA==}
dependencies:
'@leancloud/adapter-types': 5.0.0
'@leancloud/platform-adapters-browser': 1.5.2
'@leancloud/platform-adapters-node': 1.5.2
'@leancloud/platform-adapters-weapp': 1.6.1
babel-runtime: 6.26.0
debug: 3.2.7
eventemitter3: 2.0.3
leancloud-realtime: 5.0.0-rc.7
leancloud-realtime-plugin-live-query: 1.2.0_qa34jk7udl3taecoo2zo34pbau
md5: 2.3.0
promise-timeout: 1.3.0
underscore: 1.13.3
uuid: 3.4.0
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
dev: false
/leven/3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
@ -9388,6 +9630,10 @@ packages:
json5: 2.2.1
dev: false
/localstorage-memory/1.0.3:
resolution: {integrity: sha512-t9P8WB6DcVttbw/W4PIE8HOqum8Qlvx5SjR6oInwR9Uia0EEmyUeBh7S+weKByW+l/f45Bj4L/dgZikGFDM6ng==}
dev: false
/locate-path/2.0.0:
resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=}
engines: {node: '>=4'}
@ -9565,6 +9811,11 @@ packages:
triple-beam: 1.3.0
dev: false
/long/3.2.0:
resolution: {integrity: sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=}
engines: {node: '>=0.6'}
dev: false
/longest/2.0.1:
resolution: {integrity: sha1-eB4YMpaqlPbU2RbcM10NF676I/g=}
engines: {node: '>=0.10.0'}
@ -9723,6 +9974,14 @@ packages:
blueimp-md5: 2.19.0
dev: false
/md5/2.3.0:
resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}
dependencies:
charenc: 0.0.2
crypt: 0.0.2
is-buffer: 1.1.6
dev: false
/mdn-data/2.0.23:
resolution: {integrity: sha512-IonVb7pfla2U4zW8rc7XGrtgq11BvYeCxWN8HS+KFBnLDE7XDK9AAMVhRuG6fj9BBsjc69Fqsp6WEActEdNTDQ==}
dev: false
@ -9888,6 +10147,12 @@ packages:
hasBin: true
dev: false
/mime/2.6.0:
resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
engines: {node: '>=4.0.0'}
hasBin: true
dev: false
/mimic-fn/1.2.0:
resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==}
engines: {node: '>=4'}
@ -9975,6 +10240,10 @@ packages:
yallist: 4.0.0
dev: false
/miniprogram-api-typings/2.12.0:
resolution: {integrity: sha512-ibvbqeslVFur0IAvTxLMvsbtvVcMo6gwvOnj0YZHV7aeDLu091VQRrETT2QuiG9P6aZWRcxeNGJChRKVPCp9VQ==}
dev: false
/minizlib/1.3.3:
resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==}
dependencies:
@ -10741,6 +11010,10 @@ packages:
word-wrap: 1.2.3
dev: true
/optjs/3.2.2:
resolution: {integrity: sha1-aabOicRCpEQDFBrS+bNwvVu29O4=}
dev: false
/ora/5.4.1:
resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
engines: {node: '>=10'}
@ -10760,6 +11033,13 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
/os-locale/1.4.0:
resolution: {integrity: sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=}
engines: {node: '>=0.10.0'}
dependencies:
lcid: 1.0.0
dev: false
/os-name/5.0.1:
resolution: {integrity: sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@ -11486,6 +11766,10 @@ packages:
/process-nextick-args/2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
/promise-timeout/1.3.0:
resolution: {integrity: sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg==}
dev: false
/prompts/2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
@ -11494,6 +11778,17 @@ packages:
sisteransi: 1.0.5
dev: true
/protobufjs/5.0.3:
resolution: {integrity: sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA==}
engines: {node: '>=0.8'}
hasBin: true
dependencies:
ascli: 1.0.1
bytebuffer: 5.0.1
glob: 7.2.0
yargs: 3.32.0
dev: false
/proxy-addr/2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
@ -11723,6 +12018,14 @@ packages:
strip-indent: 3.0.0
dev: true
/regenerator-runtime/0.11.1:
resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==}
dev: false
/regenerator-runtime/0.13.9:
resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==}
dev: false
/regex-not/1.0.2:
resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
engines: {node: '>=0.10.0'}
@ -11987,31 +12290,6 @@ packages:
/safer-buffer/2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
/sass-loader/12.6.0:
resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==}
engines: {node: '>= 12.13.0'}
peerDependencies:
fibers: '>= 3.1.0'
node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
sass: ^1.3.0
sass-embedded: '*'
webpack: ^5.0.0
peerDependenciesMeta:
fibers:
optional: true
node-sass:
optional: true
sass:
optional: true
sass-embedded:
optional: true
webpack:
optional: true
dependencies:
klona: 2.0.5
neo-async: 2.6.2
dev: false
/sass-loader/12.6.0_sass@1.51.0:
resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==}
engines: {node: '>= 12.13.0'}
@ -12776,6 +13054,26 @@ packages:
dependencies:
minimist: 1.2.6
/superagent/5.3.1:
resolution: {integrity: sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==}
engines: {node: '>= 7.0.0'}
deprecated: Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at <https://github.com/visionmedia/superagent/releases>.
dependencies:
component-emitter: 1.3.0
cookiejar: 2.1.3
debug: 4.3.4
fast-safe-stringify: 2.1.1
form-data: 3.0.1
formidable: 1.2.6
methods: 1.1.2
mime: 2.6.0
qs: 6.10.3
readable-stream: 3.6.0
semver: 7.3.7
transitivePeerDependencies:
- supports-color
dev: false
/supports-color/0.2.0:
resolution: {integrity: sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=}
engines: {node: '>=0.10.0'}
@ -13367,6 +13665,10 @@ packages:
through: 2.3.8
dev: false
/underscore/1.13.3:
resolution: {integrity: sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==}
dev: false
/union-value/1.0.1:
resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
engines: {node: '>=0.10.0'}
@ -13497,7 +13799,6 @@ packages:
resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
hasBin: true
dev: true
/uuid/8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
@ -13552,6 +13853,32 @@ packages:
rollup: 2.72.1
optionalDependencies:
fsevents: 2.3.2
dev: true
/vite/2.9.8_sass@1.51.0:
resolution: {integrity: sha512-zsBGwn5UT3YS0NLSJ7hnR54+vUKfgzMUh/Z9CxF1YKEBVIe213+63jrFLmZphgGI5zXwQCSmqIdbPuE8NJywPw==}
engines: {node: '>=12.2.0'}
hasBin: true
peerDependencies:
less: '*'
sass: '*'
stylus: '*'
peerDependenciesMeta:
less:
optional: true
sass:
optional: true
stylus:
optional: true
dependencies:
esbuild: 0.14.38
postcss: 8.4.13
resolve: 1.22.0
rollup: 2.72.1
sass: 1.51.0
optionalDependencies:
fsevents: 2.3.2
dev: false
/vue-demi/0.12.5_vue@3.2.33:
resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==}
@ -13969,6 +14296,12 @@ packages:
resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==}
dev: false
/window-size/0.1.4:
resolution: {integrity: sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=}
engines: {node: '>= 0.10.0'}
hasBin: true
dev: false
/windows-release/5.0.1:
resolution: {integrity: sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@ -14009,6 +14342,14 @@ packages:
resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=}
dev: true
/wrap-ansi/2.1.0:
resolution: {integrity: sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=}
engines: {node: '>=0.10.0'}
dependencies:
string-width: 1.0.2
strip-ansi: 3.0.1
dev: false
/wrap-ansi/3.0.1:
resolution: {integrity: sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=}
engines: {node: '>=4'}
@ -14063,6 +14404,20 @@ packages:
signal-exit: 3.0.7
dev: false
/ws/5.2.3:
resolution: {integrity: sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==}
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ^5.0.2
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
dependencies:
async-limiter: 1.0.1
dev: false
/ws/8.6.0:
resolution: {integrity: sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==}
engines: {node: '>=10.0.0'}
@ -14090,6 +14445,10 @@ packages:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
/y18n/3.2.2:
resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==}
dev: false
/y18n/5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
@ -14137,6 +14496,18 @@ packages:
y18n: 5.0.8
yargs-parser: 21.0.1
/yargs/3.32.0:
resolution: {integrity: sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=}
dependencies:
camelcase: 2.1.1
cliui: 3.2.0
decamelize: 1.2.0
os-locale: 1.4.0
string-width: 1.0.2
window-size: 0.1.4
y18n: 3.2.2
dev: false
/yauzl/2.10.0:
resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=}
dependencies: