diff --git a/demo_module/index.html b/demo_module/index.html index 27f1519a9d8292a948b26bd87566975933560bfa..1aaa7595edde3ee29e30dd7e5dbe160ce2f29e77 100644 --- a/demo_module/index.html +++ b/demo_module/index.html @@ -1,14 +1,18 @@ - - - - - Vite + React - - -
- - - - + + + + + + Vite + React + + + +
+ + + + + + \ No newline at end of file diff --git a/demo_module/package-lock.json b/demo_module/package-lock.json index 3e1c9b00c730c041a034f0d8b7e994c1bc5f489a..0fc088d93b582d6b37e3773140f858b14a05b4d5 100644 --- a/demo_module/package-lock.json +++ b/demo_module/package-lock.json @@ -14,8 +14,10 @@ "antd-mobile": "^5.38.1", "antd-mobile-icons": "^0.3.0", "axios": "^1.7.7", + "create-puzzle": "^3.0.2", "qrcode": "^1.5.4", "qrcode.react": "^4.1.0", + "rc-slider-captcha": "^1.7.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "^9.1.2", @@ -2213,6 +2215,16 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/cache2": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/cache2/-/cache2-3.1.2.tgz", + "integrity": "sha512-y714OEbC+xC2bzP8bFjzsDpqHSCsNRtMm4gKxmdYq1fqQnhCgWkGhO9OVHZr973zCJAJSfenigGDpRDxtN+dQQ==", + "license": "MIT", + "dependencies": { + "emitter-pro": "^1.2.2", + "tslib": "^2.7.0" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", @@ -2363,6 +2375,16 @@ "toggle-selection": "^1.0.6" } }, + "node_modules/create-puzzle": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/create-puzzle/-/create-puzzle-3.0.2.tgz", + "integrity": "sha512-XliUr6Di/ba4mRGa2Mjq59KwES+3gECCqbaVewKiK/l3p0UCgUqhIKRjmgyULkM1JeAmZTJCyuyVuSx3NCUDZg==", + "license": "MIT", + "dependencies": { + "ut2": "^1.10.0", + "util-helpers": "^5.0.4" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2556,6 +2578,12 @@ "integrity": "sha512-NxnmFBHDl5Sachd2P46O7UJiMaMHMLSofoIWVJq3mj8NJgG0umiSeljAVP9lGzjI0UDLJJ5jjoGjcrB8RSbjLQ==", "dev": true }, + "node_modules/emitter-pro": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/emitter-pro/-/emitter-pro-1.2.2.tgz", + "integrity": "sha512-wmkoEzKYArkMPl7hxSwHvFDnXvmTaCZo6FdgiRQV87iCBuS+ugjopDkLQWOPMDhvV2hiyn9brGTSBCr6wunSLw==", + "license": "MIT" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4492,6 +4520,20 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-hooks": { + "version": "3.0.16", + "resolved": "https://registry.npmmirror.com/rc-hooks/-/rc-hooks-3.0.16.tgz", + "integrity": "sha512-d5SBXrSD0u4mEt+AXVLyI76TQJgzf2PvRSHhQiETAhYnqQrkAJOckmZgbfIZ5PTjGqrM3ovsD+2dD8ZBENx0mQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1", + "ut2": "^1.14.0", + "util-helpers": "^5.3.1" + }, + "peerDependencies": { + "react": ">= 16.8.6" + } + }, "node_modules/rc-image": { "version": "7.11.0", "resolved": "https://registry.npmmirror.com/rc-image/-/rc-image-7.11.0.tgz", @@ -4788,6 +4830,20 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-slider-captcha": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/rc-slider-captcha/-/rc-slider-captcha-1.7.0.tgz", + "integrity": "sha512-/cja5nCEIs/cmDnCHYNct7D3O3P9ydsLB7IkeaCl0ah0y/Xp6HBK3spqZgG8PF6uKg/9ENqVtO4Ioi/V6mF+tg==", + "license": "MIT", + "dependencies": { + "classnames": "^2.5.1", + "rc-hooks": "^3.0.15", + "tslib": "^2.8.1" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, "node_modules/rc-steps": { "version": "6.0.1", "resolved": "https://registry.npmmirror.com/rc-steps/-/rc-steps-6.0.1.tgz", @@ -5807,6 +5863,29 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/ut2": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/ut2/-/ut2-1.15.0.tgz", + "integrity": "sha512-Lv1toC6voRSRHDn9dG+5Z7sjqyB+1aPWhdB4SvIBeX8rsgT7aIc4FBjIDUL11gEoei2bhvO7odBfdD0EJ0AfEw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/util-helpers": { + "version": "5.4.0", + "resolved": "https://registry.npmmirror.com/util-helpers/-/util-helpers-5.4.0.tgz", + "integrity": "sha512-ot9Ac7d/IxUE1fS2GpRTFEz3bcW3eAmzx/7rOsM+6m358jHUOqRuhJ/2Tsy52yalfxI16w9jirZJ0ZhWkv9BHQ==", + "license": "MIT", + "dependencies": { + "cache2": "^3.1.2", + "tslib": "^2.8.1", + "ut2": "^1.15.0" + } + }, "node_modules/vite": { "version": "5.4.10", "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.10.tgz", diff --git a/demo_module/package.json b/demo_module/package.json index 962f164c727383c088304a8cf19a19e5250836e9..2340e8c9fb795e452500f81d9b5c1d6ddf11f47b 100644 --- a/demo_module/package.json +++ b/demo_module/package.json @@ -24,7 +24,10 @@ "react-router-dom": "^6.28.0", "react-vant": "^3.3.5", "redux": "^5.0.1", - "redux-persist": "^6.0.0" + "redux-persist": "^6.0.0", + + "create-puzzle": "^3.0.2", + "rc-slider-captcha": "^1.7.0" }, "devDependencies": { "@eslint/js": "^9.11.1", diff --git a/demo_module/src/Login/A-1.jpg b/demo_module/src/Login/A-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..787de75efbc54571395000649e45ca08d9bd9ddb Binary files /dev/null and b/demo_module/src/Login/A-1.jpg differ diff --git a/demo_module/src/Login/Login.css b/demo_module/src/Login/Login.css new file mode 100644 index 0000000000000000000000000000000000000000..40232b92b49c61ea09ccb98133c7f51cd855fed2 --- /dev/null +++ b/demo_module/src/Login/Login.css @@ -0,0 +1,128 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: Arial, sans-serif; +} + +body { + background-color: #f5f5f5; + color: #333; +} + +.box1 { + width: 100%; + height: 50px; + background-color: #fff; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); +} + +.span1 { + font-size: 18px; + font-weight: bold; + margin: 30px; + color: red; + border-bottom: 2px solid red; +} +.span2 { + font-size: 18px; + font-weight: bold; + margin: 30px; + color: black; + border-bottom: 2px solid black; +} + +.btn1 { + margin-top: 50px; + display: block; + width: 100%; + padding: 10px; + background-color: #ff0000; + color: #fff; + text-align: center; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s ease; +} + +.btn1:hover { + background-color: #ff3333; +} + +.box2 { + display: flex; + justify-content: space-between; + margin-top: 20px; +} + +.box2 p { + font-size: 17px; + color: #ff002d; + cursor: pointer; + transition: color 0.3s ease; +} + +.box2 p:hover { + color: #f44336; +} + +.box3 { + position: absolute; + left: 60px; + bottom: 30px; + font-size: 14px; + color: #999; +} + +.box4, .box5 { + width: 100%; + display: flex; + justify-content: center; + margin-top: 20px; +} + +.box4, .box5 { + width: 100%; + display: flex; + justify-content: center; + margin-top: 20px; +} + +.box4 img, .box5 img { + width: 50px; + height: 50px; + margin: 0 10px; + cursor: pointer; + transition: transform 0.3s ease; +} + +.box4 img:hover, .box5 img:hover { + transform: scale(1.1); +} + +.p1, .p2 { + font-size: 18px; + color: #333; + margin-top: 20px; + text-align: center; +} + +.content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + display: flex; + align-items: center; + justify-content: center; + width: 150px; + height: 150px; + background: #fff; + border-radius: 16px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); +} + + diff --git a/demo_module/src/Login/Mm.jsx b/demo_module/src/Login/Mm.jsx new file mode 100644 index 0000000000000000000000000000000000000000..182971ec8b9f7588dad95731779336df463d2f18 --- /dev/null +++ b/demo_module/src/Login/Mm.jsx @@ -0,0 +1,162 @@ +import React, { useEffect, useState, useRef } from 'react' +import axios from 'axios' +import './Login.css' +import { NavBar, Form, Input, Button, Mask } from 'antd-mobile' +import { EyeInvisibleOutline, EyeOutline } from 'antd-mobile-icons' +// import { usenavigate } from 'react-router-dom' +import { Toast } from 'react-vant'; +import SliderCaptcha from 'rc-slider-captcha'; // 导入滑动验证码组件 +import { sleep } from 'ut2'; // 导入sleep函数 +import createPuzzle from 'create-puzzle'; // 导入createPuzzle函数 +import { RubyOutlined, MehOutlined, SmileOutlined, RedoOutlined, LoadingOutlined } from '@ant-design/icons' // 导入Ant Design图标 +import pic from './A-1.jpg' // 导入登录页面的背景图片 +import { useNavigate } from 'react-router-dom' + +export default function Mm() { + const navigate = useNavigate() + const [phone, setphone] = useState('') + const [visible, setVisible] = useState(false) + const [pass, setpass] = useState('') + const offsetXRef = useRef(0); // x 轴偏移值 + const [flag1, setflag1] = useState(false) + + + const handlerPhone = (e) => { + setphone(e.target.value) + } + + const handlerPass = (e) => { + setpass(e.target.value) + } + + const back = () => { + navigate('/homepage') + } + + const handlerDenglu = async () => { + if (phone.length !== 11) { + Toast('请输入正确的手机号码') + return + } + let data = await axios.post('http://localhost:3000/login2', { phone: phone, pass: pass }) + if (data.data.code === 200) { + setflag1(true) + localStorage.setItem('accessToken', data.data.accessToken) + localStorage.setItem('refreshToken', data.data.refreshToken) + console.log(data.data.accessToken) + } else { + Toast('账号或密码错误') + } + } + + // 查看是否在安全距离 + const verifyCaptcha = async (data) => { + await sleep(); + if (data.x >= offsetXRef.current - 5 && data.x < offsetXRef.current + 5) { + Toast('登录成功') + navigate('/homepage') + return Promise.resolve(); + } + alert('验证失败') + return Promise.reject(); + }; + + useEffect(() => { + + }, []) + + return ( +
+ 恩师教育 + +
+ 密码登录 + { navigate('/yzm') }}>验证码登录 +
+ +
+ + + { handlerPhone(event) }} placeholder='请输入手机号码' clearable /> + + + + {!visible ? ( + setVisible(true)} /> + ) : ( + setVisible(false)} /> + )} +
+ } + > + { handlerPass(event) }} + type={visible ? 'text' : 'password'} + /> + + setflag1(false)}> +
+ + createPuzzle(pic, { + format: 'blob' + }).then((res) => { + offsetXRef.current = res.x + return { + // 背景图片 + bgUrl: res.bgUrl, + // 核验区域 + puzzleUrl: res.puzzleUrl + }; + }) + } + onVerify={(data) => { + return verifyCaptcha(data); + }} + //bgSize必须和原图片的尺寸一样 + bgSize={{ width: 569, height: 427 }} + tipIcon={{ + default: , + loading: , + success: , + error: , + refresh: + }} + tipText={{ + default: '向右👉拖动完成拼图', + loading: '👩🏻‍💻🧑‍💻努力中...', + moving: '向右拖动至拼图位置', + verifying: '验证中...', + error: '验证失败' + }} + /> +
+
+ + + { + phone == '' && pass == '' ? + : + + } +
+ +

{ navigate('/wang') }}>忘记密码?

+

还没有账号?来注册

+
+

其他方式登录

+
+
+ { navigate('/ren') }} src={'./ren.jpg'} alt=''> +

人脸识别登录

+
+
+ + ) +} + diff --git a/demo_module/src/Login/Ren.jsx b/demo_module/src/Login/Ren.jsx new file mode 100644 index 0000000000000000000000000000000000000000..c412f0fb7ad5e3ee64f14d5c2587ceee40c8b2e9 --- /dev/null +++ b/demo_module/src/Login/Ren.jsx @@ -0,0 +1,66 @@ +import React, { useState, useRef, useEffect } from 'react'; +import { Toast, NavBar, Button } from 'react-vant'; +import { useNavigate } from 'react-router-dom'; +import axios from 'axios'; + +export default function Ren() { + const navigate = useNavigate() + useEffect(() => { + startCamera(); + }, []); + const videoRef = useRef(null); + const canvasRef = useRef(null); + const [capturedImages, setCapturedImages] = useState([]); + const startCamera = async () => { + const stream = await navigator.mediaDevices.getUserMedia({ video: true }); + videoRef.current.srcObject = stream; + }; + const capture = () => { + const canvas = canvasRef.current; + const context = canvas.getContext('2d'); + context.drawImage(videoRef.current, 0, 0, canvas.width, canvas.height); + const imageSrc = canvas.toDataURL('image/jpeg'); + setCapturedImages([...capturedImages, imageSrc]) + submitImages(imageSrc) + }; + let submitImages = async (img) => { + let data = await axios.post('http://localhost:3000/faceLogin', { b64: img }) + if (data.data.code === 200) { + Toast('登录成功') + localStorage.setItem('accessToken',data.data.accessToken) + localStorage.setItem('refreshToken',data.data.refreshToken) + navigate('/map3') + } else { + Toast(data.data.msg) + } + }; + + // 导航头回退 + let headgo = () => { + navigate('/yzm') + } + return ( +
+ {/* 导航头 */} +
+ { headgo() }} + onClickRight={() => Toast('按钮')} + /> +
+
+
+ +
+ +
+ {/* fotter */} +
+ {/* */} +
+
+ ) +} diff --git a/demo_module/src/Login/Wang.jsx b/demo_module/src/Login/Wang.jsx new file mode 100644 index 0000000000000000000000000000000000000000..6917b38843f54ee33fb4dd558afc028f758447bd --- /dev/null +++ b/demo_module/src/Login/Wang.jsx @@ -0,0 +1,118 @@ +import React, { useEffect, useState } from 'react' +import axios from 'axios' +import './Login.css' +import { NavBar, Form, Input, Button } from 'antd-mobile' +import { EyeInvisibleOutline, EyeOutline } from 'antd-mobile-icons' +import { useNavigate } from 'react-router-dom' +import { Toast } from 'react-vant' + +export default function Wang() { + const Navigate = useNavigate() + const [visible, setVisible] = useState(false) + const [phone, setphone] = useState('') + const [yan, setyan] = useState('') + const [pass, setpass] = useState('') + const [countDown, setCountDown] = useState(60); + const [isSending, setIsSending] = useState(false); + + const handlerPhone = (e) => { + setphone(e.target.value) + } + + const handlerMa = (e) => { + setyan(e.target.value) + } + + const handlerPass = (e) => { + setpass(e.target.value) + } + + const handlerYan = async () => { + await axios.post('http://localhost:3000/url1', { phone: phone }) + setIsSending(true) + } + + const back = () => { + Navigate('/map3') + } + + const handlerXiugai = async () => { + const data = await axios.post('http://localhost:3000/wang', { phone: phone, yan: yan, pass: pass }) + if (data.data.code === 200) { + Toast('修改成功,请重新登录') + Navigate('/mm') + } else { + Toast(data.data.msg) + } + } + + useEffect(() => { + let intervalID; + if (countDown > 0 && isSending) { + intervalID = setInterval(() => { + setCountDown((prevCountDown) => prevCountDown - 1) + }, 1000) + } else if (countDown == 0) { + setIsSending(false) + } + return () => { + clearInterval(intervalID) + } + }, [countDown, isSending]) + + return ( +
+ 恩师教育 + +
+ 忘记密码 +
+ +
+ + + { handlerPhone(event) }} placeholder='请输入手机号码' clearable /> + + + + {isSending ? + (<>{countDown}后重新获取) + : + ( { handlerYan() }}>获取验证码) + } +
+ } + > + { handlerMa(event) }} clearable /> + + + {!visible ? ( + setVisible(true)} /> + ) : ( + setVisible(false)} /> + )} + + } + > + { handlerPass(event) }} + type={visible ? 'text' : 'password'} + /> + + + { + phone == '' && pass == '' && yan == '' ? + : + + } + + ) +} + diff --git a/demo_module/src/Login/Yzm.jsx b/demo_module/src/Login/Yzm.jsx new file mode 100644 index 0000000000000000000000000000000000000000..97f5d00cc5b0f05553b23085d7170fc86d02cfe5 --- /dev/null +++ b/demo_module/src/Login/Yzm.jsx @@ -0,0 +1,188 @@ +import React, { useEffect, useState, useRef } from 'react' +import axios from 'axios' +import './Login.css' +import { NavBar, Form, Input, Button, Mask } from 'antd-mobile' +import { useNavigate } from 'react-router-dom' +import { EyeInvisibleOutline, EyeOutline } from 'antd-mobile-icons' +import { Toast } from 'react-vant'; +import SliderCaptcha from 'rc-slider-captcha'; // 导入滑动验证码组件 +import { sleep } from 'ut2'; // 导入sleep函数 +import createPuzzle from 'create-puzzle'; // 导入createPuzzle函数 +import { RubyOutlined, MehOutlined, SmileOutlined, RedoOutlined, LoadingOutlined } from '@ant-design/icons' // 导入Ant Design图标 +import pic from './A-1.jpg' // 导入登录页面的背景图片 + + +export default function Yzm() { + const Navigate = useNavigate() + const [visible, setVisible] = useState(false) + const [phone, setphone] = useState('') + const [yan, setyan] = useState('') + const [pass, setpass] = useState('') + const [countDown, setCountDown] = useState(60); + const [isSending, setIsSending] = useState(false); + const offsetXRef = useRef(0); // x 轴偏移值 + const [flag1, setflag1] = useState(false) + + const handlerPhone = (e) => { + setphone(e.target.value) + } + + const handlerMa = (e) => { + setyan(e.target.value) + } + + const handlerPass = (e) => { + setpass(e.target.value) + } + + const handlerYan = async () => { + await axios.post('http://localhost:3000/url1', { phone: phone }) + setIsSending(true) + } + + const back = () => { + Navigate('/mm') + } + + const handlerDenglu = async () => { + if (phone.length !== 11) { + alert('请输入正确的手机号码') + return + } + if (yan.length !== 6) { + alert('请输入正确的验证码') + return + } + const data = await axios.post(`http://localhost:3000/login?yan=${yan}`, { phone: phone, pass: pass }) + if (data.data.code === 200) { + setflag1(true) + localStorage.setItem('accessToken', data.data.accessToken) + localStorage.setItem('refreshToken', data.data.refreshToken) + } + } + + // 查看是否在安全距离 + const verifyCaptcha = async (data) => { + await sleep(); + if (data.x >= offsetXRef.current - 5 && data.x < offsetXRef.current + 5) { + Toast('登录成功') + Navigate('/map3') + return Promise.resolve(); + } + Toast('验证失败') + return Promise.reject(); + }; + + + + useEffect(() => { + let intervalID; + if (countDown > 0 && isSending) { + intervalID = setInterval(() => { + setCountDown((prevCountDown) => prevCountDown - 1) + }, 1000) + } else if (countDown == 0) { + setIsSending(false) + } + return () => { + clearInterval(intervalID) + } + }, [countDown, isSending]) + + return ( +
+ + +
+ 验证码登录 +
+ +
+ + + { handlerPhone(event) }} placeholder='请输入手机号码' clearable /> + + + + {isSending ? + (<>{countDown}后重新获取) + : + ( { handlerYan() }}>获取验证码) + } +
+ } + > + { handlerMa(event) }} clearable /> + + + {!visible ? ( + setVisible(true)} /> + ) : ( + setVisible(false)} /> + )} + + } + > + { handlerPass(event) }} + type={visible ? 'text' : 'password'} + /> + + setflag1(false)}> +
+ + createPuzzle(pic, { + format: 'blob' + }).then((res) => { + offsetXRef.current = res.x + return { + // 背景图片 + bgUrl: res.bgUrl, + // 核验区域 + puzzleUrl: res.puzzleUrl + }; + }) + } + onVerify={(data) => { + return verifyCaptcha(data); + }} + //bgSize必须和原图片的尺寸一样 + bgSize={{ width: 569, height: 427 }} + tipIcon={{ + default: , + loading: , + success: , + error: , + refresh: + }} + tipText={{ + default: '向右👉拖动完成拼图', + loading: '👩🏻‍💻🧑‍💻努力中...', + moving: '向右拖动至拼图位置', + verifying: '验证中...', + error: '验证失败' + }} + /> +
+
+ + { + phone == '' && yan == '' && pass == '' ? + : + + } +
+

{ Navigate('/mm') }}>密码登录

+

{ Navigate('/wang') }}>忘记密码?

+
+ + ) +} diff --git a/demo_module/src/Login/Zc.jsx b/demo_module/src/Login/Zc.jsx new file mode 100644 index 0000000000000000000000000000000000000000..3aef71349e3a8c26a84ec97e7acdf8b49f468af9 --- /dev/null +++ b/demo_module/src/Login/Zc.jsx @@ -0,0 +1,188 @@ +import React, { useEffect, useState, useRef } from 'react' +import axios from 'axios' +import './Login.css' +import { NavBar, Form, Input, Button, Mask } from 'antd-mobile' +import { useNavigate } from 'react-router-dom' +import { EyeInvisibleOutline, EyeOutline } from 'antd-mobile-icons' +import { Toast } from 'react-vant'; +import SliderCaptcha from 'rc-slider-captcha'; // 导入滑动验证码组件 +import { sleep } from 'ut2'; // 导入sleep函数 +import createPuzzle from 'create-puzzle'; // 导入createPuzzle函数 +import { RubyOutlined, MehOutlined, SmileOutlined, RedoOutlined, LoadingOutlined } from '@ant-design/icons' // 导入Ant Design图标 +import pic from './A-1.jpg' // 导入登录页面的背景图片 + + +export default function Yzm() { + const Navigate = useNavigate() + const [visible, setVisible] = useState(false) + const [phone, setphone] = useState('') + const [yan, setyan] = useState('') + const [pass, setpass] = useState('') + const [countDown, setCountDown] = useState(60); + const [isSending, setIsSending] = useState(false); + const offsetXRef = useRef(0); // x 轴偏移值 + const [flag1, setflag1] = useState(false) + + const handlerPhone = (e) => { + setphone(e.target.value) + } + + const handlerMa = (e) => { + setyan(e.target.value) + } + + const handlerPass = (e) => { + setpass(e.target.value) + } + + const handlerYan = async () => { + await axios.post('http://localhost:3000/url1', { phone: phone }) + setIsSending(true) + } + + const back = () => { + Navigate(-1) + } + + const handlerDenglu = async () => { + if (phone.length !== 11) { + alert('请输入正确的手机号码') + return + } + if (yan.length !== 6) { + alert('请输入正确的验证码') + return + } + const data = await axios.post(`http://localhost:3000/login?yan=${yan}`, { phone: phone, pass: pass }) + if (data.data.code === 200) { + setflag1(true) + localStorage.setItem('accessToken', data.data.accessToken) + localStorage.setItem('refreshToken', data.data.refreshToken) + } + } + + // 查看是否在安全距离 + const verifyCaptcha = async (data) => { + await sleep(); + if (data.x >= offsetXRef.current - 5 && data.x < offsetXRef.current + 5) { + Toast('登录成功') + Navigate('/map3') + return Promise.resolve(); + } + Toast('验证失败') + return Promise.reject(); + }; + + + + useEffect(() => { + let intervalID; + if (countDown > 0 && isSending) { + intervalID = setInterval(() => { + setCountDown((prevCountDown) => prevCountDown - 1) + }, 1000) + } else if (countDown == 0) { + setIsSending(false) + } + return () => { + clearInterval(intervalID) + } + }, [countDown, isSending]) + + return ( +
+ 恩师教育 + +
+ + + { handlerPhone(event) }} placeholder='请输入手机号码' clearable /> + + + + {isSending ? + (<>{countDown}后重新获取) + : + ( { handlerYan() }}>获取验证码) + } +
+ } + > + { handlerMa(event) }} clearable /> + + + {!visible ? ( + setVisible(true)} /> + ) : ( + setVisible(false)} /> + )} + + } + > + { handlerPass(event) }} + type={visible ? 'text' : 'password'} + /> + + + { handlerPass(event) }} + type={visible ? 'text' : 'password'} + /> + + setflag1(false)}> +
+ + createPuzzle(pic, { + format: 'blob' + }).then((res) => { + offsetXRef.current = res.x + return { + // 背景图片 + bgUrl: res.bgUrl, + // 核验区域 + puzzleUrl: res.puzzleUrl + }; + }) + } + onVerify={(data) => { + return verifyCaptcha(data); + }} + //bgSize必须和原图片的尺寸一样 + bgSize={{ width: 335, height: 188 }} + tipIcon={{ + default: , + loading: , + success: , + error: , + refresh: + }} + tipText={{ + default: '向右👉拖动完成拼图', + loading: '👩🏻‍💻🧑‍💻努力中...', + moving: '向右拖动至拼图位置', + verifying: '验证中...', + error: '验证失败' + }} + /> +
+
+ + { + phone == '' && yan == '' && pass == '' ? + : + + } + + ) +} diff --git a/demo_module/src/router/index.jsx b/demo_module/src/router/index.jsx index 6b381139a88634f2dc4be828c6c81491f2612090..20f20cababc08b3f6aeb48c8ab061bce523a5867 100644 --- a/demo_module/src/router/index.jsx +++ b/demo_module/src/router/index.jsx @@ -1,8 +1,19 @@ import { lazy } from "react" import { Navigate } from "react-router-dom" -//唐帅磊和康峰容负责的 项目首页 +// 李昊阳负责的登录注册页面 +const Home = lazy(() => import("../view/home.jsx")) +const Login = lazy(() => import("../view/login.jsx")) +const Mm = lazy(() => import("../Login/Mm")) +const Ren = lazy(() => import("../Login/Ren")) +const Wang = lazy(() => import("../Login/Wang")) +const Yzm = lazy(() => import("../Login/Yzm")) +const Zc = lazy(() => import("../Login/Zc")) +const Zf = lazy(() => import("../zf/Zhifudingdan")) + + +//唐帅磊和康峰容负责的 项目首页 //kfr首页 import Index from '../view/kfr/index.jsx' import Test from '../view/kfr/test.jsx' @@ -16,8 +27,6 @@ import Jiaojuan from '../view/kfr/jiaojuan.jsx' import Testreport from '../view/kfr/testreport.jsx' import Parse from '../view/kfr/parse.jsx' import Realexam from '../view/kfr/realexam.jsx' - - //tsl首页 const Index1 = lazy(() => import('../view/Shouye_tsl/Index')) const Shenlun = lazy(() => import('../view/Shouye_tsl/Shenlun')) @@ -48,7 +57,6 @@ const PersonalData = lazy(() => import("../view/Mine/Personal")) // Settings 设置 const Settings = lazy(() => import("../view/Mine/Settings")) - //我的学习 //我的课程 const Mycourse = lazy(() => import("../view/Mine/MyCourse")) @@ -69,20 +77,15 @@ const EarningsRecord = lazy(() => import("../view/Mine/EarningsRecord")) const WithdrawalRecord = lazy(() => import("../view/Mine/WithdrawalRecord")) const Yes = lazy(() => import("../view/Mine/Yes")) - //我的练习 const MyReal = lazy(() => import("../view/Mine/MyReal")) //我的批阅 const MyRead = lazy(() => import("../view/Mine/MyRead")) const MyResult = lazy(() => import("../view/Mine/MyResult")) - - //我的学习 //我的课程 - const MyExercise = lazy(() => import("../view/Mine/MyExercise")) - //收货地址MyResult const Address = lazy(() => import("../view/Mine/Address")) //我的面试 @@ -95,9 +98,20 @@ const Mylev = lazy(() => import("../view/Mine/Mylev")) // 路由设置 const routes = [ - { path: '/', element: }, - // 唐帅磊和康峰容负责的 首页路由 + { path: '/', element: }, + + // 李昊阳负责的登录和注册 + { path: '/login', element: }, + { path: '/home', element: }, + { path: '/mm', element: }, + { path: '/ren', element: }, + { path: '/wang', element: }, + { path: '/yzm', element: }, + { path: '/zc', element: }, + { path: '/zf', element: }, + + // 唐帅磊和康峰容负责的 首页路由 //KFR // 首页路由 { @@ -151,42 +165,6 @@ const routes = [ { path: 'zhaoxiang', element: }, - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // 杨章富和王卓岩负责的 我的主页路由 { path: '/mine', element: < MineView />, }, // 用户资料包含的路由 diff --git a/demo_module/src/view/Mine/Yes.jsx b/demo_module/src/view/Mine/Yes.jsx index 84a4841296e400c1b077acf63aa6d856f2ce4160..4652e7e9863ee4269cd52a3e389890e6819a1436 100644 --- a/demo_module/src/view/Mine/Yes.jsx +++ b/demo_module/src/view/Mine/Yes.jsx @@ -28,7 +28,7 @@ export default function Yes() { useEffect(() => { setTimeout(() => { setStopmusic(1) - }, 6000) + }, 5500) }) diff --git a/demo_module/src/view/home.jsx b/demo_module/src/view/home.jsx new file mode 100644 index 0000000000000000000000000000000000000000..5686371efc09d97d7e23ea53e859aeb6a24975ac --- /dev/null +++ b/demo_module/src/view/home.jsx @@ -0,0 +1,12 @@ +import { useState } from "react" + +function Home() { + + return ( + <> + + + ) +} + +export default Home diff --git a/demo_module/src/view/login.jsx b/demo_module/src/view/login.jsx new file mode 100644 index 0000000000000000000000000000000000000000..14bf3faf275da4ecd95947356ccdba9553dc802d --- /dev/null +++ b/demo_module/src/view/login.jsx @@ -0,0 +1,64 @@ +import { useState } from "react" +import { useSelector, useDispatch } from "react-redux" + + +function Login() { + const [email, setEmail] = useState("") + const [password, setPassword] = useState("") + const [error, setError] = useState("") + + const dispatch = useDispatch() + + const handleLogin = () => { + if (email === "" || password === "") { + setError("Please fill in all fields") + } else { + // dispatch login action + } + setError("") + } + return ( + <> +
+

Login

+ setEmail(e.target.value)} + /> + setPassword(e.target.value)} + /> + + {error &&

{error}

} +
+
+

