├── .gitignore ├── LICENSE ├── README.md ├── bsconfig.json ├── dist ├── app-NKNAJOZC.js ├── favicon.ico ├── img │ ├── demo.gif │ ├── icon │ │ ├── arrow.svg │ │ ├── chevron.svg │ │ ├── hamburger.svg │ │ ├── rescript_256x256.png │ │ └── rescript_512x512.png │ ├── rescript.svg │ └── start.png ├── index.html ├── manifest.json └── sw.js ├── img ├── demo.gif ├── favicon.ico ├── icon │ ├── arrow.svg │ ├── chevron.svg │ ├── hamburger.svg │ ├── rescript_256x256.png │ └── rescript_512x512.png ├── rescript.svg └── start.png ├── package-lock.json ├── package.json ├── scripts ├── build.js ├── deploy.sh ├── generateServiceWorker.js ├── injectScript.js └── start.js └── src ├── App.res ├── Emotion.res ├── Home.res ├── Index.res ├── Page1.res ├── Page2.res ├── Page3.res ├── ReactTransitionGroup.res ├── index.html ├── manifest.json └── router ├── Link.res └── Redirect.res /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .merlin 3 | lib/ 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Raphael Rafatpanah 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 all 13 | 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rescript React Boilerplate 2 | 3 | An opinionated implementation of the following technologies: 4 | 5 | - ReScript & React 6 | - Simple routing using [ReScript's built in router](https://rescript-lang.org/docs/react/latest/router) 7 | - Quick and dirty route transitions via [ReactTransitionGroup](https://github.com/reactjs/react-transition-group) 8 | - Choose between [Emotion](https://github.com/persianturtle/rescript-react-boilerplate), [Sass](https://github.com/persianturtle/rescript-react-boilerplate/tree/sass) or [styled-ppx](https://github.com/persianturtle/rescript-react-boilerplate/tree/styled-ppx) for styling 9 | - [http-server](https://github.com/http-party/http-server) for a quick and easy development server 10 | - [esbuild](https://esbuild.github.io/) for fast bundling 11 | - Automatically generated [ServiceWorker](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker) for rich offline experiences (here's a great [in-depth course on the topic](https://classroom.udacity.com/courses/ud899)) 12 | 13 | # CSS Flavors 14 | 15 | - [Emotion](https://github.com/persianturtle/rescript-react-boilerplate) 16 | - [styled-ppx](https://github.com/persianturtle/rescript-react-boilerplate/tree/styled-ppx) 17 | - [Sass](https://github.com/persianturtle/rescript-react-boilerplate/tree/sass) 18 | 19 | ## Getting Started 20 | 21 | ```sh 22 | npm install 23 | npm start 24 | open http://localhost:8081 25 | ``` 26 | 27 | ## Demo 28 | 29 | ![Demo](https://github.com/persianturtle/rescript-react-boilerplate/blob/master/img/demo.gif) 30 | 31 | ## Tutorial 32 | 33 | (Video overview coming soon) 34 | 35 | ## Development Environment 36 | 37 | Since we're using ReScript and esbuild, our build times are fast. 38 | 39 | Because of this, we use [chokidar (a cross-platform file watcher)](https://github.com/paulmillr/chokidar) to watch for changes and then rebuild the `dist` directory on every change. The `dist` directory is the same whether in development or in production. 40 | 41 | The build should work on macOS, Windows & Linux. 42 | 43 | ![Demo](https://github.com/persianturtle/rescript-react-boilerplate/blob/master/img/start.png) 44 | -------------------------------------------------------------------------------- /bsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rescript-react-boilerplate", 3 | "reason": { 4 | "react-jsx": 3 5 | }, 6 | "sources": { 7 | "dir": "src", 8 | "subdirs": true 9 | }, 10 | "package-specs": [ 11 | { 12 | "module": "es6" 13 | } 14 | ], 15 | "suffix": ".bs.js", 16 | "namespace": true, 17 | "bs-dependencies": ["@rescript/react"] 18 | } 19 | -------------------------------------------------------------------------------- /dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/dist/favicon.ico -------------------------------------------------------------------------------- /dist/img/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/dist/img/demo.gif -------------------------------------------------------------------------------- /dist/img/icon/arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dist/img/icon/chevron.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dist/img/icon/hamburger.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dist/img/icon/rescript_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/dist/img/icon/rescript_256x256.png -------------------------------------------------------------------------------- /dist/img/icon/rescript_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/dist/img/icon/rescript_512x512.png -------------------------------------------------------------------------------- /dist/img/rescript.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dist/img/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/dist/img/start.png -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | React App 10 | 11 | 12 | 13 | 14 | 40 | 41 | 42 | 43 |
44 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /dist/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReScript React Boilerplate", 3 | "short_name": "rescript-react-boilerplate", 4 | "start_url": ".", 5 | "display": "fullscreen", 6 | "theme_color": "dodgerblue", 7 | "background_color": "#fff", 8 | "description": "A ReScript React boilerplate project.", 9 | "icons": [ 10 | { 11 | "src": "img/icon/rescript_256x256.png", 12 | "sizes": "256x256", 13 | "type": "image/png" 14 | }, 15 | { 16 | "src": "img/icon/rescript_512x512.png", 17 | "sizes": "512x512", 18 | "type": "image/png" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /dist/sw.js: -------------------------------------------------------------------------------- 1 | 2 | const filesToCache = ["/app-NKNAJOZC.js","/favicon.ico","/img/demo.gif","/img/icon/arrow.svg","/img/icon/chevron.svg","/img/icon/hamburger.svg","/img/icon/rescript_256x256.png","/img/icon/rescript_512x512.png","/img/rescript.svg","/img/start.png","/","/manifest.json"]; 3 | const currentCacheName = "rescript-react-boilerplate-7fe950a545ec64eb263b09601abfbeb69889ca46a9119830c8441e1eb4adff9e"; 4 | 5 | self.addEventListener("install", (event) => { 6 | event.waitUntil( 7 | caches.open(currentCacheName).then((cache) => cache.addAll(filesToCache)) 8 | ); 9 | }); 10 | 11 | self.addEventListener("fetch", (event) => { 12 | event.respondWith( 13 | (async () => { 14 | const cachedResponse = await caches.match(event.request); 15 | if (cachedResponse) { 16 | return cachedResponse; 17 | } 18 | 19 | try { 20 | return await fetch(event.request); 21 | } catch (error) { 22 | if (event.request.mode === "navigate") { 23 | return caches.match("/"); 24 | } 25 | 26 | throw error; 27 | } 28 | })() 29 | ); 30 | }); 31 | 32 | addEventListener("activate", (event) => { 33 | event.waitUntil( 34 | (async () => 35 | caches 36 | .keys() 37 | .then((cacheNames) => 38 | Promise.all( 39 | cacheNames 40 | .filter( 41 | (cacheName) => 42 | cacheName.startsWith("rescript-react-boilerplate") && 43 | cacheName !== currentCacheName 44 | ) 45 | .map((cacheName) => caches.delete(cacheName)) 46 | ) 47 | ))() 48 | ); 49 | }); 50 | 51 | self.addEventListener("message", (event) => { 52 | if (event.data.action === "skipWaiting") { 53 | self.skipWaiting(); 54 | } 55 | }); 56 | -------------------------------------------------------------------------------- /img/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/img/demo.gif -------------------------------------------------------------------------------- /img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/img/favicon.ico -------------------------------------------------------------------------------- /img/icon/arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /img/icon/chevron.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /img/icon/hamburger.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /img/icon/rescript_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/img/icon/rescript_256x256.png -------------------------------------------------------------------------------- /img/icon/rescript_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/img/icon/rescript_512x512.png -------------------------------------------------------------------------------- /img/rescript.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /img/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/persianturtle/rescript-react-boilerplate/e2d5aa3fc0628c00c2e7d2450cfdf605ae4f7f66/img/start.png -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rescript-react-boilerplate", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "version": "1.0.0", 9 | "license": "MIT", 10 | "dependencies": { 11 | "@emotion/css": "*", 12 | "react": "*", 13 | "react-dom": "*", 14 | "react-transition-group": "*" 15 | }, 16 | "devDependencies": { 17 | "@rescript/react": "*", 18 | "chokidar": "*", 19 | "esbuild": "*", 20 | "esbuild-plugin-svgr": "*", 21 | "http-server": "*", 22 | "rescript": "*" 23 | } 24 | }, 25 | "node_modules/@babel/code-frame": { 26 | "version": "7.16.7", 27 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", 28 | "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", 29 | "dependencies": { 30 | "@babel/highlight": "^7.16.7" 31 | }, 32 | "engines": { 33 | "node": ">=6.9.0" 34 | } 35 | }, 36 | "node_modules/@babel/compat-data": { 37 | "version": "7.16.8", 38 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", 39 | "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", 40 | "engines": { 41 | "node": ">=6.9.0" 42 | } 43 | }, 44 | "node_modules/@babel/core": { 45 | "version": "7.16.12", 46 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", 47 | "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", 48 | "dependencies": { 49 | "@babel/code-frame": "^7.16.7", 50 | "@babel/generator": "^7.16.8", 51 | "@babel/helper-compilation-targets": "^7.16.7", 52 | "@babel/helper-module-transforms": "^7.16.7", 53 | "@babel/helpers": "^7.16.7", 54 | "@babel/parser": "^7.16.12", 55 | "@babel/template": "^7.16.7", 56 | "@babel/traverse": "^7.16.10", 57 | "@babel/types": "^7.16.8", 58 | "convert-source-map": "^1.7.0", 59 | "debug": "^4.1.0", 60 | "gensync": "^1.0.0-beta.2", 61 | "json5": "^2.1.2", 62 | "semver": "^6.3.0", 63 | "source-map": "^0.5.0" 64 | }, 65 | "engines": { 66 | "node": ">=6.9.0" 67 | }, 68 | "funding": { 69 | "type": "opencollective", 70 | "url": "https://opencollective.com/babel" 71 | } 72 | }, 73 | "node_modules/@babel/generator": { 74 | "version": "7.16.8", 75 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", 76 | "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", 77 | "dependencies": { 78 | "@babel/types": "^7.16.8", 79 | "jsesc": "^2.5.1", 80 | "source-map": "^0.5.0" 81 | }, 82 | "engines": { 83 | "node": ">=6.9.0" 84 | } 85 | }, 86 | "node_modules/@babel/helper-compilation-targets": { 87 | "version": "7.16.7", 88 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", 89 | "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", 90 | "dependencies": { 91 | "@babel/compat-data": "^7.16.4", 92 | "@babel/helper-validator-option": "^7.16.7", 93 | "browserslist": "^4.17.5", 94 | "semver": "^6.3.0" 95 | }, 96 | "engines": { 97 | "node": ">=6.9.0" 98 | }, 99 | "peerDependencies": { 100 | "@babel/core": "^7.0.0" 101 | } 102 | }, 103 | "node_modules/@babel/helper-environment-visitor": { 104 | "version": "7.16.7", 105 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", 106 | "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", 107 | "dependencies": { 108 | "@babel/types": "^7.16.7" 109 | }, 110 | "engines": { 111 | "node": ">=6.9.0" 112 | } 113 | }, 114 | "node_modules/@babel/helper-function-name": { 115 | "version": "7.16.7", 116 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", 117 | "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", 118 | "dependencies": { 119 | "@babel/helper-get-function-arity": "^7.16.7", 120 | "@babel/template": "^7.16.7", 121 | "@babel/types": "^7.16.7" 122 | }, 123 | "engines": { 124 | "node": ">=6.9.0" 125 | } 126 | }, 127 | "node_modules/@babel/helper-get-function-arity": { 128 | "version": "7.16.7", 129 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", 130 | "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", 131 | "dependencies": { 132 | "@babel/types": "^7.16.7" 133 | }, 134 | "engines": { 135 | "node": ">=6.9.0" 136 | } 137 | }, 138 | "node_modules/@babel/helper-hoist-variables": { 139 | "version": "7.16.7", 140 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", 141 | "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", 142 | "dependencies": { 143 | "@babel/types": "^7.16.7" 144 | }, 145 | "engines": { 146 | "node": ">=6.9.0" 147 | } 148 | }, 149 | "node_modules/@babel/helper-module-imports": { 150 | "version": "7.16.7", 151 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", 152 | "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", 153 | "dependencies": { 154 | "@babel/types": "^7.16.7" 155 | }, 156 | "engines": { 157 | "node": ">=6.9.0" 158 | } 159 | }, 160 | "node_modules/@babel/helper-module-transforms": { 161 | "version": "7.16.7", 162 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", 163 | "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", 164 | "dependencies": { 165 | "@babel/helper-environment-visitor": "^7.16.7", 166 | "@babel/helper-module-imports": "^7.16.7", 167 | "@babel/helper-simple-access": "^7.16.7", 168 | "@babel/helper-split-export-declaration": "^7.16.7", 169 | "@babel/helper-validator-identifier": "^7.16.7", 170 | "@babel/template": "^7.16.7", 171 | "@babel/traverse": "^7.16.7", 172 | "@babel/types": "^7.16.7" 173 | }, 174 | "engines": { 175 | "node": ">=6.9.0" 176 | } 177 | }, 178 | "node_modules/@babel/helper-plugin-utils": { 179 | "version": "7.16.7", 180 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", 181 | "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", 182 | "engines": { 183 | "node": ">=6.9.0" 184 | } 185 | }, 186 | "node_modules/@babel/helper-simple-access": { 187 | "version": "7.16.7", 188 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", 189 | "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", 190 | "dependencies": { 191 | "@babel/types": "^7.16.7" 192 | }, 193 | "engines": { 194 | "node": ">=6.9.0" 195 | } 196 | }, 197 | "node_modules/@babel/helper-split-export-declaration": { 198 | "version": "7.16.7", 199 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", 200 | "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", 201 | "dependencies": { 202 | "@babel/types": "^7.16.7" 203 | }, 204 | "engines": { 205 | "node": ">=6.9.0" 206 | } 207 | }, 208 | "node_modules/@babel/helper-validator-identifier": { 209 | "version": "7.16.7", 210 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", 211 | "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", 212 | "engines": { 213 | "node": ">=6.9.0" 214 | } 215 | }, 216 | "node_modules/@babel/helper-validator-option": { 217 | "version": "7.16.7", 218 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", 219 | "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", 220 | "engines": { 221 | "node": ">=6.9.0" 222 | } 223 | }, 224 | "node_modules/@babel/helpers": { 225 | "version": "7.16.7", 226 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", 227 | "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", 228 | "dependencies": { 229 | "@babel/template": "^7.16.7", 230 | "@babel/traverse": "^7.16.7", 231 | "@babel/types": "^7.16.7" 232 | }, 233 | "engines": { 234 | "node": ">=6.9.0" 235 | } 236 | }, 237 | "node_modules/@babel/highlight": { 238 | "version": "7.16.10", 239 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", 240 | "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", 241 | "dependencies": { 242 | "@babel/helper-validator-identifier": "^7.16.7", 243 | "chalk": "^2.0.0", 244 | "js-tokens": "^4.0.0" 245 | }, 246 | "engines": { 247 | "node": ">=6.9.0" 248 | } 249 | }, 250 | "node_modules/@babel/parser": { 251 | "version": "7.16.12", 252 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", 253 | "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", 254 | "bin": { 255 | "parser": "bin/babel-parser.js" 256 | }, 257 | "engines": { 258 | "node": ">=6.0.0" 259 | } 260 | }, 261 | "node_modules/@babel/plugin-syntax-jsx": { 262 | "version": "7.16.7", 263 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", 264 | "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", 265 | "dependencies": { 266 | "@babel/helper-plugin-utils": "^7.16.7" 267 | }, 268 | "engines": { 269 | "node": ">=6.9.0" 270 | }, 271 | "peerDependencies": { 272 | "@babel/core": "^7.0.0-0" 273 | } 274 | }, 275 | "node_modules/@babel/runtime": { 276 | "version": "7.16.7", 277 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", 278 | "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", 279 | "dependencies": { 280 | "regenerator-runtime": "^0.13.4" 281 | }, 282 | "engines": { 283 | "node": ">=6.9.0" 284 | } 285 | }, 286 | "node_modules/@babel/template": { 287 | "version": "7.16.7", 288 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", 289 | "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", 290 | "dependencies": { 291 | "@babel/code-frame": "^7.16.7", 292 | "@babel/parser": "^7.16.7", 293 | "@babel/types": "^7.16.7" 294 | }, 295 | "engines": { 296 | "node": ">=6.9.0" 297 | } 298 | }, 299 | "node_modules/@babel/traverse": { 300 | "version": "7.16.10", 301 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", 302 | "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", 303 | "dependencies": { 304 | "@babel/code-frame": "^7.16.7", 305 | "@babel/generator": "^7.16.8", 306 | "@babel/helper-environment-visitor": "^7.16.7", 307 | "@babel/helper-function-name": "^7.16.7", 308 | "@babel/helper-hoist-variables": "^7.16.7", 309 | "@babel/helper-split-export-declaration": "^7.16.7", 310 | "@babel/parser": "^7.16.10", 311 | "@babel/types": "^7.16.8", 312 | "debug": "^4.1.0", 313 | "globals": "^11.1.0" 314 | }, 315 | "engines": { 316 | "node": ">=6.9.0" 317 | } 318 | }, 319 | "node_modules/@babel/types": { 320 | "version": "7.16.8", 321 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", 322 | "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", 323 | "dependencies": { 324 | "@babel/helper-validator-identifier": "^7.16.7", 325 | "to-fast-properties": "^2.0.0" 326 | }, 327 | "engines": { 328 | "node": ">=6.9.0" 329 | } 330 | }, 331 | "node_modules/@emotion/babel-plugin": { 332 | "version": "11.7.2", 333 | "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz", 334 | "integrity": "sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==", 335 | "dependencies": { 336 | "@babel/helper-module-imports": "^7.12.13", 337 | "@babel/plugin-syntax-jsx": "^7.12.13", 338 | "@babel/runtime": "^7.13.10", 339 | "@emotion/hash": "^0.8.0", 340 | "@emotion/memoize": "^0.7.5", 341 | "@emotion/serialize": "^1.0.2", 342 | "babel-plugin-macros": "^2.6.1", 343 | "convert-source-map": "^1.5.0", 344 | "escape-string-regexp": "^4.0.0", 345 | "find-root": "^1.1.0", 346 | "source-map": "^0.5.7", 347 | "stylis": "4.0.13" 348 | }, 349 | "peerDependencies": { 350 | "@babel/core": "^7.0.0" 351 | } 352 | }, 353 | "node_modules/@emotion/cache": { 354 | "version": "11.7.1", 355 | "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", 356 | "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", 357 | "dependencies": { 358 | "@emotion/memoize": "^0.7.4", 359 | "@emotion/sheet": "^1.1.0", 360 | "@emotion/utils": "^1.0.0", 361 | "@emotion/weak-memoize": "^0.2.5", 362 | "stylis": "4.0.13" 363 | } 364 | }, 365 | "node_modules/@emotion/css": { 366 | "version": "11.7.1", 367 | "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.7.1.tgz", 368 | "integrity": "sha512-RUUgPlMZunlc7SE5A6Hg+VWRzb2cU6O9xlV78KCFgcnl25s7Qz/20oQg71iKudpLqk7xj0vhbJlwcJJMT0BOZg==", 369 | "dependencies": { 370 | "@emotion/babel-plugin": "^11.7.1", 371 | "@emotion/cache": "^11.7.1", 372 | "@emotion/serialize": "^1.0.0", 373 | "@emotion/sheet": "^1.0.3", 374 | "@emotion/utils": "^1.0.0" 375 | }, 376 | "peerDependencies": { 377 | "@babel/core": "^7.0.0" 378 | }, 379 | "peerDependenciesMeta": { 380 | "@babel/core": { 381 | "optional": true 382 | } 383 | } 384 | }, 385 | "node_modules/@emotion/hash": { 386 | "version": "0.8.0", 387 | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", 388 | "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" 389 | }, 390 | "node_modules/@emotion/memoize": { 391 | "version": "0.7.5", 392 | "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", 393 | "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" 394 | }, 395 | "node_modules/@emotion/serialize": { 396 | "version": "1.0.2", 397 | "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz", 398 | "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==", 399 | "dependencies": { 400 | "@emotion/hash": "^0.8.0", 401 | "@emotion/memoize": "^0.7.4", 402 | "@emotion/unitless": "^0.7.5", 403 | "@emotion/utils": "^1.0.0", 404 | "csstype": "^3.0.2" 405 | } 406 | }, 407 | "node_modules/@emotion/sheet": { 408 | "version": "1.1.0", 409 | "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz", 410 | "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==" 411 | }, 412 | "node_modules/@emotion/unitless": { 413 | "version": "0.7.5", 414 | "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", 415 | "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" 416 | }, 417 | "node_modules/@emotion/utils": { 418 | "version": "1.0.0", 419 | "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz", 420 | "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==" 421 | }, 422 | "node_modules/@emotion/weak-memoize": { 423 | "version": "0.2.5", 424 | "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", 425 | "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" 426 | }, 427 | "node_modules/@rescript/react": { 428 | "version": "0.10.3", 429 | "resolved": "https://registry.npmjs.org/@rescript/react/-/react-0.10.3.tgz", 430 | "integrity": "sha512-Lf9rzrR3bQPKJjOK3PBRa/B3xrJ7CqQ1HYr9VHPVxJidarIJJFZBhj0Dg1uZURX+Wg/xiP0PHFxXmdj2bK8Vxw==", 431 | "dev": true, 432 | "peerDependencies": { 433 | "react": ">=16.8.1", 434 | "react-dom": ">=16.8.1" 435 | } 436 | }, 437 | "node_modules/@svgr/babel-plugin-add-jsx-attribute": { 438 | "version": "6.0.0", 439 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz", 440 | "integrity": "sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==", 441 | "dev": true, 442 | "engines": { 443 | "node": ">=10" 444 | }, 445 | "funding": { 446 | "type": "github", 447 | "url": "https://github.com/sponsors/gregberge" 448 | }, 449 | "peerDependencies": { 450 | "@babel/core": "^7.0.0-0" 451 | } 452 | }, 453 | "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { 454 | "version": "6.0.0", 455 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz", 456 | "integrity": "sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==", 457 | "dev": true, 458 | "engines": { 459 | "node": ">=10" 460 | }, 461 | "funding": { 462 | "type": "github", 463 | "url": "https://github.com/sponsors/gregberge" 464 | }, 465 | "peerDependencies": { 466 | "@babel/core": "^7.0.0-0" 467 | } 468 | }, 469 | "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { 470 | "version": "6.0.0", 471 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz", 472 | "integrity": "sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==", 473 | "dev": true, 474 | "engines": { 475 | "node": ">=10" 476 | }, 477 | "funding": { 478 | "type": "github", 479 | "url": "https://github.com/sponsors/gregberge" 480 | }, 481 | "peerDependencies": { 482 | "@babel/core": "^7.0.0-0" 483 | } 484 | }, 485 | "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { 486 | "version": "6.0.0", 487 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz", 488 | "integrity": "sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==", 489 | "dev": true, 490 | "engines": { 491 | "node": ">=10" 492 | }, 493 | "funding": { 494 | "type": "github", 495 | "url": "https://github.com/sponsors/gregberge" 496 | }, 497 | "peerDependencies": { 498 | "@babel/core": "^7.0.0-0" 499 | } 500 | }, 501 | "node_modules/@svgr/babel-plugin-svg-dynamic-title": { 502 | "version": "6.0.0", 503 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz", 504 | "integrity": "sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==", 505 | "dev": true, 506 | "engines": { 507 | "node": ">=10" 508 | }, 509 | "funding": { 510 | "type": "github", 511 | "url": "https://github.com/sponsors/gregberge" 512 | }, 513 | "peerDependencies": { 514 | "@babel/core": "^7.0.0-0" 515 | } 516 | }, 517 | "node_modules/@svgr/babel-plugin-svg-em-dimensions": { 518 | "version": "6.0.0", 519 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz", 520 | "integrity": "sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==", 521 | "dev": true, 522 | "engines": { 523 | "node": ">=10" 524 | }, 525 | "funding": { 526 | "type": "github", 527 | "url": "https://github.com/sponsors/gregberge" 528 | }, 529 | "peerDependencies": { 530 | "@babel/core": "^7.0.0-0" 531 | } 532 | }, 533 | "node_modules/@svgr/babel-plugin-transform-react-native-svg": { 534 | "version": "6.0.0", 535 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz", 536 | "integrity": "sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==", 537 | "dev": true, 538 | "engines": { 539 | "node": ">=10" 540 | }, 541 | "funding": { 542 | "type": "github", 543 | "url": "https://github.com/sponsors/gregberge" 544 | }, 545 | "peerDependencies": { 546 | "@babel/core": "^7.0.0-0" 547 | } 548 | }, 549 | "node_modules/@svgr/babel-plugin-transform-svg-component": { 550 | "version": "6.2.0", 551 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz", 552 | "integrity": "sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg==", 553 | "dev": true, 554 | "engines": { 555 | "node": ">=12" 556 | }, 557 | "funding": { 558 | "type": "github", 559 | "url": "https://github.com/sponsors/gregberge" 560 | }, 561 | "peerDependencies": { 562 | "@babel/core": "^7.0.0-0" 563 | } 564 | }, 565 | "node_modules/@svgr/babel-preset": { 566 | "version": "6.2.0", 567 | "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.2.0.tgz", 568 | "integrity": "sha512-4WQNY0J71JIaL03DRn0vLiz87JXx0b9dYm2aA8XHlQJQoixMl4r/soYHm8dsaJZ3jWtkCiOYy48dp9izvXhDkQ==", 569 | "dev": true, 570 | "dependencies": { 571 | "@svgr/babel-plugin-add-jsx-attribute": "^6.0.0", 572 | "@svgr/babel-plugin-remove-jsx-attribute": "^6.0.0", 573 | "@svgr/babel-plugin-remove-jsx-empty-expression": "^6.0.0", 574 | "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.0.0", 575 | "@svgr/babel-plugin-svg-dynamic-title": "^6.0.0", 576 | "@svgr/babel-plugin-svg-em-dimensions": "^6.0.0", 577 | "@svgr/babel-plugin-transform-react-native-svg": "^6.0.0", 578 | "@svgr/babel-plugin-transform-svg-component": "^6.2.0" 579 | }, 580 | "engines": { 581 | "node": ">=10" 582 | }, 583 | "funding": { 584 | "type": "github", 585 | "url": "https://github.com/sponsors/gregberge" 586 | }, 587 | "peerDependencies": { 588 | "@babel/core": "^7.0.0-0" 589 | } 590 | }, 591 | "node_modules/@svgr/core": { 592 | "version": "6.2.0", 593 | "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.2.0.tgz", 594 | "integrity": "sha512-n5PrYAPoTpWGykqa8U05/TVTHOrVR/TxrUJ5EWHP9Db6vR3qnqzwAVLiFT1+slA7zQoJTXafQb+akwThf9SxGw==", 595 | "dev": true, 596 | "dependencies": { 597 | "@svgr/plugin-jsx": "^6.2.0", 598 | "camelcase": "^6.2.0", 599 | "cosmiconfig": "^7.0.1" 600 | }, 601 | "engines": { 602 | "node": ">=10" 603 | }, 604 | "funding": { 605 | "type": "github", 606 | "url": "https://github.com/sponsors/gregberge" 607 | } 608 | }, 609 | "node_modules/@svgr/core/node_modules/cosmiconfig": { 610 | "version": "7.0.1", 611 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", 612 | "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", 613 | "dev": true, 614 | "dependencies": { 615 | "@types/parse-json": "^4.0.0", 616 | "import-fresh": "^3.2.1", 617 | "parse-json": "^5.0.0", 618 | "path-type": "^4.0.0", 619 | "yaml": "^1.10.0" 620 | }, 621 | "engines": { 622 | "node": ">=10" 623 | } 624 | }, 625 | "node_modules/@svgr/hast-util-to-babel-ast": { 626 | "version": "6.0.0", 627 | "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.0.0.tgz", 628 | "integrity": "sha512-S+TxtCdDyRGafH1VG1t/uPZ87aOYOHzWL8kqz4FoSZcIbzWA6rnOmjNViNiDzqmEpzp2PW5o5mZfvC9DiVZhTQ==", 629 | "dev": true, 630 | "dependencies": { 631 | "@babel/types": "^7.15.6", 632 | "entities": "^3.0.1" 633 | }, 634 | "engines": { 635 | "node": ">=10" 636 | }, 637 | "funding": { 638 | "type": "github", 639 | "url": "https://github.com/sponsors/gregberge" 640 | } 641 | }, 642 | "node_modules/@svgr/plugin-jsx": { 643 | "version": "6.2.0", 644 | "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.0.tgz", 645 | "integrity": "sha512-QJDEe7K5Hkd4Eewu4pcjiOKTCtjB47Ol6lDLXVhf+jEewi+EKJAaAmM+bNixfW6LSNEg8RwOYQN3GZcprqKfHw==", 646 | "dev": true, 647 | "dependencies": { 648 | "@babel/core": "^7.15.5", 649 | "@svgr/babel-preset": "^6.2.0", 650 | "@svgr/hast-util-to-babel-ast": "^6.0.0", 651 | "svg-parser": "^2.0.2" 652 | }, 653 | "engines": { 654 | "node": ">=10" 655 | }, 656 | "funding": { 657 | "type": "github", 658 | "url": "https://github.com/sponsors/gregberge" 659 | }, 660 | "peerDependencies": { 661 | "@svgr/core": "^6.0.0" 662 | } 663 | }, 664 | "node_modules/@types/parse-json": { 665 | "version": "4.0.0", 666 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 667 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" 668 | }, 669 | "node_modules/ansi-styles": { 670 | "version": "3.2.1", 671 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 672 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 673 | "dependencies": { 674 | "color-convert": "^1.9.0" 675 | }, 676 | "engines": { 677 | "node": ">=4" 678 | } 679 | }, 680 | "node_modules/anymatch": { 681 | "version": "3.1.2", 682 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 683 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 684 | "dev": true, 685 | "dependencies": { 686 | "normalize-path": "^3.0.0", 687 | "picomatch": "^2.0.4" 688 | }, 689 | "engines": { 690 | "node": ">= 8" 691 | } 692 | }, 693 | "node_modules/async": { 694 | "version": "2.6.3", 695 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", 696 | "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", 697 | "dev": true, 698 | "dependencies": { 699 | "lodash": "^4.17.14" 700 | } 701 | }, 702 | "node_modules/babel-plugin-macros": { 703 | "version": "2.8.0", 704 | "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", 705 | "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", 706 | "dependencies": { 707 | "@babel/runtime": "^7.7.2", 708 | "cosmiconfig": "^6.0.0", 709 | "resolve": "^1.12.0" 710 | } 711 | }, 712 | "node_modules/basic-auth": { 713 | "version": "2.0.1", 714 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", 715 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", 716 | "dev": true, 717 | "dependencies": { 718 | "safe-buffer": "5.1.2" 719 | }, 720 | "engines": { 721 | "node": ">= 0.8" 722 | } 723 | }, 724 | "node_modules/binary-extensions": { 725 | "version": "2.2.0", 726 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 727 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 728 | "dev": true, 729 | "engines": { 730 | "node": ">=8" 731 | } 732 | }, 733 | "node_modules/braces": { 734 | "version": "3.0.2", 735 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 736 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 737 | "dev": true, 738 | "dependencies": { 739 | "fill-range": "^7.0.1" 740 | }, 741 | "engines": { 742 | "node": ">=8" 743 | } 744 | }, 745 | "node_modules/browserslist": { 746 | "version": "4.19.1", 747 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", 748 | "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", 749 | "dependencies": { 750 | "caniuse-lite": "^1.0.30001286", 751 | "electron-to-chromium": "^1.4.17", 752 | "escalade": "^3.1.1", 753 | "node-releases": "^2.0.1", 754 | "picocolors": "^1.0.0" 755 | }, 756 | "bin": { 757 | "browserslist": "cli.js" 758 | }, 759 | "engines": { 760 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 761 | }, 762 | "funding": { 763 | "type": "opencollective", 764 | "url": "https://opencollective.com/browserslist" 765 | } 766 | }, 767 | "node_modules/call-bind": { 768 | "version": "1.0.2", 769 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 770 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 771 | "dev": true, 772 | "dependencies": { 773 | "function-bind": "^1.1.1", 774 | "get-intrinsic": "^1.0.2" 775 | }, 776 | "funding": { 777 | "url": "https://github.com/sponsors/ljharb" 778 | } 779 | }, 780 | "node_modules/callsites": { 781 | "version": "3.1.0", 782 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 783 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 784 | "engines": { 785 | "node": ">=6" 786 | } 787 | }, 788 | "node_modules/camelcase": { 789 | "version": "6.3.0", 790 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", 791 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", 792 | "dev": true, 793 | "engines": { 794 | "node": ">=10" 795 | }, 796 | "funding": { 797 | "url": "https://github.com/sponsors/sindresorhus" 798 | } 799 | }, 800 | "node_modules/caniuse-lite": { 801 | "version": "1.0.30001301", 802 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", 803 | "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", 804 | "funding": { 805 | "type": "opencollective", 806 | "url": "https://opencollective.com/browserslist" 807 | } 808 | }, 809 | "node_modules/chalk": { 810 | "version": "2.4.2", 811 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 812 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 813 | "dependencies": { 814 | "ansi-styles": "^3.2.1", 815 | "escape-string-regexp": "^1.0.5", 816 | "supports-color": "^5.3.0" 817 | }, 818 | "engines": { 819 | "node": ">=4" 820 | } 821 | }, 822 | "node_modules/chalk/node_modules/escape-string-regexp": { 823 | "version": "1.0.5", 824 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 825 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 826 | "engines": { 827 | "node": ">=0.8.0" 828 | } 829 | }, 830 | "node_modules/chokidar": { 831 | "version": "3.5.3", 832 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 833 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 834 | "dev": true, 835 | "funding": [ 836 | { 837 | "type": "individual", 838 | "url": "https://paulmillr.com/funding/" 839 | } 840 | ], 841 | "dependencies": { 842 | "anymatch": "~3.1.2", 843 | "braces": "~3.0.2", 844 | "glob-parent": "~5.1.2", 845 | "is-binary-path": "~2.1.0", 846 | "is-glob": "~4.0.1", 847 | "normalize-path": "~3.0.0", 848 | "readdirp": "~3.6.0" 849 | }, 850 | "engines": { 851 | "node": ">= 8.10.0" 852 | }, 853 | "optionalDependencies": { 854 | "fsevents": "~2.3.2" 855 | } 856 | }, 857 | "node_modules/color-convert": { 858 | "version": "1.9.3", 859 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 860 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 861 | "dependencies": { 862 | "color-name": "1.1.3" 863 | } 864 | }, 865 | "node_modules/color-name": { 866 | "version": "1.1.3", 867 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 868 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 869 | }, 870 | "node_modules/convert-source-map": { 871 | "version": "1.8.0", 872 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", 873 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", 874 | "dependencies": { 875 | "safe-buffer": "~5.1.1" 876 | } 877 | }, 878 | "node_modules/corser": { 879 | "version": "2.0.1", 880 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", 881 | "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", 882 | "dev": true, 883 | "engines": { 884 | "node": ">= 0.4.0" 885 | } 886 | }, 887 | "node_modules/cosmiconfig": { 888 | "version": "6.0.0", 889 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", 890 | "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", 891 | "dependencies": { 892 | "@types/parse-json": "^4.0.0", 893 | "import-fresh": "^3.1.0", 894 | "parse-json": "^5.0.0", 895 | "path-type": "^4.0.0", 896 | "yaml": "^1.7.2" 897 | }, 898 | "engines": { 899 | "node": ">=8" 900 | } 901 | }, 902 | "node_modules/csstype": { 903 | "version": "3.0.10", 904 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", 905 | "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" 906 | }, 907 | "node_modules/debug": { 908 | "version": "4.3.3", 909 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", 910 | "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", 911 | "dependencies": { 912 | "ms": "2.1.2" 913 | }, 914 | "engines": { 915 | "node": ">=6.0" 916 | }, 917 | "peerDependenciesMeta": { 918 | "supports-color": { 919 | "optional": true 920 | } 921 | } 922 | }, 923 | "node_modules/dom-helpers": { 924 | "version": "5.2.1", 925 | "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", 926 | "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", 927 | "dependencies": { 928 | "@babel/runtime": "^7.8.7", 929 | "csstype": "^3.0.2" 930 | } 931 | }, 932 | "node_modules/electron-to-chromium": { 933 | "version": "1.4.51", 934 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.51.tgz", 935 | "integrity": "sha512-JNEmcYl3mk1tGQmy0EvL5eik/CKSBuzAyGP0QFdG6LIgxQe3II0BL1m2zKc2MZMf3uGqHWE1TFddJML0RpjSHQ==" 936 | }, 937 | "node_modules/entities": { 938 | "version": "3.0.1", 939 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", 940 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", 941 | "dev": true, 942 | "engines": { 943 | "node": ">=0.12" 944 | }, 945 | "funding": { 946 | "url": "https://github.com/fb55/entities?sponsor=1" 947 | } 948 | }, 949 | "node_modules/error-ex": { 950 | "version": "1.3.2", 951 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 952 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 953 | "dependencies": { 954 | "is-arrayish": "^0.2.1" 955 | } 956 | }, 957 | "node_modules/esbuild": { 958 | "version": "0.14.13", 959 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.13.tgz", 960 | "integrity": "sha512-FIxvAdj3i2oHA6ex+E67bG7zlSTO+slt8kU2ogHDgGtrQLy2HNChv3PYjiFTYkt8hZbEAniZCXVeHn+FrHt7dA==", 961 | "dev": true, 962 | "hasInstallScript": true, 963 | "bin": { 964 | "esbuild": "bin/esbuild" 965 | }, 966 | "optionalDependencies": { 967 | "esbuild-android-arm64": "0.14.13", 968 | "esbuild-darwin-64": "0.14.13", 969 | "esbuild-darwin-arm64": "0.14.13", 970 | "esbuild-freebsd-64": "0.14.13", 971 | "esbuild-freebsd-arm64": "0.14.13", 972 | "esbuild-linux-32": "0.14.13", 973 | "esbuild-linux-64": "0.14.13", 974 | "esbuild-linux-arm": "0.14.13", 975 | "esbuild-linux-arm64": "0.14.13", 976 | "esbuild-linux-mips64le": "0.14.13", 977 | "esbuild-linux-ppc64le": "0.14.13", 978 | "esbuild-linux-s390x": "0.14.13", 979 | "esbuild-netbsd-64": "0.14.13", 980 | "esbuild-openbsd-64": "0.14.13", 981 | "esbuild-sunos-64": "0.14.13", 982 | "esbuild-windows-32": "0.14.13", 983 | "esbuild-windows-64": "0.14.13", 984 | "esbuild-windows-arm64": "0.14.13" 985 | } 986 | }, 987 | "node_modules/esbuild-android-arm64": { 988 | "version": "0.14.13", 989 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.13.tgz", 990 | "integrity": "sha512-rhtwl+KJ3BzzXkK09N3/YbEF1i5WhriysJEStoeWNBzchx9hlmzyWmDGQQhu56HF78ua3JrVPyLOsdLGvtMvxQ==", 991 | "cpu": [ 992 | "arm64" 993 | ], 994 | "dev": true, 995 | "optional": true, 996 | "os": [ 997 | "android" 998 | ] 999 | }, 1000 | "node_modules/esbuild-darwin-64": { 1001 | "version": "0.14.13", 1002 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.13.tgz", 1003 | "integrity": "sha512-Fl47xIt5RMu50WIgMU93kwmUUJb+BPuL8R895n/aBNQqavS+KUMpLPoqKGABBV4myfx/fnAD/97X8Gt1C1YW6w==", 1004 | "cpu": [ 1005 | "x64" 1006 | ], 1007 | "dev": true, 1008 | "optional": true, 1009 | "os": [ 1010 | "darwin" 1011 | ] 1012 | }, 1013 | "node_modules/esbuild-darwin-arm64": { 1014 | "version": "0.14.13", 1015 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.13.tgz", 1016 | "integrity": "sha512-UttqKRFXsWvuivcyAbFmo54vdkC9Me1ZYQNuoz/uBYDbkb2MgqKYG2+xoVKPBhLvhT0CKM5QGKD81flMH5BE6A==", 1017 | "cpu": [ 1018 | "arm64" 1019 | ], 1020 | "dev": true, 1021 | "optional": true, 1022 | "os": [ 1023 | "darwin" 1024 | ] 1025 | }, 1026 | "node_modules/esbuild-freebsd-64": { 1027 | "version": "0.14.13", 1028 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.13.tgz", 1029 | "integrity": "sha512-dlIhPFSp29Yq2TPh7Cm3/4M0uKjlfvOylHVNCRvRNiOvDbBol6/NZ3kLisczms+Yra0rxVapBPN1oMbSMuts9g==", 1030 | "cpu": [ 1031 | "x64" 1032 | ], 1033 | "dev": true, 1034 | "optional": true, 1035 | "os": [ 1036 | "freebsd" 1037 | ] 1038 | }, 1039 | "node_modules/esbuild-freebsd-arm64": { 1040 | "version": "0.14.13", 1041 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.13.tgz", 1042 | "integrity": "sha512-bNOHLu7Oq6RwaAMnwPbJ40DVGPl9GlAOnfH/dFZ792f8hFEbopkbtVzo1SU1jjfY3TGLWOgqHNWxPxx1N7Au+g==", 1043 | "cpu": [ 1044 | "arm64" 1045 | ], 1046 | "dev": true, 1047 | "optional": true, 1048 | "os": [ 1049 | "freebsd" 1050 | ] 1051 | }, 1052 | "node_modules/esbuild-linux-32": { 1053 | "version": "0.14.13", 1054 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.13.tgz", 1055 | "integrity": "sha512-WzXyBx6zx16adGi7wPBvH2lRCBzYMcqnBRrJ8ciLIqYyruGvprZocX1nFWfiexjLcFxIElWnMNPX6LG7ULqyXA==", 1056 | "cpu": [ 1057 | "ia32" 1058 | ], 1059 | "dev": true, 1060 | "optional": true, 1061 | "os": [ 1062 | "linux" 1063 | ] 1064 | }, 1065 | "node_modules/esbuild-linux-64": { 1066 | "version": "0.14.13", 1067 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.13.tgz", 1068 | "integrity": "sha512-P6OFAfcoUvE7g9h/0UKm3qagvTovwqpCF1wbFLWe/BcCY8BS1bR/+SxUjCeKX2BcpIsg4/43ezHDE/ntg/iOpw==", 1069 | "cpu": [ 1070 | "x64" 1071 | ], 1072 | "dev": true, 1073 | "optional": true, 1074 | "os": [ 1075 | "linux" 1076 | ] 1077 | }, 1078 | "node_modules/esbuild-linux-arm": { 1079 | "version": "0.14.13", 1080 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.13.tgz", 1081 | "integrity": "sha512-4jmm0UySCg3Wi6FEBS7jpiPb1IyckI5um5kzYRwulHxPzkiokd6cgpcsTakR4/Y84UEicS8LnFAghHhXHZhbFg==", 1082 | "cpu": [ 1083 | "arm" 1084 | ], 1085 | "dev": true, 1086 | "optional": true, 1087 | "os": [ 1088 | "linux" 1089 | ] 1090 | }, 1091 | "node_modules/esbuild-linux-arm64": { 1092 | "version": "0.14.13", 1093 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.13.tgz", 1094 | "integrity": "sha512-k/uIvmkm4mc7vyMvJVwILgGxi2F+FuvLdmESIIWoHrnxEfEekC5AWpI/R6GQ2OMfp8snebSQLs8KL05QPnt1zA==", 1095 | "cpu": [ 1096 | "arm64" 1097 | ], 1098 | "dev": true, 1099 | "optional": true, 1100 | "os": [ 1101 | "linux" 1102 | ] 1103 | }, 1104 | "node_modules/esbuild-linux-mips64le": { 1105 | "version": "0.14.13", 1106 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.13.tgz", 1107 | "integrity": "sha512-vwYtgjQ1TRlUGL88km9wH9TjXsdZyZ/Xht1ASptg5XGRlqGquVjLGH11PfLLunoMdkQ0YTXR68b4l5gRfjVbyg==", 1108 | "cpu": [ 1109 | "mips64el" 1110 | ], 1111 | "dev": true, 1112 | "optional": true, 1113 | "os": [ 1114 | "linux" 1115 | ] 1116 | }, 1117 | "node_modules/esbuild-linux-ppc64le": { 1118 | "version": "0.14.13", 1119 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.13.tgz", 1120 | "integrity": "sha512-0KqDSIkZaYugtcdpFCd3eQ38Fg6TzhxmOpkhDIKNTwD/W2RoXeiS+Z4y5yQ3oysb/ySDOxWkwNqTdXS4sz2LdQ==", 1121 | "cpu": [ 1122 | "ppc64" 1123 | ], 1124 | "dev": true, 1125 | "optional": true, 1126 | "os": [ 1127 | "linux" 1128 | ] 1129 | }, 1130 | "node_modules/esbuild-linux-s390x": { 1131 | "version": "0.14.13", 1132 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.13.tgz", 1133 | "integrity": "sha512-bG20i7d0CN97fwPN9LaLe64E2IrI0fPZWEcoiff9hzzsvo/fQCx0YjMbPC2T3gqQ48QZRltdU9hQilTjHk3geQ==", 1134 | "cpu": [ 1135 | "s390x" 1136 | ], 1137 | "dev": true, 1138 | "optional": true, 1139 | "os": [ 1140 | "linux" 1141 | ] 1142 | }, 1143 | "node_modules/esbuild-netbsd-64": { 1144 | "version": "0.14.13", 1145 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.13.tgz", 1146 | "integrity": "sha512-jz96PQb0ltqyqLggPpcRbWxzLvWHvrZBHZQyjcOzKRDqg1fR/R1y10b1Cuv84xoIbdAf+ceNUJkMN21FfR9G2g==", 1147 | "cpu": [ 1148 | "x64" 1149 | ], 1150 | "dev": true, 1151 | "optional": true, 1152 | "os": [ 1153 | "netbsd" 1154 | ] 1155 | }, 1156 | "node_modules/esbuild-openbsd-64": { 1157 | "version": "0.14.13", 1158 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.13.tgz", 1159 | "integrity": "sha512-bp6zSo3kDCXKPM5MmVUg6DEpt+yXDx37iDGzNTn3Kf9xh6d0cdITxUC4Bx6S3Di79GVYubWs+wNjSRVFIJpryw==", 1160 | "cpu": [ 1161 | "x64" 1162 | ], 1163 | "dev": true, 1164 | "optional": true, 1165 | "os": [ 1166 | "openbsd" 1167 | ] 1168 | }, 1169 | "node_modules/esbuild-plugin-svgr": { 1170 | "version": "1.0.0", 1171 | "resolved": "https://registry.npmjs.org/esbuild-plugin-svgr/-/esbuild-plugin-svgr-1.0.0.tgz", 1172 | "integrity": "sha512-ILJ/Pk/e0sCNNnmoxMwqIUFR+91Vb456EQzVv+d8RS18P3xisfP82qoxjpNYBK2QwRi9pVzvLWNg1zzIo0eq1g==", 1173 | "dev": true, 1174 | "dependencies": { 1175 | "@svgr/core": "^6.1.2" 1176 | } 1177 | }, 1178 | "node_modules/esbuild-sunos-64": { 1179 | "version": "0.14.13", 1180 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.13.tgz", 1181 | "integrity": "sha512-08Fne1T9QHYxUnu55sV9V4i/yECADOaI1zMGET2YUa8SRkib10i80hc89U7U/G02DxpN/KUJMWEGq2wKTn0QFQ==", 1182 | "cpu": [ 1183 | "x64" 1184 | ], 1185 | "dev": true, 1186 | "optional": true, 1187 | "os": [ 1188 | "sunos" 1189 | ] 1190 | }, 1191 | "node_modules/esbuild-windows-32": { 1192 | "version": "0.14.13", 1193 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.13.tgz", 1194 | "integrity": "sha512-MW3BMIi9+fzTyDdljH0ftfT/qlD3t+aVzle1O+zZ2MgHRMQD20JwWgyqoJXhe6uDVyunrAUbcjH3qTIEZN3isg==", 1195 | "cpu": [ 1196 | "ia32" 1197 | ], 1198 | "dev": true, 1199 | "optional": true, 1200 | "os": [ 1201 | "win32" 1202 | ] 1203 | }, 1204 | "node_modules/esbuild-windows-64": { 1205 | "version": "0.14.13", 1206 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.13.tgz", 1207 | "integrity": "sha512-d7+0N+EOgBKdi/nMxlQ8QA5xHBlpcLtSrYnHsA+Xp4yZk28dYfRw1+embsHf5uN5/1iPvrJwPrcpgDH1xyy4JA==", 1208 | "cpu": [ 1209 | "x64" 1210 | ], 1211 | "dev": true, 1212 | "optional": true, 1213 | "os": [ 1214 | "win32" 1215 | ] 1216 | }, 1217 | "node_modules/esbuild-windows-arm64": { 1218 | "version": "0.14.13", 1219 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.13.tgz", 1220 | "integrity": "sha512-oX5hmgXk9yNKbb5AxThzRQm/E9kiHyDll7JJeyeT1fuGENTifv33f0INCpjBQ+Ty5ChKc84++ZQTEBwLCA12Kw==", 1221 | "cpu": [ 1222 | "arm64" 1223 | ], 1224 | "dev": true, 1225 | "optional": true, 1226 | "os": [ 1227 | "win32" 1228 | ] 1229 | }, 1230 | "node_modules/escalade": { 1231 | "version": "3.1.1", 1232 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1233 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1234 | "engines": { 1235 | "node": ">=6" 1236 | } 1237 | }, 1238 | "node_modules/escape-string-regexp": { 1239 | "version": "4.0.0", 1240 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 1241 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 1242 | "engines": { 1243 | "node": ">=10" 1244 | }, 1245 | "funding": { 1246 | "url": "https://github.com/sponsors/sindresorhus" 1247 | } 1248 | }, 1249 | "node_modules/eventemitter3": { 1250 | "version": "4.0.7", 1251 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", 1252 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", 1253 | "dev": true 1254 | }, 1255 | "node_modules/fill-range": { 1256 | "version": "7.0.1", 1257 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1258 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1259 | "dev": true, 1260 | "dependencies": { 1261 | "to-regex-range": "^5.0.1" 1262 | }, 1263 | "engines": { 1264 | "node": ">=8" 1265 | } 1266 | }, 1267 | "node_modules/find-root": { 1268 | "version": "1.1.0", 1269 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 1270 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" 1271 | }, 1272 | "node_modules/follow-redirects": { 1273 | "version": "1.14.7", 1274 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", 1275 | "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", 1276 | "dev": true, 1277 | "funding": [ 1278 | { 1279 | "type": "individual", 1280 | "url": "https://github.com/sponsors/RubenVerborgh" 1281 | } 1282 | ], 1283 | "engines": { 1284 | "node": ">=4.0" 1285 | }, 1286 | "peerDependenciesMeta": { 1287 | "debug": { 1288 | "optional": true 1289 | } 1290 | } 1291 | }, 1292 | "node_modules/fsevents": { 1293 | "version": "2.3.2", 1294 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1295 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1296 | "dev": true, 1297 | "hasInstallScript": true, 1298 | "optional": true, 1299 | "os": [ 1300 | "darwin" 1301 | ], 1302 | "engines": { 1303 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1304 | } 1305 | }, 1306 | "node_modules/function-bind": { 1307 | "version": "1.1.1", 1308 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1309 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1310 | }, 1311 | "node_modules/gensync": { 1312 | "version": "1.0.0-beta.2", 1313 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1314 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1315 | "engines": { 1316 | "node": ">=6.9.0" 1317 | } 1318 | }, 1319 | "node_modules/get-intrinsic": { 1320 | "version": "1.1.1", 1321 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 1322 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 1323 | "dev": true, 1324 | "dependencies": { 1325 | "function-bind": "^1.1.1", 1326 | "has": "^1.0.3", 1327 | "has-symbols": "^1.0.1" 1328 | }, 1329 | "funding": { 1330 | "url": "https://github.com/sponsors/ljharb" 1331 | } 1332 | }, 1333 | "node_modules/glob-parent": { 1334 | "version": "5.1.2", 1335 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1336 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1337 | "dev": true, 1338 | "dependencies": { 1339 | "is-glob": "^4.0.1" 1340 | }, 1341 | "engines": { 1342 | "node": ">= 6" 1343 | } 1344 | }, 1345 | "node_modules/globals": { 1346 | "version": "11.12.0", 1347 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1348 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1349 | "engines": { 1350 | "node": ">=4" 1351 | } 1352 | }, 1353 | "node_modules/has": { 1354 | "version": "1.0.3", 1355 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1356 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1357 | "dependencies": { 1358 | "function-bind": "^1.1.1" 1359 | }, 1360 | "engines": { 1361 | "node": ">= 0.4.0" 1362 | } 1363 | }, 1364 | "node_modules/has-flag": { 1365 | "version": "3.0.0", 1366 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1367 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1368 | "engines": { 1369 | "node": ">=4" 1370 | } 1371 | }, 1372 | "node_modules/has-symbols": { 1373 | "version": "1.0.2", 1374 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 1375 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 1376 | "dev": true, 1377 | "engines": { 1378 | "node": ">= 0.4" 1379 | }, 1380 | "funding": { 1381 | "url": "https://github.com/sponsors/ljharb" 1382 | } 1383 | }, 1384 | "node_modules/he": { 1385 | "version": "1.2.0", 1386 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 1387 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 1388 | "dev": true, 1389 | "bin": { 1390 | "he": "bin/he" 1391 | } 1392 | }, 1393 | "node_modules/html-encoding-sniffer": { 1394 | "version": "3.0.0", 1395 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", 1396 | "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", 1397 | "dev": true, 1398 | "dependencies": { 1399 | "whatwg-encoding": "^2.0.0" 1400 | }, 1401 | "engines": { 1402 | "node": ">=12" 1403 | } 1404 | }, 1405 | "node_modules/http-proxy": { 1406 | "version": "1.18.1", 1407 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", 1408 | "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", 1409 | "dev": true, 1410 | "dependencies": { 1411 | "eventemitter3": "^4.0.0", 1412 | "follow-redirects": "^1.0.0", 1413 | "requires-port": "^1.0.0" 1414 | }, 1415 | "engines": { 1416 | "node": ">=8.0.0" 1417 | } 1418 | }, 1419 | "node_modules/http-server": { 1420 | "version": "14.1.0", 1421 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.0.tgz", 1422 | "integrity": "sha512-5lYsIcZtf6pdR8tCtzAHTWrAveo4liUlJdWc7YafwK/maPgYHs+VNP6KpCClmUnSorJrARVMXqtT055zBv11Yg==", 1423 | "dev": true, 1424 | "dependencies": { 1425 | "basic-auth": "^2.0.1", 1426 | "chalk": "^4.1.2", 1427 | "corser": "^2.0.1", 1428 | "he": "^1.2.0", 1429 | "html-encoding-sniffer": "^3.0.0", 1430 | "http-proxy": "^1.18.1", 1431 | "mime": "^1.6.0", 1432 | "minimist": "^1.2.5", 1433 | "opener": "^1.5.1", 1434 | "portfinder": "^1.0.28", 1435 | "secure-compare": "3.0.1", 1436 | "union": "~0.5.0", 1437 | "url-join": "^4.0.1" 1438 | }, 1439 | "bin": { 1440 | "http-server": "bin/http-server" 1441 | }, 1442 | "engines": { 1443 | "node": ">=12" 1444 | } 1445 | }, 1446 | "node_modules/http-server/node_modules/ansi-styles": { 1447 | "version": "4.3.0", 1448 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1449 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1450 | "dev": true, 1451 | "dependencies": { 1452 | "color-convert": "^2.0.1" 1453 | }, 1454 | "engines": { 1455 | "node": ">=8" 1456 | }, 1457 | "funding": { 1458 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1459 | } 1460 | }, 1461 | "node_modules/http-server/node_modules/chalk": { 1462 | "version": "4.1.2", 1463 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1464 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1465 | "dev": true, 1466 | "dependencies": { 1467 | "ansi-styles": "^4.1.0", 1468 | "supports-color": "^7.1.0" 1469 | }, 1470 | "engines": { 1471 | "node": ">=10" 1472 | }, 1473 | "funding": { 1474 | "url": "https://github.com/chalk/chalk?sponsor=1" 1475 | } 1476 | }, 1477 | "node_modules/http-server/node_modules/color-convert": { 1478 | "version": "2.0.1", 1479 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1480 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1481 | "dev": true, 1482 | "dependencies": { 1483 | "color-name": "~1.1.4" 1484 | }, 1485 | "engines": { 1486 | "node": ">=7.0.0" 1487 | } 1488 | }, 1489 | "node_modules/http-server/node_modules/color-name": { 1490 | "version": "1.1.4", 1491 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1492 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1493 | "dev": true 1494 | }, 1495 | "node_modules/http-server/node_modules/has-flag": { 1496 | "version": "4.0.0", 1497 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1498 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1499 | "dev": true, 1500 | "engines": { 1501 | "node": ">=8" 1502 | } 1503 | }, 1504 | "node_modules/http-server/node_modules/supports-color": { 1505 | "version": "7.2.0", 1506 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1507 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1508 | "dev": true, 1509 | "dependencies": { 1510 | "has-flag": "^4.0.0" 1511 | }, 1512 | "engines": { 1513 | "node": ">=8" 1514 | } 1515 | }, 1516 | "node_modules/iconv-lite": { 1517 | "version": "0.6.3", 1518 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 1519 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 1520 | "dev": true, 1521 | "dependencies": { 1522 | "safer-buffer": ">= 2.1.2 < 3.0.0" 1523 | }, 1524 | "engines": { 1525 | "node": ">=0.10.0" 1526 | } 1527 | }, 1528 | "node_modules/import-fresh": { 1529 | "version": "3.3.0", 1530 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1531 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1532 | "dependencies": { 1533 | "parent-module": "^1.0.0", 1534 | "resolve-from": "^4.0.0" 1535 | }, 1536 | "engines": { 1537 | "node": ">=6" 1538 | }, 1539 | "funding": { 1540 | "url": "https://github.com/sponsors/sindresorhus" 1541 | } 1542 | }, 1543 | "node_modules/is-arrayish": { 1544 | "version": "0.2.1", 1545 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1546 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" 1547 | }, 1548 | "node_modules/is-binary-path": { 1549 | "version": "2.1.0", 1550 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1551 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1552 | "dev": true, 1553 | "dependencies": { 1554 | "binary-extensions": "^2.0.0" 1555 | }, 1556 | "engines": { 1557 | "node": ">=8" 1558 | } 1559 | }, 1560 | "node_modules/is-core-module": { 1561 | "version": "2.8.1", 1562 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", 1563 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 1564 | "dependencies": { 1565 | "has": "^1.0.3" 1566 | }, 1567 | "funding": { 1568 | "url": "https://github.com/sponsors/ljharb" 1569 | } 1570 | }, 1571 | "node_modules/is-extglob": { 1572 | "version": "2.1.1", 1573 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1574 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1575 | "dev": true, 1576 | "engines": { 1577 | "node": ">=0.10.0" 1578 | } 1579 | }, 1580 | "node_modules/is-glob": { 1581 | "version": "4.0.3", 1582 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1583 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1584 | "dev": true, 1585 | "dependencies": { 1586 | "is-extglob": "^2.1.1" 1587 | }, 1588 | "engines": { 1589 | "node": ">=0.10.0" 1590 | } 1591 | }, 1592 | "node_modules/is-number": { 1593 | "version": "7.0.0", 1594 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1595 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1596 | "dev": true, 1597 | "engines": { 1598 | "node": ">=0.12.0" 1599 | } 1600 | }, 1601 | "node_modules/js-tokens": { 1602 | "version": "4.0.0", 1603 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1604 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1605 | }, 1606 | "node_modules/jsesc": { 1607 | "version": "2.5.2", 1608 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 1609 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 1610 | "bin": { 1611 | "jsesc": "bin/jsesc" 1612 | }, 1613 | "engines": { 1614 | "node": ">=4" 1615 | } 1616 | }, 1617 | "node_modules/json-parse-even-better-errors": { 1618 | "version": "2.3.1", 1619 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 1620 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" 1621 | }, 1622 | "node_modules/json5": { 1623 | "version": "2.2.0", 1624 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", 1625 | "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", 1626 | "dependencies": { 1627 | "minimist": "^1.2.5" 1628 | }, 1629 | "bin": { 1630 | "json5": "lib/cli.js" 1631 | }, 1632 | "engines": { 1633 | "node": ">=6" 1634 | } 1635 | }, 1636 | "node_modules/lines-and-columns": { 1637 | "version": "1.2.4", 1638 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 1639 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 1640 | }, 1641 | "node_modules/lodash": { 1642 | "version": "4.17.21", 1643 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1644 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 1645 | "dev": true 1646 | }, 1647 | "node_modules/loose-envify": { 1648 | "version": "1.4.0", 1649 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1650 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1651 | "dependencies": { 1652 | "js-tokens": "^3.0.0 || ^4.0.0" 1653 | }, 1654 | "bin": { 1655 | "loose-envify": "cli.js" 1656 | } 1657 | }, 1658 | "node_modules/mime": { 1659 | "version": "1.6.0", 1660 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1661 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 1662 | "dev": true, 1663 | "bin": { 1664 | "mime": "cli.js" 1665 | }, 1666 | "engines": { 1667 | "node": ">=4" 1668 | } 1669 | }, 1670 | "node_modules/minimist": { 1671 | "version": "1.2.5", 1672 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1673 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 1674 | }, 1675 | "node_modules/mkdirp": { 1676 | "version": "0.5.5", 1677 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 1678 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 1679 | "dev": true, 1680 | "dependencies": { 1681 | "minimist": "^1.2.5" 1682 | }, 1683 | "bin": { 1684 | "mkdirp": "bin/cmd.js" 1685 | } 1686 | }, 1687 | "node_modules/ms": { 1688 | "version": "2.1.2", 1689 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1690 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1691 | }, 1692 | "node_modules/node-releases": { 1693 | "version": "2.0.1", 1694 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", 1695 | "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" 1696 | }, 1697 | "node_modules/normalize-path": { 1698 | "version": "3.0.0", 1699 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1700 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1701 | "dev": true, 1702 | "engines": { 1703 | "node": ">=0.10.0" 1704 | } 1705 | }, 1706 | "node_modules/object-assign": { 1707 | "version": "4.1.1", 1708 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1709 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1710 | "engines": { 1711 | "node": ">=0.10.0" 1712 | } 1713 | }, 1714 | "node_modules/object-inspect": { 1715 | "version": "1.12.0", 1716 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", 1717 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", 1718 | "dev": true, 1719 | "funding": { 1720 | "url": "https://github.com/sponsors/ljharb" 1721 | } 1722 | }, 1723 | "node_modules/opener": { 1724 | "version": "1.5.2", 1725 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", 1726 | "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", 1727 | "dev": true, 1728 | "bin": { 1729 | "opener": "bin/opener-bin.js" 1730 | } 1731 | }, 1732 | "node_modules/parent-module": { 1733 | "version": "1.0.1", 1734 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1735 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1736 | "dependencies": { 1737 | "callsites": "^3.0.0" 1738 | }, 1739 | "engines": { 1740 | "node": ">=6" 1741 | } 1742 | }, 1743 | "node_modules/parse-json": { 1744 | "version": "5.2.0", 1745 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 1746 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 1747 | "dependencies": { 1748 | "@babel/code-frame": "^7.0.0", 1749 | "error-ex": "^1.3.1", 1750 | "json-parse-even-better-errors": "^2.3.0", 1751 | "lines-and-columns": "^1.1.6" 1752 | }, 1753 | "engines": { 1754 | "node": ">=8" 1755 | }, 1756 | "funding": { 1757 | "url": "https://github.com/sponsors/sindresorhus" 1758 | } 1759 | }, 1760 | "node_modules/path-parse": { 1761 | "version": "1.0.7", 1762 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1763 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 1764 | }, 1765 | "node_modules/path-type": { 1766 | "version": "4.0.0", 1767 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1768 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1769 | "engines": { 1770 | "node": ">=8" 1771 | } 1772 | }, 1773 | "node_modules/picocolors": { 1774 | "version": "1.0.0", 1775 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1776 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 1777 | }, 1778 | "node_modules/picomatch": { 1779 | "version": "2.3.1", 1780 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1781 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1782 | "dev": true, 1783 | "engines": { 1784 | "node": ">=8.6" 1785 | }, 1786 | "funding": { 1787 | "url": "https://github.com/sponsors/jonschlinkert" 1788 | } 1789 | }, 1790 | "node_modules/portfinder": { 1791 | "version": "1.0.28", 1792 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", 1793 | "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", 1794 | "dev": true, 1795 | "dependencies": { 1796 | "async": "^2.6.2", 1797 | "debug": "^3.1.1", 1798 | "mkdirp": "^0.5.5" 1799 | }, 1800 | "engines": { 1801 | "node": ">= 0.12.0" 1802 | } 1803 | }, 1804 | "node_modules/portfinder/node_modules/debug": { 1805 | "version": "3.2.7", 1806 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 1807 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 1808 | "dev": true, 1809 | "dependencies": { 1810 | "ms": "^2.1.1" 1811 | } 1812 | }, 1813 | "node_modules/prop-types": { 1814 | "version": "15.8.1", 1815 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 1816 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 1817 | "dependencies": { 1818 | "loose-envify": "^1.4.0", 1819 | "object-assign": "^4.1.1", 1820 | "react-is": "^16.13.1" 1821 | } 1822 | }, 1823 | "node_modules/qs": { 1824 | "version": "6.10.3", 1825 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", 1826 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", 1827 | "dev": true, 1828 | "dependencies": { 1829 | "side-channel": "^1.0.4" 1830 | }, 1831 | "engines": { 1832 | "node": ">=0.6" 1833 | }, 1834 | "funding": { 1835 | "url": "https://github.com/sponsors/ljharb" 1836 | } 1837 | }, 1838 | "node_modules/react": { 1839 | "version": "17.0.2", 1840 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", 1841 | "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", 1842 | "dependencies": { 1843 | "loose-envify": "^1.1.0", 1844 | "object-assign": "^4.1.1" 1845 | }, 1846 | "engines": { 1847 | "node": ">=0.10.0" 1848 | } 1849 | }, 1850 | "node_modules/react-dom": { 1851 | "version": "17.0.2", 1852 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", 1853 | "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", 1854 | "dependencies": { 1855 | "loose-envify": "^1.1.0", 1856 | "object-assign": "^4.1.1", 1857 | "scheduler": "^0.20.2" 1858 | }, 1859 | "peerDependencies": { 1860 | "react": "17.0.2" 1861 | } 1862 | }, 1863 | "node_modules/react-is": { 1864 | "version": "16.13.1", 1865 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 1866 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 1867 | }, 1868 | "node_modules/react-transition-group": { 1869 | "version": "4.4.2", 1870 | "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", 1871 | "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", 1872 | "dependencies": { 1873 | "@babel/runtime": "^7.5.5", 1874 | "dom-helpers": "^5.0.1", 1875 | "loose-envify": "^1.4.0", 1876 | "prop-types": "^15.6.2" 1877 | }, 1878 | "peerDependencies": { 1879 | "react": ">=16.6.0", 1880 | "react-dom": ">=16.6.0" 1881 | } 1882 | }, 1883 | "node_modules/readdirp": { 1884 | "version": "3.6.0", 1885 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1886 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1887 | "dev": true, 1888 | "dependencies": { 1889 | "picomatch": "^2.2.1" 1890 | }, 1891 | "engines": { 1892 | "node": ">=8.10.0" 1893 | } 1894 | }, 1895 | "node_modules/regenerator-runtime": { 1896 | "version": "0.13.9", 1897 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", 1898 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" 1899 | }, 1900 | "node_modules/requires-port": { 1901 | "version": "1.0.0", 1902 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 1903 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", 1904 | "dev": true 1905 | }, 1906 | "node_modules/rescript": { 1907 | "version": "9.1.4", 1908 | "resolved": "https://registry.npmjs.org/rescript/-/rescript-9.1.4.tgz", 1909 | "integrity": "sha512-aXANK4IqecJzdnDpJUsU6pxMViCR5ogAxzuqS0mOr8TloMnzAjJFu63fjD6LCkWrKAhlMkFFzQvVQYaAaVkFXw==", 1910 | "dev": true, 1911 | "hasInstallScript": true, 1912 | "bin": { 1913 | "bsc": "bsc", 1914 | "bsrefmt": "bsrefmt", 1915 | "bstracing": "lib/bstracing", 1916 | "rescript": "rescript" 1917 | } 1918 | }, 1919 | "node_modules/resolve": { 1920 | "version": "1.22.0", 1921 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 1922 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 1923 | "dependencies": { 1924 | "is-core-module": "^2.8.1", 1925 | "path-parse": "^1.0.7", 1926 | "supports-preserve-symlinks-flag": "^1.0.0" 1927 | }, 1928 | "bin": { 1929 | "resolve": "bin/resolve" 1930 | }, 1931 | "funding": { 1932 | "url": "https://github.com/sponsors/ljharb" 1933 | } 1934 | }, 1935 | "node_modules/resolve-from": { 1936 | "version": "4.0.0", 1937 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1938 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1939 | "engines": { 1940 | "node": ">=4" 1941 | } 1942 | }, 1943 | "node_modules/safe-buffer": { 1944 | "version": "5.1.2", 1945 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1946 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1947 | }, 1948 | "node_modules/safer-buffer": { 1949 | "version": "2.1.2", 1950 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1951 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1952 | "dev": true 1953 | }, 1954 | "node_modules/scheduler": { 1955 | "version": "0.20.2", 1956 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", 1957 | "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", 1958 | "dependencies": { 1959 | "loose-envify": "^1.1.0", 1960 | "object-assign": "^4.1.1" 1961 | } 1962 | }, 1963 | "node_modules/secure-compare": { 1964 | "version": "3.0.1", 1965 | "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", 1966 | "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", 1967 | "dev": true 1968 | }, 1969 | "node_modules/semver": { 1970 | "version": "6.3.0", 1971 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1972 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1973 | "bin": { 1974 | "semver": "bin/semver.js" 1975 | } 1976 | }, 1977 | "node_modules/side-channel": { 1978 | "version": "1.0.4", 1979 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1980 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1981 | "dev": true, 1982 | "dependencies": { 1983 | "call-bind": "^1.0.0", 1984 | "get-intrinsic": "^1.0.2", 1985 | "object-inspect": "^1.9.0" 1986 | }, 1987 | "funding": { 1988 | "url": "https://github.com/sponsors/ljharb" 1989 | } 1990 | }, 1991 | "node_modules/source-map": { 1992 | "version": "0.5.7", 1993 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1994 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1995 | "engines": { 1996 | "node": ">=0.10.0" 1997 | } 1998 | }, 1999 | "node_modules/stylis": { 2000 | "version": "4.0.13", 2001 | "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", 2002 | "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" 2003 | }, 2004 | "node_modules/supports-color": { 2005 | "version": "5.5.0", 2006 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2007 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2008 | "dependencies": { 2009 | "has-flag": "^3.0.0" 2010 | }, 2011 | "engines": { 2012 | "node": ">=4" 2013 | } 2014 | }, 2015 | "node_modules/supports-preserve-symlinks-flag": { 2016 | "version": "1.0.0", 2017 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2018 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2019 | "engines": { 2020 | "node": ">= 0.4" 2021 | }, 2022 | "funding": { 2023 | "url": "https://github.com/sponsors/ljharb" 2024 | } 2025 | }, 2026 | "node_modules/svg-parser": { 2027 | "version": "2.0.4", 2028 | "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", 2029 | "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", 2030 | "dev": true 2031 | }, 2032 | "node_modules/to-fast-properties": { 2033 | "version": "2.0.0", 2034 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 2035 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 2036 | "engines": { 2037 | "node": ">=4" 2038 | } 2039 | }, 2040 | "node_modules/to-regex-range": { 2041 | "version": "5.0.1", 2042 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2043 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2044 | "dev": true, 2045 | "dependencies": { 2046 | "is-number": "^7.0.0" 2047 | }, 2048 | "engines": { 2049 | "node": ">=8.0" 2050 | } 2051 | }, 2052 | "node_modules/union": { 2053 | "version": "0.5.0", 2054 | "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", 2055 | "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", 2056 | "dev": true, 2057 | "dependencies": { 2058 | "qs": "^6.4.0" 2059 | }, 2060 | "engines": { 2061 | "node": ">= 0.8.0" 2062 | } 2063 | }, 2064 | "node_modules/url-join": { 2065 | "version": "4.0.1", 2066 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", 2067 | "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", 2068 | "dev": true 2069 | }, 2070 | "node_modules/whatwg-encoding": { 2071 | "version": "2.0.0", 2072 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", 2073 | "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", 2074 | "dev": true, 2075 | "dependencies": { 2076 | "iconv-lite": "0.6.3" 2077 | }, 2078 | "engines": { 2079 | "node": ">=12" 2080 | } 2081 | }, 2082 | "node_modules/yaml": { 2083 | "version": "1.10.2", 2084 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 2085 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 2086 | "engines": { 2087 | "node": ">= 6" 2088 | } 2089 | } 2090 | }, 2091 | "dependencies": { 2092 | "@babel/code-frame": { 2093 | "version": "7.16.7", 2094 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", 2095 | "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", 2096 | "requires": { 2097 | "@babel/highlight": "^7.16.7" 2098 | } 2099 | }, 2100 | "@babel/compat-data": { 2101 | "version": "7.16.8", 2102 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", 2103 | "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==" 2104 | }, 2105 | "@babel/core": { 2106 | "version": "7.16.12", 2107 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", 2108 | "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", 2109 | "requires": { 2110 | "@babel/code-frame": "^7.16.7", 2111 | "@babel/generator": "^7.16.8", 2112 | "@babel/helper-compilation-targets": "^7.16.7", 2113 | "@babel/helper-module-transforms": "^7.16.7", 2114 | "@babel/helpers": "^7.16.7", 2115 | "@babel/parser": "^7.16.12", 2116 | "@babel/template": "^7.16.7", 2117 | "@babel/traverse": "^7.16.10", 2118 | "@babel/types": "^7.16.8", 2119 | "convert-source-map": "^1.7.0", 2120 | "debug": "^4.1.0", 2121 | "gensync": "^1.0.0-beta.2", 2122 | "json5": "^2.1.2", 2123 | "semver": "^6.3.0", 2124 | "source-map": "^0.5.0" 2125 | } 2126 | }, 2127 | "@babel/generator": { 2128 | "version": "7.16.8", 2129 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", 2130 | "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", 2131 | "requires": { 2132 | "@babel/types": "^7.16.8", 2133 | "jsesc": "^2.5.1", 2134 | "source-map": "^0.5.0" 2135 | } 2136 | }, 2137 | "@babel/helper-compilation-targets": { 2138 | "version": "7.16.7", 2139 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", 2140 | "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", 2141 | "requires": { 2142 | "@babel/compat-data": "^7.16.4", 2143 | "@babel/helper-validator-option": "^7.16.7", 2144 | "browserslist": "^4.17.5", 2145 | "semver": "^6.3.0" 2146 | } 2147 | }, 2148 | "@babel/helper-environment-visitor": { 2149 | "version": "7.16.7", 2150 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", 2151 | "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", 2152 | "requires": { 2153 | "@babel/types": "^7.16.7" 2154 | } 2155 | }, 2156 | "@babel/helper-function-name": { 2157 | "version": "7.16.7", 2158 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", 2159 | "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", 2160 | "requires": { 2161 | "@babel/helper-get-function-arity": "^7.16.7", 2162 | "@babel/template": "^7.16.7", 2163 | "@babel/types": "^7.16.7" 2164 | } 2165 | }, 2166 | "@babel/helper-get-function-arity": { 2167 | "version": "7.16.7", 2168 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", 2169 | "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", 2170 | "requires": { 2171 | "@babel/types": "^7.16.7" 2172 | } 2173 | }, 2174 | "@babel/helper-hoist-variables": { 2175 | "version": "7.16.7", 2176 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", 2177 | "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", 2178 | "requires": { 2179 | "@babel/types": "^7.16.7" 2180 | } 2181 | }, 2182 | "@babel/helper-module-imports": { 2183 | "version": "7.16.7", 2184 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", 2185 | "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", 2186 | "requires": { 2187 | "@babel/types": "^7.16.7" 2188 | } 2189 | }, 2190 | "@babel/helper-module-transforms": { 2191 | "version": "7.16.7", 2192 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", 2193 | "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", 2194 | "requires": { 2195 | "@babel/helper-environment-visitor": "^7.16.7", 2196 | "@babel/helper-module-imports": "^7.16.7", 2197 | "@babel/helper-simple-access": "^7.16.7", 2198 | "@babel/helper-split-export-declaration": "^7.16.7", 2199 | "@babel/helper-validator-identifier": "^7.16.7", 2200 | "@babel/template": "^7.16.7", 2201 | "@babel/traverse": "^7.16.7", 2202 | "@babel/types": "^7.16.7" 2203 | } 2204 | }, 2205 | "@babel/helper-plugin-utils": { 2206 | "version": "7.16.7", 2207 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", 2208 | "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" 2209 | }, 2210 | "@babel/helper-simple-access": { 2211 | "version": "7.16.7", 2212 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", 2213 | "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", 2214 | "requires": { 2215 | "@babel/types": "^7.16.7" 2216 | } 2217 | }, 2218 | "@babel/helper-split-export-declaration": { 2219 | "version": "7.16.7", 2220 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", 2221 | "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", 2222 | "requires": { 2223 | "@babel/types": "^7.16.7" 2224 | } 2225 | }, 2226 | "@babel/helper-validator-identifier": { 2227 | "version": "7.16.7", 2228 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", 2229 | "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" 2230 | }, 2231 | "@babel/helper-validator-option": { 2232 | "version": "7.16.7", 2233 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", 2234 | "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" 2235 | }, 2236 | "@babel/helpers": { 2237 | "version": "7.16.7", 2238 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", 2239 | "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", 2240 | "requires": { 2241 | "@babel/template": "^7.16.7", 2242 | "@babel/traverse": "^7.16.7", 2243 | "@babel/types": "^7.16.7" 2244 | } 2245 | }, 2246 | "@babel/highlight": { 2247 | "version": "7.16.10", 2248 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", 2249 | "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", 2250 | "requires": { 2251 | "@babel/helper-validator-identifier": "^7.16.7", 2252 | "chalk": "^2.0.0", 2253 | "js-tokens": "^4.0.0" 2254 | } 2255 | }, 2256 | "@babel/parser": { 2257 | "version": "7.16.12", 2258 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", 2259 | "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==" 2260 | }, 2261 | "@babel/plugin-syntax-jsx": { 2262 | "version": "7.16.7", 2263 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", 2264 | "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", 2265 | "requires": { 2266 | "@babel/helper-plugin-utils": "^7.16.7" 2267 | } 2268 | }, 2269 | "@babel/runtime": { 2270 | "version": "7.16.7", 2271 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", 2272 | "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", 2273 | "requires": { 2274 | "regenerator-runtime": "^0.13.4" 2275 | } 2276 | }, 2277 | "@babel/template": { 2278 | "version": "7.16.7", 2279 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", 2280 | "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", 2281 | "requires": { 2282 | "@babel/code-frame": "^7.16.7", 2283 | "@babel/parser": "^7.16.7", 2284 | "@babel/types": "^7.16.7" 2285 | } 2286 | }, 2287 | "@babel/traverse": { 2288 | "version": "7.16.10", 2289 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", 2290 | "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", 2291 | "requires": { 2292 | "@babel/code-frame": "^7.16.7", 2293 | "@babel/generator": "^7.16.8", 2294 | "@babel/helper-environment-visitor": "^7.16.7", 2295 | "@babel/helper-function-name": "^7.16.7", 2296 | "@babel/helper-hoist-variables": "^7.16.7", 2297 | "@babel/helper-split-export-declaration": "^7.16.7", 2298 | "@babel/parser": "^7.16.10", 2299 | "@babel/types": "^7.16.8", 2300 | "debug": "^4.1.0", 2301 | "globals": "^11.1.0" 2302 | } 2303 | }, 2304 | "@babel/types": { 2305 | "version": "7.16.8", 2306 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", 2307 | "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", 2308 | "requires": { 2309 | "@babel/helper-validator-identifier": "^7.16.7", 2310 | "to-fast-properties": "^2.0.0" 2311 | } 2312 | }, 2313 | "@emotion/babel-plugin": { 2314 | "version": "11.7.2", 2315 | "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz", 2316 | "integrity": "sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==", 2317 | "requires": { 2318 | "@babel/helper-module-imports": "^7.12.13", 2319 | "@babel/plugin-syntax-jsx": "^7.12.13", 2320 | "@babel/runtime": "^7.13.10", 2321 | "@emotion/hash": "^0.8.0", 2322 | "@emotion/memoize": "^0.7.5", 2323 | "@emotion/serialize": "^1.0.2", 2324 | "babel-plugin-macros": "^2.6.1", 2325 | "convert-source-map": "^1.5.0", 2326 | "escape-string-regexp": "^4.0.0", 2327 | "find-root": "^1.1.0", 2328 | "source-map": "^0.5.7", 2329 | "stylis": "4.0.13" 2330 | } 2331 | }, 2332 | "@emotion/cache": { 2333 | "version": "11.7.1", 2334 | "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", 2335 | "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", 2336 | "requires": { 2337 | "@emotion/memoize": "^0.7.4", 2338 | "@emotion/sheet": "^1.1.0", 2339 | "@emotion/utils": "^1.0.0", 2340 | "@emotion/weak-memoize": "^0.2.5", 2341 | "stylis": "4.0.13" 2342 | } 2343 | }, 2344 | "@emotion/css": { 2345 | "version": "11.7.1", 2346 | "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.7.1.tgz", 2347 | "integrity": "sha512-RUUgPlMZunlc7SE5A6Hg+VWRzb2cU6O9xlV78KCFgcnl25s7Qz/20oQg71iKudpLqk7xj0vhbJlwcJJMT0BOZg==", 2348 | "requires": { 2349 | "@emotion/babel-plugin": "^11.7.1", 2350 | "@emotion/cache": "^11.7.1", 2351 | "@emotion/serialize": "^1.0.0", 2352 | "@emotion/sheet": "^1.0.3", 2353 | "@emotion/utils": "^1.0.0" 2354 | } 2355 | }, 2356 | "@emotion/hash": { 2357 | "version": "0.8.0", 2358 | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", 2359 | "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" 2360 | }, 2361 | "@emotion/memoize": { 2362 | "version": "0.7.5", 2363 | "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", 2364 | "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" 2365 | }, 2366 | "@emotion/serialize": { 2367 | "version": "1.0.2", 2368 | "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz", 2369 | "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==", 2370 | "requires": { 2371 | "@emotion/hash": "^0.8.0", 2372 | "@emotion/memoize": "^0.7.4", 2373 | "@emotion/unitless": "^0.7.5", 2374 | "@emotion/utils": "^1.0.0", 2375 | "csstype": "^3.0.2" 2376 | } 2377 | }, 2378 | "@emotion/sheet": { 2379 | "version": "1.1.0", 2380 | "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz", 2381 | "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==" 2382 | }, 2383 | "@emotion/unitless": { 2384 | "version": "0.7.5", 2385 | "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", 2386 | "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" 2387 | }, 2388 | "@emotion/utils": { 2389 | "version": "1.0.0", 2390 | "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz", 2391 | "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==" 2392 | }, 2393 | "@emotion/weak-memoize": { 2394 | "version": "0.2.5", 2395 | "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", 2396 | "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" 2397 | }, 2398 | "@rescript/react": { 2399 | "version": "0.10.3", 2400 | "resolved": "https://registry.npmjs.org/@rescript/react/-/react-0.10.3.tgz", 2401 | "integrity": "sha512-Lf9rzrR3bQPKJjOK3PBRa/B3xrJ7CqQ1HYr9VHPVxJidarIJJFZBhj0Dg1uZURX+Wg/xiP0PHFxXmdj2bK8Vxw==", 2402 | "dev": true, 2403 | "requires": {} 2404 | }, 2405 | "@svgr/babel-plugin-add-jsx-attribute": { 2406 | "version": "6.0.0", 2407 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz", 2408 | "integrity": "sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==", 2409 | "dev": true, 2410 | "requires": {} 2411 | }, 2412 | "@svgr/babel-plugin-remove-jsx-attribute": { 2413 | "version": "6.0.0", 2414 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz", 2415 | "integrity": "sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==", 2416 | "dev": true, 2417 | "requires": {} 2418 | }, 2419 | "@svgr/babel-plugin-remove-jsx-empty-expression": { 2420 | "version": "6.0.0", 2421 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz", 2422 | "integrity": "sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==", 2423 | "dev": true, 2424 | "requires": {} 2425 | }, 2426 | "@svgr/babel-plugin-replace-jsx-attribute-value": { 2427 | "version": "6.0.0", 2428 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz", 2429 | "integrity": "sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==", 2430 | "dev": true, 2431 | "requires": {} 2432 | }, 2433 | "@svgr/babel-plugin-svg-dynamic-title": { 2434 | "version": "6.0.0", 2435 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz", 2436 | "integrity": "sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==", 2437 | "dev": true, 2438 | "requires": {} 2439 | }, 2440 | "@svgr/babel-plugin-svg-em-dimensions": { 2441 | "version": "6.0.0", 2442 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz", 2443 | "integrity": "sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==", 2444 | "dev": true, 2445 | "requires": {} 2446 | }, 2447 | "@svgr/babel-plugin-transform-react-native-svg": { 2448 | "version": "6.0.0", 2449 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz", 2450 | "integrity": "sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==", 2451 | "dev": true, 2452 | "requires": {} 2453 | }, 2454 | "@svgr/babel-plugin-transform-svg-component": { 2455 | "version": "6.2.0", 2456 | "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz", 2457 | "integrity": "sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg==", 2458 | "dev": true, 2459 | "requires": {} 2460 | }, 2461 | "@svgr/babel-preset": { 2462 | "version": "6.2.0", 2463 | "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.2.0.tgz", 2464 | "integrity": "sha512-4WQNY0J71JIaL03DRn0vLiz87JXx0b9dYm2aA8XHlQJQoixMl4r/soYHm8dsaJZ3jWtkCiOYy48dp9izvXhDkQ==", 2465 | "dev": true, 2466 | "requires": { 2467 | "@svgr/babel-plugin-add-jsx-attribute": "^6.0.0", 2468 | "@svgr/babel-plugin-remove-jsx-attribute": "^6.0.0", 2469 | "@svgr/babel-plugin-remove-jsx-empty-expression": "^6.0.0", 2470 | "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.0.0", 2471 | "@svgr/babel-plugin-svg-dynamic-title": "^6.0.0", 2472 | "@svgr/babel-plugin-svg-em-dimensions": "^6.0.0", 2473 | "@svgr/babel-plugin-transform-react-native-svg": "^6.0.0", 2474 | "@svgr/babel-plugin-transform-svg-component": "^6.2.0" 2475 | } 2476 | }, 2477 | "@svgr/core": { 2478 | "version": "6.2.0", 2479 | "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.2.0.tgz", 2480 | "integrity": "sha512-n5PrYAPoTpWGykqa8U05/TVTHOrVR/TxrUJ5EWHP9Db6vR3qnqzwAVLiFT1+slA7zQoJTXafQb+akwThf9SxGw==", 2481 | "dev": true, 2482 | "requires": { 2483 | "@svgr/plugin-jsx": "^6.2.0", 2484 | "camelcase": "^6.2.0", 2485 | "cosmiconfig": "^7.0.1" 2486 | }, 2487 | "dependencies": { 2488 | "cosmiconfig": { 2489 | "version": "7.0.1", 2490 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", 2491 | "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", 2492 | "dev": true, 2493 | "requires": { 2494 | "@types/parse-json": "^4.0.0", 2495 | "import-fresh": "^3.2.1", 2496 | "parse-json": "^5.0.0", 2497 | "path-type": "^4.0.0", 2498 | "yaml": "^1.10.0" 2499 | } 2500 | } 2501 | } 2502 | }, 2503 | "@svgr/hast-util-to-babel-ast": { 2504 | "version": "6.0.0", 2505 | "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.0.0.tgz", 2506 | "integrity": "sha512-S+TxtCdDyRGafH1VG1t/uPZ87aOYOHzWL8kqz4FoSZcIbzWA6rnOmjNViNiDzqmEpzp2PW5o5mZfvC9DiVZhTQ==", 2507 | "dev": true, 2508 | "requires": { 2509 | "@babel/types": "^7.15.6", 2510 | "entities": "^3.0.1" 2511 | } 2512 | }, 2513 | "@svgr/plugin-jsx": { 2514 | "version": "6.2.0", 2515 | "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.0.tgz", 2516 | "integrity": "sha512-QJDEe7K5Hkd4Eewu4pcjiOKTCtjB47Ol6lDLXVhf+jEewi+EKJAaAmM+bNixfW6LSNEg8RwOYQN3GZcprqKfHw==", 2517 | "dev": true, 2518 | "requires": { 2519 | "@babel/core": "^7.15.5", 2520 | "@svgr/babel-preset": "^6.2.0", 2521 | "@svgr/hast-util-to-babel-ast": "^6.0.0", 2522 | "svg-parser": "^2.0.2" 2523 | } 2524 | }, 2525 | "@types/parse-json": { 2526 | "version": "4.0.0", 2527 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 2528 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" 2529 | }, 2530 | "ansi-styles": { 2531 | "version": "3.2.1", 2532 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 2533 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 2534 | "requires": { 2535 | "color-convert": "^1.9.0" 2536 | } 2537 | }, 2538 | "anymatch": { 2539 | "version": "3.1.2", 2540 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 2541 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 2542 | "dev": true, 2543 | "requires": { 2544 | "normalize-path": "^3.0.0", 2545 | "picomatch": "^2.0.4" 2546 | } 2547 | }, 2548 | "async": { 2549 | "version": "2.6.3", 2550 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", 2551 | "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", 2552 | "dev": true, 2553 | "requires": { 2554 | "lodash": "^4.17.14" 2555 | } 2556 | }, 2557 | "babel-plugin-macros": { 2558 | "version": "2.8.0", 2559 | "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", 2560 | "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", 2561 | "requires": { 2562 | "@babel/runtime": "^7.7.2", 2563 | "cosmiconfig": "^6.0.0", 2564 | "resolve": "^1.12.0" 2565 | } 2566 | }, 2567 | "basic-auth": { 2568 | "version": "2.0.1", 2569 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", 2570 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", 2571 | "dev": true, 2572 | "requires": { 2573 | "safe-buffer": "5.1.2" 2574 | } 2575 | }, 2576 | "binary-extensions": { 2577 | "version": "2.2.0", 2578 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 2579 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 2580 | "dev": true 2581 | }, 2582 | "braces": { 2583 | "version": "3.0.2", 2584 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 2585 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 2586 | "dev": true, 2587 | "requires": { 2588 | "fill-range": "^7.0.1" 2589 | } 2590 | }, 2591 | "browserslist": { 2592 | "version": "4.19.1", 2593 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", 2594 | "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", 2595 | "requires": { 2596 | "caniuse-lite": "^1.0.30001286", 2597 | "electron-to-chromium": "^1.4.17", 2598 | "escalade": "^3.1.1", 2599 | "node-releases": "^2.0.1", 2600 | "picocolors": "^1.0.0" 2601 | } 2602 | }, 2603 | "call-bind": { 2604 | "version": "1.0.2", 2605 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 2606 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 2607 | "dev": true, 2608 | "requires": { 2609 | "function-bind": "^1.1.1", 2610 | "get-intrinsic": "^1.0.2" 2611 | } 2612 | }, 2613 | "callsites": { 2614 | "version": "3.1.0", 2615 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2616 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" 2617 | }, 2618 | "camelcase": { 2619 | "version": "6.3.0", 2620 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", 2621 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", 2622 | "dev": true 2623 | }, 2624 | "caniuse-lite": { 2625 | "version": "1.0.30001301", 2626 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", 2627 | "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==" 2628 | }, 2629 | "chalk": { 2630 | "version": "2.4.2", 2631 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 2632 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 2633 | "requires": { 2634 | "ansi-styles": "^3.2.1", 2635 | "escape-string-regexp": "^1.0.5", 2636 | "supports-color": "^5.3.0" 2637 | }, 2638 | "dependencies": { 2639 | "escape-string-regexp": { 2640 | "version": "1.0.5", 2641 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 2642 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 2643 | } 2644 | } 2645 | }, 2646 | "chokidar": { 2647 | "version": "3.5.3", 2648 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 2649 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 2650 | "dev": true, 2651 | "requires": { 2652 | "anymatch": "~3.1.2", 2653 | "braces": "~3.0.2", 2654 | "fsevents": "~2.3.2", 2655 | "glob-parent": "~5.1.2", 2656 | "is-binary-path": "~2.1.0", 2657 | "is-glob": "~4.0.1", 2658 | "normalize-path": "~3.0.0", 2659 | "readdirp": "~3.6.0" 2660 | } 2661 | }, 2662 | "color-convert": { 2663 | "version": "1.9.3", 2664 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 2665 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 2666 | "requires": { 2667 | "color-name": "1.1.3" 2668 | } 2669 | }, 2670 | "color-name": { 2671 | "version": "1.1.3", 2672 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 2673 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 2674 | }, 2675 | "convert-source-map": { 2676 | "version": "1.8.0", 2677 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", 2678 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", 2679 | "requires": { 2680 | "safe-buffer": "~5.1.1" 2681 | } 2682 | }, 2683 | "corser": { 2684 | "version": "2.0.1", 2685 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", 2686 | "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", 2687 | "dev": true 2688 | }, 2689 | "cosmiconfig": { 2690 | "version": "6.0.0", 2691 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", 2692 | "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", 2693 | "requires": { 2694 | "@types/parse-json": "^4.0.0", 2695 | "import-fresh": "^3.1.0", 2696 | "parse-json": "^5.0.0", 2697 | "path-type": "^4.0.0", 2698 | "yaml": "^1.7.2" 2699 | } 2700 | }, 2701 | "csstype": { 2702 | "version": "3.0.10", 2703 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", 2704 | "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" 2705 | }, 2706 | "debug": { 2707 | "version": "4.3.3", 2708 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", 2709 | "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", 2710 | "requires": { 2711 | "ms": "2.1.2" 2712 | } 2713 | }, 2714 | "dom-helpers": { 2715 | "version": "5.2.1", 2716 | "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", 2717 | "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", 2718 | "requires": { 2719 | "@babel/runtime": "^7.8.7", 2720 | "csstype": "^3.0.2" 2721 | } 2722 | }, 2723 | "electron-to-chromium": { 2724 | "version": "1.4.51", 2725 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.51.tgz", 2726 | "integrity": "sha512-JNEmcYl3mk1tGQmy0EvL5eik/CKSBuzAyGP0QFdG6LIgxQe3II0BL1m2zKc2MZMf3uGqHWE1TFddJML0RpjSHQ==" 2727 | }, 2728 | "entities": { 2729 | "version": "3.0.1", 2730 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", 2731 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", 2732 | "dev": true 2733 | }, 2734 | "error-ex": { 2735 | "version": "1.3.2", 2736 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 2737 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 2738 | "requires": { 2739 | "is-arrayish": "^0.2.1" 2740 | } 2741 | }, 2742 | "esbuild": { 2743 | "version": "0.14.13", 2744 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.13.tgz", 2745 | "integrity": "sha512-FIxvAdj3i2oHA6ex+E67bG7zlSTO+slt8kU2ogHDgGtrQLy2HNChv3PYjiFTYkt8hZbEAniZCXVeHn+FrHt7dA==", 2746 | "dev": true, 2747 | "requires": { 2748 | "esbuild-android-arm64": "0.14.13", 2749 | "esbuild-darwin-64": "0.14.13", 2750 | "esbuild-darwin-arm64": "0.14.13", 2751 | "esbuild-freebsd-64": "0.14.13", 2752 | "esbuild-freebsd-arm64": "0.14.13", 2753 | "esbuild-linux-32": "0.14.13", 2754 | "esbuild-linux-64": "0.14.13", 2755 | "esbuild-linux-arm": "0.14.13", 2756 | "esbuild-linux-arm64": "0.14.13", 2757 | "esbuild-linux-mips64le": "0.14.13", 2758 | "esbuild-linux-ppc64le": "0.14.13", 2759 | "esbuild-linux-s390x": "0.14.13", 2760 | "esbuild-netbsd-64": "0.14.13", 2761 | "esbuild-openbsd-64": "0.14.13", 2762 | "esbuild-sunos-64": "0.14.13", 2763 | "esbuild-windows-32": "0.14.13", 2764 | "esbuild-windows-64": "0.14.13", 2765 | "esbuild-windows-arm64": "0.14.13" 2766 | } 2767 | }, 2768 | "esbuild-android-arm64": { 2769 | "version": "0.14.13", 2770 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.13.tgz", 2771 | "integrity": "sha512-rhtwl+KJ3BzzXkK09N3/YbEF1i5WhriysJEStoeWNBzchx9hlmzyWmDGQQhu56HF78ua3JrVPyLOsdLGvtMvxQ==", 2772 | "dev": true, 2773 | "optional": true 2774 | }, 2775 | "esbuild-darwin-64": { 2776 | "version": "0.14.13", 2777 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.13.tgz", 2778 | "integrity": "sha512-Fl47xIt5RMu50WIgMU93kwmUUJb+BPuL8R895n/aBNQqavS+KUMpLPoqKGABBV4myfx/fnAD/97X8Gt1C1YW6w==", 2779 | "dev": true, 2780 | "optional": true 2781 | }, 2782 | "esbuild-darwin-arm64": { 2783 | "version": "0.14.13", 2784 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.13.tgz", 2785 | "integrity": "sha512-UttqKRFXsWvuivcyAbFmo54vdkC9Me1ZYQNuoz/uBYDbkb2MgqKYG2+xoVKPBhLvhT0CKM5QGKD81flMH5BE6A==", 2786 | "dev": true, 2787 | "optional": true 2788 | }, 2789 | "esbuild-freebsd-64": { 2790 | "version": "0.14.13", 2791 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.13.tgz", 2792 | "integrity": "sha512-dlIhPFSp29Yq2TPh7Cm3/4M0uKjlfvOylHVNCRvRNiOvDbBol6/NZ3kLisczms+Yra0rxVapBPN1oMbSMuts9g==", 2793 | "dev": true, 2794 | "optional": true 2795 | }, 2796 | "esbuild-freebsd-arm64": { 2797 | "version": "0.14.13", 2798 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.13.tgz", 2799 | "integrity": "sha512-bNOHLu7Oq6RwaAMnwPbJ40DVGPl9GlAOnfH/dFZ792f8hFEbopkbtVzo1SU1jjfY3TGLWOgqHNWxPxx1N7Au+g==", 2800 | "dev": true, 2801 | "optional": true 2802 | }, 2803 | "esbuild-linux-32": { 2804 | "version": "0.14.13", 2805 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.13.tgz", 2806 | "integrity": "sha512-WzXyBx6zx16adGi7wPBvH2lRCBzYMcqnBRrJ8ciLIqYyruGvprZocX1nFWfiexjLcFxIElWnMNPX6LG7ULqyXA==", 2807 | "dev": true, 2808 | "optional": true 2809 | }, 2810 | "esbuild-linux-64": { 2811 | "version": "0.14.13", 2812 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.13.tgz", 2813 | "integrity": "sha512-P6OFAfcoUvE7g9h/0UKm3qagvTovwqpCF1wbFLWe/BcCY8BS1bR/+SxUjCeKX2BcpIsg4/43ezHDE/ntg/iOpw==", 2814 | "dev": true, 2815 | "optional": true 2816 | }, 2817 | "esbuild-linux-arm": { 2818 | "version": "0.14.13", 2819 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.13.tgz", 2820 | "integrity": "sha512-4jmm0UySCg3Wi6FEBS7jpiPb1IyckI5um5kzYRwulHxPzkiokd6cgpcsTakR4/Y84UEicS8LnFAghHhXHZhbFg==", 2821 | "dev": true, 2822 | "optional": true 2823 | }, 2824 | "esbuild-linux-arm64": { 2825 | "version": "0.14.13", 2826 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.13.tgz", 2827 | "integrity": "sha512-k/uIvmkm4mc7vyMvJVwILgGxi2F+FuvLdmESIIWoHrnxEfEekC5AWpI/R6GQ2OMfp8snebSQLs8KL05QPnt1zA==", 2828 | "dev": true, 2829 | "optional": true 2830 | }, 2831 | "esbuild-linux-mips64le": { 2832 | "version": "0.14.13", 2833 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.13.tgz", 2834 | "integrity": "sha512-vwYtgjQ1TRlUGL88km9wH9TjXsdZyZ/Xht1ASptg5XGRlqGquVjLGH11PfLLunoMdkQ0YTXR68b4l5gRfjVbyg==", 2835 | "dev": true, 2836 | "optional": true 2837 | }, 2838 | "esbuild-linux-ppc64le": { 2839 | "version": "0.14.13", 2840 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.13.tgz", 2841 | "integrity": "sha512-0KqDSIkZaYugtcdpFCd3eQ38Fg6TzhxmOpkhDIKNTwD/W2RoXeiS+Z4y5yQ3oysb/ySDOxWkwNqTdXS4sz2LdQ==", 2842 | "dev": true, 2843 | "optional": true 2844 | }, 2845 | "esbuild-linux-s390x": { 2846 | "version": "0.14.13", 2847 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.13.tgz", 2848 | "integrity": "sha512-bG20i7d0CN97fwPN9LaLe64E2IrI0fPZWEcoiff9hzzsvo/fQCx0YjMbPC2T3gqQ48QZRltdU9hQilTjHk3geQ==", 2849 | "dev": true, 2850 | "optional": true 2851 | }, 2852 | "esbuild-netbsd-64": { 2853 | "version": "0.14.13", 2854 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.13.tgz", 2855 | "integrity": "sha512-jz96PQb0ltqyqLggPpcRbWxzLvWHvrZBHZQyjcOzKRDqg1fR/R1y10b1Cuv84xoIbdAf+ceNUJkMN21FfR9G2g==", 2856 | "dev": true, 2857 | "optional": true 2858 | }, 2859 | "esbuild-openbsd-64": { 2860 | "version": "0.14.13", 2861 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.13.tgz", 2862 | "integrity": "sha512-bp6zSo3kDCXKPM5MmVUg6DEpt+yXDx37iDGzNTn3Kf9xh6d0cdITxUC4Bx6S3Di79GVYubWs+wNjSRVFIJpryw==", 2863 | "dev": true, 2864 | "optional": true 2865 | }, 2866 | "esbuild-plugin-svgr": { 2867 | "version": "1.0.0", 2868 | "resolved": "https://registry.npmjs.org/esbuild-plugin-svgr/-/esbuild-plugin-svgr-1.0.0.tgz", 2869 | "integrity": "sha512-ILJ/Pk/e0sCNNnmoxMwqIUFR+91Vb456EQzVv+d8RS18P3xisfP82qoxjpNYBK2QwRi9pVzvLWNg1zzIo0eq1g==", 2870 | "dev": true, 2871 | "requires": { 2872 | "@svgr/core": "^6.1.2" 2873 | } 2874 | }, 2875 | "esbuild-sunos-64": { 2876 | "version": "0.14.13", 2877 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.13.tgz", 2878 | "integrity": "sha512-08Fne1T9QHYxUnu55sV9V4i/yECADOaI1zMGET2YUa8SRkib10i80hc89U7U/G02DxpN/KUJMWEGq2wKTn0QFQ==", 2879 | "dev": true, 2880 | "optional": true 2881 | }, 2882 | "esbuild-windows-32": { 2883 | "version": "0.14.13", 2884 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.13.tgz", 2885 | "integrity": "sha512-MW3BMIi9+fzTyDdljH0ftfT/qlD3t+aVzle1O+zZ2MgHRMQD20JwWgyqoJXhe6uDVyunrAUbcjH3qTIEZN3isg==", 2886 | "dev": true, 2887 | "optional": true 2888 | }, 2889 | "esbuild-windows-64": { 2890 | "version": "0.14.13", 2891 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.13.tgz", 2892 | "integrity": "sha512-d7+0N+EOgBKdi/nMxlQ8QA5xHBlpcLtSrYnHsA+Xp4yZk28dYfRw1+embsHf5uN5/1iPvrJwPrcpgDH1xyy4JA==", 2893 | "dev": true, 2894 | "optional": true 2895 | }, 2896 | "esbuild-windows-arm64": { 2897 | "version": "0.14.13", 2898 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.13.tgz", 2899 | "integrity": "sha512-oX5hmgXk9yNKbb5AxThzRQm/E9kiHyDll7JJeyeT1fuGENTifv33f0INCpjBQ+Ty5ChKc84++ZQTEBwLCA12Kw==", 2900 | "dev": true, 2901 | "optional": true 2902 | }, 2903 | "escalade": { 2904 | "version": "3.1.1", 2905 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 2906 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" 2907 | }, 2908 | "escape-string-regexp": { 2909 | "version": "4.0.0", 2910 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2911 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" 2912 | }, 2913 | "eventemitter3": { 2914 | "version": "4.0.7", 2915 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", 2916 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", 2917 | "dev": true 2918 | }, 2919 | "fill-range": { 2920 | "version": "7.0.1", 2921 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 2922 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 2923 | "dev": true, 2924 | "requires": { 2925 | "to-regex-range": "^5.0.1" 2926 | } 2927 | }, 2928 | "find-root": { 2929 | "version": "1.1.0", 2930 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 2931 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" 2932 | }, 2933 | "follow-redirects": { 2934 | "version": "1.14.7", 2935 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", 2936 | "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", 2937 | "dev": true 2938 | }, 2939 | "fsevents": { 2940 | "version": "2.3.2", 2941 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 2942 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2943 | "dev": true, 2944 | "optional": true 2945 | }, 2946 | "function-bind": { 2947 | "version": "1.1.1", 2948 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2949 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 2950 | }, 2951 | "gensync": { 2952 | "version": "1.0.0-beta.2", 2953 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 2954 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" 2955 | }, 2956 | "get-intrinsic": { 2957 | "version": "1.1.1", 2958 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 2959 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 2960 | "dev": true, 2961 | "requires": { 2962 | "function-bind": "^1.1.1", 2963 | "has": "^1.0.3", 2964 | "has-symbols": "^1.0.1" 2965 | } 2966 | }, 2967 | "glob-parent": { 2968 | "version": "5.1.2", 2969 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2970 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2971 | "dev": true, 2972 | "requires": { 2973 | "is-glob": "^4.0.1" 2974 | } 2975 | }, 2976 | "globals": { 2977 | "version": "11.12.0", 2978 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 2979 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" 2980 | }, 2981 | "has": { 2982 | "version": "1.0.3", 2983 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2984 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2985 | "requires": { 2986 | "function-bind": "^1.1.1" 2987 | } 2988 | }, 2989 | "has-flag": { 2990 | "version": "3.0.0", 2991 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2992 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 2993 | }, 2994 | "has-symbols": { 2995 | "version": "1.0.2", 2996 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 2997 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 2998 | "dev": true 2999 | }, 3000 | "he": { 3001 | "version": "1.2.0", 3002 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 3003 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 3004 | "dev": true 3005 | }, 3006 | "html-encoding-sniffer": { 3007 | "version": "3.0.0", 3008 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", 3009 | "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", 3010 | "dev": true, 3011 | "requires": { 3012 | "whatwg-encoding": "^2.0.0" 3013 | } 3014 | }, 3015 | "http-proxy": { 3016 | "version": "1.18.1", 3017 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", 3018 | "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", 3019 | "dev": true, 3020 | "requires": { 3021 | "eventemitter3": "^4.0.0", 3022 | "follow-redirects": "^1.0.0", 3023 | "requires-port": "^1.0.0" 3024 | } 3025 | }, 3026 | "http-server": { 3027 | "version": "14.1.0", 3028 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.0.tgz", 3029 | "integrity": "sha512-5lYsIcZtf6pdR8tCtzAHTWrAveo4liUlJdWc7YafwK/maPgYHs+VNP6KpCClmUnSorJrARVMXqtT055zBv11Yg==", 3030 | "dev": true, 3031 | "requires": { 3032 | "basic-auth": "^2.0.1", 3033 | "chalk": "^4.1.2", 3034 | "corser": "^2.0.1", 3035 | "he": "^1.2.0", 3036 | "html-encoding-sniffer": "^3.0.0", 3037 | "http-proxy": "^1.18.1", 3038 | "mime": "^1.6.0", 3039 | "minimist": "^1.2.5", 3040 | "opener": "^1.5.1", 3041 | "portfinder": "^1.0.28", 3042 | "secure-compare": "3.0.1", 3043 | "union": "~0.5.0", 3044 | "url-join": "^4.0.1" 3045 | }, 3046 | "dependencies": { 3047 | "ansi-styles": { 3048 | "version": "4.3.0", 3049 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 3050 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 3051 | "dev": true, 3052 | "requires": { 3053 | "color-convert": "^2.0.1" 3054 | } 3055 | }, 3056 | "chalk": { 3057 | "version": "4.1.2", 3058 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 3059 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 3060 | "dev": true, 3061 | "requires": { 3062 | "ansi-styles": "^4.1.0", 3063 | "supports-color": "^7.1.0" 3064 | } 3065 | }, 3066 | "color-convert": { 3067 | "version": "2.0.1", 3068 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 3069 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 3070 | "dev": true, 3071 | "requires": { 3072 | "color-name": "~1.1.4" 3073 | } 3074 | }, 3075 | "color-name": { 3076 | "version": "1.1.4", 3077 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3078 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 3079 | "dev": true 3080 | }, 3081 | "has-flag": { 3082 | "version": "4.0.0", 3083 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 3084 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 3085 | "dev": true 3086 | }, 3087 | "supports-color": { 3088 | "version": "7.2.0", 3089 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 3090 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 3091 | "dev": true, 3092 | "requires": { 3093 | "has-flag": "^4.0.0" 3094 | } 3095 | } 3096 | } 3097 | }, 3098 | "iconv-lite": { 3099 | "version": "0.6.3", 3100 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 3101 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 3102 | "dev": true, 3103 | "requires": { 3104 | "safer-buffer": ">= 2.1.2 < 3.0.0" 3105 | } 3106 | }, 3107 | "import-fresh": { 3108 | "version": "3.3.0", 3109 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 3110 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 3111 | "requires": { 3112 | "parent-module": "^1.0.0", 3113 | "resolve-from": "^4.0.0" 3114 | } 3115 | }, 3116 | "is-arrayish": { 3117 | "version": "0.2.1", 3118 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 3119 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" 3120 | }, 3121 | "is-binary-path": { 3122 | "version": "2.1.0", 3123 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 3124 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 3125 | "dev": true, 3126 | "requires": { 3127 | "binary-extensions": "^2.0.0" 3128 | } 3129 | }, 3130 | "is-core-module": { 3131 | "version": "2.8.1", 3132 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", 3133 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 3134 | "requires": { 3135 | "has": "^1.0.3" 3136 | } 3137 | }, 3138 | "is-extglob": { 3139 | "version": "2.1.1", 3140 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3141 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 3142 | "dev": true 3143 | }, 3144 | "is-glob": { 3145 | "version": "4.0.3", 3146 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3147 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3148 | "dev": true, 3149 | "requires": { 3150 | "is-extglob": "^2.1.1" 3151 | } 3152 | }, 3153 | "is-number": { 3154 | "version": "7.0.0", 3155 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3156 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3157 | "dev": true 3158 | }, 3159 | "js-tokens": { 3160 | "version": "4.0.0", 3161 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3162 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 3163 | }, 3164 | "jsesc": { 3165 | "version": "2.5.2", 3166 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 3167 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" 3168 | }, 3169 | "json-parse-even-better-errors": { 3170 | "version": "2.3.1", 3171 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 3172 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" 3173 | }, 3174 | "json5": { 3175 | "version": "2.2.0", 3176 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", 3177 | "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", 3178 | "requires": { 3179 | "minimist": "^1.2.5" 3180 | } 3181 | }, 3182 | "lines-and-columns": { 3183 | "version": "1.2.4", 3184 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 3185 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 3186 | }, 3187 | "lodash": { 3188 | "version": "4.17.21", 3189 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 3190 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 3191 | "dev": true 3192 | }, 3193 | "loose-envify": { 3194 | "version": "1.4.0", 3195 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 3196 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 3197 | "requires": { 3198 | "js-tokens": "^3.0.0 || ^4.0.0" 3199 | } 3200 | }, 3201 | "mime": { 3202 | "version": "1.6.0", 3203 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 3204 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 3205 | "dev": true 3206 | }, 3207 | "minimist": { 3208 | "version": "1.2.5", 3209 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 3210 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 3211 | }, 3212 | "mkdirp": { 3213 | "version": "0.5.5", 3214 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 3215 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 3216 | "dev": true, 3217 | "requires": { 3218 | "minimist": "^1.2.5" 3219 | } 3220 | }, 3221 | "ms": { 3222 | "version": "2.1.2", 3223 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3224 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 3225 | }, 3226 | "node-releases": { 3227 | "version": "2.0.1", 3228 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", 3229 | "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" 3230 | }, 3231 | "normalize-path": { 3232 | "version": "3.0.0", 3233 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 3234 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 3235 | "dev": true 3236 | }, 3237 | "object-assign": { 3238 | "version": "4.1.1", 3239 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3240 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 3241 | }, 3242 | "object-inspect": { 3243 | "version": "1.12.0", 3244 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", 3245 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", 3246 | "dev": true 3247 | }, 3248 | "opener": { 3249 | "version": "1.5.2", 3250 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", 3251 | "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", 3252 | "dev": true 3253 | }, 3254 | "parent-module": { 3255 | "version": "1.0.1", 3256 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3257 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3258 | "requires": { 3259 | "callsites": "^3.0.0" 3260 | } 3261 | }, 3262 | "parse-json": { 3263 | "version": "5.2.0", 3264 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 3265 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 3266 | "requires": { 3267 | "@babel/code-frame": "^7.0.0", 3268 | "error-ex": "^1.3.1", 3269 | "json-parse-even-better-errors": "^2.3.0", 3270 | "lines-and-columns": "^1.1.6" 3271 | } 3272 | }, 3273 | "path-parse": { 3274 | "version": "1.0.7", 3275 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 3276 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 3277 | }, 3278 | "path-type": { 3279 | "version": "4.0.0", 3280 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 3281 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" 3282 | }, 3283 | "picocolors": { 3284 | "version": "1.0.0", 3285 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 3286 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 3287 | }, 3288 | "picomatch": { 3289 | "version": "2.3.1", 3290 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 3291 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 3292 | "dev": true 3293 | }, 3294 | "portfinder": { 3295 | "version": "1.0.28", 3296 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", 3297 | "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", 3298 | "dev": true, 3299 | "requires": { 3300 | "async": "^2.6.2", 3301 | "debug": "^3.1.1", 3302 | "mkdirp": "^0.5.5" 3303 | }, 3304 | "dependencies": { 3305 | "debug": { 3306 | "version": "3.2.7", 3307 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 3308 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 3309 | "dev": true, 3310 | "requires": { 3311 | "ms": "^2.1.1" 3312 | } 3313 | } 3314 | } 3315 | }, 3316 | "prop-types": { 3317 | "version": "15.8.1", 3318 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 3319 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 3320 | "requires": { 3321 | "loose-envify": "^1.4.0", 3322 | "object-assign": "^4.1.1", 3323 | "react-is": "^16.13.1" 3324 | } 3325 | }, 3326 | "qs": { 3327 | "version": "6.10.3", 3328 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", 3329 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", 3330 | "dev": true, 3331 | "requires": { 3332 | "side-channel": "^1.0.4" 3333 | } 3334 | }, 3335 | "react": { 3336 | "version": "17.0.2", 3337 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", 3338 | "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", 3339 | "requires": { 3340 | "loose-envify": "^1.1.0", 3341 | "object-assign": "^4.1.1" 3342 | } 3343 | }, 3344 | "react-dom": { 3345 | "version": "17.0.2", 3346 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", 3347 | "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", 3348 | "requires": { 3349 | "loose-envify": "^1.1.0", 3350 | "object-assign": "^4.1.1", 3351 | "scheduler": "^0.20.2" 3352 | } 3353 | }, 3354 | "react-is": { 3355 | "version": "16.13.1", 3356 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 3357 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 3358 | }, 3359 | "react-transition-group": { 3360 | "version": "4.4.2", 3361 | "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", 3362 | "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", 3363 | "requires": { 3364 | "@babel/runtime": "^7.5.5", 3365 | "dom-helpers": "^5.0.1", 3366 | "loose-envify": "^1.4.0", 3367 | "prop-types": "^15.6.2" 3368 | } 3369 | }, 3370 | "readdirp": { 3371 | "version": "3.6.0", 3372 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 3373 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 3374 | "dev": true, 3375 | "requires": { 3376 | "picomatch": "^2.2.1" 3377 | } 3378 | }, 3379 | "regenerator-runtime": { 3380 | "version": "0.13.9", 3381 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", 3382 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" 3383 | }, 3384 | "requires-port": { 3385 | "version": "1.0.0", 3386 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 3387 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", 3388 | "dev": true 3389 | }, 3390 | "rescript": { 3391 | "version": "9.1.4", 3392 | "resolved": "https://registry.npmjs.org/rescript/-/rescript-9.1.4.tgz", 3393 | "integrity": "sha512-aXANK4IqecJzdnDpJUsU6pxMViCR5ogAxzuqS0mOr8TloMnzAjJFu63fjD6LCkWrKAhlMkFFzQvVQYaAaVkFXw==", 3394 | "dev": true 3395 | }, 3396 | "resolve": { 3397 | "version": "1.22.0", 3398 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 3399 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 3400 | "requires": { 3401 | "is-core-module": "^2.8.1", 3402 | "path-parse": "^1.0.7", 3403 | "supports-preserve-symlinks-flag": "^1.0.0" 3404 | } 3405 | }, 3406 | "resolve-from": { 3407 | "version": "4.0.0", 3408 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3409 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" 3410 | }, 3411 | "safe-buffer": { 3412 | "version": "5.1.2", 3413 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3414 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 3415 | }, 3416 | "safer-buffer": { 3417 | "version": "2.1.2", 3418 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 3419 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 3420 | "dev": true 3421 | }, 3422 | "scheduler": { 3423 | "version": "0.20.2", 3424 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", 3425 | "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", 3426 | "requires": { 3427 | "loose-envify": "^1.1.0", 3428 | "object-assign": "^4.1.1" 3429 | } 3430 | }, 3431 | "secure-compare": { 3432 | "version": "3.0.1", 3433 | "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", 3434 | "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", 3435 | "dev": true 3436 | }, 3437 | "semver": { 3438 | "version": "6.3.0", 3439 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 3440 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 3441 | }, 3442 | "side-channel": { 3443 | "version": "1.0.4", 3444 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 3445 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 3446 | "dev": true, 3447 | "requires": { 3448 | "call-bind": "^1.0.0", 3449 | "get-intrinsic": "^1.0.2", 3450 | "object-inspect": "^1.9.0" 3451 | } 3452 | }, 3453 | "source-map": { 3454 | "version": "0.5.7", 3455 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3456 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" 3457 | }, 3458 | "stylis": { 3459 | "version": "4.0.13", 3460 | "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", 3461 | "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" 3462 | }, 3463 | "supports-color": { 3464 | "version": "5.5.0", 3465 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3466 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3467 | "requires": { 3468 | "has-flag": "^3.0.0" 3469 | } 3470 | }, 3471 | "supports-preserve-symlinks-flag": { 3472 | "version": "1.0.0", 3473 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 3474 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" 3475 | }, 3476 | "svg-parser": { 3477 | "version": "2.0.4", 3478 | "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", 3479 | "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", 3480 | "dev": true 3481 | }, 3482 | "to-fast-properties": { 3483 | "version": "2.0.0", 3484 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 3485 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" 3486 | }, 3487 | "to-regex-range": { 3488 | "version": "5.0.1", 3489 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3490 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 3491 | "dev": true, 3492 | "requires": { 3493 | "is-number": "^7.0.0" 3494 | } 3495 | }, 3496 | "union": { 3497 | "version": "0.5.0", 3498 | "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", 3499 | "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", 3500 | "dev": true, 3501 | "requires": { 3502 | "qs": "^6.4.0" 3503 | } 3504 | }, 3505 | "url-join": { 3506 | "version": "4.0.1", 3507 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", 3508 | "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", 3509 | "dev": true 3510 | }, 3511 | "whatwg-encoding": { 3512 | "version": "2.0.0", 3513 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", 3514 | "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", 3515 | "dev": true, 3516 | "requires": { 3517 | "iconv-lite": "0.6.3" 3518 | } 3519 | }, 3520 | "yaml": { 3521 | "version": "1.10.2", 3522 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 3523 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" 3524 | } 3525 | } 3526 | } 3527 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rescript-react-boilerplate", 3 | "type": "module", 4 | "version": "1.0.0", 5 | "scripts": { 6 | "build": "node scripts/build.js", 7 | "start": "node scripts/start.js" 8 | }, 9 | "author": "Raphael Rafatpanah", 10 | "license": "MIT", 11 | "dependencies": { 12 | "@emotion/css": "*", 13 | "react": "*", 14 | "react-dom": "*", 15 | "react-transition-group": "*" 16 | }, 17 | "devDependencies": { 18 | "chokidar": "*", 19 | "esbuild": "*", 20 | "esbuild-plugin-svgr": "*", 21 | "http-server": "*", 22 | "rescript": "*", 23 | "@rescript/react": "*" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /scripts/build.js: -------------------------------------------------------------------------------- 1 | import process from "child_process"; 2 | import { build } from "esbuild"; 3 | import svgrPlugin from "esbuild-plugin-svgr"; 4 | import generateServiceWorker from "./generateServiceWorker.js"; 5 | import injectScript from "./injectScript.js"; 6 | 7 | process.spawnSync("rm", ["-rf", "dist"], { stdio: "inherit", shell: true }); 8 | process.spawnSync("mkdir", ["dist"], { stdio: "inherit", shell: true }); 9 | process.spawnSync( 10 | "cp", 11 | ["-r", "src/index.html", "src/manifest.json", "img", "dist"], 12 | { 13 | stdio: "inherit", 14 | shell: true, 15 | } 16 | ); 17 | process.spawnSync("mv", ["dist/img/favicon.ico", "dist"], { 18 | stdio: "inherit", 19 | shell: true, 20 | }); 21 | 22 | console.time("\x1b[32m ✨ ReScript\x1b[0m"); 23 | const { status } = process.spawnSync("npx", ["rescript"], { 24 | stdio: "inherit", 25 | shell: true, 26 | }); 27 | 28 | // Continue only if ReScript compiles successfully 29 | if (status === 0) { 30 | console.timeEnd("\x1b[32m ✨ ReScript\x1b[0m"); 31 | 32 | (async () => { 33 | console.time("\x1b[32m ⚡ esbuild\x1b[0m"); 34 | await build({ 35 | entryPoints: ["lib/es6/src/Index.bs.js"], 36 | entryNames: "[name]-[hash]", 37 | outfile: "dist/app.js", 38 | minify: true, 39 | bundle: true, 40 | plugins: [svgrPlugin()], 41 | }) 42 | .then(() => { 43 | injectScript(); 44 | generateServiceWorker(); 45 | console.timeEnd("\x1b[32m ⚡ esbuild\x1b[0m"); 46 | }) 47 | .catch((error) => { 48 | console.log(error); 49 | process.exit(1); 50 | }); 51 | })(); 52 | } 53 | -------------------------------------------------------------------------------- /scripts/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # This script is used to deploy to GitHub pages 3 | 4 | npm run build 5 | echo 'rescript-react-boilerplate.persianturtle.com' > dist/CNAME 6 | npx gh-pages -d dist 7 | rm dist/CNAME 8 | -------------------------------------------------------------------------------- /scripts/generateServiceWorker.js: -------------------------------------------------------------------------------- 1 | import fs from "fs"; 2 | import crypto from "crypto"; 3 | 4 | const { name } = JSON.parse(fs.readFileSync("./package.json")); 5 | 6 | function generateServiceWorker() { 7 | const filesToCache = getFiles("dist"); 8 | 9 | fs.writeFileSync( 10 | "dist/sw.js", 11 | ` 12 | const filesToCache = ${JSON.stringify(filesToCache)}; 13 | const currentCacheName = "${name}-${hash( 14 | filesToCache.join("") + fs.readFileSync("dist/index.html") 15 | )}"; 16 | 17 | self.addEventListener("install", (event) => { 18 | event.waitUntil( 19 | caches.open(currentCacheName).then((cache) => cache.addAll(filesToCache)) 20 | ); 21 | }); 22 | 23 | self.addEventListener("fetch", (event) => { 24 | event.respondWith( 25 | (async () => { 26 | const cachedResponse = await caches.match(event.request); 27 | if (cachedResponse) { 28 | return cachedResponse; 29 | } 30 | 31 | try { 32 | return await fetch(event.request); 33 | } catch (error) { 34 | if (event.request.mode === "navigate") { 35 | return caches.match("/"); 36 | } 37 | 38 | throw error; 39 | } 40 | })() 41 | ); 42 | }); 43 | 44 | addEventListener("activate", (event) => { 45 | event.waitUntil( 46 | (async () => 47 | caches 48 | .keys() 49 | .then((cacheNames) => 50 | Promise.all( 51 | cacheNames 52 | .filter( 53 | (cacheName) => 54 | cacheName.startsWith("rescript-react-boilerplate") && 55 | cacheName !== currentCacheName 56 | ) 57 | .map((cacheName) => caches.delete(cacheName)) 58 | ) 59 | ))() 60 | ); 61 | }); 62 | 63 | self.addEventListener("message", (event) => { 64 | if (event.data.action === "skipWaiting") { 65 | self.skipWaiting(); 66 | } 67 | }); 68 | ` 69 | ); 70 | } 71 | 72 | function getFiles(dir) { 73 | return fs.readdirSync(dir).flatMap((item) => { 74 | const path = `${dir}/${item}`; 75 | if (fs.statSync(path).isDirectory()) { 76 | return getFiles(path); 77 | } 78 | 79 | return path.replace(/dist|index.html/g, ""); 80 | }); 81 | } 82 | 83 | function hash(string) { 84 | return crypto.createHash("sha256").update(string, "utf8").digest("hex"); 85 | } 86 | 87 | export default generateServiceWorker; 88 | -------------------------------------------------------------------------------- /scripts/injectScript.js: -------------------------------------------------------------------------------- 1 | import fs from "fs"; 2 | 3 | function injectScript() { 4 | const fileName = fs 5 | .readdirSync("dist") 6 | .find((file) => file.startsWith("app") && file.endsWith(".js")); 7 | 8 | const file = fs 9 | .readFileSync("dist/index.html", "utf-8") 10 | .replace("", ``); 11 | 12 | fs.writeFileSync("dist/index.html", file, "utf-8"); 13 | } 14 | 15 | export default injectScript; 16 | -------------------------------------------------------------------------------- /scripts/start.js: -------------------------------------------------------------------------------- 1 | import process from "child_process"; 2 | import chokidar from "chokidar"; 3 | 4 | build(); 5 | serve(); 6 | 7 | chokidar.watch("src/**/*", { ignoreInitial: true }).on("all", build); 8 | 9 | function build() { 10 | process.spawnSync("node", ["scripts/build.js"], { 11 | stdio: "inherit", 12 | shell: true, 13 | }); 14 | console.log("\n"); 15 | } 16 | 17 | function serve() { 18 | process.spawn( 19 | "npx", 20 | [ 21 | "http-server", 22 | "-c-1", 23 | "--proxy", 24 | "http://localhost:8081?", 25 | "--port", 26 | "8081", 27 | "dist", 28 | ], 29 | { stdio: "inherit", shell: true } 30 | ); 31 | } 32 | -------------------------------------------------------------------------------- /src/App.res: -------------------------------------------------------------------------------- 1 | @val external window: 'a = "window" 2 | 3 | module HamburgerIcon = { 4 | @module("../../../img/icon/hamburger.svg") @react.component 5 | external make: unit => React.element = "default" 6 | } 7 | 8 | module ArrowIcon = { 9 | @module("../../../img/icon/arrow.svg") @react.component 10 | external make: unit => React.element = "default" 11 | } 12 | 13 | module ChevronIcon = { 14 | @module("../../../img/icon/chevron.svg") @react.component 15 | external make: unit => React.element = "default" 16 | } 17 | 18 | type touches = { 19 | first: option<(float, float)>, 20 | last: option<(float, float)>, 21 | } 22 | 23 | type state = { 24 | isOpen: bool, 25 | touches: touches, 26 | } 27 | 28 | type action = 29 | | ToggleMenu(bool) 30 | | TouchStart(float) 31 | | TouchMove(float) 32 | | TouchEnd 33 | 34 | @react.component 35 | let make = () => { 36 | let url = RescriptReactRouter.useUrl() 37 | let title = switch url.path { 38 | | list{} => "Home" 39 | | list{"page1"} => "Page 1" 40 | | list{"page2"} => "Page 2" 41 | | list{"page3"} => "Page 3" 42 | | _ => "Not Found" 43 | } 44 | let navRef = React.useRef(Js.Nullable.null) 45 | let width = switch Js.Nullable.toOption(navRef.current) { 46 | | None => 0.0 47 | | Some(nav) => ReactDOM.domElementToObj(nav)["clientWidth"] 48 | } 49 | let (state, dispatch) = React.useReducer( 50 | (state, action) => 51 | switch action { 52 | | ToggleMenu(isOpen) => {...state, isOpen: isOpen} 53 | | TouchStart(clientX) => 54 | if state.isOpen { 55 | { 56 | ...state, 57 | touches: { 58 | first: Some((clientX, window["performance"]["now"](.))), 59 | last: None, 60 | }, 61 | } 62 | } else { 63 | state 64 | } 65 | | TouchMove(clientX) => 66 | if state.isOpen { 67 | { 68 | ...state, 69 | touches: { 70 | ...state.touches, 71 | last: Some((clientX, window["performance"]["now"](.))), 72 | }, 73 | } 74 | } else { 75 | state 76 | } 77 | | TouchEnd => 78 | if state.isOpen { 79 | let (x, t) = Belt.Option.getWithDefault(state.touches.first, (0.0, 0.0)) 80 | let (x', t') = Belt.Option.getWithDefault(state.touches.last, (0.0, 0.0)) 81 | let velocity = (x' -. x) /. (t' -. t) 82 | let state = { 83 | ...state, 84 | touches: { 85 | first: None, 86 | last: None, 87 | }, 88 | } 89 | if velocity < -0.3 || x' < width /. 2.0 { 90 | { 91 | ...state, 92 | isOpen: false, 93 | } 94 | } else { 95 | state 96 | } 97 | } else { 98 | state 99 | } 100 | }, 101 | { 102 | isOpen: false, 103 | touches: { 104 | first: None, 105 | last: None, 106 | }, 107 | }, 108 | ) 109 | 110 | React.useEffect(() => { 111 | let handler = () => dispatch(ToggleMenu(false)) 112 | window["addEventListener"](. "popstate", handler)->ignore 113 | Some(() => window["removeEventListener"](. "popstate", handler)) 114 | }) 115 | 116 | React.useEffect1(() => { 117 | // disable scrolling when the nav is open 118 | if state.isOpen { 119 | window["document"]["documentElement"]["style"]["cssText"] = ` 120 | position: fixed; 121 | overflow: hidden; 122 | ` 123 | } else { 124 | window["document"]["documentElement"]["style"]["cssText"] = "" 125 | } 126 | 127 | None 128 | }, [state.isOpen]) 129 | 130 | let keyframes = { 131 | "enter": Emotion.keyframes(` 132 | from { 133 | opacity: 0; 134 | transform: translateY(50px); 135 | } 136 | `), 137 | "exit": Emotion.keyframes(` 138 | to { 139 | opacity: 0; 140 | transform: translateY(50px); 141 | } 142 | `), 143 | } 144 | 145 | let wrapper = ` 146 | min-height: 100vh; 147 | 148 | &::after { 149 | content: ""; 150 | transition: opacity 450ms cubic-bezier(0.23, 1, 0.32, 1), 151 | transform 0ms cubic-bezier(0.23, 1, 0.32, 1) 450ms; 152 | position: fixed; 153 | top: 0; 154 | right: 0; 155 | bottom: 0; 156 | left: 0; 157 | background-color: rgba(0, 0, 0, 0.33); 158 | transform: translateX(-100%); 159 | opacity: 0; 160 | z-index: 1; 161 | 162 | ${state.isOpen 163 | ? ` 164 | transition: opacity 450ms cubic-bezier(0.23, 1, 0.32, 1); 165 | transform: translateX(0%); 166 | opacity: 1; 167 | ` 168 | : ""} 169 | } 170 | 171 | .routeTransition-enter.routeTransition-enter-active { 172 | animation: ${keyframes["enter"]} 500ms ease 400ms both; 173 | } 174 | 175 | .routeTransition-exit.routeTransition-exit-active { 176 | animation: ${keyframes["exit"]} 400ms ease both; 177 | } 178 | ` 179 | 180 | let header = ` 181 | display: flex; 182 | align-items: center; 183 | width: 100vw; 184 | height: 60px; 185 | background-color: dodgerblue; 186 | color: white; 187 | box-shadow: 0 4px 5px 0 rgba(15, 74, 133, 0.14), 188 | 0 2px 9px 1px rgba(15, 74, 133, 0.12), 189 | 0 4px 2px -2px rgba(15, 74, 133, 0.2); 190 | 191 | > a { 192 | display: flex; 193 | align-items: center; 194 | width: 32px; 195 | height: 100%; 196 | padding: 0 10px; 197 | cursor: pointer; 198 | 199 | > svg { 200 | width: 100%; 201 | height: 100%; 202 | } 203 | } 204 | 205 | > h1 { 206 | font-size: 26px; 207 | line-height: 26px; 208 | margin-left: 10px; 209 | } 210 | ` 211 | 212 | let nav = ` 213 | transition: transform 450ms cubic-bezier(0.23, 1, 0.32, 1); 214 | position: fixed; 215 | top: 0; 216 | left: 0; 217 | height: 100vh; 218 | background-color: white; 219 | box-shadow: 0px 3px 10px 0 rgba(0, 0, 0, 0.16), 220 | 0px 3px 10px 0 rgba(0, 0, 0, 0.23); 221 | overflow: auto; 222 | z-index: 2; 223 | 224 | transform: ${state.isOpen ? "translateX(0)" : "translateX(calc(-100% - 10px))"}; 225 | 226 | > header { 227 | position: relative; 228 | background-color: lavender; 229 | height: 150px; 230 | margin: 0; 231 | 232 | > a { 233 | font-size: 24px; 234 | line-height: 24px; 235 | position: absolute; 236 | top: 0; 237 | left: 0; 238 | display: flex; 239 | align-items: center; 240 | height: 40px; 241 | padding: 10px 20px; 242 | 243 | > svg { 244 | width: 20px; 245 | height: 20px; 246 | margin-right: 20px; 247 | } 248 | } 249 | } 250 | 251 | > label { 252 | font-weight: normal; 253 | font-size: 12px; 254 | line-height: 24px; 255 | text-transform: uppercase; 256 | display: block; 257 | background-color: rgba(0, 0, 0, 0.32); 258 | color: white; 259 | padding: 0 15px; 260 | } 261 | 262 | > ul { 263 | margin: 0; 264 | padding: 0; 265 | list-style: none; 266 | 267 | > li { 268 | position: relative; 269 | border-bottom: 1px solid rgba(0, 0, 0, 0.06); 270 | 271 | svg { 272 | position: absolute; 273 | top: 0; 274 | right: 15px; 275 | bottom: 0; 276 | margin: auto; 277 | width: 15px; 278 | height: 15px; 279 | } 280 | 281 | > a { 282 | transition: background-color 450ms cubic-bezier(0.23, 1, 0.32, 1); 283 | font-size: 18px; 284 | line-height: 54px; 285 | text-decoration: none; 286 | display: block; 287 | padding: 0 15px; 288 | color: black; 289 | 290 | &.active { 291 | background-color: #e9e9e9; 292 | } 293 | } 294 | 295 | > img { 296 | width: 15px; 297 | height: 15px; 298 | } 299 | } 300 | } 301 | 302 | @media (max-width: 767px) { 303 | width: 85vw; 304 | } 305 | 306 | @media (min-width: 768px) { 307 | width: 300px; 308 | } 309 | ` 310 | 311 |
314 | if state.isOpen { 315 | dispatch(ToggleMenu(false)) 316 | }} 317 | onTouchStart={event => 318 | dispatch(TouchStart(ReactEvent.Touch.changedTouches(event)["item"](. 0)["clientX"]))} 319 | onTouchMove={event => 320 | dispatch(TouchMove(ReactEvent.Touch.changedTouches(event)["item"](. 0)["clientX"]))} 321 | onTouchEnd={_event => dispatch(TouchEnd)}> 322 |
323 | { 325 | ReactEvent.Mouse.stopPropagation(event) 326 | dispatch(ToggleMenu(true)) 327 | }}> 328 | 329 | 330 |

