├── .gitignore
├── Blockchain
├── .gitignore
├── Backend
│ ├── core
│ │ ├── .gitignore
│ │ ├── block.js
│ │ ├── blockHeader.js
│ │ └── blockchain.js
│ ├── util
│ │ └── util.js
│ └── database
│ │ ├── model
│ │ ├── demos.js
│ │ └── blockSchema.js
│ │ ├── dbtest.js
│ │ └── read.js
├── frontend
│ ├── .eslintrc.json
│ ├── styles
│ │ ├── globals.css
│ │ └── Home.module.css
│ ├── public
│ │ ├── logo.png
│ │ ├── cover.png
│ │ ├── favicon.ico
│ │ └── vercel.svg
│ ├── postcss.config.js
│ ├── next.config.js
│ ├── pages
│ │ ├── api
│ │ │ ├── hello.js
│ │ │ └── fetchBlocks.js
│ │ ├── _app.js
│ │ ├── index.js
│ │ ├── scroll.js
│ │ ├── blocks
│ │ │ └── [block].js
│ │ ├── test.js
│ │ └── blocks.js
│ ├── tailwind.config.js
│ ├── .gitignore
│ ├── package.json
│ ├── README.md
│ ├── components
│ │ └── Navbar.js
│ └── package-lock.json
└── demo.js
└── package.json
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .env
--------------------------------------------------------------------------------
/Blockchain/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .env
--------------------------------------------------------------------------------
/Blockchain/Backend/core/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .env
--------------------------------------------------------------------------------
/Blockchain/frontend/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/Blockchain/frontend/styles/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
--------------------------------------------------------------------------------
/Blockchain/frontend/public/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anni1236012/blockchain-explorer/HEAD/Blockchain/frontend/public/logo.png
--------------------------------------------------------------------------------
/Blockchain/frontend/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/Blockchain/frontend/public/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anni1236012/blockchain-explorer/HEAD/Blockchain/frontend/public/cover.png
--------------------------------------------------------------------------------
/Blockchain/frontend/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anni1236012/blockchain-explorer/HEAD/Blockchain/frontend/public/favicon.ico
--------------------------------------------------------------------------------
/Blockchain/frontend/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | reactStrictMode: false,
4 | };
5 |
6 | module.exports = nextConfig;
7 |
--------------------------------------------------------------------------------
/Blockchain/frontend/pages/api/hello.js:
--------------------------------------------------------------------------------
1 | // Next.js API route support: https://nextjs.org/docs/api-routes/introduction
2 |
3 | export default function handler(req, res) {
4 | res.status(200).json({ name: 'John Doe' })
5 | }
6 |
--------------------------------------------------------------------------------
/Blockchain/frontend/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | content: [
3 | "./pages/**/*.{js,ts,jsx,tsx}",
4 | "./components/**/*.{js,ts,jsx,tsx}",
5 | ],
6 | theme: {
7 | extend: {},
8 | },
9 | plugins: [],
10 | };
11 |
--------------------------------------------------------------------------------
/Blockchain/Backend/util/util.js:
--------------------------------------------------------------------------------
1 | const crypto = require("crypto");
2 |
3 | // Return hash256 for a given message
4 | const hash256 = (message) => {
5 | return crypto.createHash("sha256").update(message).digest("hex");
6 | };
7 |
8 | module.exports = { hash256 };
9 |
--------------------------------------------------------------------------------
/Blockchain/Backend/database/model/demos.js:
--------------------------------------------------------------------------------
1 | const mongoose = require("mongoose");
2 | const Schema = mongoose.Schema;
3 |
4 | const userSchema = Schema({
5 | email: String,
6 | userName: String,
7 | });
8 |
9 | module.exports = mongoose.model("users", userSchema);
10 |
--------------------------------------------------------------------------------
/Blockchain/frontend/pages/_app.js:
--------------------------------------------------------------------------------
1 | import "../styles/globals.css";
2 | import Navbar from "../components/Navbar";
3 |
4 | function MyApp({ Component, pageProps }) {
5 | return (
6 | <>
7 |
8 |
9 | >
10 | );
11 | }
12 |
13 | export default MyApp;
14 |
--------------------------------------------------------------------------------
/Blockchain/Backend/core/block.js:
--------------------------------------------------------------------------------
1 | class Block {
2 | /* Block is a Storage Container that stores transactions */
3 | constructor(Height, BlockSize, BlockHeader, TxCount, Txs) {
4 | this.Height = Height;
5 | this.BlockSize = BlockSize;
6 | this.blockHeader = BlockHeader;
7 | this.TxCount = TxCount;
8 | this.Txs = Txs;
9 | }
10 | }
11 |
12 | module.exports = { Block };
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Blockchain_js",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "dotenv": "^16.0.0",
14 | "hashlib": "^1.0.1",
15 | "mongoose": "^6.2.6",
16 | "sqlite3": "^5.0.2"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Blockchain/frontend/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 | .pnpm-debug.log*
27 |
28 | # local env files
29 | .env*.local
30 |
31 | # vercel
32 | .vercel
33 |
--------------------------------------------------------------------------------
/Blockchain/Backend/database/dbtest.js:
--------------------------------------------------------------------------------
1 | require("dotenv").config();
2 | const mongoose = require("mongoose");
3 |
4 | const connectDB = async () => {
5 | try {
6 | await mongoose.connect(process.env.DATABASE_URI, {
7 | keepAlive: 1,
8 | useUnifiedTopology: true,
9 | useNewUrlParser: true,
10 | });
11 |
12 | console.log("CONNECTED to MONGODB DATABASE");
13 | return mongoose;
14 | } catch (err) {
15 | console.error(err);
16 | }
17 | };
18 |
19 | if (require.main === module) {
20 | connectDB();
21 | }
22 |
23 | module.exports = connectDB;
24 |
--------------------------------------------------------------------------------
/Blockchain/frontend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "frontend",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "axios": "^0.26.1",
13 | "next": "12.1.5",
14 | "react": "18.0.0",
15 | "react-dom": "18.0.0"
16 | },
17 | "devDependencies": {
18 | "autoprefixer": "^10.4.4",
19 | "eslint": "8.13.0",
20 | "eslint-config-next": "12.1.5",
21 | "postcss": "^8.4.12",
22 | "tailwindcss": "^3.0.24"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Blockchain/frontend/pages/api/fetchBlocks.js:
--------------------------------------------------------------------------------
1 | const Block = require("../../../Backend/database/model/blockSchema");
2 |
3 | export default async function fetchBlocks(req, res) {
4 | const PAGE_SIZE = 20;
5 | const currentBlock = req.query.blockHeight
6 | ? parseInt(req.query.blockHeight)
7 | : PAGE_SIZE;
8 |
9 | const latest = req.query.latest;
10 |
11 | if (currentBlock === 20 || latest === "1") {
12 | res.status(200).json(
13 | await Block.find({ Height: { $gt: currentBlock } })
14 | .sort({ _id: -1 })
15 | .limit(PAGE_SIZE)
16 | );
17 | } else {
18 | res.status(200).json(
19 | await Block.find({ Height: { $lt: currentBlock } })
20 | .sort({ _id: -1 })
21 | .limit(PAGE_SIZE)
22 | );
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Blockchain/demo.js:
--------------------------------------------------------------------------------
1 | const connect = require("./Backend/database/dbtest");
2 | const Block = require("./Backend/database/model/blockSchema");
3 |
4 | const createConnection = async () => {
5 | try {
6 | mongoose = await connect();
7 | while (true) {
8 | let BlockObj = {
9 | Height: 1,
10 | BlockSize: 1,
11 | blockHeader: {
12 | version: 1,
13 | prevBlockHash: "00000",
14 | timestamp: Date.now(),
15 | bits: "dafdaf",
16 | nonce: 56463,
17 | blockHash: "adsfadfs",
18 | },
19 | TxCount: 1,
20 | Transactions: "Test Transactions",
21 | };
22 |
23 | await new Block(BlockObj).save();
24 | console.log("Block Written Successfully");
25 | }
26 | } catch (err) {
27 | console.log("Error while con", err);
28 | }
29 | };
30 |
31 | createConnection();
32 |
--------------------------------------------------------------------------------
/Blockchain/Backend/database/read.js:
--------------------------------------------------------------------------------
1 | const connect = require("./dbtest");
2 | const Block = require("./model/blockSchema");
3 |
4 | const main = async (returnLast = false, filter = false, latestRecs = false) => {
5 | try {
6 | if (returnLast) {
7 | return await Block.find().sort({ _id: -1 }).limit(1);
8 | }
9 |
10 | if (filter) {
11 | // Create dynamic query to fetch data from database
12 | const query = {};
13 | query[Object.keys(filter)[0]] = Object.values(filter)[0];
14 | return Block.find(query);
15 | }
16 |
17 | if (latestRecs) {
18 | return await Block.find().sort({ _id: -1 }).limit(latestRecs);
19 | }
20 | // if no paramter is passed, return all data
21 | return Block.find();
22 | } catch (err) {
23 | console.log("Error while con", err);
24 | }
25 | };
26 |
27 | if (require.main === module) {
28 | main();
29 | }
30 |
31 | exports.main = main;
32 |
--------------------------------------------------------------------------------
/Blockchain/frontend/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/Blockchain/Backend/database/model/blockSchema.js:
--------------------------------------------------------------------------------
1 | const mongoose = require("mongoose");
2 | const Schema = mongoose.Schema;
3 |
4 | const blockHeader = new Schema({
5 | version: {
6 | type: Number,
7 | required: true,
8 | },
9 | prevBlockHash: {
10 | type: String,
11 | required: true,
12 | },
13 | merkleroot: {
14 | type: String,
15 | required: true,
16 | },
17 | timestamp: {
18 | type: Number,
19 | required: true,
20 | },
21 | bits: {
22 | type: String,
23 | required: true,
24 | },
25 | nonce: {
26 | type: Number,
27 | required: true,
28 | },
29 | blockhash: {
30 | type: String,
31 | required: true,
32 | },
33 | });
34 |
35 | const blockSchema = new Schema({
36 | Height: {
37 | type: Number,
38 | required: true,
39 | },
40 | BlockSize: {
41 | type: Number,
42 | require: true,
43 | },
44 | blockHeader: blockHeader,
45 | TxCount: {
46 | type: Number,
47 | required: true,
48 | },
49 | Transactions: {
50 | type: String,
51 | required: true,
52 | },
53 | });
54 |
55 | module.exports =
56 | mongoose.models.blockSchema || mongoose.model("blockSchema", blockSchema);
57 |
--------------------------------------------------------------------------------
/Blockchain/Backend/core/blockHeader.js:
--------------------------------------------------------------------------------
1 | const { hash256 } = require("../util/util.js");
2 |
3 | class BlockHeader {
4 | constructor(version, prevBlockhash, merkleRoot, timestamp, bits) {
5 | this.version = version;
6 | this.prevBlockhash = prevBlockhash;
7 | this.timestamp = timestamp;
8 | this.merkleRoot = merkleRoot;
9 | this.bits = bits;
10 | this.nonce = 0;
11 | this.blockhash = "";
12 | }
13 |
14 | mine() {
15 | while (this.blockhash.substring(0, 4) != "0000") {
16 | // Generate Block Hashes by changing the Nonce Value
17 | this.blockhash = hash256(
18 | this.version.toString() +
19 | this.prevBlockhash +
20 | this.merkleRoot +
21 | this.timestamp.toString() +
22 | this.bits.toString() +
23 | this.nonce.toString()
24 | );
25 | // Increment the Nonce Value
26 | this.nonce += 1;
27 |
28 | process.stdout.write(
29 | `Mining Started ${this.nonce} and Hash Value is ${this.blockhash} \r`
30 | );
31 | }
32 | }
33 | }
34 |
35 | // Execute only if it is called from the same file
36 | // This won't get executed when imported in another file
37 | if (require.main === module) {
38 | const blockheader = new BlockHeader(1, 1, Date.now(), 1);
39 | blockheader.mine();
40 | }
41 |
42 | module.exports = { BlockHeader };
43 |
--------------------------------------------------------------------------------
/Blockchain/frontend/pages/index.js:
--------------------------------------------------------------------------------
1 | import Head from "next/head";
2 |
3 | export default function Home() {
4 | return (
5 |
6 |
7 |
Create Next App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
18 | Blockchain Explorer, Analytics and Web services
19 |
20 |
21 | Explore data stored on 7 blockchains. Blockchain information for
22 | Bitcoin (BTC) including historical prices, the most recently mined
23 | blocks, the mempool size of unconfirmed transactions, and data for
24 | the latest transactions.
25 |
26 |
27 |
28 |
29 | );
30 | }
31 |
--------------------------------------------------------------------------------
/Blockchain/frontend/README.md:
--------------------------------------------------------------------------------
1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
2 |
3 | ## Getting Started
4 |
5 | First, run the development server:
6 |
7 | ```bash
8 | npm run dev
9 | # or
10 | yarn dev
11 | ```
12 |
13 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
14 |
15 | You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
16 |
17 | [API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
18 |
19 | The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
20 |
21 | ## Learn More
22 |
23 | To learn more about Next.js, take a look at the following resources:
24 |
25 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
26 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
27 |
28 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
29 |
30 | ## Deploy on Vercel
31 |
32 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
33 |
34 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
35 |
--------------------------------------------------------------------------------
/Blockchain/frontend/components/Navbar.js:
--------------------------------------------------------------------------------
1 | import Image from "next/image";
2 | import Link from "next/link";
3 | import { useRouter } from "next/router";
4 | export default function Navbar() {
5 | const router = useRouter();
6 | return (
7 |
12 |
13 |
14 |
15 |
21 |
22 |
23 |
40 |
41 |
42 |
43 | {/*
44 | Sign in
45 | */}
46 |
47 | Sign Out
48 |
49 |
50 |
51 |
52 |
53 | F
54 |
55 |
56 | T
57 |
58 |
59 | I
60 |
61 |
62 |
63 | );
64 | }
65 |
--------------------------------------------------------------------------------
/Blockchain/frontend/styles/Home.module.css:
--------------------------------------------------------------------------------
1 | .container {
2 | padding: 0 2rem;
3 | }
4 |
5 | .main {
6 | min-height: 100vh;
7 | padding: 4rem 0;
8 | flex: 1;
9 | display: flex;
10 | flex-direction: column;
11 | justify-content: center;
12 | align-items: center;
13 | }
14 |
15 | .footer {
16 | display: flex;
17 | flex: 1;
18 | padding: 2rem 0;
19 | border-top: 1px solid #eaeaea;
20 | justify-content: center;
21 | align-items: center;
22 | }
23 |
24 | .footer a {
25 | display: flex;
26 | justify-content: center;
27 | align-items: center;
28 | flex-grow: 1;
29 | }
30 |
31 | .title a {
32 | color: #0070f3;
33 | text-decoration: none;
34 | }
35 |
36 | .title a:hover,
37 | .title a:focus,
38 | .title a:active {
39 | text-decoration: underline;
40 | }
41 |
42 | .title {
43 | margin: 0;
44 | line-height: 1.15;
45 | font-size: 4rem;
46 | }
47 |
48 | .title,
49 | .description {
50 | text-align: center;
51 | }
52 |
53 | .description {
54 | margin: 4rem 0;
55 | line-height: 1.5;
56 | font-size: 1.5rem;
57 | }
58 |
59 | .code {
60 | background: #fafafa;
61 | border-radius: 5px;
62 | padding: 0.75rem;
63 | font-size: 1.1rem;
64 | font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
65 | Bitstream Vera Sans Mono, Courier New, monospace;
66 | }
67 |
68 | .grid {
69 | display: flex;
70 | align-items: center;
71 | justify-content: center;
72 | flex-wrap: wrap;
73 | max-width: 800px;
74 | }
75 |
76 | .card {
77 | margin: 1rem;
78 | padding: 1.5rem;
79 | text-align: left;
80 | color: inherit;
81 | text-decoration: none;
82 | border: 1px solid #eaeaea;
83 | border-radius: 10px;
84 | transition: color 0.15s ease, border-color 0.15s ease;
85 | max-width: 300px;
86 | }
87 |
88 | .card:hover,
89 | .card:focus,
90 | .card:active {
91 | color: #0070f3;
92 | border-color: #0070f3;
93 | }
94 |
95 | .card h2 {
96 | margin: 0 0 1rem 0;
97 | font-size: 1.5rem;
98 | }
99 |
100 | .card p {
101 | margin: 0;
102 | font-size: 1.25rem;
103 | line-height: 1.5;
104 | }
105 |
106 | .logo {
107 | height: 1em;
108 | margin-left: 0.5rem;
109 | }
110 |
111 | @media (max-width: 600px) {
112 | .grid {
113 | width: 100%;
114 | flex-direction: column;
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/Blockchain/Backend/core/blockchain.js:
--------------------------------------------------------------------------------
1 | require("dotenv").config();
2 | const { hash256 } = require("../util/util");
3 | const block = require("./block");
4 | const blockchain = require("./blockHeader");
5 | const Block = require("../database/model/blockSchema");
6 | const connect = require("../database/dbtest");
7 | const getLastBlock = require("../database/read");
8 |
9 | VERSION = 1;
10 | const ZERO_HASH = String("0").padStart(64, "0");
11 |
12 | let mongoose = "";
13 |
14 | class Blockchain {
15 | async GenesisBlock() {
16 | try {
17 | console.log(mongoose.connection.readyState);
18 | const BlockHeight = 0;
19 | const prevBlockHash = ZERO_HASH;
20 | await this.addBlock(BlockHeight, prevBlockHash);
21 | } catch (err) {
22 | console.log(`Error in Genesis Blockchain Function \n ${err}`);
23 | }
24 | }
25 |
26 | async addBlock(BlockHeight, prevBlockHash) {
27 | let timestamp = Date.now();
28 | let Transaction = `Codies Alert sent ${BlockHeight} to Anni Maan`;
29 | let merkleRoot = hash256(Transaction);
30 | let bits = "ffff001f";
31 | let blockHeader = new blockchain.BlockHeader(
32 | VERSION,
33 | prevBlockHash,
34 | merkleRoot,
35 | timestamp,
36 | bits
37 | );
38 | blockHeader.mine();
39 |
40 | let BlockObj = {
41 | Height: BlockHeight,
42 | BlockSize: 1,
43 | blockHeader: {
44 | version: 1,
45 | prevBlockHash: blockHeader.prevBlockhash,
46 | merkleroot: merkleRoot,
47 | timestamp: timestamp,
48 | bits: bits,
49 | nonce: blockHeader.nonce,
50 | blockhash: blockHeader.blockhash,
51 | },
52 | TxCount: 1,
53 | Transactions: Transaction,
54 | };
55 |
56 | // Mongoose Schema, Write data
57 | try {
58 | await new Block(BlockObj).save();
59 | console.log(BlockObj);
60 | console.log("Block Written Successfully");
61 | this.chain = new block.Block(BlockHeight, 1, blockHeader, 1, Transaction);
62 | } catch (err) {
63 | console.log(`Error in addBlock Function \n ${err}`);
64 | }
65 | }
66 |
67 | // Main Function to trigger the process
68 | async main() {
69 | const lastBlock = await getLastBlock.main(true);
70 | console.log(lastBlock[0]);
71 | this.chain = lastBlock[0];
72 |
73 | if (!this.chain) {
74 | await this.GenesisBlock();
75 | }
76 |
77 | while (true) {
78 | console.log(mongoose.connection.readyState);
79 | let lastBlock = this.chain;
80 | let Blockheight = lastBlock.Height + 1;
81 | let prevBlockHash = lastBlock.blockHeader.blockhash;
82 | await this.addBlock(Blockheight, prevBlockHash);
83 | }
84 | }
85 | }
86 |
87 | const createConnection = async () => {
88 | try {
89 | mongoose = await connect();
90 | const blockchain = new Blockchain();
91 | blockchain.main();
92 | } catch (err) {
93 | console.log("Error while con", err);
94 | }
95 | };
96 |
97 | createConnection();
98 |
--------------------------------------------------------------------------------
/Blockchain/frontend/pages/scroll.js:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 | import connect from "../../Backend/database/dbtest";
3 | import { useEffect, useState, useRef, useCallback } from "react";
4 | // import read from "../../Backend/database/read";
5 | export default function Blocks({ data }) {
6 | const [blocks, setBlocks] = useState([]);
7 |
8 | const HeightRef = useRef();
9 | const isLoading = useRef(false);
10 |
11 | const MINUTE_MS = 500000;
12 |
13 | const loadNewBlocks = async () => {
14 | if (!isLoading.current) {
15 | isLoading.current = true;
16 |
17 | const res = await fetch(
18 | `http://localhost:3000/api/fetchBlocks?blockHeight=${HeightRef.current}`
19 | );
20 | const newBlocks = await res.json();
21 |
22 | HeightRef.current = newBlocks[newBlocks.length - 1].Height;
23 | setBlocks((prevBlocks) => [...prevBlocks, ...newBlocks]);
24 | // setBlocks((prevBlocks) => [...new Set([...prevBlocks, ...newBlocks])]);
25 | isLoading.current = false;
26 | }
27 | };
28 |
29 | const handleScroll = async (e) => {
30 | if (
31 | e.target.documentElement.scrollTop + window.innerHeight >=
32 | e.target.documentElement.scrollHeight
33 | ) {
34 | await loadNewBlocks();
35 | }
36 | };
37 |
38 | useEffect(() => {
39 | setBlocks(data);
40 | HeightRef.current = data[data.length - 1].Height;
41 | window.addEventListener("scroll", handleScroll);
42 | return () => {
43 | console.log("Listeners removed");
44 | window.removeEventListener("scroll", handleScroll);
45 | };
46 | }, []);
47 |
48 | useEffect(() => {
49 | const interval = setInterval(async () => {
50 | loadNewBlocks();
51 | }, MINUTE_MS);
52 |
53 | return () => clearInterval(interval); // This represents the unmount function, in which you need to clear your interval to prevent memory leaks.
54 | }, []);
55 |
56 | return (
57 |
58 |
59 |
60 | Latest Blocks
61 |
62 |
63 |
64 |
Block Height
65 |
Block Header
66 |
Transactions
67 |
Block Size
68 |
69 | {blocks.map((block) => (
70 |
75 |
{block.Height}
76 |
77 |
78 |
79 | {block.blockHeader.blockhash}
80 |
81 |
82 |
83 |
{block.TxCount}
84 |
{block.BlockSize}
85 |
86 | ))}
87 |
88 |
89 |
90 | );
91 | }
92 |
93 | export async function getServerSideProps() {
94 | const connection = await connect();
95 | // const blocks = JSON.parse(JSON.stringify(await read.main(false, false, 20)));
96 | const res = await fetch("http://localhost:3000/api/fetchBlocks");
97 | const data = await res.json();
98 |
99 | return {
100 | props: { data },
101 | };
102 | }
103 |
--------------------------------------------------------------------------------
/Blockchain/frontend/pages/blocks/[block].js:
--------------------------------------------------------------------------------
1 | import { useRouter } from "next/router";
2 | import { useEffect, useState } from "react";
3 | import Link from "next/link";
4 | import read from "../../../Backend/database/read";
5 | import connect from "../../../Backend/database/dbtest";
6 | export default function Block({ block }) {
7 | const { Height, BlockSize, TxCount, Transactions } = block[0];
8 | const { bits, timestamp, nonce, merkleroot, prevBlockHash } =
9 | block[0].blockHeader;
10 | const router = useRouter();
11 |
12 | const { blockhash } = router.query;
13 |
14 | return (
15 |
16 |
17 |
18 | {/* Populate Block Numner*/}
19 |
20 | Block #{Height}
21 |
22 | {/* Block Header*/}
23 |
24 |
25 | {blockhash}
26 |
27 |
28 | {/* Block Field Names*/}
29 |
30 |
31 |
Previous Block Hash
32 |
33 |
34 |
Merkle Root
35 |
36 |
37 |
Timestamp
38 |
39 |
40 |
Nonce
41 |
42 |
43 |
Number of Transactions
44 |
45 |
46 |
Bits
47 |
48 |
49 |
Blocksize
50 |
51 |
52 | {/* Populate Block Data*/}
53 |
54 |
55 |
56 |
{prevBlockHash}
57 |
58 |
59 |
60 |
61 |
{merkleroot}
62 |
63 |
64 |
{timestamp}
65 |
66 |
67 |
{nonce}
68 |
69 |
70 |
{TxCount}
71 |
72 |
73 |
{bits}
74 |
75 |
76 |
{BlockSize}
77 |
78 |
79 |
80 |
81 |
82 |
86 |
87 | Transactions
88 |
89 |
{Transactions}
90 |
91 |
92 | );
93 | }
94 |
95 | export async function getServerSideProps(context) {
96 | const { blockhash } = context.query;
97 | const filter = { "blockHeader.blockhash": blockhash };
98 | const connection = await connect();
99 | const block = JSON.parse(JSON.stringify(await read.main(false, filter)));
100 | console.log("block", block);
101 | return {
102 | props: { block },
103 | };
104 | }
105 |
--------------------------------------------------------------------------------
/Blockchain/frontend/pages/test.js:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 | import connect from "../../Backend/database/dbtest";
3 | import { useEffect, useState, useRef, useCallback } from "react";
4 | // import read from "../../Backend/database/read";
5 | export default function Blocks({ data }) {
6 | const [blocks, setBlocks] = useState([]);
7 | const [pageNumber, setPageNumber] = useState(0);
8 |
9 | const HeightRef = useRef();
10 | const LatestBlockHeight = useRef();
11 | const isLoading = useRef(false);
12 |
13 | const MINUTE_MS = 10000;
14 |
15 | const loadOnScroll = async () => {
16 | isLoading.current = true;
17 |
18 | const res = await fetch(
19 | `http://localhost:3000/api/fetchBlocks?blockHeight=${HeightRef.current}`
20 | );
21 | const newBlocks = await res.json();
22 |
23 | HeightRef.current = newBlocks[newBlocks.length - 1].Height;
24 | setBlocks((prevBlocks) => [...prevBlocks, ...newBlocks]);
25 | isLoading.current = false;
26 | };
27 |
28 | const loadLatestBlocks = async () => {
29 | const res = await fetch(
30 | `http://localhost:3000/api/fetchBlocks?blockHeight=${LatestBlockHeight.current}&latest=1`
31 | );
32 |
33 | const newBlocks = await res.json();
34 | console.log(newBlocks);
35 | // HeightRef.current = newBlocks[newBlocks.length - 1].Height;
36 | if (newBlocks[0].Height > LatestBlockHeight.current) {
37 | setBlocks((prevBlocks) => [...new Set([...newBlocks, ...prevBlocks])]);
38 | LatestBlockHeight.current = newBlocks[0].Height;
39 | }
40 | };
41 |
42 | const observer = useRef();
43 | const lastBlockRef = useCallback(
44 | (node) => {
45 | if (isLoading.current) return;
46 | if (observer.current) observer.current.disconnect();
47 | observer.current = new IntersectionObserver((entries) => {
48 | if (entries[0].isIntersecting) {
49 | setPageNumber((prevPageNumber) => prevPageNumber + 20);
50 | }
51 | });
52 | if (node) observer.current.observe(node);
53 | },
54 | [isLoading.current]
55 | );
56 |
57 | useEffect(() => {
58 | setBlocks(data);
59 | HeightRef.current = data[data.length - 1].Height;
60 | LatestBlockHeight.current = data[0].Height;
61 | }, []);
62 |
63 | useEffect(() => {
64 | loadOnScroll();
65 | console.log("loadscroll calleed");
66 | }, [pageNumber]);
67 |
68 | useEffect(() => {
69 | const interval = setInterval(async () => {
70 | loadLatestBlocks();
71 | }, MINUTE_MS);
72 |
73 | return () => clearInterval(interval); // This represents the unmount function, in which you need to clear your interval to prevent memory leaks.
74 | }, []);
75 |
76 | return (
77 |
78 |
79 |
80 | Latest Blocks
81 |
82 |
83 |
84 |
Block Height
85 |
Block Header
86 |
Transactions
87 |
Block Size
88 |
89 | {blocks.map((block, index) => {
90 | if (blocks.length === index + 1) {
91 | return (
92 |
97 |
{block.Height}
98 |
99 |
102 |
103 | {block.blockHeader.blockhash}
104 |
105 |
106 |
107 |
{block.TxCount}
108 |
{block.BlockSize}
109 |
110 | );
111 | } else {
112 | return (
113 |
117 |
{block.Height}
118 |
119 |
122 |
123 | {block.blockHeader.blockhash}
124 |
125 |
126 |
127 |
{block.TxCount}
128 |
{block.BlockSize}
129 |
130 | );
131 | }
132 | })}
133 |
134 |
135 |
136 | );
137 | }
138 |
139 | export async function getServerSideProps() {
140 | const connection = await connect();
141 | // const blocks = JSON.parse(JSON.stringify(await read.main(false, false, 20)));
142 | const res = await fetch("http://localhost:3000/api/fetchBlocks");
143 | const data = await res.json();
144 |
145 | return {
146 | props: { data },
147 | };
148 | }
149 |
--------------------------------------------------------------------------------
/Blockchain/frontend/pages/blocks.js:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 | import connect from "../../Backend/database/dbtest";
3 | import { useEffect, useState, useRef, useCallback } from "react";
4 |
5 | export default function Blocks({ data }) {
6 | const [blocks, setBlocks] = useState([]);
7 | const [pageNumber, setPageNumber] = useState(0);
8 |
9 | const HeightRef = useRef();
10 | const LatestBlockHeight = useRef();
11 | const isLoading = useRef(false);
12 |
13 | const MINUTE_MS = 1000;
14 |
15 | const loadOnScroll = async () => {
16 | isLoading.current = true;
17 |
18 | const res = await fetch(
19 | `http://localhost:3000/api/fetchBlocks?blockHeight=${HeightRef.current}`
20 | );
21 | const newBlocks = await res.json();
22 |
23 | HeightRef.current = newBlocks[newBlocks.length - 1].Height;
24 | setBlocks((prevBlocks) => [...prevBlocks, ...newBlocks]);
25 | isLoading.current = false;
26 | };
27 |
28 | const loadLatestBlocks = async () => {
29 | const res = await fetch(
30 | `http://localhost:3000/api/fetchBlocks?blockHeight=${LatestBlockHeight.current}&latest=1`
31 | );
32 |
33 | const newBlocks = await res.json();
34 |
35 | if (
36 | newBlocks.length > 0 &&
37 | newBlocks[0].Height > LatestBlockHeight.current
38 | ) {
39 | setBlocks((prevBlocks) => [...new Set([...newBlocks, ...prevBlocks])]);
40 | LatestBlockHeight.current = newBlocks[0].Height;
41 | }
42 | };
43 |
44 | const observer = useRef();
45 | const lastBlockRef = useCallback(
46 | (node) => {
47 | if (isLoading.current) return;
48 | if (observer.current) observer.current.disconnect();
49 | observer.current = new IntersectionObserver((entries) => {
50 | if (entries[0].isIntersecting) {
51 | setPageNumber((prevPageNumber) => prevPageNumber + 20);
52 | }
53 | });
54 | if (node) observer.current.observe(node);
55 | },
56 | [isLoading.current]
57 | );
58 |
59 | useEffect(() => {
60 | setBlocks(data);
61 | HeightRef.current = data[data.length - 1].Height;
62 | LatestBlockHeight.current = data[0].Height;
63 | }, []);
64 |
65 | useEffect(() => {
66 | loadOnScroll();
67 | console.log("loadscroll calleed");
68 | }, [pageNumber]);
69 |
70 | useEffect(() => {
71 | const interval = setInterval(async () => {
72 | loadLatestBlocks();
73 | }, MINUTE_MS);
74 |
75 | return () => clearInterval(interval); // This represents the unmount function, in which you need to clear your interval to prevent memory leaks.
76 | }, []);
77 |
78 | return (
79 |
80 |
81 |
82 | Latest Blocks
83 |
84 |
85 |
86 |
Block Height
87 |
Block Header
88 |
Transactions
89 |
Block Size
90 |
91 | {blocks.map((block, index) => {
92 | if (blocks.length === index + 1) {
93 | return (
94 |
99 |
{block.Height}
100 |
105 |
106 |
107 | {block.blockHeader.blockhash}
108 |
109 |
110 |
111 |
{block.TxCount}
112 |
{block.BlockSize}
113 |
114 | );
115 | } else {
116 | return (
117 |
121 |
{block.Height}
122 |
127 |
128 |
129 | {block.blockHeader.blockhash}
130 |
131 |
132 |
133 |
{block.TxCount}
134 |
{block.BlockSize}
135 |
136 | );
137 | }
138 | })}
139 |
140 |
141 |
142 | );
143 | }
144 |
145 | export async function getServerSideProps() {
146 | const connection = await connect();
147 | // const blocks = JSON.parse(JSON.stringify(await read.main(false, false, 20)));
148 | const res = await fetch("http://localhost:3000/api/fetchBlocks");
149 | const data = await res.json();
150 |
151 | return {
152 | props: { data },
153 | };
154 | }
155 |
--------------------------------------------------------------------------------
/Blockchain/frontend/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "frontend",
3 | "version": "0.1.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/runtime": {
8 | "version": "7.17.9",
9 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz",
10 | "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
11 | "dev": true,
12 | "requires": {
13 | "regenerator-runtime": "^0.13.4"
14 | }
15 | },
16 | "@babel/runtime-corejs3": {
17 | "version": "7.17.9",
18 | "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz",
19 | "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==",
20 | "dev": true,
21 | "requires": {
22 | "core-js-pure": "^3.20.2",
23 | "regenerator-runtime": "^0.13.4"
24 | }
25 | },
26 | "@eslint/eslintrc": {
27 | "version": "1.2.1",
28 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz",
29 | "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==",
30 | "dev": true,
31 | "requires": {
32 | "ajv": "^6.12.4",
33 | "debug": "^4.3.2",
34 | "espree": "^9.3.1",
35 | "globals": "^13.9.0",
36 | "ignore": "^5.2.0",
37 | "import-fresh": "^3.2.1",
38 | "js-yaml": "^4.1.0",
39 | "minimatch": "^3.0.4",
40 | "strip-json-comments": "^3.1.1"
41 | }
42 | },
43 | "@humanwhocodes/config-array": {
44 | "version": "0.9.5",
45 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
46 | "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==",
47 | "dev": true,
48 | "requires": {
49 | "@humanwhocodes/object-schema": "^1.2.1",
50 | "debug": "^4.1.1",
51 | "minimatch": "^3.0.4"
52 | }
53 | },
54 | "@humanwhocodes/object-schema": {
55 | "version": "1.2.1",
56 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
57 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
58 | "dev": true
59 | },
60 | "@next/env": {
61 | "version": "12.1.5",
62 | "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.5.tgz",
63 | "integrity": "sha512-+34yUJslfJi7Lyx6ELuN8nWcOzi27izfYnZIC1Dqv7kmmfiBVxgzR3BXhlvEMTKC2IRJhXVs2FkMY+buQe3k7Q=="
64 | },
65 | "@next/eslint-plugin-next": {
66 | "version": "12.1.5",
67 | "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.5.tgz",
68 | "integrity": "sha512-Cnb8ERC5bNKBFrnMH6203sp/b0Y78QRx1XsFu+86oBtDBmQmOFoHu7teQjHm69ER73XKK3aGaeoLiXacHoUFsg==",
69 | "dev": true,
70 | "requires": {
71 | "glob": "7.1.7"
72 | },
73 | "dependencies": {
74 | "glob": {
75 | "version": "7.1.7",
76 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
77 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
78 | "dev": true,
79 | "requires": {
80 | "fs.realpath": "^1.0.0",
81 | "inflight": "^1.0.4",
82 | "inherits": "2",
83 | "minimatch": "^3.0.4",
84 | "once": "^1.3.0",
85 | "path-is-absolute": "^1.0.0"
86 | }
87 | }
88 | }
89 | },
90 | "@next/swc-android-arm-eabi": {
91 | "version": "12.1.5",
92 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.5.tgz",
93 | "integrity": "sha512-SKnGTdYcoN04Y2DvE0/Y7/MjkA+ltsmbuH/y/hR7Ob7tsj+8ZdOYuk+YvW1B8dY20nDPHP58XgDTSm2nA8BzzA==",
94 | "optional": true
95 | },
96 | "@next/swc-android-arm64": {
97 | "version": "12.1.5",
98 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.5.tgz",
99 | "integrity": "sha512-YXiqgQ/9Rxg1dXp6brXbeQM1JDx9SwUY/36JiE+36FXqYEmDYbxld9qkX6GEzkc5rbwJ+RCitargnzEtwGW0mw==",
100 | "optional": true
101 | },
102 | "@next/swc-darwin-arm64": {
103 | "version": "12.1.5",
104 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.5.tgz",
105 | "integrity": "sha512-y8mhldb/WFZ6lFeowkGfi0cO/lBdiBqDk4T4LZLvCpoQp4Or/NzUN6P5NzBQZ5/b4oUHM/wQICEM+1wKA4qIVw==",
106 | "optional": true
107 | },
108 | "@next/swc-darwin-x64": {
109 | "version": "12.1.5",
110 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.5.tgz",
111 | "integrity": "sha512-wqJ3X7WQdTwSGi0kIDEmzw34QHISRIQ5uvC+VXmsIlCPFcMA+zM5723uh8NfuKGquDMiEMS31a83QgkuHMYbwQ==",
112 | "optional": true
113 | },
114 | "@next/swc-linux-arm-gnueabihf": {
115 | "version": "12.1.5",
116 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.5.tgz",
117 | "integrity": "sha512-WnhdM5duONMvt2CncAl+9pim0wBxDS2lHoo7ub/o/i1bRbs11UTzosKzEXVaTDCUkCX2c32lIDi1WcN2ZPkcdw==",
118 | "optional": true
119 | },
120 | "@next/swc-linux-arm64-gnu": {
121 | "version": "12.1.5",
122 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.5.tgz",
123 | "integrity": "sha512-Jq2H68yQ4bLUhR/XQnbw3LDW0GMQn355qx6rU36BthDLeGue7YV7MqNPa8GKvrpPocEMW77nWx/1yI6w6J07gw==",
124 | "optional": true
125 | },
126 | "@next/swc-linux-arm64-musl": {
127 | "version": "12.1.5",
128 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.5.tgz",
129 | "integrity": "sha512-KgPjwdbhDqXI7ghNN8V/WAiLquc9Ebe8KBrNNEL0NQr+yd9CyKJ6KqjayVkmX+hbHzbyvbui/5wh/p3CZQ9xcQ==",
130 | "optional": true
131 | },
132 | "@next/swc-linux-x64-gnu": {
133 | "version": "12.1.5",
134 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.5.tgz",
135 | "integrity": "sha512-O2ErUTvCJ6DkNTSr9pbu1n3tcqykqE/ebty1rwClzIYdOgpB3T2MfEPP+K7GhUR87wmN/hlihO9ch7qpVFDGKw==",
136 | "optional": true
137 | },
138 | "@next/swc-linux-x64-musl": {
139 | "version": "12.1.5",
140 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.5.tgz",
141 | "integrity": "sha512-1eIlZmlO/VRjxxzUBcVosf54AFU3ltAzHi+BJA+9U/lPxCYIsT+R4uO3QksRzRjKWhVQMRjEnlXyyq5SKJm7BA==",
142 | "optional": true
143 | },
144 | "@next/swc-win32-arm64-msvc": {
145 | "version": "12.1.5",
146 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.5.tgz",
147 | "integrity": "sha512-oromsfokbEuVb0CBLLE7R9qX3KGXucZpsojLpzUh1QJjuy1QkrPJncwr8xmWQnwgtQ6ecMWXgXPB+qtvizT9Tw==",
148 | "optional": true
149 | },
150 | "@next/swc-win32-ia32-msvc": {
151 | "version": "12.1.5",
152 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.5.tgz",
153 | "integrity": "sha512-a/51L5KzBpeZSW9LbekMo3I3Cwul+V+QKwbEIMA+Qwb2qrlcn1L9h3lt8cHqNTFt2y72ce6aTwDTw1lyi5oIRA==",
154 | "optional": true
155 | },
156 | "@next/swc-win32-x64-msvc": {
157 | "version": "12.1.5",
158 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.5.tgz",
159 | "integrity": "sha512-/SoXW1Ntpmpw3AXAzfDRaQidnd8kbZ2oSni8u5z0yw6t4RwJvmdZy1eOaAADRThWKV+2oU90++LSnXJIwBRWYQ==",
160 | "optional": true
161 | },
162 | "@nodelib/fs.scandir": {
163 | "version": "2.1.5",
164 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
165 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
166 | "dev": true,
167 | "requires": {
168 | "@nodelib/fs.stat": "2.0.5",
169 | "run-parallel": "^1.1.9"
170 | }
171 | },
172 | "@nodelib/fs.stat": {
173 | "version": "2.0.5",
174 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
175 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
176 | "dev": true
177 | },
178 | "@nodelib/fs.walk": {
179 | "version": "1.2.8",
180 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
181 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
182 | "dev": true,
183 | "requires": {
184 | "@nodelib/fs.scandir": "2.1.5",
185 | "fastq": "^1.6.0"
186 | }
187 | },
188 | "@rushstack/eslint-patch": {
189 | "version": "1.0.8",
190 | "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz",
191 | "integrity": "sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw==",
192 | "dev": true
193 | },
194 | "@types/json5": {
195 | "version": "0.0.29",
196 | "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
197 | "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
198 | "dev": true
199 | },
200 | "@typescript-eslint/parser": {
201 | "version": "5.10.1",
202 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.10.1.tgz",
203 | "integrity": "sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA==",
204 | "dev": true,
205 | "requires": {
206 | "@typescript-eslint/scope-manager": "5.10.1",
207 | "@typescript-eslint/types": "5.10.1",
208 | "@typescript-eslint/typescript-estree": "5.10.1",
209 | "debug": "^4.3.2"
210 | }
211 | },
212 | "@typescript-eslint/scope-manager": {
213 | "version": "5.10.1",
214 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.10.1.tgz",
215 | "integrity": "sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg==",
216 | "dev": true,
217 | "requires": {
218 | "@typescript-eslint/types": "5.10.1",
219 | "@typescript-eslint/visitor-keys": "5.10.1"
220 | }
221 | },
222 | "@typescript-eslint/types": {
223 | "version": "5.10.1",
224 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.10.1.tgz",
225 | "integrity": "sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q==",
226 | "dev": true
227 | },
228 | "@typescript-eslint/typescript-estree": {
229 | "version": "5.10.1",
230 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.1.tgz",
231 | "integrity": "sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ==",
232 | "dev": true,
233 | "requires": {
234 | "@typescript-eslint/types": "5.10.1",
235 | "@typescript-eslint/visitor-keys": "5.10.1",
236 | "debug": "^4.3.2",
237 | "globby": "^11.0.4",
238 | "is-glob": "^4.0.3",
239 | "semver": "^7.3.5",
240 | "tsutils": "^3.21.0"
241 | }
242 | },
243 | "@typescript-eslint/visitor-keys": {
244 | "version": "5.10.1",
245 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.1.tgz",
246 | "integrity": "sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ==",
247 | "dev": true,
248 | "requires": {
249 | "@typescript-eslint/types": "5.10.1",
250 | "eslint-visitor-keys": "^3.0.0"
251 | }
252 | },
253 | "acorn": {
254 | "version": "8.7.0",
255 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
256 | "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
257 | "dev": true
258 | },
259 | "acorn-jsx": {
260 | "version": "5.3.2",
261 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
262 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
263 | "dev": true
264 | },
265 | "acorn-node": {
266 | "version": "1.8.2",
267 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
268 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
269 | "dev": true,
270 | "requires": {
271 | "acorn": "^7.0.0",
272 | "acorn-walk": "^7.0.0",
273 | "xtend": "^4.0.2"
274 | },
275 | "dependencies": {
276 | "acorn": {
277 | "version": "7.4.1",
278 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
279 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
280 | "dev": true
281 | }
282 | }
283 | },
284 | "acorn-walk": {
285 | "version": "7.2.0",
286 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
287 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
288 | "dev": true
289 | },
290 | "ajv": {
291 | "version": "6.12.6",
292 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
293 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
294 | "dev": true,
295 | "requires": {
296 | "fast-deep-equal": "^3.1.1",
297 | "fast-json-stable-stringify": "^2.0.0",
298 | "json-schema-traverse": "^0.4.1",
299 | "uri-js": "^4.2.2"
300 | }
301 | },
302 | "ansi-regex": {
303 | "version": "5.0.1",
304 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
305 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
306 | "dev": true
307 | },
308 | "ansi-styles": {
309 | "version": "4.3.0",
310 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
311 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
312 | "dev": true,
313 | "requires": {
314 | "color-convert": "^2.0.1"
315 | }
316 | },
317 | "anymatch": {
318 | "version": "3.1.2",
319 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
320 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
321 | "dev": true,
322 | "requires": {
323 | "normalize-path": "^3.0.0",
324 | "picomatch": "^2.0.4"
325 | }
326 | },
327 | "arg": {
328 | "version": "5.0.1",
329 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz",
330 | "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==",
331 | "dev": true
332 | },
333 | "argparse": {
334 | "version": "2.0.1",
335 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
336 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
337 | "dev": true
338 | },
339 | "aria-query": {
340 | "version": "4.2.2",
341 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
342 | "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
343 | "dev": true,
344 | "requires": {
345 | "@babel/runtime": "^7.10.2",
346 | "@babel/runtime-corejs3": "^7.10.2"
347 | }
348 | },
349 | "array-includes": {
350 | "version": "3.1.4",
351 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
352 | "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
353 | "dev": true,
354 | "requires": {
355 | "call-bind": "^1.0.2",
356 | "define-properties": "^1.1.3",
357 | "es-abstract": "^1.19.1",
358 | "get-intrinsic": "^1.1.1",
359 | "is-string": "^1.0.7"
360 | }
361 | },
362 | "array-union": {
363 | "version": "2.1.0",
364 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
365 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
366 | "dev": true
367 | },
368 | "array.prototype.flat": {
369 | "version": "1.3.0",
370 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
371 | "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
372 | "dev": true,
373 | "requires": {
374 | "call-bind": "^1.0.2",
375 | "define-properties": "^1.1.3",
376 | "es-abstract": "^1.19.2",
377 | "es-shim-unscopables": "^1.0.0"
378 | }
379 | },
380 | "array.prototype.flatmap": {
381 | "version": "1.3.0",
382 | "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz",
383 | "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==",
384 | "dev": true,
385 | "requires": {
386 | "call-bind": "^1.0.2",
387 | "define-properties": "^1.1.3",
388 | "es-abstract": "^1.19.2",
389 | "es-shim-unscopables": "^1.0.0"
390 | }
391 | },
392 | "ast-types-flow": {
393 | "version": "0.0.7",
394 | "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
395 | "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
396 | "dev": true
397 | },
398 | "autoprefixer": {
399 | "version": "10.4.4",
400 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz",
401 | "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==",
402 | "dev": true,
403 | "requires": {
404 | "browserslist": "^4.20.2",
405 | "caniuse-lite": "^1.0.30001317",
406 | "fraction.js": "^4.2.0",
407 | "normalize-range": "^0.1.2",
408 | "picocolors": "^1.0.0",
409 | "postcss-value-parser": "^4.2.0"
410 | }
411 | },
412 | "axe-core": {
413 | "version": "4.4.1",
414 | "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz",
415 | "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==",
416 | "dev": true
417 | },
418 | "axios": {
419 | "version": "0.26.1",
420 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
421 | "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
422 | "requires": {
423 | "follow-redirects": "^1.14.8"
424 | }
425 | },
426 | "axobject-query": {
427 | "version": "2.2.0",
428 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
429 | "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
430 | "dev": true
431 | },
432 | "balanced-match": {
433 | "version": "1.0.2",
434 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
435 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
436 | "dev": true
437 | },
438 | "binary-extensions": {
439 | "version": "2.2.0",
440 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
441 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
442 | "dev": true
443 | },
444 | "brace-expansion": {
445 | "version": "1.1.11",
446 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
447 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
448 | "dev": true,
449 | "requires": {
450 | "balanced-match": "^1.0.0",
451 | "concat-map": "0.0.1"
452 | }
453 | },
454 | "braces": {
455 | "version": "3.0.2",
456 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
457 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
458 | "dev": true,
459 | "requires": {
460 | "fill-range": "^7.0.1"
461 | }
462 | },
463 | "browserslist": {
464 | "version": "4.20.2",
465 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz",
466 | "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==",
467 | "dev": true,
468 | "requires": {
469 | "caniuse-lite": "^1.0.30001317",
470 | "electron-to-chromium": "^1.4.84",
471 | "escalade": "^3.1.1",
472 | "node-releases": "^2.0.2",
473 | "picocolors": "^1.0.0"
474 | }
475 | },
476 | "call-bind": {
477 | "version": "1.0.2",
478 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
479 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
480 | "dev": true,
481 | "requires": {
482 | "function-bind": "^1.1.1",
483 | "get-intrinsic": "^1.0.2"
484 | }
485 | },
486 | "callsites": {
487 | "version": "3.1.0",
488 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
489 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
490 | "dev": true
491 | },
492 | "camelcase-css": {
493 | "version": "2.0.1",
494 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
495 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
496 | "dev": true
497 | },
498 | "caniuse-lite": {
499 | "version": "1.0.30001332",
500 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz",
501 | "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw=="
502 | },
503 | "chalk": {
504 | "version": "4.1.2",
505 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
506 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
507 | "dev": true,
508 | "requires": {
509 | "ansi-styles": "^4.1.0",
510 | "supports-color": "^7.1.0"
511 | }
512 | },
513 | "chokidar": {
514 | "version": "3.5.3",
515 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
516 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
517 | "dev": true,
518 | "requires": {
519 | "anymatch": "~3.1.2",
520 | "braces": "~3.0.2",
521 | "fsevents": "~2.3.2",
522 | "glob-parent": "~5.1.2",
523 | "is-binary-path": "~2.1.0",
524 | "is-glob": "~4.0.1",
525 | "normalize-path": "~3.0.0",
526 | "readdirp": "~3.6.0"
527 | },
528 | "dependencies": {
529 | "glob-parent": {
530 | "version": "5.1.2",
531 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
532 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
533 | "dev": true,
534 | "requires": {
535 | "is-glob": "^4.0.1"
536 | }
537 | }
538 | }
539 | },
540 | "color-convert": {
541 | "version": "2.0.1",
542 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
543 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
544 | "dev": true,
545 | "requires": {
546 | "color-name": "~1.1.4"
547 | }
548 | },
549 | "color-name": {
550 | "version": "1.1.4",
551 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
552 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
553 | "dev": true
554 | },
555 | "concat-map": {
556 | "version": "0.0.1",
557 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
558 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
559 | "dev": true
560 | },
561 | "core-js-pure": {
562 | "version": "3.22.0",
563 | "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.0.tgz",
564 | "integrity": "sha512-ylOC9nVy0ak1N+fPIZj00umoZHgUVqmucklP5RT5N+vJof38klKn8Ze6KGyvchdClvEBr6LcQqJpI216LUMqYA==",
565 | "dev": true
566 | },
567 | "cross-spawn": {
568 | "version": "7.0.3",
569 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
570 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
571 | "dev": true,
572 | "requires": {
573 | "path-key": "^3.1.0",
574 | "shebang-command": "^2.0.0",
575 | "which": "^2.0.1"
576 | }
577 | },
578 | "cssesc": {
579 | "version": "3.0.0",
580 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
581 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
582 | "dev": true
583 | },
584 | "damerau-levenshtein": {
585 | "version": "1.0.8",
586 | "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
587 | "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
588 | "dev": true
589 | },
590 | "debug": {
591 | "version": "4.3.4",
592 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
593 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
594 | "dev": true,
595 | "requires": {
596 | "ms": "2.1.2"
597 | }
598 | },
599 | "deep-is": {
600 | "version": "0.1.4",
601 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
602 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
603 | "dev": true
604 | },
605 | "define-properties": {
606 | "version": "1.1.4",
607 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
608 | "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
609 | "dev": true,
610 | "requires": {
611 | "has-property-descriptors": "^1.0.0",
612 | "object-keys": "^1.1.1"
613 | }
614 | },
615 | "defined": {
616 | "version": "1.0.0",
617 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
618 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
619 | "dev": true
620 | },
621 | "detective": {
622 | "version": "5.2.0",
623 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
624 | "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
625 | "dev": true,
626 | "requires": {
627 | "acorn-node": "^1.6.1",
628 | "defined": "^1.0.0",
629 | "minimist": "^1.1.1"
630 | }
631 | },
632 | "didyoumean": {
633 | "version": "1.2.2",
634 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
635 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
636 | "dev": true
637 | },
638 | "dir-glob": {
639 | "version": "3.0.1",
640 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
641 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
642 | "dev": true,
643 | "requires": {
644 | "path-type": "^4.0.0"
645 | }
646 | },
647 | "dlv": {
648 | "version": "1.1.3",
649 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
650 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
651 | "dev": true
652 | },
653 | "doctrine": {
654 | "version": "3.0.0",
655 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
656 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
657 | "dev": true,
658 | "requires": {
659 | "esutils": "^2.0.2"
660 | }
661 | },
662 | "electron-to-chromium": {
663 | "version": "1.4.110",
664 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.110.tgz",
665 | "integrity": "sha512-TvHZrkj9anfWkxgblHlNr4IMQdm2N6D0o8Wu1BDpSL/RKT4DHyUt/tvDFtApgZ+LGFL3U9EO4LRZ1eSlQ8xMYA==",
666 | "dev": true
667 | },
668 | "emoji-regex": {
669 | "version": "9.2.2",
670 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
671 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
672 | "dev": true
673 | },
674 | "es-abstract": {
675 | "version": "1.19.5",
676 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz",
677 | "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==",
678 | "dev": true,
679 | "requires": {
680 | "call-bind": "^1.0.2",
681 | "es-to-primitive": "^1.2.1",
682 | "function-bind": "^1.1.1",
683 | "get-intrinsic": "^1.1.1",
684 | "get-symbol-description": "^1.0.0",
685 | "has": "^1.0.3",
686 | "has-symbols": "^1.0.3",
687 | "internal-slot": "^1.0.3",
688 | "is-callable": "^1.2.4",
689 | "is-negative-zero": "^2.0.2",
690 | "is-regex": "^1.1.4",
691 | "is-shared-array-buffer": "^1.0.2",
692 | "is-string": "^1.0.7",
693 | "is-weakref": "^1.0.2",
694 | "object-inspect": "^1.12.0",
695 | "object-keys": "^1.1.1",
696 | "object.assign": "^4.1.2",
697 | "string.prototype.trimend": "^1.0.4",
698 | "string.prototype.trimstart": "^1.0.4",
699 | "unbox-primitive": "^1.0.1"
700 | }
701 | },
702 | "es-shim-unscopables": {
703 | "version": "1.0.0",
704 | "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
705 | "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
706 | "dev": true,
707 | "requires": {
708 | "has": "^1.0.3"
709 | }
710 | },
711 | "es-to-primitive": {
712 | "version": "1.2.1",
713 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
714 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
715 | "dev": true,
716 | "requires": {
717 | "is-callable": "^1.1.4",
718 | "is-date-object": "^1.0.1",
719 | "is-symbol": "^1.0.2"
720 | }
721 | },
722 | "escalade": {
723 | "version": "3.1.1",
724 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
725 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
726 | "dev": true
727 | },
728 | "escape-string-regexp": {
729 | "version": "4.0.0",
730 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
731 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
732 | "dev": true
733 | },
734 | "eslint": {
735 | "version": "8.13.0",
736 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz",
737 | "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==",
738 | "dev": true,
739 | "requires": {
740 | "@eslint/eslintrc": "^1.2.1",
741 | "@humanwhocodes/config-array": "^0.9.2",
742 | "ajv": "^6.10.0",
743 | "chalk": "^4.0.0",
744 | "cross-spawn": "^7.0.2",
745 | "debug": "^4.3.2",
746 | "doctrine": "^3.0.0",
747 | "escape-string-regexp": "^4.0.0",
748 | "eslint-scope": "^7.1.1",
749 | "eslint-utils": "^3.0.0",
750 | "eslint-visitor-keys": "^3.3.0",
751 | "espree": "^9.3.1",
752 | "esquery": "^1.4.0",
753 | "esutils": "^2.0.2",
754 | "fast-deep-equal": "^3.1.3",
755 | "file-entry-cache": "^6.0.1",
756 | "functional-red-black-tree": "^1.0.1",
757 | "glob-parent": "^6.0.1",
758 | "globals": "^13.6.0",
759 | "ignore": "^5.2.0",
760 | "import-fresh": "^3.0.0",
761 | "imurmurhash": "^0.1.4",
762 | "is-glob": "^4.0.0",
763 | "js-yaml": "^4.1.0",
764 | "json-stable-stringify-without-jsonify": "^1.0.1",
765 | "levn": "^0.4.1",
766 | "lodash.merge": "^4.6.2",
767 | "minimatch": "^3.0.4",
768 | "natural-compare": "^1.4.0",
769 | "optionator": "^0.9.1",
770 | "regexpp": "^3.2.0",
771 | "strip-ansi": "^6.0.1",
772 | "strip-json-comments": "^3.1.0",
773 | "text-table": "^0.2.0",
774 | "v8-compile-cache": "^2.0.3"
775 | }
776 | },
777 | "eslint-config-next": {
778 | "version": "12.1.5",
779 | "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.1.5.tgz",
780 | "integrity": "sha512-P+DCt5ti63KhC0qNLzrAmPcwRGq8pYqgcf/NNr1E+WjCrMkWdCAXkIANTquo+kcO1adR2k1lTo5GCrNUtKy4hQ==",
781 | "dev": true,
782 | "requires": {
783 | "@next/eslint-plugin-next": "12.1.5",
784 | "@rushstack/eslint-patch": "1.0.8",
785 | "@typescript-eslint/parser": "5.10.1",
786 | "eslint-import-resolver-node": "0.3.4",
787 | "eslint-import-resolver-typescript": "2.4.0",
788 | "eslint-plugin-import": "2.25.2",
789 | "eslint-plugin-jsx-a11y": "6.5.1",
790 | "eslint-plugin-react": "7.29.1",
791 | "eslint-plugin-react-hooks": "4.3.0"
792 | }
793 | },
794 | "eslint-import-resolver-node": {
795 | "version": "0.3.4",
796 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
797 | "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
798 | "dev": true,
799 | "requires": {
800 | "debug": "^2.6.9",
801 | "resolve": "^1.13.1"
802 | },
803 | "dependencies": {
804 | "debug": {
805 | "version": "2.6.9",
806 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
807 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
808 | "dev": true,
809 | "requires": {
810 | "ms": "2.0.0"
811 | }
812 | },
813 | "ms": {
814 | "version": "2.0.0",
815 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
816 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
817 | "dev": true
818 | }
819 | }
820 | },
821 | "eslint-import-resolver-typescript": {
822 | "version": "2.4.0",
823 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz",
824 | "integrity": "sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA==",
825 | "dev": true,
826 | "requires": {
827 | "debug": "^4.1.1",
828 | "glob": "^7.1.6",
829 | "is-glob": "^4.0.1",
830 | "resolve": "^1.17.0",
831 | "tsconfig-paths": "^3.9.0"
832 | }
833 | },
834 | "eslint-module-utils": {
835 | "version": "2.7.3",
836 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz",
837 | "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==",
838 | "dev": true,
839 | "requires": {
840 | "debug": "^3.2.7",
841 | "find-up": "^2.1.0"
842 | },
843 | "dependencies": {
844 | "debug": {
845 | "version": "3.2.7",
846 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
847 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
848 | "dev": true,
849 | "requires": {
850 | "ms": "^2.1.1"
851 | }
852 | }
853 | }
854 | },
855 | "eslint-plugin-import": {
856 | "version": "2.25.2",
857 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz",
858 | "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==",
859 | "dev": true,
860 | "requires": {
861 | "array-includes": "^3.1.4",
862 | "array.prototype.flat": "^1.2.5",
863 | "debug": "^2.6.9",
864 | "doctrine": "^2.1.0",
865 | "eslint-import-resolver-node": "^0.3.6",
866 | "eslint-module-utils": "^2.7.0",
867 | "has": "^1.0.3",
868 | "is-core-module": "^2.7.0",
869 | "is-glob": "^4.0.3",
870 | "minimatch": "^3.0.4",
871 | "object.values": "^1.1.5",
872 | "resolve": "^1.20.0",
873 | "tsconfig-paths": "^3.11.0"
874 | },
875 | "dependencies": {
876 | "debug": {
877 | "version": "2.6.9",
878 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
879 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
880 | "dev": true,
881 | "requires": {
882 | "ms": "2.0.0"
883 | }
884 | },
885 | "doctrine": {
886 | "version": "2.1.0",
887 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
888 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
889 | "dev": true,
890 | "requires": {
891 | "esutils": "^2.0.2"
892 | }
893 | },
894 | "eslint-import-resolver-node": {
895 | "version": "0.3.6",
896 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
897 | "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
898 | "dev": true,
899 | "requires": {
900 | "debug": "^3.2.7",
901 | "resolve": "^1.20.0"
902 | },
903 | "dependencies": {
904 | "debug": {
905 | "version": "3.2.7",
906 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
907 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
908 | "dev": true,
909 | "requires": {
910 | "ms": "^2.1.1"
911 | }
912 | },
913 | "ms": {
914 | "version": "2.1.3",
915 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
916 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
917 | "dev": true
918 | }
919 | }
920 | },
921 | "ms": {
922 | "version": "2.0.0",
923 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
924 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
925 | "dev": true
926 | }
927 | }
928 | },
929 | "eslint-plugin-jsx-a11y": {
930 | "version": "6.5.1",
931 | "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz",
932 | "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==",
933 | "dev": true,
934 | "requires": {
935 | "@babel/runtime": "^7.16.3",
936 | "aria-query": "^4.2.2",
937 | "array-includes": "^3.1.4",
938 | "ast-types-flow": "^0.0.7",
939 | "axe-core": "^4.3.5",
940 | "axobject-query": "^2.2.0",
941 | "damerau-levenshtein": "^1.0.7",
942 | "emoji-regex": "^9.2.2",
943 | "has": "^1.0.3",
944 | "jsx-ast-utils": "^3.2.1",
945 | "language-tags": "^1.0.5",
946 | "minimatch": "^3.0.4"
947 | }
948 | },
949 | "eslint-plugin-react": {
950 | "version": "7.29.1",
951 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.1.tgz",
952 | "integrity": "sha512-WtzRpHMhsOX05ZrkyaaqmLl2uXGqmYooCfBxftJKlkYdsltiufGgfU7uuoHwR2lBam2Kh/EIVID4aU9e3kbCMA==",
953 | "dev": true,
954 | "requires": {
955 | "array-includes": "^3.1.4",
956 | "array.prototype.flatmap": "^1.2.5",
957 | "doctrine": "^2.1.0",
958 | "estraverse": "^5.3.0",
959 | "jsx-ast-utils": "^2.4.1 || ^3.0.0",
960 | "minimatch": "^3.1.2",
961 | "object.entries": "^1.1.5",
962 | "object.fromentries": "^2.0.5",
963 | "object.hasown": "^1.1.0",
964 | "object.values": "^1.1.5",
965 | "prop-types": "^15.8.1",
966 | "resolve": "^2.0.0-next.3",
967 | "semver": "^6.3.0",
968 | "string.prototype.matchall": "^4.0.6"
969 | },
970 | "dependencies": {
971 | "doctrine": {
972 | "version": "2.1.0",
973 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
974 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
975 | "dev": true,
976 | "requires": {
977 | "esutils": "^2.0.2"
978 | }
979 | },
980 | "resolve": {
981 | "version": "2.0.0-next.3",
982 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
983 | "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
984 | "dev": true,
985 | "requires": {
986 | "is-core-module": "^2.2.0",
987 | "path-parse": "^1.0.6"
988 | }
989 | },
990 | "semver": {
991 | "version": "6.3.0",
992 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
993 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
994 | "dev": true
995 | }
996 | }
997 | },
998 | "eslint-plugin-react-hooks": {
999 | "version": "4.3.0",
1000 | "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz",
1001 | "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==",
1002 | "dev": true
1003 | },
1004 | "eslint-scope": {
1005 | "version": "7.1.1",
1006 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
1007 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
1008 | "dev": true,
1009 | "requires": {
1010 | "esrecurse": "^4.3.0",
1011 | "estraverse": "^5.2.0"
1012 | }
1013 | },
1014 | "eslint-utils": {
1015 | "version": "3.0.0",
1016 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
1017 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
1018 | "dev": true,
1019 | "requires": {
1020 | "eslint-visitor-keys": "^2.0.0"
1021 | },
1022 | "dependencies": {
1023 | "eslint-visitor-keys": {
1024 | "version": "2.1.0",
1025 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
1026 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
1027 | "dev": true
1028 | }
1029 | }
1030 | },
1031 | "eslint-visitor-keys": {
1032 | "version": "3.3.0",
1033 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
1034 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
1035 | "dev": true
1036 | },
1037 | "espree": {
1038 | "version": "9.3.1",
1039 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz",
1040 | "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==",
1041 | "dev": true,
1042 | "requires": {
1043 | "acorn": "^8.7.0",
1044 | "acorn-jsx": "^5.3.1",
1045 | "eslint-visitor-keys": "^3.3.0"
1046 | }
1047 | },
1048 | "esquery": {
1049 | "version": "1.4.0",
1050 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
1051 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
1052 | "dev": true,
1053 | "requires": {
1054 | "estraverse": "^5.1.0"
1055 | }
1056 | },
1057 | "esrecurse": {
1058 | "version": "4.3.0",
1059 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
1060 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
1061 | "dev": true,
1062 | "requires": {
1063 | "estraverse": "^5.2.0"
1064 | }
1065 | },
1066 | "estraverse": {
1067 | "version": "5.3.0",
1068 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
1069 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
1070 | "dev": true
1071 | },
1072 | "esutils": {
1073 | "version": "2.0.3",
1074 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1075 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1076 | "dev": true
1077 | },
1078 | "fast-deep-equal": {
1079 | "version": "3.1.3",
1080 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1081 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1082 | "dev": true
1083 | },
1084 | "fast-glob": {
1085 | "version": "3.2.11",
1086 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
1087 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
1088 | "dev": true,
1089 | "requires": {
1090 | "@nodelib/fs.stat": "^2.0.2",
1091 | "@nodelib/fs.walk": "^1.2.3",
1092 | "glob-parent": "^5.1.2",
1093 | "merge2": "^1.3.0",
1094 | "micromatch": "^4.0.4"
1095 | },
1096 | "dependencies": {
1097 | "glob-parent": {
1098 | "version": "5.1.2",
1099 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1100 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1101 | "dev": true,
1102 | "requires": {
1103 | "is-glob": "^4.0.1"
1104 | }
1105 | }
1106 | }
1107 | },
1108 | "fast-json-stable-stringify": {
1109 | "version": "2.1.0",
1110 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1111 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
1112 | "dev": true
1113 | },
1114 | "fast-levenshtein": {
1115 | "version": "2.0.6",
1116 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1117 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
1118 | "dev": true
1119 | },
1120 | "fastq": {
1121 | "version": "1.13.0",
1122 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
1123 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
1124 | "dev": true,
1125 | "requires": {
1126 | "reusify": "^1.0.4"
1127 | }
1128 | },
1129 | "file-entry-cache": {
1130 | "version": "6.0.1",
1131 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
1132 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
1133 | "dev": true,
1134 | "requires": {
1135 | "flat-cache": "^3.0.4"
1136 | }
1137 | },
1138 | "fill-range": {
1139 | "version": "7.0.1",
1140 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1141 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1142 | "dev": true,
1143 | "requires": {
1144 | "to-regex-range": "^5.0.1"
1145 | }
1146 | },
1147 | "find-up": {
1148 | "version": "2.1.0",
1149 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
1150 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
1151 | "dev": true,
1152 | "requires": {
1153 | "locate-path": "^2.0.0"
1154 | }
1155 | },
1156 | "flat-cache": {
1157 | "version": "3.0.4",
1158 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
1159 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
1160 | "dev": true,
1161 | "requires": {
1162 | "flatted": "^3.1.0",
1163 | "rimraf": "^3.0.2"
1164 | }
1165 | },
1166 | "flatted": {
1167 | "version": "3.2.5",
1168 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
1169 | "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
1170 | "dev": true
1171 | },
1172 | "follow-redirects": {
1173 | "version": "1.14.9",
1174 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
1175 | "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
1176 | },
1177 | "fraction.js": {
1178 | "version": "4.2.0",
1179 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
1180 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
1181 | "dev": true
1182 | },
1183 | "fs.realpath": {
1184 | "version": "1.0.0",
1185 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1186 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1187 | "dev": true
1188 | },
1189 | "fsevents": {
1190 | "version": "2.3.2",
1191 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1192 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1193 | "dev": true,
1194 | "optional": true
1195 | },
1196 | "function-bind": {
1197 | "version": "1.1.1",
1198 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1199 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1200 | "dev": true
1201 | },
1202 | "functional-red-black-tree": {
1203 | "version": "1.0.1",
1204 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
1205 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
1206 | "dev": true
1207 | },
1208 | "functions-have-names": {
1209 | "version": "1.2.2",
1210 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz",
1211 | "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==",
1212 | "dev": true
1213 | },
1214 | "get-intrinsic": {
1215 | "version": "1.1.1",
1216 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1217 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1218 | "dev": true,
1219 | "requires": {
1220 | "function-bind": "^1.1.1",
1221 | "has": "^1.0.3",
1222 | "has-symbols": "^1.0.1"
1223 | }
1224 | },
1225 | "get-symbol-description": {
1226 | "version": "1.0.0",
1227 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
1228 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
1229 | "dev": true,
1230 | "requires": {
1231 | "call-bind": "^1.0.2",
1232 | "get-intrinsic": "^1.1.1"
1233 | }
1234 | },
1235 | "glob": {
1236 | "version": "7.2.0",
1237 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
1238 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
1239 | "dev": true,
1240 | "requires": {
1241 | "fs.realpath": "^1.0.0",
1242 | "inflight": "^1.0.4",
1243 | "inherits": "2",
1244 | "minimatch": "^3.0.4",
1245 | "once": "^1.3.0",
1246 | "path-is-absolute": "^1.0.0"
1247 | }
1248 | },
1249 | "glob-parent": {
1250 | "version": "6.0.2",
1251 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1252 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1253 | "dev": true,
1254 | "requires": {
1255 | "is-glob": "^4.0.3"
1256 | }
1257 | },
1258 | "globals": {
1259 | "version": "13.13.0",
1260 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
1261 | "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
1262 | "dev": true,
1263 | "requires": {
1264 | "type-fest": "^0.20.2"
1265 | }
1266 | },
1267 | "globby": {
1268 | "version": "11.1.0",
1269 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
1270 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
1271 | "dev": true,
1272 | "requires": {
1273 | "array-union": "^2.1.0",
1274 | "dir-glob": "^3.0.1",
1275 | "fast-glob": "^3.2.9",
1276 | "ignore": "^5.2.0",
1277 | "merge2": "^1.4.1",
1278 | "slash": "^3.0.0"
1279 | }
1280 | },
1281 | "has": {
1282 | "version": "1.0.3",
1283 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1284 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1285 | "dev": true,
1286 | "requires": {
1287 | "function-bind": "^1.1.1"
1288 | }
1289 | },
1290 | "has-bigints": {
1291 | "version": "1.0.1",
1292 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
1293 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
1294 | "dev": true
1295 | },
1296 | "has-flag": {
1297 | "version": "4.0.0",
1298 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1299 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1300 | "dev": true
1301 | },
1302 | "has-property-descriptors": {
1303 | "version": "1.0.0",
1304 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
1305 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
1306 | "dev": true,
1307 | "requires": {
1308 | "get-intrinsic": "^1.1.1"
1309 | }
1310 | },
1311 | "has-symbols": {
1312 | "version": "1.0.3",
1313 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1314 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
1315 | "dev": true
1316 | },
1317 | "has-tostringtag": {
1318 | "version": "1.0.0",
1319 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
1320 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
1321 | "dev": true,
1322 | "requires": {
1323 | "has-symbols": "^1.0.2"
1324 | }
1325 | },
1326 | "ignore": {
1327 | "version": "5.2.0",
1328 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
1329 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
1330 | "dev": true
1331 | },
1332 | "import-fresh": {
1333 | "version": "3.3.0",
1334 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
1335 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
1336 | "dev": true,
1337 | "requires": {
1338 | "parent-module": "^1.0.0",
1339 | "resolve-from": "^4.0.0"
1340 | }
1341 | },
1342 | "imurmurhash": {
1343 | "version": "0.1.4",
1344 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1345 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1346 | "dev": true
1347 | },
1348 | "inflight": {
1349 | "version": "1.0.6",
1350 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1351 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1352 | "dev": true,
1353 | "requires": {
1354 | "once": "^1.3.0",
1355 | "wrappy": "1"
1356 | }
1357 | },
1358 | "inherits": {
1359 | "version": "2.0.4",
1360 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1361 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1362 | "dev": true
1363 | },
1364 | "internal-slot": {
1365 | "version": "1.0.3",
1366 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
1367 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
1368 | "dev": true,
1369 | "requires": {
1370 | "get-intrinsic": "^1.1.0",
1371 | "has": "^1.0.3",
1372 | "side-channel": "^1.0.4"
1373 | }
1374 | },
1375 | "is-bigint": {
1376 | "version": "1.0.4",
1377 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
1378 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
1379 | "dev": true,
1380 | "requires": {
1381 | "has-bigints": "^1.0.1"
1382 | }
1383 | },
1384 | "is-binary-path": {
1385 | "version": "2.1.0",
1386 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1387 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1388 | "dev": true,
1389 | "requires": {
1390 | "binary-extensions": "^2.0.0"
1391 | }
1392 | },
1393 | "is-boolean-object": {
1394 | "version": "1.1.2",
1395 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
1396 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
1397 | "dev": true,
1398 | "requires": {
1399 | "call-bind": "^1.0.2",
1400 | "has-tostringtag": "^1.0.0"
1401 | }
1402 | },
1403 | "is-callable": {
1404 | "version": "1.2.4",
1405 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
1406 | "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
1407 | "dev": true
1408 | },
1409 | "is-core-module": {
1410 | "version": "2.8.1",
1411 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
1412 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
1413 | "dev": true,
1414 | "requires": {
1415 | "has": "^1.0.3"
1416 | }
1417 | },
1418 | "is-date-object": {
1419 | "version": "1.0.5",
1420 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
1421 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
1422 | "dev": true,
1423 | "requires": {
1424 | "has-tostringtag": "^1.0.0"
1425 | }
1426 | },
1427 | "is-extglob": {
1428 | "version": "2.1.1",
1429 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1430 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1431 | "dev": true
1432 | },
1433 | "is-glob": {
1434 | "version": "4.0.3",
1435 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1436 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1437 | "dev": true,
1438 | "requires": {
1439 | "is-extglob": "^2.1.1"
1440 | }
1441 | },
1442 | "is-negative-zero": {
1443 | "version": "2.0.2",
1444 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
1445 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
1446 | "dev": true
1447 | },
1448 | "is-number": {
1449 | "version": "7.0.0",
1450 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1451 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1452 | "dev": true
1453 | },
1454 | "is-number-object": {
1455 | "version": "1.0.7",
1456 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
1457 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
1458 | "dev": true,
1459 | "requires": {
1460 | "has-tostringtag": "^1.0.0"
1461 | }
1462 | },
1463 | "is-regex": {
1464 | "version": "1.1.4",
1465 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
1466 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
1467 | "dev": true,
1468 | "requires": {
1469 | "call-bind": "^1.0.2",
1470 | "has-tostringtag": "^1.0.0"
1471 | }
1472 | },
1473 | "is-shared-array-buffer": {
1474 | "version": "1.0.2",
1475 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
1476 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
1477 | "dev": true,
1478 | "requires": {
1479 | "call-bind": "^1.0.2"
1480 | }
1481 | },
1482 | "is-string": {
1483 | "version": "1.0.7",
1484 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
1485 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
1486 | "dev": true,
1487 | "requires": {
1488 | "has-tostringtag": "^1.0.0"
1489 | }
1490 | },
1491 | "is-symbol": {
1492 | "version": "1.0.4",
1493 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
1494 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
1495 | "dev": true,
1496 | "requires": {
1497 | "has-symbols": "^1.0.2"
1498 | }
1499 | },
1500 | "is-weakref": {
1501 | "version": "1.0.2",
1502 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
1503 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
1504 | "dev": true,
1505 | "requires": {
1506 | "call-bind": "^1.0.2"
1507 | }
1508 | },
1509 | "isexe": {
1510 | "version": "2.0.0",
1511 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1512 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1513 | "dev": true
1514 | },
1515 | "js-tokens": {
1516 | "version": "4.0.0",
1517 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1518 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1519 | },
1520 | "js-yaml": {
1521 | "version": "4.1.0",
1522 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1523 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1524 | "dev": true,
1525 | "requires": {
1526 | "argparse": "^2.0.1"
1527 | }
1528 | },
1529 | "json-schema-traverse": {
1530 | "version": "0.4.1",
1531 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1532 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1533 | "dev": true
1534 | },
1535 | "json-stable-stringify-without-jsonify": {
1536 | "version": "1.0.1",
1537 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1538 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
1539 | "dev": true
1540 | },
1541 | "json5": {
1542 | "version": "1.0.1",
1543 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
1544 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
1545 | "dev": true,
1546 | "requires": {
1547 | "minimist": "^1.2.0"
1548 | }
1549 | },
1550 | "jsx-ast-utils": {
1551 | "version": "3.2.2",
1552 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz",
1553 | "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==",
1554 | "dev": true,
1555 | "requires": {
1556 | "array-includes": "^3.1.4",
1557 | "object.assign": "^4.1.2"
1558 | }
1559 | },
1560 | "language-subtag-registry": {
1561 | "version": "0.3.21",
1562 | "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
1563 | "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==",
1564 | "dev": true
1565 | },
1566 | "language-tags": {
1567 | "version": "1.0.5",
1568 | "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
1569 | "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
1570 | "dev": true,
1571 | "requires": {
1572 | "language-subtag-registry": "~0.3.2"
1573 | }
1574 | },
1575 | "levn": {
1576 | "version": "0.4.1",
1577 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
1578 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
1579 | "dev": true,
1580 | "requires": {
1581 | "prelude-ls": "^1.2.1",
1582 | "type-check": "~0.4.0"
1583 | }
1584 | },
1585 | "lilconfig": {
1586 | "version": "2.0.5",
1587 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz",
1588 | "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==",
1589 | "dev": true
1590 | },
1591 | "locate-path": {
1592 | "version": "2.0.0",
1593 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
1594 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
1595 | "dev": true,
1596 | "requires": {
1597 | "p-locate": "^2.0.0",
1598 | "path-exists": "^3.0.0"
1599 | }
1600 | },
1601 | "lodash.merge": {
1602 | "version": "4.6.2",
1603 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
1604 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
1605 | "dev": true
1606 | },
1607 | "loose-envify": {
1608 | "version": "1.4.0",
1609 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1610 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1611 | "requires": {
1612 | "js-tokens": "^3.0.0 || ^4.0.0"
1613 | }
1614 | },
1615 | "lru-cache": {
1616 | "version": "6.0.0",
1617 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1618 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1619 | "dev": true,
1620 | "requires": {
1621 | "yallist": "^4.0.0"
1622 | }
1623 | },
1624 | "merge2": {
1625 | "version": "1.4.1",
1626 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1627 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1628 | "dev": true
1629 | },
1630 | "micromatch": {
1631 | "version": "4.0.5",
1632 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1633 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1634 | "dev": true,
1635 | "requires": {
1636 | "braces": "^3.0.2",
1637 | "picomatch": "^2.3.1"
1638 | }
1639 | },
1640 | "minimatch": {
1641 | "version": "3.1.2",
1642 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1643 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1644 | "dev": true,
1645 | "requires": {
1646 | "brace-expansion": "^1.1.7"
1647 | }
1648 | },
1649 | "minimist": {
1650 | "version": "1.2.6",
1651 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
1652 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
1653 | "dev": true
1654 | },
1655 | "ms": {
1656 | "version": "2.1.2",
1657 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1658 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1659 | "dev": true
1660 | },
1661 | "nanoid": {
1662 | "version": "3.3.2",
1663 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz",
1664 | "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA=="
1665 | },
1666 | "natural-compare": {
1667 | "version": "1.4.0",
1668 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1669 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
1670 | "dev": true
1671 | },
1672 | "next": {
1673 | "version": "12.1.5",
1674 | "resolved": "https://registry.npmjs.org/next/-/next-12.1.5.tgz",
1675 | "integrity": "sha512-YGHDpyfgCfnT5GZObsKepmRnne7Kzp7nGrac07dikhutWQug7hHg85/+sPJ4ZW5Q2pDkb+n0FnmLkmd44htIJQ==",
1676 | "requires": {
1677 | "@next/env": "12.1.5",
1678 | "@next/swc-android-arm-eabi": "12.1.5",
1679 | "@next/swc-android-arm64": "12.1.5",
1680 | "@next/swc-darwin-arm64": "12.1.5",
1681 | "@next/swc-darwin-x64": "12.1.5",
1682 | "@next/swc-linux-arm-gnueabihf": "12.1.5",
1683 | "@next/swc-linux-arm64-gnu": "12.1.5",
1684 | "@next/swc-linux-arm64-musl": "12.1.5",
1685 | "@next/swc-linux-x64-gnu": "12.1.5",
1686 | "@next/swc-linux-x64-musl": "12.1.5",
1687 | "@next/swc-win32-arm64-msvc": "12.1.5",
1688 | "@next/swc-win32-ia32-msvc": "12.1.5",
1689 | "@next/swc-win32-x64-msvc": "12.1.5",
1690 | "caniuse-lite": "^1.0.30001283",
1691 | "postcss": "8.4.5",
1692 | "styled-jsx": "5.0.1"
1693 | },
1694 | "dependencies": {
1695 | "postcss": {
1696 | "version": "8.4.5",
1697 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz",
1698 | "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==",
1699 | "requires": {
1700 | "nanoid": "^3.1.30",
1701 | "picocolors": "^1.0.0",
1702 | "source-map-js": "^1.0.1"
1703 | }
1704 | }
1705 | }
1706 | },
1707 | "node-releases": {
1708 | "version": "2.0.3",
1709 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz",
1710 | "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==",
1711 | "dev": true
1712 | },
1713 | "normalize-path": {
1714 | "version": "3.0.0",
1715 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1716 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1717 | "dev": true
1718 | },
1719 | "normalize-range": {
1720 | "version": "0.1.2",
1721 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
1722 | "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
1723 | "dev": true
1724 | },
1725 | "object-assign": {
1726 | "version": "4.1.1",
1727 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1728 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1729 | "dev": true
1730 | },
1731 | "object-hash": {
1732 | "version": "3.0.0",
1733 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
1734 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
1735 | "dev": true
1736 | },
1737 | "object-inspect": {
1738 | "version": "1.12.0",
1739 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
1740 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
1741 | "dev": true
1742 | },
1743 | "object-keys": {
1744 | "version": "1.1.1",
1745 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1746 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1747 | "dev": true
1748 | },
1749 | "object.assign": {
1750 | "version": "4.1.2",
1751 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
1752 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
1753 | "dev": true,
1754 | "requires": {
1755 | "call-bind": "^1.0.0",
1756 | "define-properties": "^1.1.3",
1757 | "has-symbols": "^1.0.1",
1758 | "object-keys": "^1.1.1"
1759 | }
1760 | },
1761 | "object.entries": {
1762 | "version": "1.1.5",
1763 | "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
1764 | "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
1765 | "dev": true,
1766 | "requires": {
1767 | "call-bind": "^1.0.2",
1768 | "define-properties": "^1.1.3",
1769 | "es-abstract": "^1.19.1"
1770 | }
1771 | },
1772 | "object.fromentries": {
1773 | "version": "2.0.5",
1774 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
1775 | "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
1776 | "dev": true,
1777 | "requires": {
1778 | "call-bind": "^1.0.2",
1779 | "define-properties": "^1.1.3",
1780 | "es-abstract": "^1.19.1"
1781 | }
1782 | },
1783 | "object.hasown": {
1784 | "version": "1.1.0",
1785 | "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
1786 | "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
1787 | "dev": true,
1788 | "requires": {
1789 | "define-properties": "^1.1.3",
1790 | "es-abstract": "^1.19.1"
1791 | }
1792 | },
1793 | "object.values": {
1794 | "version": "1.1.5",
1795 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
1796 | "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
1797 | "dev": true,
1798 | "requires": {
1799 | "call-bind": "^1.0.2",
1800 | "define-properties": "^1.1.3",
1801 | "es-abstract": "^1.19.1"
1802 | }
1803 | },
1804 | "once": {
1805 | "version": "1.4.0",
1806 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1807 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1808 | "dev": true,
1809 | "requires": {
1810 | "wrappy": "1"
1811 | }
1812 | },
1813 | "optionator": {
1814 | "version": "0.9.1",
1815 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
1816 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
1817 | "dev": true,
1818 | "requires": {
1819 | "deep-is": "^0.1.3",
1820 | "fast-levenshtein": "^2.0.6",
1821 | "levn": "^0.4.1",
1822 | "prelude-ls": "^1.2.1",
1823 | "type-check": "^0.4.0",
1824 | "word-wrap": "^1.2.3"
1825 | }
1826 | },
1827 | "p-limit": {
1828 | "version": "1.3.0",
1829 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
1830 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
1831 | "dev": true,
1832 | "requires": {
1833 | "p-try": "^1.0.0"
1834 | }
1835 | },
1836 | "p-locate": {
1837 | "version": "2.0.0",
1838 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
1839 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
1840 | "dev": true,
1841 | "requires": {
1842 | "p-limit": "^1.1.0"
1843 | }
1844 | },
1845 | "p-try": {
1846 | "version": "1.0.0",
1847 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
1848 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
1849 | "dev": true
1850 | },
1851 | "parent-module": {
1852 | "version": "1.0.1",
1853 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1854 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1855 | "dev": true,
1856 | "requires": {
1857 | "callsites": "^3.0.0"
1858 | }
1859 | },
1860 | "path-exists": {
1861 | "version": "3.0.0",
1862 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1863 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
1864 | "dev": true
1865 | },
1866 | "path-is-absolute": {
1867 | "version": "1.0.1",
1868 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1869 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1870 | "dev": true
1871 | },
1872 | "path-key": {
1873 | "version": "3.1.1",
1874 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1875 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1876 | "dev": true
1877 | },
1878 | "path-parse": {
1879 | "version": "1.0.7",
1880 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1881 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1882 | "dev": true
1883 | },
1884 | "path-type": {
1885 | "version": "4.0.0",
1886 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1887 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
1888 | "dev": true
1889 | },
1890 | "picocolors": {
1891 | "version": "1.0.0",
1892 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1893 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1894 | },
1895 | "picomatch": {
1896 | "version": "2.3.1",
1897 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1898 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1899 | "dev": true
1900 | },
1901 | "postcss": {
1902 | "version": "8.4.12",
1903 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz",
1904 | "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==",
1905 | "dev": true,
1906 | "requires": {
1907 | "nanoid": "^3.3.1",
1908 | "picocolors": "^1.0.0",
1909 | "source-map-js": "^1.0.2"
1910 | }
1911 | },
1912 | "postcss-js": {
1913 | "version": "4.0.0",
1914 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
1915 | "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==",
1916 | "dev": true,
1917 | "requires": {
1918 | "camelcase-css": "^2.0.1"
1919 | }
1920 | },
1921 | "postcss-load-config": {
1922 | "version": "3.1.4",
1923 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
1924 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
1925 | "dev": true,
1926 | "requires": {
1927 | "lilconfig": "^2.0.5",
1928 | "yaml": "^1.10.2"
1929 | }
1930 | },
1931 | "postcss-nested": {
1932 | "version": "5.0.6",
1933 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz",
1934 | "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==",
1935 | "dev": true,
1936 | "requires": {
1937 | "postcss-selector-parser": "^6.0.6"
1938 | }
1939 | },
1940 | "postcss-selector-parser": {
1941 | "version": "6.0.10",
1942 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
1943 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
1944 | "dev": true,
1945 | "requires": {
1946 | "cssesc": "^3.0.0",
1947 | "util-deprecate": "^1.0.2"
1948 | }
1949 | },
1950 | "postcss-value-parser": {
1951 | "version": "4.2.0",
1952 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
1953 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
1954 | "dev": true
1955 | },
1956 | "prelude-ls": {
1957 | "version": "1.2.1",
1958 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
1959 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
1960 | "dev": true
1961 | },
1962 | "prop-types": {
1963 | "version": "15.8.1",
1964 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
1965 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
1966 | "dev": true,
1967 | "requires": {
1968 | "loose-envify": "^1.4.0",
1969 | "object-assign": "^4.1.1",
1970 | "react-is": "^16.13.1"
1971 | }
1972 | },
1973 | "punycode": {
1974 | "version": "2.1.1",
1975 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1976 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1977 | "dev": true
1978 | },
1979 | "queue-microtask": {
1980 | "version": "1.2.3",
1981 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1982 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1983 | "dev": true
1984 | },
1985 | "quick-lru": {
1986 | "version": "5.1.1",
1987 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
1988 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
1989 | "dev": true
1990 | },
1991 | "react": {
1992 | "version": "18.0.0",
1993 | "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz",
1994 | "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==",
1995 | "requires": {
1996 | "loose-envify": "^1.1.0"
1997 | }
1998 | },
1999 | "react-dom": {
2000 | "version": "18.0.0",
2001 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz",
2002 | "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==",
2003 | "requires": {
2004 | "loose-envify": "^1.1.0",
2005 | "scheduler": "^0.21.0"
2006 | }
2007 | },
2008 | "react-is": {
2009 | "version": "16.13.1",
2010 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
2011 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
2012 | "dev": true
2013 | },
2014 | "readdirp": {
2015 | "version": "3.6.0",
2016 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
2017 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
2018 | "dev": true,
2019 | "requires": {
2020 | "picomatch": "^2.2.1"
2021 | }
2022 | },
2023 | "regenerator-runtime": {
2024 | "version": "0.13.9",
2025 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
2026 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
2027 | "dev": true
2028 | },
2029 | "regexp.prototype.flags": {
2030 | "version": "1.4.3",
2031 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
2032 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
2033 | "dev": true,
2034 | "requires": {
2035 | "call-bind": "^1.0.2",
2036 | "define-properties": "^1.1.3",
2037 | "functions-have-names": "^1.2.2"
2038 | }
2039 | },
2040 | "regexpp": {
2041 | "version": "3.2.0",
2042 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
2043 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
2044 | "dev": true
2045 | },
2046 | "resolve": {
2047 | "version": "1.22.0",
2048 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
2049 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
2050 | "dev": true,
2051 | "requires": {
2052 | "is-core-module": "^2.8.1",
2053 | "path-parse": "^1.0.7",
2054 | "supports-preserve-symlinks-flag": "^1.0.0"
2055 | }
2056 | },
2057 | "resolve-from": {
2058 | "version": "4.0.0",
2059 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2060 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2061 | "dev": true
2062 | },
2063 | "reusify": {
2064 | "version": "1.0.4",
2065 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
2066 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
2067 | "dev": true
2068 | },
2069 | "rimraf": {
2070 | "version": "3.0.2",
2071 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2072 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2073 | "dev": true,
2074 | "requires": {
2075 | "glob": "^7.1.3"
2076 | }
2077 | },
2078 | "run-parallel": {
2079 | "version": "1.2.0",
2080 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
2081 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
2082 | "dev": true,
2083 | "requires": {
2084 | "queue-microtask": "^1.2.2"
2085 | }
2086 | },
2087 | "scheduler": {
2088 | "version": "0.21.0",
2089 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
2090 | "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
2091 | "requires": {
2092 | "loose-envify": "^1.1.0"
2093 | }
2094 | },
2095 | "semver": {
2096 | "version": "7.3.7",
2097 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
2098 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
2099 | "dev": true,
2100 | "requires": {
2101 | "lru-cache": "^6.0.0"
2102 | }
2103 | },
2104 | "shebang-command": {
2105 | "version": "2.0.0",
2106 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2107 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2108 | "dev": true,
2109 | "requires": {
2110 | "shebang-regex": "^3.0.0"
2111 | }
2112 | },
2113 | "shebang-regex": {
2114 | "version": "3.0.0",
2115 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2116 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2117 | "dev": true
2118 | },
2119 | "side-channel": {
2120 | "version": "1.0.4",
2121 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
2122 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
2123 | "dev": true,
2124 | "requires": {
2125 | "call-bind": "^1.0.0",
2126 | "get-intrinsic": "^1.0.2",
2127 | "object-inspect": "^1.9.0"
2128 | }
2129 | },
2130 | "slash": {
2131 | "version": "3.0.0",
2132 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
2133 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
2134 | "dev": true
2135 | },
2136 | "source-map-js": {
2137 | "version": "1.0.2",
2138 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
2139 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
2140 | },
2141 | "string.prototype.matchall": {
2142 | "version": "4.0.7",
2143 | "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz",
2144 | "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==",
2145 | "dev": true,
2146 | "requires": {
2147 | "call-bind": "^1.0.2",
2148 | "define-properties": "^1.1.3",
2149 | "es-abstract": "^1.19.1",
2150 | "get-intrinsic": "^1.1.1",
2151 | "has-symbols": "^1.0.3",
2152 | "internal-slot": "^1.0.3",
2153 | "regexp.prototype.flags": "^1.4.1",
2154 | "side-channel": "^1.0.4"
2155 | }
2156 | },
2157 | "string.prototype.trimend": {
2158 | "version": "1.0.4",
2159 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
2160 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
2161 | "dev": true,
2162 | "requires": {
2163 | "call-bind": "^1.0.2",
2164 | "define-properties": "^1.1.3"
2165 | }
2166 | },
2167 | "string.prototype.trimstart": {
2168 | "version": "1.0.4",
2169 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
2170 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
2171 | "dev": true,
2172 | "requires": {
2173 | "call-bind": "^1.0.2",
2174 | "define-properties": "^1.1.3"
2175 | }
2176 | },
2177 | "strip-ansi": {
2178 | "version": "6.0.1",
2179 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2180 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2181 | "dev": true,
2182 | "requires": {
2183 | "ansi-regex": "^5.0.1"
2184 | }
2185 | },
2186 | "strip-bom": {
2187 | "version": "3.0.0",
2188 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
2189 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
2190 | "dev": true
2191 | },
2192 | "strip-json-comments": {
2193 | "version": "3.1.1",
2194 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
2195 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
2196 | "dev": true
2197 | },
2198 | "styled-jsx": {
2199 | "version": "5.0.1",
2200 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.1.tgz",
2201 | "integrity": "sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw=="
2202 | },
2203 | "supports-color": {
2204 | "version": "7.2.0",
2205 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2206 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2207 | "dev": true,
2208 | "requires": {
2209 | "has-flag": "^4.0.0"
2210 | }
2211 | },
2212 | "supports-preserve-symlinks-flag": {
2213 | "version": "1.0.0",
2214 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2215 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2216 | "dev": true
2217 | },
2218 | "tailwindcss": {
2219 | "version": "3.0.24",
2220 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz",
2221 | "integrity": "sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==",
2222 | "dev": true,
2223 | "requires": {
2224 | "arg": "^5.0.1",
2225 | "chokidar": "^3.5.3",
2226 | "color-name": "^1.1.4",
2227 | "detective": "^5.2.0",
2228 | "didyoumean": "^1.2.2",
2229 | "dlv": "^1.1.3",
2230 | "fast-glob": "^3.2.11",
2231 | "glob-parent": "^6.0.2",
2232 | "is-glob": "^4.0.3",
2233 | "lilconfig": "^2.0.5",
2234 | "normalize-path": "^3.0.0",
2235 | "object-hash": "^3.0.0",
2236 | "picocolors": "^1.0.0",
2237 | "postcss": "^8.4.12",
2238 | "postcss-js": "^4.0.0",
2239 | "postcss-load-config": "^3.1.4",
2240 | "postcss-nested": "5.0.6",
2241 | "postcss-selector-parser": "^6.0.10",
2242 | "postcss-value-parser": "^4.2.0",
2243 | "quick-lru": "^5.1.1",
2244 | "resolve": "^1.22.0"
2245 | }
2246 | },
2247 | "text-table": {
2248 | "version": "0.2.0",
2249 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
2250 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
2251 | "dev": true
2252 | },
2253 | "to-regex-range": {
2254 | "version": "5.0.1",
2255 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2256 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2257 | "dev": true,
2258 | "requires": {
2259 | "is-number": "^7.0.0"
2260 | }
2261 | },
2262 | "tsconfig-paths": {
2263 | "version": "3.14.1",
2264 | "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
2265 | "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
2266 | "dev": true,
2267 | "requires": {
2268 | "@types/json5": "^0.0.29",
2269 | "json5": "^1.0.1",
2270 | "minimist": "^1.2.6",
2271 | "strip-bom": "^3.0.0"
2272 | }
2273 | },
2274 | "tslib": {
2275 | "version": "1.14.1",
2276 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
2277 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
2278 | "dev": true
2279 | },
2280 | "tsutils": {
2281 | "version": "3.21.0",
2282 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
2283 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
2284 | "dev": true,
2285 | "requires": {
2286 | "tslib": "^1.8.1"
2287 | }
2288 | },
2289 | "type-check": {
2290 | "version": "0.4.0",
2291 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
2292 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
2293 | "dev": true,
2294 | "requires": {
2295 | "prelude-ls": "^1.2.1"
2296 | }
2297 | },
2298 | "type-fest": {
2299 | "version": "0.20.2",
2300 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
2301 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
2302 | "dev": true
2303 | },
2304 | "unbox-primitive": {
2305 | "version": "1.0.1",
2306 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
2307 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
2308 | "dev": true,
2309 | "requires": {
2310 | "function-bind": "^1.1.1",
2311 | "has-bigints": "^1.0.1",
2312 | "has-symbols": "^1.0.2",
2313 | "which-boxed-primitive": "^1.0.2"
2314 | }
2315 | },
2316 | "uri-js": {
2317 | "version": "4.4.1",
2318 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2319 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2320 | "dev": true,
2321 | "requires": {
2322 | "punycode": "^2.1.0"
2323 | }
2324 | },
2325 | "util-deprecate": {
2326 | "version": "1.0.2",
2327 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2328 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2329 | "dev": true
2330 | },
2331 | "v8-compile-cache": {
2332 | "version": "2.3.0",
2333 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
2334 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
2335 | "dev": true
2336 | },
2337 | "which": {
2338 | "version": "2.0.2",
2339 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2340 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2341 | "dev": true,
2342 | "requires": {
2343 | "isexe": "^2.0.0"
2344 | }
2345 | },
2346 | "which-boxed-primitive": {
2347 | "version": "1.0.2",
2348 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
2349 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
2350 | "dev": true,
2351 | "requires": {
2352 | "is-bigint": "^1.0.1",
2353 | "is-boolean-object": "^1.1.0",
2354 | "is-number-object": "^1.0.4",
2355 | "is-string": "^1.0.5",
2356 | "is-symbol": "^1.0.3"
2357 | }
2358 | },
2359 | "word-wrap": {
2360 | "version": "1.2.3",
2361 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
2362 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
2363 | "dev": true
2364 | },
2365 | "wrappy": {
2366 | "version": "1.0.2",
2367 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2368 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2369 | "dev": true
2370 | },
2371 | "xtend": {
2372 | "version": "4.0.2",
2373 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
2374 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
2375 | "dev": true
2376 | },
2377 | "yallist": {
2378 | "version": "4.0.0",
2379 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2380 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
2381 | "dev": true
2382 | },
2383 | "yaml": {
2384 | "version": "1.10.2",
2385 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
2386 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
2387 | "dev": true
2388 | }
2389 | }
2390 | }
2391 |
--------------------------------------------------------------------------------