Don't have an account?

+ +
+
+

Forgot Password?

+ +
+
+

Reset Password

+ +
+
+

Logout

+ +
+ + + ) +} + +export default Login diff --git a/demo_module/src/zf/Zhifudingdan.jsx b/demo_module/src/zf/Zhifudingdan.jsx new file mode 100644 index 0000000000000000000000000000000000000000..ddfd4b1a961f89f3c3e409113f79fb088fe61c01 --- /dev/null +++ b/demo_module/src/zf/Zhifudingdan.jsx @@ -0,0 +1,6 @@ + +const add = async () => { + const res = await axios.post('http://127.0.0.1:3000/pcfy', { data: 1 }) + console.log(res.data); + window.open(res.data.result) +} diff --git a/demo_server/alipay.js b/demo_server/alipay.js new file mode 100644 index 0000000000000000000000000000000000000000..b524279a9e400754eed36b505fb07893cceebfc3 --- /dev/null +++ b/demo_server/alipay.js @@ -0,0 +1,12 @@ +const AlipaySdk = require('alipay-sdk').default +const alipaySdk = new AlipaySdk({ + appId: '9021000141677944', //appID   + signType: "RSA2", + gateway: "https://openapi-sandbox.dl.alipaydev.com/gateway.do",//支付宝网关地址 + alipayPublicKey: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxBhzVOBJuci/c08/wV4TlasGyAvd4UmgKTrw8XSycu4YOgsYpRZzBIbkrqXdxpyApUJUdetjgJjVlCcG6YHdF/cd0uvVe6KI0Ku3T/AjpLAON6hTywQvlfltd3RvsXDxBY7viim498RUi5rR3WEJ4gioZ+SRA5bheArIz3O7fg82Uo+NeKXt0/xG0bfh+S5cQEYrDN+CMuzqS/06Ei0bUTUZIXV28pJ434/m+iG/Dr505/kcfqyp2oQPzae2LrhC97JJy8sK+b2sbMPclQfAMWax782YTRBL5pkke8u3Mz0t0iEspoDE1A4zUJd0oQ8tUgWcjTNwgJ+4SJ7Z8QVMEwIDAQAB', + //支付宝公钥 + privateKey: 'MIIEowIBAAKCAQEAxBhzVOBJuci/c08/wV4TlasGyAvd4UmgKTrw8XSycu4YOgsYpRZzBIbkrqXdxpyApUJUdetjgJjVlCcG6YHdF/cd0uvVe6KI0Ku3T/AjpLAON6hTywQvlfltd3RvsXDxBY7viim498RUi5rR3WEJ4gioZ+SRA5bheArIz3O7fg82Uo+NeKXt0/xG0bfh+S5cQEYrDN+CMuzqS/06Ei0bUTUZIXV28pJ434/m+iG/Dr505/kcfqyp2oQPzae2LrhC97JJy8sK+b2sbMPclQfAMWax782YTRBL5pkke8u3Mz0t0iEspoDE1A4zUJd0oQ8tUgWcjTNwgJ+4SJ7Z8QVMEwIDAQABAoIBAE29F7O1OuURBXz0FOVWo1L5OzYBJlQSuRC/UheW2MuhQi94iKuhy7UmuO/Xx6TeFE3vjsY0q/ymGj2ifyYBGqJOkB826SobVDvNZ12kaKz4Mpqz+4wHO8or2M67dTAWAybd9G6EfdSTm6TAmqQ1vRJDtmeBgE+49+d79wHu8oxVTuqw6iKGZho3tpx6ueGY+RG4SkwntOjpxfMsIxCdGPL71rIiiqSRysGMvjbe04ujEqqckAgYH08506yxe3pVyhmY1Xl91mfCyRZ8vWUDGBXoYoiPVKMkUnVwNUuZQAjdpyhK1yDCZLBNGRvgE+JAl5k0mqZByJGUObJJJa96IBkCgYEA+J3Zn2+92RaqS2EF1z3nuikcU8QEvgo9frFwGu7dS3AvGqEvV2TikJ5PHK54tHMpRa2qXlGCBplQFO5+KigJPksAF9w2NmXkLtfZzmXNxPRKPUewSoRXd76395CMA1RH5RqAwVHfgp2Ce3NYAoUhAepYId5rnU7IkiO5vnHB7EcCgYEAyetMxstd+uXg4xc2vku/SnAlQkwnx4hTNEIJp+UlNd7J7makm/h+Q0ljFQwB2wBqd5qQEHSP/D8sAnQkuhyu/og6vfz9HASwNNx7G5jrKdhWFWelMwmTwSapOxH8omtkJ1096UAjwIa2+vI2xG49lsx3MtLW7pBRALJDN5KyI9UCgYEAyFn83J2iMuYvClv/5vt+WOl0aJTY9YUvFYBMxYelUnvvmdg3XIhyhPTu8EAyCcmcgwh2+VdaH5NBk/y2M6bb/BVY1+Gg1qm5/333intEHep4QXYaPZL1IgzSGHGmQ7CR17FJ/YDLTGk+k9naHP3IIdEGgRTLSJQK0qpzr2PhUVUCgYAG1J/nRa/rMeWWqQ1gCJ3y/bI0+PCLjnAKH4XGGTlWBjBckTpWUGStEAl7B8n0R6JSY3cmJ1tLlDN/7b/kT94XnDIohStmzD3Nu/uqJlUmODxJQxVSkate6FjnN6eNMwbTUhMrFdFfzO7ZtGHn6TbKKCaMIJfGwDkNRfqCIcNG9QKBgHVUS6myIsfNAdD8LRtwWO38y+39cjmaZWMQeFrT9rA9TOd3Jaau6DG9QtgxcI+dwtY/6+dnS/5Rq8Xzq+vufn4G+KpfO/oLkzHq8Ys4zujvlRe/l3sMJ8GfIzbVOzGr2F0CXXTSAcOv7SSRyg8lu1gld5VaqKvbrX1LuPhzgHbu' + //应用私钥 + +}) +module.exports = alipaySdk \ No newline at end of file diff --git a/demo_server/db/model.js b/demo_server/db/model.js index 9b71b706738f513090b44691283afda5e3f8cdc0..1d9890f9c15fa88e4bd74a1caf95427b2d0b915c 100644 --- a/demo_server/db/model.js +++ b/demo_server/db/model.js @@ -1,13 +1,30 @@ const mongoose = require('./index.js'); +// lhy +let UsersSchema = new mongoose.Schema({ + phone: String, + pass: String +}) +let UserModel = mongoose.model('user', UsersSchema, 'user') + +// wzy const UserSchema = new mongoose.Schema({ avatar: String, nickname: String, phone: Number, signa: String, + // phone: String, //手机号 + // pass: String, }) const User = mongoose.model('User', UserSchema); + + + + + + + const AddressSchema = new mongoose.Schema({ id: Number, name: String, @@ -76,6 +93,9 @@ const QuestionModel = mongoose.model('Question', QuestionSchema, 'question'); module.exports = { + // lhy + UserModel, + // wzy User, Address, // tsl diff --git a/demo_server/package-lock.json b/demo_server/package-lock.json index ad23564fa86f7d75c734099714840e94da7c8dcd..4dc49793c54a8db8ff185b7f7cbf7deb3a1234a5 100644 --- a/demo_server/package-lock.json +++ b/demo_server/package-lock.json @@ -8,15 +8,129 @@ "name": "demo-server", "version": "0.0.0", "dependencies": { + "@alicloud/sms-sdk": "^1.1.6", + "alipay-sdk": "^3.6.1", "cookie-parser": "~1.4.4", "cors": "^2.8.5", "debug": "~2.6.9", "express": "~4.16.1", + "express-jwt": "^8.4.1", "http-errors": "~1.6.3", "jade": "~1.11.0", + "jsonwebtoken": "^9.0.2", "mongoose": "^8.8.4", "morgan": "~1.9.1", - "multer": "^1.4.5-lts.1" + "multer": "^1.4.5-lts.1", + "p-queue": "^8.0.1", + "tencentcloud-sdk-nodejs-iai": "^4.0.918" + } + }, + "node_modules/@alicloud/dybaseapi": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@alicloud/dybaseapi/-/dybaseapi-1.0.0.tgz", + "integrity": "sha512-4KEDgqES7IL60T/TWGSkLQkN6BYeHEw8smnPgac2J2MTES5v1ieCWvbLSuUUWi5SAXi7cydKoD4HUOmX7xwM+A==", + "license": "MIT", + "dependencies": { + "@alicloud/pop-core": "^1.3.3" + } + }, + "node_modules/@alicloud/dysmsapi-2017-05-25": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@alicloud/dysmsapi-2017-05-25/-/dysmsapi-2017-05-25-1.0.1.tgz", + "integrity": "sha512-CVX/Yl9ntwkAOHAZa3j2Y/Io+SlbETw/ILv4UPIDCEIQm/N0EEcN2OXF8cWCUvHeu7OgnFWZKhdJY5GsbjWHDA==", + "license": "MIT", + "dependencies": { + "@alicloud/pop-core": "^1.5.1" + } + }, + "node_modules/@alicloud/mns": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@alicloud/mns/-/mns-1.0.0.tgz", + "integrity": "sha512-SUJYM8+x3iPy6thIy5Wa/5lw7+RodeDDIPcI3QQ3bZPNCSq+yEC3jMtfVlS3vxGPq+dGjAysI9RGeM7NByeHlw==", + "license": "MIT", + "dependencies": { + "debug": "^2.6.3", + "httpx": "^2.1.1", + "kitx": "^1.2.0", + "xml2js": "^0.4.17" + } + }, + "node_modules/@alicloud/pop-core": { + "version": "1.7.13", + "resolved": "https://registry.npmmirror.com/@alicloud/pop-core/-/pop-core-1.7.13.tgz", + "integrity": "sha512-agzr4DU+aAGW7/2mp2hP1JcNJkn/zBS0jUGQt5etIASN0MVq1tMdudVqvWbExUG0mUouo/n2VgdnjOHjswvrlA==", + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "httpx": "^2.1.2", + "json-bigint": "^1.0.0", + "kitx": "^1.2.1", + "xml2js": "^0.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@alicloud/pop-core/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@alicloud/pop-core/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/@alicloud/pop-core/node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@alicloud/sms-sdk": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@alicloud/sms-sdk/-/sms-sdk-1.1.6.tgz", + "integrity": "sha512-jW5ROjpAtOrNFkZSXb8geJWzkgJ9ggnPx+ve+72eatu78/vad2emdZjRx43/xPqqhA9djRoU3xHQt2xFODiaMQ==", + "license": "ISC", + "dependencies": { + "@alicloud/dybaseapi": "^1.0.0", + "@alicloud/dysmsapi-2017-05-25": "^1.0.1", + "@alicloud/mns": "^1.0.0-beta6", + "babel-runtime": "^6.26.0" + } + }, + "node_modules/@fidm/asn1": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@fidm/asn1/-/asn1-1.0.4.tgz", + "integrity": "sha512-esd1jyNvRb2HVaQGq2Gg8Z0kbQPXzV9Tq5Z14KNIov6KfFD6PTaRIO8UpcsYiTNzOqJpmyzWgVTrUwFV3UF4TQ==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@fidm/x509": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@fidm/x509/-/x509-1.2.1.tgz", + "integrity": "sha512-nwc2iesjyc9hkuzcrMCBXQRn653XuAUKorfWM8PZyJawiy1QzLj4vahwzaI25+pfpwOLvMzbJ0uKpWLDNmo16w==", + "license": "MIT", + "dependencies": { + "@fidm/asn1": "^1.0.4", + "tweetnacl": "^1.0.1" + }, + "engines": { + "node": ">= 8" } }, "node_modules/@mongodb-js/saslprep": { @@ -27,6 +141,24 @@ "sparse-bitfield": "^3.0.3" } }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.7", + "resolved": "https://registry.npmmirror.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.7.tgz", + "integrity": "sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "22.10.1", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, "node_modules/@types/webidl-conversions": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", @@ -71,6 +203,41 @@ "acorn": "^2.1.0" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/align-text": { "version": "0.1.4", "resolved": "https://registry.npmmirror.com/align-text/-/align-text-0.1.4.tgz", @@ -84,6 +251,53 @@ "node": ">=0.10.0" } }, + "node_modules/alipay-sdk": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/alipay-sdk/-/alipay-sdk-3.6.2.tgz", + "integrity": "sha512-YJyBszWMEjfoLUVJT5kXDQhqOOo8xQ+/Mc4l5TUSAJ1sc2ewHf4oRLtXpuOJFnxBfTAsvPqjZ1bGVxLacX+uxw==", + "license": "ISC", + "dependencies": { + "@fidm/x509": "^1.2.1", + "bignumber.js": "^9.0.0", + "camelcase-keys": "^4.2.0", + "crypto-js": "^4.0.0", + "decamelize": "^2.0.0", + "iconv-lite": "^0.4.24", + "is": "^3.2.1", + "is-json": "^2.0.1", + "lodash": "^4.17.20", + "moment": "^2.16.0", + "snakecase-keys": "^1.1.1", + "urllib": "^2.17.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/alipay-sdk/node_modules/decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "license": "MIT", + "dependencies": { + "xregexp": "4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/alipay-sdk/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/amdefine": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz", @@ -92,6 +306,12 @@ "node": ">=0.4.2" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, "node_modules/append-field": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/append-field/-/append-field-1.0.0.tgz", @@ -108,6 +328,22 @@ "resolved": "https://registry.npmmirror.com/asap/-/asap-1.0.0.tgz", "integrity": "sha512-Ej9qjcXY+8Tuy1cNqiwNMwFRXOy9UwgTeMA8LxreodygIPV48lx8PU1ecFxb5ZeU1DpMKxiq6vGLTxcitWZPbA==" }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "license": "MIT", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/basic-auth/-/basic-auth-2.0.1.tgz", @@ -119,6 +355,15 @@ "node": ">= 0.8" } }, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/body-parser": { "version": "1.18.3", "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.18.3.tgz", @@ -147,6 +392,12 @@ "node": ">=16.20.1" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", @@ -180,6 +431,29 @@ "node": ">=0.10.0" } }, + "node_modules/camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==", + "license": "MIT", + "dependencies": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/center-align": { "version": "0.1.3", "resolved": "https://registry.npmmirror.com/center-align/-/center-align-0.1.3.tgz", @@ -233,6 +507,18 @@ "wordwrap": "0.0.2" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "2.6.0", "resolved": "https://registry.npmmirror.com/commander/-/commander-2.6.0.tgz", @@ -306,6 +592,20 @@ "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "node_modules/copy-to": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/copy-to/-/copy-to-2.0.1.tgz", + "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==", + "license": "MIT" + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 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. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true, + "license": "MIT" + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", @@ -325,6 +625,12 @@ "node": ">= 0.10" } }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" + }, "node_modules/css": { "version": "1.0.8", "resolved": "https://registry.npmmirror.com/css/-/css-1.0.8.tgz", @@ -360,6 +666,27 @@ "node": ">=0.10.0" } }, + "node_modules/default-user-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/default-user-agent/-/default-user-agent-1.0.0.tgz", + "integrity": "sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==", + "license": "MIT", + "dependencies": { + "os-name": "~1.0.3" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz", @@ -373,6 +700,24 @@ "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.0.4.tgz", "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" }, + "node_modules/digest-header": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/digest-header/-/digest-header-1.1.0.tgz", + "integrity": "sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg==", + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", @@ -386,6 +731,15 @@ "node": ">= 0.8" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", @@ -399,6 +753,12 @@ "node": ">= 0.6" } }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, "node_modules/express": { "version": "4.16.4", "resolved": "https://registry.npmmirror.com/express/-/express-4.16.4.tgz", @@ -439,6 +799,26 @@ "node": ">= 0.10.0" } }, + "node_modules/express-jwt": { + "version": "8.4.1", + "resolved": "https://registry.npmmirror.com/express-jwt/-/express-jwt-8.4.1.tgz", + "integrity": "sha512-IZoZiDv2yZJAb3QrbaSATVtTCYT11OcqgFGoTN4iKVyN6NBkBkhtVIixww5fmakF0Upt5HfOxJuS6ZmJVeOtTQ==", + "license": "MIT", + "dependencies": { + "@types/jsonwebtoken": "^9", + "express-unless": "^2.1.3", + "jsonwebtoken": "^9.0.0" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/express-unless": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/express-unless/-/express-unless-2.1.3.tgz", + "integrity": "sha512-wj4tLMyCVYuIIKHGt0FhCtIViBcwzWejX0EjNxveAa6dG+0XBCQhMbx+PnkLkFCxLC69qoFrxds4pIyL88inaQ==", + "license": "MIT" + }, "node_modules/express/node_modules/cookie": { "version": "0.3.1", "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.3.1.tgz", @@ -447,6 +827,18 @@ "node": ">= 0.6" } }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/finalhandler": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.1.tgz", @@ -464,6 +856,44 @@ "node": ">= 0.8" } }, + "node_modules/form-data": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.2.tgz", + "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formstream": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/formstream/-/formstream-1.5.1.tgz", + "integrity": "sha512-q7ORzFqotpwn3Y/GBK2lK7PjtZZwJHz9QE9Phv8zb5IrL9ftGLyi2zjGURON3voK8TaZ+mqJKERYN4lrHYTkUQ==", + "license": "MIT", + "dependencies": { + "destroy": "^1.0.4", + "mime": "^2.5.2", + "node-hex": "^1.0.1", + "pause-stream": "~0.0.11" + } + }, + "node_modules/formstream/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", @@ -480,6 +910,18 @@ "node": ">= 0.6" } }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/graceful-readlink": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz", @@ -499,6 +941,99 @@ "node": ">= 0.6" } }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/httpx": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/httpx/-/httpx-2.3.3.tgz", + "integrity": "sha512-k1qv94u1b6e+XKCxVbLgYlOypVP9MPGpnN5G/vxFf6tDO4V3xpz3d6FUOY/s8NtPgaq5RBVVgSB+7IHpVxMYzw==", + "license": "MIT", + "dependencies": { + "@types/node": "^20", + "debug": "^4.1.1" + } + }, + "node_modules/httpx/node_modules/@types/node": { + "version": "20.17.9", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.17.9.tgz", + "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/httpx/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/httpx/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/httpx/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -523,16 +1058,52 @@ "node": ">= 0.10" } }, + "node_modules/is": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/is/-/is-3.3.0.tgz", + "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "license": "ISC" + }, "node_modules/is-promise": { "version": "2.2.2", "resolved": "https://registry.npmmirror.com/is-promise/-/is-promise-2.2.2.tgz", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", @@ -560,6 +1131,43 @@ "jade": "bin/jade.js" } }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmmirror.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/jstransformer": { "version": "0.0.2", "resolved": "https://registry.npmmirror.com/jstransformer/-/jstransformer-0.0.2.tgz", @@ -569,6 +1177,27 @@ "promise": "^6.0.1" } }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/kareem": { "version": "2.6.3", "resolved": "https://registry.npmmirror.com/kareem/-/kareem-2.6.3.tgz", @@ -588,6 +1217,12 @@ "node": ">=0.10.0" } }, + "node_modules/kitx": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/kitx/-/kitx-1.3.0.tgz", + "integrity": "sha512-fhBqFlXd0GkKTB+8ayLfpzPUw+LHxZlPAukPNBD1Om7JMeInT+/PxCAf1yLagvD+VKoyWhXtJR68xQkX/a0wOQ==", + "license": "MIT" + }, "node_modules/lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz", @@ -596,6 +1231,54 @@ "node": ">=0.10.0" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, "node_modules/longest": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz", @@ -604,6 +1287,15 @@ "node": ">=0.10.0" } }, + "node_modules/map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", @@ -676,6 +1368,15 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/mongodb": { "version": "6.10.0", "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-6.10.0.tgz", @@ -835,6 +1536,17 @@ "node": ">= 6.0.0" } }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", @@ -843,6 +1555,57 @@ "node": ">= 0.6" } }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-hex": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/node-hex/-/node-hex-1.0.1.tgz", + "integrity": "sha512-iwpZdvW6Umz12ICmu9IYPRxg0tOLGmU3Tq2tKetejCj3oZd7b2nUXwP3a7QA5M9glWy8wlPS1G3RwM/CdsUbdQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", @@ -870,6 +1633,15 @@ "node": ">= 0.8" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/optimist": { "version": "0.3.7", "resolved": "https://registry.npmmirror.com/optimist/-/optimist-0.3.7.tgz", @@ -878,6 +1650,65 @@ "wordwrap": "~0.0.2" } }, + "node_modules/os-name": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/os-name/-/os-name-1.0.3.tgz", + "integrity": "sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==", + "license": "MIT", + "dependencies": { + "osx-release": "^1.0.0", + "win-release": "^1.0.0" + }, + "bin": { + "os-name": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osx-release": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/osx-release/-/osx-release-1.1.0.tgz", + "integrity": "sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==", + "license": "MIT", + "dependencies": { + "minimist": "^1.1.0" + }, + "bin": { + "osx-release": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-queue": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/p-queue/-/p-queue-8.0.1.tgz", + "integrity": "sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.3", + "resolved": "https://registry.npmmirror.com/p-timeout/-/p-timeout-6.1.3.tgz", + "integrity": "sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", @@ -891,6 +1722,18 @@ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmmirror.com/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "license": [ + "MIT", + "Apache2" + ], + "dependencies": { + "through": "~2.3" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -917,6 +1760,16 @@ "node": ">= 0.10" } }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", @@ -933,6 +1786,15 @@ "node": ">=0.6" } }, + "node_modules/quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", @@ -970,6 +1832,12 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "license": "MIT" + }, "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", @@ -999,6 +1867,24 @@ "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/send": { "version": "0.16.2", "resolved": "https://registry.npmmirror.com/send/-/send-0.16.2.tgz", @@ -1046,6 +1932,16 @@ "resolved": "https://registry.npmmirror.com/sift/-/sift-17.1.3.tgz", "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==" }, + "node_modules/snakecase-keys": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/snakecase-keys/-/snakecase-keys-1.2.0.tgz", + "integrity": "sha512-G5Faa3wQevGXcD5e4JKfmgofO+Fu4Jg4/nLyeZqWmBqVV0/3ORgervt3EjBi6PEFKhztPQWegZspteWnycx5dg==", + "license": "MIT", + "dependencies": { + "map-obj": "~2.0.0", + "to-snake-case": "~0.1.2" + } + }, "node_modules/source-map": { "version": "0.4.4", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.4.4.tgz", @@ -1090,6 +1986,89 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/tencentcloud-sdk-nodejs-common": { + "version": "4.0.987", + "resolved": "https://registry.npmmirror.com/tencentcloud-sdk-nodejs-common/-/tencentcloud-sdk-nodejs-common-4.0.987.tgz", + "integrity": "sha512-wWasXTvUkAUDb/6X3kp9cDC38SM0a5wRj10U72abVp0ZzljpwFC71kxMR8nSWW8cgYfx91aJhWLMneIBW8ksqw==", + "license": "Apache-2.0", + "dependencies": { + "form-data": "^3.0.0", + "get-stream": "^6.0.0", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "json-bigint": "^1.0.0", + "node-fetch": "^2.2.0", + "tslib": "1.13.0", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tencentcloud-sdk-nodejs-iai": { + "version": "4.0.978", + "resolved": "https://registry.npmmirror.com/tencentcloud-sdk-nodejs-iai/-/tencentcloud-sdk-nodejs-iai-4.0.978.tgz", + "integrity": "sha512-j2Vvfm/Ig8AVaaEMXu2UeL5+YPZ9kbLlSwumfdZ4v/suuEjmIxWG4xMFEu/CZLJfHQNLGfFfmu80/LYhBJoVOA==", + "license": "Apache-2.0", + "dependencies": { + "tencentcloud-sdk-nodejs-common": "^4.0.488", + "tslib": "1.13.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/to-no-case": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/to-no-case/-/to-no-case-0.1.1.tgz", + "integrity": "sha512-XNChsa36ssNQibYbv/kBSLb0jEfPuePdnbX1tBpHypUbtjBSR8ihaDRRYPZLMstjSpPM+onSgxeDjg+lgfIzZQ==", + "license": "MIT" + }, + "node_modules/to-snake-case": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/to-snake-case/-/to-snake-case-0.1.2.tgz", + "integrity": "sha512-0h2qEd1GZjWTbUqKRVo7D6ZdhM5H/2hUlA4g1+kQE4C27709WEVmbtAE+PQbYQ8iLgcyoHWMIN7fx6t8kg4Zkg==", + "license": "MIT", + "dependencies": { + "to-space-case": "0.1.2" + } + }, + "node_modules/to-space-case": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/to-space-case/-/to-space-case-0.1.2.tgz", + "integrity": "sha512-DtF9QZwx8W6WMhrCuvUZJYX9sT74/VOdVxi68EkEu3gt0SUQHhJG+UYbQI0559XcchsX7gziPlWuV4dEGC59dA==", + "license": "MIT", + "dependencies": { + "to-no-case": "0.1.1" + } + }, "node_modules/tr46": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/tr46/-/tr46-4.1.1.tgz", @@ -1151,6 +2130,18 @@ "node": ">=0.4.0" } }, + "node_modules/tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "license": "0BSD" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", @@ -1201,6 +2192,24 @@ "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", "optional": true }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/unescape": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/unescape/-/unescape-1.0.1.tgz", + "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", @@ -1209,12 +2218,71 @@ "node": ">= 0.8" } }, + "node_modules/urllib": { + "version": "2.44.0", + "resolved": "https://registry.npmmirror.com/urllib/-/urllib-2.44.0.tgz", + "integrity": "sha512-zRCJqdfYllRDA9bXUtx+vccyRqtJPKsw85f44zH7zPD28PIvjMqIgw9VwoTLV7xTBWZsbebUFVHU5ghQcWku2A==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.3.0", + "content-type": "^1.0.2", + "default-user-agent": "^1.0.0", + "digest-header": "^1.0.0", + "ee-first": "~1.1.1", + "formstream": "^1.1.0", + "humanize-ms": "^1.2.0", + "iconv-lite": "^0.6.3", + "pump": "^3.0.0", + "qs": "^6.4.0", + "statuses": "^1.3.1", + "utility": "^1.16.1" + }, + "engines": { + "node": ">= 0.10.0" + }, + "peerDependencies": { + "proxy-agent": "^5.0.0" + }, + "peerDependenciesMeta": { + "proxy-agent": { + "optional": true + } + } + }, + "node_modules/urllib/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, + "node_modules/utility": { + "version": "1.18.0", + "resolved": "https://registry.npmmirror.com/utility/-/utility-1.18.0.tgz", + "integrity": "sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==", + "license": "MIT", + "dependencies": { + "copy-to": "^2.0.1", + "escape-html": "^1.0.3", + "mkdirp": "^0.5.1", + "mz": "^2.7.0", + "unescape": "^1.0.1" + }, + "engines": { + "node": ">= 0.12.0" + } + }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", @@ -1223,6 +2291,19 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", @@ -1259,6 +2340,27 @@ "node": ">=16" } }, + "node_modules/win-release": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz", + "integrity": "sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==", + "license": "MIT", + "dependencies": { + "semver": "^5.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/win-release/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/window-size": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/window-size/-/window-size-0.1.0.tgz", @@ -1295,6 +2397,40 @@ "node": ">=0.4.0" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "license": "MIT" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", @@ -1317,6 +2453,94 @@ } }, "dependencies": { + "@alicloud/dybaseapi": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@alicloud/dybaseapi/-/dybaseapi-1.0.0.tgz", + "integrity": "sha512-4KEDgqES7IL60T/TWGSkLQkN6BYeHEw8smnPgac2J2MTES5v1ieCWvbLSuUUWi5SAXi7cydKoD4HUOmX7xwM+A==", + "requires": { + "@alicloud/pop-core": "^1.3.3" + } + }, + "@alicloud/dysmsapi-2017-05-25": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@alicloud/dysmsapi-2017-05-25/-/dysmsapi-2017-05-25-1.0.1.tgz", + "integrity": "sha512-CVX/Yl9ntwkAOHAZa3j2Y/Io+SlbETw/ILv4UPIDCEIQm/N0EEcN2OXF8cWCUvHeu7OgnFWZKhdJY5GsbjWHDA==", + "requires": { + "@alicloud/pop-core": "^1.5.1" + } + }, + "@alicloud/mns": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@alicloud/mns/-/mns-1.0.0.tgz", + "integrity": "sha512-SUJYM8+x3iPy6thIy5Wa/5lw7+RodeDDIPcI3QQ3bZPNCSq+yEC3jMtfVlS3vxGPq+dGjAysI9RGeM7NByeHlw==", + "requires": { + "debug": "^2.6.3", + "httpx": "^2.1.1", + "kitx": "^1.2.0", + "xml2js": "^0.4.17" + } + }, + "@alicloud/pop-core": { + "version": "1.7.13", + "resolved": "https://registry.npmmirror.com/@alicloud/pop-core/-/pop-core-1.7.13.tgz", + "integrity": "sha512-agzr4DU+aAGW7/2mp2hP1JcNJkn/zBS0jUGQt5etIASN0MVq1tMdudVqvWbExUG0mUouo/n2VgdnjOHjswvrlA==", + "requires": { + "debug": "^3.1.0", + "httpx": "^2.1.2", + "json-bigint": "^1.0.0", + "kitx": "^1.2.1", + "xml2js": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + } + } + }, + "@alicloud/sms-sdk": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/@alicloud/sms-sdk/-/sms-sdk-1.1.6.tgz", + "integrity": "sha512-jW5ROjpAtOrNFkZSXb8geJWzkgJ9ggnPx+ve+72eatu78/vad2emdZjRx43/xPqqhA9djRoU3xHQt2xFODiaMQ==", + "requires": { + "@alicloud/dybaseapi": "^1.0.0", + "@alicloud/dysmsapi-2017-05-25": "^1.0.1", + "@alicloud/mns": "^1.0.0-beta6", + "babel-runtime": "^6.26.0" + } + }, + "@fidm/asn1": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@fidm/asn1/-/asn1-1.0.4.tgz", + "integrity": "sha512-esd1jyNvRb2HVaQGq2Gg8Z0kbQPXzV9Tq5Z14KNIov6KfFD6PTaRIO8UpcsYiTNzOqJpmyzWgVTrUwFV3UF4TQ==" + }, + "@fidm/x509": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@fidm/x509/-/x509-1.2.1.tgz", + "integrity": "sha512-nwc2iesjyc9hkuzcrMCBXQRn653XuAUKorfWM8PZyJawiy1QzLj4vahwzaI25+pfpwOLvMzbJ0uKpWLDNmo16w==", + "requires": { + "@fidm/asn1": "^1.0.4", + "tweetnacl": "^1.0.1" + } + }, "@mongodb-js/saslprep": { "version": "1.1.9", "resolved": "https://registry.npmmirror.com/@mongodb-js/saslprep/-/saslprep-1.1.9.tgz", @@ -1325,6 +2549,22 @@ "sparse-bitfield": "^3.0.3" } }, + "@types/jsonwebtoken": { + "version": "9.0.7", + "resolved": "https://registry.npmmirror.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.7.tgz", + "integrity": "sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "22.10.1", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", + "requires": { + "undici-types": "~6.20.0" + } + }, "@types/webidl-conversions": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", @@ -1360,6 +2600,29 @@ "acorn": "^2.1.0" } }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "requires": { + "ms": "^2.1.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmmirror.com/align-text/-/align-text-0.1.4.tgz", @@ -1370,11 +2633,53 @@ "repeat-string": "^1.5.2" } }, + "alipay-sdk": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/alipay-sdk/-/alipay-sdk-3.6.2.tgz", + "integrity": "sha512-YJyBszWMEjfoLUVJT5kXDQhqOOo8xQ+/Mc4l5TUSAJ1sc2ewHf4oRLtXpuOJFnxBfTAsvPqjZ1bGVxLacX+uxw==", + "requires": { + "@fidm/x509": "^1.2.1", + "bignumber.js": "^9.0.0", + "camelcase-keys": "^4.2.0", + "crypto-js": "^4.0.0", + "decamelize": "^2.0.0", + "iconv-lite": "^0.4.24", + "is": "^3.2.1", + "is-json": "^2.0.1", + "lodash": "^4.17.20", + "moment": "^2.16.0", + "snakecase-keys": "^1.1.1", + "urllib": "^2.17.0" + }, + "dependencies": { + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "requires": { + "xregexp": "4.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==" }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, "append-field": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/append-field/-/append-field-1.0.0.tgz", @@ -1390,6 +2695,20 @@ "resolved": "https://registry.npmmirror.com/asap/-/asap-1.0.0.tgz", "integrity": "sha512-Ej9qjcXY+8Tuy1cNqiwNMwFRXOy9UwgTeMA8LxreodygIPV48lx8PU1ecFxb5ZeU1DpMKxiq6vGLTxcitWZPbA==" }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, "basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/basic-auth/-/basic-auth-2.0.1.tgz", @@ -1398,6 +2717,11 @@ "safe-buffer": "5.1.2" } }, + "bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==" + }, "body-parser": { "version": "1.18.3", "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.18.3.tgz", @@ -1420,6 +2744,11 @@ "resolved": "https://registry.npmmirror.com/bson/-/bson-6.10.0.tgz", "integrity": "sha512-ROchNosXMJD2cbQGm84KoP7vOGPO6/bOAW0veMMbzhXLqoZptcaYRVLitwvuhwhjjpU1qP4YZRWLhgETdgqUQw==" }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", @@ -1443,6 +2772,23 @@ "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-1.2.1.tgz", "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==" }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==", + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==" + } + } + }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmmirror.com/center-align/-/center-align-0.1.3.tgz", @@ -1486,6 +2832,14 @@ "wordwrap": "0.0.2" } }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { "version": "2.6.0", "resolved": "https://registry.npmmirror.com/commander/-/commander-2.6.0.tgz", @@ -1539,6 +2893,16 @@ "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "copy-to": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/copy-to/-/copy-to-2.0.1.tgz", + "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==" + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", @@ -1553,6 +2917,11 @@ "vary": "^1" } }, + "crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, "css": { "version": "1.0.8", "resolved": "https://registry.npmmirror.com/css/-/css-1.0.8.tgz", @@ -1585,6 +2954,19 @@ "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" }, + "default-user-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/default-user-agent/-/default-user-agent-1.0.0.tgz", + "integrity": "sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==", + "requires": { + "os-name": "~1.0.3" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz", @@ -1595,6 +2977,19 @@ "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.0.4.tgz", "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" }, + "digest-header": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/digest-header/-/digest-header-1.1.0.tgz", + "integrity": "sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg==" + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", @@ -1605,6 +3000,14 @@ "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", @@ -1615,6 +3018,11 @@ "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, "express": { "version": "4.16.4", "resolved": "https://registry.npmmirror.com/express/-/express-4.16.4.tgz", @@ -1659,6 +3067,29 @@ } } }, + "express-jwt": { + "version": "8.4.1", + "resolved": "https://registry.npmmirror.com/express-jwt/-/express-jwt-8.4.1.tgz", + "integrity": "sha512-IZoZiDv2yZJAb3QrbaSATVtTCYT11OcqgFGoTN4iKVyN6NBkBkhtVIixww5fmakF0Upt5HfOxJuS6ZmJVeOtTQ==", + "requires": { + "@types/jsonwebtoken": "^9", + "express-unless": "^2.1.3", + "jsonwebtoken": "^9.0.0" + } + }, + "express-unless": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/express-unless/-/express-unless-2.1.3.tgz", + "integrity": "sha512-wj4tLMyCVYuIIKHGt0FhCtIViBcwzWejX0EjNxveAa6dG+0XBCQhMbx+PnkLkFCxLC69qoFrxds4pIyL88inaQ==" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + }, "finalhandler": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.1.tgz", @@ -1673,6 +3104,34 @@ "unpipe": "~1.0.0" } }, + "form-data": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.2.tgz", + "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formstream": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/formstream/-/formstream-1.5.1.tgz", + "integrity": "sha512-q7ORzFqotpwn3Y/GBK2lK7PjtZZwJHz9QE9Phv8zb5IrL9ftGLyi2zjGURON3voK8TaZ+mqJKERYN4lrHYTkUQ==", + "requires": { + "destroy": "^1.0.4", + "mime": "^2.5.2", + "node-hex": "^1.0.1", + "pause-stream": "~0.0.11" + }, + "dependencies": { + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + } + } + }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", @@ -1683,6 +3142,11 @@ "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, "graceful-readlink": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz", @@ -1699,6 +3163,75 @@ "statuses": ">= 1.4.0 < 2" } }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "requires": { + "ms": "^2.1.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "httpx": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/httpx/-/httpx-2.3.3.tgz", + "integrity": "sha512-k1qv94u1b6e+XKCxVbLgYlOypVP9MPGpnN5G/vxFf6tDO4V3xpz3d6FUOY/s8NtPgaq5RBVVgSB+7IHpVxMYzw==", + "requires": { + "@types/node": "^20", + "debug": "^4.1.1" + }, + "dependencies": { + "@types/node": { + "version": "20.17.9", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.17.9.tgz", + "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", + "requires": { + "undici-types": "~6.19.2" + } + }, + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "requires": { + "ms": "^2.1.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "requires": { + "ms": "^2.0.0" + } + }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -1717,16 +3250,36 @@ "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/is/-/is-3.3.0.tgz", + "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==" + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, + "is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==" + }, "is-promise": { "version": "2.2.2", "resolved": "https://registry.npmmirror.com/is-promise/-/is-promise-2.2.2.tgz", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", @@ -1749,6 +3302,38 @@ "with": "~4.0.0" } }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "requires": { + "bignumber.js": "^9.0.0" + } + }, + "jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmmirror.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, "jstransformer": { "version": "0.0.2", "resolved": "https://registry.npmmirror.com/jstransformer/-/jstransformer-0.0.2.tgz", @@ -1758,6 +3343,25 @@ "promise": "^6.0.1" } }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "kareem": { "version": "2.6.3", "resolved": "https://registry.npmmirror.com/kareem/-/kareem-2.6.3.tgz", @@ -1771,16 +3375,66 @@ "is-buffer": "^1.1.5" } }, + "kitx": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/kitx/-/kitx-1.3.0.tgz", + "integrity": "sha512-fhBqFlXd0GkKTB+8ayLfpzPUw+LHxZlPAukPNBD1Om7JMeInT+/PxCAf1yLagvD+VKoyWhXtJR68xQkX/a0wOQ==" + }, "lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==" }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz", "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==" }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", @@ -1832,6 +3486,11 @@ "minimist": "^1.2.6" } }, + "moment": { + "version": "2.30.1", + "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + }, "mongodb": { "version": "6.10.0", "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-6.10.0.tgz", @@ -1931,11 +3590,55 @@ "xtend": "^4.0.0" } }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-hex": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/node-hex/-/node-hex-1.0.1.tgz", + "integrity": "sha512-iwpZdvW6Umz12ICmu9IYPRxg0tOLGmU3Tq2tKetejCj3oZd7b2nUXwP3a7QA5M9glWy8wlPS1G3RwM/CdsUbdQ==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", @@ -1954,6 +3657,14 @@ "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, "optimist": { "version": "0.3.7", "resolved": "https://registry.npmmirror.com/optimist/-/optimist-0.3.7.tgz", @@ -1962,6 +3673,37 @@ "wordwrap": "~0.0.2" } }, + "os-name": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/os-name/-/os-name-1.0.3.tgz", + "integrity": "sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==", + "requires": { + "osx-release": "^1.0.0", + "win-release": "^1.0.0" + } + }, + "osx-release": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/osx-release/-/osx-release-1.1.0.tgz", + "integrity": "sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==", + "requires": { + "minimist": "^1.1.0" + } + }, + "p-queue": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/p-queue/-/p-queue-8.0.1.tgz", + "integrity": "sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==", + "requires": { + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + } + }, + "p-timeout": { + "version": "6.1.3", + "resolved": "https://registry.npmmirror.com/p-timeout/-/p-timeout-6.1.3.tgz", + "integrity": "sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==" + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", @@ -1972,6 +3714,14 @@ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmmirror.com/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "requires": { + "through": "~2.3" + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -1994,6 +3744,15 @@ "ipaddr.js": "1.9.1" } }, + "pump": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.3.1", "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", @@ -2004,6 +3763,11 @@ "resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==" + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", @@ -2034,6 +3798,11 @@ "util-deprecate": "~1.0.1" } }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", @@ -2057,6 +3826,16 @@ "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sax": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + }, + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" + }, "send": { "version": "0.16.2", "resolved": "https://registry.npmmirror.com/send/-/send-0.16.2.tgz", @@ -2098,6 +3877,15 @@ "resolved": "https://registry.npmmirror.com/sift/-/sift-17.1.3.tgz", "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==" }, + "snakecase-keys": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/snakecase-keys/-/snakecase-keys-1.2.0.tgz", + "integrity": "sha512-G5Faa3wQevGXcD5e4JKfmgofO+Fu4Jg4/nLyeZqWmBqVV0/3ORgervt3EjBi6PEFKhztPQWegZspteWnycx5dg==", + "requires": { + "map-obj": "~2.0.0", + "to-snake-case": "~0.1.2" + } + }, "source-map": { "version": "0.4.4", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.4.4.tgz", @@ -2132,6 +3920,72 @@ "safe-buffer": "~5.1.0" } }, + "tencentcloud-sdk-nodejs-common": { + "version": "4.0.987", + "resolved": "https://registry.npmmirror.com/tencentcloud-sdk-nodejs-common/-/tencentcloud-sdk-nodejs-common-4.0.987.tgz", + "integrity": "sha512-wWasXTvUkAUDb/6X3kp9cDC38SM0a5wRj10U72abVp0ZzljpwFC71kxMR8nSWW8cgYfx91aJhWLMneIBW8ksqw==", + "requires": { + "form-data": "^3.0.0", + "get-stream": "^6.0.0", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "json-bigint": "^1.0.0", + "node-fetch": "^2.2.0", + "tslib": "1.13.0", + "uuid": "^9.0.1" + } + }, + "tencentcloud-sdk-nodejs-iai": { + "version": "4.0.978", + "resolved": "https://registry.npmmirror.com/tencentcloud-sdk-nodejs-iai/-/tencentcloud-sdk-nodejs-iai-4.0.978.tgz", + "integrity": "sha512-j2Vvfm/Ig8AVaaEMXu2UeL5+YPZ9kbLlSwumfdZ4v/suuEjmIxWG4xMFEu/CZLJfHQNLGfFfmu80/LYhBJoVOA==", + "requires": { + "tencentcloud-sdk-nodejs-common": "^4.0.488", + "tslib": "1.13.0" + } + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "to-no-case": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/to-no-case/-/to-no-case-0.1.1.tgz", + "integrity": "sha512-XNChsa36ssNQibYbv/kBSLb0jEfPuePdnbX1tBpHypUbtjBSR8ihaDRRYPZLMstjSpPM+onSgxeDjg+lgfIzZQ==" + }, + "to-snake-case": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/to-snake-case/-/to-snake-case-0.1.2.tgz", + "integrity": "sha512-0h2qEd1GZjWTbUqKRVo7D6ZdhM5H/2hUlA4g1+kQE4C27709WEVmbtAE+PQbYQ8iLgcyoHWMIN7fx6t8kg4Zkg==", + "requires": { + "to-space-case": "0.1.2" + } + }, + "to-space-case": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/to-space-case/-/to-space-case-0.1.2.tgz", + "integrity": "sha512-DtF9QZwx8W6WMhrCuvUZJYX9sT74/VOdVxi68EkEu3gt0SUQHhJG+UYbQI0559XcchsX7gziPlWuV4dEGC59dA==", + "requires": { + "to-no-case": "0.1.1" + } + }, "tr46": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/tr46/-/tr46-4.1.1.tgz", @@ -2182,6 +4036,16 @@ } } }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", @@ -2219,21 +4083,80 @@ "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", "optional": true }, + "undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" + }, + "unescape": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/unescape/-/unescape-1.0.1.tgz", + "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==", + "requires": { + "extend-shallow": "^2.0.1" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, + "urllib": { + "version": "2.44.0", + "resolved": "https://registry.npmmirror.com/urllib/-/urllib-2.44.0.tgz", + "integrity": "sha512-zRCJqdfYllRDA9bXUtx+vccyRqtJPKsw85f44zH7zPD28PIvjMqIgw9VwoTLV7xTBWZsbebUFVHU5ghQcWku2A==", + "requires": { + "any-promise": "^1.3.0", + "content-type": "^1.0.2", + "default-user-agent": "^1.0.0", + "digest-header": "^1.0.0", + "ee-first": "~1.1.1", + "formstream": "^1.1.0", + "humanize-ms": "^1.2.0", + "iconv-lite": "^0.6.3", + "pump": "^3.0.0", + "qs": "^6.4.0", + "statuses": "^1.3.1", + "utility": "^1.16.1" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, + "utility": { + "version": "1.18.0", + "resolved": "https://registry.npmmirror.com/utility/-/utility-1.18.0.tgz", + "integrity": "sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==", + "requires": { + "copy-to": "^2.0.1", + "escape-html": "^1.0.3", + "mkdirp": "^0.5.1", + "mz": "^2.7.0", + "unescape": "^1.0.1" + } + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", @@ -2258,6 +4181,21 @@ "webidl-conversions": "^7.0.0" } }, + "win-release": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/win-release/-/win-release-1.1.1.tgz", + "integrity": "sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==", + "requires": { + "semver": "^5.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + } + } + }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/window-size/-/window-size-0.1.0.tgz", @@ -2284,6 +4222,30 @@ "resolved": "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.2.tgz", "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==" }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", diff --git a/demo_server/package.json b/demo_server/package.json index b29722642f3e5021803a1e79fdea8f38f22e3f4d..db8d44898fd5eb1d42af696be1c7d075109e79d2 100644 --- a/demo_server/package.json +++ b/demo_server/package.json @@ -14,6 +14,13 @@ "jade": "~1.11.0", "mongoose": "^8.8.4", "morgan": "~1.9.1", - "multer": "^1.4.5-lts.1" + "multer": "^1.4.5-lts.1", + + "@alicloud/sms-sdk": "^1.1.6", + "alipay-sdk": "^3.6.1", + "express-jwt": "^8.4.1", + "jsonwebtoken": "^9.0.2", + "p-queue": "^8.0.1", + "tencentcloud-sdk-nodejs-iai": "^4.0.918" } -} +} \ No newline at end of file diff --git a/demo_server/routes/index.js b/demo_server/routes/index.js index ac6b1c85610c4377630f5c6454e42b4a601e24ab..458f37d94f944035b077c985a51986a262c64a52 100644 --- a/demo_server/routes/index.js +++ b/demo_server/routes/index.js @@ -2,9 +2,7 @@ var express = require('express'); var router = express.Router(); const multer = require('multer'); const path = require('path'); -const { User, Address, areaModel, areaCateModel, QuestionModel } = require('../db/model'); - - +const { UserModel, User, Address, areaModel, areaCateModel, QuestionModel, } = require('../db/model'); const bodyParser = require('body-parser'); @@ -14,6 +12,330 @@ app.use(bodyParser.urlencoded({ extended: true })); +// lhy 依赖 +const SMSClient = require('@alicloud/sms-sdk'); +const jwt = require('jsonwebtoken'); +const tencentcloud = require("tencentcloud-sdk-nodejs-iai"); +const axios = require('axios'); + +const BAIDU_API_KEY = 'RV2HxwyPvSpM8teGLirxJ0L6'; +const BAIDU_SECRET_KEY = 'ihEFaKAikcVjkJ0FAlZvSmvDpcn7SPCz'; + +// lhy 接口 + +// 获取百度 API 的 access token +async function getBaiduToken() { + try { + const res = await axios.post( + 'https://aip.baidubce.com/oauth/2.0/token', + null, + { + params: { + grant_type: 'client_credentials', + client_id: BAIDU_API_KEY, + client_secret: BAIDU_SECRET_KEY, + }, + } + ); + console.log('百度Token:', res.data.access_token); // 输出 Token,调试用 + return res.data.access_token; + } catch (err) { + console.error('获取百度Token失败:', err); + throw new Error('无法获取Token'); + } +} + +// 实时人脸验证接口 +router.post('/faceyanzhen', async (req, res) => { + const { name, certNumber, imageBase64 } = req.body; + try { + const token = await getBaiduToken(); + console.log('Token:', token); // 输出 Token,调试用 + + // 人脸验证接口请求 + // 人脸验证接口请求 + const response = await axios.post( + 'https://aip.baidubce.com/rest/2.0/face/v3/faceverify', + JSON.stringify([ + { + image: imageBase64, + image_type: 'BASE64', + face_field: 'liveness', + liveness_control: 'HIGH' + } + ]), + { + headers: { 'Content-Type': 'application/json' }, // 确保设置为 JSON + params: { access_token: token } + } + ); + + + + console.log('人脸验证结果:', response.data); // 输出验证结果,调试用 + + // 检查返回的活体检测值是否满足通过条件 + if (response.data.result && response.data.result.face_liveness > 0.5) { // 将阈值从 0.8 调整为 0.4 + res.status(200).json({ success: true, message: '认证通过!' }); + } else { + res.status(200).json({ success: false, message: '认证失败,请重试!' }); + } + + } catch (error) { + console.error('人脸认证失败:', error); + res.status(500).json({ success: false, message: '服务错误,请稍后再试!' }); + } +}); + + + + +const AlipayFormData = require('alipay-sdk/lib/form').default +const alipaySdk = require('../alipay') + + + +//六位验证码 +function getCode() { + let str = ""; + for (let i = 0; i < 6; i++) { + str += parseInt(Math.random() * 10) + } + return str; +} +//手机号验证码 +let msm = '' +router.post('/url1', function (req, res, next) { + let phoneNum = req.body.phone; + //初始化sms_client + let smsClient = new SMSClient({ + accessKeyId: 'LTAI5tRB3emUsuAA5mV6zg9G', //accessKeyId 前面提到要准备的 + secretAccessKey: '31caLOagHgddJN0QeeXRRNUpzBUdAe' //secretAccessKey 前面提到要准备的 + }); + let str = getCode(); + msm = str; + // 开始发送短信 + smsClient.sendSMS({ + PhoneNumbers: phoneNum, + SignName: "WYK123WYK456", //签名名称 前面提到要准备的 + TemplateCode: "SMS_474670083", //模版CODE 前面提到要准备的 + TemplateParam: `{"code":'${str}'}`, // 短信模板变量对应的实际值,JSON格式 + }).then(result => { + console.log("result", result) + let { Code } = result; + if (Code == 'OK') { + res.json({ + code: 0, + msg: 'success', + sms: str + }) + console.log(result) + } + }).catch(err => { + console.log(err); + res.json({ + code: 1, + msg: 'fail: ' + err.data.Message + }) + }) +}); + +//手机号验证码登录 +router.post('/login', async (req, res) => { + try { + let phone = req.body.phone + let yan = req.query.yan + const user = await UserModel.findOne({ phone }) + if (user && yan === msm) { + const userInfo = { phone } + const accessToken = jwt.sign(userInfo, 'abcdefg', { expiresIn: '0.5h' }) + const refreshToken = jwt.sign(userInfo, 'abcdefg', { expiresIn: '1d' }) + return res.send({ code: 200, msg: '登陆成功', accessToken, refreshToken }) + } + if (!user) { + await UserModel.create(req.body) + return res.send({ code: 200, msg: '添加成功' }) + } + res.send({ code: 400, msg: '登陆失败' }) + } catch (err) { + res.status(500).send({ code: 500, msg: '服务器错误' }) + } +}) + +//手机号密码登录 +router.post('/login2', async (req, res) => { + let { phone, pass } = req.body + let user = await UserModel.find() + user.forEach(item => { + if (item.phone != phone) { + return res.send({ code: 400, msg: '用户不存在' }) + } + if (item.pass != pass) { + return res.send({ code: 400, msg: '密码错误' }) + } + }) + const userInfo = { phone } + const accessToken = jwt.sign(userInfo, 'abcdefg', { expiresIn: '0.5h' }) + const refreshToken = jwt.sign(userInfo, 'abcdefg', { expiresIn: '1d' }) + res.send({ code: 200, msg: '登陆成功', userInfo, accessToken, refreshToken }) +}) + +// 用户注册接口 +router.post('/addUser', async (req, res) => { + const { phone, pass } = req.body; + + // 检查手机号和密码是否有效 + if (!phone || !pass) { + return res.send({ code: 400, msg: '手机号和密码不能为空' }); + } + + // 检查用户是否已存在 + const existingUser = await UserModel.findOne({ phone }); + if (existingUser) { + return res.send({ code: 409, msg: '该手机号已注册' }); + } + + // 创建新用户 + const newUser = new UserModel({ phone, pass }); + try { + await newUser.save(); + res.send({ code: 200, msg: '用户注册成功' }); + } catch (error) { + res.send({ code: 500, msg: '用户注册失败', error }); + } +}); + + +//忘记密码 +router.post('/wang', async (req, res) => { + let { phone, yan, pass } = req.body + if (yan != msm) { + return res.send({ code: 400, msg: '验证码错误' }) + } + let user = await UserModel.findOne({ phone: phone }) + if (!user) { + return res.send({ code: 400, msg: '用户不存在' }) + } + let result = await UserModel.updateOne({ phone: phone }, { $set: { pass: pass } }) + if (!result.nModified) { + return res.send({ code: 200, msg: '修改成功' }) + } else { + return res.send({ code: 400, msg: '修改失败' }) + } +}) + +//人脸识别登录 +router.post('/faceLogin', async (req, res) => { + let b64 = req.body.b64 + const IaiClient = tencentcloud.iai.v20200303.Client; + try { + const clientConfig = { + credential: { secretId: "AKIDsFOK4cx43whIhuAQVNTWM3Y5Zv9A5nHX", secretKey: "HRO7byBetxugGhvzqZAXhdQ00qZBOTLF", }, + region: "ap-beijing", + profile: { httpProfile: { endpoint: "iai.tencentcloudapi.com", }, }, + }; + const client = new IaiClient(clientConfig); + const params = { + "GroupIds": ["WYK123Wyk123"], + "Image": b64, + "NeedPersonInfo": 1, + "QualityControl": 0, + "FaceMatchThreshold": 85, + }; + let doc = await client.SearchFaces(params) + if (doc.Results[0].Candidates.length != 0) { + let token = jwt.sign({ name: doc.Results[0].Candidates[0].PersonName }, 'secret', { expiresIn: '1h' }) + let personName = doc.Results[0].Candidates[0].PersonName + res.send({ code: 200, msg: "登录成功!", token }) + let user = await UserModel.find({ facename: personName }) + if (user.length != 0) { + const accessToken = jwt.sign({ name: personName }, 'abcdefg', { expiresIn: '0.5h' }) + const refreshToken = jwt.sign({ name: personName }, 'abcdefg', { expiresIn: '1d' }) + res.send({ code: 200, msg: "登录成功!", accessToken, refreshToken, _id: user[0]._id }) + } + } else { + res.send({ code: 401, msg: '人脸库无此人!' }) + return false + } + } catch (err) { + console.log(err); + } +}) + + + + + + +router.post("/pcpay", async (req, res) => { + let { data } = req.body + console.log(data) + const formData = new AlipayFormData() + + formData.setMethod('get'); + // 通过addField增加参数 + // 在用户支付完成之后,支付宝服务器会根据传入的notify_url,以post请求的形式将支付结果作为参数通知到商户系统 + // 支付成功或失败都返回 + formData.addField('returnUrl', "http://127.0.0.1:3001/pingjia");//支付成功后返回的页面 + formData.addField('bizContent', { + out_trade_no: 'e4b0c44278fc1c149afbf4c5396fb92424ae41e4649b834ca495999b7952b854',//订单号 64个字符以内 可包含字母、数字、下划线、且不能重复 + product_code: "FAST_INSTANT_TRADE_PAY",//销售产品码,与支付宝签约的产品码名称,仅支持FAST_INSTANT_TRADE_PAY + total_amount: 8,// 订单总金额 + subject: '1229',// 订单描述 + body: '34234',// 商品描述 + }) + // 返回promise + const result = await alipaySdk.exec( + 'alipay.trade.wap.pay',//统一收单下单并支付页面接口, + {},//api请求的参数(包含 “公共请求参数”和“业务参数”) + { formData: formData }// result为可以跳转支付链接的url + ) + // res.json({ url: result }) + res.send({ + code: 200, + result + }) +}) + + + + + +router.post("/pcfy", async (req, res) => { + let { data } = req.body + console.log(data) + const formData = new AlipayFormData() + + formData.setMethod('get'); + // 通过addField增加参数 + // 在用户支付完成之后,支付宝服务器会根据传入的notify_url,以post请求的形式将支付结果作为参数通知到商户系统 + // 支付成功或失败都返回 + formData.addField('returnUrl', "http://127.0.0.1:3001/qvxiaodingdan");//支付成功后返回的页面 + formData.addField('bizContent', { + out_trade_no: 'e4b0c44278fc1c149afbf4c8996fb92427ae41e4649b934ca496459b7952b854',//订单号 64个字符以内 可包含字母、数字、下划线、且不能重复 + product_code: "FAST_INSTANT_TRADE_PAY",//销售产品码,与支付宝签约的产品码名称,仅支持FAST_INSTANT_TRADE_PAY + total_amount: 5,// 订单总金额 + subject: '1234',// 订单描述 + body: '34234',// 商品描述 + }) + // 返回promise + const result = await alipaySdk.exec( + 'alipay.trade.wap.pay',//统一收单下单并支付页面接口, + {},//api请求的参数(包含 “公共请求参数”和“业务参数”) + { formData: formData }// result为可以跳转支付链接的url + ) + // res.json({ url: result }) + res.send({ + code: 200, + result + }) +}) + + + + +// wzy 接口 + // 设置 multer 存储配置 const storage = multer.diskStorage({ destination: (req, file, cb) => {