{title->React.string}

331 |
332 | 363 |
364 | { 365 | open ReactTransitionGroup 366 | 367 | 368 | {switch url.path { 369 | | list{} => 370 | | list{"page1"} => 371 | | list{"page2"} => 372 | | list{"page3"} => 373 | | _ => 374 | }} 375 | 376 | 377 | } 378 |
379 |
380 | } 381 | -------------------------------------------------------------------------------- /src/Emotion.res: -------------------------------------------------------------------------------- 1 | @module("@emotion/css") external css: string => string = "css" 2 | @module("@emotion/css") external keyframes: string => string = "keyframes" 3 | -------------------------------------------------------------------------------- /src/Home.res: -------------------------------------------------------------------------------- 1 | let html = ` 2 |

Rescript React Boilerplate

3 |

An opinionated implementation of the following technologies:

4 | 13 |

Getting Started

14 |
npm install
15 | npm start
16 | open http://localhost:8081
17 |   
18 |

Demo

19 | Demo 20 |

Tutorial

21 |

(Video overview coming soon)

22 |

Development Environment

23 |

Since we're using ReScript and esbuild, our build times are fast.

24 |

Because of this, we use chokidar (a cross-platform file watcher) to watch for changes and then rebuild the dist directory on every change. The dist directory is the same whether in development or in production.

25 |

The build should work on macOS, Windows & Linux.

26 | Example npm start output 27 | ` 28 | 29 | @react.component 30 | let make = () => 31 |
45 | -------------------------------------------------------------------------------- /src/Index.res: -------------------------------------------------------------------------------- 1 | switch ReactDOM.querySelector("#root") { 2 | | Some(root) => ReactDOM.render(, root) 3 | | None => () // do nothing 4 | } 5 | -------------------------------------------------------------------------------- /src/Page1.res: -------------------------------------------------------------------------------- 1 | @react.component 2 | let make = () =>

{React.string("Page1")}

3 | -------------------------------------------------------------------------------- /src/Page2.res: -------------------------------------------------------------------------------- 1 | @react.component 2 | let make = () =>

{React.string("Page2")}

3 | -------------------------------------------------------------------------------- /src/Page3.res: -------------------------------------------------------------------------------- 1 | @react.component 2 | let make = () =>

{React.string("Page3")}

3 | -------------------------------------------------------------------------------- /src/ReactTransitionGroup.res: -------------------------------------------------------------------------------- 1 | module TransitionGroup = { 2 | @module("react-transition-group") @react.component 3 | external make: (~children: React.element) => React.element = "TransitionGroup" 4 | } 5 | 6 | module CSSTransition = { 7 | @module("react-transition-group") @react.component 8 | external make: ( 9 | ~_in: bool, 10 | ~timeout: int, 11 | ~classNames: string, 12 | ~children: React.element, 13 | ) => React.element = "CSSTransition" 14 | } 15 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | React App 10 | 11 | 12 | 13 | 14 | 40 | 41 | 42 | 43 |
44 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReScript React Boilerplate", 3 | "short_name": "rescript-react-boilerplate", 4 | "start_url": ".", 5 | "display": "fullscreen", 6 | "theme_color": "dodgerblue", 7 | "background_color": "#fff", 8 | "description": "A ReScript React boilerplate project.", 9 | "icons": [ 10 | { 11 | "src": "img/icon/rescript_256x256.png", 12 | "sizes": "256x256", 13 | "type": "image/png" 14 | }, 15 | { 16 | "src": "img/icon/rescript_512x512.png", 17 | "sizes": "512x512", 18 | "type": "image/png" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /src/router/Link.res: -------------------------------------------------------------------------------- 1 | @scope("location") @val external pathname: string = "pathname" 2 | 3 | @react.component 4 | let make = (~href, ~children, ~isNavLink=false) => { 5 | { 9 | ReactEvent.Mouse.preventDefault(event) 10 | RescriptReactRouter.push(href) 11 | }}> 12 | children 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/router/Redirect.res: -------------------------------------------------------------------------------- 1 | @react.component 2 | let make = (~to_) => { 3 | React.useEffect(() => { 4 | RescriptReactRouter.replace(to_) 5 | 6 | None 7 | }) 8 | 9 | React.null 10 | } --------------------------------------------------------------------------------