├── .editorconfig
├── .gitignore
├── LICENSE
├── README.md
├── components
├── animation-picker.tsx
├── lottie-player.tsx
├── sdd1306-preview.tsx
├── step1.tsx
└── step2.tsx
├── next-env.d.ts
├── package-lock.json
├── package.json
├── pages
├── _app.tsx
├── _document.tsx
└── index.tsx
├── prettier.config.js
├── public
├── favicon.ico
└── vercel.svg
├── src
├── animation-maker.ts
├── animation.ts
├── download-file.ts
├── icons8.ts
├── image-utils.ts
├── load-animation.ts
├── templates
│ └── arduino-ssd1306.ts
└── theme.ts
├── styles
├── Home.module.css
└── globals.css
└── tsconfig.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent
2 | # coding styles between different editors and IDEs
3 | # editorconfig.org
4 |
5 | root = true
6 |
7 | [*]
8 |
9 | # Change these settings to your own preference
10 | indent_style = space
11 | indent_size = 2
12 |
13 | # We recommend you to keep these unchanged
14 | end_of_line = lf
15 | charset = utf-8
16 | trim_trailing_whitespace = true
17 | insert_final_newline = true
18 |
19 | [*.md]
20 | trim_trailing_whitespace = false
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env.local
29 | .env.development.local
30 | .env.test.local
31 | .env.production.local
32 |
33 | # vercel
34 | .vercel
35 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2021 Uri Shaked
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # wokwi-animator
2 |
3 | https://animator.wokwi.com
4 |
5 | ## Getting Started
6 |
7 | If you just want to get the code running as quickly as possible,
8 | without any setup on your computer, [open the project in CodeSandbox](https://githubbox.com/wokwi/wokwi-animator).
9 |
10 | If you prefer to set up a local development environment, clone the repository:
11 |
12 | ```bash
13 | git clone https://github.com/wokwi/wokwi-animator
14 | ```
15 |
16 | Then run `npm install` to install all the dependencies.
17 |
18 | Run the development server:
19 |
20 | ```bash
21 | npm run dev
22 | ```
23 |
24 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
25 |
26 | ## License
27 |
28 | Copyright (C) 2021, Uri Shaked. Licensed under the terms of [The MIT License](LICENSE).
29 |
--------------------------------------------------------------------------------
/components/animation-picker.tsx:
--------------------------------------------------------------------------------
1 | import { makeStyles } from '@material-ui/core';
2 | import AppBar from '@material-ui/core/AppBar';
3 | import Box from '@material-ui/core/Box';
4 | import Tab from '@material-ui/core/Tab';
5 | import Tabs from '@material-ui/core/Tabs';
6 | import { useState } from 'react';
7 | import SwipeableViews from 'react-swipeable-views';
8 | import { icon8Url, iconCategories } from '../src/icons8';
9 | import { LottiePlayer } from './lottie-player';
10 | import clsx from 'clsx';
11 |
12 | const useStyles = makeStyles(() => ({
13 | iconList: {
14 | display: 'flex',
15 | flexWrap: 'wrap',
16 | maxHeight: '450px',
17 | justifyContent: 'center',
18 | },
19 |
20 | iconTile: {
21 | display: 'inline-block',
22 | cursor: 'pointer',
23 | borderRadius: '4px',
24 | width: '50px',
25 | height: '50px',
26 | padding: '2px',
27 | margin: '8px',
28 | background: 'transparent',
29 | border: 'none',
30 |
31 | '&.active': {
32 | background: 'rgb(170, 228, 255)',
33 | },
34 | },
35 | }));
36 |
37 | export interface IAnimationPickerProps {
38 | selectedIcon?: string;
39 | onAnimationSelected?: (iconName: string) => void;
40 | }
41 |
42 | interface TabPanelProps {
43 | children?: React.ReactNode;
44 | index: number;
45 | value: number;
46 | }
47 |
48 | function TabPanel(props: TabPanelProps) {
49 | const { children, value, index, ...other } = props;
50 |
51 | return (
52 |
59 | {value === index && children}
60 |
61 | );
62 | }
63 |
64 | export function AnimationPicker({ onAnimationSelected, selectedIcon }: IAnimationPickerProps) {
65 | const [activeTab, setActiveTab] = useState(0);
66 | const classes = useStyles();
67 |
68 | const handleChangeIndex = (index: number) => {
69 | setActiveTab(index);
70 | };
71 |
72 | return (
73 |
74 |
75 | {
78 | setActiveTab(newValue);
79 | }}
80 | indicatorColor="primary"
81 | textColor="primary"
82 | variant="scrollable"
83 | scrollButtons="auto"
84 | aria-label="Animation picker"
85 | >
86 | {iconCategories.map((category) => (
87 |
88 | ))}
89 |
90 |
91 |
92 | {iconCategories.map((category, index) => (
93 |
94 |
95 | {category.icons.map((icon) => (
96 |
103 | ))}
104 |
105 |
106 | ))}
107 |
108 |
109 | );
110 | }
111 |
--------------------------------------------------------------------------------
/components/lottie-player.tsx:
--------------------------------------------------------------------------------
1 | import lottie, { AnimationItem } from 'lottie-web';
2 | import { useCallback, useEffect, useRef, useState } from 'react';
3 |
4 | export interface ILottiePlayerProps {
5 | src: string;
6 | }
7 |
8 | const hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';
9 |
10 | export function LottiePlayer({ src }: ILottiePlayerProps) {
11 | const animationRef = useRef(null);
12 | const [isVisible, setVisible] = useState(hasIntersectionObserver ? false : true);
13 | const hostRef = useRef(null);
14 |
15 | useEffect(() => {
16 | animationRef.current?.destroy();
17 | const hostEl = hostRef.current;
18 | if (src && isVisible && hostEl) {
19 | animationRef.current = lottie.loadAnimation({
20 | container: hostEl,
21 | path: src,
22 | autoplay: false,
23 | });
24 | } else {
25 | animationRef.current = null;
26 | }
27 | }, [src, isVisible]);
28 |
29 | const setRefs = useCallback((node: HTMLDivElement) => {
30 | hostRef.current = node;
31 | if (node && hasIntersectionObserver && !isVisible) {
32 | const intersection = new IntersectionObserver((entry) => {
33 | if (entry.some((f) => f.intersectionRatio > 0)) {
34 | setVisible(true);
35 | intersection.disconnect();
36 | }
37 | });
38 | intersection.observe(node);
39 | }
40 | }, []);
41 |
42 | return (
43 | animationRef.current?.play()}
45 | onMouseLeave={() => animationRef.current?.stop()}
46 | ref={setRefs}
47 | />
48 | );
49 | }
50 |
--------------------------------------------------------------------------------
/components/sdd1306-preview.tsx:
--------------------------------------------------------------------------------
1 | import type { SSD1306Element } from '@wokwi/elements';
2 | import { useEffect, useRef } from 'react';
3 | import { IAnimationParams } from '../src/animation';
4 | import { asyncImage } from '../src/image-utils';
5 |
6 | export interface ISSD1306Preview {
7 | animation?: IAnimationParams;
8 | }
9 |
10 | export function SSD1306Preview({ animation }: ISSD1306Preview) {
11 | const ssd1306Ref = useRef
(null);
12 |
13 | useEffect(() => {
14 | // elements + SSR don't play nicely, so only
15 | // import the on the client side
16 | import('@wokwi/elements');
17 | }, []);
18 |
19 | const drawFrame = async (imageUrl: string) => {
20 | const image = await asyncImage(imageUrl);
21 | const canvas = document.createElement('canvas');
22 | canvas.width = 128;
23 | canvas.height = 64;
24 | const ctx = canvas.getContext('2d');
25 | const element = ssd1306Ref.current;
26 | if (element && ctx) {
27 | ctx.fillStyle = 'black';
28 | ctx.fillRect(0, 0, canvas.width, canvas.height);
29 | ctx.drawImage(image, (canvas.width - image.width) / 2, (canvas.height - image.height) / 2);
30 | element.imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
31 | }
32 | };
33 |
34 | useEffect(() => {
35 | if (!animation || !animation.frames.length) {
36 | return;
37 | }
38 | let index = 0;
39 | const interval = setInterval(() => {
40 | drawFrame(animation.frameUrls[index]);
41 | index = (index + 1) % animation.frames.length;
42 | }, animation.delay);
43 | return () => clearInterval(interval);
44 | }, [animation]);
45 |
46 | return ;
47 | }
48 |
--------------------------------------------------------------------------------
/components/step1.tsx:
--------------------------------------------------------------------------------
1 | import { Box, Button, makeStyles, Typography } from '@material-ui/core';
2 | import { useEffect, useState } from 'react';
3 | import { IAnimationParams } from '../src/animation';
4 | import { icon8Url } from '../src/icons8';
5 | import { loadAnimation } from '../src/load-animation';
6 | import { AnimationPicker } from './animation-picker';
7 | import { SSD1306Preview } from './sdd1306-preview';
8 | import ToggleButton from '@material-ui/lab/ToggleButton';
9 | import ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';
10 |
11 | const useStyles = makeStyles(() => ({
12 | container: {
13 | display: 'flex',
14 | width: 0,
15 | minWidth: '100%',
16 | },
17 | }));
18 |
19 | export interface IStep1Props {
20 | onComplete(animation: IAnimationParams): void;
21 | }
22 |
23 | export function Step1({ onComplete }: IStep1Props) {
24 | const [icon, setIcon] = useState('walk');
25 | const [size, setSize] = useState(64);
26 | const [animation, setAnimation] = useState();
27 | const classes = useStyles();
28 |
29 | useEffect(() => {
30 | if (icon) {
31 | loadAnimation(icon8Url(icon), size).then(setAnimation);
32 | }
33 | }, [icon, size]);
34 |
35 | return (
36 |
37 |
38 | Icons8 Animations
39 |
40 |
41 |
42 | Find more animations on{' '}
43 |
44 | icons8.com
45 |
46 |
47 |
48 | Size:
49 |
50 | setSize(size)}
54 | aria-label="Size"
55 | >
56 |
57 | 32
58 |
59 |
60 | 48
61 |
62 |
63 | 64
64 |
65 |
66 |
67 |
68 |
76 |
77 |
78 |
79 | Preview
80 |
81 |
82 |
83 |
84 |
85 | );
86 | }
87 |
--------------------------------------------------------------------------------
/components/step2.tsx:
--------------------------------------------------------------------------------
1 | import { Box, Button, IconButton, makeStyles, Tooltip, Typography } from '@material-ui/core';
2 | import CloudDownloadIcon from '@material-ui/icons/CloudDownload';
3 | import FileCopyIcon from '@material-ui/icons/FileCopy';
4 | import { useMemo } from 'react';
5 | import { IAnimationParams } from '../src/animation';
6 | import { downloadFile } from '../src/download-file';
7 | import { arduino_ssd1306 } from '../src/templates/arduino-ssd1306';
8 | import { SSD1306Preview } from './sdd1306-preview';
9 | import useClipboard from 'react-use-clipboard';
10 |
11 | const useStyles = makeStyles(() => ({
12 | copied: {
13 | color: 'green',
14 | },
15 | }));
16 |
17 | export interface IStep2Props {
18 | animation: IAnimationParams;
19 | goBack: () => void;
20 | }
21 |
22 | export function Step2({ animation, goBack }: IStep2Props) {
23 | const classes = useStyles();
24 | const code = useMemo(() => arduino_ssd1306(animation), [animation]);
25 | const [copied, copyToClipboard] = useClipboard(code, { successDuration: 2000 });
26 |
27 | const downloadCode = () => {
28 | const sketchName = `wokwi_${animation.name.split(' ').join('_')}.ino`;
29 | downloadFile(sketchName, code);
30 | };
31 |
32 | return (
33 |
34 |
35 |
36 | Please share an image/video of your project and tag{' '}
37 |
38 |
39 | @WokwiMakes
40 |
41 |
42 | .
43 |
44 |
45 | You can also share it on our{' '}
46 |
47 | Discord server
48 |
49 | .
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 | {copied && Copied!}
64 |
65 |
66 |
69 |
70 |
71 | );
72 | }
73 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wokwi-animator",
3 | "version": "0.1.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "wokwi-animator",
9 | "version": "0.1.0",
10 | "license": "MIT",
11 | "dependencies": {
12 | "@material-ui/core": "^4.11.3",
13 | "@material-ui/icons": "^4.11.2",
14 | "@material-ui/lab": "^4.0.0-alpha.57",
15 | "@wokwi/bmp-ts": "^3.0.0",
16 | "@wokwi/elements": "^0.31.3",
17 | "lottie-web": "^5.7.7",
18 | "next": "^10.1.2",
19 | "react": "17.0.1",
20 | "react-dom": "17.0.1",
21 | "react-swipeable-views": "^0.13.9",
22 | "react-use-clipboard": "^1.0.7"
23 | },
24 | "devDependencies": {
25 | "@types/node": "^14.14.35",
26 | "@types/react": "^17.0.3",
27 | "@types/react-swipeable-views": "^0.13.0",
28 | "husky": "^5.1.3",
29 | "prettier": "^2.2.1",
30 | "pretty-quick": "^3.1.0",
31 | "typescript": "^4.2.3"
32 | }
33 | },
34 | "node_modules/@babel/code-frame": {
35 | "version": "7.12.11",
36 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
37 | "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
38 | "dependencies": {
39 | "@babel/highlight": "^7.10.4"
40 | }
41 | },
42 | "node_modules/@babel/helper-validator-identifier": {
43 | "version": "7.22.20",
44 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
45 | "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
46 | "engines": {
47 | "node": ">=6.9.0"
48 | }
49 | },
50 | "node_modules/@babel/highlight": {
51 | "version": "7.22.20",
52 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
53 | "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
54 | "dependencies": {
55 | "@babel/helper-validator-identifier": "^7.22.20",
56 | "chalk": "^2.4.2",
57 | "js-tokens": "^4.0.0"
58 | },
59 | "engines": {
60 | "node": ">=6.9.0"
61 | }
62 | },
63 | "node_modules/@babel/runtime": {
64 | "version": "7.12.5",
65 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
66 | "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
67 | "dependencies": {
68 | "regenerator-runtime": "^0.13.4"
69 | }
70 | },
71 | "node_modules/@babel/types": {
72 | "version": "7.8.3",
73 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
74 | "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
75 | "dependencies": {
76 | "esutils": "^2.0.2",
77 | "lodash": "^4.17.13",
78 | "to-fast-properties": "^2.0.0"
79 | }
80 | },
81 | "node_modules/@emotion/hash": {
82 | "version": "0.8.0",
83 | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
84 | "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
85 | },
86 | "node_modules/@hapi/accept": {
87 | "version": "5.0.2",
88 | "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz",
89 | "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==",
90 | "dependencies": {
91 | "@hapi/boom": "9.x.x",
92 | "@hapi/hoek": "9.x.x"
93 | }
94 | },
95 | "node_modules/@hapi/boom": {
96 | "version": "9.1.4",
97 | "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz",
98 | "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==",
99 | "dependencies": {
100 | "@hapi/hoek": "9.x.x"
101 | }
102 | },
103 | "node_modules/@hapi/hoek": {
104 | "version": "9.3.0",
105 | "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
106 | "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
107 | },
108 | "node_modules/@material-ui/core": {
109 | "version": "4.11.3",
110 | "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.3.tgz",
111 | "integrity": "sha512-Adt40rGW6Uds+cAyk3pVgcErpzU/qxc7KBR94jFHBYretU4AtWZltYcNsbeMn9tXL86jjVL1kuGcIHsgLgFGRw==",
112 | "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
113 | "dependencies": {
114 | "@babel/runtime": "^7.4.4",
115 | "@material-ui/styles": "^4.11.3",
116 | "@material-ui/system": "^4.11.3",
117 | "@material-ui/types": "^5.1.0",
118 | "@material-ui/utils": "^4.11.2",
119 | "@types/react-transition-group": "^4.2.0",
120 | "clsx": "^1.0.4",
121 | "hoist-non-react-statics": "^3.3.2",
122 | "popper.js": "1.16.1-lts",
123 | "prop-types": "^15.7.2",
124 | "react-is": "^16.8.0 || ^17.0.0",
125 | "react-transition-group": "^4.4.0"
126 | },
127 | "engines": {
128 | "node": ">=8.0.0"
129 | },
130 | "funding": {
131 | "type": "opencollective",
132 | "url": "https://opencollective.com/material-ui"
133 | },
134 | "peerDependencies": {
135 | "@types/react": "^16.8.6 || ^17.0.0",
136 | "react": "^16.8.0 || ^17.0.0",
137 | "react-dom": "^16.8.0 || ^17.0.0"
138 | },
139 | "peerDependenciesMeta": {
140 | "@types/react": {
141 | "optional": true
142 | }
143 | }
144 | },
145 | "node_modules/@material-ui/icons": {
146 | "version": "4.11.2",
147 | "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz",
148 | "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==",
149 | "deprecated": "You can now upgrade to @mui/icons. See the guide: https://mui.com/guides/migration-v4/",
150 | "dependencies": {
151 | "@babel/runtime": "^7.4.4"
152 | },
153 | "engines": {
154 | "node": ">=8.0.0"
155 | },
156 | "peerDependencies": {
157 | "@material-ui/core": "^4.0.0",
158 | "@types/react": "^16.8.6 || ^17.0.0",
159 | "react": "^16.8.0 || ^17.0.0",
160 | "react-dom": "^16.8.0 || ^17.0.0"
161 | },
162 | "peerDependenciesMeta": {
163 | "@types/react": {
164 | "optional": true
165 | }
166 | }
167 | },
168 | "node_modules/@material-ui/lab": {
169 | "version": "4.0.0-alpha.57",
170 | "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.57.tgz",
171 | "integrity": "sha512-qo/IuIQOmEKtzmRD2E4Aa6DB4A87kmY6h0uYhjUmrrgmEAgbbw9etXpWPVXuRK6AGIQCjFzV6WO2i21m1R4FCw==",
172 | "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
173 | "dependencies": {
174 | "@babel/runtime": "^7.4.4",
175 | "@material-ui/utils": "^4.11.2",
176 | "clsx": "^1.0.4",
177 | "prop-types": "^15.7.2",
178 | "react-is": "^16.8.0 || ^17.0.0"
179 | },
180 | "engines": {
181 | "node": ">=8.0.0"
182 | },
183 | "peerDependencies": {
184 | "@material-ui/core": "^4.9.10",
185 | "@types/react": "^16.8.6 || ^17.0.0",
186 | "react": "^16.8.0 || ^17.0.0",
187 | "react-dom": "^16.8.0 || ^17.0.0"
188 | },
189 | "peerDependenciesMeta": {
190 | "@types/react": {
191 | "optional": true
192 | }
193 | }
194 | },
195 | "node_modules/@material-ui/styles": {
196 | "version": "4.11.3",
197 | "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.3.tgz",
198 | "integrity": "sha512-HzVzCG+PpgUGMUYEJ2rTEmQYeonGh41BYfILNFb/1ueqma+p1meSdu4RX6NjxYBMhf7k+jgfHFTTz+L1SXL/Zg==",
199 | "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
200 | "dependencies": {
201 | "@babel/runtime": "^7.4.4",
202 | "@emotion/hash": "^0.8.0",
203 | "@material-ui/types": "^5.1.0",
204 | "@material-ui/utils": "^4.11.2",
205 | "clsx": "^1.0.4",
206 | "csstype": "^2.5.2",
207 | "hoist-non-react-statics": "^3.3.2",
208 | "jss": "^10.5.1",
209 | "jss-plugin-camel-case": "^10.5.1",
210 | "jss-plugin-default-unit": "^10.5.1",
211 | "jss-plugin-global": "^10.5.1",
212 | "jss-plugin-nested": "^10.5.1",
213 | "jss-plugin-props-sort": "^10.5.1",
214 | "jss-plugin-rule-value-function": "^10.5.1",
215 | "jss-plugin-vendor-prefixer": "^10.5.1",
216 | "prop-types": "^15.7.2"
217 | },
218 | "engines": {
219 | "node": ">=8.0.0"
220 | },
221 | "funding": {
222 | "type": "opencollective",
223 | "url": "https://opencollective.com/material-ui"
224 | },
225 | "peerDependencies": {
226 | "@types/react": "^16.8.6 || ^17.0.0",
227 | "react": "^16.8.0 || ^17.0.0",
228 | "react-dom": "^16.8.0 || ^17.0.0"
229 | },
230 | "peerDependenciesMeta": {
231 | "@types/react": {
232 | "optional": true
233 | }
234 | }
235 | },
236 | "node_modules/@material-ui/styles/node_modules/csstype": {
237 | "version": "2.6.16",
238 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.16.tgz",
239 | "integrity": "sha512-61FBWoDHp/gRtsoDkq/B1nWrCUG/ok1E3tUrcNbZjsE9Cxd9yzUirjS3+nAATB8U4cTtaQmAHbNndoFz5L6C9Q=="
240 | },
241 | "node_modules/@material-ui/system": {
242 | "version": "4.11.3",
243 | "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.3.tgz",
244 | "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==",
245 | "deprecated": "You can now upgrade to @mui/system. See the guide: https://mui.com/guides/migration-v4/",
246 | "dependencies": {
247 | "@babel/runtime": "^7.4.4",
248 | "@material-ui/utils": "^4.11.2",
249 | "csstype": "^2.5.2",
250 | "prop-types": "^15.7.2"
251 | },
252 | "engines": {
253 | "node": ">=8.0.0"
254 | },
255 | "funding": {
256 | "type": "opencollective",
257 | "url": "https://opencollective.com/material-ui"
258 | },
259 | "peerDependencies": {
260 | "@types/react": "^16.8.6 || ^17.0.0",
261 | "react": "^16.8.0 || ^17.0.0",
262 | "react-dom": "^16.8.0 || ^17.0.0"
263 | },
264 | "peerDependenciesMeta": {
265 | "@types/react": {
266 | "optional": true
267 | }
268 | }
269 | },
270 | "node_modules/@material-ui/system/node_modules/csstype": {
271 | "version": "2.6.16",
272 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.16.tgz",
273 | "integrity": "sha512-61FBWoDHp/gRtsoDkq/B1nWrCUG/ok1E3tUrcNbZjsE9Cxd9yzUirjS3+nAATB8U4cTtaQmAHbNndoFz5L6C9Q=="
274 | },
275 | "node_modules/@material-ui/types": {
276 | "version": "5.1.0",
277 | "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz",
278 | "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==",
279 | "peerDependencies": {
280 | "@types/react": "*"
281 | },
282 | "peerDependenciesMeta": {
283 | "@types/react": {
284 | "optional": true
285 | }
286 | }
287 | },
288 | "node_modules/@material-ui/utils": {
289 | "version": "4.11.2",
290 | "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz",
291 | "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==",
292 | "dependencies": {
293 | "@babel/runtime": "^7.4.4",
294 | "prop-types": "^15.7.2",
295 | "react-is": "^16.8.0 || ^17.0.0"
296 | },
297 | "engines": {
298 | "node": ">=8.0.0"
299 | },
300 | "peerDependencies": {
301 | "react": "^16.8.0 || ^17.0.0",
302 | "react-dom": "^16.8.0 || ^17.0.0"
303 | }
304 | },
305 | "node_modules/@next/env": {
306 | "version": "10.2.3",
307 | "resolved": "https://registry.npmjs.org/@next/env/-/env-10.2.3.tgz",
308 | "integrity": "sha512-uBOjRBjsWC4C8X3DfmWWP6ekwLnf2JCCwQX9KVnJtJkqfDsv1yQPakdOEwvJzXQc3JC/v5KKffYPVmV2wHXCgQ=="
309 | },
310 | "node_modules/@next/polyfill-module": {
311 | "version": "10.2.3",
312 | "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-10.2.3.tgz",
313 | "integrity": "sha512-OkeY4cLhzfYbXxM4fd+6V4s5pTPuyfKSlavItfNRA6PpS7t1/R6YjO7S7rB8tu1pbTGuDHGIdE1ioDv15bAbDQ=="
314 | },
315 | "node_modules/@next/react-dev-overlay": {
316 | "version": "10.2.3",
317 | "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-10.2.3.tgz",
318 | "integrity": "sha512-E6g2jws4YW94l0lMMopBVKIZK2mEHfSBvM0d9dmzKG9L/A/kEq6LZCB4SiwGJbNsAdlk2y3USDa0oNbpA+m5Kw==",
319 | "dependencies": {
320 | "@babel/code-frame": "7.12.11",
321 | "anser": "1.4.9",
322 | "chalk": "4.0.0",
323 | "classnames": "2.2.6",
324 | "css.escape": "1.5.1",
325 | "data-uri-to-buffer": "3.0.1",
326 | "platform": "1.3.6",
327 | "shell-quote": "1.7.2",
328 | "source-map": "0.8.0-beta.0",
329 | "stacktrace-parser": "0.1.10",
330 | "strip-ansi": "6.0.0"
331 | },
332 | "peerDependencies": {
333 | "react": "^16.9.0 || ^17",
334 | "react-dom": "^16.9.0 || ^17"
335 | }
336 | },
337 | "node_modules/@next/react-dev-overlay/node_modules/ansi-styles": {
338 | "version": "4.3.0",
339 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
340 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
341 | "dependencies": {
342 | "color-convert": "^2.0.1"
343 | },
344 | "engines": {
345 | "node": ">=8"
346 | },
347 | "funding": {
348 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
349 | }
350 | },
351 | "node_modules/@next/react-dev-overlay/node_modules/chalk": {
352 | "version": "4.0.0",
353 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
354 | "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
355 | "dependencies": {
356 | "ansi-styles": "^4.1.0",
357 | "supports-color": "^7.1.0"
358 | },
359 | "engines": {
360 | "node": ">=10"
361 | },
362 | "funding": {
363 | "url": "https://github.com/chalk/chalk?sponsor=1"
364 | }
365 | },
366 | "node_modules/@next/react-dev-overlay/node_modules/color-convert": {
367 | "version": "2.0.1",
368 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
369 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
370 | "dependencies": {
371 | "color-name": "~1.1.4"
372 | },
373 | "engines": {
374 | "node": ">=7.0.0"
375 | }
376 | },
377 | "node_modules/@next/react-dev-overlay/node_modules/color-name": {
378 | "version": "1.1.4",
379 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
380 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
381 | },
382 | "node_modules/@next/react-dev-overlay/node_modules/has-flag": {
383 | "version": "4.0.0",
384 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
385 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
386 | "engines": {
387 | "node": ">=8"
388 | }
389 | },
390 | "node_modules/@next/react-dev-overlay/node_modules/supports-color": {
391 | "version": "7.2.0",
392 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
393 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
394 | "dependencies": {
395 | "has-flag": "^4.0.0"
396 | },
397 | "engines": {
398 | "node": ">=8"
399 | }
400 | },
401 | "node_modules/@next/react-refresh-utils": {
402 | "version": "10.2.3",
403 | "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-10.2.3.tgz",
404 | "integrity": "sha512-qtBF56vPC6d6a8p7LYd0iRjW89fhY80kAIzmj+VonvIGjK/nymBjcFUhbKiMFqlhsarCksnhwX+Zmn95Dw9qvA==",
405 | "peerDependencies": {
406 | "react-refresh": "0.8.3",
407 | "webpack": "^4 || ^5"
408 | },
409 | "peerDependenciesMeta": {
410 | "webpack": {
411 | "optional": true
412 | }
413 | }
414 | },
415 | "node_modules/@opentelemetry/api": {
416 | "version": "0.14.0",
417 | "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-0.14.0.tgz",
418 | "integrity": "sha512-L7RMuZr5LzMmZiQSQDy9O1jo0q+DaLy6XpYJfIGfYSfoJA5qzYwUP3sP1uMIQ549DvxAgM3ng85EaPTM/hUHwQ==",
419 | "dependencies": {
420 | "@opentelemetry/context-base": "^0.14.0"
421 | },
422 | "engines": {
423 | "node": ">=8.0.0"
424 | }
425 | },
426 | "node_modules/@opentelemetry/context-base": {
427 | "version": "0.14.0",
428 | "resolved": "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.14.0.tgz",
429 | "integrity": "sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw==",
430 | "engines": {
431 | "node": ">=8.0.0"
432 | }
433 | },
434 | "node_modules/@types/minimatch": {
435 | "version": "3.0.3",
436 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
437 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
438 | "dev": true
439 | },
440 | "node_modules/@types/node": {
441 | "version": "14.14.35",
442 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz",
443 | "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag=="
444 | },
445 | "node_modules/@types/prop-types": {
446 | "version": "15.7.3",
447 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
448 | "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
449 | },
450 | "node_modules/@types/react": {
451 | "version": "17.0.3",
452 | "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.3.tgz",
453 | "integrity": "sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg==",
454 | "dependencies": {
455 | "@types/prop-types": "*",
456 | "@types/scheduler": "*",
457 | "csstype": "^3.0.2"
458 | }
459 | },
460 | "node_modules/@types/react-swipeable-views": {
461 | "version": "0.13.0",
462 | "resolved": "https://registry.npmjs.org/@types/react-swipeable-views/-/react-swipeable-views-0.13.0.tgz",
463 | "integrity": "sha512-orrreCcXev6IUXDuHf07RDDCAoIZRMSr95eyWmYNRfjic7w/O+68iPu0NCysVls+UygRNvoqZMuXI72N/58E1w==",
464 | "dev": true,
465 | "dependencies": {
466 | "@types/react": "*"
467 | }
468 | },
469 | "node_modules/@types/react-transition-group": {
470 | "version": "4.4.1",
471 | "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz",
472 | "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==",
473 | "dependencies": {
474 | "@types/react": "*"
475 | }
476 | },
477 | "node_modules/@types/scheduler": {
478 | "version": "0.16.1",
479 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
480 | "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA=="
481 | },
482 | "node_modules/@wokwi/bmp-ts": {
483 | "version": "3.0.0",
484 | "resolved": "https://registry.npmjs.org/@wokwi/bmp-ts/-/bmp-ts-3.0.0.tgz",
485 | "integrity": "sha512-fBoRZQEd8RHdFq4gaS6eU69fYZjqGIz8myYPLm0gJSosxqHWpge8/3+6yCyc8b8afcb/ptjSlnEVP93t00fWDQ==",
486 | "dependencies": {
487 | "@types/node": "^10.11.7"
488 | }
489 | },
490 | "node_modules/@wokwi/bmp-ts/node_modules/@types/node": {
491 | "version": "10.17.56",
492 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.56.tgz",
493 | "integrity": "sha512-LuAa6t1t0Bfw4CuSR0UITsm1hP17YL+u82kfHGrHUWdhlBtH7sa7jGY5z7glGaIj/WDYDkRtgGd+KCjCzxBW1w=="
494 | },
495 | "node_modules/@wokwi/elements": {
496 | "version": "0.31.3",
497 | "resolved": "https://registry.npmjs.org/@wokwi/elements/-/elements-0.31.3.tgz",
498 | "integrity": "sha512-I2f9bT48hqniq+EwgLtjV5jr9j+Z9RziBPBy6AW/zE92/mPMgEaC27nRU9n1ECISckHqUWmzMm53pwm8MSEgyA==",
499 | "dependencies": {
500 | "lit-element": "^2.3.1"
501 | }
502 | },
503 | "node_modules/anser": {
504 | "version": "1.4.9",
505 | "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz",
506 | "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA=="
507 | },
508 | "node_modules/ansi-regex": {
509 | "version": "5.0.1",
510 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
511 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
512 | "engines": {
513 | "node": ">=8"
514 | }
515 | },
516 | "node_modules/ansi-styles": {
517 | "version": "3.2.1",
518 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
519 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
520 | "dependencies": {
521 | "color-convert": "^1.9.0"
522 | },
523 | "engines": {
524 | "node": ">=4"
525 | }
526 | },
527 | "node_modules/anymatch": {
528 | "version": "3.1.1",
529 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
530 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
531 | "dependencies": {
532 | "normalize-path": "^3.0.0",
533 | "picomatch": "^2.0.4"
534 | },
535 | "engines": {
536 | "node": ">= 8"
537 | }
538 | },
539 | "node_modules/array-differ": {
540 | "version": "3.0.0",
541 | "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
542 | "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
543 | "dev": true,
544 | "engines": {
545 | "node": ">=8"
546 | }
547 | },
548 | "node_modules/array-filter": {
549 | "version": "1.0.0",
550 | "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
551 | "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM="
552 | },
553 | "node_modules/array-union": {
554 | "version": "2.1.0",
555 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
556 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
557 | "dev": true,
558 | "engines": {
559 | "node": ">=8"
560 | }
561 | },
562 | "node_modules/arrify": {
563 | "version": "2.0.1",
564 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
565 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
566 | "dev": true,
567 | "engines": {
568 | "node": ">=8"
569 | }
570 | },
571 | "node_modules/asn1.js": {
572 | "version": "5.4.1",
573 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
574 | "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
575 | "dependencies": {
576 | "bn.js": "^4.0.0",
577 | "inherits": "^2.0.1",
578 | "minimalistic-assert": "^1.0.0",
579 | "safer-buffer": "^2.1.0"
580 | }
581 | },
582 | "node_modules/asn1.js/node_modules/bn.js": {
583 | "version": "4.12.0",
584 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
585 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
586 | },
587 | "node_modules/assert": {
588 | "version": "2.0.0",
589 | "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
590 | "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==",
591 | "dependencies": {
592 | "es6-object-assign": "^1.1.0",
593 | "is-nan": "^1.2.1",
594 | "object-is": "^1.0.1",
595 | "util": "^0.12.0"
596 | }
597 | },
598 | "node_modules/ast-types": {
599 | "version": "0.13.2",
600 | "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz",
601 | "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==",
602 | "engines": {
603 | "node": ">=4"
604 | }
605 | },
606 | "node_modules/available-typed-arrays": {
607 | "version": "1.0.2",
608 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz",
609 | "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==",
610 | "dependencies": {
611 | "array-filter": "^1.0.0"
612 | },
613 | "engines": {
614 | "node": ">= 0.4"
615 | },
616 | "funding": {
617 | "url": "https://github.com/sponsors/ljharb"
618 | }
619 | },
620 | "node_modules/babel-plugin-syntax-jsx": {
621 | "version": "6.18.0",
622 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
623 | "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
624 | },
625 | "node_modules/balanced-match": {
626 | "version": "1.0.0",
627 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
628 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
629 | "dev": true
630 | },
631 | "node_modules/base64-js": {
632 | "version": "1.5.1",
633 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
634 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
635 | "funding": [
636 | {
637 | "type": "github",
638 | "url": "https://github.com/sponsors/feross"
639 | },
640 | {
641 | "type": "patreon",
642 | "url": "https://www.patreon.com/feross"
643 | },
644 | {
645 | "type": "consulting",
646 | "url": "https://feross.org/support"
647 | }
648 | ]
649 | },
650 | "node_modules/big.js": {
651 | "version": "5.2.2",
652 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
653 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
654 | "engines": {
655 | "node": "*"
656 | }
657 | },
658 | "node_modules/binary-extensions": {
659 | "version": "2.2.0",
660 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
661 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
662 | "engines": {
663 | "node": ">=8"
664 | }
665 | },
666 | "node_modules/bn.js": {
667 | "version": "5.2.0",
668 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
669 | "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
670 | },
671 | "node_modules/brace-expansion": {
672 | "version": "1.1.11",
673 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
674 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
675 | "dev": true,
676 | "dependencies": {
677 | "balanced-match": "^1.0.0",
678 | "concat-map": "0.0.1"
679 | }
680 | },
681 | "node_modules/braces": {
682 | "version": "3.0.2",
683 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
684 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
685 | "dependencies": {
686 | "fill-range": "^7.0.1"
687 | },
688 | "engines": {
689 | "node": ">=8"
690 | }
691 | },
692 | "node_modules/brorand": {
693 | "version": "1.1.0",
694 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
695 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
696 | },
697 | "node_modules/browserify-aes": {
698 | "version": "1.2.0",
699 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
700 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
701 | "dependencies": {
702 | "buffer-xor": "^1.0.3",
703 | "cipher-base": "^1.0.0",
704 | "create-hash": "^1.1.0",
705 | "evp_bytestokey": "^1.0.3",
706 | "inherits": "^2.0.1",
707 | "safe-buffer": "^5.0.1"
708 | }
709 | },
710 | "node_modules/browserify-cipher": {
711 | "version": "1.0.1",
712 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
713 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
714 | "dependencies": {
715 | "browserify-aes": "^1.0.4",
716 | "browserify-des": "^1.0.0",
717 | "evp_bytestokey": "^1.0.0"
718 | }
719 | },
720 | "node_modules/browserify-des": {
721 | "version": "1.0.2",
722 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
723 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
724 | "dependencies": {
725 | "cipher-base": "^1.0.1",
726 | "des.js": "^1.0.0",
727 | "inherits": "^2.0.1",
728 | "safe-buffer": "^5.1.2"
729 | }
730 | },
731 | "node_modules/browserify-rsa": {
732 | "version": "4.1.0",
733 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
734 | "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
735 | "dependencies": {
736 | "bn.js": "^5.0.0",
737 | "randombytes": "^2.0.1"
738 | }
739 | },
740 | "node_modules/browserify-sign": {
741 | "version": "4.2.1",
742 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
743 | "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
744 | "dependencies": {
745 | "bn.js": "^5.1.1",
746 | "browserify-rsa": "^4.0.1",
747 | "create-hash": "^1.2.0",
748 | "create-hmac": "^1.1.7",
749 | "elliptic": "^6.5.3",
750 | "inherits": "^2.0.4",
751 | "parse-asn1": "^5.1.5",
752 | "readable-stream": "^3.6.0",
753 | "safe-buffer": "^5.2.0"
754 | }
755 | },
756 | "node_modules/browserify-zlib": {
757 | "version": "0.2.0",
758 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
759 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
760 | "dependencies": {
761 | "pako": "~1.0.5"
762 | }
763 | },
764 | "node_modules/browserslist": {
765 | "version": "4.16.6",
766 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
767 | "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
768 | "dependencies": {
769 | "caniuse-lite": "^1.0.30001219",
770 | "colorette": "^1.2.2",
771 | "electron-to-chromium": "^1.3.723",
772 | "escalade": "^3.1.1",
773 | "node-releases": "^1.1.71"
774 | },
775 | "bin": {
776 | "browserslist": "cli.js"
777 | },
778 | "engines": {
779 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
780 | },
781 | "funding": {
782 | "type": "opencollective",
783 | "url": "https://opencollective.com/browserslist"
784 | }
785 | },
786 | "node_modules/buffer": {
787 | "version": "5.6.0",
788 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
789 | "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
790 | "dependencies": {
791 | "base64-js": "^1.0.2",
792 | "ieee754": "^1.1.4"
793 | }
794 | },
795 | "node_modules/buffer-xor": {
796 | "version": "1.0.3",
797 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
798 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
799 | },
800 | "node_modules/builtin-status-codes": {
801 | "version": "3.0.0",
802 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
803 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
804 | },
805 | "node_modules/bytes": {
806 | "version": "3.1.0",
807 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
808 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
809 | "engines": {
810 | "node": ">= 0.8"
811 | }
812 | },
813 | "node_modules/call-bind": {
814 | "version": "1.0.2",
815 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
816 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
817 | "dependencies": {
818 | "function-bind": "^1.1.1",
819 | "get-intrinsic": "^1.0.2"
820 | },
821 | "funding": {
822 | "url": "https://github.com/sponsors/ljharb"
823 | }
824 | },
825 | "node_modules/caniuse-lite": {
826 | "version": "1.0.30001535",
827 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001535.tgz",
828 | "integrity": "sha512-48jLyUkiWFfhm/afF7cQPqPjaUmSraEhK4j+FCTJpgnGGEZHqyLe3hmWH7lIooZdSzXL0ReMvHz0vKDoTBsrwg==",
829 | "funding": [
830 | {
831 | "type": "opencollective",
832 | "url": "https://opencollective.com/browserslist"
833 | },
834 | {
835 | "type": "tidelift",
836 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
837 | },
838 | {
839 | "type": "github",
840 | "url": "https://github.com/sponsors/ai"
841 | }
842 | ]
843 | },
844 | "node_modules/chalk": {
845 | "version": "2.4.2",
846 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
847 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
848 | "dependencies": {
849 | "ansi-styles": "^3.2.1",
850 | "escape-string-regexp": "^1.0.5",
851 | "supports-color": "^5.3.0"
852 | },
853 | "engines": {
854 | "node": ">=4"
855 | }
856 | },
857 | "node_modules/chokidar": {
858 | "version": "3.5.1",
859 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
860 | "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
861 | "dependencies": {
862 | "anymatch": "~3.1.1",
863 | "braces": "~3.0.2",
864 | "glob-parent": "~5.1.0",
865 | "is-binary-path": "~2.1.0",
866 | "is-glob": "~4.0.1",
867 | "normalize-path": "~3.0.0",
868 | "readdirp": "~3.5.0"
869 | },
870 | "engines": {
871 | "node": ">= 8.10.0"
872 | },
873 | "optionalDependencies": {
874 | "fsevents": "~2.3.1"
875 | }
876 | },
877 | "node_modules/cipher-base": {
878 | "version": "1.0.4",
879 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
880 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
881 | "dependencies": {
882 | "inherits": "^2.0.1",
883 | "safe-buffer": "^5.0.1"
884 | }
885 | },
886 | "node_modules/classnames": {
887 | "version": "2.2.6",
888 | "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
889 | "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
890 | },
891 | "node_modules/clsx": {
892 | "version": "1.1.1",
893 | "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
894 | "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==",
895 | "engines": {
896 | "node": ">=6"
897 | }
898 | },
899 | "node_modules/color-convert": {
900 | "version": "1.9.3",
901 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
902 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
903 | "dependencies": {
904 | "color-name": "1.1.3"
905 | }
906 | },
907 | "node_modules/color-name": {
908 | "version": "1.1.3",
909 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
910 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
911 | },
912 | "node_modules/colorette": {
913 | "version": "1.4.0",
914 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
915 | "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
916 | },
917 | "node_modules/commondir": {
918 | "version": "1.0.1",
919 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
920 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
921 | },
922 | "node_modules/concat-map": {
923 | "version": "0.0.1",
924 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
925 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
926 | "dev": true
927 | },
928 | "node_modules/console-browserify": {
929 | "version": "1.2.0",
930 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
931 | "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
932 | },
933 | "node_modules/constants-browserify": {
934 | "version": "1.0.0",
935 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
936 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
937 | },
938 | "node_modules/convert-source-map": {
939 | "version": "1.7.0",
940 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
941 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
942 | "dependencies": {
943 | "safe-buffer": "~5.1.1"
944 | }
945 | },
946 | "node_modules/convert-source-map/node_modules/safe-buffer": {
947 | "version": "5.1.2",
948 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
949 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
950 | },
951 | "node_modules/copy-to-clipboard": {
952 | "version": "3.3.1",
953 | "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz",
954 | "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==",
955 | "dependencies": {
956 | "toggle-selection": "^1.0.6"
957 | }
958 | },
959 | "node_modules/core-util-is": {
960 | "version": "1.0.2",
961 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
962 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
963 | },
964 | "node_modules/create-ecdh": {
965 | "version": "4.0.4",
966 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
967 | "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
968 | "dependencies": {
969 | "bn.js": "^4.1.0",
970 | "elliptic": "^6.5.3"
971 | }
972 | },
973 | "node_modules/create-ecdh/node_modules/bn.js": {
974 | "version": "4.12.0",
975 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
976 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
977 | },
978 | "node_modules/create-hash": {
979 | "version": "1.2.0",
980 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
981 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
982 | "dependencies": {
983 | "cipher-base": "^1.0.1",
984 | "inherits": "^2.0.1",
985 | "md5.js": "^1.3.4",
986 | "ripemd160": "^2.0.1",
987 | "sha.js": "^2.4.0"
988 | }
989 | },
990 | "node_modules/create-hmac": {
991 | "version": "1.1.7",
992 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
993 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
994 | "dependencies": {
995 | "cipher-base": "^1.0.3",
996 | "create-hash": "^1.1.0",
997 | "inherits": "^2.0.1",
998 | "ripemd160": "^2.0.0",
999 | "safe-buffer": "^5.0.1",
1000 | "sha.js": "^2.4.8"
1001 | }
1002 | },
1003 | "node_modules/cross-spawn": {
1004 | "version": "7.0.3",
1005 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
1006 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
1007 | "dev": true,
1008 | "dependencies": {
1009 | "path-key": "^3.1.0",
1010 | "shebang-command": "^2.0.0",
1011 | "which": "^2.0.1"
1012 | },
1013 | "engines": {
1014 | "node": ">= 8"
1015 | }
1016 | },
1017 | "node_modules/crypto-browserify": {
1018 | "version": "3.12.0",
1019 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
1020 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
1021 | "dependencies": {
1022 | "browserify-cipher": "^1.0.0",
1023 | "browserify-sign": "^4.0.0",
1024 | "create-ecdh": "^4.0.0",
1025 | "create-hash": "^1.1.0",
1026 | "create-hmac": "^1.1.0",
1027 | "diffie-hellman": "^5.0.0",
1028 | "inherits": "^2.0.1",
1029 | "pbkdf2": "^3.0.3",
1030 | "public-encrypt": "^4.0.0",
1031 | "randombytes": "^2.0.0",
1032 | "randomfill": "^1.0.3"
1033 | },
1034 | "engines": {
1035 | "node": "*"
1036 | }
1037 | },
1038 | "node_modules/css-vendor": {
1039 | "version": "2.0.8",
1040 | "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz",
1041 | "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
1042 | "dependencies": {
1043 | "@babel/runtime": "^7.8.3",
1044 | "is-in-browser": "^1.0.2"
1045 | }
1046 | },
1047 | "node_modules/css.escape": {
1048 | "version": "1.5.1",
1049 | "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
1050 | "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg=="
1051 | },
1052 | "node_modules/cssnano-preset-simple": {
1053 | "version": "2.0.0",
1054 | "resolved": "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-2.0.0.tgz",
1055 | "integrity": "sha512-HkufSLkaBJbKBFx/7aj5HmCK9Ni/JedRQm0mT2qBzMG/dEuJOLnMt2lK6K1rwOOyV4j9aSY+knbW9WoS7BYpzg==",
1056 | "dependencies": {
1057 | "caniuse-lite": "^1.0.30001202"
1058 | },
1059 | "peerDependencies": {
1060 | "postcss": "^8.2.1"
1061 | }
1062 | },
1063 | "node_modules/cssnano-simple": {
1064 | "version": "2.0.0",
1065 | "resolved": "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-2.0.0.tgz",
1066 | "integrity": "sha512-0G3TXaFxlh/szPEG/o3VcmCwl0N3E60XNb9YZZijew5eIs6fLjJuOPxQd9yEBaX2p/YfJtt49i4vYi38iH6/6w==",
1067 | "dependencies": {
1068 | "cssnano-preset-simple": "^2.0.0"
1069 | },
1070 | "peerDependencies": {
1071 | "postcss": "^8.2.2"
1072 | }
1073 | },
1074 | "node_modules/csstype": {
1075 | "version": "3.0.7",
1076 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz",
1077 | "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g=="
1078 | },
1079 | "node_modules/data-uri-to-buffer": {
1080 | "version": "3.0.1",
1081 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz",
1082 | "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==",
1083 | "engines": {
1084 | "node": ">= 6"
1085 | }
1086 | },
1087 | "node_modules/debug": {
1088 | "version": "2.6.9",
1089 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1090 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1091 | "dependencies": {
1092 | "ms": "2.0.0"
1093 | }
1094 | },
1095 | "node_modules/define-properties": {
1096 | "version": "1.1.3",
1097 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
1098 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
1099 | "dependencies": {
1100 | "object-keys": "^1.0.12"
1101 | },
1102 | "engines": {
1103 | "node": ">= 0.4"
1104 | }
1105 | },
1106 | "node_modules/depd": {
1107 | "version": "1.1.2",
1108 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
1109 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
1110 | "engines": {
1111 | "node": ">= 0.6"
1112 | }
1113 | },
1114 | "node_modules/des.js": {
1115 | "version": "1.0.1",
1116 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
1117 | "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
1118 | "dependencies": {
1119 | "inherits": "^2.0.1",
1120 | "minimalistic-assert": "^1.0.0"
1121 | }
1122 | },
1123 | "node_modules/diffie-hellman": {
1124 | "version": "5.0.3",
1125 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
1126 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
1127 | "dependencies": {
1128 | "bn.js": "^4.1.0",
1129 | "miller-rabin": "^4.0.0",
1130 | "randombytes": "^2.0.0"
1131 | }
1132 | },
1133 | "node_modules/diffie-hellman/node_modules/bn.js": {
1134 | "version": "4.12.0",
1135 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
1136 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
1137 | },
1138 | "node_modules/dom-helpers": {
1139 | "version": "5.2.0",
1140 | "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz",
1141 | "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==",
1142 | "dependencies": {
1143 | "@babel/runtime": "^7.8.7",
1144 | "csstype": "^3.0.2"
1145 | }
1146 | },
1147 | "node_modules/domain-browser": {
1148 | "version": "4.19.0",
1149 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz",
1150 | "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==",
1151 | "engines": {
1152 | "node": ">=10"
1153 | },
1154 | "funding": {
1155 | "url": "https://bevry.me/fund"
1156 | }
1157 | },
1158 | "node_modules/electron-to-chromium": {
1159 | "version": "1.4.523",
1160 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.523.tgz",
1161 | "integrity": "sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg=="
1162 | },
1163 | "node_modules/elliptic": {
1164 | "version": "6.5.4",
1165 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
1166 | "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
1167 | "dependencies": {
1168 | "bn.js": "^4.11.9",
1169 | "brorand": "^1.1.0",
1170 | "hash.js": "^1.0.0",
1171 | "hmac-drbg": "^1.0.1",
1172 | "inherits": "^2.0.4",
1173 | "minimalistic-assert": "^1.0.1",
1174 | "minimalistic-crypto-utils": "^1.0.1"
1175 | }
1176 | },
1177 | "node_modules/elliptic/node_modules/bn.js": {
1178 | "version": "4.12.0",
1179 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
1180 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
1181 | },
1182 | "node_modules/emojis-list": {
1183 | "version": "2.1.0",
1184 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
1185 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
1186 | "engines": {
1187 | "node": ">= 0.10"
1188 | }
1189 | },
1190 | "node_modules/encoding": {
1191 | "version": "0.1.13",
1192 | "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
1193 | "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
1194 | "dependencies": {
1195 | "iconv-lite": "^0.6.2"
1196 | }
1197 | },
1198 | "node_modules/end-of-stream": {
1199 | "version": "1.4.4",
1200 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
1201 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
1202 | "dev": true,
1203 | "dependencies": {
1204 | "once": "^1.4.0"
1205 | }
1206 | },
1207 | "node_modules/es-abstract": {
1208 | "version": "1.18.0",
1209 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz",
1210 | "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==",
1211 | "dependencies": {
1212 | "call-bind": "^1.0.2",
1213 | "es-to-primitive": "^1.2.1",
1214 | "function-bind": "^1.1.1",
1215 | "get-intrinsic": "^1.1.1",
1216 | "has": "^1.0.3",
1217 | "has-symbols": "^1.0.2",
1218 | "is-callable": "^1.2.3",
1219 | "is-negative-zero": "^2.0.1",
1220 | "is-regex": "^1.1.2",
1221 | "is-string": "^1.0.5",
1222 | "object-inspect": "^1.9.0",
1223 | "object-keys": "^1.1.1",
1224 | "object.assign": "^4.1.2",
1225 | "string.prototype.trimend": "^1.0.4",
1226 | "string.prototype.trimstart": "^1.0.4",
1227 | "unbox-primitive": "^1.0.0"
1228 | },
1229 | "engines": {
1230 | "node": ">= 0.4"
1231 | },
1232 | "funding": {
1233 | "url": "https://github.com/sponsors/ljharb"
1234 | }
1235 | },
1236 | "node_modules/es-to-primitive": {
1237 | "version": "1.2.1",
1238 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
1239 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
1240 | "dependencies": {
1241 | "is-callable": "^1.1.4",
1242 | "is-date-object": "^1.0.1",
1243 | "is-symbol": "^1.0.2"
1244 | },
1245 | "engines": {
1246 | "node": ">= 0.4"
1247 | },
1248 | "funding": {
1249 | "url": "https://github.com/sponsors/ljharb"
1250 | }
1251 | },
1252 | "node_modules/es6-object-assign": {
1253 | "version": "1.1.0",
1254 | "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
1255 | "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw="
1256 | },
1257 | "node_modules/escalade": {
1258 | "version": "3.1.1",
1259 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1260 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1261 | "engines": {
1262 | "node": ">=6"
1263 | }
1264 | },
1265 | "node_modules/escape-string-regexp": {
1266 | "version": "1.0.5",
1267 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1268 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
1269 | "engines": {
1270 | "node": ">=0.8.0"
1271 | }
1272 | },
1273 | "node_modules/esutils": {
1274 | "version": "2.0.3",
1275 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1276 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1277 | "engines": {
1278 | "node": ">=0.10.0"
1279 | }
1280 | },
1281 | "node_modules/etag": {
1282 | "version": "1.8.1",
1283 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1284 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
1285 | "engines": {
1286 | "node": ">= 0.6"
1287 | }
1288 | },
1289 | "node_modules/events": {
1290 | "version": "3.3.0",
1291 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
1292 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
1293 | "engines": {
1294 | "node": ">=0.8.x"
1295 | }
1296 | },
1297 | "node_modules/evp_bytestokey": {
1298 | "version": "1.0.3",
1299 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
1300 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
1301 | "dependencies": {
1302 | "md5.js": "^1.3.4",
1303 | "safe-buffer": "^5.1.1"
1304 | }
1305 | },
1306 | "node_modules/execa": {
1307 | "version": "4.1.0",
1308 | "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
1309 | "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
1310 | "dev": true,
1311 | "dependencies": {
1312 | "cross-spawn": "^7.0.0",
1313 | "get-stream": "^5.0.0",
1314 | "human-signals": "^1.1.1",
1315 | "is-stream": "^2.0.0",
1316 | "merge-stream": "^2.0.0",
1317 | "npm-run-path": "^4.0.0",
1318 | "onetime": "^5.1.0",
1319 | "signal-exit": "^3.0.2",
1320 | "strip-final-newline": "^2.0.0"
1321 | },
1322 | "engines": {
1323 | "node": ">=10"
1324 | },
1325 | "funding": {
1326 | "url": "https://github.com/sindresorhus/execa?sponsor=1"
1327 | }
1328 | },
1329 | "node_modules/fill-range": {
1330 | "version": "7.0.1",
1331 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1332 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1333 | "dependencies": {
1334 | "to-regex-range": "^5.0.1"
1335 | },
1336 | "engines": {
1337 | "node": ">=8"
1338 | }
1339 | },
1340 | "node_modules/find-cache-dir": {
1341 | "version": "3.3.1",
1342 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
1343 | "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
1344 | "dependencies": {
1345 | "commondir": "^1.0.1",
1346 | "make-dir": "^3.0.2",
1347 | "pkg-dir": "^4.1.0"
1348 | },
1349 | "engines": {
1350 | "node": ">=8"
1351 | },
1352 | "funding": {
1353 | "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
1354 | }
1355 | },
1356 | "node_modules/find-up": {
1357 | "version": "4.1.0",
1358 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
1359 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
1360 | "dependencies": {
1361 | "locate-path": "^5.0.0",
1362 | "path-exists": "^4.0.0"
1363 | },
1364 | "engines": {
1365 | "node": ">=8"
1366 | }
1367 | },
1368 | "node_modules/foreach": {
1369 | "version": "2.0.5",
1370 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
1371 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
1372 | },
1373 | "node_modules/fsevents": {
1374 | "version": "2.3.2",
1375 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1376 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1377 | "hasInstallScript": true,
1378 | "optional": true,
1379 | "os": [
1380 | "darwin"
1381 | ],
1382 | "engines": {
1383 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1384 | }
1385 | },
1386 | "node_modules/function-bind": {
1387 | "version": "1.1.1",
1388 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1389 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1390 | },
1391 | "node_modules/get-intrinsic": {
1392 | "version": "1.1.1",
1393 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1394 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1395 | "dependencies": {
1396 | "function-bind": "^1.1.1",
1397 | "has": "^1.0.3",
1398 | "has-symbols": "^1.0.1"
1399 | },
1400 | "funding": {
1401 | "url": "https://github.com/sponsors/ljharb"
1402 | }
1403 | },
1404 | "node_modules/get-orientation": {
1405 | "version": "1.1.2",
1406 | "resolved": "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz",
1407 | "integrity": "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==",
1408 | "dependencies": {
1409 | "stream-parser": "^0.3.1"
1410 | }
1411 | },
1412 | "node_modules/get-stream": {
1413 | "version": "5.2.0",
1414 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
1415 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
1416 | "dev": true,
1417 | "dependencies": {
1418 | "pump": "^3.0.0"
1419 | },
1420 | "engines": {
1421 | "node": ">=8"
1422 | },
1423 | "funding": {
1424 | "url": "https://github.com/sponsors/sindresorhus"
1425 | }
1426 | },
1427 | "node_modules/glob-parent": {
1428 | "version": "5.1.2",
1429 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1430 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1431 | "dependencies": {
1432 | "is-glob": "^4.0.1"
1433 | },
1434 | "engines": {
1435 | "node": ">= 6"
1436 | }
1437 | },
1438 | "node_modules/glob-to-regexp": {
1439 | "version": "0.4.1",
1440 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
1441 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
1442 | },
1443 | "node_modules/graceful-fs": {
1444 | "version": "4.2.6",
1445 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
1446 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
1447 | },
1448 | "node_modules/has": {
1449 | "version": "1.0.3",
1450 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1451 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1452 | "dependencies": {
1453 | "function-bind": "^1.1.1"
1454 | },
1455 | "engines": {
1456 | "node": ">= 0.4.0"
1457 | }
1458 | },
1459 | "node_modules/has-bigints": {
1460 | "version": "1.0.1",
1461 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
1462 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
1463 | "funding": {
1464 | "url": "https://github.com/sponsors/ljharb"
1465 | }
1466 | },
1467 | "node_modules/has-flag": {
1468 | "version": "3.0.0",
1469 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1470 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1471 | "engines": {
1472 | "node": ">=4"
1473 | }
1474 | },
1475 | "node_modules/has-symbols": {
1476 | "version": "1.0.2",
1477 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
1478 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
1479 | "engines": {
1480 | "node": ">= 0.4"
1481 | },
1482 | "funding": {
1483 | "url": "https://github.com/sponsors/ljharb"
1484 | }
1485 | },
1486 | "node_modules/hash-base": {
1487 | "version": "3.1.0",
1488 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
1489 | "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
1490 | "dependencies": {
1491 | "inherits": "^2.0.4",
1492 | "readable-stream": "^3.6.0",
1493 | "safe-buffer": "^5.2.0"
1494 | },
1495 | "engines": {
1496 | "node": ">=4"
1497 | }
1498 | },
1499 | "node_modules/hash.js": {
1500 | "version": "1.1.7",
1501 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
1502 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
1503 | "dependencies": {
1504 | "inherits": "^2.0.3",
1505 | "minimalistic-assert": "^1.0.1"
1506 | }
1507 | },
1508 | "node_modules/he": {
1509 | "version": "1.2.0",
1510 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
1511 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
1512 | "bin": {
1513 | "he": "bin/he"
1514 | }
1515 | },
1516 | "node_modules/hmac-drbg": {
1517 | "version": "1.0.1",
1518 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
1519 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
1520 | "dependencies": {
1521 | "hash.js": "^1.0.3",
1522 | "minimalistic-assert": "^1.0.0",
1523 | "minimalistic-crypto-utils": "^1.0.1"
1524 | }
1525 | },
1526 | "node_modules/hoist-non-react-statics": {
1527 | "version": "3.3.2",
1528 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
1529 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
1530 | "dependencies": {
1531 | "react-is": "^16.7.0"
1532 | }
1533 | },
1534 | "node_modules/http-errors": {
1535 | "version": "1.7.3",
1536 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
1537 | "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
1538 | "dependencies": {
1539 | "depd": "~1.1.2",
1540 | "inherits": "2.0.4",
1541 | "setprototypeof": "1.1.1",
1542 | "statuses": ">= 1.5.0 < 2",
1543 | "toidentifier": "1.0.0"
1544 | },
1545 | "engines": {
1546 | "node": ">= 0.6"
1547 | }
1548 | },
1549 | "node_modules/https-browserify": {
1550 | "version": "1.0.0",
1551 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
1552 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
1553 | },
1554 | "node_modules/human-signals": {
1555 | "version": "1.1.1",
1556 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
1557 | "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
1558 | "dev": true,
1559 | "engines": {
1560 | "node": ">=8.12.0"
1561 | }
1562 | },
1563 | "node_modules/husky": {
1564 | "version": "5.1.3",
1565 | "resolved": "https://registry.npmjs.org/husky/-/husky-5.1.3.tgz",
1566 | "integrity": "sha512-fbNJ+Gz5wx2LIBtMweJNY1D7Uc8p1XERi5KNRMccwfQA+rXlxWNSdUxswo0gT8XqxywTIw7Ywm/F4v/O35RdMg==",
1567 | "dev": true,
1568 | "funding": [
1569 | {
1570 | "type": "github",
1571 | "url": "https://github.com/sponsors/typicode"
1572 | },
1573 | {
1574 | "type": "opencollective",
1575 | "url": "https://opencollective.com/husky"
1576 | }
1577 | ],
1578 | "bin": {
1579 | "husky": "lib/bin.js"
1580 | },
1581 | "engines": {
1582 | "node": ">= 10"
1583 | }
1584 | },
1585 | "node_modules/hyphenate-style-name": {
1586 | "version": "1.0.4",
1587 | "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
1588 | "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
1589 | },
1590 | "node_modules/iconv-lite": {
1591 | "version": "0.6.2",
1592 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
1593 | "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
1594 | "dependencies": {
1595 | "safer-buffer": ">= 2.1.2 < 3.0.0"
1596 | },
1597 | "engines": {
1598 | "node": ">=0.10.0"
1599 | }
1600 | },
1601 | "node_modules/ieee754": {
1602 | "version": "1.2.1",
1603 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1604 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1605 | "funding": [
1606 | {
1607 | "type": "github",
1608 | "url": "https://github.com/sponsors/feross"
1609 | },
1610 | {
1611 | "type": "patreon",
1612 | "url": "https://www.patreon.com/feross"
1613 | },
1614 | {
1615 | "type": "consulting",
1616 | "url": "https://feross.org/support"
1617 | }
1618 | ]
1619 | },
1620 | "node_modules/ignore": {
1621 | "version": "5.1.8",
1622 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
1623 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
1624 | "dev": true,
1625 | "engines": {
1626 | "node": ">= 4"
1627 | }
1628 | },
1629 | "node_modules/indefinite-observable": {
1630 | "version": "2.0.1",
1631 | "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz",
1632 | "integrity": "sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ==",
1633 | "dependencies": {
1634 | "symbol-observable": "1.2.0"
1635 | }
1636 | },
1637 | "node_modules/inherits": {
1638 | "version": "2.0.4",
1639 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1640 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1641 | },
1642 | "node_modules/is-arguments": {
1643 | "version": "1.1.0",
1644 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
1645 | "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
1646 | "dependencies": {
1647 | "call-bind": "^1.0.0"
1648 | },
1649 | "engines": {
1650 | "node": ">= 0.4"
1651 | },
1652 | "funding": {
1653 | "url": "https://github.com/sponsors/ljharb"
1654 | }
1655 | },
1656 | "node_modules/is-bigint": {
1657 | "version": "1.0.1",
1658 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz",
1659 | "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==",
1660 | "funding": {
1661 | "url": "https://github.com/sponsors/ljharb"
1662 | }
1663 | },
1664 | "node_modules/is-binary-path": {
1665 | "version": "2.1.0",
1666 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1667 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1668 | "dependencies": {
1669 | "binary-extensions": "^2.0.0"
1670 | },
1671 | "engines": {
1672 | "node": ">=8"
1673 | }
1674 | },
1675 | "node_modules/is-boolean-object": {
1676 | "version": "1.1.0",
1677 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz",
1678 | "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==",
1679 | "dependencies": {
1680 | "call-bind": "^1.0.0"
1681 | },
1682 | "engines": {
1683 | "node": ">= 0.4"
1684 | },
1685 | "funding": {
1686 | "url": "https://github.com/sponsors/ljharb"
1687 | }
1688 | },
1689 | "node_modules/is-callable": {
1690 | "version": "1.2.3",
1691 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
1692 | "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
1693 | "engines": {
1694 | "node": ">= 0.4"
1695 | },
1696 | "funding": {
1697 | "url": "https://github.com/sponsors/ljharb"
1698 | }
1699 | },
1700 | "node_modules/is-date-object": {
1701 | "version": "1.0.2",
1702 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
1703 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
1704 | "engines": {
1705 | "node": ">= 0.4"
1706 | },
1707 | "funding": {
1708 | "url": "https://github.com/sponsors/ljharb"
1709 | }
1710 | },
1711 | "node_modules/is-extglob": {
1712 | "version": "2.1.1",
1713 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1714 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1715 | "engines": {
1716 | "node": ">=0.10.0"
1717 | }
1718 | },
1719 | "node_modules/is-generator-function": {
1720 | "version": "1.0.8",
1721 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz",
1722 | "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==",
1723 | "engines": {
1724 | "node": ">= 0.4"
1725 | },
1726 | "funding": {
1727 | "url": "https://github.com/sponsors/ljharb"
1728 | }
1729 | },
1730 | "node_modules/is-glob": {
1731 | "version": "4.0.1",
1732 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
1733 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
1734 | "dependencies": {
1735 | "is-extglob": "^2.1.1"
1736 | },
1737 | "engines": {
1738 | "node": ">=0.10.0"
1739 | }
1740 | },
1741 | "node_modules/is-in-browser": {
1742 | "version": "1.1.3",
1743 | "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
1744 | "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
1745 | },
1746 | "node_modules/is-nan": {
1747 | "version": "1.3.2",
1748 | "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
1749 | "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
1750 | "dependencies": {
1751 | "call-bind": "^1.0.0",
1752 | "define-properties": "^1.1.3"
1753 | },
1754 | "engines": {
1755 | "node": ">= 0.4"
1756 | },
1757 | "funding": {
1758 | "url": "https://github.com/sponsors/ljharb"
1759 | }
1760 | },
1761 | "node_modules/is-negative-zero": {
1762 | "version": "2.0.1",
1763 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
1764 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
1765 | "engines": {
1766 | "node": ">= 0.4"
1767 | },
1768 | "funding": {
1769 | "url": "https://github.com/sponsors/ljharb"
1770 | }
1771 | },
1772 | "node_modules/is-number": {
1773 | "version": "7.0.0",
1774 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1775 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1776 | "engines": {
1777 | "node": ">=0.12.0"
1778 | }
1779 | },
1780 | "node_modules/is-number-object": {
1781 | "version": "1.0.4",
1782 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz",
1783 | "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==",
1784 | "engines": {
1785 | "node": ">= 0.4"
1786 | },
1787 | "funding": {
1788 | "url": "https://github.com/sponsors/ljharb"
1789 | }
1790 | },
1791 | "node_modules/is-regex": {
1792 | "version": "1.1.2",
1793 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
1794 | "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
1795 | "dependencies": {
1796 | "call-bind": "^1.0.2",
1797 | "has-symbols": "^1.0.1"
1798 | },
1799 | "engines": {
1800 | "node": ">= 0.4"
1801 | },
1802 | "funding": {
1803 | "url": "https://github.com/sponsors/ljharb"
1804 | }
1805 | },
1806 | "node_modules/is-stream": {
1807 | "version": "2.0.0",
1808 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
1809 | "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
1810 | "dev": true,
1811 | "engines": {
1812 | "node": ">=8"
1813 | }
1814 | },
1815 | "node_modules/is-string": {
1816 | "version": "1.0.5",
1817 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
1818 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
1819 | "engines": {
1820 | "node": ">= 0.4"
1821 | },
1822 | "funding": {
1823 | "url": "https://github.com/sponsors/ljharb"
1824 | }
1825 | },
1826 | "node_modules/is-symbol": {
1827 | "version": "1.0.3",
1828 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
1829 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
1830 | "dependencies": {
1831 | "has-symbols": "^1.0.1"
1832 | },
1833 | "engines": {
1834 | "node": ">= 0.4"
1835 | },
1836 | "funding": {
1837 | "url": "https://github.com/sponsors/ljharb"
1838 | }
1839 | },
1840 | "node_modules/is-typed-array": {
1841 | "version": "1.1.5",
1842 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz",
1843 | "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==",
1844 | "dependencies": {
1845 | "available-typed-arrays": "^1.0.2",
1846 | "call-bind": "^1.0.2",
1847 | "es-abstract": "^1.18.0-next.2",
1848 | "foreach": "^2.0.5",
1849 | "has-symbols": "^1.0.1"
1850 | },
1851 | "engines": {
1852 | "node": ">= 0.4"
1853 | },
1854 | "funding": {
1855 | "url": "https://github.com/sponsors/ljharb"
1856 | }
1857 | },
1858 | "node_modules/isarray": {
1859 | "version": "1.0.0",
1860 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1861 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1862 | },
1863 | "node_modules/isexe": {
1864 | "version": "2.0.0",
1865 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1866 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1867 | "dev": true
1868 | },
1869 | "node_modules/jest-worker": {
1870 | "version": "27.0.0-next.5",
1871 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz",
1872 | "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==",
1873 | "dependencies": {
1874 | "@types/node": "*",
1875 | "merge-stream": "^2.0.0",
1876 | "supports-color": "^8.0.0"
1877 | },
1878 | "engines": {
1879 | "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
1880 | }
1881 | },
1882 | "node_modules/jest-worker/node_modules/has-flag": {
1883 | "version": "4.0.0",
1884 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1885 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1886 | "engines": {
1887 | "node": ">=8"
1888 | }
1889 | },
1890 | "node_modules/jest-worker/node_modules/supports-color": {
1891 | "version": "8.1.1",
1892 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
1893 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
1894 | "dependencies": {
1895 | "has-flag": "^4.0.0"
1896 | },
1897 | "engines": {
1898 | "node": ">=10"
1899 | },
1900 | "funding": {
1901 | "url": "https://github.com/chalk/supports-color?sponsor=1"
1902 | }
1903 | },
1904 | "node_modules/js-tokens": {
1905 | "version": "4.0.0",
1906 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1907 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1908 | },
1909 | "node_modules/json5": {
1910 | "version": "1.0.2",
1911 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
1912 | "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
1913 | "dependencies": {
1914 | "minimist": "^1.2.0"
1915 | },
1916 | "bin": {
1917 | "json5": "lib/cli.js"
1918 | }
1919 | },
1920 | "node_modules/jss": {
1921 | "version": "10.6.0",
1922 | "resolved": "https://registry.npmjs.org/jss/-/jss-10.6.0.tgz",
1923 | "integrity": "sha512-n7SHdCozmxnzYGXBHe0NsO0eUf9TvsHVq2MXvi4JmTn3x5raynodDVE/9VQmBdWFyyj9HpHZ2B4xNZ7MMy7lkw==",
1924 | "dependencies": {
1925 | "@babel/runtime": "^7.3.1",
1926 | "csstype": "^3.0.2",
1927 | "indefinite-observable": "^2.0.1",
1928 | "is-in-browser": "^1.1.3",
1929 | "tiny-warning": "^1.0.2"
1930 | },
1931 | "funding": {
1932 | "type": "opencollective",
1933 | "url": "https://opencollective.com/jss"
1934 | }
1935 | },
1936 | "node_modules/jss-plugin-camel-case": {
1937 | "version": "10.6.0",
1938 | "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.6.0.tgz",
1939 | "integrity": "sha512-JdLpA3aI/npwj3nDMKk308pvnhoSzkW3PXlbgHAzfx0yHWnPPVUjPhXFtLJzgKZge8lsfkUxvYSQ3X2OYIFU6A==",
1940 | "dependencies": {
1941 | "@babel/runtime": "^7.3.1",
1942 | "hyphenate-style-name": "^1.0.3",
1943 | "jss": "10.6.0"
1944 | }
1945 | },
1946 | "node_modules/jss-plugin-default-unit": {
1947 | "version": "10.6.0",
1948 | "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.6.0.tgz",
1949 | "integrity": "sha512-7y4cAScMHAxvslBK2JRK37ES9UT0YfTIXWgzUWD5euvR+JR3q+o8sQKzBw7GmkQRfZijrRJKNTiSt1PBsLI9/w==",
1950 | "dependencies": {
1951 | "@babel/runtime": "^7.3.1",
1952 | "jss": "10.6.0"
1953 | }
1954 | },
1955 | "node_modules/jss-plugin-global": {
1956 | "version": "10.6.0",
1957 | "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.6.0.tgz",
1958 | "integrity": "sha512-I3w7ji/UXPi3VuWrTCbHG9rVCgB4yoBQLehGDTmsnDfXQb3r1l3WIdcO8JFp9m0YMmyy2CU7UOV6oPI7/Tmu+w==",
1959 | "dependencies": {
1960 | "@babel/runtime": "^7.3.1",
1961 | "jss": "10.6.0"
1962 | }
1963 | },
1964 | "node_modules/jss-plugin-nested": {
1965 | "version": "10.6.0",
1966 | "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.6.0.tgz",
1967 | "integrity": "sha512-fOFQWgd98H89E6aJSNkEh2fAXquC9aZcAVjSw4q4RoQ9gU++emg18encR4AT4OOIFl4lQwt5nEyBBRn9V1Rk8g==",
1968 | "dependencies": {
1969 | "@babel/runtime": "^7.3.1",
1970 | "jss": "10.6.0",
1971 | "tiny-warning": "^1.0.2"
1972 | }
1973 | },
1974 | "node_modules/jss-plugin-props-sort": {
1975 | "version": "10.6.0",
1976 | "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.6.0.tgz",
1977 | "integrity": "sha512-oMCe7hgho2FllNc60d9VAfdtMrZPo9n1Iu6RNa+3p9n0Bkvnv/XX5San8fTPujrTBScPqv9mOE0nWVvIaohNuw==",
1978 | "dependencies": {
1979 | "@babel/runtime": "^7.3.1",
1980 | "jss": "10.6.0"
1981 | }
1982 | },
1983 | "node_modules/jss-plugin-rule-value-function": {
1984 | "version": "10.6.0",
1985 | "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.6.0.tgz",
1986 | "integrity": "sha512-TKFqhRTDHN1QrPTMYRlIQUOC2FFQb271+AbnetURKlGvRl/eWLswcgHQajwuxI464uZk91sPiTtdGi7r7XaWfA==",
1987 | "dependencies": {
1988 | "@babel/runtime": "^7.3.1",
1989 | "jss": "10.6.0",
1990 | "tiny-warning": "^1.0.2"
1991 | }
1992 | },
1993 | "node_modules/jss-plugin-vendor-prefixer": {
1994 | "version": "10.6.0",
1995 | "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.6.0.tgz",
1996 | "integrity": "sha512-doJ7MouBXT1lypLLctCwb4nJ6lDYqrTfVS3LtXgox42Xz0gXusXIIDboeh6UwnSmox90QpVnub7au8ybrb0krQ==",
1997 | "dependencies": {
1998 | "@babel/runtime": "^7.3.1",
1999 | "css-vendor": "^2.0.8",
2000 | "jss": "10.6.0"
2001 | }
2002 | },
2003 | "node_modules/keycode": {
2004 | "version": "2.2.0",
2005 | "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz",
2006 | "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
2007 | },
2008 | "node_modules/lit-element": {
2009 | "version": "2.4.0",
2010 | "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-2.4.0.tgz",
2011 | "integrity": "sha512-pBGLglxyhq/Prk2H91nA0KByq/hx/wssJBQFiYqXhGDvEnY31PRGYf1RglVzyLeRysu0IHm2K0P196uLLWmwFg==",
2012 | "dependencies": {
2013 | "lit-html": "^1.1.1"
2014 | }
2015 | },
2016 | "node_modules/lit-html": {
2017 | "version": "1.3.0",
2018 | "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-1.3.0.tgz",
2019 | "integrity": "sha512-0Q1bwmaFH9O14vycPHw8C/IeHMk/uSDldVLIefu/kfbTBGIc44KGH6A8p1bDfxUfHdc8q6Ct7kQklWoHgr4t1Q=="
2020 | },
2021 | "node_modules/loader-utils": {
2022 | "version": "1.2.3",
2023 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
2024 | "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
2025 | "dependencies": {
2026 | "big.js": "^5.2.2",
2027 | "emojis-list": "^2.0.0",
2028 | "json5": "^1.0.1"
2029 | },
2030 | "engines": {
2031 | "node": ">=4.0.0"
2032 | }
2033 | },
2034 | "node_modules/locate-path": {
2035 | "version": "5.0.0",
2036 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
2037 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
2038 | "dependencies": {
2039 | "p-locate": "^4.1.0"
2040 | },
2041 | "engines": {
2042 | "node": ">=8"
2043 | }
2044 | },
2045 | "node_modules/lodash": {
2046 | "version": "4.17.21",
2047 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
2048 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
2049 | },
2050 | "node_modules/lodash.sortby": {
2051 | "version": "4.7.0",
2052 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
2053 | "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA=="
2054 | },
2055 | "node_modules/loose-envify": {
2056 | "version": "1.4.0",
2057 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
2058 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
2059 | "dependencies": {
2060 | "js-tokens": "^3.0.0 || ^4.0.0"
2061 | },
2062 | "bin": {
2063 | "loose-envify": "cli.js"
2064 | }
2065 | },
2066 | "node_modules/lottie-web": {
2067 | "version": "5.7.7",
2068 | "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.7.7.tgz",
2069 | "integrity": "sha512-dAUrMX5BRxP7dr+qDWzablhGY6SqXztCS46sW11wjuzExQKZl5GLX2yMGGqg4AkdjgfjetndcU+VR1xoLhlkpA=="
2070 | },
2071 | "node_modules/make-dir": {
2072 | "version": "3.1.0",
2073 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
2074 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
2075 | "dependencies": {
2076 | "semver": "^6.0.0"
2077 | },
2078 | "engines": {
2079 | "node": ">=8"
2080 | },
2081 | "funding": {
2082 | "url": "https://github.com/sponsors/sindresorhus"
2083 | }
2084 | },
2085 | "node_modules/md5.js": {
2086 | "version": "1.3.5",
2087 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
2088 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
2089 | "dependencies": {
2090 | "hash-base": "^3.0.0",
2091 | "inherits": "^2.0.1",
2092 | "safe-buffer": "^5.1.2"
2093 | }
2094 | },
2095 | "node_modules/merge-stream": {
2096 | "version": "2.0.0",
2097 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
2098 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
2099 | },
2100 | "node_modules/miller-rabin": {
2101 | "version": "4.0.1",
2102 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
2103 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
2104 | "dependencies": {
2105 | "bn.js": "^4.0.0",
2106 | "brorand": "^1.0.1"
2107 | },
2108 | "bin": {
2109 | "miller-rabin": "bin/miller-rabin"
2110 | }
2111 | },
2112 | "node_modules/miller-rabin/node_modules/bn.js": {
2113 | "version": "4.12.0",
2114 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
2115 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
2116 | },
2117 | "node_modules/mimic-fn": {
2118 | "version": "2.1.0",
2119 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
2120 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
2121 | "dev": true,
2122 | "engines": {
2123 | "node": ">=6"
2124 | }
2125 | },
2126 | "node_modules/minimalistic-assert": {
2127 | "version": "1.0.1",
2128 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
2129 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
2130 | },
2131 | "node_modules/minimalistic-crypto-utils": {
2132 | "version": "1.0.1",
2133 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
2134 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
2135 | },
2136 | "node_modules/minimatch": {
2137 | "version": "3.1.2",
2138 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2139 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2140 | "dev": true,
2141 | "dependencies": {
2142 | "brace-expansion": "^1.1.7"
2143 | },
2144 | "engines": {
2145 | "node": "*"
2146 | }
2147 | },
2148 | "node_modules/minimist": {
2149 | "version": "1.2.8",
2150 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
2151 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
2152 | "funding": {
2153 | "url": "https://github.com/sponsors/ljharb"
2154 | }
2155 | },
2156 | "node_modules/mri": {
2157 | "version": "1.1.6",
2158 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz",
2159 | "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==",
2160 | "dev": true,
2161 | "engines": {
2162 | "node": ">=4"
2163 | }
2164 | },
2165 | "node_modules/ms": {
2166 | "version": "2.0.0",
2167 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2168 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
2169 | },
2170 | "node_modules/multimatch": {
2171 | "version": "4.0.0",
2172 | "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz",
2173 | "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==",
2174 | "dev": true,
2175 | "dependencies": {
2176 | "@types/minimatch": "^3.0.3",
2177 | "array-differ": "^3.0.0",
2178 | "array-union": "^2.1.0",
2179 | "arrify": "^2.0.1",
2180 | "minimatch": "^3.0.4"
2181 | },
2182 | "engines": {
2183 | "node": ">=8"
2184 | }
2185 | },
2186 | "node_modules/nanoid": {
2187 | "version": "3.3.6",
2188 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
2189 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
2190 | "funding": [
2191 | {
2192 | "type": "github",
2193 | "url": "https://github.com/sponsors/ai"
2194 | }
2195 | ],
2196 | "bin": {
2197 | "nanoid": "bin/nanoid.cjs"
2198 | },
2199 | "engines": {
2200 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
2201 | }
2202 | },
2203 | "node_modules/native-url": {
2204 | "version": "0.3.4",
2205 | "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.3.4.tgz",
2206 | "integrity": "sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==",
2207 | "dependencies": {
2208 | "querystring": "^0.2.0"
2209 | }
2210 | },
2211 | "node_modules/next": {
2212 | "version": "10.2.3",
2213 | "resolved": "https://registry.npmjs.org/next/-/next-10.2.3.tgz",
2214 | "integrity": "sha512-dkM1mIfnORtGyzw/Yme8RdqNxlCMZyi4Lqj56F01/yHbe1ZtOaJ0cyqqRB4RGiPhjGGh0319f8ddjDyO1605Ow==",
2215 | "dependencies": {
2216 | "@babel/runtime": "7.12.5",
2217 | "@hapi/accept": "5.0.2",
2218 | "@next/env": "10.2.3",
2219 | "@next/polyfill-module": "10.2.3",
2220 | "@next/react-dev-overlay": "10.2.3",
2221 | "@next/react-refresh-utils": "10.2.3",
2222 | "@opentelemetry/api": "0.14.0",
2223 | "assert": "2.0.0",
2224 | "ast-types": "0.13.2",
2225 | "browserify-zlib": "0.2.0",
2226 | "browserslist": "4.16.6",
2227 | "buffer": "5.6.0",
2228 | "caniuse-lite": "^1.0.30001228",
2229 | "chalk": "2.4.2",
2230 | "chokidar": "3.5.1",
2231 | "constants-browserify": "1.0.0",
2232 | "crypto-browserify": "3.12.0",
2233 | "cssnano-simple": "2.0.0",
2234 | "domain-browser": "4.19.0",
2235 | "encoding": "0.1.13",
2236 | "etag": "1.8.1",
2237 | "find-cache-dir": "3.3.1",
2238 | "get-orientation": "1.1.2",
2239 | "https-browserify": "1.0.0",
2240 | "jest-worker": "27.0.0-next.5",
2241 | "native-url": "0.3.4",
2242 | "node-fetch": "2.6.1",
2243 | "node-html-parser": "1.4.9",
2244 | "node-libs-browser": "^2.2.1",
2245 | "os-browserify": "0.3.0",
2246 | "p-limit": "3.1.0",
2247 | "path-browserify": "1.0.1",
2248 | "pnp-webpack-plugin": "1.6.4",
2249 | "postcss": "8.2.13",
2250 | "process": "0.11.10",
2251 | "prop-types": "15.7.2",
2252 | "querystring-es3": "0.2.1",
2253 | "raw-body": "2.4.1",
2254 | "react-is": "16.13.1",
2255 | "react-refresh": "0.8.3",
2256 | "stream-browserify": "3.0.0",
2257 | "stream-http": "3.1.1",
2258 | "string_decoder": "1.3.0",
2259 | "styled-jsx": "3.3.2",
2260 | "timers-browserify": "2.0.12",
2261 | "tty-browserify": "0.0.1",
2262 | "use-subscription": "1.5.1",
2263 | "util": "0.12.3",
2264 | "vm-browserify": "1.1.2",
2265 | "watchpack": "2.1.1"
2266 | },
2267 | "bin": {
2268 | "next": "dist/bin/next"
2269 | },
2270 | "engines": {
2271 | "node": ">=10.13.0"
2272 | },
2273 | "peerDependencies": {
2274 | "fibers": ">= 3.1.0",
2275 | "node-sass": "^4.0.0 || ^5.0.0",
2276 | "react": "^16.6.0 || ^17",
2277 | "react-dom": "^16.6.0 || ^17",
2278 | "sass": "^1.3.0"
2279 | },
2280 | "peerDependenciesMeta": {
2281 | "fibers": {
2282 | "optional": true
2283 | },
2284 | "node-sass": {
2285 | "optional": true
2286 | },
2287 | "sass": {
2288 | "optional": true
2289 | }
2290 | }
2291 | },
2292 | "node_modules/node-fetch": {
2293 | "version": "2.6.1",
2294 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
2295 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
2296 | "engines": {
2297 | "node": "4.x || >=6.0.0"
2298 | }
2299 | },
2300 | "node_modules/node-html-parser": {
2301 | "version": "1.4.9",
2302 | "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz",
2303 | "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==",
2304 | "dependencies": {
2305 | "he": "1.2.0"
2306 | }
2307 | },
2308 | "node_modules/node-libs-browser": {
2309 | "version": "2.2.1",
2310 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
2311 | "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
2312 | "dependencies": {
2313 | "assert": "^1.1.1",
2314 | "browserify-zlib": "^0.2.0",
2315 | "buffer": "^4.3.0",
2316 | "console-browserify": "^1.1.0",
2317 | "constants-browserify": "^1.0.0",
2318 | "crypto-browserify": "^3.11.0",
2319 | "domain-browser": "^1.1.1",
2320 | "events": "^3.0.0",
2321 | "https-browserify": "^1.0.0",
2322 | "os-browserify": "^0.3.0",
2323 | "path-browserify": "0.0.1",
2324 | "process": "^0.11.10",
2325 | "punycode": "^1.2.4",
2326 | "querystring-es3": "^0.2.0",
2327 | "readable-stream": "^2.3.3",
2328 | "stream-browserify": "^2.0.1",
2329 | "stream-http": "^2.7.2",
2330 | "string_decoder": "^1.0.0",
2331 | "timers-browserify": "^2.0.4",
2332 | "tty-browserify": "0.0.0",
2333 | "url": "^0.11.0",
2334 | "util": "^0.11.0",
2335 | "vm-browserify": "^1.0.1"
2336 | }
2337 | },
2338 | "node_modules/node-libs-browser/node_modules/assert": {
2339 | "version": "1.5.0",
2340 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
2341 | "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
2342 | "dependencies": {
2343 | "object-assign": "^4.1.1",
2344 | "util": "0.10.3"
2345 | }
2346 | },
2347 | "node_modules/node-libs-browser/node_modules/assert/node_modules/util": {
2348 | "version": "0.10.3",
2349 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
2350 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
2351 | "dependencies": {
2352 | "inherits": "2.0.1"
2353 | }
2354 | },
2355 | "node_modules/node-libs-browser/node_modules/buffer": {
2356 | "version": "4.9.2",
2357 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
2358 | "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
2359 | "dependencies": {
2360 | "base64-js": "^1.0.2",
2361 | "ieee754": "^1.1.4",
2362 | "isarray": "^1.0.0"
2363 | }
2364 | },
2365 | "node_modules/node-libs-browser/node_modules/domain-browser": {
2366 | "version": "1.2.0",
2367 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
2368 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
2369 | "engines": {
2370 | "node": ">=0.4",
2371 | "npm": ">=1.2"
2372 | }
2373 | },
2374 | "node_modules/node-libs-browser/node_modules/inherits": {
2375 | "version": "2.0.1",
2376 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
2377 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
2378 | },
2379 | "node_modules/node-libs-browser/node_modules/path-browserify": {
2380 | "version": "0.0.1",
2381 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
2382 | "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="
2383 | },
2384 | "node_modules/node-libs-browser/node_modules/punycode": {
2385 | "version": "1.4.1",
2386 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
2387 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
2388 | },
2389 | "node_modules/node-libs-browser/node_modules/readable-stream": {
2390 | "version": "2.3.7",
2391 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
2392 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
2393 | "dependencies": {
2394 | "core-util-is": "~1.0.0",
2395 | "inherits": "~2.0.3",
2396 | "isarray": "~1.0.0",
2397 | "process-nextick-args": "~2.0.0",
2398 | "safe-buffer": "~5.1.1",
2399 | "string_decoder": "~1.1.1",
2400 | "util-deprecate": "~1.0.1"
2401 | }
2402 | },
2403 | "node_modules/node-libs-browser/node_modules/readable-stream/node_modules/inherits": {
2404 | "version": "2.0.4",
2405 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2406 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
2407 | },
2408 | "node_modules/node-libs-browser/node_modules/readable-stream/node_modules/string_decoder": {
2409 | "version": "1.1.1",
2410 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2411 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2412 | "dependencies": {
2413 | "safe-buffer": "~5.1.0"
2414 | }
2415 | },
2416 | "node_modules/node-libs-browser/node_modules/safe-buffer": {
2417 | "version": "5.1.2",
2418 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2419 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
2420 | },
2421 | "node_modules/node-libs-browser/node_modules/stream-browserify": {
2422 | "version": "2.0.2",
2423 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
2424 | "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
2425 | "dependencies": {
2426 | "inherits": "~2.0.1",
2427 | "readable-stream": "^2.0.2"
2428 | }
2429 | },
2430 | "node_modules/node-libs-browser/node_modules/stream-http": {
2431 | "version": "2.8.3",
2432 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
2433 | "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
2434 | "dependencies": {
2435 | "builtin-status-codes": "^3.0.0",
2436 | "inherits": "^2.0.1",
2437 | "readable-stream": "^2.3.6",
2438 | "to-arraybuffer": "^1.0.0",
2439 | "xtend": "^4.0.0"
2440 | }
2441 | },
2442 | "node_modules/node-libs-browser/node_modules/tty-browserify": {
2443 | "version": "0.0.0",
2444 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
2445 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
2446 | },
2447 | "node_modules/node-libs-browser/node_modules/util": {
2448 | "version": "0.11.1",
2449 | "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
2450 | "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
2451 | "dependencies": {
2452 | "inherits": "2.0.3"
2453 | }
2454 | },
2455 | "node_modules/node-libs-browser/node_modules/util/node_modules/inherits": {
2456 | "version": "2.0.3",
2457 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2458 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
2459 | },
2460 | "node_modules/node-releases": {
2461 | "version": "1.1.77",
2462 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz",
2463 | "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ=="
2464 | },
2465 | "node_modules/normalize-path": {
2466 | "version": "3.0.0",
2467 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2468 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
2469 | "engines": {
2470 | "node": ">=0.10.0"
2471 | }
2472 | },
2473 | "node_modules/npm-run-path": {
2474 | "version": "4.0.1",
2475 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
2476 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
2477 | "dev": true,
2478 | "dependencies": {
2479 | "path-key": "^3.0.0"
2480 | },
2481 | "engines": {
2482 | "node": ">=8"
2483 | }
2484 | },
2485 | "node_modules/object-assign": {
2486 | "version": "4.1.1",
2487 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2488 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
2489 | "engines": {
2490 | "node": ">=0.10.0"
2491 | }
2492 | },
2493 | "node_modules/object-inspect": {
2494 | "version": "1.9.0",
2495 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
2496 | "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==",
2497 | "funding": {
2498 | "url": "https://github.com/sponsors/ljharb"
2499 | }
2500 | },
2501 | "node_modules/object-is": {
2502 | "version": "1.1.5",
2503 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
2504 | "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
2505 | "dependencies": {
2506 | "call-bind": "^1.0.2",
2507 | "define-properties": "^1.1.3"
2508 | },
2509 | "engines": {
2510 | "node": ">= 0.4"
2511 | },
2512 | "funding": {
2513 | "url": "https://github.com/sponsors/ljharb"
2514 | }
2515 | },
2516 | "node_modules/object-keys": {
2517 | "version": "1.1.1",
2518 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
2519 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
2520 | "engines": {
2521 | "node": ">= 0.4"
2522 | }
2523 | },
2524 | "node_modules/object.assign": {
2525 | "version": "4.1.2",
2526 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
2527 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
2528 | "dependencies": {
2529 | "call-bind": "^1.0.0",
2530 | "define-properties": "^1.1.3",
2531 | "has-symbols": "^1.0.1",
2532 | "object-keys": "^1.1.1"
2533 | },
2534 | "engines": {
2535 | "node": ">= 0.4"
2536 | },
2537 | "funding": {
2538 | "url": "https://github.com/sponsors/ljharb"
2539 | }
2540 | },
2541 | "node_modules/once": {
2542 | "version": "1.4.0",
2543 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2544 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2545 | "dev": true,
2546 | "dependencies": {
2547 | "wrappy": "1"
2548 | }
2549 | },
2550 | "node_modules/onetime": {
2551 | "version": "5.1.2",
2552 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
2553 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
2554 | "dev": true,
2555 | "dependencies": {
2556 | "mimic-fn": "^2.1.0"
2557 | },
2558 | "engines": {
2559 | "node": ">=6"
2560 | },
2561 | "funding": {
2562 | "url": "https://github.com/sponsors/sindresorhus"
2563 | }
2564 | },
2565 | "node_modules/os-browserify": {
2566 | "version": "0.3.0",
2567 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
2568 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
2569 | },
2570 | "node_modules/p-limit": {
2571 | "version": "3.1.0",
2572 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2573 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2574 | "dependencies": {
2575 | "yocto-queue": "^0.1.0"
2576 | },
2577 | "engines": {
2578 | "node": ">=10"
2579 | },
2580 | "funding": {
2581 | "url": "https://github.com/sponsors/sindresorhus"
2582 | }
2583 | },
2584 | "node_modules/p-locate": {
2585 | "version": "4.1.0",
2586 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
2587 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
2588 | "dependencies": {
2589 | "p-limit": "^2.2.0"
2590 | },
2591 | "engines": {
2592 | "node": ">=8"
2593 | }
2594 | },
2595 | "node_modules/p-locate/node_modules/p-limit": {
2596 | "version": "2.3.0",
2597 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
2598 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
2599 | "dependencies": {
2600 | "p-try": "^2.0.0"
2601 | },
2602 | "engines": {
2603 | "node": ">=6"
2604 | },
2605 | "funding": {
2606 | "url": "https://github.com/sponsors/sindresorhus"
2607 | }
2608 | },
2609 | "node_modules/p-try": {
2610 | "version": "2.2.0",
2611 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
2612 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
2613 | "engines": {
2614 | "node": ">=6"
2615 | }
2616 | },
2617 | "node_modules/pako": {
2618 | "version": "1.0.11",
2619 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
2620 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
2621 | },
2622 | "node_modules/parse-asn1": {
2623 | "version": "5.1.6",
2624 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
2625 | "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
2626 | "dependencies": {
2627 | "asn1.js": "^5.2.0",
2628 | "browserify-aes": "^1.0.0",
2629 | "evp_bytestokey": "^1.0.0",
2630 | "pbkdf2": "^3.0.3",
2631 | "safe-buffer": "^5.1.1"
2632 | }
2633 | },
2634 | "node_modules/path-browserify": {
2635 | "version": "1.0.1",
2636 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
2637 | "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
2638 | },
2639 | "node_modules/path-exists": {
2640 | "version": "4.0.0",
2641 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
2642 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
2643 | "engines": {
2644 | "node": ">=8"
2645 | }
2646 | },
2647 | "node_modules/path-key": {
2648 | "version": "3.1.1",
2649 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2650 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2651 | "dev": true,
2652 | "engines": {
2653 | "node": ">=8"
2654 | }
2655 | },
2656 | "node_modules/pbkdf2": {
2657 | "version": "3.1.1",
2658 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
2659 | "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==",
2660 | "dependencies": {
2661 | "create-hash": "^1.1.2",
2662 | "create-hmac": "^1.1.4",
2663 | "ripemd160": "^2.0.1",
2664 | "safe-buffer": "^5.0.1",
2665 | "sha.js": "^2.4.8"
2666 | },
2667 | "engines": {
2668 | "node": ">=0.12"
2669 | }
2670 | },
2671 | "node_modules/picomatch": {
2672 | "version": "2.2.2",
2673 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
2674 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
2675 | "engines": {
2676 | "node": ">=8.6"
2677 | },
2678 | "funding": {
2679 | "url": "https://github.com/sponsors/jonschlinkert"
2680 | }
2681 | },
2682 | "node_modules/pkg-dir": {
2683 | "version": "4.2.0",
2684 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
2685 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
2686 | "dependencies": {
2687 | "find-up": "^4.0.0"
2688 | },
2689 | "engines": {
2690 | "node": ">=8"
2691 | }
2692 | },
2693 | "node_modules/platform": {
2694 | "version": "1.3.6",
2695 | "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz",
2696 | "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg=="
2697 | },
2698 | "node_modules/pnp-webpack-plugin": {
2699 | "version": "1.6.4",
2700 | "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
2701 | "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==",
2702 | "dependencies": {
2703 | "ts-pnp": "^1.1.6"
2704 | },
2705 | "engines": {
2706 | "node": ">=6"
2707 | }
2708 | },
2709 | "node_modules/popper.js": {
2710 | "version": "1.16.1-lts",
2711 | "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz",
2712 | "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA=="
2713 | },
2714 | "node_modules/postcss": {
2715 | "version": "8.2.13",
2716 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz",
2717 | "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==",
2718 | "dependencies": {
2719 | "colorette": "^1.2.2",
2720 | "nanoid": "^3.1.22",
2721 | "source-map": "^0.6.1"
2722 | },
2723 | "engines": {
2724 | "node": "^10 || ^12 || >=14"
2725 | },
2726 | "funding": {
2727 | "type": "opencollective",
2728 | "url": "https://opencollective.com/postcss/"
2729 | }
2730 | },
2731 | "node_modules/postcss/node_modules/source-map": {
2732 | "version": "0.6.1",
2733 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2734 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2735 | "engines": {
2736 | "node": ">=0.10.0"
2737 | }
2738 | },
2739 | "node_modules/prettier": {
2740 | "version": "2.2.1",
2741 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
2742 | "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==",
2743 | "dev": true,
2744 | "bin": {
2745 | "prettier": "bin-prettier.js"
2746 | },
2747 | "engines": {
2748 | "node": ">=10.13.0"
2749 | }
2750 | },
2751 | "node_modules/pretty-quick": {
2752 | "version": "3.1.0",
2753 | "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.0.tgz",
2754 | "integrity": "sha512-DtxIxksaUWCgPFN7E1ZZk4+Aav3CCuRdhrDSFZENb404sYMtuo9Zka823F+Mgeyt8Zt3bUiCjFzzWYE9LYqkmQ==",
2755 | "dev": true,
2756 | "dependencies": {
2757 | "chalk": "^3.0.0",
2758 | "execa": "^4.0.0",
2759 | "find-up": "^4.1.0",
2760 | "ignore": "^5.1.4",
2761 | "mri": "^1.1.5",
2762 | "multimatch": "^4.0.0"
2763 | },
2764 | "bin": {
2765 | "pretty-quick": "bin/pretty-quick.js"
2766 | },
2767 | "engines": {
2768 | "node": ">=10.13"
2769 | },
2770 | "peerDependencies": {
2771 | "prettier": ">=2.0.0"
2772 | }
2773 | },
2774 | "node_modules/pretty-quick/node_modules/ansi-styles": {
2775 | "version": "4.3.0",
2776 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2777 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2778 | "dev": true,
2779 | "dependencies": {
2780 | "color-convert": "^2.0.1"
2781 | },
2782 | "engines": {
2783 | "node": ">=8"
2784 | },
2785 | "funding": {
2786 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2787 | }
2788 | },
2789 | "node_modules/pretty-quick/node_modules/chalk": {
2790 | "version": "3.0.0",
2791 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
2792 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
2793 | "dev": true,
2794 | "dependencies": {
2795 | "ansi-styles": "^4.1.0",
2796 | "supports-color": "^7.1.0"
2797 | },
2798 | "engines": {
2799 | "node": ">=8"
2800 | }
2801 | },
2802 | "node_modules/pretty-quick/node_modules/color-convert": {
2803 | "version": "2.0.1",
2804 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2805 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2806 | "dev": true,
2807 | "dependencies": {
2808 | "color-name": "~1.1.4"
2809 | },
2810 | "engines": {
2811 | "node": ">=7.0.0"
2812 | }
2813 | },
2814 | "node_modules/pretty-quick/node_modules/color-name": {
2815 | "version": "1.1.4",
2816 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2817 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2818 | "dev": true
2819 | },
2820 | "node_modules/pretty-quick/node_modules/has-flag": {
2821 | "version": "4.0.0",
2822 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2823 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2824 | "dev": true,
2825 | "engines": {
2826 | "node": ">=8"
2827 | }
2828 | },
2829 | "node_modules/pretty-quick/node_modules/supports-color": {
2830 | "version": "7.2.0",
2831 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2832 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2833 | "dev": true,
2834 | "dependencies": {
2835 | "has-flag": "^4.0.0"
2836 | },
2837 | "engines": {
2838 | "node": ">=8"
2839 | }
2840 | },
2841 | "node_modules/process": {
2842 | "version": "0.11.10",
2843 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
2844 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
2845 | "engines": {
2846 | "node": ">= 0.6.0"
2847 | }
2848 | },
2849 | "node_modules/process-nextick-args": {
2850 | "version": "2.0.1",
2851 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
2852 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
2853 | },
2854 | "node_modules/prop-types": {
2855 | "version": "15.7.2",
2856 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
2857 | "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
2858 | "dependencies": {
2859 | "loose-envify": "^1.4.0",
2860 | "object-assign": "^4.1.1",
2861 | "react-is": "^16.8.1"
2862 | }
2863 | },
2864 | "node_modules/public-encrypt": {
2865 | "version": "4.0.3",
2866 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
2867 | "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
2868 | "dependencies": {
2869 | "bn.js": "^4.1.0",
2870 | "browserify-rsa": "^4.0.0",
2871 | "create-hash": "^1.1.0",
2872 | "parse-asn1": "^5.0.0",
2873 | "randombytes": "^2.0.1",
2874 | "safe-buffer": "^5.1.2"
2875 | }
2876 | },
2877 | "node_modules/public-encrypt/node_modules/bn.js": {
2878 | "version": "4.12.0",
2879 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
2880 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
2881 | },
2882 | "node_modules/pump": {
2883 | "version": "3.0.0",
2884 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
2885 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
2886 | "dev": true,
2887 | "dependencies": {
2888 | "end-of-stream": "^1.1.0",
2889 | "once": "^1.3.1"
2890 | }
2891 | },
2892 | "node_modules/punycode": {
2893 | "version": "2.3.0",
2894 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
2895 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
2896 | "engines": {
2897 | "node": ">=6"
2898 | }
2899 | },
2900 | "node_modules/querystring": {
2901 | "version": "0.2.1",
2902 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz",
2903 | "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==",
2904 | "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
2905 | "engines": {
2906 | "node": ">=0.4.x"
2907 | }
2908 | },
2909 | "node_modules/querystring-es3": {
2910 | "version": "0.2.1",
2911 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
2912 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
2913 | "engines": {
2914 | "node": ">=0.4.x"
2915 | }
2916 | },
2917 | "node_modules/randombytes": {
2918 | "version": "2.1.0",
2919 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
2920 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
2921 | "dependencies": {
2922 | "safe-buffer": "^5.1.0"
2923 | }
2924 | },
2925 | "node_modules/randomfill": {
2926 | "version": "1.0.4",
2927 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
2928 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
2929 | "dependencies": {
2930 | "randombytes": "^2.0.5",
2931 | "safe-buffer": "^5.1.0"
2932 | }
2933 | },
2934 | "node_modules/raw-body": {
2935 | "version": "2.4.1",
2936 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
2937 | "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
2938 | "dependencies": {
2939 | "bytes": "3.1.0",
2940 | "http-errors": "1.7.3",
2941 | "iconv-lite": "0.4.24",
2942 | "unpipe": "1.0.0"
2943 | },
2944 | "engines": {
2945 | "node": ">= 0.8"
2946 | }
2947 | },
2948 | "node_modules/raw-body/node_modules/iconv-lite": {
2949 | "version": "0.4.24",
2950 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
2951 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
2952 | "dependencies": {
2953 | "safer-buffer": ">= 2.1.2 < 3"
2954 | },
2955 | "engines": {
2956 | "node": ">=0.10.0"
2957 | }
2958 | },
2959 | "node_modules/react": {
2960 | "version": "17.0.1",
2961 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz",
2962 | "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==",
2963 | "dependencies": {
2964 | "loose-envify": "^1.1.0",
2965 | "object-assign": "^4.1.1"
2966 | },
2967 | "engines": {
2968 | "node": ">=0.10.0"
2969 | }
2970 | },
2971 | "node_modules/react-dom": {
2972 | "version": "17.0.1",
2973 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz",
2974 | "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==",
2975 | "dependencies": {
2976 | "loose-envify": "^1.1.0",
2977 | "object-assign": "^4.1.1",
2978 | "scheduler": "^0.20.1"
2979 | },
2980 | "peerDependencies": {
2981 | "react": "17.0.1"
2982 | }
2983 | },
2984 | "node_modules/react-event-listener": {
2985 | "version": "0.6.6",
2986 | "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.6.tgz",
2987 | "integrity": "sha512-+hCNqfy7o9wvO6UgjqFmBzARJS7qrNoda0VqzvOuioEpoEXKutiKuv92dSz6kP7rYLmyHPyYNLesi5t/aH1gfw==",
2988 | "dependencies": {
2989 | "@babel/runtime": "^7.2.0",
2990 | "prop-types": "^15.6.0",
2991 | "warning": "^4.0.1"
2992 | },
2993 | "peerDependencies": {
2994 | "react": "^16.3.0"
2995 | }
2996 | },
2997 | "node_modules/react-is": {
2998 | "version": "16.13.1",
2999 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
3000 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
3001 | },
3002 | "node_modules/react-refresh": {
3003 | "version": "0.8.3",
3004 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
3005 | "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==",
3006 | "engines": {
3007 | "node": ">=0.10.0"
3008 | }
3009 | },
3010 | "node_modules/react-swipeable-views": {
3011 | "version": "0.13.9",
3012 | "resolved": "https://registry.npmjs.org/react-swipeable-views/-/react-swipeable-views-0.13.9.tgz",
3013 | "integrity": "sha512-WXC2FKYvZ9QdJ31v9LjEJEl1bA7E4AcaloTkbW0uU0dYf5uvv4aOpiyxubvOkVl1a5L2UAHmKSif4TmJ9usrSg==",
3014 | "dependencies": {
3015 | "@babel/runtime": "7.0.0",
3016 | "prop-types": "^15.5.4",
3017 | "react-swipeable-views-core": "^0.13.7",
3018 | "react-swipeable-views-utils": "^0.13.9",
3019 | "warning": "^4.0.1"
3020 | },
3021 | "engines": {
3022 | "node": ">=6.0.0"
3023 | },
3024 | "peerDependencies": {
3025 | "react": "^15.3.0 || ^16.0.0"
3026 | }
3027 | },
3028 | "node_modules/react-swipeable-views-core": {
3029 | "version": "0.13.7",
3030 | "resolved": "https://registry.npmjs.org/react-swipeable-views-core/-/react-swipeable-views-core-0.13.7.tgz",
3031 | "integrity": "sha512-ekn9oDYfBt0oqJSGGwLEhKvn+QaqMGTy//9dURTLf+vp7W5j6GvmKryYdnwJCDITaPFI2hujXV4CH9krhvaE5w==",
3032 | "dependencies": {
3033 | "@babel/runtime": "7.0.0",
3034 | "warning": "^4.0.1"
3035 | },
3036 | "engines": {
3037 | "node": ">=6.0.0"
3038 | }
3039 | },
3040 | "node_modules/react-swipeable-views-core/node_modules/@babel/runtime": {
3041 | "version": "7.0.0",
3042 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz",
3043 | "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==",
3044 | "dependencies": {
3045 | "regenerator-runtime": "^0.12.0"
3046 | }
3047 | },
3048 | "node_modules/react-swipeable-views-core/node_modules/regenerator-runtime": {
3049 | "version": "0.12.1",
3050 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
3051 | "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg=="
3052 | },
3053 | "node_modules/react-swipeable-views-utils": {
3054 | "version": "0.13.9",
3055 | "resolved": "https://registry.npmjs.org/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.9.tgz",
3056 | "integrity": "sha512-QLGxRKrbJCbWz94vkWLzb1Daaa2Y/TZKmsNKQ6WSNrS+chrlfZ3z9tqZ7YUJlW6pRWp3QZdLSY3UE3cN0TXXmw==",
3057 | "dependencies": {
3058 | "@babel/runtime": "7.0.0",
3059 | "keycode": "^2.1.7",
3060 | "prop-types": "^15.6.0",
3061 | "react-event-listener": "^0.6.0",
3062 | "react-swipeable-views-core": "^0.13.7",
3063 | "shallow-equal": "^1.2.1"
3064 | },
3065 | "engines": {
3066 | "node": ">=6.0.0"
3067 | }
3068 | },
3069 | "node_modules/react-swipeable-views-utils/node_modules/@babel/runtime": {
3070 | "version": "7.0.0",
3071 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz",
3072 | "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==",
3073 | "dependencies": {
3074 | "regenerator-runtime": "^0.12.0"
3075 | }
3076 | },
3077 | "node_modules/react-swipeable-views-utils/node_modules/regenerator-runtime": {
3078 | "version": "0.12.1",
3079 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
3080 | "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg=="
3081 | },
3082 | "node_modules/react-swipeable-views/node_modules/@babel/runtime": {
3083 | "version": "7.0.0",
3084 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz",
3085 | "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==",
3086 | "dependencies": {
3087 | "regenerator-runtime": "^0.12.0"
3088 | }
3089 | },
3090 | "node_modules/react-swipeable-views/node_modules/regenerator-runtime": {
3091 | "version": "0.12.1",
3092 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
3093 | "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg=="
3094 | },
3095 | "node_modules/react-transition-group": {
3096 | "version": "4.4.1",
3097 | "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz",
3098 | "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==",
3099 | "dependencies": {
3100 | "@babel/runtime": "^7.5.5",
3101 | "dom-helpers": "^5.0.1",
3102 | "loose-envify": "^1.4.0",
3103 | "prop-types": "^15.6.2"
3104 | },
3105 | "peerDependencies": {
3106 | "react": ">=16.6.0",
3107 | "react-dom": ">=16.6.0"
3108 | }
3109 | },
3110 | "node_modules/react-use-clipboard": {
3111 | "version": "1.0.7",
3112 | "resolved": "https://registry.npmjs.org/react-use-clipboard/-/react-use-clipboard-1.0.7.tgz",
3113 | "integrity": "sha512-blIprqARyITp0uVw/2Rh87mcujqXdH6vZ5NrcuXEhI5EmjBGxcGnwt/79+vdN7rwM6OliGj481lOj6ZCcsiYEQ==",
3114 | "dependencies": {
3115 | "copy-to-clipboard": "^3.3.1"
3116 | },
3117 | "peerDependencies": {
3118 | "react": "^16.8.0 || ^17",
3119 | "react-dom": "^16.8.0 || ^17"
3120 | }
3121 | },
3122 | "node_modules/readable-stream": {
3123 | "version": "3.6.0",
3124 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
3125 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
3126 | "dependencies": {
3127 | "inherits": "^2.0.3",
3128 | "string_decoder": "^1.1.1",
3129 | "util-deprecate": "^1.0.1"
3130 | },
3131 | "engines": {
3132 | "node": ">= 6"
3133 | }
3134 | },
3135 | "node_modules/readdirp": {
3136 | "version": "3.5.0",
3137 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
3138 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
3139 | "dependencies": {
3140 | "picomatch": "^2.2.1"
3141 | },
3142 | "engines": {
3143 | "node": ">=8.10.0"
3144 | }
3145 | },
3146 | "node_modules/regenerator-runtime": {
3147 | "version": "0.13.7",
3148 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
3149 | "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
3150 | },
3151 | "node_modules/ripemd160": {
3152 | "version": "2.0.2",
3153 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
3154 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
3155 | "dependencies": {
3156 | "hash-base": "^3.0.0",
3157 | "inherits": "^2.0.1"
3158 | }
3159 | },
3160 | "node_modules/safe-buffer": {
3161 | "version": "5.2.1",
3162 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
3163 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
3164 | "funding": [
3165 | {
3166 | "type": "github",
3167 | "url": "https://github.com/sponsors/feross"
3168 | },
3169 | {
3170 | "type": "patreon",
3171 | "url": "https://www.patreon.com/feross"
3172 | },
3173 | {
3174 | "type": "consulting",
3175 | "url": "https://feross.org/support"
3176 | }
3177 | ]
3178 | },
3179 | "node_modules/safer-buffer": {
3180 | "version": "2.1.2",
3181 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3182 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
3183 | },
3184 | "node_modules/scheduler": {
3185 | "version": "0.20.1",
3186 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz",
3187 | "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==",
3188 | "dependencies": {
3189 | "loose-envify": "^1.1.0",
3190 | "object-assign": "^4.1.1"
3191 | }
3192 | },
3193 | "node_modules/semver": {
3194 | "version": "6.3.1",
3195 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
3196 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
3197 | "bin": {
3198 | "semver": "bin/semver.js"
3199 | }
3200 | },
3201 | "node_modules/setimmediate": {
3202 | "version": "1.0.5",
3203 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
3204 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
3205 | },
3206 | "node_modules/setprototypeof": {
3207 | "version": "1.1.1",
3208 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
3209 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
3210 | },
3211 | "node_modules/sha.js": {
3212 | "version": "2.4.11",
3213 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
3214 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
3215 | "dependencies": {
3216 | "inherits": "^2.0.1",
3217 | "safe-buffer": "^5.0.1"
3218 | },
3219 | "bin": {
3220 | "sha.js": "bin.js"
3221 | }
3222 | },
3223 | "node_modules/shallow-equal": {
3224 | "version": "1.2.1",
3225 | "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
3226 | "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
3227 | },
3228 | "node_modules/shebang-command": {
3229 | "version": "2.0.0",
3230 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3231 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3232 | "dev": true,
3233 | "dependencies": {
3234 | "shebang-regex": "^3.0.0"
3235 | },
3236 | "engines": {
3237 | "node": ">=8"
3238 | }
3239 | },
3240 | "node_modules/shebang-regex": {
3241 | "version": "3.0.0",
3242 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3243 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3244 | "dev": true,
3245 | "engines": {
3246 | "node": ">=8"
3247 | }
3248 | },
3249 | "node_modules/shell-quote": {
3250 | "version": "1.7.2",
3251 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
3252 | "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg=="
3253 | },
3254 | "node_modules/signal-exit": {
3255 | "version": "3.0.3",
3256 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
3257 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
3258 | "dev": true
3259 | },
3260 | "node_modules/source-map": {
3261 | "version": "0.8.0-beta.0",
3262 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
3263 | "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
3264 | "dependencies": {
3265 | "whatwg-url": "^7.0.0"
3266 | },
3267 | "engines": {
3268 | "node": ">= 8"
3269 | }
3270 | },
3271 | "node_modules/stacktrace-parser": {
3272 | "version": "0.1.10",
3273 | "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
3274 | "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
3275 | "dependencies": {
3276 | "type-fest": "^0.7.1"
3277 | },
3278 | "engines": {
3279 | "node": ">=6"
3280 | }
3281 | },
3282 | "node_modules/statuses": {
3283 | "version": "1.5.0",
3284 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
3285 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
3286 | "engines": {
3287 | "node": ">= 0.6"
3288 | }
3289 | },
3290 | "node_modules/stream-browserify": {
3291 | "version": "3.0.0",
3292 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
3293 | "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
3294 | "dependencies": {
3295 | "inherits": "~2.0.4",
3296 | "readable-stream": "^3.5.0"
3297 | }
3298 | },
3299 | "node_modules/stream-http": {
3300 | "version": "3.1.1",
3301 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz",
3302 | "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==",
3303 | "dependencies": {
3304 | "builtin-status-codes": "^3.0.0",
3305 | "inherits": "^2.0.4",
3306 | "readable-stream": "^3.6.0",
3307 | "xtend": "^4.0.2"
3308 | }
3309 | },
3310 | "node_modules/stream-parser": {
3311 | "version": "0.3.1",
3312 | "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
3313 | "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=",
3314 | "dependencies": {
3315 | "debug": "2"
3316 | }
3317 | },
3318 | "node_modules/string_decoder": {
3319 | "version": "1.3.0",
3320 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
3321 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
3322 | "dependencies": {
3323 | "safe-buffer": "~5.2.0"
3324 | }
3325 | },
3326 | "node_modules/string-hash": {
3327 | "version": "1.1.3",
3328 | "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
3329 | "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs="
3330 | },
3331 | "node_modules/string.prototype.trimend": {
3332 | "version": "1.0.4",
3333 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
3334 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
3335 | "dependencies": {
3336 | "call-bind": "^1.0.2",
3337 | "define-properties": "^1.1.3"
3338 | },
3339 | "funding": {
3340 | "url": "https://github.com/sponsors/ljharb"
3341 | }
3342 | },
3343 | "node_modules/string.prototype.trimstart": {
3344 | "version": "1.0.4",
3345 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
3346 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
3347 | "dependencies": {
3348 | "call-bind": "^1.0.2",
3349 | "define-properties": "^1.1.3"
3350 | },
3351 | "funding": {
3352 | "url": "https://github.com/sponsors/ljharb"
3353 | }
3354 | },
3355 | "node_modules/strip-ansi": {
3356 | "version": "6.0.0",
3357 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
3358 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
3359 | "dependencies": {
3360 | "ansi-regex": "^5.0.0"
3361 | },
3362 | "engines": {
3363 | "node": ">=8"
3364 | }
3365 | },
3366 | "node_modules/strip-final-newline": {
3367 | "version": "2.0.0",
3368 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
3369 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
3370 | "dev": true,
3371 | "engines": {
3372 | "node": ">=6"
3373 | }
3374 | },
3375 | "node_modules/styled-jsx": {
3376 | "version": "3.3.2",
3377 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-3.3.2.tgz",
3378 | "integrity": "sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g==",
3379 | "dependencies": {
3380 | "@babel/types": "7.8.3",
3381 | "babel-plugin-syntax-jsx": "6.18.0",
3382 | "convert-source-map": "1.7.0",
3383 | "loader-utils": "1.2.3",
3384 | "source-map": "0.7.3",
3385 | "string-hash": "1.1.3",
3386 | "stylis": "3.5.4",
3387 | "stylis-rule-sheet": "0.0.10"
3388 | },
3389 | "peerDependencies": {
3390 | "react": "15.x.x || 16.x.x || 17.x.x"
3391 | }
3392 | },
3393 | "node_modules/styled-jsx/node_modules/source-map": {
3394 | "version": "0.7.3",
3395 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
3396 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
3397 | "engines": {
3398 | "node": ">= 8"
3399 | }
3400 | },
3401 | "node_modules/stylis": {
3402 | "version": "3.5.4",
3403 | "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz",
3404 | "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q=="
3405 | },
3406 | "node_modules/stylis-rule-sheet": {
3407 | "version": "0.0.10",
3408 | "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz",
3409 | "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==",
3410 | "peerDependencies": {
3411 | "stylis": "^3.5.0"
3412 | }
3413 | },
3414 | "node_modules/supports-color": {
3415 | "version": "5.5.0",
3416 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3417 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3418 | "dependencies": {
3419 | "has-flag": "^3.0.0"
3420 | },
3421 | "engines": {
3422 | "node": ">=4"
3423 | }
3424 | },
3425 | "node_modules/symbol-observable": {
3426 | "version": "1.2.0",
3427 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
3428 | "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
3429 | "engines": {
3430 | "node": ">=0.10.0"
3431 | }
3432 | },
3433 | "node_modules/timers-browserify": {
3434 | "version": "2.0.12",
3435 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
3436 | "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
3437 | "dependencies": {
3438 | "setimmediate": "^1.0.4"
3439 | },
3440 | "engines": {
3441 | "node": ">=0.6.0"
3442 | }
3443 | },
3444 | "node_modules/tiny-warning": {
3445 | "version": "1.0.3",
3446 | "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
3447 | "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
3448 | },
3449 | "node_modules/to-arraybuffer": {
3450 | "version": "1.0.1",
3451 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
3452 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
3453 | },
3454 | "node_modules/to-fast-properties": {
3455 | "version": "2.0.0",
3456 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
3457 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
3458 | "engines": {
3459 | "node": ">=4"
3460 | }
3461 | },
3462 | "node_modules/to-regex-range": {
3463 | "version": "5.0.1",
3464 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3465 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3466 | "dependencies": {
3467 | "is-number": "^7.0.0"
3468 | },
3469 | "engines": {
3470 | "node": ">=8.0"
3471 | }
3472 | },
3473 | "node_modules/toggle-selection": {
3474 | "version": "1.0.6",
3475 | "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
3476 | "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI="
3477 | },
3478 | "node_modules/toidentifier": {
3479 | "version": "1.0.0",
3480 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
3481 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
3482 | "engines": {
3483 | "node": ">=0.6"
3484 | }
3485 | },
3486 | "node_modules/tr46": {
3487 | "version": "1.0.1",
3488 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
3489 | "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
3490 | "dependencies": {
3491 | "punycode": "^2.1.0"
3492 | }
3493 | },
3494 | "node_modules/ts-pnp": {
3495 | "version": "1.2.0",
3496 | "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
3497 | "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
3498 | "engines": {
3499 | "node": ">=6"
3500 | },
3501 | "peerDependenciesMeta": {
3502 | "typescript": {
3503 | "optional": true
3504 | }
3505 | }
3506 | },
3507 | "node_modules/tty-browserify": {
3508 | "version": "0.0.1",
3509 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
3510 | "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw=="
3511 | },
3512 | "node_modules/type-fest": {
3513 | "version": "0.7.1",
3514 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
3515 | "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
3516 | "engines": {
3517 | "node": ">=8"
3518 | }
3519 | },
3520 | "node_modules/typescript": {
3521 | "version": "4.2.3",
3522 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
3523 | "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
3524 | "dev": true,
3525 | "bin": {
3526 | "tsc": "bin/tsc",
3527 | "tsserver": "bin/tsserver"
3528 | },
3529 | "engines": {
3530 | "node": ">=4.2.0"
3531 | }
3532 | },
3533 | "node_modules/unbox-primitive": {
3534 | "version": "1.0.1",
3535 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
3536 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
3537 | "dependencies": {
3538 | "function-bind": "^1.1.1",
3539 | "has-bigints": "^1.0.1",
3540 | "has-symbols": "^1.0.2",
3541 | "which-boxed-primitive": "^1.0.2"
3542 | },
3543 | "funding": {
3544 | "url": "https://github.com/sponsors/ljharb"
3545 | }
3546 | },
3547 | "node_modules/unpipe": {
3548 | "version": "1.0.0",
3549 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
3550 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
3551 | "engines": {
3552 | "node": ">= 0.8"
3553 | }
3554 | },
3555 | "node_modules/url": {
3556 | "version": "0.11.0",
3557 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
3558 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
3559 | "dependencies": {
3560 | "punycode": "1.3.2",
3561 | "querystring": "0.2.0"
3562 | }
3563 | },
3564 | "node_modules/url/node_modules/punycode": {
3565 | "version": "1.3.2",
3566 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
3567 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
3568 | },
3569 | "node_modules/url/node_modules/querystring": {
3570 | "version": "0.2.0",
3571 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
3572 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
3573 | "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
3574 | "engines": {
3575 | "node": ">=0.4.x"
3576 | }
3577 | },
3578 | "node_modules/use-subscription": {
3579 | "version": "1.5.1",
3580 | "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz",
3581 | "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==",
3582 | "dependencies": {
3583 | "object-assign": "^4.1.1"
3584 | },
3585 | "peerDependencies": {
3586 | "react": "^16.8.0 || ^17.0.0"
3587 | }
3588 | },
3589 | "node_modules/util": {
3590 | "version": "0.12.3",
3591 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz",
3592 | "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==",
3593 | "dependencies": {
3594 | "inherits": "^2.0.3",
3595 | "is-arguments": "^1.0.4",
3596 | "is-generator-function": "^1.0.7",
3597 | "is-typed-array": "^1.1.3",
3598 | "safe-buffer": "^5.1.2",
3599 | "which-typed-array": "^1.1.2"
3600 | }
3601 | },
3602 | "node_modules/util-deprecate": {
3603 | "version": "1.0.2",
3604 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3605 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
3606 | },
3607 | "node_modules/vm-browserify": {
3608 | "version": "1.1.2",
3609 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
3610 | "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
3611 | },
3612 | "node_modules/warning": {
3613 | "version": "4.0.3",
3614 | "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
3615 | "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
3616 | "dependencies": {
3617 | "loose-envify": "^1.0.0"
3618 | }
3619 | },
3620 | "node_modules/watchpack": {
3621 | "version": "2.1.1",
3622 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz",
3623 | "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==",
3624 | "dependencies": {
3625 | "glob-to-regexp": "^0.4.1",
3626 | "graceful-fs": "^4.1.2"
3627 | },
3628 | "engines": {
3629 | "node": ">=10.13.0"
3630 | }
3631 | },
3632 | "node_modules/webidl-conversions": {
3633 | "version": "4.0.2",
3634 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
3635 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
3636 | },
3637 | "node_modules/whatwg-url": {
3638 | "version": "7.1.0",
3639 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
3640 | "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
3641 | "dependencies": {
3642 | "lodash.sortby": "^4.7.0",
3643 | "tr46": "^1.0.1",
3644 | "webidl-conversions": "^4.0.2"
3645 | }
3646 | },
3647 | "node_modules/which": {
3648 | "version": "2.0.2",
3649 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3650 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3651 | "dev": true,
3652 | "dependencies": {
3653 | "isexe": "^2.0.0"
3654 | },
3655 | "bin": {
3656 | "node-which": "bin/node-which"
3657 | },
3658 | "engines": {
3659 | "node": ">= 8"
3660 | }
3661 | },
3662 | "node_modules/which-boxed-primitive": {
3663 | "version": "1.0.2",
3664 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
3665 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
3666 | "dependencies": {
3667 | "is-bigint": "^1.0.1",
3668 | "is-boolean-object": "^1.1.0",
3669 | "is-number-object": "^1.0.4",
3670 | "is-string": "^1.0.5",
3671 | "is-symbol": "^1.0.3"
3672 | },
3673 | "funding": {
3674 | "url": "https://github.com/sponsors/ljharb"
3675 | }
3676 | },
3677 | "node_modules/which-typed-array": {
3678 | "version": "1.1.4",
3679 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz",
3680 | "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==",
3681 | "dependencies": {
3682 | "available-typed-arrays": "^1.0.2",
3683 | "call-bind": "^1.0.0",
3684 | "es-abstract": "^1.18.0-next.1",
3685 | "foreach": "^2.0.5",
3686 | "function-bind": "^1.1.1",
3687 | "has-symbols": "^1.0.1",
3688 | "is-typed-array": "^1.1.3"
3689 | },
3690 | "engines": {
3691 | "node": ">= 0.4"
3692 | },
3693 | "funding": {
3694 | "url": "https://github.com/sponsors/ljharb"
3695 | }
3696 | },
3697 | "node_modules/wrappy": {
3698 | "version": "1.0.2",
3699 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3700 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
3701 | "dev": true
3702 | },
3703 | "node_modules/xtend": {
3704 | "version": "4.0.2",
3705 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
3706 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
3707 | "engines": {
3708 | "node": ">=0.4"
3709 | }
3710 | },
3711 | "node_modules/yocto-queue": {
3712 | "version": "0.1.0",
3713 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
3714 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
3715 | "engines": {
3716 | "node": ">=10"
3717 | },
3718 | "funding": {
3719 | "url": "https://github.com/sponsors/sindresorhus"
3720 | }
3721 | }
3722 | }
3723 | }
3724 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wokwi-animator",
3 | "version": "0.1.0",
4 | "private": true,
5 | "license": "MIT",
6 | "scripts": {
7 | "dev": "next dev",
8 | "build": "next build",
9 | "start": "next start"
10 | },
11 | "dependencies": {
12 | "@material-ui/core": "^4.11.3",
13 | "@material-ui/icons": "^4.11.2",
14 | "@material-ui/lab": "^4.0.0-alpha.57",
15 | "@wokwi/bmp-ts": "^3.0.0",
16 | "@wokwi/elements": "^0.31.3",
17 | "lottie-web": "^5.7.7",
18 | "next": "^10.1.2",
19 | "react": "17.0.1",
20 | "react-dom": "17.0.1",
21 | "react-swipeable-views": "^0.13.9",
22 | "react-use-clipboard": "^1.0.7"
23 | },
24 | "devDependencies": {
25 | "@types/node": "^14.14.35",
26 | "@types/react": "^17.0.3",
27 | "@types/react-swipeable-views": "^0.13.0",
28 | "husky": "^5.1.3",
29 | "prettier": "^2.2.1",
30 | "pretty-quick": "^3.1.0",
31 | "typescript": "^4.2.3"
32 | },
33 | "husky": {
34 | "hooks": {
35 | "pre-commit": "pretty-quick --staged"
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import CssBaseline from '@material-ui/core/CssBaseline';
2 | import { ThemeProvider } from '@material-ui/core/styles';
3 | import { AppPropsType } from 'next/dist/next-server/lib/utils';
4 | import Head from 'next/head';
5 | import PropTypes from 'prop-types';
6 | import React, { useEffect } from 'react';
7 | import theme from '../src/theme';
8 |
9 | export default function MyApp({ Component, pageProps }: AppPropsType) {
10 | useEffect(() => {
11 | // Remove the server-side injected CSS.
12 | const jssStyles = document.querySelector('#jss-server-side');
13 | if (jssStyles) {
14 | jssStyles.parentElement!.removeChild(jssStyles);
15 | }
16 | }, []);
17 |
18 | return (
19 | <>
20 |
21 | My page
22 |
23 |
24 |
25 | {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
26 |
27 |
28 |
29 | >
30 | );
31 | }
32 |
33 | MyApp.propTypes = {
34 | Component: PropTypes.elementType.isRequired,
35 | pageProps: PropTypes.object.isRequired,
36 | };
37 |
--------------------------------------------------------------------------------
/pages/_document.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Document, { Html, Head, Main, NextScript } from 'next/document';
3 | import { ServerStyleSheets } from '@material-ui/core/styles';
4 | import theme from '../src/theme';
5 |
6 | export default class MyDocument extends Document {
7 | render() {
8 | return (
9 |
10 |
11 | {/* PWA primary color */}
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | );
24 | }
25 | }
26 |
27 | // `getInitialProps` belongs to `_document` (instead of `_app`),
28 | // it's compatible with server-side generation (SSG).
29 | MyDocument.getInitialProps = async (ctx) => {
30 | // Resolution order
31 | //
32 | // On the server:
33 | // 1. app.getInitialProps
34 | // 2. page.getInitialProps
35 | // 3. document.getInitialProps
36 | // 4. app.render
37 | // 5. page.render
38 | // 6. document.render
39 | //
40 | // On the server with error:
41 | // 1. document.getInitialProps
42 | // 2. app.render
43 | // 3. page.render
44 | // 4. document.render
45 | //
46 | // On the client
47 | // 1. app.getInitialProps
48 | // 2. page.getInitialProps
49 | // 3. app.render
50 | // 4. page.render
51 |
52 | // Render app and page and get the context of the page with collected side effects.
53 | const sheets = new ServerStyleSheets();
54 | const originalRenderPage = ctx.renderPage;
55 |
56 | ctx.renderPage = () =>
57 | originalRenderPage({
58 | enhanceApp: (App) => (props) => sheets.collect(),
59 | });
60 |
61 | const initialProps = await Document.getInitialProps(ctx);
62 |
63 | return {
64 | ...initialProps,
65 | // Styles fragment is rendered after the app and page rendering finish.
66 | styles: [...React.Children.toArray(initialProps.styles), sheets.getStyleElement()],
67 | };
68 | };
69 |
--------------------------------------------------------------------------------
/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import { Step, StepLabel, Stepper } from '@material-ui/core';
2 | import Head from 'next/head';
3 | import Box from '@material-ui/core/Box';
4 | import Container from '@material-ui/core/Container';
5 | import Typography from '@material-ui/core/Typography';
6 | import React, { useState } from 'react';
7 | import { Step1 } from '../components/step1';
8 | import { Step2 } from '../components/step2';
9 | import { IAnimationParams } from '../src/animation';
10 |
11 | export default function Index() {
12 | const [activeStep, setActiveStep] = useState(0);
13 | const [animation, setAnimation] = useState();
14 |
15 | const step2 = animation && activeStep === 1;
16 |
17 | return (
18 |
19 |
20 | Wokwi OLED Animation Maker for Arduino
21 |
22 |
23 |
24 | Wokwi Animator
25 |
26 |
27 | Create animations for Arduino
28 |
29 |
30 |
31 | setActiveStep(0)}>Choose Animation
32 |
33 |
34 | Get the Code
35 |
36 |
37 |
38 | {!step2 && (
39 | {
41 | setActiveStep(1);
42 | setAnimation(animation);
43 | }}
44 | />
45 | )}
46 | {step2 && animation && setActiveStep(0)} />}
47 |
48 |
49 | );
50 | }
51 |
--------------------------------------------------------------------------------
/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | printWidth: 100,
3 | singleQuote: true,
4 | tabWidth: 2,
5 | trailingComma: 'all',
6 | endOfLine: 'auto',
7 | };
8 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wokwi/wokwi-animator/f980f5d7f239e493aaf9cb47b94f571fd879b838/public/favicon.ico
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/animation-maker.ts:
--------------------------------------------------------------------------------
1 | import Lottie from 'lottie-web';
2 | import { asyncImage, createSVGUrl } from './image-utils';
3 | import bmp, { BitsPerPixel } from '@wokwi/bmp-ts';
4 |
5 | export interface IExportOptions {
6 | size?: number;
7 | background?: string;
8 | invert?: boolean;
9 | }
10 |
11 | export interface IExportedFrame {
12 | index: number;
13 | data: ImageData;
14 | framesPerSecond: number;
15 | }
16 | export async function* extractFrames(animationData: any, options: IExportOptions = {}) {
17 | const target = document.createElement('div');
18 | const size = options.size ?? 50;
19 | const anim = Lottie.loadAnimation({
20 | container: target,
21 | renderer: 'svg',
22 | loop: true,
23 | autoplay: true,
24 | animationData,
25 | });
26 |
27 | const framesPerSecond = anim.getDuration(true) / anim.getDuration(false);
28 | const svg = target.firstElementChild as SVGElement;
29 | for (let frame = 0; frame < anim.getDuration(true); frame++) {
30 | anim.goToAndStop(frame, true);
31 | svg.setAttribute('width', size.toString());
32 | svg.setAttribute('height', size.toString());
33 | svg.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
34 | const image = await asyncImage(createSVGUrl(svg.outerHTML || ''));
35 | const canvas = document.createElement('canvas');
36 | canvas.width = size;
37 | canvas.height = size;
38 | const context = canvas.getContext('2d');
39 | if (!context) {
40 | return;
41 | }
42 | if (options.background) {
43 | context.fillStyle = options.background;
44 | context.fillRect(0, 0, canvas.width, canvas.height);
45 | }
46 | if (options.invert) {
47 | context.filter = 'invert(1)';
48 | }
49 | context.drawImage(image, 0, 0);
50 | yield {
51 | index: frame,
52 | framesPerSecond,
53 | data: context?.getImageData(0, 0, size, size),
54 | } as IExportedFrame;
55 | }
56 | }
57 |
58 | export function exportOLED(imageData: ImageData) {
59 | const lineBytes = Math.floor((imageData.width + 7) / 8);
60 | const result = new Uint8Array(lineBytes * imageData.height);
61 | for (let y = 0; y < imageData.height; y++) {
62 | for (let x = 0; x < imageData.width; x++) {
63 | if (
64 | imageData.data[(y * imageData.height + x) * 4 + 3] > 0x7f &&
65 | imageData.data[(y * imageData.height + x) * 4 + 2] > 0x80
66 | ) {
67 | result[y * lineBytes + (x >> 3)] |= 1 << (7 - (x & 0x7));
68 | }
69 | }
70 | }
71 | return result;
72 | }
73 |
74 | export function exportTiles(imageData: ImageData) {
75 | const lineBytes = imageData.width;
76 | const result = new Uint8Array(Math.floor((lineBytes * imageData.height) / 8));
77 | for (let y = 0; y < imageData.height; y++) {
78 | for (let x = 0; x < imageData.width; x++) {
79 | if (imageData.data[(y * imageData.height + x) * 4 + 3] > 0x7f) {
80 | result[(y >> 3) * lineBytes + x] |= 1 << (y & 0x7);
81 | }
82 | }
83 | }
84 | return result;
85 | }
86 |
87 | export function exportBitmap(frame: IExportedFrame, bpp: BitsPerPixel = 24) {
88 | const imageData = frame.data;
89 | const bitmapData = new Uint8Array(4 * imageData.height * imageData.width);
90 | const inputView = new DataView(imageData.data.buffer);
91 | const outputView = new DataView(bitmapData.buffer);
92 | for (let i = 0; i < imageData.data.length; i += 4) {
93 | outputView.setUint32(i, inputView.getUint32(i, true));
94 | }
95 | const { data } = bmp.encode({
96 | data: bitmapData,
97 | bitPP: bpp,
98 | width: frame.data.width,
99 | height: frame.data.height,
100 | });
101 | return data;
102 | }
103 |
--------------------------------------------------------------------------------
/src/animation.ts:
--------------------------------------------------------------------------------
1 | export interface IAnimationParams {
2 | name: string;
3 | height: number;
4 | width: number;
5 | delay: number;
6 | frames: Uint8Array[];
7 | frameUrls: string[];
8 | }
9 |
--------------------------------------------------------------------------------
/src/download-file.ts:
--------------------------------------------------------------------------------
1 | function createUrl(content: string, contentType: string) {
2 | try {
3 | return URL.createObjectURL(new Blob([content], { type: contentType }));
4 | } catch (e) {
5 | return `data:${contentType};base64,` + btoa(content);
6 | }
7 | }
8 |
9 | export function downloadFile(
10 | filename: string,
11 | content: string,
12 | contentType: string = 'application/octet-stream',
13 | ) {
14 | if (window.navigator.msSaveOrOpenBlob) {
15 | // IE
16 | window.navigator.msSaveOrOpenBlob(new Blob([content], { type: contentType }), filename);
17 | } else {
18 | /* Other browsers */
19 | const link: HTMLAnchorElement = document.createElement('a');
20 | link.download = filename;
21 | link.href = createUrl(content, contentType);
22 | document.body.appendChild(link);
23 | link.click();
24 | document.body.removeChild(link);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/icons8.ts:
--------------------------------------------------------------------------------
1 | const iconNames: { [key: string]: string } = {
2 | 'search-cancel': 'Clear Search Results',
3 | 'video-record': 'Record Video',
4 | 'cloudy-weather': 'Cloudy',
5 | 'day-night-weather': 'Day Night',
6 | 'fog-weather': 'Fog',
7 | 'haze-weather': 'Haze',
8 | 'lightning-bolt-weather': 'Lightning Bolt',
9 | 'lightning-weather': 'Lightning',
10 | 'light-snowy-weather': 'Light Snowy',
11 | 'night-weather': 'Night',
12 | 'rain-cloud-weather': 'Rain Cloud',
13 | 'rain-cloud-weather-2': 'Rain Cloud 2',
14 | 'snow-storm-weather': 'Snow Storm',
15 | 'sunrise-weather': 'Sunrise',
16 | 'sunset-weather': 'Sunset',
17 | 'sun-weather': 'Sun',
18 | 'temperature-weather': 'Temperature',
19 | 'torrential-rain-weather': 'Torrential Rain',
20 | 'windy-cloud-weather': 'Windy Cloud',
21 | 'circles-menu-1': 'Dots Loading 1',
22 | 'circles-menu-2': 'Dots Loading 2',
23 | 'circles-menu-3': 'Dots Loading 3',
24 | 'circles-menu-4': 'Dots Loading 4',
25 | 'circles-menu-5': 'Dots Loading 5',
26 | 'circles-menu-6': 'Dots Loading 6',
27 | 'circle-square-1': 'Square 1',
28 | 'circle-square-2': 'Square 2',
29 | 'circle-square-triangle': 'Geometric Shapes',
30 | disappointed: 'Disappointed Face',
31 | embarrassed: 'Embarrassed Face',
32 | 'in-love': 'In Love Face',
33 | laughing: 'Laughing Face',
34 | neutral: 'Neutral Face',
35 | sleeping: 'Sleeping Face',
36 | 'facebook-like-morph': 'Facebook Like',
37 | 'skip-forwards': 'Skip Forward',
38 | confused: 'Confused Face',
39 | 'dribbble-circled-shake': 'Dribbble',
40 | 'live-video-on': 'Live Video',
41 | 'no-mobile-phones': 'No Mobile',
42 | 'vk-circled-shake': 'VK',
43 | 'cd-2': 'Compact Disk',
44 | receipt: 'Receipt Icon',
45 | 'phonelink-ring': 'Phone Ring',
46 | portrait_mode_scanning: 'Portrait Mode Scanning',
47 | previous_location: 'Previous Location',
48 | 'add-to-favorite': 'Add To Favorites',
49 | 'cat-meow': 'Cat',
50 | 'folder-with-files': 'Folder with File',
51 | 'home-2': 'House',
52 | 'kiss-panda': 'Panda Kiss',
53 | vomited: 'Vomiting',
54 | };
55 |
56 | export const iconCategories = [
57 | {
58 | name: 'UI',
59 | icons: [
60 | 'activity',
61 | 'add',
62 | 'add-cloud',
63 | 'add-folder',
64 | 'add-to-collection',
65 | 'add-to-favorites',
66 | 'address',
67 | 'adjust',
68 | 'airplane-mode-on',
69 | 'alarm-clock',
70 | 'alphabetical-sorting',
71 | 'analyze',
72 | 'android-l-battery',
73 | 'attention-cloud',
74 | 'bad-gateway',
75 | 'battery',
76 | 'battery-level',
77 | 'bell',
78 | 'block-mic',
79 | 'bookmark',
80 | 'bookmark-in-book',
81 | 'calculator',
82 | 'calendar',
83 | 'calendar-tear',
84 | 'caps',
85 | 'charged-battery',
86 | 'charging-battery',
87 | 'chat-message',
88 | 'check',
89 | 'check-all',
90 | 'check-circle',
91 | 'check-circled',
92 | 'checked-checkbox',
93 | 'checklist',
94 | 'checkmark-ok',
95 | 'clear-filter',
96 | 'clear-symbol',
97 | 'come-back-later',
98 | 'compass',
99 | 'computer-display',
100 | 'connect',
101 | 'create-order',
102 | 'cross',
103 | 'cursor',
104 | 'delete',
105 | 'delete-cloud',
106 | 'delete-confirmation',
107 | 'delete-folder',
108 | 'design',
109 | 'document',
110 | 'double-tap',
111 | 'down-arrow',
112 | 'download',
113 | 'download-folder',
114 | 'download-from-cloud',
115 | 'drag-left',
116 | 'drag-right',
117 | 'edit',
118 | 'edit-cancel',
119 | 'edit-ok',
120 | 'event',
121 | 'expand',
122 | 'expand-window',
123 | 'eye',
124 | 'face-id',
125 | 'facebook-like-morph',
126 | 'fatal-error',
127 | 'favorite-cloud',
128 | 'favorite-folder',
129 | 'female-user',
130 | 'fidget-spinner',
131 | 'file',
132 | 'fire',
133 | 'flow',
134 | 'folder',
135 | 'folder-with-file',
136 | 'forward',
137 | 'four-fingers',
138 | 'fullscreen',
139 | 'garbage-bin',
140 | 'gear',
141 | 'gears',
142 | 'gift-heart',
143 | 'globe',
144 | 'hand-peace',
145 | 'hand-scissors',
146 | 'heart',
147 | 'heart-in-hand',
148 | 'help-cloud',
149 | 'home',
150 | 'home-2',
151 | 'icon-list-view',
152 | 'info-click',
153 | 'info-scale',
154 | 'info-shake',
155 | 'information',
156 | 'install',
157 | 'installing-updates',
158 | 'key-password',
159 | 'left-right',
160 | 'list',
161 | 'list-is-empty',
162 | 'load-from-cloud',
163 | 'login',
164 | 'low-battery',
165 | 'map',
166 | 'map-marker',
167 | 'map-pointer',
168 | 'menu-arrow',
169 | 'menu-back',
170 | 'menu-close',
171 | 'menu-forward',
172 | 'menu-minus',
173 | 'menu-open-and-close',
174 | 'message-sent',
175 | 'mind-map',
176 | 'missed-call',
177 | 'money',
178 | 'multiple-choice',
179 | 'network',
180 | 'no-connection',
181 | 'no-messages',
182 | 'numerical-sorting',
183 | 'ok',
184 | 'ok-hand',
185 | 'one-finger',
186 | 'online',
187 | 'open-archive',
188 | 'order-completed',
189 | 'page-under-construction',
190 | 'paint-roller',
191 | 'palm-scan',
192 | 'pencil',
193 | 'people',
194 | 'phone-ringing',
195 | 'phonelink-ring',
196 | 'photo-gallery',
197 | 'pin',
198 | 'place-marker',
199 | 'play-load',
200 | 'plus-button',
201 | 'portrait-mode-scanning',
202 | 'power-off-button',
203 | 'previous-location',
204 | 'print',
205 | 'qr-code',
206 | 'question-mark',
207 | 'quick',
208 | 'refresh',
209 | 'refresh-cloud',
210 | 'refresh-folder',
211 | 'refresh-wait',
212 | 'restart',
213 | 'rotate',
214 | 'save-changes',
215 | 'scroll-down-hand',
216 | 'search',
217 | 'search-cancel',
218 | 'searching',
219 | 'settings',
220 | 'share',
221 | 'shield',
222 | 'shutdown',
223 | 'sign-out',
224 | 'single-choice',
225 | 'skip-backwards',
226 | 'skip-forwards',
227 | 'speech',
228 | 'star',
229 | 'stop',
230 | 'storage',
231 | 'submit-progress',
232 | 'switch',
233 | 'synchronize-cloud',
234 | 'synchronize-folder',
235 | 'tap',
236 | 'tasks',
237 | 'three-fingers',
238 | 'thumb',
239 | 'tick-box',
240 | 'todo-list',
241 | 'toggle',
242 | 'trash',
243 | 'trash-bin',
244 | 'tune',
245 | 'uninstalling-updates',
246 | 'unlock',
247 | 'unsubscribed',
248 | 'up-down',
249 | 'upgrade',
250 | 'upload',
251 | 'upload-to-cloud',
252 | 'user-male',
253 | 'warning-1',
254 | 'warning-2',
255 | 'warning-blink',
256 | 'waste',
257 | 'wifi-search',
258 | 'wrench',
259 | ],
260 | },
261 | {
262 | name: 'Web',
263 | icons: [
264 | '100-percent',
265 | '25-percent',
266 | '50-percent',
267 | 'add-to-collection',
268 | 'add-to-favorites',
269 | 'address',
270 | 'aircraft',
271 | 'analyze',
272 | 'bad-gateway',
273 | 'bar-chart',
274 | 'book',
275 | 'bookmark',
276 | 'bookmark-in-book',
277 | 'broken-link',
278 | 'business-network',
279 | 'calendar',
280 | 'calendar-heart',
281 | 'calendar-tear',
282 | 'check-circle',
283 | 'chrome',
284 | 'clear-symbol',
285 | 'cloud',
286 | 'combo-chart',
287 | 'computer-display',
288 | 'create-order',
289 | 'critical-thinking',
290 | 'delivery',
291 | 'design',
292 | 'discount',
293 | 'document',
294 | 'doughnut-chart',
295 | 'down-arrow',
296 | 'download',
297 | 'edit',
298 | 'edit-cancel',
299 | 'edit-ok',
300 | 'event',
301 | 'expand',
302 | 'expand-window',
303 | 'family',
304 | 'fatal-error',
305 | 'fax',
306 | 'file',
307 | 'flag',
308 | 'folder-with-file',
309 | 'fraction',
310 | 'fullscreen',
311 | 'garbage-bin',
312 | 'globe',
313 | 'gmail',
314 | 'google',
315 | 'google-drive',
316 | 'google-maps',
317 | 'google-play',
318 | 'graph',
319 | 'guarantee',
320 | 'heart-in-hand',
321 | 'help-cloud',
322 | 'histogram',
323 | 'home',
324 | 'home-2',
325 | 'home-office',
326 | 'icon-list-view',
327 | 'info-click',
328 | 'info-scale',
329 | 'info-shake',
330 | 'information',
331 | 'internet',
332 | 'investment-portfolio',
333 | 'laptop-thin',
334 | 'line-chart',
335 | 'load-from-cloud',
336 | 'mailbox',
337 | 'map',
338 | 'map-marker',
339 | 'map-pointer',
340 | 'medal-first-place',
341 | 'medal-second-place',
342 | 'medal-third-place',
343 | 'medium',
344 | 'menu-open-and-close',
345 | 'message-sent',
346 | 'mind-map',
347 | 'minimum-value',
348 | 'movie',
349 | 'mug',
350 | 'network',
351 | 'no-comments',
352 | 'no-messages',
353 | 'normal-distribution-histogram',
354 | 'open-letter',
355 | 'page-under-construction',
356 | 'paint-roller',
357 | 'pencil',
358 | 'phonelink-ring',
359 | 'photo-gallery',
360 | 'plot',
361 | 'previous-location',
362 | 'prize',
363 | 'question-mark',
364 | 'refresh-cloud',
365 | 'refresh-folder',
366 | 'restore-window',
367 | 'sine',
368 | 'stocks',
369 | 'subscribe-1',
370 | 'subscribe-2',
371 | 'subscribe-3',
372 | 'tags',
373 | 'tea',
374 | 'trash-bin',
375 | 'tune',
376 | 'unsubscribed',
377 | 'upload',
378 | 'warning-blink',
379 | 'wifi-search',
380 | 'wordpress-rotation',
381 | ],
382 | },
383 | {
384 | name: 'Social',
385 | icons: [
386 | 'bookmark',
387 | 'chat',
388 | 'dribbble-circled-shake',
389 | 'engagement-ring',
390 | 'facebook',
391 | 'facebook-circled-click',
392 | 'facebook-circled-rotation',
393 | 'facebook-circled-scale',
394 | 'facebook-circled-shake',
395 | 'facebook-like',
396 | 'facebook-like-morph',
397 | 'facebook-like-unlike',
398 | 'facebook-messenger-click',
399 | 'facebook-messenger-rotation',
400 | 'facebook-messenger-scale',
401 | 'facebook-messenger-shake',
402 | 'gift-heart',
403 | 'globe',
404 | 'good',
405 | 'idea',
406 | 'instagram-3d',
407 | 'instagram-shot',
408 | 'itunes',
409 | 'light-on',
410 | 'linkedin-bounce',
411 | 'linkedin-circled-click',
412 | 'linkedin-circled-rotation',
413 | 'linkedin-circled-scale',
414 | 'linkedin-circled-shake',
415 | 'live-video-on',
416 | 'medium',
417 | 'mug',
418 | 'no-reminders',
419 | 'pinterest-click',
420 | 'pinterest-rotation',
421 | 'pinterest-scale',
422 | 'pinterest-shake',
423 | 'reddit',
424 | 'share',
425 | 'snapchat',
426 | 'speech',
427 | 'thumb-up',
428 | 'twit-flying',
429 | 'twitch',
430 | 'twitter',
431 | 'twitter-circled-click',
432 | 'twitter-circled-rotation',
433 | 'twitter-circled-scale',
434 | 'twitter-circled-shake',
435 | 'two-fingers',
436 | 'viber',
437 | 'vk-circled-shake',
438 | 'whatsapp-click',
439 | 'whatsapp-rotation',
440 | 'whatsapp-scale',
441 | 'whatsapp-shake',
442 | 'youtube-play',
443 | ],
444 | },
445 | {
446 | name: 'Media',
447 | icons: [
448 | 'adjust',
449 | 'camera-off',
450 | 'cassette',
451 | 'cd',
452 | 'cd-2',
453 | 'cinema',
454 | 'counter',
455 | 'design',
456 | 'document',
457 | 'download',
458 | 'expand-window',
459 | 'film-reel',
460 | 'film-roll',
461 | 'fullscreen',
462 | 'itunes',
463 | 'live-video-on',
464 | 'missed-call',
465 | 'movie',
466 | 'music',
467 | 'mute',
468 | 'no-comments',
469 | 'no-connection',
470 | 'no-mic',
471 | 'no-mobile-phones',
472 | 'no-sound',
473 | 'no-video',
474 | 'online',
475 | 'pause',
476 | 'play-button-circled-scale',
477 | 'play-load',
478 | 'play-record',
479 | 'skip-backwards',
480 | 'skip-forwards',
481 | 'sound',
482 | 'speech',
483 | 'stop',
484 | 'tune',
485 | 'twitch',
486 | 'upload',
487 | 'video-editing',
488 | 'video-record',
489 | 'volume-1',
490 | 'volume-2',
491 | 'vox-player',
492 | 'wifi-search',
493 | 'youtube',
494 | 'youtube-play',
495 | 'zoom',
496 | ],
497 | },
498 | {
499 | name: 'Weather',
500 | icons: [
501 | 'cloudy-weather',
502 | 'day-night-weather',
503 | 'flower',
504 | 'fog-weather',
505 | 'haze-weather',
506 | 'leaf',
507 | 'light-snowy-weather',
508 | 'lightning-bolt-weather',
509 | 'lightning-weather',
510 | 'night-weather',
511 | 'rain-cloud-weather',
512 | 'rain-cloud-weather-2',
513 | 'rainy-weather',
514 | 'save-changes',
515 | 'snow-storm-weather',
516 | 'stormy-weather',
517 | 'sun-weather',
518 | 'sunrise-weather',
519 | 'sunset-weather',
520 | 'temperature-weather',
521 | 'torrential-rain-weather',
522 | 'windy-cloud-weather',
523 | 'windy-weather',
524 | ],
525 | },
526 | {
527 | name: 'Ecommerce',
528 | icons: [
529 | '100-percent',
530 | '25-percent',
531 | '50-percent',
532 | 'bank-card',
533 | 'bar-chart',
534 | 'box',
535 | 'buy',
536 | 'coins',
537 | 'combo-chart',
538 | 'customer-insight',
539 | 'delivery',
540 | 'diamond',
541 | 'discount',
542 | 'dollar',
543 | 'doughnut-chart',
544 | 'engagement-ring',
545 | 'expensive',
546 | 'fraction',
547 | 'gift',
548 | 'gift-heart',
549 | 'graph',
550 | 'guarantee',
551 | 'histogram',
552 | 'investment-portfolio',
553 | 'line-chart',
554 | 'minimum-value',
555 | 'money',
556 | 'normal-distribution-histogram',
557 | 'only-cash',
558 | 'open-box',
559 | 'open-sign',
560 | 'order-completed',
561 | 'paid',
562 | 'payment-processed',
563 | 'perfume',
564 | 'piggy-bank',
565 | 'pos-terminal',
566 | 'price-tag',
567 | 'pricing',
568 | 'product',
569 | 'receipt',
570 | 'sale',
571 | 'shipped',
572 | 'shopping',
573 | 'shopping-bag',
574 | 'shopping-cart',
575 | 'tags',
576 | 'wallet',
577 | 'withdrawal',
578 | ],
579 | },
580 | {
581 | name: 'Loaders',
582 | icons: [
583 | 'activity',
584 | 'aircraft',
585 | 'alert',
586 | 'angry-cat',
587 | 'basketball',
588 | 'battery',
589 | 'battery-level',
590 | 'beating-hearts',
591 | 'brain',
592 | 'car',
593 | 'charging-battery',
594 | 'chat-message',
595 | 'circle-square-1',
596 | 'circle-square-2',
597 | 'circle-square-triangle',
598 | 'circles-menu-1',
599 | 'circles-menu-2',
600 | 'circles-menu-3',
601 | 'circles-menu-4',
602 | 'circles-menu-5',
603 | 'circles-menu-6',
604 | 'clock',
605 | 'come-back-later',
606 | 'compass',
607 | 'connect',
608 | 'fire',
609 | 'flow',
610 | 'flower',
611 | 'fly-elephant',
612 | 'gear',
613 | 'gears',
614 | 'hourglass',
615 | 'iphone-spinner-1',
616 | 'iphone-spinner-2',
617 | 'list',
618 | 'loading-bar',
619 | 'play-load',
620 | 'rhombus',
621 | 'rocket',
622 | 'running-circle-1',
623 | 'running-circle-2',
624 | 'running-circle-3',
625 | 'running-heart',
626 | 'running-infinity',
627 | 'search',
628 | 'searching',
629 | 'spinner-1',
630 | 'spinner-2',
631 | 'spinner-3',
632 | 'spinner-4',
633 | 'spinner-5',
634 | 'spinning-arrows',
635 | 'spinning-circle-1',
636 | 'spinning-circle-2',
637 | 'square-lines',
638 | 'submit-progress',
639 | 'synchronize-cloud',
640 | 'synchronize-folder',
641 | 'three-circles',
642 | 'time',
643 | 'two-circles-1',
644 | 'two-circles-2',
645 | 'two-circles-3',
646 | 'two-circles-4',
647 | 'typing',
648 | 'upload-to-cloud',
649 | 'walk',
650 | ],
651 | },
652 | {
653 | name: 'Emoji',
654 | icons: [
655 | 'angel',
656 | 'angry-cat',
657 | 'beating-hearts',
658 | 'birthday-cake',
659 | 'blushing',
660 | 'bow',
661 | 'broken-heart',
662 | 'calendar-heart',
663 | 'cat-meow',
664 | 'confused',
665 | 'cool',
666 | 'coronavirus',
667 | 'crying',
668 | 'disappointed',
669 | 'embarrassed',
670 | 'family',
671 | 'female-user',
672 | 'fire-in-my-heart',
673 | 'ghost',
674 | 'handshake',
675 | 'heart-lock',
676 | 'heart-with-arrow',
677 | 'in-love',
678 | 'kawaii',
679 | 'kiss-panda',
680 | 'laughing',
681 | 'letter-with-hearts',
682 | 'light-on',
683 | 'lips',
684 | 'maneki',
685 | 'nerd',
686 | 'neutral',
687 | 'people',
688 | 'poo',
689 | 'puzzled',
690 | 'rocket',
691 | 'shocker',
692 | 'silent',
693 | 'sleeping',
694 | 'smile',
695 | 'sneeze',
696 | 'swiss-army-knife',
697 | 'tongue-out',
698 | 'user-male',
699 | 'vomited',
700 | 'walk',
701 | 'wash-your-hands',
702 | 'wink',
703 | 'yummy',
704 | ],
705 | },
706 | {
707 | name: 'Gestures',
708 | icons: [
709 | 'double-tap',
710 | 'drag-left',
711 | 'drag-right',
712 | 'four-fingers',
713 | 'hand-peace',
714 | 'hand-scissors',
715 | 'handshake',
716 | 'heart-in-hand',
717 | 'middle-finger',
718 | 'ok-hand',
719 | 'one-finger',
720 | 'scroll-down-hand',
721 | 'tap',
722 | 'three-fingers',
723 | 'two-fingers',
724 | 'wash-your-hands',
725 | ],
726 | },
727 | {
728 | name: 'Food',
729 | icons: [
730 | 'beer',
731 | 'birthday-cake',
732 | 'chocolate-bar',
733 | 'coffee',
734 | 'cola',
735 | 'energy-drink',
736 | 'porridge',
737 | 'salad',
738 | 'tea',
739 | ],
740 | },
741 | {
742 | name: 'Sports',
743 | icons: [
744 | 'basketball',
745 | 'bench-press',
746 | 'bow',
747 | 'canoe',
748 | 'car',
749 | 'deadlift',
750 | 'dumbbell',
751 | 'medal-first-place',
752 | 'medal-second-place',
753 | 'medal-third-place',
754 | 'prize',
755 | 'pullups',
756 | 'roller-skating',
757 | 'row-boat',
758 | 'rugby',
759 | 'shuttercock',
760 | 'skateboarding',
761 | 'soccer-ball',
762 | 'sup',
763 | 'trophy',
764 | 'volleyball',
765 | ],
766 | },
767 | ];
768 |
769 | export function icon8Url(id: string) {
770 | return `https://maxst.icons8.com/vue-static/landings/animated-icons/icons/${id}/${id}.json`;
771 | }
772 |
773 | export function icon8Name(id: string) {
774 | if (iconNames[id]) {
775 | return iconNames[id];
776 | }
777 | return id
778 | .split('-')
779 | .map((token) => token[0].toUpperCase() + token.substr(1))
780 | .join(' ');
781 | }
782 |
--------------------------------------------------------------------------------
/src/image-utils.ts:
--------------------------------------------------------------------------------
1 | export async function asyncImage(url: string) {
2 | const image = new Image();
3 | image.src = url;
4 | await new Promise((resolve, reject) => ((image.onload = resolve), (image.onerror = reject)));
5 | return image;
6 | }
7 |
8 | export function createBitmapUrl(data: Uint8Array) {
9 | return URL.createObjectURL(new Blob([data], { type: 'image/bitmap' }));
10 | }
11 |
12 | export function createSVGUrl(data: string) {
13 | return URL.createObjectURL(new Blob([data], { type: 'image/svg+xml;charset=utf-8' }));
14 | }
15 |
--------------------------------------------------------------------------------
/src/load-animation.ts:
--------------------------------------------------------------------------------
1 | import { IAnimationParams } from './animation';
2 | import { exportBitmap, exportOLED, extractFrames } from './animation-maker';
3 | import { createBitmapUrl } from './image-utils';
4 |
5 | function animationName(url: string) {
6 | const path = new URL(url).pathname;
7 | if (path.toLowerCase().endsWith('.json')) {
8 | const pathParts = path.split('/');
9 | const lastPart = pathParts[pathParts.length - 1];
10 | if (lastPart.length > 5) {
11 | const dot = lastPart.lastIndexOf('.');
12 | return `${lastPart.substr(0, dot)}`.replace(/[-_\s]+/g, ' ');
13 | }
14 | }
15 | return '';
16 | }
17 |
18 | export async function loadAnimation(url: string, size: number): Promise {
19 | const res = await fetch(url);
20 | const lottie = await res.json();
21 | const frameUrls = [];
22 | const exported = [];
23 | let delay = 100;
24 | for await (const frame of extractFrames(lottie, {
25 | size,
26 | invert: true,
27 | })) {
28 | const bitmap = exportBitmap(frame, 1);
29 | frameUrls.push(createBitmapUrl(bitmap));
30 | exported.push(exportOLED(frame.data));
31 | delay = Math.round(1000 / frame.framesPerSecond);
32 | }
33 | return {
34 | name: animationName(url),
35 | width: size,
36 | height: size,
37 | delay,
38 | frames: exported,
39 | frameUrls,
40 | };
41 | }
42 |
--------------------------------------------------------------------------------
/src/templates/arduino-ssd1306.ts:
--------------------------------------------------------------------------------
1 | import { IAnimationParams } from '../animation';
2 |
3 | export function arduino_ssd1306(animationParams: IAnimationParams) {
4 | const cx = Math.floor((128 - animationParams.width) / 2);
5 | const cy = Math.floor((64 - animationParams.height) / 2);
6 |
7 | return `
8 | #include
9 | #include
10 |
11 | #define SCREEN_I2C_ADDR 0x3D // or 0x3C
12 | #define SCREEN_WIDTH 128 // OLED display width, in pixels
13 | #define SCREEN_HEIGHT 64 // OLED display height, in pixels
14 | #define OLED_RST_PIN -1 // Reset pin (-1 if not available)
15 |
16 | Adafruit_SSD1306 display(128, 64, &Wire, OLED_RST_PIN);
17 |
18 | // OLED Animation: ${animationParams.name}
19 | // Code auto-generated by https://wokwi.com/animator, graphics by icons8.com
20 |
21 | #define FRAME_DELAY (${animationParams.delay})
22 | #define FRAME_WIDTH (${animationParams.width})
23 | #define FRAME_HEIGHT (${animationParams.height})
24 | #define FRAME_COUNT (sizeof(frames) / sizeof(frames[0]))
25 | const byte PROGMEM frames[][${animationParams.frames[0].length}] = {
26 | {${animationParams.frames.map((frame) => frame.join(',')).join('},\n {')}}
27 | };
28 |
29 | void setup() {
30 | display.begin(SSD1306_SWITCHCAPVCC, SCREEN_I2C_ADDR);
31 | }
32 |
33 | int frame = 0;
34 | void loop() {
35 | display.clearDisplay();
36 | display.drawBitmap(${cx}, ${cy}, frames[frame], FRAME_WIDTH, FRAME_HEIGHT, 1);
37 | display.display();
38 | frame = (frame + 1) % FRAME_COUNT;
39 | delay(FRAME_DELAY);
40 | }`.trim();
41 | }
42 |
--------------------------------------------------------------------------------
/src/theme.ts:
--------------------------------------------------------------------------------
1 | import { createMuiTheme } from '@material-ui/core/styles';
2 | import { red } from '@material-ui/core/colors';
3 |
4 | // Create a theme instance.
5 | const theme = createMuiTheme({
6 | palette: {
7 | primary: {
8 | main: '#556cd6',
9 | },
10 | secondary: {
11 | main: '#19857b',
12 | },
13 | error: {
14 | main: red.A400,
15 | },
16 | background: {
17 | default: '#fff',
18 | },
19 | },
20 | });
21 |
22 | export default theme;
23 |
--------------------------------------------------------------------------------
/styles/Home.module.css:
--------------------------------------------------------------------------------
1 | .container {
2 | min-height: 100vh;
3 | padding: 0 0.5rem;
4 | display: flex;
5 | flex-direction: column;
6 | justify-content: center;
7 | align-items: center;
8 | }
9 |
10 | .main {
11 | padding: 5rem 0;
12 | flex: 1;
13 | display: flex;
14 | flex-direction: column;
15 | justify-content: center;
16 | align-items: center;
17 | }
18 |
19 | .footer {
20 | width: 100%;
21 | height: 100px;
22 | border-top: 1px solid #eaeaea;
23 | display: flex;
24 | justify-content: center;
25 | align-items: center;
26 | }
27 |
28 | .footer img {
29 | margin-left: 0.5rem;
30 | }
31 |
32 | .footer a {
33 | display: flex;
34 | justify-content: center;
35 | align-items: center;
36 | }
37 |
38 | .title a {
39 | color: #0070f3;
40 | text-decoration: none;
41 | }
42 |
43 | .title a:hover,
44 | .title a:focus,
45 | .title a:active {
46 | text-decoration: underline;
47 | }
48 |
49 | .title {
50 | margin: 0;
51 | line-height: 1.15;
52 | font-size: 4rem;
53 | }
54 |
55 | .title,
56 | .description {
57 | text-align: center;
58 | }
59 |
60 | .description {
61 | line-height: 1.5;
62 | font-size: 1.5rem;
63 | }
64 |
65 | .code {
66 | background: #fafafa;
67 | border-radius: 5px;
68 | padding: 0.75rem;
69 | font-size: 1.1rem;
70 | font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
71 | Bitstream Vera Sans Mono, Courier New, monospace;
72 | }
73 |
74 | .grid {
75 | display: flex;
76 | align-items: center;
77 | justify-content: center;
78 | flex-wrap: wrap;
79 | max-width: 800px;
80 | margin-top: 3rem;
81 | }
82 |
83 | .card {
84 | margin: 1rem;
85 | flex-basis: 45%;
86 | padding: 1.5rem;
87 | text-align: left;
88 | color: inherit;
89 | text-decoration: none;
90 | border: 1px solid #eaeaea;
91 | border-radius: 10px;
92 | transition: color 0.15s ease, border-color 0.15s ease;
93 | }
94 |
95 | .card:hover,
96 | .card:focus,
97 | .card:active {
98 | color: #0070f3;
99 | border-color: #0070f3;
100 | }
101 |
102 | .card h3 {
103 | margin: 0 0 1rem 0;
104 | font-size: 1.5rem;
105 | }
106 |
107 | .card p {
108 | margin: 0;
109 | font-size: 1.25rem;
110 | line-height: 1.5;
111 | }
112 |
113 | .logo {
114 | height: 1em;
115 | }
116 |
117 | @media (max-width: 600px) {
118 | .grid {
119 | width: 100%;
120 | flex-direction: column;
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/styles/globals.css:
--------------------------------------------------------------------------------
1 | html,
2 | body {
3 | padding: 0;
4 | margin: 0;
5 | font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
6 | Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
7 | }
8 |
9 | a {
10 | color: inherit;
11 | text-decoration: none;
12 | }
13 |
14 | * {
15 | box-sizing: border-box;
16 | }
17 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "strict": true,
12 | "forceConsistentCasingInFileNames": true,
13 | "noEmit": true,
14 | "esModuleInterop": true,
15 | "module": "esnext",
16 | "moduleResolution": "node",
17 | "resolveJsonModule": true,
18 | "isolatedModules": true,
19 | "jsx": "preserve"
20 | },
21 | "include": [
22 | "next-env.d.ts",
23 | "**/*.ts",
24 | "**/*.tsx"
25 | ],
26 | "exclude": [
27 | "node_modules"
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------