feat(feature): QRCode

mack-mac
mackt 7 months ago
parent 409bb5ca3f
commit 357894afc0

@ -17,6 +17,7 @@
"@radix-ui/react-popover": "^1.0.7",
"@radix-ui/react-slot": "^1.0.2",
"@radix-ui/react-toast": "^1.1.5",
"@types/qrcode": "^1.5.5",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.0",
"immer": "^10.0.4",
@ -24,6 +25,7 @@
"lucide-react": "^0.367.0",
"next": "14.1.3",
"nookies": "^2.5.2",
"qrcode": "^1.5.3",
"qs": "^6.12.0",
"react": "^18",
"react-dom": "^18",

@ -1,19 +1,3 @@
import QRCodeDialog from './QRCodeDialog';
import { apiAppVersionCheck } from '@/services';
const getData = async (platform: AppPlatform) => {
const res = await apiAppVersionCheck(platform);
if (res.code === 200) {
return res.data;
} else {
return {
version: '1.0.0',
url: '',
};
}
};
const IconIos = ({ className }: { className?: string }) => {
return (
<svg

@ -5,9 +5,8 @@ import { apiAppVersionCheck } from '@/services';
export default async function FooterPlatform({ className }: { className?: string }) {
// 请求 mac 下载地址
const res = await apiAppVersionCheck('mac');
console.log(res);
const macUrl = res.code === 200 ? res.data.url : '#';
// const res = await apiAppVersionCheck('mac');
// const macUrl = res?.data?.url || '#';
return (
<div className={`w-auto text-[rgba(255,255,255,0.6)] ${className}`}>
@ -21,9 +20,9 @@ export default async function FooterPlatform({ className }: { className?: string
<DownLoadItem platform="android" />
</QRCodeDialog>
<a href={macUrl} target="_blank">
{/* <a href={macUrl} target="_blank">
<DownLoadItem platform="mac" />
</a>
</a> */}
<QRCodeDialog platform="pad" headerText="Pad版下载" buttonText="去App Store下载">
<DownLoadItem platform="pad" />

@ -2,10 +2,9 @@
import { useState, useEffect } from 'react';
import Image from 'next/image';
import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogTrigger } from '@/components/ui/alert-dialog';
import { QRCode } from '@/components';
import { apiAppVersionCheck } from '@/services';
export default function QRCodeDialog({
@ -25,8 +24,8 @@ export default function QRCodeDialog({
const getData = async () => {
const res = await apiAppVersionCheck(platform);
if (res.code === 200) {
setVersion(res.data.version);
setUrl(res.data.url);
setVersion(res.data?.version || '1.0.0');
setUrl(res.data?.url || '1.0.0');
}
};
@ -42,13 +41,11 @@ export default function QRCodeDialog({
<AlertDialogCancel className="absolute top-[24px] right-[24px] w-[24px] h-[24px] p-0 border-none bg-[#f2f3f7] bg-[url(/img/icon/close.svg)] bg-no-repeat bg-cover" />
<p className="text-[#000] text-[24px] leading-[34px] font-bold ">{headerText}</p>
<p className="mt-[2px] text-[#000] text-opacity-70 text-[13px] leading-[18px] ">{`最新版V${version}`}</p>
<Image
width={200}
height={200}
src={'/img/download/qrcode_' + platform + '.svg'}
alt="qrcode"
className="w-[200px] h-[200px] mt-[24px] bg-[#fff] rounded-[24px] object-cover"
/>
<div className="w-[200px] h-[200px] mt-[24px] bg-[#fff] rounded-[24px] overflow-hidden">
{!!url && <QRCode text={url} className="w-full h-full" />}
</div>
<button
className="w-[280px] h-[56px] rounded-[100px] text-[#fff] text-[14px] leading-[20px] bg-brand mt-[38px]"
onClick={() => window.open(url)}

@ -5,9 +5,9 @@ export default function CommentIcon({ count }: { count: string }) {
<path
className="stroke-[#C5C5C5] group-hover:stroke-brand group-hover:stroke-opacity-0 transition-stroke"
d="M20.5 12C20.5034 13.3199 20.195 14.6219 19.6 15.8C18.8944 17.2117 17.8097 18.3992 16.4674 19.2293C15.1251 20.0594 13.5782 20.4994 12 20.5C10.6801 20.5034 9.37812 20.195 8.20001 19.6L4.10714 19.8929L4.40003 15.8C3.80496 14.6219 3.49659 13.3199 3.50003 12C3.50064 10.4218 3.94064 8.87486 4.77074 7.53257C5.60085 6.19027 6.78827 5.10559 8.20001 4.40003C9.37812 3.80496 10.6801 3.49659 12 3.50003H12.5C14.5843 3.61502 16.553 4.49479 18.0291 5.97088C19.5052 7.44697 20.385 9.41566 20.5 11.5V12Z"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
<span className="ml-[6px] text-[14px] leading-[16px] text-[rgba(0,0,0,0.4)] group-hover:text-brand">{count}</span>

@ -0,0 +1,24 @@
'use client';
import React, { useState, useEffect } from 'react';
import QRCode from 'qrcode';
const QRCodeComponent = ({ text, className }: { text: string; className?: string }) => {
const [src, setSrc] = useState('');
useEffect(() => {
if (!text) return;
QRCode.toDataURL(text)
.then((url) => {
setSrc(url);
})
.catch((err) => {
console.error(err);
});
}, [text]);
return <img className={className} src={src} alt="QR Code" />;
};
export default QRCodeComponent;

@ -33,6 +33,7 @@ export { default as Input } from './common/Input';
export { default as Button } from './common/Button';
export { default as AutoScrollContainer } from './common/AutoScrollContainer';
export { default as Avatar } from './Avatar';
export { default as QRCode } from './common/QRCode';
// Audio Player
export { default as PlayerBar } from './AudioPlayer/PlayerBar';

@ -0,0 +1,15 @@
import clientHttp from '@/utils/request/client';
/**
* @description
*/
export const apiAppVersionCheck: (platform: AppPlatform) => Promise<FetchResponse<VersionCheck>> = async (platform) => {
const params = {
platform,
deviceId: 'web',
appVersion: '1.0.0',
};
const result: FetchResponse<VersionCheck> = await clientHttp.post(`/queyueapi/user/update/checkVersion`, params);
return result;
};

@ -3,12 +3,12 @@
*/
export * from './server/user';
export * from './server/journal';
export * from './server/app';
/**
* @description client request
*/
export * from './client/app';
export * from './client/audio';
export * from './client/user';
export * from './client/operate';
export * from './client/comment';
export * from './client/audio';

@ -1,22 +0,0 @@
import serverHttp from '@/utils/request/server';
/**
* @description
*/
export const apiAppVersionCheck: (platform: AppPlatform) => Promise<FetchResponse<VersionCheck>> = async (platform) => {
const data = new FormData();
data.append('platform', platform);
data.append('deviceId', 'web');
data.append('appVersion', '1.0.0');
const request = new Request('http://localhost', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
requestUrl: `/user/update/checkVersion`,
},
body: data,
});
const res = await serverHttp.post(request);
return res;
};

@ -24,7 +24,7 @@ export const post = async <T>(url: string, data: any, headers?: any, revalidate
Connection: 'keep-alive',
},
method: 'POST',
body: data && headers?.['Content-Type'] === 'application/json' ? JSON.stringify(data) : createFormBody(data),
body: headers?.['Content-Type'] === 'application/json' ? JSON.stringify(data) : createFormBody(data),
next: {
revalidate: revalidate,
},

@ -71,3 +71,13 @@ const streamToFormUrlEncoded = async (stream: ReadableStream<Uint8Array> | null)
return urlEncodedFormData;
};
export const createFormBody: (formDataObject: any) => string = (formDataObject: any) => {
const encodedForm = new URLSearchParams();
for (const key in formDataObject) {
if (formDataObject.hasOwnProperty(key)) {
encodedForm.append(key, formDataObject[key]);
}
}
return encodedForm.toString();
};

@ -1355,6 +1355,13 @@
resolved "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.11.tgz"
integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==
"@types/qrcode@^1.5.5":
version "1.5.5"
resolved "https://registry.npmmirror.com/@types/qrcode/-/qrcode-1.5.5.tgz#993ff7c6b584277eee7aac0a20861eab682f9dac"
integrity sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==
dependencies:
"@types/node" "*"
"@types/qs@^6.9.14":
version "6.9.14"
resolved "https://registry.npmmirror.com/@types/qs/-/qs-6.9.14.tgz"
@ -2020,6 +2027,11 @@ callsites@^3.0.0:
resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
camelcase@^5.0.0:
version "5.3.1"
resolved "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001591:
version "1.0.30001597"
resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz"
@ -2089,6 +2101,15 @@ client-only@0.0.1:
resolved "https://registry.npmmirror.com/client-only/-/client-only-0.0.1.tgz"
integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==
cliui@^6.0.0:
version "6.0.0"
resolved "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
dependencies:
string-width "^4.2.0"
strip-ansi "^6.0.0"
wrap-ansi "^6.2.0"
cliui@^8.0.1:
version "8.0.1"
resolved "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz"
@ -2288,6 +2309,11 @@ debug@^3.2.7:
dependencies:
ms "^2.1.1"
decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz"
@ -2331,6 +2357,11 @@ detect-node-es@^1.1.0:
resolved "https://registry.npmmirror.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==
dijkstrajs@^1.0.1:
version "1.0.3"
resolved "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23"
integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==
dir-glob@^3.0.1:
version "3.0.1"
resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz"
@ -2389,6 +2420,11 @@ emoji-regex@^9.2.2:
resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
encode-utf8@^1.0.3:
version "1.0.3"
resolved "https://registry.npmmirror.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda"
integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==
enhanced-resolve@^5.12.0:
version "5.16.0"
resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz"
@ -2842,6 +2878,14 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
find-up@^4.1.0:
version "4.1.0"
resolved "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
dependencies:
locate-path "^5.0.0"
path-exists "^4.0.0"
find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz"
@ -2928,7 +2972,7 @@ gensync@^1.0.0-beta.2:
resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz"
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
get-caller-file@^2.0.5:
get-caller-file@^2.0.1, get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
@ -3612,6 +3656,13 @@ local-pkg@^0.5.0:
mlly "^1.4.2"
pkg-types "^1.0.3"
locate-path@^5.0.0:
version "5.0.0"
resolved "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
dependencies:
p-locate "^4.1.0"
locate-path@^6.0.0:
version "6.0.0"
resolved "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz"
@ -3995,6 +4046,13 @@ optionator@^0.9.3:
prelude-ls "^1.2.1"
type-check "^0.4.0"
p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
dependencies:
p-try "^2.0.0"
p-limit@^3.0.2:
version "3.1.0"
resolved "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz"
@ -4009,6 +4067,13 @@ p-limit@^4.0.0:
dependencies:
yocto-queue "^1.0.0"
p-locate@^4.1.0:
version "4.1.0"
resolved "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
dependencies:
p-limit "^2.2.0"
p-locate@^5.0.0:
version "5.0.0"
resolved "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz"
@ -4023,6 +4088,11 @@ p-locate@^6.0.0:
dependencies:
p-limit "^4.0.0"
p-try@^2.0.0:
version "2.2.0"
resolved "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz"
@ -4117,6 +4187,11 @@ pkg-types@^1.0.3:
mlly "^1.2.0"
pathe "^1.1.0"
pngjs@^5.0.0:
version "5.0.0"
resolved "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb"
integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==
possible-typed-array-names@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz"
@ -4445,6 +4520,16 @@ punycode@^2.1.0:
resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
qrcode@^1.5.3:
version "1.5.3"
resolved "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170"
integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==
dependencies:
dijkstrajs "^1.0.1"
encode-utf8 "^1.0.3"
pngjs "^5.0.0"
yargs "^15.3.1"
qs@^6.12.0:
version "6.12.0"
resolved "https://registry.npmmirror.com/qs/-/qs-6.12.0.tgz"
@ -4550,6 +4635,11 @@ require-from-string@^2.0.2:
resolved "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz"
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
require-main-filename@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz"
@ -4653,6 +4743,11 @@ semver@^7.5.4, semver@^7.6.0:
dependencies:
lru-cache "^6.0.0"
set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
set-cookie-parser@^2.4.6:
version "2.6.0"
resolved "https://registry.npmmirror.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz"
@ -5195,6 +5290,11 @@ which-collection@^1.0.1:
is-weakmap "^2.0.2"
is-weakset "^2.0.3"
which-module@^2.0.0:
version "2.0.1"
resolved "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409"
integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==
which-typed-array@^1.1.14, which-typed-array@^1.1.9:
version "1.1.15"
resolved "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.15.tgz"
@ -5222,6 +5322,15 @@ which@^2.0.1:
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
@ -5254,6 +5363,11 @@ wrappy@1:
resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
y18n@^4.0.0:
version "4.0.3"
resolved "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
y18n@^5.0.5:
version "5.0.8"
resolved "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz"
@ -5274,11 +5388,36 @@ yaml@2.3.4:
resolved "https://registry.npmmirror.com/yaml/-/yaml-2.3.4.tgz"
integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==
yargs-parser@^18.1.2:
version "18.1.3"
resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
dependencies:
camelcase "^5.0.0"
decamelize "^1.2.0"
yargs-parser@^21.1.1:
version "21.1.1"
resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
yargs@^15.3.1:
version "15.4.1"
resolved "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
dependencies:
cliui "^6.0.0"
decamelize "^1.2.0"
find-up "^4.1.0"
get-caller-file "^2.0.1"
require-directory "^2.1.1"
require-main-filename "^2.0.0"
set-blocking "^2.0.0"
string-width "^4.2.0"
which-module "^2.0.0"
y18n "^4.0.0"
yargs-parser "^18.1.2"
yargs@^17.0.0:
version "17.7.2"
resolved "https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz"

Loading…
Cancel
Save