install the api in flash audti result

main
wholespace214 1 year ago
parent 2bb77e10ae
commit cf31faf338
  1. 3
      package.json
  2. 223
      src/app/flash-audit-result/page.js
  3. 4
      src/components/Form/AddressInput/index.js
  4. 6
      src/components/Form/SearchToken/index.js
  5. 148
      yarn.lock

@ -17,5 +17,8 @@
"react": "18.2.0",
"react-dom": "18.2.0",
"tailwindcss": "3.3.3"
},
"devDependencies": {
"@goplus/sdk-node": "^1.0.9"
}
}

@ -21,8 +21,13 @@ import IconBtn from "@/components/Button/IconBtn";
import DefaultCard from "@/components/Card/DefaultCard";
import AddressInput from "@/components/Form/AddressInput";
//! import API
import { GoPlus, ErrorCode } from "@goplus/sdk-node";
let chainId = "1";
const FlashAuditResult = () => {
const [result, setResult] = useState(true);
const [result, setResult] = useState("");
const [address, setAddress] = useState("");
const detectionList = [
{
@ -149,9 +154,52 @@ const FlashAuditResult = () => {
},
];
const resultClick = async () => {
let res = await GoPlus.tokenSecurity(chainId, address, 30);
if (res.code != ErrorCode.SUCCESS) {
console.error(res.message);
} else {
// console.log(res.result["0x408e41876cccdc0f92210600ef50372656052a38"]);
setResult(res.result[`${address.toLowerCase()}`]);
console.log(result.lp_total_supply);
}
};
const AddressShow = ({ address, len }) => {
return (
<>
{address.substring(0, len) +
"..." +
address.substring(address.length - len)}
</>
);
};
const BalanceSum = (array) => {
const res = array.reduce((a, b) => {
return Number(a.balance) + Number(b.balance);
});
return Number(res);
};
const topBalance = (array) => {
const res =
Number(array[0].balance) +
Number(array[1].balance) +
Number(array[2].balance) +
Number(array[3].balance) +
Number(array[4].balance) +
Number(array[5].balance) +
Number(array[6].balance) +
Number(array[7].balance) +
Number(array[8].balance) +
Number(array[9].balance);
return res;
};
return (
<div className="mt-14 min-h-[1300px]">
{result === false ? (
{result === "" ? (
<div>
<HeaderNav />
<div className="flex flex-row justify-center">
@ -161,7 +209,10 @@ const FlashAuditResult = () => {
<Image src={LogoBig} alt="image" />
</div>
<div className="flex flex-col mt-11">
<SearchToken />
<SearchToken
value={address}
onChange={(e) => setAddress(e.target.value)}
/>
</div>
<div className="flex flex-col mt-[99px]">
<IconBtn
@ -173,6 +224,7 @@ const FlashAuditResult = () => {
icon={SearchBlack}
py="py-[16px]"
heigh="h-[60px]"
onClick={() => resultClick()}
/>
</div>
</div>
@ -195,8 +247,12 @@ const FlashAuditResult = () => {
<div className="flex flex-row justify-between items-center w-[851px]">
<div className="flex flex-row gap-2">
<div className="flex flex-col mr-2">
<p className="text-white text-[18.88px] font-bold">Flash</p>
<p className="text-white text-[14px]">Flash 3.0</p>
<p className="text-white text-[18.88px] font-bold">
{result.token_symbol && result.token_symbol}
</p>
<p className="text-white text-[14px]">
{result.token_name && result.token_name}
</p>
</div>
<Image src={EthereumLogoSmall} alt="etherem" />
<Image src={DextoolsLogoSmall} alt="etherem" />
@ -304,12 +360,14 @@ const FlashAuditResult = () => {
<div className="flex flex-col gap-2">
<div className="flex flex-row items-center justify-between">
<p className="text-sm text-[#86888C]">Token Symbol</p>
<p className="text-sm font-bold text-[#FCBF07]">FLASH</p>
<p className="text-sm font-bold text-[#FCBF07]">
{result.token_symbol && result.token_symbol}
</p>
</div>
<div className="flex flex-row items-center justify-between">
<p className="text-sm text-[#86888C]">Token Name</p>
<p className="text-sm font-bold text-[#FCBF07]">
Flash 3.0
{result && result.token_name}
</p>
</div>
</div>
@ -318,15 +376,15 @@ const FlashAuditResult = () => {
<p className="text-sm text-[#86888C]">
Token Contract Address
</p>
<AddressInput />
<AddressInput value={address} />
</div>
<div className="flex flex-col gap-2">
<p className="text-sm text-[#86888C]">Contract Owner</p>
<AddressInput />
<AddressInput value={result && result.owner_address} />
</div>
<div className="flex flex-col gap-2">
<p className="text-sm text-[#86888C]">Contract Creator</p>
<AddressInput />
<AddressInput value={result && result.creator_address} />
</div>
</div>
</div>
@ -335,14 +393,20 @@ const FlashAuditResult = () => {
<div className="flex flex-col gap-3">
<div className="flex flex-row items-center justify-between">
<p className="text-sm text-[#86888C]">Token Holders</p>
<p className="text-sm text-[#FCBF07]">855</p>
<p className="text-sm text-[#FCBF07]">
{result && result.holder_count}
</p>
</div>
<div className="flex flex-row items-center justify-between">
<p className="text-sm text-[#86888C]">Total Supply</p>
<p className="text-sm text-[#FCBF07]">100000000.00</p>
<p className="text-sm text-[#FCBF07]">
{result && result.total_supply}
</p>
</div>
<div className="flex flex-col gap-2 border-b border-b-[#2C2C2C] pb-6">
<p className="text-sm text-[#86888C]">Total Supply</p>
<p className="text-sm text-[#86888C]">
Top10 Holders Ratio
</p>
<div className="relative flex flex-row">
<div className="bg-[#16171B] h-[31px] w-[100%] rounded-[4px]"></div>
<div
@ -352,18 +416,39 @@ const FlashAuditResult = () => {
"linear-gradient(90deg, rgba(252, 191, 7, 0.20) 0%, #FCBF07 100%)",
}}
>
<p className="text-sm text-[#16171B]">43.95%</p>
<p className="text-sm text-[#16171B]">
{result.holders &&
(
(topBalance(result.holders) /
Number(result.total_supply)) *
100
).toFixed(2)}
%
</p>
</div>
</div>
</div>
<div className="flex flex-col gap-[14px] mt-8">
{baseinfoList.map((item, index) => (
{result &&
result.holders.map((item, index) => (
<div
className="flex flex-row items-center justify-between"
key={index}
>
<p className="text-sm text-[#86888C]">{item.right}</p>
<p className="text-sm text-[#FCBF07]"> {item.left} </p>
<p className="text-sm text-[#86888C]">
{item.tag ? (
item.tag
) : (
<AddressShow address={item.address} len={4} />
)}
</p>
<p className="text-sm text-[#FCBF07]">
{(Number(item.balance) / 1000000).toFixed(3)}M (
{Number(
(item.balance / result.total_supply) * 100
).toFixed(2)}
%)
</p>
</div>
))}
</div>
@ -371,40 +456,81 @@ const FlashAuditResult = () => {
<div className="flex flex-col gap-2">
<p className="font-bold">
Owner`s Holdings:
<span className="font-light"> 500000.00</span>
<span className="font-light">
{" "}
{result.owner_balance && result.owner_balance}
</span>
</p>
<p className="font-bold">
Owner`s Holdings:
<span className="font-light"> 0.00</span>
Creator`s Holdings:
<span className="font-light">
{" "}
{result.creator_balance && result.creator_balance}
</span>
</p>
</div>
<div className="flex flex-col gap-2">
<p>Percent: 0.50%</p>
<p>Percent: 0.00%</p>
<p>
Percent:{" "}
{result.owner_percent && result.owner_percent * 100}%
</p>
<p>
Percent:
{result.creator_percent && result.creator_percent * 100}
%
</p>
</div>
</div>
<div className="flex flex-col text-sm text-white gap-4">
<div className="flex flex-row items-center justify-between">
<div className="flex flex-row w-[220px] justify-between">
<p>Creator</p>
<p className="text-[#FCBF07]">0x55b3...85bed2</p>
<p className="text-[#FCBF07]">
{result.creator_address && (
<AddressShow
address={result.creator_address}
len={6}
/>
)}
</p>
</div>
<p>0 (0.00%)</p>
<p>
{result && result.creator_balance} (
{result && result.creator_percent * 100}%)
</p>
</div>
<div className="flex flex-row items-center justify-between">
<div className="flex flex-row w-[220px] justify-between">
<p>Creator</p>
<p className="text-[#FCBF07]">0x55b3...85bed2</p>
<p>Owner</p>
<p className="text-[#FCBF07]">
{result.owner_address && (
<AddressShow
address={result.owner_address}
len={6}
/>
)}
</p>
</div>
<p>0 (0.00%)</p>
<p>
{result && result.owner_balance / 1000}k (
{result && result.owner_percent * 100}%)
</p>
</div>
<div className="flex flex-row items-center justify-between">
<div className="flex flex-row w-[220px] justify-between">
<p>Creator</p>
<p className="text-[#FCBF07]">0x55b3...85bed2</p>
<p>DEX</p>
<p className="text-[#FCBF07]">
{result.dex && (
<AddressShow address={result.dex[0].pair} len={6} />
)}
</p>
</div>
<p>UniswapV2</p>
<p>0 (0.00%)</p>
<p>
{result.dex &&
(result.dex[0].liquidity / 1000).toFixed(3)}
k
</p>
</div>
</div>
</div>
@ -413,35 +539,50 @@ const FlashAuditResult = () => {
<div className="flex flex-col gap-3">
<div className="flex flex-row items-center justify-between">
<p className="text-sm text-[#86888C]">LP Holders</p>
<p className="text-sm text-[#FCBF07]">2</p>
<p className="text-sm text-[#FCBF07]">
{result.lp_holders && result.lp_holders.length}
</p>
</div>
<div className="flex flex-row items-center justify-between">
<p className="text-sm text-[#86888C]">Total Supply</p>
<p className="text-sm text-[#FCBF07]">2342234.34 </p>
<p className="text-sm text-[#FCBF07]">
{result.lp_holders &&
BalanceSum(result.lp_holders).toFixed(2)}
</p>
</div>
<div className="flex flex-col gap-2 border-b border-b-[#2C2C2C] pb-6">
<p className="text-sm text-[#86888C]">Total Supply</p>
<div className="relative flex flex-row">
<div className="bg-[#16171B] h-[31px] w-[100%] rounded-[4px]"></div>
<div
className="absolute top-0 left-0 h-[31px] w-[265px] rounded-[4px] flex flex-row justify-end items-center pr-2"
className="absolute top-0 left-0 h-[31px] w-[100%] rounded-[4px] flex flex-row justify-end items-center pr-2"
style={{
background:
"linear-gradient(90deg, rgba(252, 191, 7, 0.20) 0%, #FCBF07 100%)",
}}
>
<p className="text-sm text-[#16171B]">43.95%</p>
<p className="text-sm text-[#16171B]">100%</p>
</div>
</div>
</div>
<div className="flex flex-row items-center justify-between">
<p className="text-sm text-[#86888C]">PinkLock02</p>
<p className="text-sm text-[#FCBF07]">38.623K (100.00%)</p>
</div>
<div className="flex flex-row items-center justify-between">
<p className="text-sm text-[#86888C]">Null Address</p>
<p className="text-sm text-[#FCBF07]">0 (0.00%)</p>
{result.lp_holders &&
result.lp_holders.map((item, index) => (
<div
className="flex flex-row items-center justify-between"
key={index}
>
<p className="text-sm text-[#86888C]">{item.tag}</p>
<p className="text-sm text-[#FCBF07]">
{Number(item.balance).toFixed(2)} (
{(
(Number(item.balance) /
BalanceSum(result.lp_holders)) *
100
).toFixed(2)}
% )
</p>
</div>
))}
</div>
</DefaultCard>
</div>

@ -4,14 +4,14 @@ import Image from "next/image";
import EtherscanLogoIcon from "@/assets/icons/etherscan-logo-small.svg";
import DextoolsLogoIcon from "@/assets/icons/dextools-contract-logo-small.svg";
const AddressInput = () => {
const AddressInput = ({ value = "" }) => {
const handleChange = () => {};
return (
<div className="relative">
<input
type="text"
className="bg-[#141414] border border-[#2C2C2C] h-[38px] pl-4 outline-none rounded-[8px] text-white text-[14px] w-[100%]"
value={"0xBb19...6b12A7"}
value={value}
onChange={handleChange}
/>
<div className="absolute top-0 right-0 bg-[#282828] rounded-e-lg h-[38px] w-[92px] flex flex-row items-center justify-center gap-3">

@ -1,4 +1,4 @@
const SearchToken = ({ check = false }) => {
const SearchToken = ({ check = false, value = "", onChange = "" }) => {
return (
<div className="w-[100%] flex border border-[#2C2C2C] bg-[#141414] rounded-lg relative">
<div className="w-[147px] bg-[#282828]">
@ -16,7 +16,9 @@ const SearchToken = ({ check = false }) => {
name=""
id=""
placeholder="Search token address"
className="outline-none border-none bg-[#141414] py-[22px] pl-[20px] text-[16px] text-[#86888C]"
className="outline-none border-none bg-[#141414] py-[22px] pl-[20px] text-[16px] text-[#86888C] w-[100%]"
value={value}
onChange={(e) => onChange(e)}
/>
{check && (
<div className="w-[80px] h-[28px] bg-[#FCBF07] text-[16px] text-[#16171B)] px-3 py-[2px] text-center rounded-[32px] font-bold absolute right-[20px] top-[20px]">

@ -51,6 +51,16 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d"
integrity sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==
"@goplus/sdk-node@^1.0.9":
version "1.0.9"
resolved "https://registry.yarnpkg.com/@goplus/sdk-node/-/sdk-node-1.0.9.tgz#86c702edc480fa7763bb10b8ee8fb91d2fe44acc"
integrity sha512-PAwo+e7AIdl4zEAI4chQZAnYRbzA3Dx487qFcdagby4F1P+8bv3Xu5yzxvQwMA9///6hNEiKuM2m5uxxhp7UcQ==
dependencies:
core-js "^3.30.2"
crypto-js "^4.1.1"
form-data "^4.0.0"
superagent "^5.3.0"
"@humanwhocodes/config-array@^0.11.10":
version "0.11.10"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2"
@ -387,6 +397,11 @@ ast-types-flow@^0.0.7:
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
autoprefixer@10.4.15:
version "10.4.15"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530"
@ -521,16 +536,38 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
commander@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
component-emitter@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
cookiejar@^2.1.2:
version "2.1.4"
resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b"
integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==
core-js@^3.30.2:
version "3.32.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.1.tgz#a7d8736a3ed9dd05940c3c4ff32c591bb735be77"
integrity sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ==
cross-spawn@^7.0.2:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@ -540,6 +577,11 @@ cross-spawn@^7.0.2:
shebang-command "^2.0.0"
which "^2.0.1"
crypto-js@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@ -577,6 +619,11 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0:
has-property-descriptors "^1.0.0"
object-keys "^1.1.1"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
dequal@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
@ -942,6 +989,11 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
fast-safe-stringify@^2.0.7:
version "2.1.1"
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
fastq@^1.6.0:
version "1.15.0"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
@ -991,6 +1043,29 @@ for-each@^0.3.3:
dependencies:
is-callable "^1.1.3"
form-data@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
mime-types "^2.1.12"
form-data@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
mime-types "^2.1.12"
formidable@^1.2.2:
version "1.2.6"
resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168"
integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==
fraction.js@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
@ -1216,7 +1291,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2:
inherits@2, inherits@^2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@ -1472,6 +1547,11 @@ merge2@^1.3.0, merge2@^1.4.1:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
methods@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
micromatch@^4.0.4, micromatch@^4.0.5:
version "4.0.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
@ -1480,6 +1560,23 @@ micromatch@^4.0.4, micromatch@^4.0.5:
braces "^3.0.2"
picomatch "^2.3.1"
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
mime-types@^2.1.12:
version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
dependencies:
mime-db "1.52.0"
mime@^2.4.6:
version "2.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
@ -1801,6 +1898,13 @@ punycode@^2.1.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
qs@^6.9.4:
version "6.11.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9"
integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==
dependencies:
side-channel "^1.0.4"
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@ -1833,6 +1937,15 @@ read-cache@^1.0.0:
dependencies:
pify "^2.3.0"
readable-stream@^3.6.0:
version "3.6.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
readdirp@~3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
@ -1911,6 +2024,11 @@ safe-array-concat@^1.0.0:
has-symbols "^1.0.3"
isarray "^2.0.5"
safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-regex-test@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"
@ -1932,7 +2050,7 @@ semver@^6.3.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.5.4:
semver@^7.3.2, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
@ -2016,6 +2134,13 @@ string.prototype.trimstart@^1.0.6:
define-properties "^1.1.4"
es-abstract "^1.20.4"
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
dependencies:
safe-buffer "~5.2.0"
strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
@ -2053,6 +2178,23 @@ sucrase@^3.32.0:
pirates "^4.0.1"
ts-interface-checker "^0.1.9"
superagent@^5.3.0:
version "5.3.1"
resolved "https://registry.yarnpkg.com/superagent/-/superagent-5.3.1.tgz#d62f3234d76b8138c1320e90fa83dc1850ccabf1"
integrity sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==
dependencies:
component-emitter "^1.3.0"
cookiejar "^2.1.2"
debug "^4.1.1"
fast-safe-stringify "^2.0.7"
form-data "^3.0.0"
formidable "^1.2.2"
methods "^1.1.2"
mime "^2.4.6"
qs "^6.9.4"
readable-stream "^3.6.0"
semver "^7.3.2"
supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
@ -2225,7 +2367,7 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
util-deprecate@^1.0.2:
util-deprecate@^1.0.1, util-deprecate@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==

Loading…
Cancel
Save