From bb82ade8cfe939676bd22f2db324a647e71234e8 Mon Sep 17 00:00:00 2001 From: ALIANG <2650321653@qq.com> Date: Thu, 18 Jul 2024 18:29:19 +0800 Subject: [PATCH] feat: official-account (#1348) Reviewed-on: https://git.daoyoucloud.com/daoyoucloud/tachybase/pulls/1348 Reviewed-by: sealday Co-authored-by: ALIANG <2650321653@qq.com> Co-committed-by: ALIANG <2650321653@qq.com> --- packages/core/resourcer/src/utils.ts | 2 +- packages/core/server/src/helper.ts | 1 + .../plugin-wechat-official-account/.npmignore | 2 + .../plugin-wechat-official-account/README.md | 1 + .../client.d.ts | 2 + .../plugin-wechat-official-account/client.js | 1 + .../package.json | 19 ++ .../server.d.ts | 2 + .../plugin-wechat-official-account/server.js | 1 + .../src/client/index.tsx | 17 ++ .../src/index.ts | 2 + .../src/server/collections/.gitkeep | 0 .../src/server/index.ts | 1 + .../src/server/plugin.ts | 216 ++++++++++++++++++ pnpm-lock.yaml | 186 ++++++++------- 15 files changed, 370 insertions(+), 83 deletions(-) create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/.npmignore create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/README.md create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/client.d.ts create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/client.js create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/package.json create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/server.d.ts create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/server.js create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/src/client/index.tsx create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/src/index.ts create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/src/server/collections/.gitkeep create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/src/server/index.ts create mode 100644 packages/plugins/@tachybase/plugin-wechat-official-account/src/server/plugin.ts diff --git a/packages/core/resourcer/src/utils.ts b/packages/core/resourcer/src/utils.ts index ed20c6569..ff0b329b8 100644 --- a/packages/core/resourcer/src/utils.ts +++ b/packages/core/resourcer/src/utils.ts @@ -183,7 +183,7 @@ export function parseRequest(request: ParseRequest, options: ParseOptions = {}): } if (params.resourceName) { - const [resourceName, actionName] = params.resourceName.split(':'); + const [resourceName, actionName] = params.resourceName.split(/:|@/); if (actionName) { params.resourceName = resourceName; params.actionName = actionName; diff --git a/packages/core/server/src/helper.ts b/packages/core/server/src/helper.ts index e01cf17db..25df4beba 100644 --- a/packages/core/server/src/helper.ts +++ b/packages/core/server/src/helper.ts @@ -57,6 +57,7 @@ export function registerMiddlewares(app: Application, options: ApplicationOption const bodyLimit = '10mb'; app.use( bodyParser({ + enableTypes: ['json', 'form', 'xml'], jsonLimit: bodyLimit, formLimit: bodyLimit, textLimit: bodyLimit, diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/.npmignore b/packages/plugins/@tachybase/plugin-wechat-official-account/.npmignore new file mode 100644 index 000000000..65f5e8779 --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/.npmignore @@ -0,0 +1,2 @@ +/node_modules +/src diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/README.md b/packages/plugins/@tachybase/plugin-wechat-official-account/README.md new file mode 100644 index 000000000..fbc1a0b15 --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/README.md @@ -0,0 +1 @@ +# @samples/plugin-replace-page diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/client.d.ts b/packages/plugins/@tachybase/plugin-wechat-official-account/client.d.ts new file mode 100644 index 000000000..6c459cbac --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/client.d.ts @@ -0,0 +1,2 @@ +export * from './dist/client'; +export { default } from './dist/client'; diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/client.js b/packages/plugins/@tachybase/plugin-wechat-official-account/client.js new file mode 100644 index 000000000..b6e3be70e --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/client.js @@ -0,0 +1 @@ +module.exports = require('./dist/client/index.js'); diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/package.json b/packages/plugins/@tachybase/plugin-wechat-official-account/package.json new file mode 100644 index 000000000..bf3ab60f0 --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/package.json @@ -0,0 +1,19 @@ +{ + "name": "@tachybase/plugin-wechat-official-account", + "version": "0.21.73", + "main": "dist/server/index.js", + "dependencies": { + "@types/xml2js": "^0.4.14", + "antd": "^5.18.3", + "body-parser": "^1.20.2", + "koa-bodyparser": "^4.3.0", + "react-router-dom": "^6.11.2", + "xml2js": "^0.6.2" + }, + "peerDependencies": { + "@tachybase/client": "workspace:*", + "@tachybase/plugin-auth": "workspace:*", + "@tachybase/server": "workspace:*", + "@tachybase/test": "workspace:*" + } +} diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/server.d.ts b/packages/plugins/@tachybase/plugin-wechat-official-account/server.d.ts new file mode 100644 index 000000000..c41081ddc --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/server.d.ts @@ -0,0 +1,2 @@ +export * from './dist/server'; +export { default } from './dist/server'; diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/server.js b/packages/plugins/@tachybase/plugin-wechat-official-account/server.js new file mode 100644 index 000000000..972842039 --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/server.js @@ -0,0 +1 @@ +module.exports = require('./dist/server/index.js'); diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/src/client/index.tsx b/packages/plugins/@tachybase/plugin-wechat-official-account/src/client/index.tsx new file mode 100644 index 000000000..3d701fd59 --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/src/client/index.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { Plugin, useRequest } from '@tachybase/client'; + +import { CustomAuthLayout } from './AuthLayout'; + +export class PluginReplacePageClient extends Plugin { + async afterAdd() { + // await this.app.pm.add() + } + + async beforeLoad() {} + + // You can get and modify the app instance here + async load() {} +} + +export default PluginReplacePageClient; diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/src/index.ts b/packages/plugins/@tachybase/plugin-wechat-official-account/src/index.ts new file mode 100644 index 000000000..7e74612df --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/src/index.ts @@ -0,0 +1,2 @@ +export * from './server'; +export { default } from './server'; diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/src/server/collections/.gitkeep b/packages/plugins/@tachybase/plugin-wechat-official-account/src/server/collections/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/src/server/index.ts b/packages/plugins/@tachybase/plugin-wechat-official-account/src/server/index.ts new file mode 100644 index 000000000..b68aea57f --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/src/server/index.ts @@ -0,0 +1 @@ +export { default } from './plugin'; diff --git a/packages/plugins/@tachybase/plugin-wechat-official-account/src/server/plugin.ts b/packages/plugins/@tachybase/plugin-wechat-official-account/src/server/plugin.ts new file mode 100644 index 000000000..383a7dd3d --- /dev/null +++ b/packages/plugins/@tachybase/plugin-wechat-official-account/src/server/plugin.ts @@ -0,0 +1,216 @@ +import crypto from 'crypto'; +import { Plugin } from '@tachybase/server'; + +import axios from 'axios'; +import xml2js from 'xml2js'; + +export class PluginReplacePageServer extends Plugin { + // 从数据库查询cofig表 + async config(): Promise { + const repo = this.app.db.getRepository('config'); + const config = (await repo.findById(1)) as any; + return config.get(); // get()返回具体的data + } + + // 从数据库查询message表 + async message(): Promise { + const repo = this.app.db.getRepository('message'); + const messages = (await repo.find()) as any; + return messages; // 返回数组Type + } + + // 验证Wechat平台的请求签名 + async checkSignature(query) { + const { signature, timestamp, nonce } = query; + const hash = crypto.createHash('sha1'); + const { token } = await this.config(); // 获取配置的token,完成Wechat签名认证 + const str = [token, timestamp, nonce].sort().join(''); + hash.update(str); + const result = hash.digest('hex') === signature; + return result; + } + + // 获取Wechat-Token + async getAccessToken() { + const { appid, appsecret } = await this.config(); // 使用config方法 查询config表 + const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appsecret}`; + + try { + const response = await axios.get(url); + return response.data.access_token; + } catch (error) { + console.error('Error getting access token:', error); + return null; + } + } + + // 创建菜单 + async createCustomMenu() { + const accessToken = await this.getAccessToken(); // 获取Wechat Token + + if (!accessToken) { + console.error('Failed to get access token'); + return; + } + + const url = `https://api.weixin.qq.com/cgi-bin/menu/create?access_token=${accessToken}`; + const menu = { + button: [ + { + type: 'view', + name: '音乐', + url: 'https://music.163.com/', // 确保这个 URL 不超过 256 个字符 + }, + { + type: 'view', + name: '官网', + url: 'https://daoyoucloud.com/', + }, + { + name: '服务', + sub_button: [ + { + type: 'view', + name: '正在开发中...', + url: 'https://daoyoucloud.com/coming-soon', + }, + { + type: 'view', + name: '开发者管理', + url: 'https://lu.dev.daoyoucloud.com/', + }, + ], + }, + ], + }; + + // 若通过accessToken验证,则发送Wechat请求,创建菜单 + try { + const response = await axios.post(url, menu); + console.log('Create menu response:', response.data); + } catch (error) { + console.error('Error creating menu:', error); + } + } + + // Wechat从用户这里获取签名, 若通过则允许后续交互 + async get(ctx) { + const { query } = ctx.request; + if (await this.checkSignature(query)) { + ctx.body = query.echostr; + } else { + ctx.status = 403; + } + } + + // 微信向服务发送post请求 + async post(ctx) { + const { query, body } = ctx.request; + // Wechat从用户这里获取签名 + if (!(await this.checkSignature(query))) { + ctx.status = 403; + ctx.body = 'Forbidden'; + return; + } + + const messages = await this.message(); // 调用当前对象的 message方法 + // const keywordsList = keywords.map(keyword => keyword.keywords).join(`${keywords}`); + const messagesList = messages.map((message, index) => `${index + 1}、 ${message.key}`).join('\n'); + + let replyContent = `您好,欢迎关注道有云网络科技有限公司!您可以输入下面关键字来获取您要了解的信息!\n(输入序号即可):\n${messagesList}`; // 默认回复内容 + + // 解析 POST 请求的 XML 格式消息体 + xml2js.parseString(body, { explicitArray: false }, (err, result) => { + if (err) { + console.error('Error parsing XML:', err); + ctx.status = 500; + ctx.body = 'Server Error'; + return; + } + + const msg = result.xml; + let replyMessage; // 处理用户输入后的回复结果 + + if (msg.MsgType === 'text') { + // 处理文本信息 + + // 匹配用户输入的关键字和message表里的messages字段是否一致,一致则 filter()出一个数组 + const values = messages.filter((message) => msg.Content.includes(message.id)); + if (values?.length > 0) { + // 问号? 异常处理 + replyContent = values[0].value; + } + + replyMessage = ` + + + + ${Math.floor(Date.now() / 1000)} + + + + `; + } else if (msg.MsgType === 'image') { + // 处理图像信息 + replyMessage = ` + + + + ${Math.floor(Date.now() / 1000)} + + + + + + `; + } else { + // 处理非文本和非图像信息 + replyMessage = ` + + + + ${Math.floor(Date.now() / 1000)} + + + + `; + } + ctx.type = 'application/xml'; + ctx.body = replyMessage; + }); + } + + // 加载 + async load() { + // load() 生命周期函数,在插件加载时执行 + // 定义资源动作 + this.app.resourcer.define({ + name: 'wechat', + actions: { + test: async (ctx) => { + ctx.withoutDataWrapping = true; + ctx.body = 'Hello World!'; + console.log('Hello World!'); + }, + createMenu: async (ctx) => { + await this.createCustomMenu(); + console.log('Custom menu created successfully.'); + ctx.body = 'success'; + }, + handler: async (ctx) => { + ctx.withoutDataWrapping = true; + if (ctx.request.method.toLowerCase() === 'get') { + //toLowerCase()转换字符串为小写 + await this.get(ctx); + } else { + await this.post(ctx); + } + }, + }, + }); + + this.app.acl.allow('wechat', '*', 'public'); // 实体名称,允许所有资源,公共级别访问 + } +} + +export default PluginReplacePageServer; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 88903ba4c..6b488e5b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3948,6 +3948,39 @@ importers: specifier: ^4.0.525 version: 4.0.759 + packages/plugins/@tachybase/plugin-wechat-official-account: + dependencies: + '@tachybase/client': + specifier: workspace:* + version: link:../../../core/client + '@tachybase/plugin-auth': + specifier: workspace:* + version: link:../plugin-auth + '@tachybase/server': + specifier: workspace:* + version: link:../../../core/server + '@tachybase/test': + specifier: workspace:* + version: link:../../../core/test + '@types/xml2js': + specifier: ^0.4.14 + version: 0.4.14 + antd: + specifier: 5.19.1 + version: 5.19.1(react-dom@18.3.1)(react@18.3.1) + body-parser: + specifier: ^1.20.2 + version: 1.20.2 + koa-bodyparser: + specifier: ^4.3.0 + version: 4.4.1 + react-router-dom: + specifier: ^6.11.2 + version: 6.25.1(react-dom@18.3.1)(react@18.3.1) + xml2js: + specifier: ^0.6.2 + version: 0.6.2 + packages/plugins/@tachybase/plugin-workflow: dependencies: '@tachybase/actions': @@ -5008,7 +5041,7 @@ packages: '@emotion/unitless': 0.7.5 classnames: 2.5.1 csstype: 3.1.3 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) stylis: 4.3.2 @@ -10331,7 +10364,7 @@ packages: async: 3.2.5 chalk: 3.0.0 dayjs: 1.11.10 - debug: 4.3.4 + debug: 4.3.5(supports-color@5.5.0) eventemitter2: 5.0.1 fast-json-patch: 3.1.1 fclone: 1.0.11 @@ -10354,7 +10387,7 @@ packages: '@opencensus/core': 0.0.9 '@opencensus/propagation-b3': 0.0.8 async: 2.6.4 - debug: 4.3.4 + debug: 4.3.5(supports-color@5.5.0) eventemitter2: 6.4.9 require-in-the-middle: 5.2.0 semver: 7.5.4 @@ -10385,9 +10418,9 @@ packages: engines: {node: '>=4.0'} dependencies: async: 2.6.4 - debug: 4.3.4 + debug: 4.3.5(supports-color@5.5.0) eventemitter2: 6.4.9 - extrareqp2: 1.0.0(debug@4.3.4) + extrareqp2: 1.0.0(debug@4.3.5) ws: 7.5.9 transitivePeerDependencies: - bufferutil @@ -10801,7 +10834,7 @@ packages: '@babel/runtime': 7.24.7 '@ctrl/tinycolor': 3.6.1 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -10831,7 +10864,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -10857,7 +10890,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -10872,7 +10905,7 @@ packages: '@rc-component/portal': 1.1.2(react-dom@18.3.1)(react@18.3.1) '@rc-component/trigger': 2.2.0(react-dom@18.3.1)(react@18.3.1) classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12693,7 +12726,6 @@ packages: resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} dependencies: '@types/node': 20.14.2 - dev: true /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -15572,7 +15604,7 @@ packages: dev: false /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz} engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 @@ -15991,10 +16023,10 @@ packages: engines: {node: '>=0.10.0'} /co-body@6.1.0: - resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} + resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==, tarball: https://registry.npmmirror.com/co-body/-/co-body-6.1.0.tgz} dependencies: inflation: 2.1.0 - qs: 6.12.1 + qs: 6.12.3 raw-body: 2.5.2 type-is: 1.6.18 @@ -16357,7 +16389,7 @@ packages: toggle-selection: 1.0.6 /copy-to@2.0.1: - resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==} + resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==, tarball: https://registry.npmmirror.com/copy-to/-/copy-to-2.0.1.tgz} /core-js-compat@3.34.0: resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} @@ -17351,7 +17383,7 @@ packages: dev: false /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, tarball: https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz} engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 @@ -17879,7 +17911,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.12 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.1 @@ -17930,7 +17962,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 @@ -17947,13 +17979,13 @@ packages: which-typed-array: 1.1.15 /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==, tarball: https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, tarball: https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz} engines: {node: '>= 0.4'} /es-get-iterator@1.1.3: @@ -18822,10 +18854,10 @@ packages: tmp: 0.0.33 dev: true - /extrareqp2@1.0.0(debug@4.3.4): + /extrareqp2@1.0.0(debug@4.3.5): resolution: {integrity: sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==} dependencies: - follow-redirects: 1.15.6(debug@4.3.4) + follow-redirects: 1.15.6(debug@4.3.5) transitivePeerDependencies: - debug dev: false @@ -19108,18 +19140,6 @@ packages: debug: optional: true - /follow-redirects@1.15.6(debug@4.3.4): - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dependencies: - debug: 4.3.4 - dev: false - /follow-redirects@1.15.6(debug@4.3.5): resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} engines: {node: '>=4.0'} @@ -19252,7 +19272,7 @@ packages: dezalgo: 1.0.4 hexoid: 1.0.0 once: 1.4.0 - qs: 6.12.1 + qs: 6.12.3 /formidable@3.5.1: resolution: {integrity: sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==} @@ -19361,7 +19381,7 @@ packages: dev: true /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz} /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} @@ -19428,7 +19448,7 @@ packages: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 @@ -19725,7 +19745,7 @@ packages: resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, tarball: https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} dependencies: get-intrinsic: 1.2.4 @@ -19822,16 +19842,16 @@ packages: engines: {node: '>=8'} /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, tarball: https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz} dependencies: es-define-property: 1.0.0 /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==, tarball: https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz} engines: {node: '>= 0.4'} /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} engines: {node: '>= 0.4'} /has-tostringtag@1.0.0: @@ -19887,7 +19907,7 @@ packages: dev: false /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, tarball: https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -20288,7 +20308,7 @@ packages: optional: true /inflation@2.1.0: - resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==} + resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==, tarball: https://registry.npmmirror.com/inflation/-/inflation-2.1.0.tgz} engines: {node: '>= 0.8.0'} /inflection@1.13.4: @@ -22142,7 +22162,7 @@ packages: dev: true /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, tarball: https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz} engines: {node: '>= 0.6'} /mem@8.1.1: @@ -22306,12 +22326,12 @@ packages: brorand: 1.1.0 /mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.33.0.tgz} engines: {node: '>= 0.6'} dev: false /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} engines: {node: '>= 0.6'} /mime-match@1.0.2: @@ -22321,14 +22341,14 @@ packages: dev: true /mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==, tarball: https://registry.npmmirror.com/mime-types/-/mime-types-2.1.18.tgz} engines: {node: '>= 0.6'} dependencies: mime-db: 1.33.0 dev: false /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, tarball: https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 @@ -23079,13 +23099,14 @@ packages: engines: {node: '>= 6'} /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz} /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: false /object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.2.tgz} engines: {node: '>= 0.4'} /object-is@1.1.5: @@ -23927,7 +23948,7 @@ packages: requiresBuild: true dependencies: async: 3.2.5 - debug: 4.3.4 + debug: 4.3.5(supports-color@5.5.0) pidusage: 2.0.21 systeminformation: 5.22.8 tx2: 1.0.5 @@ -24862,6 +24883,7 @@ packages: engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 + dev: false /qs@6.12.3: resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} @@ -25024,7 +25046,7 @@ packages: classnames: 2.5.1 rc-select: 14.15.0(react-dom@18.3.1)(react@18.3.1) rc-tree: 5.8.8(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25036,7 +25058,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25049,7 +25071,7 @@ packages: '@babel/runtime': 7.24.7 classnames: 2.5.1 rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25063,7 +25085,7 @@ packages: '@rc-component/portal': 1.1.2(react-dom@18.3.1)(react@18.3.1) classnames: 2.5.1 rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25077,7 +25099,7 @@ packages: '@rc-component/portal': 1.1.2(react-dom@18.3.1)(react@18.3.1) classnames: 2.5.1 rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25090,7 +25112,7 @@ packages: '@babel/runtime': 7.24.7 '@rc-component/trigger': 2.2.0(react-dom@18.3.1)(react@18.3.1) classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25116,7 +25138,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 '@rc-component/async-validator': 5.0.4 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25131,7 +25153,7 @@ packages: classnames: 2.5.1 rc-dialog: 9.5.2(react-dom@18.3.1)(react@18.3.1) rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25185,7 +25207,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25201,7 +25223,7 @@ packages: rc-input: 1.5.1(react-dom@18.3.1)(react@18.3.1) rc-menu: 9.14.1(react-dom@18.3.1)(react@18.3.1) rc-textarea: 1.7.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25268,7 +25290,7 @@ packages: '@babel/runtime': 7.24.7 classnames: 2.5.1 rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25293,7 +25315,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25366,7 +25388,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25379,7 +25401,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25405,7 +25427,7 @@ packages: '@babel/runtime': 7.24.7 classnames: 2.5.1 rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25489,7 +25511,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25502,7 +25524,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25514,7 +25536,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25529,7 +25551,7 @@ packages: '@rc-component/context': 1.4.0(react-dom@18.3.1)(react@18.3.1) classnames: 2.5.1 rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) rc-virtual-list: 3.14.5(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25547,7 +25569,7 @@ packages: rc-menu: 9.14.1(react-dom@18.3.1)(react@18.3.1) rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25617,7 +25639,7 @@ packages: classnames: 2.5.1 rc-select: 14.15.0(react-dom@18.3.1)(react@18.3.1) rc-tree: 5.8.8(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -25723,7 +25745,7 @@ packages: dependencies: '@babel/runtime': 7.24.7 classnames: 2.5.1 - rc-util: 5.38.1(react-dom@18.3.1)(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -26952,7 +26974,7 @@ packages: engines: {node: '>=10'} /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} /sanitize-html@2.10.0: resolution: {integrity: sha512-JqdovUd81dG4k87vZt6uA6YhDfWkUGruUu/aPmXLxXi45gZExnt9Bnw/qeQU8oGf82vPyaE0vO4aH0PbobB9JQ==} @@ -27219,7 +27241,7 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, tarball: https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 @@ -27254,7 +27276,7 @@ packages: dev: true /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, tarball: https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz} /sha.js@2.4.11: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} @@ -27303,13 +27325,13 @@ packages: dev: false /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -28121,7 +28143,7 @@ packages: formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.12.1 + qs: 6.12.3 semver: 7.6.2 transitivePeerDependencies: - supports-color @@ -28138,7 +28160,7 @@ packages: formidable: 3.5.1 methods: 1.1.2 mime: 2.6.0 - qs: 6.12.1 + qs: 6.12.3 transitivePeerDependencies: - supports-color dev: true @@ -28590,7 +28612,7 @@ packages: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, tarball: https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz} engines: {node: '>=0.6'} /toposort-class@1.0.1: @@ -28965,7 +28987,7 @@ packages: dev: false /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, tarball: https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz} engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 @@ -29464,7 +29486,7 @@ packages: iconv-lite: 0.4.24 ip: 1.1.8 pump: 3.0.0 - qs: 6.12.1 + qs: 6.12.3 statuses: 1.5.0 utility: 1.18.0 transitivePeerDependencies: