├── .gitignore
├── .prettierrc
├── LICENSE
├── README.md
├── images
├── Code_Vyzc5YbawL.gif
├── new-screenshot.png
└── screenshot.png
├── index.html
├── package.json
├── postcss.config.js
├── src
├── App.test.tsx
├── App.tsx
├── components
│ ├── Header.tsx
│ ├── Instructions.tsx
│ ├── Keyboard.tsx
│ └── WordRow.tsx
├── hooks
│ ├── useGuess.tsx
│ └── usePrevious.tsx
├── index.css
├── main.tsx
├── store.ts
├── test
│ ├── test-setup.ts
│ └── test-utils.tsx
├── vite-env.d.ts
├── word-bank.json
├── word-utils.test.ts
└── word-utils.ts
├── tailwind.config.js
├── tsconfig.json
├── tsconfig.node.json
├── vite.config.ts
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .vscode/
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "tabWidth": 2,
3 | "useTabs": false,
4 | "trailingComma": "none"
5 | }
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright 2022 Shoubhit Dash
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
nexdle
2 |
3 | 
4 |
5 |
6 |
7 |
8 |
9 |
10 | If you're finding the game difficult you can always use the wordle solver I made :)
11 |
12 | ## Overview
13 |
14 | A [wordle](https://www.nytimes.com/games/wordle/index.html) clone made with [React](https://reactjs.org/), [TypeScript](https://www.typescriptlang.org/), [TailwindCSS](https://tailwindcss.com/), [Vite](https://vitejs.dev/) and [Zustand](https://github.com/pmndrs/zustand). This project was a great learning experience for me, I learnt a lot about CSS grids, custom hooks in React, using state management libraries like Zustand, and how to use testing tools ([Vitest](https://vitest.dev/) in this case).
15 |
16 | ## Run locally
17 |
18 | - Clone the repository
19 |
20 | ```bash
21 | git clone https://github.com/nexxeln/nexdle.git
22 | ```
23 |
24 | - Install dependencies
25 |
26 | ```bash
27 | cd nexdle
28 | yarn
29 | ```
30 |
31 | - Run the app
32 |
33 | ```bash
34 | yarn dev
35 | ```
36 |
37 | - To run tests
38 |
39 | ```bash
40 | yarn test
41 | ```
42 |
43 | - To run tests using the insane vitest ui feature
44 |
45 | ```bash
46 | yarn test:ui
47 | ```
48 |
49 | 
50 |
51 | ## Contributing
52 |
53 | Contributions are welcome!
54 |
55 | ## License
56 |
57 | This repository is licensed under the [Apache 2.0 license](https://github.com/nexxeln/nexdle/blob/main/LICENSE), generated by [gen-license](https://github.com/nexxeln/license-generator).
58 |
--------------------------------------------------------------------------------
/images/Code_Vyzc5YbawL.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nexxeln/nexdle/20fa2b15717ff56b71607df97663445a42abe708/images/Code_Vyzc5YbawL.gif
--------------------------------------------------------------------------------
/images/new-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nexxeln/nexdle/20fa2b15717ff56b71607df97663445a42abe708/images/new-screenshot.png
--------------------------------------------------------------------------------
/images/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nexxeln/nexdle/20fa2b15717ff56b71607df97663445a42abe708/images/screenshot.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
14 |
18 |
19 |
23 |
24 | nexdle
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ui",
3 | "private": true,
4 | "version": "0.0.0",
5 | "scripts": {
6 | "dev": "vite",
7 | "build": "tsc && vite build",
8 | "preview": "vite preview",
9 | "test": "vitest",
10 | "coverage": "vitest run --coverage",
11 | "test:ui": "vitest --ui"
12 | },
13 | "dependencies": {
14 | "react": "18",
15 | "react-dom": "18",
16 | "react-icons": "^4.3.1",
17 | "zustand": "^3.7.1"
18 | },
19 | "devDependencies": {
20 | "@testing-library/jest-dom": "^5.16.2",
21 | "@testing-library/react": "^12.1.4",
22 | "@testing-library/react-hooks": "^7.0.2",
23 | "@testing-library/user-event": "^13.5.0",
24 | "@types/node": "^17.0.21",
25 | "@types/react": "^17.0.33",
26 | "@types/react-dom": "^17.0.10",
27 | "@vitejs/plugin-react": "^1.0.7",
28 | "@vitest/ui": "^0.7.4",
29 | "autoprefixer": "^10.4.4",
30 | "jsdom": "^19.0.0",
31 | "postcss": "^8.4.12",
32 | "tailwindcss": "^3.0.23",
33 | "typescript": "^4.5.4",
34 | "vite": "^2.8.0",
35 | "vitest": "^0.7.4"
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/src/App.test.tsx:
--------------------------------------------------------------------------------
1 | import { describe, expect, test } from "vitest";
2 | import App from "./App";
3 | import { useStore } from "./store";
4 | import { render, screen, userEvent } from "./test/test-utils";
5 |
6 | describe("Simple working test", () => {
7 | test("the title is visible", () => {
8 | render( );
9 | expect(screen.getByText(/nexdle/i)).toBeInTheDocument();
10 | });
11 |
12 | test("shows empty state", () => {
13 | useStore.getState().newGame([]);
14 | render( );
15 | expect(screen.queryByText("Game Over!")).toBeNull();
16 | expect(document.querySelectorAll("main div")).toHaveLength(6);
17 | expect(document.querySelector("main")?.textContent).toEqual("");
18 | });
19 |
20 | test("shows one row of guesses", () => {
21 | useStore.getState().newGame(["touch"]);
22 | render( );
23 | expect(document.querySelector("main")?.textContent).toEqual("touch");
24 | });
25 |
26 | test("shows lost game over state", () => {
27 | useStore.getState().newGame(Array(6).fill("grass"));
28 | render( );
29 | expect(screen.getByText("Game Over!")).toBeInTheDocument();
30 | });
31 |
32 | test("shows won game over state", () => {
33 | useStore.getState().newGame(Array(2).fill("grass"));
34 | const answer = useStore.getState().answer;
35 | useStore.getState().addGuess(answer);
36 | render( );
37 | expect(screen.getByText("You Won!")).toBeInTheDocument();
38 | });
39 |
40 | test("able to start new game", () => {
41 | useStore.getState().newGame(Array(6).fill("grass"));
42 | render( );
43 | expect(screen.getByText("Game Over!")).toBeInTheDocument();
44 | userEvent.click(screen.getByText("NEW GAME"));
45 | expect(document.querySelector("main")?.textContent).toEqual("");
46 | });
47 |
48 | test("able to see instructions modal", () => {
49 | render( );
50 | userEvent.click(screen.getByTestId("instructions"));
51 | expect(screen.getByText("HOW TO PLAY")).toBeInTheDocument();
52 | });
53 |
54 | test("able to close instructions modal", () => {
55 | render( );
56 | userEvent.click(screen.getByTestId("instructions"));
57 | userEvent.click(screen.getByTestId("close-instructions"));
58 | expect(screen.queryByText("HOW TO PLAY")).toBeNull();
59 | });
60 | });
61 |
--------------------------------------------------------------------------------
/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { useGuess } from "./hooks/useGuess";
2 | import WordRow from "./components/WordRow";
3 | import { useStore, GUESS_LENGTH } from "./store";
4 | import { useEffect, useState } from "react";
5 | import { usePrevious } from "./hooks/usePrevious";
6 | import { isValidWord, LETTER_LENGTH } from "./word-utils";
7 | import Keyboard from "./components/Keyboard";
8 | import Header from "./components/Header";
9 |
10 | const App = () => {
11 | const state = useStore();
12 | const [guess, setGuess, addGuessLetter] = useGuess();
13 | const addGuess = useStore((s) => s.addGuess);
14 | const previousGuess = usePrevious(guess);
15 | const [showInvalidGuess, setInvalidGuess] = useState(false);
16 |
17 | useEffect(() => {
18 | let id: NodeJS.Timeout;
19 | if (showInvalidGuess) {
20 | id = setTimeout(() => setInvalidGuess(false), 2000);
21 | }
22 |
23 | return () => {
24 | clearTimeout(id);
25 | };
26 | }, [showInvalidGuess]);
27 |
28 | useEffect(() => {
29 | if (guess.length === 0 && previousGuess?.length === LETTER_LENGTH) {
30 | if (isValidWord(previousGuess)) {
31 | addGuess(previousGuess);
32 | setInvalidGuess(false);
33 | } else {
34 | setInvalidGuess(true);
35 | setGuess(previousGuess);
36 | }
37 | }
38 | }, [guess]);
39 |
40 | let rows = [...state.rows];
41 | let currentRow = 0;
42 |
43 | if (rows.length < GUESS_LENGTH) {
44 | currentRow = rows.push({ guess }) - 1;
45 | }
46 |
47 | const numOfGuessesRemaining = GUESS_LENGTH - rows.length;
48 |
49 | const isGameOver = state.gameState !== "playing";
50 |
51 | rows = rows.concat(Array(numOfGuessesRemaining).fill(""));
52 |
53 | return (
54 |
55 |
56 |
57 |
58 |
59 | {rows.map(({ guess, result }, index) => (
60 |
68 | ))}
69 |
70 |
71 |
{
73 | addGuessLetter(letter);
74 | }}
75 | />
76 |
77 | {isGameOver && (
78 |
82 | {state.gameState === "won" ? (
83 |
84 | You Won!
85 |
86 | ) : (
87 |
88 | Game Over!
89 |
90 | )}
91 |
92 | {state.gameState === "lost" && (
93 |
97 | )}
98 |
99 | {
102 | state.newGame();
103 | setGuess("");
104 | }}
105 | >
106 | NEW GAME
107 |
108 |
109 | )}
110 |
111 |
112 | );
113 | };
114 |
115 | export default App;
116 |
--------------------------------------------------------------------------------
/src/components/Header.tsx:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | import { FaGithub } from "react-icons/fa";
3 | import { BsPatchQuestion } from "react-icons/bs";
4 | import Instructions from "./Instructions";
5 |
6 | const Header = () => {
7 | const [isInstructionsOpen, setIsInstructionsOpen] = useState(false);
8 |
9 | const toggleInstructions = () => setIsInstructionsOpen(!isInstructionsOpen);
10 |
11 | return (
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | nexdle
21 |
22 |
23 |
24 |
25 |
26 |
27 | );
28 | };
29 |
30 | export default Header;
31 |
--------------------------------------------------------------------------------
/src/components/Instructions.tsx:
--------------------------------------------------------------------------------
1 | import { AiOutlineCloseCircle } from "react-icons/ai";
2 |
3 | interface InstructionsProps {
4 | isOpen: boolean;
5 | onClose: () => void;
6 | }
7 |
8 | const Instructions = ({ isOpen, onClose }: InstructionsProps) => {
9 | return isOpen ? (
10 |
14 |
15 |
HOW TO PLAY
16 |
21 |
22 |
23 | The goal of the game is to guess the word within six {" "}
24 | tries. Each guess should be a valid five-letter word.
25 | Hit the enter button to submit your guess. After each guess the color
26 | of the tiles will change to indicate how close your guess was to the
27 | answer.
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | W
36 |
37 |
={">"}
38 |
39 | The letter W is in the word and
40 | in the correct spot .
41 |
42 |
43 |
44 |
45 |
46 | W
47 |
48 |
={">"}
49 |
50 | The letter W is in the word but
51 | in the wrong spot .
52 |
53 |
54 |
55 |
56 |
57 | W
58 |
59 |
={">"}
60 |
61 | The letter W is not in the word
62 | in any spot.
63 |
64 |
65 |
66 |
67 |
68 | ) : null;
69 | };
70 |
71 | export default Instructions;
72 |
--------------------------------------------------------------------------------
/src/components/Keyboard.tsx:
--------------------------------------------------------------------------------
1 | import { useStore } from "../store";
2 | import { LetterState } from "../word-utils";
3 | import { BsFillBackspaceFill } from "react-icons/bs";
4 |
5 | interface KeyboardProps {
6 | onClick: (key: string) => void;
7 | }
8 | export default function Keyboard({ onClick: onClickProps }: KeyboardProps) {
9 | const keyboardLetterState = useStore((s) => s.keyboardLetterState);
10 |
11 | const onClick = (e: React.MouseEvent) => {
12 | const { textContent, innerHTML } = e.currentTarget;
13 |
14 | let returnProps = textContent!;
15 |
16 | if (textContent !== innerHTML) {
17 | returnProps = "Backspace";
18 | }
19 |
20 | onClickProps(returnProps);
21 | };
22 |
23 | return (
24 |
25 | {keyboardKeys.map((keyboardRow, rowIndex) => (
26 |
30 | {keyboardRow.map((key, index) => {
31 | let styles = "rounded font-bold uppercase flex-1 py-2";
32 |
33 | const letterState = keyStateStyles[keyboardLetterState[key]];
34 |
35 | if (letterState) {
36 | styles += " text-white px-1 " + letterState;
37 | } else if (key !== "") {
38 | styles += " bg-gray-600";
39 | }
40 |
41 | if (key === "") {
42 | styles += " pointer-events-none";
43 | } else {
44 | styles += " px-1";
45 | }
46 |
47 | return (
48 |
49 | {key === "delete" ? backspace : key}
50 |
51 | );
52 | })}
53 |
54 | ))}
55 |
56 | );
57 | }
58 |
59 | const keyStateStyles = {
60 | [LetterState.Miss]: "bg-gray-800",
61 | [LetterState.Present]: "bg-yellow-500",
62 | [LetterState.Match]: "bg-green-500"
63 | };
64 |
65 | const keyboardKeys = [
66 | ["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"],
67 | ["", "a", "s", "d", "f", "g", "h", "j", "k", "l", ""],
68 | ["Enter", "z", "x", "c", "v", "b", "n", "m", "Backspace"]
69 | ];
70 |
71 | const backspace = (
72 |
79 |
85 |
86 | );
87 |
--------------------------------------------------------------------------------
/src/components/WordRow.tsx:
--------------------------------------------------------------------------------
1 | import { LetterState, LETTER_LENGTH } from "../word-utils";
2 |
3 | interface WordRowProps {
4 | letters: string;
5 | result?: LetterState[];
6 | className?: string;
7 | }
8 |
9 | const WordRow = ({
10 | letters: lettersProp = "",
11 | result = [],
12 | className = ""
13 | }: WordRowProps) => {
14 | const lettersRemaining = LETTER_LENGTH - lettersProp.length;
15 | const letters = lettersProp
16 | .split("")
17 | .concat(Array(lettersRemaining).fill(""));
18 |
19 | return (
20 |
21 | {letters.map((char, index) => (
22 |
23 | ))}
24 |
25 | );
26 | };
27 |
28 | const characterStateStyles = {
29 | [LetterState.Miss]: "bg-gray-800 border-gray-800",
30 | [LetterState.Present]: "bg-yellow-500 border-yellow-500",
31 | [LetterState.Match]: "bg-green-500 border-green-500"
32 | };
33 |
34 | interface CharacterBoxProps {
35 | value: string;
36 | state?: LetterState;
37 | }
38 |
39 | const CharacterBox = ({ value, state }: CharacterBoxProps) => {
40 | const stateStyles = state == null ? "" : characterStateStyles[state];
41 |
42 | return (
43 |
46 | {value}
47 |
48 | );
49 | };
50 |
51 | export default WordRow;
52 |
--------------------------------------------------------------------------------
/src/hooks/useGuess.tsx:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from "react";
2 | import { LETTER_LENGTH } from "../word-utils";
3 |
4 | export function useGuess(): [
5 | string,
6 | React.Dispatch>,
7 | (letter: string) => void
8 | ] {
9 | const guessState = useState("");
10 | const [guess, setGuess] = guessState;
11 |
12 | const addGuessLetter = (letter: string) => {
13 | setGuess((currentGuess) => {
14 | const newGuess =
15 | letter.length === 1 && currentGuess.length !== LETTER_LENGTH
16 | ? currentGuess + letter
17 | : currentGuess;
18 |
19 | switch (letter) {
20 | case "Backspace":
21 | return newGuess.slice(0, -1);
22 |
23 | case "Enter":
24 | if (newGuess.length === LETTER_LENGTH) {
25 | return "";
26 | }
27 | }
28 |
29 | if (newGuess.length === LETTER_LENGTH) {
30 | return newGuess;
31 | }
32 |
33 | return newGuess;
34 | });
35 | };
36 |
37 | const handleKeyDown = (e: KeyboardEvent) => {
38 | let letter = e.key;
39 | addGuessLetter(letter);
40 | };
41 |
42 | useEffect(() => {
43 | document.addEventListener("keydown", handleKeyDown);
44 | return () => {
45 | document.removeEventListener("keydown", handleKeyDown);
46 | };
47 | }, []);
48 |
49 | return [guess, setGuess, addGuessLetter];
50 | }
51 |
--------------------------------------------------------------------------------
/src/hooks/usePrevious.tsx:
--------------------------------------------------------------------------------
1 | import { useRef, useEffect } from "react";
2 |
3 | export function usePrevious(value: T): T | undefined {
4 | const ref: React.MutableRefObject = useRef();
5 |
6 | useEffect(() => {
7 | ref.current = value;
8 | }, [value]);
9 |
10 | return ref.current;
11 | }
12 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | body {
6 | margin: 0;
7 | padding: 0;
8 | background-color: #191a19;
9 | }
10 |
--------------------------------------------------------------------------------
/src/main.tsx:
--------------------------------------------------------------------------------
1 | import { StrictMode } from "react";
2 | import { createRoot } from "react-dom/client";
3 | import "./index.css";
4 | import App from "./App";
5 |
6 | const container = document.getElementById("root") as HTMLElement;
7 | const root = createRoot(container);
8 |
9 | root.render(
10 |
11 |
12 |
13 | );
14 |
--------------------------------------------------------------------------------
/src/store.ts:
--------------------------------------------------------------------------------
1 | import create from "zustand";
2 | import { persist } from "zustand/middleware";
3 | import { computeGuess, getRandomWord, LetterState } from "./word-utils";
4 |
5 | export const GUESS_LENGTH = 6;
6 |
7 | interface GuessRow {
8 | guess: string;
9 | result?: LetterState[];
10 | }
11 |
12 | interface StoreState {
13 | answer: string;
14 | rows: GuessRow[];
15 | gameState: "playing" | "won" | "lost";
16 | keyboardLetterState: { [letter: string]: LetterState };
17 | addGuess: (guess: string) => void;
18 | newGame: (initialGuess?: string[]) => void;
19 | }
20 |
21 | export const useStore = create(
22 | persist(
23 | (set, get) => {
24 | const addGuess = (guess: string) => {
25 | const result = computeGuess(guess, get().answer);
26 |
27 | const didWin = result.every((l) => l === LetterState.Match);
28 |
29 | const rows = [...get().rows, { guess, result }];
30 |
31 | const keyboardLetterState = get().keyboardLetterState;
32 |
33 | result.forEach((r, index) => {
34 | const resultGuessLetter = guess[index];
35 |
36 | const currentLetterState = keyboardLetterState[resultGuessLetter];
37 |
38 | switch (currentLetterState) {
39 | case LetterState.Match:
40 | break;
41 |
42 | case LetterState.Present:
43 | if (r === LetterState.Miss) {
44 | break;
45 | }
46 |
47 | default:
48 | keyboardLetterState[resultGuessLetter] = r;
49 | break;
50 | }
51 | });
52 |
53 | set(() => ({
54 | rows,
55 | keyboardLetterState: keyboardLetterState,
56 | gameState: didWin
57 | ? "won"
58 | : rows.length === GUESS_LENGTH
59 | ? "lost"
60 | : "playing"
61 | }));
62 | };
63 |
64 | return {
65 | answer: getRandomWord(),
66 | rows: [],
67 | keyboardLetterState: {},
68 | gameState: "playing",
69 | addGuess,
70 | newGame: (initialRows = []) => {
71 | set({
72 | answer: getRandomWord(),
73 | rows: [],
74 | keyboardLetterState: {},
75 | gameState: "playing"
76 | });
77 |
78 | initialRows.forEach(addGuess);
79 | }
80 | };
81 | },
82 | {
83 | name: "nexdle" // unique name
84 | }
85 | )
86 | );
87 |
--------------------------------------------------------------------------------
/src/test/test-setup.ts:
--------------------------------------------------------------------------------
1 | import "@testing-library/jest-dom";
2 |
--------------------------------------------------------------------------------
/src/test/test-utils.tsx:
--------------------------------------------------------------------------------
1 | import { render } from "@testing-library/react";
2 |
3 | const customRender = (ui: React.ReactElement, options = {}) =>
4 | render(ui, {
5 | // wrap provider(s) here if needed
6 | wrapper: ({ children }) => children,
7 | ...options,
8 | });
9 |
10 | export * from "@testing-library/react";
11 | export { default as userEvent } from "@testing-library/user-event";
12 | // override render export
13 | export { customRender as render };
14 |
--------------------------------------------------------------------------------
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/src/word-utils.test.ts:
--------------------------------------------------------------------------------
1 | import { describe, expect, test } from "vitest";
2 | import {
3 | computeGuess,
4 | getRandomWord,
5 | LetterState,
6 | isValidWord
7 | } from "./word-utils";
8 |
9 | describe("getRandomWord", () => {
10 | test("random word", () => {
11 | expect(getRandomWord()).toBeTruthy();
12 | expect(getRandomWord().length).toEqual(5);
13 | });
14 | });
15 |
16 | describe("computeGuess", () => {
17 | test("works with match and present", () => {
18 | expect(computeGuess("great", "grass")).toEqual([
19 | LetterState.Match,
20 | LetterState.Match,
21 | LetterState.Miss,
22 | LetterState.Present,
23 | LetterState.Miss
24 | ]);
25 | });
26 |
27 | test("works with all matches", () => {
28 | expect(computeGuess("grass", "grass")).toEqual([
29 | LetterState.Match,
30 | LetterState.Match,
31 | LetterState.Match,
32 | LetterState.Match,
33 | LetterState.Match
34 | ]);
35 | });
36 |
37 | test("works with all misses", () => {
38 | expect(computeGuess("clone", "grass")).toEqual([
39 | LetterState.Miss,
40 | LetterState.Miss,
41 | LetterState.Miss,
42 | LetterState.Miss,
43 | LetterState.Miss
44 | ]);
45 | });
46 |
47 | test("only returns one match when two letters are present", () => {
48 | expect(computeGuess("guest", "grass")).toEqual([
49 | LetterState.Match,
50 | LetterState.Miss,
51 | LetterState.Miss,
52 | LetterState.Match,
53 | LetterState.Miss
54 | ]);
55 | });
56 |
57 | test("if a letter is guessed multiple times and is in the answer multiple times", () => {
58 | expect(computeGuess("reeds", "fever")).toEqual([
59 | LetterState.Present,
60 | LetterState.Match,
61 | LetterState.Present,
62 | LetterState.Miss,
63 | LetterState.Miss
64 | ]);
65 | });
66 |
67 | test("when two letters are present but the answer has only one of those letters", () => {
68 | expect(computeGuess("berry", "grass")).toEqual([
69 | LetterState.Miss,
70 | LetterState.Miss,
71 | LetterState.Present,
72 | LetterState.Miss,
73 | LetterState.Miss
74 | ]);
75 | });
76 |
77 | test("when one letter matches but the guess has more of that letter", () => {
78 | expect(computeGuess("berry", "birds")).toEqual([
79 | LetterState.Match,
80 | LetterState.Miss,
81 | LetterState.Match,
82 | LetterState.Miss,
83 | LetterState.Miss
84 | ]);
85 | });
86 |
87 | test("returns empty array when given incomplete word", () => {
88 | expect(computeGuess("g", "grass")).toEqual([]);
89 | });
90 | });
91 |
92 | describe("isValidWord", () => {
93 | test("works with a valid word in the word bank", () => {
94 | expect(isValidWord("grass")).toBe(true);
95 | });
96 |
97 | test("works with an invalid word in the word bank", () => {
98 | expect(isValidWord("hduoh")).toBe(false);
99 | });
100 | });
101 |
--------------------------------------------------------------------------------
/src/word-utils.ts:
--------------------------------------------------------------------------------
1 | import wordBank from "./word-bank.json";
2 |
3 | export const getRandomWord = () => {
4 | const randomIndex = Math.floor(Math.random() * wordBank.valid.length);
5 |
6 | return wordBank.valid[randomIndex];
7 | };
8 |
9 | export const LETTER_LENGTH = 5;
10 |
11 | export enum LetterState {
12 | Miss,
13 | Present,
14 | Match
15 | }
16 |
17 | export const computeGuess = (guess: string, answer: string): LetterState[] => {
18 | const result: LetterState[] = [];
19 |
20 | if (guess.length !== answer.length) {
21 | return result;
22 | }
23 |
24 | const guessArray = guess.split("");
25 | const answerArray = answer.split("");
26 |
27 | const match = guessArray.map((letter) => ({
28 | letter: letter,
29 | state: LetterState.Miss
30 | }));
31 |
32 | for (let i = guessArray.length - 1; i >= 0; i--) {
33 | if (answer[i] === guessArray[i]) {
34 | match[i].state = LetterState.Match;
35 | answerArray.splice(i, 1);
36 | }
37 | }
38 |
39 | guessArray.forEach((letter, i) => {
40 | if (answerArray.includes(letter) && match[i].state !== LetterState.Match) {
41 | match[i].state = LetterState.Present;
42 | answerArray.splice(answerArray.indexOf(letter), 1);
43 | }
44 | });
45 |
46 | match.forEach((letter) => {
47 | result.push(letter.state);
48 | });
49 |
50 | return result;
51 | };
52 |
53 | export const isValidWord = (guess: string): boolean => {
54 | return wordBank.valid.concat(wordBank.invalid).includes(guess);
55 | };
56 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | content: ["./index.html", "./src/**/*.{ts,tsx}"],
3 | theme: {
4 | extend: {}
5 | },
6 | plugins: []
7 | };
8 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "useDefineForClassFields": true,
5 | "lib": ["DOM", "DOM.Iterable", "ESNext"],
6 | "allowJs": false,
7 | "skipLibCheck": false,
8 | "esModuleInterop": false,
9 | "allowSyntheticDefaultImports": true,
10 | "strict": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "module": "ESNext",
13 | "moduleResolution": "Node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "noEmit": true,
17 | "jsx": "react-jsx"
18 | },
19 | "include": ["src"],
20 | "references": [{ "path": "./tsconfig.node.json" }]
21 | }
22 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "module": "esnext",
5 | "moduleResolution": "node"
6 | },
7 | "include": ["vite.config.ts"]
8 | }
9 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | import { defineConfig } from "vite";
5 | import react from "@vitejs/plugin-react";
6 |
7 | // https://vitejs.dev/config/
8 | export default defineConfig({
9 | plugins: [react()],
10 | test: {
11 | globals: true,
12 | environment: "jsdom",
13 | setupFiles: "./src/test/test-setup.ts"
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@ampproject/remapping@^2.1.0":
6 | version "2.1.2"
7 | resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz"
8 | integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==
9 | dependencies:
10 | "@jridgewell/trace-mapping" "^0.3.0"
11 |
12 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7":
13 | version "7.16.7"
14 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz"
15 | integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
16 | dependencies:
17 | "@babel/highlight" "^7.16.7"
18 |
19 | "@babel/compat-data@^7.17.7":
20 | version "7.17.7"
21 | resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz"
22 | integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==
23 |
24 | "@babel/core@^7.16.12":
25 | version "7.17.8"
26 | resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz"
27 | integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==
28 | dependencies:
29 | "@ampproject/remapping" "^2.1.0"
30 | "@babel/code-frame" "^7.16.7"
31 | "@babel/generator" "^7.17.7"
32 | "@babel/helper-compilation-targets" "^7.17.7"
33 | "@babel/helper-module-transforms" "^7.17.7"
34 | "@babel/helpers" "^7.17.8"
35 | "@babel/parser" "^7.17.8"
36 | "@babel/template" "^7.16.7"
37 | "@babel/traverse" "^7.17.3"
38 | "@babel/types" "^7.17.0"
39 | convert-source-map "^1.7.0"
40 | debug "^4.1.0"
41 | gensync "^1.0.0-beta.2"
42 | json5 "^2.1.2"
43 | semver "^6.3.0"
44 |
45 | "@babel/generator@^7.17.3", "@babel/generator@^7.17.7":
46 | version "7.17.7"
47 | resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz"
48 | integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==
49 | dependencies:
50 | "@babel/types" "^7.17.0"
51 | jsesc "^2.5.1"
52 | source-map "^0.5.0"
53 |
54 | "@babel/helper-annotate-as-pure@^7.16.7":
55 | version "7.16.7"
56 | resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz"
57 | integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
58 | dependencies:
59 | "@babel/types" "^7.16.7"
60 |
61 | "@babel/helper-compilation-targets@^7.17.7":
62 | version "7.17.7"
63 | resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz"
64 | integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==
65 | dependencies:
66 | "@babel/compat-data" "^7.17.7"
67 | "@babel/helper-validator-option" "^7.16.7"
68 | browserslist "^4.17.5"
69 | semver "^6.3.0"
70 |
71 | "@babel/helper-environment-visitor@^7.16.7":
72 | version "7.16.7"
73 | resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz"
74 | integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
75 | dependencies:
76 | "@babel/types" "^7.16.7"
77 |
78 | "@babel/helper-function-name@^7.16.7":
79 | version "7.16.7"
80 | resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz"
81 | integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==
82 | dependencies:
83 | "@babel/helper-get-function-arity" "^7.16.7"
84 | "@babel/template" "^7.16.7"
85 | "@babel/types" "^7.16.7"
86 |
87 | "@babel/helper-get-function-arity@^7.16.7":
88 | version "7.16.7"
89 | resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz"
90 | integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==
91 | dependencies:
92 | "@babel/types" "^7.16.7"
93 |
94 | "@babel/helper-hoist-variables@^7.16.7":
95 | version "7.16.7"
96 | resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz"
97 | integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
98 | dependencies:
99 | "@babel/types" "^7.16.7"
100 |
101 | "@babel/helper-module-imports@^7.16.7":
102 | version "7.16.7"
103 | resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz"
104 | integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
105 | dependencies:
106 | "@babel/types" "^7.16.7"
107 |
108 | "@babel/helper-module-transforms@^7.17.7":
109 | version "7.17.7"
110 | resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz"
111 | integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==
112 | dependencies:
113 | "@babel/helper-environment-visitor" "^7.16.7"
114 | "@babel/helper-module-imports" "^7.16.7"
115 | "@babel/helper-simple-access" "^7.17.7"
116 | "@babel/helper-split-export-declaration" "^7.16.7"
117 | "@babel/helper-validator-identifier" "^7.16.7"
118 | "@babel/template" "^7.16.7"
119 | "@babel/traverse" "^7.17.3"
120 | "@babel/types" "^7.17.0"
121 |
122 | "@babel/helper-plugin-utils@^7.16.7":
123 | version "7.16.7"
124 | resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz"
125 | integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==
126 |
127 | "@babel/helper-simple-access@^7.17.7":
128 | version "7.17.7"
129 | resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz"
130 | integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==
131 | dependencies:
132 | "@babel/types" "^7.17.0"
133 |
134 | "@babel/helper-split-export-declaration@^7.16.7":
135 | version "7.16.7"
136 | resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz"
137 | integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
138 | dependencies:
139 | "@babel/types" "^7.16.7"
140 |
141 | "@babel/helper-validator-identifier@^7.16.7":
142 | version "7.16.7"
143 | resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz"
144 | integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
145 |
146 | "@babel/helper-validator-option@^7.16.7":
147 | version "7.16.7"
148 | resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz"
149 | integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==
150 |
151 | "@babel/helpers@^7.17.8":
152 | version "7.17.8"
153 | resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz"
154 | integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==
155 | dependencies:
156 | "@babel/template" "^7.16.7"
157 | "@babel/traverse" "^7.17.3"
158 | "@babel/types" "^7.17.0"
159 |
160 | "@babel/highlight@^7.16.7":
161 | version "7.16.10"
162 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz"
163 | integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
164 | dependencies:
165 | "@babel/helper-validator-identifier" "^7.16.7"
166 | chalk "^2.0.0"
167 | js-tokens "^4.0.0"
168 |
169 | "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8":
170 | version "7.17.8"
171 | resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz"
172 | integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==
173 |
174 | "@babel/plugin-syntax-jsx@^7.16.7":
175 | version "7.16.7"
176 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz"
177 | integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
178 | dependencies:
179 | "@babel/helper-plugin-utils" "^7.16.7"
180 |
181 | "@babel/plugin-transform-react-jsx-development@^7.16.7":
182 | version "7.16.7"
183 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz"
184 | integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==
185 | dependencies:
186 | "@babel/plugin-transform-react-jsx" "^7.16.7"
187 |
188 | "@babel/plugin-transform-react-jsx-self@^7.16.7":
189 | version "7.16.7"
190 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.16.7.tgz"
191 | integrity sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==
192 | dependencies:
193 | "@babel/helper-plugin-utils" "^7.16.7"
194 |
195 | "@babel/plugin-transform-react-jsx-source@^7.16.7":
196 | version "7.16.7"
197 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz"
198 | integrity sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==
199 | dependencies:
200 | "@babel/helper-plugin-utils" "^7.16.7"
201 |
202 | "@babel/plugin-transform-react-jsx@^7.16.7":
203 | version "7.17.3"
204 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz"
205 | integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==
206 | dependencies:
207 | "@babel/helper-annotate-as-pure" "^7.16.7"
208 | "@babel/helper-module-imports" "^7.16.7"
209 | "@babel/helper-plugin-utils" "^7.16.7"
210 | "@babel/plugin-syntax-jsx" "^7.16.7"
211 | "@babel/types" "^7.17.0"
212 |
213 | "@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2":
214 | version "7.17.8"
215 | resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz"
216 | integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==
217 | dependencies:
218 | regenerator-runtime "^0.13.4"
219 |
220 | "@babel/template@^7.16.7":
221 | version "7.16.7"
222 | resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz"
223 | integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
224 | dependencies:
225 | "@babel/code-frame" "^7.16.7"
226 | "@babel/parser" "^7.16.7"
227 | "@babel/types" "^7.16.7"
228 |
229 | "@babel/traverse@^7.17.3":
230 | version "7.17.3"
231 | resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz"
232 | integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==
233 | dependencies:
234 | "@babel/code-frame" "^7.16.7"
235 | "@babel/generator" "^7.17.3"
236 | "@babel/helper-environment-visitor" "^7.16.7"
237 | "@babel/helper-function-name" "^7.16.7"
238 | "@babel/helper-hoist-variables" "^7.16.7"
239 | "@babel/helper-split-export-declaration" "^7.16.7"
240 | "@babel/parser" "^7.17.3"
241 | "@babel/types" "^7.17.0"
242 | debug "^4.1.0"
243 | globals "^11.1.0"
244 |
245 | "@babel/types@^7.16.7", "@babel/types@^7.17.0":
246 | version "7.17.0"
247 | resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz"
248 | integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==
249 | dependencies:
250 | "@babel/helper-validator-identifier" "^7.16.7"
251 | to-fast-properties "^2.0.0"
252 |
253 | "@jridgewell/resolve-uri@^3.0.3":
254 | version "3.0.5"
255 | resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz"
256 | integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==
257 |
258 | "@jridgewell/sourcemap-codec@^1.4.10":
259 | version "1.4.11"
260 | resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz"
261 | integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==
262 |
263 | "@jridgewell/trace-mapping@^0.3.0":
264 | version "0.3.4"
265 | resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz"
266 | integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==
267 | dependencies:
268 | "@jridgewell/resolve-uri" "^3.0.3"
269 | "@jridgewell/sourcemap-codec" "^1.4.10"
270 |
271 | "@nodelib/fs.scandir@2.1.5":
272 | version "2.1.5"
273 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
274 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
275 | dependencies:
276 | "@nodelib/fs.stat" "2.0.5"
277 | run-parallel "^1.1.9"
278 |
279 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
280 | version "2.0.5"
281 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
282 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
283 |
284 | "@nodelib/fs.walk@^1.2.3":
285 | version "1.2.8"
286 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
287 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
288 | dependencies:
289 | "@nodelib/fs.scandir" "2.1.5"
290 | fastq "^1.6.0"
291 |
292 | "@polka/url@^1.0.0-next.20":
293 | version "1.0.0-next.21"
294 | resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz"
295 | integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==
296 |
297 | "@rollup/pluginutils@^4.1.2":
298 | version "4.2.0"
299 | resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz"
300 | integrity sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==
301 | dependencies:
302 | estree-walker "^2.0.1"
303 | picomatch "^2.2.2"
304 |
305 | "@testing-library/dom@^8.0.0":
306 | version "8.11.3"
307 | resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz"
308 | integrity sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==
309 | dependencies:
310 | "@babel/code-frame" "^7.10.4"
311 | "@babel/runtime" "^7.12.5"
312 | "@types/aria-query" "^4.2.0"
313 | aria-query "^5.0.0"
314 | chalk "^4.1.0"
315 | dom-accessibility-api "^0.5.9"
316 | lz-string "^1.4.4"
317 | pretty-format "^27.0.2"
318 |
319 | "@testing-library/jest-dom@^5.16.2":
320 | version "5.16.2"
321 | resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz"
322 | integrity sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==
323 | dependencies:
324 | "@babel/runtime" "^7.9.2"
325 | "@types/testing-library__jest-dom" "^5.9.1"
326 | aria-query "^5.0.0"
327 | chalk "^3.0.0"
328 | css "^3.0.0"
329 | css.escape "^1.5.1"
330 | dom-accessibility-api "^0.5.6"
331 | lodash "^4.17.15"
332 | redent "^3.0.0"
333 |
334 | "@testing-library/react-hooks@^7.0.2":
335 | version "7.0.2"
336 | resolved "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz"
337 | integrity sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg==
338 | dependencies:
339 | "@babel/runtime" "^7.12.5"
340 | "@types/react" ">=16.9.0"
341 | "@types/react-dom" ">=16.9.0"
342 | "@types/react-test-renderer" ">=16.9.0"
343 | react-error-boundary "^3.1.0"
344 |
345 | "@testing-library/react@^12.1.4":
346 | version "12.1.4"
347 | resolved "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz"
348 | integrity sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==
349 | dependencies:
350 | "@babel/runtime" "^7.12.5"
351 | "@testing-library/dom" "^8.0.0"
352 | "@types/react-dom" "*"
353 |
354 | "@testing-library/user-event@^13.5.0":
355 | version "13.5.0"
356 | resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz"
357 | integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==
358 | dependencies:
359 | "@babel/runtime" "^7.12.5"
360 |
361 | "@tootallnate/once@2":
362 | version "2.0.0"
363 | resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz"
364 | integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
365 |
366 | "@types/aria-query@^4.2.0":
367 | version "4.2.2"
368 | resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz"
369 | integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==
370 |
371 | "@types/chai-subset@^1.3.3":
372 | version "1.3.3"
373 | resolved "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz"
374 | integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==
375 | dependencies:
376 | "@types/chai" "*"
377 |
378 | "@types/chai@*", "@types/chai@^4.3.0":
379 | version "4.3.0"
380 | resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz"
381 | integrity sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==
382 |
383 | "@types/jest@*":
384 | version "27.4.1"
385 | resolved "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz"
386 | integrity sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==
387 | dependencies:
388 | jest-matcher-utils "^27.0.0"
389 | pretty-format "^27.0.0"
390 |
391 | "@types/node@^17.0.21":
392 | version "17.0.21"
393 | resolved "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz"
394 | integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==
395 |
396 | "@types/parse-json@^4.0.0":
397 | version "4.0.0"
398 | resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
399 | integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
400 |
401 | "@types/prop-types@*":
402 | version "15.7.4"
403 | resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz"
404 | integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
405 |
406 | "@types/react-dom@*", "@types/react-dom@>=16.9.0", "@types/react-dom@^17.0.10":
407 | version "17.0.13"
408 | resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.13.tgz"
409 | integrity sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==
410 | dependencies:
411 | "@types/react" "*"
412 |
413 | "@types/react-test-renderer@>=16.9.0":
414 | version "17.0.1"
415 | resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz"
416 | integrity sha512-3Fi2O6Zzq/f3QR9dRnlnHso9bMl7weKCviFmfF6B4LS1Uat6Hkm15k0ZAQuDz+UBq6B3+g+NM6IT2nr5QgPzCw==
417 | dependencies:
418 | "@types/react" "*"
419 |
420 | "@types/react@*", "@types/react@>=16.9.0", "@types/react@^17.0.33":
421 | version "17.0.40"
422 | resolved "https://registry.npmjs.org/@types/react/-/react-17.0.40.tgz"
423 | integrity sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ==
424 | dependencies:
425 | "@types/prop-types" "*"
426 | "@types/scheduler" "*"
427 | csstype "^3.0.2"
428 |
429 | "@types/scheduler@*":
430 | version "0.16.2"
431 | resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz"
432 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
433 |
434 | "@types/testing-library__jest-dom@^5.9.1":
435 | version "5.14.3"
436 | resolved "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz"
437 | integrity sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==
438 | dependencies:
439 | "@types/jest" "*"
440 |
441 | "@vitejs/plugin-react@^1.0.7":
442 | version "1.2.0"
443 | resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.2.0.tgz"
444 | integrity sha512-Rywwt0IXXg6yQ0hv3cMT3mtdDcGIw31mGaa+MMMAT651LhoXLF2yFy4LrakiTs7UKs7RPBo9eNgaS8pgl2A6Qw==
445 | dependencies:
446 | "@babel/core" "^7.16.12"
447 | "@babel/plugin-transform-react-jsx" "^7.16.7"
448 | "@babel/plugin-transform-react-jsx-development" "^7.16.7"
449 | "@babel/plugin-transform-react-jsx-self" "^7.16.7"
450 | "@babel/plugin-transform-react-jsx-source" "^7.16.7"
451 | "@rollup/pluginutils" "^4.1.2"
452 | react-refresh "^0.11.0"
453 | resolve "^1.22.0"
454 |
455 | "@vitest/ui@^0.7.4":
456 | version "0.7.4"
457 | resolved "https://registry.npmjs.org/@vitest/ui/-/ui-0.7.4.tgz"
458 | integrity sha512-FfUU1um8o+Cic44fTWxbGXv6sPMSiZxTysPxbR+2/K8t9+d0DzWsSa3lUjTRgiJQ1tiQpRP2sT4kkM/UO8XdzQ==
459 | dependencies:
460 | sirv "^2.0.2"
461 |
462 | abab@^2.0.3, abab@^2.0.5:
463 | version "2.0.5"
464 | resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz"
465 | integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
466 |
467 | acorn-globals@^6.0.0:
468 | version "6.0.0"
469 | resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz"
470 | integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==
471 | dependencies:
472 | acorn "^7.1.1"
473 | acorn-walk "^7.1.1"
474 |
475 | acorn-node@^1.6.1:
476 | version "1.8.2"
477 | resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
478 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
479 | dependencies:
480 | acorn "^7.0.0"
481 | acorn-walk "^7.0.0"
482 | xtend "^4.0.2"
483 |
484 | acorn-walk@^7.0.0, acorn-walk@^7.1.1:
485 | version "7.2.0"
486 | resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
487 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
488 |
489 | acorn@^7.0.0, acorn@^7.1.1:
490 | version "7.4.1"
491 | resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
492 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
493 |
494 | acorn@^8.5.0:
495 | version "8.7.0"
496 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz"
497 | integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
498 |
499 | agent-base@6:
500 | version "6.0.2"
501 | resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz"
502 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
503 | dependencies:
504 | debug "4"
505 |
506 | ansi-regex@^5.0.1:
507 | version "5.0.1"
508 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
509 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
510 |
511 | ansi-styles@^3.2.1:
512 | version "3.2.1"
513 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
514 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
515 | dependencies:
516 | color-convert "^1.9.0"
517 |
518 | ansi-styles@^4.1.0:
519 | version "4.3.0"
520 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
521 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
522 | dependencies:
523 | color-convert "^2.0.1"
524 |
525 | ansi-styles@^5.0.0:
526 | version "5.2.0"
527 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz"
528 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
529 |
530 | anymatch@~3.1.2:
531 | version "3.1.2"
532 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
533 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
534 | dependencies:
535 | normalize-path "^3.0.0"
536 | picomatch "^2.0.4"
537 |
538 | arg@^5.0.1:
539 | version "5.0.1"
540 | resolved "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz"
541 | integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
542 |
543 | aria-query@^5.0.0:
544 | version "5.0.0"
545 | resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz"
546 | integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==
547 |
548 | assertion-error@^1.1.0:
549 | version "1.1.0"
550 | resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz"
551 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
552 |
553 | asynckit@^0.4.0:
554 | version "0.4.0"
555 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
556 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
557 |
558 | atob@^2.1.2:
559 | version "2.1.2"
560 | resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
561 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
562 |
563 | autoprefixer@^10.4.4:
564 | version "10.4.4"
565 | resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz"
566 | integrity sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==
567 | dependencies:
568 | browserslist "^4.20.2"
569 | caniuse-lite "^1.0.30001317"
570 | fraction.js "^4.2.0"
571 | normalize-range "^0.1.2"
572 | picocolors "^1.0.0"
573 | postcss-value-parser "^4.2.0"
574 |
575 | binary-extensions@^2.0.0:
576 | version "2.2.0"
577 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
578 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
579 |
580 | braces@^3.0.1, braces@~3.0.2:
581 | version "3.0.2"
582 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
583 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
584 | dependencies:
585 | fill-range "^7.0.1"
586 |
587 | browser-process-hrtime@^1.0.0:
588 | version "1.0.0"
589 | resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz"
590 | integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
591 |
592 | browserslist@^4.17.5, browserslist@^4.20.2:
593 | version "4.20.2"
594 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz"
595 | integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==
596 | dependencies:
597 | caniuse-lite "^1.0.30001317"
598 | electron-to-chromium "^1.4.84"
599 | escalade "^3.1.1"
600 | node-releases "^2.0.2"
601 | picocolors "^1.0.0"
602 |
603 | callsites@^3.0.0:
604 | version "3.1.0"
605 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
606 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
607 |
608 | camelcase-css@^2.0.1:
609 | version "2.0.1"
610 | resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
611 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
612 |
613 | caniuse-lite@^1.0.30001317:
614 | version "1.0.30001319"
615 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz"
616 | integrity sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==
617 |
618 | chai@^4.3.6:
619 | version "4.3.6"
620 | resolved "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz"
621 | integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==
622 | dependencies:
623 | assertion-error "^1.1.0"
624 | check-error "^1.0.2"
625 | deep-eql "^3.0.1"
626 | get-func-name "^2.0.0"
627 | loupe "^2.3.1"
628 | pathval "^1.1.1"
629 | type-detect "^4.0.5"
630 |
631 | chalk@^2.0.0:
632 | version "2.4.2"
633 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
634 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
635 | dependencies:
636 | ansi-styles "^3.2.1"
637 | escape-string-regexp "^1.0.5"
638 | supports-color "^5.3.0"
639 |
640 | chalk@^3.0.0:
641 | version "3.0.0"
642 | resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz"
643 | integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
644 | dependencies:
645 | ansi-styles "^4.1.0"
646 | supports-color "^7.1.0"
647 |
648 | chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
649 | version "4.1.2"
650 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
651 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
652 | dependencies:
653 | ansi-styles "^4.1.0"
654 | supports-color "^7.1.0"
655 |
656 | check-error@^1.0.2:
657 | version "1.0.2"
658 | resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz"
659 | integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
660 |
661 | chokidar@^3.5.3:
662 | version "3.5.3"
663 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
664 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
665 | dependencies:
666 | anymatch "~3.1.2"
667 | braces "~3.0.2"
668 | glob-parent "~5.1.2"
669 | is-binary-path "~2.1.0"
670 | is-glob "~4.0.1"
671 | normalize-path "~3.0.0"
672 | readdirp "~3.6.0"
673 | optionalDependencies:
674 | fsevents "~2.3.2"
675 |
676 | color-convert@^1.9.0:
677 | version "1.9.3"
678 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
679 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
680 | dependencies:
681 | color-name "1.1.3"
682 |
683 | color-convert@^2.0.1:
684 | version "2.0.1"
685 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
686 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
687 | dependencies:
688 | color-name "~1.1.4"
689 |
690 | color-name@1.1.3:
691 | version "1.1.3"
692 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
693 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
694 |
695 | color-name@^1.1.4, color-name@~1.1.4:
696 | version "1.1.4"
697 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
698 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
699 |
700 | combined-stream@^1.0.8:
701 | version "1.0.8"
702 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
703 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
704 | dependencies:
705 | delayed-stream "~1.0.0"
706 |
707 | convert-source-map@^1.7.0:
708 | version "1.8.0"
709 | resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz"
710 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
711 | dependencies:
712 | safe-buffer "~5.1.1"
713 |
714 | cosmiconfig@^7.0.1:
715 | version "7.0.1"
716 | resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz"
717 | integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==
718 | dependencies:
719 | "@types/parse-json" "^4.0.0"
720 | import-fresh "^3.2.1"
721 | parse-json "^5.0.0"
722 | path-type "^4.0.0"
723 | yaml "^1.10.0"
724 |
725 | css.escape@^1.5.1:
726 | version "1.5.1"
727 | resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz"
728 | integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=
729 |
730 | css@^3.0.0:
731 | version "3.0.0"
732 | resolved "https://registry.npmjs.org/css/-/css-3.0.0.tgz"
733 | integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==
734 | dependencies:
735 | inherits "^2.0.4"
736 | source-map "^0.6.1"
737 | source-map-resolve "^0.6.0"
738 |
739 | cssesc@^3.0.0:
740 | version "3.0.0"
741 | resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
742 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
743 |
744 | cssom@^0.5.0:
745 | version "0.5.0"
746 | resolved "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz"
747 | integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==
748 |
749 | cssom@~0.3.6:
750 | version "0.3.8"
751 | resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz"
752 | integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
753 |
754 | cssstyle@^2.3.0:
755 | version "2.3.0"
756 | resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz"
757 | integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
758 | dependencies:
759 | cssom "~0.3.6"
760 |
761 | csstype@^3.0.2:
762 | version "3.0.11"
763 | resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz"
764 | integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==
765 |
766 | data-urls@^3.0.1:
767 | version "3.0.1"
768 | resolved "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz"
769 | integrity sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==
770 | dependencies:
771 | abab "^2.0.3"
772 | whatwg-mimetype "^3.0.0"
773 | whatwg-url "^10.0.0"
774 |
775 | debug@4, debug@^4.1.0:
776 | version "4.3.4"
777 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
778 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
779 | dependencies:
780 | ms "2.1.2"
781 |
782 | decimal.js@^10.3.1:
783 | version "10.3.1"
784 | resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz"
785 | integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
786 |
787 | decode-uri-component@^0.2.0:
788 | version "0.2.0"
789 | resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"
790 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
791 |
792 | deep-eql@^3.0.1:
793 | version "3.0.1"
794 | resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz"
795 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
796 | dependencies:
797 | type-detect "^4.0.0"
798 |
799 | deep-is@~0.1.3:
800 | version "0.1.4"
801 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
802 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
803 |
804 | defined@^1.0.0:
805 | version "1.0.0"
806 | resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
807 | integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
808 |
809 | delayed-stream@~1.0.0:
810 | version "1.0.0"
811 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
812 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
813 |
814 | detective@^5.2.0:
815 | version "5.2.0"
816 | resolved "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz"
817 | integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
818 | dependencies:
819 | acorn-node "^1.6.1"
820 | defined "^1.0.0"
821 | minimist "^1.1.1"
822 |
823 | didyoumean@^1.2.2:
824 | version "1.2.2"
825 | resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
826 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
827 |
828 | diff-sequences@^27.5.1:
829 | version "27.5.1"
830 | resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz"
831 | integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==
832 |
833 | dlv@^1.1.3:
834 | version "1.1.3"
835 | resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
836 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
837 |
838 | dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9:
839 | version "0.5.13"
840 | resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz"
841 | integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==
842 |
843 | domexception@^4.0.0:
844 | version "4.0.0"
845 | resolved "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz"
846 | integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==
847 | dependencies:
848 | webidl-conversions "^7.0.0"
849 |
850 | electron-to-chromium@^1.4.84:
851 | version "1.4.88"
852 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.88.tgz"
853 | integrity sha512-oA7mzccefkvTNi9u7DXmT0LqvhnOiN2BhSrKerta7HeUC1cLoIwtbf2wL+Ah2ozh5KQd3/1njrGrwDBXx6d14Q==
854 |
855 | error-ex@^1.3.1:
856 | version "1.3.2"
857 | resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
858 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
859 | dependencies:
860 | is-arrayish "^0.2.1"
861 |
862 | esbuild-android-64@0.14.27:
863 | version "0.14.27"
864 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz#b868bbd9955a92309c69df628d8dd1945478b45c"
865 | integrity sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==
866 |
867 | esbuild-android-arm64@0.14.27:
868 | version "0.14.27"
869 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz#e7d6430555e8e9c505fd87266bbc709f25f1825c"
870 | integrity sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==
871 |
872 | esbuild-darwin-64@0.14.27:
873 | version "0.14.27"
874 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz#4dc7484127564e89b4445c0a560a3cb50b3d68e1"
875 | integrity sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==
876 |
877 | esbuild-darwin-arm64@0.14.27:
878 | version "0.14.27"
879 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz#469e59c665f84a8ed323166624c5e7b9b2d22ac1"
880 | integrity sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==
881 |
882 | esbuild-freebsd-64@0.14.27:
883 | version "0.14.27"
884 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz#895df03bf5f87094a56c9a5815bf92e591903d70"
885 | integrity sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==
886 |
887 | esbuild-freebsd-arm64@0.14.27:
888 | version "0.14.27"
889 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz#0b72a41a6b8655e9a8c5608f2ec1afdcf6958441"
890 | integrity sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==
891 |
892 | esbuild-linux-32@0.14.27:
893 | version "0.14.27"
894 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz#43b8ba3803b0bbe7f051869c6a8bf6de1e95de28"
895 | integrity sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==
896 |
897 | esbuild-linux-64@0.14.27:
898 | version "0.14.27"
899 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz#dc8072097327ecfadba1735562824ce8c05dd0bd"
900 | integrity sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==
901 |
902 | esbuild-linux-arm64@0.14.27:
903 | version "0.14.27"
904 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz#c52b58cbe948426b1559910f521b0a3f396f10b8"
905 | integrity sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==
906 |
907 | esbuild-linux-arm@0.14.27:
908 | version "0.14.27"
909 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz#df869dbd67d4ee3a04b3c7273b6bd2b233e78a18"
910 | integrity sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==
911 |
912 | esbuild-linux-mips64le@0.14.27:
913 | version "0.14.27"
914 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz#a2b646d9df368b01aa970a7b8968be6dd6b01d19"
915 | integrity sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==
916 |
917 | esbuild-linux-ppc64le@0.14.27:
918 | version "0.14.27"
919 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz#9a21af766a0292578a3009c7408b8509cac7cefd"
920 | integrity sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==
921 |
922 | esbuild-linux-riscv64@0.14.27:
923 | version "0.14.27"
924 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz#344a27f91568056a5903ad5841b447e00e78d740"
925 | integrity sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==
926 |
927 | esbuild-linux-s390x@0.14.27:
928 | version "0.14.27"
929 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz#73a7309bd648a07ef58f069658f989a5096130db"
930 | integrity sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==
931 |
932 | esbuild-netbsd-64@0.14.27:
933 | version "0.14.27"
934 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz#482a587cdbd18a6c264a05136596927deb46c30a"
935 | integrity sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==
936 |
937 | esbuild-openbsd-64@0.14.27:
938 | version "0.14.27"
939 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz#e99f8cdc63f1628747b63edd124d53cf7796468d"
940 | integrity sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==
941 |
942 | esbuild-sunos-64@0.14.27:
943 | version "0.14.27"
944 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz#8611d825bcb8239c78d57452e83253a71942f45c"
945 | integrity sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==
946 |
947 | esbuild-windows-32@0.14.27:
948 | version "0.14.27"
949 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz#c06374206d4d92dd31d4fda299b09f51a35e82f6"
950 | integrity sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==
951 |
952 | esbuild-windows-64@0.14.27:
953 | version "0.14.27"
954 | resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz"
955 | integrity sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==
956 |
957 | esbuild-windows-arm64@0.14.27:
958 | version "0.14.27"
959 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz#ad7e187193dcd18768b16065a950f4441d7173f4"
960 | integrity sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==
961 |
962 | esbuild@^0.14.14:
963 | version "0.14.27"
964 | resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz"
965 | integrity sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==
966 | optionalDependencies:
967 | esbuild-android-64 "0.14.27"
968 | esbuild-android-arm64 "0.14.27"
969 | esbuild-darwin-64 "0.14.27"
970 | esbuild-darwin-arm64 "0.14.27"
971 | esbuild-freebsd-64 "0.14.27"
972 | esbuild-freebsd-arm64 "0.14.27"
973 | esbuild-linux-32 "0.14.27"
974 | esbuild-linux-64 "0.14.27"
975 | esbuild-linux-arm "0.14.27"
976 | esbuild-linux-arm64 "0.14.27"
977 | esbuild-linux-mips64le "0.14.27"
978 | esbuild-linux-ppc64le "0.14.27"
979 | esbuild-linux-riscv64 "0.14.27"
980 | esbuild-linux-s390x "0.14.27"
981 | esbuild-netbsd-64 "0.14.27"
982 | esbuild-openbsd-64 "0.14.27"
983 | esbuild-sunos-64 "0.14.27"
984 | esbuild-windows-32 "0.14.27"
985 | esbuild-windows-64 "0.14.27"
986 | esbuild-windows-arm64 "0.14.27"
987 |
988 | escalade@^3.1.1:
989 | version "3.1.1"
990 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
991 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
992 |
993 | escape-string-regexp@^1.0.5:
994 | version "1.0.5"
995 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
996 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
997 |
998 | escodegen@^2.0.0:
999 | version "2.0.0"
1000 | resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz"
1001 | integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
1002 | dependencies:
1003 | esprima "^4.0.1"
1004 | estraverse "^5.2.0"
1005 | esutils "^2.0.2"
1006 | optionator "^0.8.1"
1007 | optionalDependencies:
1008 | source-map "~0.6.1"
1009 |
1010 | esprima@^4.0.1:
1011 | version "4.0.1"
1012 | resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
1013 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
1014 |
1015 | estraverse@^5.2.0:
1016 | version "5.3.0"
1017 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
1018 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
1019 |
1020 | estree-walker@^2.0.1:
1021 | version "2.0.2"
1022 | resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
1023 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
1024 |
1025 | esutils@^2.0.2:
1026 | version "2.0.3"
1027 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
1028 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1029 |
1030 | fast-glob@^3.2.11:
1031 | version "3.2.11"
1032 | resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz"
1033 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
1034 | dependencies:
1035 | "@nodelib/fs.stat" "^2.0.2"
1036 | "@nodelib/fs.walk" "^1.2.3"
1037 | glob-parent "^5.1.2"
1038 | merge2 "^1.3.0"
1039 | micromatch "^4.0.4"
1040 |
1041 | fast-levenshtein@~2.0.6:
1042 | version "2.0.6"
1043 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
1044 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
1045 |
1046 | fastq@^1.6.0:
1047 | version "1.13.0"
1048 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz"
1049 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
1050 | dependencies:
1051 | reusify "^1.0.4"
1052 |
1053 | fill-range@^7.0.1:
1054 | version "7.0.1"
1055 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
1056 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
1057 | dependencies:
1058 | to-regex-range "^5.0.1"
1059 |
1060 | form-data@^4.0.0:
1061 | version "4.0.0"
1062 | resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz"
1063 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
1064 | dependencies:
1065 | asynckit "^0.4.0"
1066 | combined-stream "^1.0.8"
1067 | mime-types "^2.1.12"
1068 |
1069 | fraction.js@^4.2.0:
1070 | version "4.2.0"
1071 | resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz"
1072 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
1073 |
1074 | fsevents@~2.3.2:
1075 | version "2.3.2"
1076 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
1077 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
1078 |
1079 | function-bind@^1.1.1:
1080 | version "1.1.1"
1081 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
1082 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1083 |
1084 | gensync@^1.0.0-beta.2:
1085 | version "1.0.0-beta.2"
1086 | resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
1087 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1088 |
1089 | get-func-name@^2.0.0:
1090 | version "2.0.0"
1091 | resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz"
1092 | integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
1093 |
1094 | glob-parent@^5.1.2, glob-parent@~5.1.2:
1095 | version "5.1.2"
1096 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
1097 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
1098 | dependencies:
1099 | is-glob "^4.0.1"
1100 |
1101 | glob-parent@^6.0.2:
1102 | version "6.0.2"
1103 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
1104 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
1105 | dependencies:
1106 | is-glob "^4.0.3"
1107 |
1108 | globals@^11.1.0:
1109 | version "11.12.0"
1110 | resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
1111 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1112 |
1113 | has-flag@^3.0.0:
1114 | version "3.0.0"
1115 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
1116 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
1117 |
1118 | has-flag@^4.0.0:
1119 | version "4.0.0"
1120 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
1121 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1122 |
1123 | has@^1.0.3:
1124 | version "1.0.3"
1125 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
1126 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1127 | dependencies:
1128 | function-bind "^1.1.1"
1129 |
1130 | html-encoding-sniffer@^3.0.0:
1131 | version "3.0.0"
1132 | resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz"
1133 | integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
1134 | dependencies:
1135 | whatwg-encoding "^2.0.0"
1136 |
1137 | http-proxy-agent@^5.0.0:
1138 | version "5.0.0"
1139 | resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz"
1140 | integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
1141 | dependencies:
1142 | "@tootallnate/once" "2"
1143 | agent-base "6"
1144 | debug "4"
1145 |
1146 | https-proxy-agent@^5.0.0:
1147 | version "5.0.0"
1148 | resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz"
1149 | integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
1150 | dependencies:
1151 | agent-base "6"
1152 | debug "4"
1153 |
1154 | iconv-lite@0.6.3:
1155 | version "0.6.3"
1156 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
1157 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
1158 | dependencies:
1159 | safer-buffer ">= 2.1.2 < 3.0.0"
1160 |
1161 | import-fresh@^3.2.1:
1162 | version "3.3.0"
1163 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
1164 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1165 | dependencies:
1166 | parent-module "^1.0.0"
1167 | resolve-from "^4.0.0"
1168 |
1169 | indent-string@^4.0.0:
1170 | version "4.0.0"
1171 | resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
1172 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
1173 |
1174 | inherits@^2.0.4:
1175 | version "2.0.4"
1176 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
1177 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1178 |
1179 | is-arrayish@^0.2.1:
1180 | version "0.2.1"
1181 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
1182 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
1183 |
1184 | is-binary-path@~2.1.0:
1185 | version "2.1.0"
1186 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
1187 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
1188 | dependencies:
1189 | binary-extensions "^2.0.0"
1190 |
1191 | is-core-module@^2.8.1:
1192 | version "2.8.1"
1193 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz"
1194 | integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
1195 | dependencies:
1196 | has "^1.0.3"
1197 |
1198 | is-extglob@^2.1.1:
1199 | version "2.1.1"
1200 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
1201 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
1202 |
1203 | is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
1204 | version "4.0.3"
1205 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
1206 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1207 | dependencies:
1208 | is-extglob "^2.1.1"
1209 |
1210 | is-number@^7.0.0:
1211 | version "7.0.0"
1212 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
1213 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1214 |
1215 | is-potential-custom-element-name@^1.0.1:
1216 | version "1.0.1"
1217 | resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz"
1218 | integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
1219 |
1220 | jest-diff@^27.5.1:
1221 | version "27.5.1"
1222 | resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz"
1223 | integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==
1224 | dependencies:
1225 | chalk "^4.0.0"
1226 | diff-sequences "^27.5.1"
1227 | jest-get-type "^27.5.1"
1228 | pretty-format "^27.5.1"
1229 |
1230 | jest-get-type@^27.5.1:
1231 | version "27.5.1"
1232 | resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz"
1233 | integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==
1234 |
1235 | jest-matcher-utils@^27.0.0:
1236 | version "27.5.1"
1237 | resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz"
1238 | integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==
1239 | dependencies:
1240 | chalk "^4.0.0"
1241 | jest-diff "^27.5.1"
1242 | jest-get-type "^27.5.1"
1243 | pretty-format "^27.5.1"
1244 |
1245 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
1246 | version "4.0.0"
1247 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
1248 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1249 |
1250 | jsdom@^19.0.0:
1251 | version "19.0.0"
1252 | resolved "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz"
1253 | integrity sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==
1254 | dependencies:
1255 | abab "^2.0.5"
1256 | acorn "^8.5.0"
1257 | acorn-globals "^6.0.0"
1258 | cssom "^0.5.0"
1259 | cssstyle "^2.3.0"
1260 | data-urls "^3.0.1"
1261 | decimal.js "^10.3.1"
1262 | domexception "^4.0.0"
1263 | escodegen "^2.0.0"
1264 | form-data "^4.0.0"
1265 | html-encoding-sniffer "^3.0.0"
1266 | http-proxy-agent "^5.0.0"
1267 | https-proxy-agent "^5.0.0"
1268 | is-potential-custom-element-name "^1.0.1"
1269 | nwsapi "^2.2.0"
1270 | parse5 "6.0.1"
1271 | saxes "^5.0.1"
1272 | symbol-tree "^3.2.4"
1273 | tough-cookie "^4.0.0"
1274 | w3c-hr-time "^1.0.2"
1275 | w3c-xmlserializer "^3.0.0"
1276 | webidl-conversions "^7.0.0"
1277 | whatwg-encoding "^2.0.0"
1278 | whatwg-mimetype "^3.0.0"
1279 | whatwg-url "^10.0.0"
1280 | ws "^8.2.3"
1281 | xml-name-validator "^4.0.0"
1282 |
1283 | jsesc@^2.5.1:
1284 | version "2.5.2"
1285 | resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
1286 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1287 |
1288 | json-parse-even-better-errors@^2.3.0:
1289 | version "2.3.1"
1290 | resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
1291 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
1292 |
1293 | json5@^2.1.2:
1294 | version "2.2.0"
1295 | resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz"
1296 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
1297 | dependencies:
1298 | minimist "^1.2.5"
1299 |
1300 | levn@~0.3.0:
1301 | version "0.3.0"
1302 | resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"
1303 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
1304 | dependencies:
1305 | prelude-ls "~1.1.2"
1306 | type-check "~0.3.2"
1307 |
1308 | lilconfig@^2.0.4:
1309 | version "2.0.4"
1310 | resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz"
1311 | integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
1312 |
1313 | lines-and-columns@^1.1.6:
1314 | version "1.2.4"
1315 | resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
1316 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
1317 |
1318 | local-pkg@^0.4.1:
1319 | version "0.4.1"
1320 | resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.1.tgz"
1321 | integrity sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==
1322 |
1323 | lodash@^4.17.15:
1324 | version "4.17.21"
1325 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
1326 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1327 |
1328 | loose-envify@^1.1.0:
1329 | version "1.4.0"
1330 | resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
1331 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1332 | dependencies:
1333 | js-tokens "^3.0.0 || ^4.0.0"
1334 |
1335 | loupe@^2.3.1:
1336 | version "2.3.4"
1337 | resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz"
1338 | integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==
1339 | dependencies:
1340 | get-func-name "^2.0.0"
1341 |
1342 | lz-string@^1.4.4:
1343 | version "1.4.4"
1344 | resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz"
1345 | integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=
1346 |
1347 | merge2@^1.3.0:
1348 | version "1.4.1"
1349 | resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
1350 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1351 |
1352 | micromatch@^4.0.4:
1353 | version "4.0.4"
1354 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"
1355 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
1356 | dependencies:
1357 | braces "^3.0.1"
1358 | picomatch "^2.2.3"
1359 |
1360 | mime-db@1.52.0:
1361 | version "1.52.0"
1362 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
1363 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
1364 |
1365 | mime-types@^2.1.12:
1366 | version "2.1.35"
1367 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
1368 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
1369 | dependencies:
1370 | mime-db "1.52.0"
1371 |
1372 | min-indent@^1.0.0:
1373 | version "1.0.1"
1374 | resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz"
1375 | integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
1376 |
1377 | minimist@^1.1.1, minimist@^1.2.5:
1378 | version "1.2.5"
1379 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
1380 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1381 |
1382 | mrmime@^1.0.0:
1383 | version "1.0.0"
1384 | resolved "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz"
1385 | integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==
1386 |
1387 | ms@2.1.2:
1388 | version "2.1.2"
1389 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
1390 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1391 |
1392 | nanoid@^3.3.1:
1393 | version "3.3.1"
1394 | resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz"
1395 | integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==
1396 |
1397 | node-releases@^2.0.2:
1398 | version "2.0.2"
1399 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz"
1400 | integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==
1401 |
1402 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1403 | version "3.0.0"
1404 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
1405 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1406 |
1407 | normalize-range@^0.1.2:
1408 | version "0.1.2"
1409 | resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
1410 | integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
1411 |
1412 | nwsapi@^2.2.0:
1413 | version "2.2.0"
1414 | resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz"
1415 | integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
1416 |
1417 | object-hash@^2.2.0:
1418 | version "2.2.0"
1419 | resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
1420 | integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
1421 |
1422 | optionator@^0.8.1:
1423 | version "0.8.3"
1424 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz"
1425 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
1426 | dependencies:
1427 | deep-is "~0.1.3"
1428 | fast-levenshtein "~2.0.6"
1429 | levn "~0.3.0"
1430 | prelude-ls "~1.1.2"
1431 | type-check "~0.3.2"
1432 | word-wrap "~1.2.3"
1433 |
1434 | parent-module@^1.0.0:
1435 | version "1.0.1"
1436 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
1437 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1438 | dependencies:
1439 | callsites "^3.0.0"
1440 |
1441 | parse-json@^5.0.0:
1442 | version "5.2.0"
1443 | resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
1444 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
1445 | dependencies:
1446 | "@babel/code-frame" "^7.0.0"
1447 | error-ex "^1.3.1"
1448 | json-parse-even-better-errors "^2.3.0"
1449 | lines-and-columns "^1.1.6"
1450 |
1451 | parse5@6.0.1:
1452 | version "6.0.1"
1453 | resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz"
1454 | integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
1455 |
1456 | path-parse@^1.0.7:
1457 | version "1.0.7"
1458 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
1459 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1460 |
1461 | path-type@^4.0.0:
1462 | version "4.0.0"
1463 | resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
1464 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
1465 |
1466 | pathval@^1.1.1:
1467 | version "1.1.1"
1468 | resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz"
1469 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
1470 |
1471 | picocolors@^1.0.0:
1472 | version "1.0.0"
1473 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
1474 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1475 |
1476 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3:
1477 | version "2.3.1"
1478 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
1479 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1480 |
1481 | postcss-js@^4.0.0:
1482 | version "4.0.0"
1483 | resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz"
1484 | integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
1485 | dependencies:
1486 | camelcase-css "^2.0.1"
1487 |
1488 | postcss-load-config@^3.1.0:
1489 | version "3.1.3"
1490 | resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz"
1491 | integrity sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==
1492 | dependencies:
1493 | lilconfig "^2.0.4"
1494 | yaml "^1.10.2"
1495 |
1496 | postcss-nested@5.0.6:
1497 | version "5.0.6"
1498 | resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz"
1499 | integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==
1500 | dependencies:
1501 | postcss-selector-parser "^6.0.6"
1502 |
1503 | postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9:
1504 | version "6.0.9"
1505 | resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz"
1506 | integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==
1507 | dependencies:
1508 | cssesc "^3.0.0"
1509 | util-deprecate "^1.0.2"
1510 |
1511 | postcss-value-parser@^4.2.0:
1512 | version "4.2.0"
1513 | resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
1514 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1515 |
1516 | postcss@^8.4.12, postcss@^8.4.6:
1517 | version "8.4.12"
1518 | resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz"
1519 | integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==
1520 | dependencies:
1521 | nanoid "^3.3.1"
1522 | picocolors "^1.0.0"
1523 | source-map-js "^1.0.2"
1524 |
1525 | prelude-ls@~1.1.2:
1526 | version "1.1.2"
1527 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
1528 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
1529 |
1530 | pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1:
1531 | version "27.5.1"
1532 | resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz"
1533 | integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
1534 | dependencies:
1535 | ansi-regex "^5.0.1"
1536 | ansi-styles "^5.0.0"
1537 | react-is "^17.0.1"
1538 |
1539 | psl@^1.1.33:
1540 | version "1.8.0"
1541 | resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"
1542 | integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
1543 |
1544 | punycode@^2.1.1:
1545 | version "2.1.1"
1546 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
1547 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1548 |
1549 | queue-microtask@^1.2.2:
1550 | version "1.2.3"
1551 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
1552 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1553 |
1554 | quick-lru@^5.1.1:
1555 | version "5.1.1"
1556 | resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"
1557 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
1558 |
1559 | react-dom@18:
1560 | version "18.0.0"
1561 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.0.0.tgz#26b88534f8f1dbb80853e1eabe752f24100d8023"
1562 | integrity sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==
1563 | dependencies:
1564 | loose-envify "^1.1.0"
1565 | scheduler "^0.21.0"
1566 |
1567 | react-error-boundary@^3.1.0:
1568 | version "3.1.4"
1569 | resolved "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz"
1570 | integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==
1571 | dependencies:
1572 | "@babel/runtime" "^7.12.5"
1573 |
1574 | react-icons@^4.3.1:
1575 | version "4.3.1"
1576 | resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.3.1.tgz#2fa92aebbbc71f43d2db2ed1aed07361124e91ca"
1577 | integrity sha512-cB10MXLTs3gVuXimblAdI71jrJx8njrJZmNMEMC+sQu5B/BIOmlsAjskdqpn81y8UBVEGuHODd7/ci5DvoSzTQ==
1578 |
1579 | react-is@^17.0.1:
1580 | version "17.0.2"
1581 | resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
1582 | integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
1583 |
1584 | react-refresh@^0.11.0:
1585 | version "0.11.0"
1586 | resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz"
1587 | integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==
1588 |
1589 | react@18:
1590 | version "18.0.0"
1591 | resolved "https://registry.yarnpkg.com/react/-/react-18.0.0.tgz#b468736d1f4a5891f38585ba8e8fb29f91c3cb96"
1592 | integrity sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==
1593 | dependencies:
1594 | loose-envify "^1.1.0"
1595 |
1596 | readdirp@~3.6.0:
1597 | version "3.6.0"
1598 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
1599 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
1600 | dependencies:
1601 | picomatch "^2.2.1"
1602 |
1603 | redent@^3.0.0:
1604 | version "3.0.0"
1605 | resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz"
1606 | integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
1607 | dependencies:
1608 | indent-string "^4.0.0"
1609 | strip-indent "^3.0.0"
1610 |
1611 | regenerator-runtime@^0.13.4:
1612 | version "0.13.9"
1613 | resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz"
1614 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
1615 |
1616 | resolve-from@^4.0.0:
1617 | version "4.0.0"
1618 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
1619 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1620 |
1621 | resolve@^1.22.0:
1622 | version "1.22.0"
1623 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz"
1624 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
1625 | dependencies:
1626 | is-core-module "^2.8.1"
1627 | path-parse "^1.0.7"
1628 | supports-preserve-symlinks-flag "^1.0.0"
1629 |
1630 | reusify@^1.0.4:
1631 | version "1.0.4"
1632 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
1633 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1634 |
1635 | rollup@^2.59.0:
1636 | version "2.70.1"
1637 | resolved "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz"
1638 | integrity sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==
1639 | optionalDependencies:
1640 | fsevents "~2.3.2"
1641 |
1642 | run-parallel@^1.1.9:
1643 | version "1.2.0"
1644 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
1645 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1646 | dependencies:
1647 | queue-microtask "^1.2.2"
1648 |
1649 | safe-buffer@~5.1.1:
1650 | version "5.1.2"
1651 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
1652 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1653 |
1654 | "safer-buffer@>= 2.1.2 < 3.0.0":
1655 | version "2.1.2"
1656 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
1657 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1658 |
1659 | saxes@^5.0.1:
1660 | version "5.0.1"
1661 | resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz"
1662 | integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
1663 | dependencies:
1664 | xmlchars "^2.2.0"
1665 |
1666 | scheduler@^0.21.0:
1667 | version "0.21.0"
1668 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820"
1669 | integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==
1670 | dependencies:
1671 | loose-envify "^1.1.0"
1672 |
1673 | semver@^6.3.0:
1674 | version "6.3.0"
1675 | resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
1676 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1677 |
1678 | sirv@^2.0.2:
1679 | version "2.0.2"
1680 | resolved "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz"
1681 | integrity sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==
1682 | dependencies:
1683 | "@polka/url" "^1.0.0-next.20"
1684 | mrmime "^1.0.0"
1685 | totalist "^3.0.0"
1686 |
1687 | source-map-js@^1.0.2:
1688 | version "1.0.2"
1689 | resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
1690 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
1691 |
1692 | source-map-resolve@^0.6.0:
1693 | version "0.6.0"
1694 | resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz"
1695 | integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==
1696 | dependencies:
1697 | atob "^2.1.2"
1698 | decode-uri-component "^0.2.0"
1699 |
1700 | source-map@^0.5.0:
1701 | version "0.5.7"
1702 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
1703 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1704 |
1705 | source-map@^0.6.1, source-map@~0.6.1:
1706 | version "0.6.1"
1707 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
1708 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1709 |
1710 | strip-indent@^3.0.0:
1711 | version "3.0.0"
1712 | resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz"
1713 | integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
1714 | dependencies:
1715 | min-indent "^1.0.0"
1716 |
1717 | supports-color@^5.3.0:
1718 | version "5.5.0"
1719 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
1720 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1721 | dependencies:
1722 | has-flag "^3.0.0"
1723 |
1724 | supports-color@^7.1.0:
1725 | version "7.2.0"
1726 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
1727 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1728 | dependencies:
1729 | has-flag "^4.0.0"
1730 |
1731 | supports-preserve-symlinks-flag@^1.0.0:
1732 | version "1.0.0"
1733 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
1734 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1735 |
1736 | symbol-tree@^3.2.4:
1737 | version "3.2.4"
1738 | resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"
1739 | integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
1740 |
1741 | tailwindcss@^3.0.23:
1742 | version "3.0.23"
1743 | resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz"
1744 | integrity sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==
1745 | dependencies:
1746 | arg "^5.0.1"
1747 | chalk "^4.1.2"
1748 | chokidar "^3.5.3"
1749 | color-name "^1.1.4"
1750 | cosmiconfig "^7.0.1"
1751 | detective "^5.2.0"
1752 | didyoumean "^1.2.2"
1753 | dlv "^1.1.3"
1754 | fast-glob "^3.2.11"
1755 | glob-parent "^6.0.2"
1756 | is-glob "^4.0.3"
1757 | normalize-path "^3.0.0"
1758 | object-hash "^2.2.0"
1759 | postcss "^8.4.6"
1760 | postcss-js "^4.0.0"
1761 | postcss-load-config "^3.1.0"
1762 | postcss-nested "5.0.6"
1763 | postcss-selector-parser "^6.0.9"
1764 | postcss-value-parser "^4.2.0"
1765 | quick-lru "^5.1.1"
1766 | resolve "^1.22.0"
1767 |
1768 | tinypool@^0.1.2:
1769 | version "0.1.2"
1770 | resolved "https://registry.npmjs.org/tinypool/-/tinypool-0.1.2.tgz"
1771 | integrity sha512-fvtYGXoui2RpeMILfkvGIgOVkzJEGediv8UJt7TxdAOY8pnvUkFg/fkvqTfXG9Acc9S17Cnn1S4osDc2164guA==
1772 |
1773 | tinyspy@^0.3.0:
1774 | version "0.3.0"
1775 | resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.0.tgz"
1776 | integrity sha512-c5uFHqtUp74R2DJE3/Efg0mH5xicmgziaQXMm/LvuuZn3RdpADH32aEGDRyCzObXT1DNfwDMqRQ/Drh1MlO12g==
1777 |
1778 | to-fast-properties@^2.0.0:
1779 | version "2.0.0"
1780 | resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
1781 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1782 |
1783 | to-regex-range@^5.0.1:
1784 | version "5.0.1"
1785 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
1786 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1787 | dependencies:
1788 | is-number "^7.0.0"
1789 |
1790 | totalist@^3.0.0:
1791 | version "3.0.0"
1792 | resolved "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz"
1793 | integrity sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==
1794 |
1795 | tough-cookie@^4.0.0:
1796 | version "4.0.0"
1797 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz"
1798 | integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==
1799 | dependencies:
1800 | psl "^1.1.33"
1801 | punycode "^2.1.1"
1802 | universalify "^0.1.2"
1803 |
1804 | tr46@^3.0.0:
1805 | version "3.0.0"
1806 | resolved "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz"
1807 | integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
1808 | dependencies:
1809 | punycode "^2.1.1"
1810 |
1811 | type-check@~0.3.2:
1812 | version "0.3.2"
1813 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
1814 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
1815 | dependencies:
1816 | prelude-ls "~1.1.2"
1817 |
1818 | type-detect@^4.0.0, type-detect@^4.0.5:
1819 | version "4.0.8"
1820 | resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz"
1821 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
1822 |
1823 | typescript@^4.5.4:
1824 | version "4.6.2"
1825 | resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz"
1826 | integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==
1827 |
1828 | universalify@^0.1.2:
1829 | version "0.1.2"
1830 | resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz"
1831 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
1832 |
1833 | util-deprecate@^1.0.2:
1834 | version "1.0.2"
1835 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
1836 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
1837 |
1838 | vite@^2.7.10, vite@^2.8.0:
1839 | version "2.8.6"
1840 | resolved "https://registry.npmjs.org/vite/-/vite-2.8.6.tgz"
1841 | integrity sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==
1842 | dependencies:
1843 | esbuild "^0.14.14"
1844 | postcss "^8.4.6"
1845 | resolve "^1.22.0"
1846 | rollup "^2.59.0"
1847 | optionalDependencies:
1848 | fsevents "~2.3.2"
1849 |
1850 | vitest@^0.7.4:
1851 | version "0.7.4"
1852 | resolved "https://registry.npmjs.org/vitest/-/vitest-0.7.4.tgz"
1853 | integrity sha512-6kyJ/YZJFVj/zEVVHFyvLvAZlbg05yAyJrk7oP+FOCFanGRYK7bBEz4qsIpNHxX+dlf5vRkbBDjpdXzGL7udeA==
1854 | dependencies:
1855 | "@types/chai" "^4.3.0"
1856 | "@types/chai-subset" "^1.3.3"
1857 | chai "^4.3.6"
1858 | local-pkg "^0.4.1"
1859 | tinypool "^0.1.2"
1860 | tinyspy "^0.3.0"
1861 | vite "^2.7.10"
1862 |
1863 | w3c-hr-time@^1.0.2:
1864 | version "1.0.2"
1865 | resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz"
1866 | integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
1867 | dependencies:
1868 | browser-process-hrtime "^1.0.0"
1869 |
1870 | w3c-xmlserializer@^3.0.0:
1871 | version "3.0.0"
1872 | resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz"
1873 | integrity sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==
1874 | dependencies:
1875 | xml-name-validator "^4.0.0"
1876 |
1877 | webidl-conversions@^7.0.0:
1878 | version "7.0.0"
1879 | resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
1880 | integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
1881 |
1882 | whatwg-encoding@^2.0.0:
1883 | version "2.0.0"
1884 | resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz"
1885 | integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
1886 | dependencies:
1887 | iconv-lite "0.6.3"
1888 |
1889 | whatwg-mimetype@^3.0.0:
1890 | version "3.0.0"
1891 | resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz"
1892 | integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
1893 |
1894 | whatwg-url@^10.0.0:
1895 | version "10.0.0"
1896 | resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz"
1897 | integrity sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==
1898 | dependencies:
1899 | tr46 "^3.0.0"
1900 | webidl-conversions "^7.0.0"
1901 |
1902 | word-wrap@~1.2.3:
1903 | version "1.2.3"
1904 | resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
1905 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
1906 |
1907 | ws@^8.2.3:
1908 | version "8.5.0"
1909 | resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz"
1910 | integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==
1911 |
1912 | xml-name-validator@^4.0.0:
1913 | version "4.0.0"
1914 | resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz"
1915 | integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
1916 |
1917 | xmlchars@^2.2.0:
1918 | version "2.2.0"
1919 | resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz"
1920 | integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
1921 |
1922 | xtend@^4.0.2:
1923 | version "4.0.2"
1924 | resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
1925 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
1926 |
1927 | yaml@^1.10.0, yaml@^1.10.2:
1928 | version "1.10.2"
1929 | resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
1930 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
1931 |
1932 | zustand@^3.7.1:
1933 | version "3.7.1"
1934 | resolved "https://registry.npmjs.org/zustand/-/zustand-3.7.1.tgz"
1935 | integrity sha512-wHBCZlKj+bg03/hP+Tzv24YhnqqP8MCeN9ECPDXoF01062SIbnfl3j9O0znkDw1lNTY0a8WN3F///a0UhhaEqg==
1936 |
--------------------------------------------------------------------------------