├── .editorconfig ├── .eslintignore ├── .eslintrc ├── .github └── workflows │ └── npm-publish.yml ├── .gitignore ├── .npmignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── README.md ├── docs ├── icon12.png ├── index.md └── slider.gif ├── example ├── .gitignore ├── README.md ├── package-lock.json ├── package.json └── src │ ├── App.tsx │ ├── app.css │ ├── index.html │ └── index.tsx ├── global.d.ts ├── jestconfig.json ├── package.json ├── push.sh ├── rollup.config.js ├── src ├── Verify │ ├── index.md │ ├── index.tsx │ ├── style.scss │ └── tool.ts └── index.ts ├── tests ├── __snapshots__ │ └── common.test.tsx.snap └── common.test.tsx └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | 15 | [Makefile] 16 | indent_style = tab 17 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | rollup.config.js 4 | global.d.ts -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends": [ 4 | "prettier", 5 | "plugin:prettier/recommended", 6 | "eslint:recommended", 7 | "plugin:react/recommended", 8 | "plugin:@typescript-eslint/eslint-recommended", 9 | "plugin:@typescript-eslint/recommended" 10 | ], 11 | "parser": "@typescript-eslint/parser", 12 | "plugins": ["@typescript-eslint", "prettier", "react", "react-hooks"], 13 | "rules": { 14 | "react-hooks/rules-of-hooks": "error", 15 | "react-hooks/exhaustive-deps": "warn", 16 | "@typescript-eslint/no-non-null-assertion": "off", 17 | "@typescript-eslint/ban-ts-comment": "off", 18 | "@typescript-eslint/no-explicit-any": "off" 19 | }, 20 | "settings": { 21 | "react": { 22 | "version": "detect" 23 | } 24 | }, 25 | "env": { 26 | "browser": true, 27 | "node": true 28 | }, 29 | "globals": { 30 | "JSX": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /.github/workflows/npm-publish.yml: -------------------------------------------------------------------------------- 1 | # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages 3 | 4 | name: Node.js Package 5 | 6 | on: 7 | pull_request: 8 | branches: 9 | - main 10 | push: 11 | branches: 12 | - main 13 | 14 | jobs: 15 | build: 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: actions/checkout@v2 19 | - uses: actions/setup-node@v2 20 | with: 21 | node-version: 14 22 | - run: yarn 23 | - run: yarn build 24 | 25 | publish-npm: 26 | needs: build 27 | runs-on: ubuntu-latest 28 | steps: 29 | - uses: actions/checkout@v2 30 | - uses: actions/setup-node@v2 31 | with: 32 | node-version: 14 33 | registry-url: https://registry.npmjs.com/ 34 | - run: npm publish --access public 35 | env: 36 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /npm-debug.log* 6 | /yarn-error.log 7 | /yarn.lock 8 | /package-lock.json 9 | /dist 10 | /lib 11 | /es 12 | 13 | # production 14 | # /dist 15 | /docs-dist 16 | 17 | # misc 18 | .DS_Store 19 | 20 | .env.local 21 | *.tgz 22 | 23 | # ide 24 | /.vscode 25 | /.idea 26 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .github/ -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry = "https://registry.npmjs.com/" 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/*.svg 2 | **/*.ejs 3 | **/*.html 4 | package.json 5 | .umi 6 | .umi-production 7 | .umi-test 8 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all", 4 | "printWidth": 80, 5 | "overrides": [ 6 | { 7 | "files": ".prettierrc", 8 | "options": { "parser": "json" } 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![npm downloads](https://img.shields.io/npm/dm/react-puzzle-captcha.svg?style=flat-square)](http://npm-stat.com/charts.html?package=react-puzzle-captcha) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/react-puzzle-captcha) ![APM](https://img.shields.io/npm/l/react-puzzle-captcha?style=flat-square) 2 | 3 | ## Hello react-puzzle-captcha! 4 | 5 | It is a sliding verification code component implemented by react.js, through which we can easily control the entire life cycle of verification (when refreshing, when the verification succeeds, and when the verification fails, the callback), and has certain configuration capabilities. 6 | 7 | ![demo.gif](https://raw.githubusercontent.com/venkatmcajj/react-puzzle-captcha/master/docs/slider.gif) 8 | 9 | ## Getting Started 10 | 11 | Install dependencies, 12 | 13 | ```bash 14 | $ npm i react-puzzle-captcha 15 | 16 | $ import 'react-puzzle-captcha/dist/react-puzzle-captcha.css'; 17 | ``` 18 | 19 | ## Use 20 | 21 | ```tsx 22 | import React, { useState } from 'react'; 23 | import { Verify } from 'react-puzzle-captcha'; 24 | import 'react-puzzle-captcha/dist/react-puzzle-captcha.css'; 25 | 26 | export default () => { 27 | const [visible, setVisible] = useState(false); 28 | const show = () => { 29 | setVisible(true); 30 | }; 31 | const hide = () => { 32 | setVisible(false); 33 | }; 34 | const style = { 35 | display: 'inline-block', 36 | marginRight: '20px', 37 | marginBottom: '20px', 38 | width: '100px', 39 | padding: '5px 20px', 40 | color: '#fff', 41 | textAlign: 'center', 42 | cursor: 'pointer', 43 | background: '#1991FA', 44 | }; 45 | return ( 46 | <> 47 |
48 | Show 49 |
50 |
51 | Hide 52 |
53 | alert('success')} 58 | onFail={() => alert('fail')} 59 | onRefresh={() => alert('refresh')} 60 | /> 61 | 62 | ); 63 | }; 64 | ``` 65 | 66 | ## More Production 67 | 68 | | name | Description | 69 | | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 70 | | [react-country-state-city](https://github.com/venkatmcajj/react-country-state-city) | React-country-state-city allows you to create a responsive country, state, city dropdown with search options. And also provide the option to create a language select dropdown to list all Languages. | 71 | | [react-sidemenubar](https://github.com/venkatmcajj/react-sidemenubar) | React-sidemenubar allows you to create a responsive sidebar with easy to customize. | 72 | | [react-matrix-tree](https://github.com/venkatmcajj/react-matrix-tree) | React-matrix-tree allows you to create tree view with different types of matrix. | 73 | | [react-jquery-data-table](https://github.com/venkatmcajj/react-jquery-data-table) | With DataTableReact, your ultimate solution for integrating jQuery DataTable-like functionality into React components! and effortlessly enhance your React applications with dynamic and responsive data tables. | 74 | 75 | ## Demo 76 | 77 | [A demo is worth a thousand words](https://venkatmcajj.github.io/react-puzzle-captacha/example) 78 | 79 | [Few More Examples](https://github.com/venkatmcajj/react-puzzle-captcha/blob/master/src/Verify/index.md) 80 | 81 | ## Contribute 82 | 83 | Show your ❤️ and support by giving a ⭐. Any suggestions are welcome! venkatmcajj@gmail.com 84 | 85 | ## License 86 | 87 | Licensed under MIT 88 | -------------------------------------------------------------------------------- /docs/icon12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/venkatmcajj/react-puzzle-captcha/1b501b9c30533372e8a6985af5c367f1a74dfc24/docs/icon12.png -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | ## Hello react-puzzle-captcha! 2 | 3 | It is a sliding verification code component implemented by react.js, through which we can easily control the entire life cycle of verification (when refreshing, when the verification succeeds, and when the verification fails, the callback), and has certain configuration capabilities. 4 | 5 | ![demo.gif](https://github.com/venkatmcajj/react-puzzle-captcha/docs/slider.gif) 6 | 7 | ## More Production 8 | 9 | | name | Description | 10 | | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 11 | | [react-country-state-city](https://github.com/venkatmcajj/react-country-state-city) | React-country-state-city allows you to create a responsive country, state, city dropdown with search options. And also provide the option to create a language select dropdown to list all Languages. | 12 | | [react-sidemenubar](https://github.com/venkatmcajj/react-sidemenubar) | React-sidemenubar allows you to create a responsive sidebar with easy to customize. | 13 | | [react-matrix-tree](https://github.com/venkatmcajj/react-matrix-tree) | React-matrix-tree allows you to create tree view with different types of matrix. | 14 | 15 | | [react-jquery-data-table](https://github.com/venkatmcajj/react-jquery-data-table) | With DataTableReact, your ultimate solution for integrating jQuery DataTable-like functionality into React components! and effortlessly enhance your React applications with dynamic and responsive data tables. | 16 | 17 | ## Contribute 18 | 19 | Show your ❤️ and support by giving a ⭐. Any suggestions are welcome! venkatmcajj@gmail.com 20 | 21 | 24 | 25 | ## License 26 | 27 | Licensed under MIT 28 | -------------------------------------------------------------------------------- /docs/slider.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/venkatmcajj/react-puzzle-captcha/1b501b9c30533372e8a6985af5c367f1a74dfc24/docs/slider.gif -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | yarn.lock 3 | .parcel-cache 4 | dist 5 | yarn-error.log -------------------------------------------------------------------------------- /example/README.md: -------------------------------------------------------------------------------- 1 | # How to start example page? 2 | 3 | Then in the example directory, run all dependencies: 4 | 5 | ### `yarn install` 6 | 7 | or 8 | 9 | ### `npm install` 10 | 11 | Then use the command: 12 | 13 | ### `yarn start` 14 | 15 | or 16 | 17 | ### `npm start` 18 | 19 | Open [http://localhost:1234](http://localhost:1234) to view it in the browser. 20 | -------------------------------------------------------------------------------- /example/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "0.1.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "example", 9 | "version": "0.1.0", 10 | "devDependencies": { 11 | "@types/react": "^18.0.37", 12 | "@types/react-dom": "^18.0.11", 13 | "assert": "^2.0.0", 14 | "bootstrap": "^5.2.3", 15 | "browserify-zlib": "^0.2.0", 16 | "buffer": "^5.7.1", 17 | "https-browserify": "^1.0.0", 18 | "os-browserify": "^0.3.0", 19 | "parcel": "^2.8.3", 20 | "path-browserify": "^1.0.1", 21 | "process": "^0.11.10", 22 | "punycode": "^1.4.1", 23 | "querystring-es3": "^0.2.1", 24 | "react": "^18.2.0", 25 | "react-country-state-city": "^1.0.5", 26 | "react-dom": "^18.2.0", 27 | "react-icons": "^4.8.0", 28 | "react-puzzle-captcha": "^1.0.1", 29 | "react-router-dom": "^6.11.1", 30 | "stream-browserify": "^3.0.0", 31 | "stream-http": "^3.2.0", 32 | "tty-browserify": "^0.0.1", 33 | "url": "^0.11.0", 34 | "util": "^0.12.5" 35 | } 36 | }, 37 | "node_modules/@babel/code-frame": { 38 | "version": "7.24.7", 39 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", 40 | "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", 41 | "dev": true, 42 | "dependencies": { 43 | "@babel/highlight": "^7.24.7", 44 | "picocolors": "^1.0.0" 45 | }, 46 | "engines": { 47 | "node": ">=6.9.0" 48 | } 49 | }, 50 | "node_modules/@babel/helper-validator-identifier": { 51 | "version": "7.24.7", 52 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", 53 | "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", 54 | "dev": true, 55 | "engines": { 56 | "node": ">=6.9.0" 57 | } 58 | }, 59 | "node_modules/@babel/highlight": { 60 | "version": "7.24.7", 61 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", 62 | "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", 63 | "dev": true, 64 | "dependencies": { 65 | "@babel/helper-validator-identifier": "^7.24.7", 66 | "chalk": "^2.4.2", 67 | "js-tokens": "^4.0.0", 68 | "picocolors": "^1.0.0" 69 | }, 70 | "engines": { 71 | "node": ">=6.9.0" 72 | } 73 | }, 74 | "node_modules/@babel/highlight/node_modules/ansi-styles": { 75 | "version": "3.2.1", 76 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 77 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 78 | "dev": true, 79 | "dependencies": { 80 | "color-convert": "^1.9.0" 81 | }, 82 | "engines": { 83 | "node": ">=4" 84 | } 85 | }, 86 | "node_modules/@babel/highlight/node_modules/chalk": { 87 | "version": "2.4.2", 88 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 89 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 90 | "dev": true, 91 | "dependencies": { 92 | "ansi-styles": "^3.2.1", 93 | "escape-string-regexp": "^1.0.5", 94 | "supports-color": "^5.3.0" 95 | }, 96 | "engines": { 97 | "node": ">=4" 98 | } 99 | }, 100 | "node_modules/@babel/highlight/node_modules/color-convert": { 101 | "version": "1.9.3", 102 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 103 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 104 | "dev": true, 105 | "dependencies": { 106 | "color-name": "1.1.3" 107 | } 108 | }, 109 | "node_modules/@babel/highlight/node_modules/color-name": { 110 | "version": "1.1.3", 111 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 112 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 113 | "dev": true 114 | }, 115 | "node_modules/@babel/highlight/node_modules/has-flag": { 116 | "version": "3.0.0", 117 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 118 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 119 | "dev": true, 120 | "engines": { 121 | "node": ">=4" 122 | } 123 | }, 124 | "node_modules/@babel/highlight/node_modules/supports-color": { 125 | "version": "5.5.0", 126 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 127 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 128 | "dev": true, 129 | "dependencies": { 130 | "has-flag": "^3.0.0" 131 | }, 132 | "engines": { 133 | "node": ">=4" 134 | } 135 | }, 136 | "node_modules/@babel/runtime": { 137 | "version": "7.24.7", 138 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", 139 | "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", 140 | "dev": true, 141 | "dependencies": { 142 | "regenerator-runtime": "^0.14.0" 143 | }, 144 | "engines": { 145 | "node": ">=6.9.0" 146 | } 147 | }, 148 | "node_modules/@babel/runtime/node_modules/regenerator-runtime": { 149 | "version": "0.14.1", 150 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", 151 | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", 152 | "dev": true 153 | }, 154 | "node_modules/@lezer/common": { 155 | "version": "1.2.1", 156 | "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", 157 | "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==", 158 | "dev": true 159 | }, 160 | "node_modules/@lezer/lr": { 161 | "version": "1.4.1", 162 | "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.1.tgz", 163 | "integrity": "sha512-CHsKq8DMKBf9b3yXPDIU4DbH+ZJd/sJdYOW2llbW/HudP5u0VS6Bfq1hLYfgU7uAYGFIyGGQIsSOXGPEErZiJw==", 164 | "dev": true, 165 | "dependencies": { 166 | "@lezer/common": "^1.0.0" 167 | } 168 | }, 169 | "node_modules/@lmdb/lmdb-darwin-arm64": { 170 | "version": "2.8.5", 171 | "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz", 172 | "integrity": "sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==", 173 | "cpu": [ 174 | "arm64" 175 | ], 176 | "dev": true, 177 | "optional": true, 178 | "os": [ 179 | "darwin" 180 | ] 181 | }, 182 | "node_modules/@lmdb/lmdb-darwin-x64": { 183 | "version": "2.8.5", 184 | "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz", 185 | "integrity": "sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==", 186 | "cpu": [ 187 | "x64" 188 | ], 189 | "dev": true, 190 | "optional": true, 191 | "os": [ 192 | "darwin" 193 | ] 194 | }, 195 | "node_modules/@lmdb/lmdb-linux-arm": { 196 | "version": "2.8.5", 197 | "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz", 198 | "integrity": "sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==", 199 | "cpu": [ 200 | "arm" 201 | ], 202 | "dev": true, 203 | "optional": true, 204 | "os": [ 205 | "linux" 206 | ] 207 | }, 208 | "node_modules/@lmdb/lmdb-linux-arm64": { 209 | "version": "2.8.5", 210 | "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz", 211 | "integrity": "sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==", 212 | "cpu": [ 213 | "arm64" 214 | ], 215 | "dev": true, 216 | "optional": true, 217 | "os": [ 218 | "linux" 219 | ] 220 | }, 221 | "node_modules/@lmdb/lmdb-linux-x64": { 222 | "version": "2.8.5", 223 | "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz", 224 | "integrity": "sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==", 225 | "cpu": [ 226 | "x64" 227 | ], 228 | "dev": true, 229 | "optional": true, 230 | "os": [ 231 | "linux" 232 | ] 233 | }, 234 | "node_modules/@lmdb/lmdb-win32-x64": { 235 | "version": "2.8.5", 236 | "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz", 237 | "integrity": "sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==", 238 | "cpu": [ 239 | "x64" 240 | ], 241 | "dev": true, 242 | "optional": true, 243 | "os": [ 244 | "win32" 245 | ] 246 | }, 247 | "node_modules/@mischnic/json-sourcemap": { 248 | "version": "0.1.1", 249 | "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", 250 | "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", 251 | "dev": true, 252 | "dependencies": { 253 | "@lezer/common": "^1.0.0", 254 | "@lezer/lr": "^1.0.0", 255 | "json5": "^2.2.1" 256 | }, 257 | "engines": { 258 | "node": ">=12.0.0" 259 | } 260 | }, 261 | "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { 262 | "version": "3.0.3", 263 | "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", 264 | "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", 265 | "cpu": [ 266 | "arm64" 267 | ], 268 | "dev": true, 269 | "optional": true, 270 | "os": [ 271 | "darwin" 272 | ] 273 | }, 274 | "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { 275 | "version": "3.0.3", 276 | "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", 277 | "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", 278 | "cpu": [ 279 | "x64" 280 | ], 281 | "dev": true, 282 | "optional": true, 283 | "os": [ 284 | "darwin" 285 | ] 286 | }, 287 | "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { 288 | "version": "3.0.3", 289 | "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", 290 | "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", 291 | "cpu": [ 292 | "arm" 293 | ], 294 | "dev": true, 295 | "optional": true, 296 | "os": [ 297 | "linux" 298 | ] 299 | }, 300 | "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { 301 | "version": "3.0.3", 302 | "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", 303 | "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", 304 | "cpu": [ 305 | "arm64" 306 | ], 307 | "dev": true, 308 | "optional": true, 309 | "os": [ 310 | "linux" 311 | ] 312 | }, 313 | "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { 314 | "version": "3.0.3", 315 | "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", 316 | "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", 317 | "cpu": [ 318 | "x64" 319 | ], 320 | "dev": true, 321 | "optional": true, 322 | "os": [ 323 | "linux" 324 | ] 325 | }, 326 | "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { 327 | "version": "3.0.3", 328 | "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", 329 | "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", 330 | "cpu": [ 331 | "x64" 332 | ], 333 | "dev": true, 334 | "optional": true, 335 | "os": [ 336 | "win32" 337 | ] 338 | }, 339 | "node_modules/@parcel/bundler-default": { 340 | "version": "2.12.0", 341 | "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.12.0.tgz", 342 | "integrity": "sha512-3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA==", 343 | "dev": true, 344 | "dependencies": { 345 | "@parcel/diagnostic": "2.12.0", 346 | "@parcel/graph": "3.2.0", 347 | "@parcel/plugin": "2.12.0", 348 | "@parcel/rust": "2.12.0", 349 | "@parcel/utils": "2.12.0", 350 | "nullthrows": "^1.1.1" 351 | }, 352 | "engines": { 353 | "node": ">= 12.0.0", 354 | "parcel": "^2.12.0" 355 | }, 356 | "funding": { 357 | "type": "opencollective", 358 | "url": "https://opencollective.com/parcel" 359 | } 360 | }, 361 | "node_modules/@parcel/cache": { 362 | "version": "2.12.0", 363 | "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.12.0.tgz", 364 | "integrity": "sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==", 365 | "dev": true, 366 | "dependencies": { 367 | "@parcel/fs": "2.12.0", 368 | "@parcel/logger": "2.12.0", 369 | "@parcel/utils": "2.12.0", 370 | "lmdb": "2.8.5" 371 | }, 372 | "engines": { 373 | "node": ">= 12.0.0" 374 | }, 375 | "funding": { 376 | "type": "opencollective", 377 | "url": "https://opencollective.com/parcel" 378 | }, 379 | "peerDependencies": { 380 | "@parcel/core": "^2.12.0" 381 | } 382 | }, 383 | "node_modules/@parcel/codeframe": { 384 | "version": "2.12.0", 385 | "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.12.0.tgz", 386 | "integrity": "sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==", 387 | "dev": true, 388 | "dependencies": { 389 | "chalk": "^4.1.0" 390 | }, 391 | "engines": { 392 | "node": ">= 12.0.0" 393 | }, 394 | "funding": { 395 | "type": "opencollective", 396 | "url": "https://opencollective.com/parcel" 397 | } 398 | }, 399 | "node_modules/@parcel/compressor-raw": { 400 | "version": "2.12.0", 401 | "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.12.0.tgz", 402 | "integrity": "sha512-h41Q3X7ZAQ9wbQ2csP8QGrwepasLZdXiuEdpUryDce6rF9ZiHoJ97MRpdLxOhOPyASTw/xDgE1xyaPQr0Q3f5A==", 403 | "dev": true, 404 | "dependencies": { 405 | "@parcel/plugin": "2.12.0" 406 | }, 407 | "engines": { 408 | "node": ">= 12.0.0", 409 | "parcel": "^2.12.0" 410 | }, 411 | "funding": { 412 | "type": "opencollective", 413 | "url": "https://opencollective.com/parcel" 414 | } 415 | }, 416 | "node_modules/@parcel/config-default": { 417 | "version": "2.12.0", 418 | "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.12.0.tgz", 419 | "integrity": "sha512-dPNe2n9eEsKRc1soWIY0yToMUPirPIa2QhxcCB3Z5RjpDGIXm0pds+BaiqY6uGLEEzsjhRO0ujd4v2Rmm0vuFg==", 420 | "dev": true, 421 | "dependencies": { 422 | "@parcel/bundler-default": "2.12.0", 423 | "@parcel/compressor-raw": "2.12.0", 424 | "@parcel/namer-default": "2.12.0", 425 | "@parcel/optimizer-css": "2.12.0", 426 | "@parcel/optimizer-htmlnano": "2.12.0", 427 | "@parcel/optimizer-image": "2.12.0", 428 | "@parcel/optimizer-svgo": "2.12.0", 429 | "@parcel/optimizer-swc": "2.12.0", 430 | "@parcel/packager-css": "2.12.0", 431 | "@parcel/packager-html": "2.12.0", 432 | "@parcel/packager-js": "2.12.0", 433 | "@parcel/packager-raw": "2.12.0", 434 | "@parcel/packager-svg": "2.12.0", 435 | "@parcel/packager-wasm": "2.12.0", 436 | "@parcel/reporter-dev-server": "2.12.0", 437 | "@parcel/resolver-default": "2.12.0", 438 | "@parcel/runtime-browser-hmr": "2.12.0", 439 | "@parcel/runtime-js": "2.12.0", 440 | "@parcel/runtime-react-refresh": "2.12.0", 441 | "@parcel/runtime-service-worker": "2.12.0", 442 | "@parcel/transformer-babel": "2.12.0", 443 | "@parcel/transformer-css": "2.12.0", 444 | "@parcel/transformer-html": "2.12.0", 445 | "@parcel/transformer-image": "2.12.0", 446 | "@parcel/transformer-js": "2.12.0", 447 | "@parcel/transformer-json": "2.12.0", 448 | "@parcel/transformer-postcss": "2.12.0", 449 | "@parcel/transformer-posthtml": "2.12.0", 450 | "@parcel/transformer-raw": "2.12.0", 451 | "@parcel/transformer-react-refresh-wrap": "2.12.0", 452 | "@parcel/transformer-svg": "2.12.0" 453 | }, 454 | "funding": { 455 | "type": "opencollective", 456 | "url": "https://opencollective.com/parcel" 457 | }, 458 | "peerDependencies": { 459 | "@parcel/core": "^2.12.0" 460 | } 461 | }, 462 | "node_modules/@parcel/core": { 463 | "version": "2.12.0", 464 | "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.12.0.tgz", 465 | "integrity": "sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==", 466 | "dev": true, 467 | "dependencies": { 468 | "@mischnic/json-sourcemap": "^0.1.0", 469 | "@parcel/cache": "2.12.0", 470 | "@parcel/diagnostic": "2.12.0", 471 | "@parcel/events": "2.12.0", 472 | "@parcel/fs": "2.12.0", 473 | "@parcel/graph": "3.2.0", 474 | "@parcel/logger": "2.12.0", 475 | "@parcel/package-manager": "2.12.0", 476 | "@parcel/plugin": "2.12.0", 477 | "@parcel/profiler": "2.12.0", 478 | "@parcel/rust": "2.12.0", 479 | "@parcel/source-map": "^2.1.1", 480 | "@parcel/types": "2.12.0", 481 | "@parcel/utils": "2.12.0", 482 | "@parcel/workers": "2.12.0", 483 | "abortcontroller-polyfill": "^1.1.9", 484 | "base-x": "^3.0.8", 485 | "browserslist": "^4.6.6", 486 | "clone": "^2.1.1", 487 | "dotenv": "^7.0.0", 488 | "dotenv-expand": "^5.1.0", 489 | "json5": "^2.2.0", 490 | "msgpackr": "^1.9.9", 491 | "nullthrows": "^1.1.1", 492 | "semver": "^7.5.2" 493 | }, 494 | "engines": { 495 | "node": ">= 12.0.0" 496 | }, 497 | "funding": { 498 | "type": "opencollective", 499 | "url": "https://opencollective.com/parcel" 500 | } 501 | }, 502 | "node_modules/@parcel/diagnostic": { 503 | "version": "2.12.0", 504 | "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.12.0.tgz", 505 | "integrity": "sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==", 506 | "dev": true, 507 | "dependencies": { 508 | "@mischnic/json-sourcemap": "^0.1.0", 509 | "nullthrows": "^1.1.1" 510 | }, 511 | "engines": { 512 | "node": ">= 12.0.0" 513 | }, 514 | "funding": { 515 | "type": "opencollective", 516 | "url": "https://opencollective.com/parcel" 517 | } 518 | }, 519 | "node_modules/@parcel/events": { 520 | "version": "2.12.0", 521 | "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.12.0.tgz", 522 | "integrity": "sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==", 523 | "dev": true, 524 | "engines": { 525 | "node": ">= 12.0.0" 526 | }, 527 | "funding": { 528 | "type": "opencollective", 529 | "url": "https://opencollective.com/parcel" 530 | } 531 | }, 532 | "node_modules/@parcel/fs": { 533 | "version": "2.12.0", 534 | "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.12.0.tgz", 535 | "integrity": "sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==", 536 | "dev": true, 537 | "dependencies": { 538 | "@parcel/rust": "2.12.0", 539 | "@parcel/types": "2.12.0", 540 | "@parcel/utils": "2.12.0", 541 | "@parcel/watcher": "^2.0.7", 542 | "@parcel/workers": "2.12.0" 543 | }, 544 | "engines": { 545 | "node": ">= 12.0.0" 546 | }, 547 | "funding": { 548 | "type": "opencollective", 549 | "url": "https://opencollective.com/parcel" 550 | }, 551 | "peerDependencies": { 552 | "@parcel/core": "^2.12.0" 553 | } 554 | }, 555 | "node_modules/@parcel/graph": { 556 | "version": "3.2.0", 557 | "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.2.0.tgz", 558 | "integrity": "sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==", 559 | "dev": true, 560 | "dependencies": { 561 | "nullthrows": "^1.1.1" 562 | }, 563 | "engines": { 564 | "node": ">= 12.0.0" 565 | }, 566 | "funding": { 567 | "type": "opencollective", 568 | "url": "https://opencollective.com/parcel" 569 | } 570 | }, 571 | "node_modules/@parcel/logger": { 572 | "version": "2.12.0", 573 | "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.12.0.tgz", 574 | "integrity": "sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==", 575 | "dev": true, 576 | "dependencies": { 577 | "@parcel/diagnostic": "2.12.0", 578 | "@parcel/events": "2.12.0" 579 | }, 580 | "engines": { 581 | "node": ">= 12.0.0" 582 | }, 583 | "funding": { 584 | "type": "opencollective", 585 | "url": "https://opencollective.com/parcel" 586 | } 587 | }, 588 | "node_modules/@parcel/markdown-ansi": { 589 | "version": "2.12.0", 590 | "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz", 591 | "integrity": "sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==", 592 | "dev": true, 593 | "dependencies": { 594 | "chalk": "^4.1.0" 595 | }, 596 | "engines": { 597 | "node": ">= 12.0.0" 598 | }, 599 | "funding": { 600 | "type": "opencollective", 601 | "url": "https://opencollective.com/parcel" 602 | } 603 | }, 604 | "node_modules/@parcel/namer-default": { 605 | "version": "2.12.0", 606 | "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.12.0.tgz", 607 | "integrity": "sha512-9DNKPDHWgMnMtqqZIMiEj/R9PNWW16lpnlHjwK3ciRlMPgjPJ8+UNc255teZODhX0T17GOzPdGbU/O/xbxVPzA==", 608 | "dev": true, 609 | "dependencies": { 610 | "@parcel/diagnostic": "2.12.0", 611 | "@parcel/plugin": "2.12.0", 612 | "nullthrows": "^1.1.1" 613 | }, 614 | "engines": { 615 | "node": ">= 12.0.0", 616 | "parcel": "^2.12.0" 617 | }, 618 | "funding": { 619 | "type": "opencollective", 620 | "url": "https://opencollective.com/parcel" 621 | } 622 | }, 623 | "node_modules/@parcel/node-resolver-core": { 624 | "version": "3.3.0", 625 | "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz", 626 | "integrity": "sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==", 627 | "dev": true, 628 | "dependencies": { 629 | "@mischnic/json-sourcemap": "^0.1.0", 630 | "@parcel/diagnostic": "2.12.0", 631 | "@parcel/fs": "2.12.0", 632 | "@parcel/rust": "2.12.0", 633 | "@parcel/utils": "2.12.0", 634 | "nullthrows": "^1.1.1", 635 | "semver": "^7.5.2" 636 | }, 637 | "engines": { 638 | "node": ">= 12.0.0" 639 | }, 640 | "funding": { 641 | "type": "opencollective", 642 | "url": "https://opencollective.com/parcel" 643 | } 644 | }, 645 | "node_modules/@parcel/optimizer-css": { 646 | "version": "2.12.0", 647 | "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.12.0.tgz", 648 | "integrity": "sha512-ifbcC97fRzpruTjaa8axIFeX4MjjSIlQfem3EJug3L2AVqQUXnM1XO8L0NaXGNLTW2qnh1ZjIJ7vXT/QhsphsA==", 649 | "dev": true, 650 | "dependencies": { 651 | "@parcel/diagnostic": "2.12.0", 652 | "@parcel/plugin": "2.12.0", 653 | "@parcel/source-map": "^2.1.1", 654 | "@parcel/utils": "2.12.0", 655 | "browserslist": "^4.6.6", 656 | "lightningcss": "^1.22.1", 657 | "nullthrows": "^1.1.1" 658 | }, 659 | "engines": { 660 | "node": ">= 12.0.0", 661 | "parcel": "^2.12.0" 662 | }, 663 | "funding": { 664 | "type": "opencollective", 665 | "url": "https://opencollective.com/parcel" 666 | } 667 | }, 668 | "node_modules/@parcel/optimizer-htmlnano": { 669 | "version": "2.12.0", 670 | "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.12.0.tgz", 671 | "integrity": "sha512-MfPMeCrT8FYiOrpFHVR+NcZQlXAptK2r4nGJjfT+ndPBhEEZp4yyL7n1y7HfX9geg5altc4WTb4Gug7rCoW8VQ==", 672 | "dev": true, 673 | "dependencies": { 674 | "@parcel/plugin": "2.12.0", 675 | "htmlnano": "^2.0.0", 676 | "nullthrows": "^1.1.1", 677 | "posthtml": "^0.16.5", 678 | "svgo": "^2.4.0" 679 | }, 680 | "engines": { 681 | "node": ">= 12.0.0", 682 | "parcel": "^2.12.0" 683 | }, 684 | "funding": { 685 | "type": "opencollective", 686 | "url": "https://opencollective.com/parcel" 687 | } 688 | }, 689 | "node_modules/@parcel/optimizer-htmlnano/node_modules/css-select": { 690 | "version": "4.3.0", 691 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", 692 | "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", 693 | "dev": true, 694 | "dependencies": { 695 | "boolbase": "^1.0.0", 696 | "css-what": "^6.0.1", 697 | "domhandler": "^4.3.1", 698 | "domutils": "^2.8.0", 699 | "nth-check": "^2.0.1" 700 | }, 701 | "funding": { 702 | "url": "https://github.com/sponsors/fb55" 703 | } 704 | }, 705 | "node_modules/@parcel/optimizer-htmlnano/node_modules/css-tree": { 706 | "version": "1.1.3", 707 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", 708 | "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", 709 | "dev": true, 710 | "dependencies": { 711 | "mdn-data": "2.0.14", 712 | "source-map": "^0.6.1" 713 | }, 714 | "engines": { 715 | "node": ">=8.0.0" 716 | } 717 | }, 718 | "node_modules/@parcel/optimizer-htmlnano/node_modules/csso": { 719 | "version": "4.2.0", 720 | "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", 721 | "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", 722 | "dev": true, 723 | "dependencies": { 724 | "css-tree": "^1.1.2" 725 | }, 726 | "engines": { 727 | "node": ">=8.0.0" 728 | } 729 | }, 730 | "node_modules/@parcel/optimizer-htmlnano/node_modules/mdn-data": { 731 | "version": "2.0.14", 732 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", 733 | "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", 734 | "dev": true 735 | }, 736 | "node_modules/@parcel/optimizer-htmlnano/node_modules/svgo": { 737 | "version": "2.8.0", 738 | "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", 739 | "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", 740 | "dev": true, 741 | "dependencies": { 742 | "@trysound/sax": "0.2.0", 743 | "commander": "^7.2.0", 744 | "css-select": "^4.1.3", 745 | "css-tree": "^1.1.3", 746 | "csso": "^4.2.0", 747 | "picocolors": "^1.0.0", 748 | "stable": "^0.1.8" 749 | }, 750 | "bin": { 751 | "svgo": "bin/svgo" 752 | }, 753 | "engines": { 754 | "node": ">=10.13.0" 755 | } 756 | }, 757 | "node_modules/@parcel/optimizer-image": { 758 | "version": "2.12.0", 759 | "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.12.0.tgz", 760 | "integrity": "sha512-bo1O7raeAIbRU5nmNVtx8divLW9Xqn0c57GVNGeAK4mygnQoqHqRZ0mR9uboh64pxv6ijXZHPhKvU9HEpjPjBQ==", 761 | "dev": true, 762 | "dependencies": { 763 | "@parcel/diagnostic": "2.12.0", 764 | "@parcel/plugin": "2.12.0", 765 | "@parcel/rust": "2.12.0", 766 | "@parcel/utils": "2.12.0", 767 | "@parcel/workers": "2.12.0" 768 | }, 769 | "engines": { 770 | "node": ">= 12.0.0", 771 | "parcel": "^2.12.0" 772 | }, 773 | "funding": { 774 | "type": "opencollective", 775 | "url": "https://opencollective.com/parcel" 776 | }, 777 | "peerDependencies": { 778 | "@parcel/core": "^2.12.0" 779 | } 780 | }, 781 | "node_modules/@parcel/optimizer-svgo": { 782 | "version": "2.12.0", 783 | "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.12.0.tgz", 784 | "integrity": "sha512-Kyli+ZZXnoonnbeRQdoWwee9Bk2jm/49xvnfb+2OO8NN0d41lblBoRhOyFiScRnJrw7eVl1Xrz7NTkXCIO7XFQ==", 785 | "dev": true, 786 | "dependencies": { 787 | "@parcel/diagnostic": "2.12.0", 788 | "@parcel/plugin": "2.12.0", 789 | "@parcel/utils": "2.12.0", 790 | "svgo": "^2.4.0" 791 | }, 792 | "engines": { 793 | "node": ">= 12.0.0", 794 | "parcel": "^2.12.0" 795 | }, 796 | "funding": { 797 | "type": "opencollective", 798 | "url": "https://opencollective.com/parcel" 799 | } 800 | }, 801 | "node_modules/@parcel/optimizer-svgo/node_modules/css-select": { 802 | "version": "4.3.0", 803 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", 804 | "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", 805 | "dev": true, 806 | "dependencies": { 807 | "boolbase": "^1.0.0", 808 | "css-what": "^6.0.1", 809 | "domhandler": "^4.3.1", 810 | "domutils": "^2.8.0", 811 | "nth-check": "^2.0.1" 812 | }, 813 | "funding": { 814 | "url": "https://github.com/sponsors/fb55" 815 | } 816 | }, 817 | "node_modules/@parcel/optimizer-svgo/node_modules/css-tree": { 818 | "version": "1.1.3", 819 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", 820 | "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", 821 | "dev": true, 822 | "dependencies": { 823 | "mdn-data": "2.0.14", 824 | "source-map": "^0.6.1" 825 | }, 826 | "engines": { 827 | "node": ">=8.0.0" 828 | } 829 | }, 830 | "node_modules/@parcel/optimizer-svgo/node_modules/csso": { 831 | "version": "4.2.0", 832 | "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", 833 | "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", 834 | "dev": true, 835 | "dependencies": { 836 | "css-tree": "^1.1.2" 837 | }, 838 | "engines": { 839 | "node": ">=8.0.0" 840 | } 841 | }, 842 | "node_modules/@parcel/optimizer-svgo/node_modules/mdn-data": { 843 | "version": "2.0.14", 844 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", 845 | "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", 846 | "dev": true 847 | }, 848 | "node_modules/@parcel/optimizer-svgo/node_modules/svgo": { 849 | "version": "2.8.0", 850 | "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", 851 | "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", 852 | "dev": true, 853 | "dependencies": { 854 | "@trysound/sax": "0.2.0", 855 | "commander": "^7.2.0", 856 | "css-select": "^4.1.3", 857 | "css-tree": "^1.1.3", 858 | "csso": "^4.2.0", 859 | "picocolors": "^1.0.0", 860 | "stable": "^0.1.8" 861 | }, 862 | "bin": { 863 | "svgo": "bin/svgo" 864 | }, 865 | "engines": { 866 | "node": ">=10.13.0" 867 | } 868 | }, 869 | "node_modules/@parcel/optimizer-swc": { 870 | "version": "2.12.0", 871 | "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.12.0.tgz", 872 | "integrity": "sha512-iBi6LZB3lm6WmbXfzi8J3DCVPmn4FN2lw7DGXxUXu7MouDPVWfTsM6U/5TkSHJRNRogZ2gqy5q9g34NPxHbJcw==", 873 | "dev": true, 874 | "dependencies": { 875 | "@parcel/diagnostic": "2.12.0", 876 | "@parcel/plugin": "2.12.0", 877 | "@parcel/source-map": "^2.1.1", 878 | "@parcel/utils": "2.12.0", 879 | "@swc/core": "^1.3.36", 880 | "nullthrows": "^1.1.1" 881 | }, 882 | "engines": { 883 | "node": ">= 12.0.0", 884 | "parcel": "^2.12.0" 885 | }, 886 | "funding": { 887 | "type": "opencollective", 888 | "url": "https://opencollective.com/parcel" 889 | } 890 | }, 891 | "node_modules/@parcel/package-manager": { 892 | "version": "2.12.0", 893 | "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.12.0.tgz", 894 | "integrity": "sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==", 895 | "dev": true, 896 | "dependencies": { 897 | "@parcel/diagnostic": "2.12.0", 898 | "@parcel/fs": "2.12.0", 899 | "@parcel/logger": "2.12.0", 900 | "@parcel/node-resolver-core": "3.3.0", 901 | "@parcel/types": "2.12.0", 902 | "@parcel/utils": "2.12.0", 903 | "@parcel/workers": "2.12.0", 904 | "@swc/core": "^1.3.36", 905 | "semver": "^7.5.2" 906 | }, 907 | "engines": { 908 | "node": ">= 12.0.0" 909 | }, 910 | "funding": { 911 | "type": "opencollective", 912 | "url": "https://opencollective.com/parcel" 913 | }, 914 | "peerDependencies": { 915 | "@parcel/core": "^2.12.0" 916 | } 917 | }, 918 | "node_modules/@parcel/packager-css": { 919 | "version": "2.12.0", 920 | "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.12.0.tgz", 921 | "integrity": "sha512-j3a/ODciaNKD19IYdWJT+TP+tnhhn5koBGBWWtrKSu0UxWpnezIGZetit3eE+Y9+NTePalMkvpIlit2eDhvfJA==", 922 | "dev": true, 923 | "dependencies": { 924 | "@parcel/diagnostic": "2.12.0", 925 | "@parcel/plugin": "2.12.0", 926 | "@parcel/source-map": "^2.1.1", 927 | "@parcel/utils": "2.12.0", 928 | "lightningcss": "^1.22.1", 929 | "nullthrows": "^1.1.1" 930 | }, 931 | "engines": { 932 | "node": ">= 12.0.0", 933 | "parcel": "^2.12.0" 934 | }, 935 | "funding": { 936 | "type": "opencollective", 937 | "url": "https://opencollective.com/parcel" 938 | } 939 | }, 940 | "node_modules/@parcel/packager-html": { 941 | "version": "2.12.0", 942 | "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.12.0.tgz", 943 | "integrity": "sha512-PpvGB9hFFe+19NXGz2ApvPrkA9GwEqaDAninT+3pJD57OVBaxB8U+HN4a5LICKxjUppPPqmrLb6YPbD65IX4RA==", 944 | "dev": true, 945 | "dependencies": { 946 | "@parcel/plugin": "2.12.0", 947 | "@parcel/types": "2.12.0", 948 | "@parcel/utils": "2.12.0", 949 | "nullthrows": "^1.1.1", 950 | "posthtml": "^0.16.5" 951 | }, 952 | "engines": { 953 | "node": ">= 12.0.0", 954 | "parcel": "^2.12.0" 955 | }, 956 | "funding": { 957 | "type": "opencollective", 958 | "url": "https://opencollective.com/parcel" 959 | } 960 | }, 961 | "node_modules/@parcel/packager-js": { 962 | "version": "2.12.0", 963 | "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.12.0.tgz", 964 | "integrity": "sha512-viMF+FszITRRr8+2iJyk+4ruGiL27Y6AF7hQ3xbJfzqnmbOhGFtLTQwuwhOLqN/mWR2VKdgbLpZSarWaO3yAMg==", 965 | "dev": true, 966 | "dependencies": { 967 | "@parcel/diagnostic": "2.12.0", 968 | "@parcel/plugin": "2.12.0", 969 | "@parcel/rust": "2.12.0", 970 | "@parcel/source-map": "^2.1.1", 971 | "@parcel/types": "2.12.0", 972 | "@parcel/utils": "2.12.0", 973 | "globals": "^13.2.0", 974 | "nullthrows": "^1.1.1" 975 | }, 976 | "engines": { 977 | "node": ">= 12.0.0", 978 | "parcel": "^2.12.0" 979 | }, 980 | "funding": { 981 | "type": "opencollective", 982 | "url": "https://opencollective.com/parcel" 983 | } 984 | }, 985 | "node_modules/@parcel/packager-raw": { 986 | "version": "2.12.0", 987 | "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.12.0.tgz", 988 | "integrity": "sha512-tJZqFbHqP24aq1F+OojFbQIc09P/u8HAW5xfndCrFnXpW4wTgM3p03P0xfw3gnNq+TtxHJ8c3UFE5LnXNNKhYA==", 989 | "dev": true, 990 | "dependencies": { 991 | "@parcel/plugin": "2.12.0" 992 | }, 993 | "engines": { 994 | "node": ">= 12.0.0", 995 | "parcel": "^2.12.0" 996 | }, 997 | "funding": { 998 | "type": "opencollective", 999 | "url": "https://opencollective.com/parcel" 1000 | } 1001 | }, 1002 | "node_modules/@parcel/packager-svg": { 1003 | "version": "2.12.0", 1004 | "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.12.0.tgz", 1005 | "integrity": "sha512-ldaGiacGb2lLqcXas97k8JiZRbAnNREmcvoY2W2dvW4loVuDT9B9fU777mbV6zODpcgcHWsLL3lYbJ5Lt3y9cg==", 1006 | "dev": true, 1007 | "dependencies": { 1008 | "@parcel/plugin": "2.12.0", 1009 | "@parcel/types": "2.12.0", 1010 | "@parcel/utils": "2.12.0", 1011 | "posthtml": "^0.16.4" 1012 | }, 1013 | "engines": { 1014 | "node": ">= 12.0.0", 1015 | "parcel": "^2.12.0" 1016 | }, 1017 | "funding": { 1018 | "type": "opencollective", 1019 | "url": "https://opencollective.com/parcel" 1020 | } 1021 | }, 1022 | "node_modules/@parcel/packager-wasm": { 1023 | "version": "2.12.0", 1024 | "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.12.0.tgz", 1025 | "integrity": "sha512-fYqZzIqO9fGYveeImzF8ll6KRo2LrOXfD+2Y5U3BiX/wp9wv17dz50QLDQm9hmTcKGWxK4yWqKQh+Evp/fae7A==", 1026 | "dev": true, 1027 | "dependencies": { 1028 | "@parcel/plugin": "2.12.0" 1029 | }, 1030 | "engines": { 1031 | "node": ">=12.0.0", 1032 | "parcel": "^2.12.0" 1033 | }, 1034 | "funding": { 1035 | "type": "opencollective", 1036 | "url": "https://opencollective.com/parcel" 1037 | } 1038 | }, 1039 | "node_modules/@parcel/plugin": { 1040 | "version": "2.12.0", 1041 | "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.12.0.tgz", 1042 | "integrity": "sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==", 1043 | "dev": true, 1044 | "dependencies": { 1045 | "@parcel/types": "2.12.0" 1046 | }, 1047 | "engines": { 1048 | "node": ">= 12.0.0" 1049 | }, 1050 | "funding": { 1051 | "type": "opencollective", 1052 | "url": "https://opencollective.com/parcel" 1053 | } 1054 | }, 1055 | "node_modules/@parcel/profiler": { 1056 | "version": "2.12.0", 1057 | "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.12.0.tgz", 1058 | "integrity": "sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==", 1059 | "dev": true, 1060 | "dependencies": { 1061 | "@parcel/diagnostic": "2.12.0", 1062 | "@parcel/events": "2.12.0", 1063 | "chrome-trace-event": "^1.0.2" 1064 | }, 1065 | "engines": { 1066 | "node": ">= 12.0.0" 1067 | }, 1068 | "funding": { 1069 | "type": "opencollective", 1070 | "url": "https://opencollective.com/parcel" 1071 | } 1072 | }, 1073 | "node_modules/@parcel/reporter-cli": { 1074 | "version": "2.12.0", 1075 | "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.12.0.tgz", 1076 | "integrity": "sha512-TqKsH4GVOLPSCanZ6tcTPj+rdVHERnt5y4bwTM82cajM21bCX1Ruwp8xOKU+03091oV2pv5ieB18pJyRF7IpIw==", 1077 | "dev": true, 1078 | "dependencies": { 1079 | "@parcel/plugin": "2.12.0", 1080 | "@parcel/types": "2.12.0", 1081 | "@parcel/utils": "2.12.0", 1082 | "chalk": "^4.1.0", 1083 | "term-size": "^2.2.1" 1084 | }, 1085 | "engines": { 1086 | "node": ">= 12.0.0", 1087 | "parcel": "^2.12.0" 1088 | }, 1089 | "funding": { 1090 | "type": "opencollective", 1091 | "url": "https://opencollective.com/parcel" 1092 | } 1093 | }, 1094 | "node_modules/@parcel/reporter-dev-server": { 1095 | "version": "2.12.0", 1096 | "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.12.0.tgz", 1097 | "integrity": "sha512-tIcDqRvAPAttRlTV28dHcbWT5K2r/MBFks7nM4nrEDHWtnrCwimkDmZTc1kD8QOCCjGVwRHcQybpHvxfwol6GA==", 1098 | "dev": true, 1099 | "dependencies": { 1100 | "@parcel/plugin": "2.12.0", 1101 | "@parcel/utils": "2.12.0" 1102 | }, 1103 | "engines": { 1104 | "node": ">= 12.0.0", 1105 | "parcel": "^2.12.0" 1106 | }, 1107 | "funding": { 1108 | "type": "opencollective", 1109 | "url": "https://opencollective.com/parcel" 1110 | } 1111 | }, 1112 | "node_modules/@parcel/reporter-tracer": { 1113 | "version": "2.12.0", 1114 | "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.12.0.tgz", 1115 | "integrity": "sha512-g8rlu9GxB8Ut/F8WGx4zidIPQ4pcYFjU9bZO+fyRIPrSUFH2bKijCnbZcr4ntqzDGx74hwD6cCG4DBoleq2UlQ==", 1116 | "dev": true, 1117 | "dependencies": { 1118 | "@parcel/plugin": "2.12.0", 1119 | "@parcel/utils": "2.12.0", 1120 | "chrome-trace-event": "^1.0.3", 1121 | "nullthrows": "^1.1.1" 1122 | }, 1123 | "engines": { 1124 | "node": ">= 12.0.0", 1125 | "parcel": "^2.12.0" 1126 | }, 1127 | "funding": { 1128 | "type": "opencollective", 1129 | "url": "https://opencollective.com/parcel" 1130 | } 1131 | }, 1132 | "node_modules/@parcel/resolver-default": { 1133 | "version": "2.12.0", 1134 | "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.12.0.tgz", 1135 | "integrity": "sha512-uuhbajTax37TwCxu7V98JtRLiT6hzE4VYSu5B7Qkauy14/WFt2dz6GOUXPgVsED569/hkxebPx3KCMtZW6cHHA==", 1136 | "dev": true, 1137 | "dependencies": { 1138 | "@parcel/node-resolver-core": "3.3.0", 1139 | "@parcel/plugin": "2.12.0" 1140 | }, 1141 | "engines": { 1142 | "node": ">= 12.0.0", 1143 | "parcel": "^2.12.0" 1144 | }, 1145 | "funding": { 1146 | "type": "opencollective", 1147 | "url": "https://opencollective.com/parcel" 1148 | } 1149 | }, 1150 | "node_modules/@parcel/runtime-browser-hmr": { 1151 | "version": "2.12.0", 1152 | "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.12.0.tgz", 1153 | "integrity": "sha512-4ZLp2FWyD32r0GlTulO3+jxgsA3oO1P1b5oO2IWuWilfhcJH5LTiazpL5YdusUjtNn9PGN6QLAWfxmzRIfM+Ow==", 1154 | "dev": true, 1155 | "dependencies": { 1156 | "@parcel/plugin": "2.12.0", 1157 | "@parcel/utils": "2.12.0" 1158 | }, 1159 | "engines": { 1160 | "node": ">= 12.0.0", 1161 | "parcel": "^2.12.0" 1162 | }, 1163 | "funding": { 1164 | "type": "opencollective", 1165 | "url": "https://opencollective.com/parcel" 1166 | } 1167 | }, 1168 | "node_modules/@parcel/runtime-js": { 1169 | "version": "2.12.0", 1170 | "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.12.0.tgz", 1171 | "integrity": "sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg==", 1172 | "dev": true, 1173 | "dependencies": { 1174 | "@parcel/diagnostic": "2.12.0", 1175 | "@parcel/plugin": "2.12.0", 1176 | "@parcel/utils": "2.12.0", 1177 | "nullthrows": "^1.1.1" 1178 | }, 1179 | "engines": { 1180 | "node": ">= 12.0.0", 1181 | "parcel": "^2.12.0" 1182 | }, 1183 | "funding": { 1184 | "type": "opencollective", 1185 | "url": "https://opencollective.com/parcel" 1186 | } 1187 | }, 1188 | "node_modules/@parcel/runtime-react-refresh": { 1189 | "version": "2.12.0", 1190 | "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.12.0.tgz", 1191 | "integrity": "sha512-SCHkcczJIDFTFdLTzrHTkQ0aTrX3xH6jrA4UsCBL6ji61+w+ohy4jEEe9qCgJVXhnJfGLE43HNXek+0MStX+Mw==", 1192 | "dev": true, 1193 | "dependencies": { 1194 | "@parcel/plugin": "2.12.0", 1195 | "@parcel/utils": "2.12.0", 1196 | "react-error-overlay": "6.0.9", 1197 | "react-refresh": "^0.9.0" 1198 | }, 1199 | "engines": { 1200 | "node": ">= 12.0.0", 1201 | "parcel": "^2.12.0" 1202 | }, 1203 | "funding": { 1204 | "type": "opencollective", 1205 | "url": "https://opencollective.com/parcel" 1206 | } 1207 | }, 1208 | "node_modules/@parcel/runtime-service-worker": { 1209 | "version": "2.12.0", 1210 | "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.12.0.tgz", 1211 | "integrity": "sha512-BXuMBsfiwpIEnssn+jqfC3jkgbS8oxeo3C7xhSQsuSv+AF2FwY3O3AO1c1RBskEW3XrBLNINOJujroNw80VTKA==", 1212 | "dev": true, 1213 | "dependencies": { 1214 | "@parcel/plugin": "2.12.0", 1215 | "@parcel/utils": "2.12.0", 1216 | "nullthrows": "^1.1.1" 1217 | }, 1218 | "engines": { 1219 | "node": ">= 12.0.0", 1220 | "parcel": "^2.12.0" 1221 | }, 1222 | "funding": { 1223 | "type": "opencollective", 1224 | "url": "https://opencollective.com/parcel" 1225 | } 1226 | }, 1227 | "node_modules/@parcel/rust": { 1228 | "version": "2.12.0", 1229 | "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.12.0.tgz", 1230 | "integrity": "sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==", 1231 | "dev": true, 1232 | "engines": { 1233 | "node": ">= 12.0.0" 1234 | }, 1235 | "funding": { 1236 | "type": "opencollective", 1237 | "url": "https://opencollective.com/parcel" 1238 | } 1239 | }, 1240 | "node_modules/@parcel/source-map": { 1241 | "version": "2.1.1", 1242 | "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", 1243 | "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", 1244 | "dev": true, 1245 | "dependencies": { 1246 | "detect-libc": "^1.0.3" 1247 | }, 1248 | "engines": { 1249 | "node": "^12.18.3 || >=14" 1250 | } 1251 | }, 1252 | "node_modules/@parcel/transformer-babel": { 1253 | "version": "2.12.0", 1254 | "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.12.0.tgz", 1255 | "integrity": "sha512-zQaBfOnf/l8rPxYGnsk/ufh/0EuqvmnxafjBIpKZ//j6rGylw5JCqXSb1QvvAqRYruKeccxGv7+HrxpqKU6V4A==", 1256 | "dev": true, 1257 | "dependencies": { 1258 | "@parcel/diagnostic": "2.12.0", 1259 | "@parcel/plugin": "2.12.0", 1260 | "@parcel/source-map": "^2.1.1", 1261 | "@parcel/utils": "2.12.0", 1262 | "browserslist": "^4.6.6", 1263 | "json5": "^2.2.0", 1264 | "nullthrows": "^1.1.1", 1265 | "semver": "^7.5.2" 1266 | }, 1267 | "engines": { 1268 | "node": ">= 12.0.0", 1269 | "parcel": "^2.12.0" 1270 | }, 1271 | "funding": { 1272 | "type": "opencollective", 1273 | "url": "https://opencollective.com/parcel" 1274 | } 1275 | }, 1276 | "node_modules/@parcel/transformer-css": { 1277 | "version": "2.12.0", 1278 | "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.12.0.tgz", 1279 | "integrity": "sha512-vXhOqoAlQGATYyQ433Z1DXKmiKmzOAUmKysbYH3FD+LKEKLMEl/pA14goqp00TW+A/EjtSKKyeMyHlMIIUqj4Q==", 1280 | "dev": true, 1281 | "dependencies": { 1282 | "@parcel/diagnostic": "2.12.0", 1283 | "@parcel/plugin": "2.12.0", 1284 | "@parcel/source-map": "^2.1.1", 1285 | "@parcel/utils": "2.12.0", 1286 | "browserslist": "^4.6.6", 1287 | "lightningcss": "^1.22.1", 1288 | "nullthrows": "^1.1.1" 1289 | }, 1290 | "engines": { 1291 | "node": ">= 12.0.0", 1292 | "parcel": "^2.12.0" 1293 | }, 1294 | "funding": { 1295 | "type": "opencollective", 1296 | "url": "https://opencollective.com/parcel" 1297 | } 1298 | }, 1299 | "node_modules/@parcel/transformer-html": { 1300 | "version": "2.12.0", 1301 | "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.12.0.tgz", 1302 | "integrity": "sha512-5jW4dFFBlYBvIQk4nrH62rfA/G/KzVzEDa6S+Nne0xXhglLjkm64Ci9b/d4tKZfuGWUbpm2ASAq8skti/nfpXw==", 1303 | "dev": true, 1304 | "dependencies": { 1305 | "@parcel/diagnostic": "2.12.0", 1306 | "@parcel/plugin": "2.12.0", 1307 | "@parcel/rust": "2.12.0", 1308 | "nullthrows": "^1.1.1", 1309 | "posthtml": "^0.16.5", 1310 | "posthtml-parser": "^0.10.1", 1311 | "posthtml-render": "^3.0.0", 1312 | "semver": "^7.5.2", 1313 | "srcset": "4" 1314 | }, 1315 | "engines": { 1316 | "node": ">= 12.0.0", 1317 | "parcel": "^2.12.0" 1318 | }, 1319 | "funding": { 1320 | "type": "opencollective", 1321 | "url": "https://opencollective.com/parcel" 1322 | } 1323 | }, 1324 | "node_modules/@parcel/transformer-html/node_modules/srcset": { 1325 | "version": "4.0.0", 1326 | "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", 1327 | "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", 1328 | "dev": true, 1329 | "engines": { 1330 | "node": ">=12" 1331 | }, 1332 | "funding": { 1333 | "url": "https://github.com/sponsors/sindresorhus" 1334 | } 1335 | }, 1336 | "node_modules/@parcel/transformer-image": { 1337 | "version": "2.12.0", 1338 | "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.12.0.tgz", 1339 | "integrity": "sha512-8hXrGm2IRII49R7lZ0RpmNk27EhcsH+uNKsvxuMpXPuEnWgC/ha/IrjaI29xCng1uGur74bJF43NUSQhR4aTdw==", 1340 | "dev": true, 1341 | "dependencies": { 1342 | "@parcel/plugin": "2.12.0", 1343 | "@parcel/utils": "2.12.0", 1344 | "@parcel/workers": "2.12.0", 1345 | "nullthrows": "^1.1.1" 1346 | }, 1347 | "engines": { 1348 | "node": ">= 12.0.0", 1349 | "parcel": "^2.12.0" 1350 | }, 1351 | "peerDependencies": { 1352 | "@parcel/core": "^2.12.0" 1353 | } 1354 | }, 1355 | "node_modules/@parcel/transformer-js": { 1356 | "version": "2.12.0", 1357 | "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.12.0.tgz", 1358 | "integrity": "sha512-OSZpOu+FGDbC/xivu24v092D9w6EGytB3vidwbdiJ2FaPgfV7rxS0WIUjH4I0OcvHAcitArRXL0a3+HrNTdQQw==", 1359 | "dev": true, 1360 | "dependencies": { 1361 | "@parcel/diagnostic": "2.12.0", 1362 | "@parcel/plugin": "2.12.0", 1363 | "@parcel/rust": "2.12.0", 1364 | "@parcel/source-map": "^2.1.1", 1365 | "@parcel/utils": "2.12.0", 1366 | "@parcel/workers": "2.12.0", 1367 | "@swc/helpers": "^0.5.0", 1368 | "browserslist": "^4.6.6", 1369 | "nullthrows": "^1.1.1", 1370 | "regenerator-runtime": "^0.13.7", 1371 | "semver": "^7.5.2" 1372 | }, 1373 | "engines": { 1374 | "node": ">= 12.0.0", 1375 | "parcel": "^2.12.0" 1376 | }, 1377 | "funding": { 1378 | "type": "opencollective", 1379 | "url": "https://opencollective.com/parcel" 1380 | }, 1381 | "peerDependencies": { 1382 | "@parcel/core": "^2.12.0" 1383 | } 1384 | }, 1385 | "node_modules/@parcel/transformer-json": { 1386 | "version": "2.12.0", 1387 | "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.12.0.tgz", 1388 | "integrity": "sha512-Utv64GLRCQILK5r0KFs4o7I41ixMPllwOLOhkdjJKvf1hZmN6WqfOmB1YLbWS/y5Zb/iB52DU2pWZm96vLFQZQ==", 1389 | "dev": true, 1390 | "dependencies": { 1391 | "@parcel/plugin": "2.12.0", 1392 | "json5": "^2.2.0" 1393 | }, 1394 | "engines": { 1395 | "node": ">= 12.0.0", 1396 | "parcel": "^2.12.0" 1397 | }, 1398 | "funding": { 1399 | "type": "opencollective", 1400 | "url": "https://opencollective.com/parcel" 1401 | } 1402 | }, 1403 | "node_modules/@parcel/transformer-postcss": { 1404 | "version": "2.12.0", 1405 | "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.12.0.tgz", 1406 | "integrity": "sha512-FZqn+oUtiLfPOn67EZxPpBkfdFiTnF4iwiXPqvst3XI8H+iC+yNgzmtJkunOOuylpYY6NOU5jT8d7saqWSDv2Q==", 1407 | "dev": true, 1408 | "dependencies": { 1409 | "@parcel/diagnostic": "2.12.0", 1410 | "@parcel/plugin": "2.12.0", 1411 | "@parcel/rust": "2.12.0", 1412 | "@parcel/utils": "2.12.0", 1413 | "clone": "^2.1.1", 1414 | "nullthrows": "^1.1.1", 1415 | "postcss-value-parser": "^4.2.0", 1416 | "semver": "^7.5.2" 1417 | }, 1418 | "engines": { 1419 | "node": ">= 12.0.0", 1420 | "parcel": "^2.12.0" 1421 | }, 1422 | "funding": { 1423 | "type": "opencollective", 1424 | "url": "https://opencollective.com/parcel" 1425 | } 1426 | }, 1427 | "node_modules/@parcel/transformer-posthtml": { 1428 | "version": "2.12.0", 1429 | "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.12.0.tgz", 1430 | "integrity": "sha512-z6Z7rav/pcaWdeD+2sDUcd0mmNZRUvtHaUGa50Y2mr+poxrKilpsnFMSiWBT+oOqPt7j71jzDvrdnAF4XkCljg==", 1431 | "dev": true, 1432 | "dependencies": { 1433 | "@parcel/plugin": "2.12.0", 1434 | "@parcel/utils": "2.12.0", 1435 | "nullthrows": "^1.1.1", 1436 | "posthtml": "^0.16.5", 1437 | "posthtml-parser": "^0.10.1", 1438 | "posthtml-render": "^3.0.0", 1439 | "semver": "^7.5.2" 1440 | }, 1441 | "engines": { 1442 | "node": ">= 12.0.0", 1443 | "parcel": "^2.12.0" 1444 | }, 1445 | "funding": { 1446 | "type": "opencollective", 1447 | "url": "https://opencollective.com/parcel" 1448 | } 1449 | }, 1450 | "node_modules/@parcel/transformer-raw": { 1451 | "version": "2.12.0", 1452 | "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.12.0.tgz", 1453 | "integrity": "sha512-Ht1fQvXxix0NncdnmnXZsa6hra20RXYh1VqhBYZLsDfkvGGFnXIgO03Jqn4Z8MkKoa0tiNbDhpKIeTjyclbBxQ==", 1454 | "dev": true, 1455 | "dependencies": { 1456 | "@parcel/plugin": "2.12.0" 1457 | }, 1458 | "engines": { 1459 | "node": ">= 12.0.0", 1460 | "parcel": "^2.12.0" 1461 | }, 1462 | "funding": { 1463 | "type": "opencollective", 1464 | "url": "https://opencollective.com/parcel" 1465 | } 1466 | }, 1467 | "node_modules/@parcel/transformer-react-refresh-wrap": { 1468 | "version": "2.12.0", 1469 | "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.12.0.tgz", 1470 | "integrity": "sha512-GE8gmP2AZtkpBIV5vSCVhewgOFRhqwdM5Q9jNPOY5PKcM3/Ff0qCqDiTzzGLhk0/VMBrdjssrfZkVx6S/lHdJw==", 1471 | "dev": true, 1472 | "dependencies": { 1473 | "@parcel/plugin": "2.12.0", 1474 | "@parcel/utils": "2.12.0", 1475 | "react-refresh": "^0.9.0" 1476 | }, 1477 | "engines": { 1478 | "node": ">= 12.0.0", 1479 | "parcel": "^2.12.0" 1480 | }, 1481 | "funding": { 1482 | "type": "opencollective", 1483 | "url": "https://opencollective.com/parcel" 1484 | } 1485 | }, 1486 | "node_modules/@parcel/transformer-svg": { 1487 | "version": "2.12.0", 1488 | "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.12.0.tgz", 1489 | "integrity": "sha512-cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A==", 1490 | "dev": true, 1491 | "dependencies": { 1492 | "@parcel/diagnostic": "2.12.0", 1493 | "@parcel/plugin": "2.12.0", 1494 | "@parcel/rust": "2.12.0", 1495 | "nullthrows": "^1.1.1", 1496 | "posthtml": "^0.16.5", 1497 | "posthtml-parser": "^0.10.1", 1498 | "posthtml-render": "^3.0.0", 1499 | "semver": "^7.5.2" 1500 | }, 1501 | "engines": { 1502 | "node": ">= 12.0.0", 1503 | "parcel": "^2.12.0" 1504 | }, 1505 | "funding": { 1506 | "type": "opencollective", 1507 | "url": "https://opencollective.com/parcel" 1508 | } 1509 | }, 1510 | "node_modules/@parcel/types": { 1511 | "version": "2.12.0", 1512 | "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.12.0.tgz", 1513 | "integrity": "sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==", 1514 | "dev": true, 1515 | "dependencies": { 1516 | "@parcel/cache": "2.12.0", 1517 | "@parcel/diagnostic": "2.12.0", 1518 | "@parcel/fs": "2.12.0", 1519 | "@parcel/package-manager": "2.12.0", 1520 | "@parcel/source-map": "^2.1.1", 1521 | "@parcel/workers": "2.12.0", 1522 | "utility-types": "^3.10.0" 1523 | } 1524 | }, 1525 | "node_modules/@parcel/utils": { 1526 | "version": "2.12.0", 1527 | "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.12.0.tgz", 1528 | "integrity": "sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==", 1529 | "dev": true, 1530 | "dependencies": { 1531 | "@parcel/codeframe": "2.12.0", 1532 | "@parcel/diagnostic": "2.12.0", 1533 | "@parcel/logger": "2.12.0", 1534 | "@parcel/markdown-ansi": "2.12.0", 1535 | "@parcel/rust": "2.12.0", 1536 | "@parcel/source-map": "^2.1.1", 1537 | "chalk": "^4.1.0", 1538 | "nullthrows": "^1.1.1" 1539 | }, 1540 | "engines": { 1541 | "node": ">= 12.0.0" 1542 | }, 1543 | "funding": { 1544 | "type": "opencollective", 1545 | "url": "https://opencollective.com/parcel" 1546 | } 1547 | }, 1548 | "node_modules/@parcel/watcher": { 1549 | "version": "2.4.1", 1550 | "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", 1551 | "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", 1552 | "dev": true, 1553 | "dependencies": { 1554 | "detect-libc": "^1.0.3", 1555 | "is-glob": "^4.0.3", 1556 | "micromatch": "^4.0.5", 1557 | "node-addon-api": "^7.0.0" 1558 | }, 1559 | "engines": { 1560 | "node": ">= 10.0.0" 1561 | }, 1562 | "funding": { 1563 | "type": "opencollective", 1564 | "url": "https://opencollective.com/parcel" 1565 | }, 1566 | "optionalDependencies": { 1567 | "@parcel/watcher-android-arm64": "2.4.1", 1568 | "@parcel/watcher-darwin-arm64": "2.4.1", 1569 | "@parcel/watcher-darwin-x64": "2.4.1", 1570 | "@parcel/watcher-freebsd-x64": "2.4.1", 1571 | "@parcel/watcher-linux-arm-glibc": "2.4.1", 1572 | "@parcel/watcher-linux-arm64-glibc": "2.4.1", 1573 | "@parcel/watcher-linux-arm64-musl": "2.4.1", 1574 | "@parcel/watcher-linux-x64-glibc": "2.4.1", 1575 | "@parcel/watcher-linux-x64-musl": "2.4.1", 1576 | "@parcel/watcher-win32-arm64": "2.4.1", 1577 | "@parcel/watcher-win32-ia32": "2.4.1", 1578 | "@parcel/watcher-win32-x64": "2.4.1" 1579 | } 1580 | }, 1581 | "node_modules/@parcel/watcher-android-arm64": { 1582 | "version": "2.4.1", 1583 | "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", 1584 | "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", 1585 | "cpu": [ 1586 | "arm64" 1587 | ], 1588 | "dev": true, 1589 | "optional": true, 1590 | "os": [ 1591 | "android" 1592 | ], 1593 | "engines": { 1594 | "node": ">= 10.0.0" 1595 | }, 1596 | "funding": { 1597 | "type": "opencollective", 1598 | "url": "https://opencollective.com/parcel" 1599 | } 1600 | }, 1601 | "node_modules/@parcel/watcher-darwin-arm64": { 1602 | "version": "2.4.1", 1603 | "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", 1604 | "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", 1605 | "cpu": [ 1606 | "arm64" 1607 | ], 1608 | "dev": true, 1609 | "optional": true, 1610 | "os": [ 1611 | "darwin" 1612 | ], 1613 | "engines": { 1614 | "node": ">= 10.0.0" 1615 | }, 1616 | "funding": { 1617 | "type": "opencollective", 1618 | "url": "https://opencollective.com/parcel" 1619 | } 1620 | }, 1621 | "node_modules/@parcel/watcher-darwin-x64": { 1622 | "version": "2.4.1", 1623 | "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", 1624 | "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", 1625 | "cpu": [ 1626 | "x64" 1627 | ], 1628 | "dev": true, 1629 | "optional": true, 1630 | "os": [ 1631 | "darwin" 1632 | ], 1633 | "engines": { 1634 | "node": ">= 10.0.0" 1635 | }, 1636 | "funding": { 1637 | "type": "opencollective", 1638 | "url": "https://opencollective.com/parcel" 1639 | } 1640 | }, 1641 | "node_modules/@parcel/watcher-freebsd-x64": { 1642 | "version": "2.4.1", 1643 | "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", 1644 | "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", 1645 | "cpu": [ 1646 | "x64" 1647 | ], 1648 | "dev": true, 1649 | "optional": true, 1650 | "os": [ 1651 | "freebsd" 1652 | ], 1653 | "engines": { 1654 | "node": ">= 10.0.0" 1655 | }, 1656 | "funding": { 1657 | "type": "opencollective", 1658 | "url": "https://opencollective.com/parcel" 1659 | } 1660 | }, 1661 | "node_modules/@parcel/watcher-linux-arm-glibc": { 1662 | "version": "2.4.1", 1663 | "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", 1664 | "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", 1665 | "cpu": [ 1666 | "arm" 1667 | ], 1668 | "dev": true, 1669 | "optional": true, 1670 | "os": [ 1671 | "linux" 1672 | ], 1673 | "engines": { 1674 | "node": ">= 10.0.0" 1675 | }, 1676 | "funding": { 1677 | "type": "opencollective", 1678 | "url": "https://opencollective.com/parcel" 1679 | } 1680 | }, 1681 | "node_modules/@parcel/watcher-linux-arm64-glibc": { 1682 | "version": "2.4.1", 1683 | "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", 1684 | "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", 1685 | "cpu": [ 1686 | "arm64" 1687 | ], 1688 | "dev": true, 1689 | "optional": true, 1690 | "os": [ 1691 | "linux" 1692 | ], 1693 | "engines": { 1694 | "node": ">= 10.0.0" 1695 | }, 1696 | "funding": { 1697 | "type": "opencollective", 1698 | "url": "https://opencollective.com/parcel" 1699 | } 1700 | }, 1701 | "node_modules/@parcel/watcher-linux-arm64-musl": { 1702 | "version": "2.4.1", 1703 | "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", 1704 | "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", 1705 | "cpu": [ 1706 | "arm64" 1707 | ], 1708 | "dev": true, 1709 | "optional": true, 1710 | "os": [ 1711 | "linux" 1712 | ], 1713 | "engines": { 1714 | "node": ">= 10.0.0" 1715 | }, 1716 | "funding": { 1717 | "type": "opencollective", 1718 | "url": "https://opencollective.com/parcel" 1719 | } 1720 | }, 1721 | "node_modules/@parcel/watcher-linux-x64-glibc": { 1722 | "version": "2.4.1", 1723 | "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", 1724 | "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", 1725 | "cpu": [ 1726 | "x64" 1727 | ], 1728 | "dev": true, 1729 | "optional": true, 1730 | "os": [ 1731 | "linux" 1732 | ], 1733 | "engines": { 1734 | "node": ">= 10.0.0" 1735 | }, 1736 | "funding": { 1737 | "type": "opencollective", 1738 | "url": "https://opencollective.com/parcel" 1739 | } 1740 | }, 1741 | "node_modules/@parcel/watcher-linux-x64-musl": { 1742 | "version": "2.4.1", 1743 | "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", 1744 | "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", 1745 | "cpu": [ 1746 | "x64" 1747 | ], 1748 | "dev": true, 1749 | "optional": true, 1750 | "os": [ 1751 | "linux" 1752 | ], 1753 | "engines": { 1754 | "node": ">= 10.0.0" 1755 | }, 1756 | "funding": { 1757 | "type": "opencollective", 1758 | "url": "https://opencollective.com/parcel" 1759 | } 1760 | }, 1761 | "node_modules/@parcel/watcher-win32-arm64": { 1762 | "version": "2.4.1", 1763 | "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", 1764 | "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", 1765 | "cpu": [ 1766 | "arm64" 1767 | ], 1768 | "dev": true, 1769 | "optional": true, 1770 | "os": [ 1771 | "win32" 1772 | ], 1773 | "engines": { 1774 | "node": ">= 10.0.0" 1775 | }, 1776 | "funding": { 1777 | "type": "opencollective", 1778 | "url": "https://opencollective.com/parcel" 1779 | } 1780 | }, 1781 | "node_modules/@parcel/watcher-win32-ia32": { 1782 | "version": "2.4.1", 1783 | "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", 1784 | "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", 1785 | "cpu": [ 1786 | "ia32" 1787 | ], 1788 | "dev": true, 1789 | "optional": true, 1790 | "os": [ 1791 | "win32" 1792 | ], 1793 | "engines": { 1794 | "node": ">= 10.0.0" 1795 | }, 1796 | "funding": { 1797 | "type": "opencollective", 1798 | "url": "https://opencollective.com/parcel" 1799 | } 1800 | }, 1801 | "node_modules/@parcel/watcher-win32-x64": { 1802 | "version": "2.4.1", 1803 | "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", 1804 | "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", 1805 | "cpu": [ 1806 | "x64" 1807 | ], 1808 | "dev": true, 1809 | "optional": true, 1810 | "os": [ 1811 | "win32" 1812 | ], 1813 | "engines": { 1814 | "node": ">= 10.0.0" 1815 | }, 1816 | "funding": { 1817 | "type": "opencollective", 1818 | "url": "https://opencollective.com/parcel" 1819 | } 1820 | }, 1821 | "node_modules/@parcel/workers": { 1822 | "version": "2.12.0", 1823 | "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.12.0.tgz", 1824 | "integrity": "sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==", 1825 | "dev": true, 1826 | "dependencies": { 1827 | "@parcel/diagnostic": "2.12.0", 1828 | "@parcel/logger": "2.12.0", 1829 | "@parcel/profiler": "2.12.0", 1830 | "@parcel/types": "2.12.0", 1831 | "@parcel/utils": "2.12.0", 1832 | "nullthrows": "^1.1.1" 1833 | }, 1834 | "engines": { 1835 | "node": ">= 12.0.0" 1836 | }, 1837 | "funding": { 1838 | "type": "opencollective", 1839 | "url": "https://opencollective.com/parcel" 1840 | }, 1841 | "peerDependencies": { 1842 | "@parcel/core": "^2.12.0" 1843 | } 1844 | }, 1845 | "node_modules/@popperjs/core": { 1846 | "version": "2.11.8", 1847 | "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", 1848 | "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", 1849 | "dev": true, 1850 | "peer": true, 1851 | "funding": { 1852 | "type": "opencollective", 1853 | "url": "https://opencollective.com/popperjs" 1854 | } 1855 | }, 1856 | "node_modules/@remix-run/router": { 1857 | "version": "1.16.1", 1858 | "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz", 1859 | "integrity": "sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==", 1860 | "dev": true, 1861 | "engines": { 1862 | "node": ">=14.0.0" 1863 | } 1864 | }, 1865 | "node_modules/@swc/core": { 1866 | "version": "1.5.27", 1867 | "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.27.tgz", 1868 | "integrity": "sha512-HmSSCBoUSRDFAd8aEB+WILkCofIp1c2OU6ZJWu1aCt6pijwQSkA4y51CTBcdvyy/+zX1W3cic7alfdhmQxxeEQ==", 1869 | "dev": true, 1870 | "hasInstallScript": true, 1871 | "dependencies": { 1872 | "@swc/counter": "^0.1.3", 1873 | "@swc/types": "^0.1.8" 1874 | }, 1875 | "engines": { 1876 | "node": ">=10" 1877 | }, 1878 | "funding": { 1879 | "type": "opencollective", 1880 | "url": "https://opencollective.com/swc" 1881 | }, 1882 | "optionalDependencies": { 1883 | "@swc/core-darwin-arm64": "1.5.27", 1884 | "@swc/core-darwin-x64": "1.5.27", 1885 | "@swc/core-linux-arm-gnueabihf": "1.5.27", 1886 | "@swc/core-linux-arm64-gnu": "1.5.27", 1887 | "@swc/core-linux-arm64-musl": "1.5.27", 1888 | "@swc/core-linux-x64-gnu": "1.5.27", 1889 | "@swc/core-linux-x64-musl": "1.5.27", 1890 | "@swc/core-win32-arm64-msvc": "1.5.27", 1891 | "@swc/core-win32-ia32-msvc": "1.5.27", 1892 | "@swc/core-win32-x64-msvc": "1.5.27" 1893 | }, 1894 | "peerDependencies": { 1895 | "@swc/helpers": "*" 1896 | }, 1897 | "peerDependenciesMeta": { 1898 | "@swc/helpers": { 1899 | "optional": true 1900 | } 1901 | } 1902 | }, 1903 | "node_modules/@swc/core-darwin-arm64": { 1904 | "version": "1.5.27", 1905 | "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.27.tgz", 1906 | "integrity": "sha512-jyoygXBcUcwUya2BI7Uvl0jwcm4kd0RBDGGkWgcFAZmwucSuLT3EsbpWhOwlL3ACT4rpnRlvh+k8nJlq3+w2Aw==", 1907 | "cpu": [ 1908 | "arm64" 1909 | ], 1910 | "dev": true, 1911 | "optional": true, 1912 | "os": [ 1913 | "darwin" 1914 | ], 1915 | "engines": { 1916 | "node": ">=10" 1917 | } 1918 | }, 1919 | "node_modules/@swc/core-darwin-x64": { 1920 | "version": "1.5.27", 1921 | "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.27.tgz", 1922 | "integrity": "sha512-eOC583D6b3MS9oODCcZUvAV7ajunjENAPVQL7aZaW+piERW+o4koZAiPlzFdMAUMj7UeVg+UN9sBBbTbJgruIA==", 1923 | "cpu": [ 1924 | "x64" 1925 | ], 1926 | "dev": true, 1927 | "optional": true, 1928 | "os": [ 1929 | "darwin" 1930 | ], 1931 | "engines": { 1932 | "node": ">=10" 1933 | } 1934 | }, 1935 | "node_modules/@swc/core-linux-arm-gnueabihf": { 1936 | "version": "1.5.27", 1937 | "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.27.tgz", 1938 | "integrity": "sha512-bMvX0yF7WYzn1K+s0JWJhvyA3OeZHVrdjka8eZ4LSeuLfC0ggJefo+klyeuN2szn/LYP6/3oByyrWNY8RSHB4w==", 1939 | "cpu": [ 1940 | "arm" 1941 | ], 1942 | "dev": true, 1943 | "optional": true, 1944 | "os": [ 1945 | "linux" 1946 | ], 1947 | "engines": { 1948 | "node": ">=10" 1949 | } 1950 | }, 1951 | "node_modules/@swc/core-linux-arm64-gnu": { 1952 | "version": "1.5.27", 1953 | "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.27.tgz", 1954 | "integrity": "sha512-KlkOcSPxrCqZTm4XrT/LT1o9gmyM2T6bw/hL6IwTYRBJg+sej4rc9iSfVRFZBfNuG3EVkFQSXxik+0yVOXR93Q==", 1955 | "cpu": [ 1956 | "arm64" 1957 | ], 1958 | "dev": true, 1959 | "optional": true, 1960 | "os": [ 1961 | "linux" 1962 | ], 1963 | "engines": { 1964 | "node": ">=10" 1965 | } 1966 | }, 1967 | "node_modules/@swc/core-linux-arm64-musl": { 1968 | "version": "1.5.27", 1969 | "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.27.tgz", 1970 | "integrity": "sha512-EwdTt5qykxFXJu7kS+0X0Mp/IlwO8KJ6LVNak2+N8bt1J1q/nCdg1tRDOYQ1Z/MVa1Tm+lJ664Qs1y2NY2SDTw==", 1971 | "cpu": [ 1972 | "arm64" 1973 | ], 1974 | "dev": true, 1975 | "optional": true, 1976 | "os": [ 1977 | "linux" 1978 | ], 1979 | "engines": { 1980 | "node": ">=10" 1981 | } 1982 | }, 1983 | "node_modules/@swc/core-linux-x64-gnu": { 1984 | "version": "1.5.27", 1985 | "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.27.tgz", 1986 | "integrity": "sha512-RsBbxbiSNWLJ2jbAdITtv30J4eZw4O/JJ5zxYgWI54TdY7YrVsqIdzuX+ldximt+CYvO9irHm/mSr/IJY2YXrw==", 1987 | "cpu": [ 1988 | "x64" 1989 | ], 1990 | "dev": true, 1991 | "optional": true, 1992 | "os": [ 1993 | "linux" 1994 | ], 1995 | "engines": { 1996 | "node": ">=10" 1997 | } 1998 | }, 1999 | "node_modules/@swc/core-linux-x64-musl": { 2000 | "version": "1.5.27", 2001 | "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.27.tgz", 2002 | "integrity": "sha512-XpRx0Kpy6JEi1WSMqUfR3k8hXLqNOkVqFcUfzvfQ4QNBX5Ek7ywh7WAxlPhCrFp+wAfNAqqUyRY1xZpLvRU51A==", 2003 | "cpu": [ 2004 | "x64" 2005 | ], 2006 | "dev": true, 2007 | "optional": true, 2008 | "os": [ 2009 | "linux" 2010 | ], 2011 | "engines": { 2012 | "node": ">=10" 2013 | } 2014 | }, 2015 | "node_modules/@swc/core-win32-arm64-msvc": { 2016 | "version": "1.5.27", 2017 | "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.27.tgz", 2018 | "integrity": "sha512-pwSTUIokyIp+Ha1pur34qdYjxqL1QzhP/HM8anzsFs4yvV2LSI7c3qc4GWPNv2eQ9WiFXyo29uCEIRN6qig7wg==", 2019 | "cpu": [ 2020 | "arm64" 2021 | ], 2022 | "dev": true, 2023 | "optional": true, 2024 | "os": [ 2025 | "win32" 2026 | ], 2027 | "engines": { 2028 | "node": ">=10" 2029 | } 2030 | }, 2031 | "node_modules/@swc/core-win32-ia32-msvc": { 2032 | "version": "1.5.27", 2033 | "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.27.tgz", 2034 | "integrity": "sha512-S0S6vqFscvmxPolwmpZvTRfTbYR+eGcyc0ge4x/+HcnBCm+m84rcGxmp3bBb1edNFaIV+X47BlGvvh85cJ4rkQ==", 2035 | "cpu": [ 2036 | "ia32" 2037 | ], 2038 | "dev": true, 2039 | "optional": true, 2040 | "os": [ 2041 | "win32" 2042 | ], 2043 | "engines": { 2044 | "node": ">=10" 2045 | } 2046 | }, 2047 | "node_modules/@swc/core-win32-x64-msvc": { 2048 | "version": "1.5.27", 2049 | "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.27.tgz", 2050 | "integrity": "sha512-aem+BcNW42JPbvV6L3Jl3LLj6G80aYADzYenToYisy0Aop0XZAxL/0FbhV+xWORNFtIUKynNtaa1CK7w0UxehQ==", 2051 | "cpu": [ 2052 | "x64" 2053 | ], 2054 | "dev": true, 2055 | "optional": true, 2056 | "os": [ 2057 | "win32" 2058 | ], 2059 | "engines": { 2060 | "node": ">=10" 2061 | } 2062 | }, 2063 | "node_modules/@swc/counter": { 2064 | "version": "0.1.3", 2065 | "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", 2066 | "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", 2067 | "dev": true 2068 | }, 2069 | "node_modules/@swc/helpers": { 2070 | "version": "0.5.11", 2071 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", 2072 | "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", 2073 | "dev": true, 2074 | "dependencies": { 2075 | "tslib": "^2.4.0" 2076 | } 2077 | }, 2078 | "node_modules/@swc/types": { 2079 | "version": "0.1.8", 2080 | "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.8.tgz", 2081 | "integrity": "sha512-RNFA3+7OJFNYY78x0FYwi1Ow+iF1eF5WvmfY1nXPOEH4R2p/D4Cr1vzje7dNAI2aLFqpv8Wyz4oKSWqIZArpQA==", 2082 | "dev": true, 2083 | "dependencies": { 2084 | "@swc/counter": "^0.1.3" 2085 | } 2086 | }, 2087 | "node_modules/@trysound/sax": { 2088 | "version": "0.2.0", 2089 | "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", 2090 | "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", 2091 | "dev": true, 2092 | "engines": { 2093 | "node": ">=10.13.0" 2094 | } 2095 | }, 2096 | "node_modules/@types/prop-types": { 2097 | "version": "15.7.12", 2098 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", 2099 | "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", 2100 | "dev": true 2101 | }, 2102 | "node_modules/@types/react": { 2103 | "version": "18.3.3", 2104 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", 2105 | "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", 2106 | "dev": true, 2107 | "dependencies": { 2108 | "@types/prop-types": "*", 2109 | "csstype": "^3.0.2" 2110 | } 2111 | }, 2112 | "node_modules/@types/react-dom": { 2113 | "version": "18.3.0", 2114 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", 2115 | "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", 2116 | "dev": true, 2117 | "dependencies": { 2118 | "@types/react": "*" 2119 | } 2120 | }, 2121 | "node_modules/abortcontroller-polyfill": { 2122 | "version": "1.7.5", 2123 | "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", 2124 | "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", 2125 | "dev": true 2126 | }, 2127 | "node_modules/ansi-styles": { 2128 | "version": "4.3.0", 2129 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2130 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2131 | "dev": true, 2132 | "dependencies": { 2133 | "color-convert": "^2.0.1" 2134 | }, 2135 | "engines": { 2136 | "node": ">=8" 2137 | }, 2138 | "funding": { 2139 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2140 | } 2141 | }, 2142 | "node_modules/argparse": { 2143 | "version": "2.0.1", 2144 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2145 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 2146 | "dev": true 2147 | }, 2148 | "node_modules/assert": { 2149 | "version": "2.1.0", 2150 | "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", 2151 | "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", 2152 | "dev": true, 2153 | "dependencies": { 2154 | "call-bind": "^1.0.2", 2155 | "is-nan": "^1.3.2", 2156 | "object-is": "^1.1.5", 2157 | "object.assign": "^4.1.4", 2158 | "util": "^0.12.5" 2159 | } 2160 | }, 2161 | "node_modules/available-typed-arrays": { 2162 | "version": "1.0.7", 2163 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 2164 | "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 2165 | "dev": true, 2166 | "dependencies": { 2167 | "possible-typed-array-names": "^1.0.0" 2168 | }, 2169 | "engines": { 2170 | "node": ">= 0.4" 2171 | }, 2172 | "funding": { 2173 | "url": "https://github.com/sponsors/ljharb" 2174 | } 2175 | }, 2176 | "node_modules/base-x": { 2177 | "version": "3.0.9", 2178 | "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", 2179 | "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", 2180 | "dev": true, 2181 | "dependencies": { 2182 | "safe-buffer": "^5.0.1" 2183 | } 2184 | }, 2185 | "node_modules/base64-js": { 2186 | "version": "1.5.1", 2187 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 2188 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 2189 | "dev": true, 2190 | "funding": [ 2191 | { 2192 | "type": "github", 2193 | "url": "https://github.com/sponsors/feross" 2194 | }, 2195 | { 2196 | "type": "patreon", 2197 | "url": "https://www.patreon.com/feross" 2198 | }, 2199 | { 2200 | "type": "consulting", 2201 | "url": "https://feross.org/support" 2202 | } 2203 | ] 2204 | }, 2205 | "node_modules/boolbase": { 2206 | "version": "1.0.0", 2207 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 2208 | "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", 2209 | "dev": true 2210 | }, 2211 | "node_modules/bootstrap": { 2212 | "version": "5.3.3", 2213 | "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", 2214 | "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", 2215 | "dev": true, 2216 | "funding": [ 2217 | { 2218 | "type": "github", 2219 | "url": "https://github.com/sponsors/twbs" 2220 | }, 2221 | { 2222 | "type": "opencollective", 2223 | "url": "https://opencollective.com/bootstrap" 2224 | } 2225 | ], 2226 | "peerDependencies": { 2227 | "@popperjs/core": "^2.11.8" 2228 | } 2229 | }, 2230 | "node_modules/braces": { 2231 | "version": "3.0.3", 2232 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 2233 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 2234 | "dev": true, 2235 | "dependencies": { 2236 | "fill-range": "^7.1.1" 2237 | }, 2238 | "engines": { 2239 | "node": ">=8" 2240 | } 2241 | }, 2242 | "node_modules/browserify-zlib": { 2243 | "version": "0.2.0", 2244 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", 2245 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", 2246 | "dev": true, 2247 | "dependencies": { 2248 | "pako": "~1.0.5" 2249 | } 2250 | }, 2251 | "node_modules/browserslist": { 2252 | "version": "4.23.1", 2253 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", 2254 | "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", 2255 | "dev": true, 2256 | "funding": [ 2257 | { 2258 | "type": "opencollective", 2259 | "url": "https://opencollective.com/browserslist" 2260 | }, 2261 | { 2262 | "type": "tidelift", 2263 | "url": "https://tidelift.com/funding/github/npm/browserslist" 2264 | }, 2265 | { 2266 | "type": "github", 2267 | "url": "https://github.com/sponsors/ai" 2268 | } 2269 | ], 2270 | "dependencies": { 2271 | "caniuse-lite": "^1.0.30001629", 2272 | "electron-to-chromium": "^1.4.796", 2273 | "node-releases": "^2.0.14", 2274 | "update-browserslist-db": "^1.0.16" 2275 | }, 2276 | "bin": { 2277 | "browserslist": "cli.js" 2278 | }, 2279 | "engines": { 2280 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 2281 | } 2282 | }, 2283 | "node_modules/buffer": { 2284 | "version": "5.7.1", 2285 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 2286 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 2287 | "dev": true, 2288 | "funding": [ 2289 | { 2290 | "type": "github", 2291 | "url": "https://github.com/sponsors/feross" 2292 | }, 2293 | { 2294 | "type": "patreon", 2295 | "url": "https://www.patreon.com/feross" 2296 | }, 2297 | { 2298 | "type": "consulting", 2299 | "url": "https://feross.org/support" 2300 | } 2301 | ], 2302 | "dependencies": { 2303 | "base64-js": "^1.3.1", 2304 | "ieee754": "^1.1.13" 2305 | } 2306 | }, 2307 | "node_modules/builtin-status-codes": { 2308 | "version": "3.0.0", 2309 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 2310 | "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", 2311 | "dev": true 2312 | }, 2313 | "node_modules/call-bind": { 2314 | "version": "1.0.7", 2315 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", 2316 | "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", 2317 | "dev": true, 2318 | "dependencies": { 2319 | "es-define-property": "^1.0.0", 2320 | "es-errors": "^1.3.0", 2321 | "function-bind": "^1.1.2", 2322 | "get-intrinsic": "^1.2.4", 2323 | "set-function-length": "^1.2.1" 2324 | }, 2325 | "engines": { 2326 | "node": ">= 0.4" 2327 | }, 2328 | "funding": { 2329 | "url": "https://github.com/sponsors/ljharb" 2330 | } 2331 | }, 2332 | "node_modules/callsites": { 2333 | "version": "3.1.0", 2334 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2335 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 2336 | "dev": true, 2337 | "engines": { 2338 | "node": ">=6" 2339 | } 2340 | }, 2341 | "node_modules/caniuse-lite": { 2342 | "version": "1.0.30001632", 2343 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz", 2344 | "integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==", 2345 | "dev": true, 2346 | "funding": [ 2347 | { 2348 | "type": "opencollective", 2349 | "url": "https://opencollective.com/browserslist" 2350 | }, 2351 | { 2352 | "type": "tidelift", 2353 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 2354 | }, 2355 | { 2356 | "type": "github", 2357 | "url": "https://github.com/sponsors/ai" 2358 | } 2359 | ] 2360 | }, 2361 | "node_modules/chalk": { 2362 | "version": "4.1.2", 2363 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2364 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2365 | "dev": true, 2366 | "dependencies": { 2367 | "ansi-styles": "^4.1.0", 2368 | "supports-color": "^7.1.0" 2369 | }, 2370 | "engines": { 2371 | "node": ">=10" 2372 | }, 2373 | "funding": { 2374 | "url": "https://github.com/chalk/chalk?sponsor=1" 2375 | } 2376 | }, 2377 | "node_modules/chrome-trace-event": { 2378 | "version": "1.0.4", 2379 | "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", 2380 | "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", 2381 | "dev": true, 2382 | "engines": { 2383 | "node": ">=6.0" 2384 | } 2385 | }, 2386 | "node_modules/clone": { 2387 | "version": "2.1.2", 2388 | "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", 2389 | "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", 2390 | "dev": true, 2391 | "engines": { 2392 | "node": ">=0.8" 2393 | } 2394 | }, 2395 | "node_modules/color-convert": { 2396 | "version": "2.0.1", 2397 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2398 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2399 | "dev": true, 2400 | "dependencies": { 2401 | "color-name": "~1.1.4" 2402 | }, 2403 | "engines": { 2404 | "node": ">=7.0.0" 2405 | } 2406 | }, 2407 | "node_modules/color-name": { 2408 | "version": "1.1.4", 2409 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2410 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2411 | "dev": true 2412 | }, 2413 | "node_modules/commander": { 2414 | "version": "7.2.0", 2415 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", 2416 | "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", 2417 | "dev": true, 2418 | "engines": { 2419 | "node": ">= 10" 2420 | } 2421 | }, 2422 | "node_modules/cosmiconfig": { 2423 | "version": "9.0.0", 2424 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", 2425 | "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", 2426 | "dev": true, 2427 | "dependencies": { 2428 | "env-paths": "^2.2.1", 2429 | "import-fresh": "^3.3.0", 2430 | "js-yaml": "^4.1.0", 2431 | "parse-json": "^5.2.0" 2432 | }, 2433 | "engines": { 2434 | "node": ">=14" 2435 | }, 2436 | "funding": { 2437 | "url": "https://github.com/sponsors/d-fischer" 2438 | }, 2439 | "peerDependencies": { 2440 | "typescript": ">=4.9.5" 2441 | }, 2442 | "peerDependenciesMeta": { 2443 | "typescript": { 2444 | "optional": true 2445 | } 2446 | } 2447 | }, 2448 | "node_modules/css-select": { 2449 | "version": "5.1.0", 2450 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", 2451 | "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", 2452 | "dev": true, 2453 | "optional": true, 2454 | "peer": true, 2455 | "dependencies": { 2456 | "boolbase": "^1.0.0", 2457 | "css-what": "^6.1.0", 2458 | "domhandler": "^5.0.2", 2459 | "domutils": "^3.0.1", 2460 | "nth-check": "^2.0.1" 2461 | }, 2462 | "funding": { 2463 | "url": "https://github.com/sponsors/fb55" 2464 | } 2465 | }, 2466 | "node_modules/css-select/node_modules/dom-serializer": { 2467 | "version": "2.0.0", 2468 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", 2469 | "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", 2470 | "dev": true, 2471 | "optional": true, 2472 | "peer": true, 2473 | "dependencies": { 2474 | "domelementtype": "^2.3.0", 2475 | "domhandler": "^5.0.2", 2476 | "entities": "^4.2.0" 2477 | }, 2478 | "funding": { 2479 | "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 2480 | } 2481 | }, 2482 | "node_modules/css-select/node_modules/domhandler": { 2483 | "version": "5.0.3", 2484 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", 2485 | "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", 2486 | "dev": true, 2487 | "optional": true, 2488 | "peer": true, 2489 | "dependencies": { 2490 | "domelementtype": "^2.3.0" 2491 | }, 2492 | "engines": { 2493 | "node": ">= 4" 2494 | }, 2495 | "funding": { 2496 | "url": "https://github.com/fb55/domhandler?sponsor=1" 2497 | } 2498 | }, 2499 | "node_modules/css-select/node_modules/domutils": { 2500 | "version": "3.1.0", 2501 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", 2502 | "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", 2503 | "dev": true, 2504 | "optional": true, 2505 | "peer": true, 2506 | "dependencies": { 2507 | "dom-serializer": "^2.0.0", 2508 | "domelementtype": "^2.3.0", 2509 | "domhandler": "^5.0.3" 2510 | }, 2511 | "funding": { 2512 | "url": "https://github.com/fb55/domutils?sponsor=1" 2513 | } 2514 | }, 2515 | "node_modules/css-select/node_modules/entities": { 2516 | "version": "4.5.0", 2517 | "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 2518 | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 2519 | "dev": true, 2520 | "optional": true, 2521 | "peer": true, 2522 | "engines": { 2523 | "node": ">=0.12" 2524 | }, 2525 | "funding": { 2526 | "url": "https://github.com/fb55/entities?sponsor=1" 2527 | } 2528 | }, 2529 | "node_modules/css-tree": { 2530 | "version": "2.3.1", 2531 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", 2532 | "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", 2533 | "dev": true, 2534 | "optional": true, 2535 | "peer": true, 2536 | "dependencies": { 2537 | "mdn-data": "2.0.30", 2538 | "source-map-js": "^1.0.1" 2539 | }, 2540 | "engines": { 2541 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 2542 | } 2543 | }, 2544 | "node_modules/css-what": { 2545 | "version": "6.1.0", 2546 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", 2547 | "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", 2548 | "dev": true, 2549 | "engines": { 2550 | "node": ">= 6" 2551 | }, 2552 | "funding": { 2553 | "url": "https://github.com/sponsors/fb55" 2554 | } 2555 | }, 2556 | "node_modules/csso": { 2557 | "version": "5.0.5", 2558 | "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", 2559 | "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", 2560 | "dev": true, 2561 | "optional": true, 2562 | "peer": true, 2563 | "dependencies": { 2564 | "css-tree": "~2.2.0" 2565 | }, 2566 | "engines": { 2567 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", 2568 | "npm": ">=7.0.0" 2569 | } 2570 | }, 2571 | "node_modules/csso/node_modules/css-tree": { 2572 | "version": "2.2.1", 2573 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", 2574 | "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", 2575 | "dev": true, 2576 | "optional": true, 2577 | "peer": true, 2578 | "dependencies": { 2579 | "mdn-data": "2.0.28", 2580 | "source-map-js": "^1.0.1" 2581 | }, 2582 | "engines": { 2583 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", 2584 | "npm": ">=7.0.0" 2585 | } 2586 | }, 2587 | "node_modules/csso/node_modules/mdn-data": { 2588 | "version": "2.0.28", 2589 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", 2590 | "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", 2591 | "dev": true, 2592 | "optional": true, 2593 | "peer": true 2594 | }, 2595 | "node_modules/csstype": { 2596 | "version": "3.1.3", 2597 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", 2598 | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", 2599 | "dev": true 2600 | }, 2601 | "node_modules/define-data-property": { 2602 | "version": "1.1.4", 2603 | "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 2604 | "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 2605 | "dev": true, 2606 | "dependencies": { 2607 | "es-define-property": "^1.0.0", 2608 | "es-errors": "^1.3.0", 2609 | "gopd": "^1.0.1" 2610 | }, 2611 | "engines": { 2612 | "node": ">= 0.4" 2613 | }, 2614 | "funding": { 2615 | "url": "https://github.com/sponsors/ljharb" 2616 | } 2617 | }, 2618 | "node_modules/define-properties": { 2619 | "version": "1.2.1", 2620 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 2621 | "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 2622 | "dev": true, 2623 | "dependencies": { 2624 | "define-data-property": "^1.0.1", 2625 | "has-property-descriptors": "^1.0.0", 2626 | "object-keys": "^1.1.1" 2627 | }, 2628 | "engines": { 2629 | "node": ">= 0.4" 2630 | }, 2631 | "funding": { 2632 | "url": "https://github.com/sponsors/ljharb" 2633 | } 2634 | }, 2635 | "node_modules/detect-libc": { 2636 | "version": "1.0.3", 2637 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 2638 | "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", 2639 | "dev": true, 2640 | "bin": { 2641 | "detect-libc": "bin/detect-libc.js" 2642 | }, 2643 | "engines": { 2644 | "node": ">=0.10" 2645 | } 2646 | }, 2647 | "node_modules/dom-serializer": { 2648 | "version": "1.4.1", 2649 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", 2650 | "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", 2651 | "dev": true, 2652 | "dependencies": { 2653 | "domelementtype": "^2.0.1", 2654 | "domhandler": "^4.2.0", 2655 | "entities": "^2.0.0" 2656 | }, 2657 | "funding": { 2658 | "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 2659 | } 2660 | }, 2661 | "node_modules/dom-serializer/node_modules/entities": { 2662 | "version": "2.2.0", 2663 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 2664 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 2665 | "dev": true, 2666 | "funding": { 2667 | "url": "https://github.com/fb55/entities?sponsor=1" 2668 | } 2669 | }, 2670 | "node_modules/domelementtype": { 2671 | "version": "2.3.0", 2672 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", 2673 | "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", 2674 | "dev": true, 2675 | "funding": [ 2676 | { 2677 | "type": "github", 2678 | "url": "https://github.com/sponsors/fb55" 2679 | } 2680 | ] 2681 | }, 2682 | "node_modules/domhandler": { 2683 | "version": "4.3.1", 2684 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", 2685 | "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", 2686 | "dev": true, 2687 | "dependencies": { 2688 | "domelementtype": "^2.2.0" 2689 | }, 2690 | "engines": { 2691 | "node": ">= 4" 2692 | }, 2693 | "funding": { 2694 | "url": "https://github.com/fb55/domhandler?sponsor=1" 2695 | } 2696 | }, 2697 | "node_modules/domutils": { 2698 | "version": "2.8.0", 2699 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", 2700 | "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", 2701 | "dev": true, 2702 | "dependencies": { 2703 | "dom-serializer": "^1.0.1", 2704 | "domelementtype": "^2.2.0", 2705 | "domhandler": "^4.2.0" 2706 | }, 2707 | "funding": { 2708 | "url": "https://github.com/fb55/domutils?sponsor=1" 2709 | } 2710 | }, 2711 | "node_modules/dotenv": { 2712 | "version": "7.0.0", 2713 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", 2714 | "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", 2715 | "dev": true, 2716 | "engines": { 2717 | "node": ">=6" 2718 | } 2719 | }, 2720 | "node_modules/dotenv-expand": { 2721 | "version": "5.1.0", 2722 | "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", 2723 | "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", 2724 | "dev": true 2725 | }, 2726 | "node_modules/electron-to-chromium": { 2727 | "version": "1.4.796", 2728 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.796.tgz", 2729 | "integrity": "sha512-NglN/xprcM+SHD2XCli4oC6bWe6kHoytcyLKCWXmRL854F0qhPhaYgUswUsglnPxYaNQIg2uMY4BvaomIf3kLA==", 2730 | "dev": true 2731 | }, 2732 | "node_modules/entities": { 2733 | "version": "3.0.1", 2734 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", 2735 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", 2736 | "dev": true, 2737 | "engines": { 2738 | "node": ">=0.12" 2739 | }, 2740 | "funding": { 2741 | "url": "https://github.com/fb55/entities?sponsor=1" 2742 | } 2743 | }, 2744 | "node_modules/env-paths": { 2745 | "version": "2.2.1", 2746 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", 2747 | "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", 2748 | "dev": true, 2749 | "engines": { 2750 | "node": ">=6" 2751 | } 2752 | }, 2753 | "node_modules/error-ex": { 2754 | "version": "1.3.2", 2755 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 2756 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 2757 | "dev": true, 2758 | "dependencies": { 2759 | "is-arrayish": "^0.2.1" 2760 | } 2761 | }, 2762 | "node_modules/es-define-property": { 2763 | "version": "1.0.0", 2764 | "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", 2765 | "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", 2766 | "dev": true, 2767 | "dependencies": { 2768 | "get-intrinsic": "^1.2.4" 2769 | }, 2770 | "engines": { 2771 | "node": ">= 0.4" 2772 | } 2773 | }, 2774 | "node_modules/es-errors": { 2775 | "version": "1.3.0", 2776 | "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 2777 | "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 2778 | "dev": true, 2779 | "engines": { 2780 | "node": ">= 0.4" 2781 | } 2782 | }, 2783 | "node_modules/escalade": { 2784 | "version": "3.1.2", 2785 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", 2786 | "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", 2787 | "dev": true, 2788 | "engines": { 2789 | "node": ">=6" 2790 | } 2791 | }, 2792 | "node_modules/escape-string-regexp": { 2793 | "version": "1.0.5", 2794 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 2795 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 2796 | "dev": true, 2797 | "engines": { 2798 | "node": ">=0.8.0" 2799 | } 2800 | }, 2801 | "node_modules/fill-range": { 2802 | "version": "7.1.1", 2803 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 2804 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 2805 | "dev": true, 2806 | "dependencies": { 2807 | "to-regex-range": "^5.0.1" 2808 | }, 2809 | "engines": { 2810 | "node": ">=8" 2811 | } 2812 | }, 2813 | "node_modules/for-each": { 2814 | "version": "0.3.3", 2815 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 2816 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 2817 | "dev": true, 2818 | "dependencies": { 2819 | "is-callable": "^1.1.3" 2820 | } 2821 | }, 2822 | "node_modules/function-bind": { 2823 | "version": "1.1.2", 2824 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 2825 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 2826 | "dev": true, 2827 | "funding": { 2828 | "url": "https://github.com/sponsors/ljharb" 2829 | } 2830 | }, 2831 | "node_modules/get-intrinsic": { 2832 | "version": "1.2.4", 2833 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", 2834 | "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", 2835 | "dev": true, 2836 | "dependencies": { 2837 | "es-errors": "^1.3.0", 2838 | "function-bind": "^1.1.2", 2839 | "has-proto": "^1.0.1", 2840 | "has-symbols": "^1.0.3", 2841 | "hasown": "^2.0.0" 2842 | }, 2843 | "engines": { 2844 | "node": ">= 0.4" 2845 | }, 2846 | "funding": { 2847 | "url": "https://github.com/sponsors/ljharb" 2848 | } 2849 | }, 2850 | "node_modules/get-port": { 2851 | "version": "4.2.0", 2852 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", 2853 | "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", 2854 | "dev": true, 2855 | "engines": { 2856 | "node": ">=6" 2857 | } 2858 | }, 2859 | "node_modules/globals": { 2860 | "version": "13.24.0", 2861 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", 2862 | "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", 2863 | "dev": true, 2864 | "dependencies": { 2865 | "type-fest": "^0.20.2" 2866 | }, 2867 | "engines": { 2868 | "node": ">=8" 2869 | }, 2870 | "funding": { 2871 | "url": "https://github.com/sponsors/sindresorhus" 2872 | } 2873 | }, 2874 | "node_modules/gopd": { 2875 | "version": "1.0.1", 2876 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 2877 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 2878 | "dev": true, 2879 | "dependencies": { 2880 | "get-intrinsic": "^1.1.3" 2881 | }, 2882 | "funding": { 2883 | "url": "https://github.com/sponsors/ljharb" 2884 | } 2885 | }, 2886 | "node_modules/has-flag": { 2887 | "version": "4.0.0", 2888 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2889 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2890 | "dev": true, 2891 | "engines": { 2892 | "node": ">=8" 2893 | } 2894 | }, 2895 | "node_modules/has-property-descriptors": { 2896 | "version": "1.0.2", 2897 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 2898 | "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 2899 | "dev": true, 2900 | "dependencies": { 2901 | "es-define-property": "^1.0.0" 2902 | }, 2903 | "funding": { 2904 | "url": "https://github.com/sponsors/ljharb" 2905 | } 2906 | }, 2907 | "node_modules/has-proto": { 2908 | "version": "1.0.3", 2909 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", 2910 | "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", 2911 | "dev": true, 2912 | "engines": { 2913 | "node": ">= 0.4" 2914 | }, 2915 | "funding": { 2916 | "url": "https://github.com/sponsors/ljharb" 2917 | } 2918 | }, 2919 | "node_modules/has-symbols": { 2920 | "version": "1.0.3", 2921 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 2922 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 2923 | "dev": true, 2924 | "engines": { 2925 | "node": ">= 0.4" 2926 | }, 2927 | "funding": { 2928 | "url": "https://github.com/sponsors/ljharb" 2929 | } 2930 | }, 2931 | "node_modules/has-tostringtag": { 2932 | "version": "1.0.2", 2933 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 2934 | "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 2935 | "dev": true, 2936 | "dependencies": { 2937 | "has-symbols": "^1.0.3" 2938 | }, 2939 | "engines": { 2940 | "node": ">= 0.4" 2941 | }, 2942 | "funding": { 2943 | "url": "https://github.com/sponsors/ljharb" 2944 | } 2945 | }, 2946 | "node_modules/hasown": { 2947 | "version": "2.0.2", 2948 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 2949 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 2950 | "dev": true, 2951 | "dependencies": { 2952 | "function-bind": "^1.1.2" 2953 | }, 2954 | "engines": { 2955 | "node": ">= 0.4" 2956 | } 2957 | }, 2958 | "node_modules/htmlnano": { 2959 | "version": "2.1.1", 2960 | "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.1.tgz", 2961 | "integrity": "sha512-kAERyg/LuNZYmdqgCdYvugyLWNFAm8MWXpQMz1pLpetmCbFwoMxvkSoaAMlFrOC4OKTWI4KlZGT/RsNxg4ghOw==", 2962 | "dev": true, 2963 | "dependencies": { 2964 | "cosmiconfig": "^9.0.0", 2965 | "posthtml": "^0.16.5", 2966 | "timsort": "^0.3.0" 2967 | }, 2968 | "peerDependencies": { 2969 | "cssnano": "^7.0.0", 2970 | "postcss": "^8.3.11", 2971 | "purgecss": "^6.0.0", 2972 | "relateurl": "^0.2.7", 2973 | "srcset": "5.0.1", 2974 | "svgo": "^3.0.2", 2975 | "terser": "^5.10.0", 2976 | "uncss": "^0.17.3" 2977 | }, 2978 | "peerDependenciesMeta": { 2979 | "cssnano": { 2980 | "optional": true 2981 | }, 2982 | "postcss": { 2983 | "optional": true 2984 | }, 2985 | "purgecss": { 2986 | "optional": true 2987 | }, 2988 | "relateurl": { 2989 | "optional": true 2990 | }, 2991 | "srcset": { 2992 | "optional": true 2993 | }, 2994 | "svgo": { 2995 | "optional": true 2996 | }, 2997 | "terser": { 2998 | "optional": true 2999 | }, 3000 | "uncss": { 3001 | "optional": true 3002 | } 3003 | } 3004 | }, 3005 | "node_modules/htmlparser2": { 3006 | "version": "7.2.0", 3007 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", 3008 | "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", 3009 | "dev": true, 3010 | "funding": [ 3011 | "https://github.com/fb55/htmlparser2?sponsor=1", 3012 | { 3013 | "type": "github", 3014 | "url": "https://github.com/sponsors/fb55" 3015 | } 3016 | ], 3017 | "dependencies": { 3018 | "domelementtype": "^2.0.1", 3019 | "domhandler": "^4.2.2", 3020 | "domutils": "^2.8.0", 3021 | "entities": "^3.0.1" 3022 | } 3023 | }, 3024 | "node_modules/https-browserify": { 3025 | "version": "1.0.0", 3026 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 3027 | "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", 3028 | "dev": true 3029 | }, 3030 | "node_modules/ieee754": { 3031 | "version": "1.2.1", 3032 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 3033 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 3034 | "dev": true, 3035 | "funding": [ 3036 | { 3037 | "type": "github", 3038 | "url": "https://github.com/sponsors/feross" 3039 | }, 3040 | { 3041 | "type": "patreon", 3042 | "url": "https://www.patreon.com/feross" 3043 | }, 3044 | { 3045 | "type": "consulting", 3046 | "url": "https://feross.org/support" 3047 | } 3048 | ] 3049 | }, 3050 | "node_modules/import-fresh": { 3051 | "version": "3.3.0", 3052 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 3053 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 3054 | "dev": true, 3055 | "dependencies": { 3056 | "parent-module": "^1.0.0", 3057 | "resolve-from": "^4.0.0" 3058 | }, 3059 | "engines": { 3060 | "node": ">=6" 3061 | }, 3062 | "funding": { 3063 | "url": "https://github.com/sponsors/sindresorhus" 3064 | } 3065 | }, 3066 | "node_modules/inherits": { 3067 | "version": "2.0.4", 3068 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 3069 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 3070 | "dev": true 3071 | }, 3072 | "node_modules/is-arguments": { 3073 | "version": "1.1.1", 3074 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 3075 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 3076 | "dev": true, 3077 | "dependencies": { 3078 | "call-bind": "^1.0.2", 3079 | "has-tostringtag": "^1.0.0" 3080 | }, 3081 | "engines": { 3082 | "node": ">= 0.4" 3083 | }, 3084 | "funding": { 3085 | "url": "https://github.com/sponsors/ljharb" 3086 | } 3087 | }, 3088 | "node_modules/is-arrayish": { 3089 | "version": "0.2.1", 3090 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 3091 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", 3092 | "dev": true 3093 | }, 3094 | "node_modules/is-callable": { 3095 | "version": "1.2.7", 3096 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 3097 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 3098 | "dev": true, 3099 | "engines": { 3100 | "node": ">= 0.4" 3101 | }, 3102 | "funding": { 3103 | "url": "https://github.com/sponsors/ljharb" 3104 | } 3105 | }, 3106 | "node_modules/is-extglob": { 3107 | "version": "2.1.1", 3108 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3109 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 3110 | "dev": true, 3111 | "engines": { 3112 | "node": ">=0.10.0" 3113 | } 3114 | }, 3115 | "node_modules/is-generator-function": { 3116 | "version": "1.0.10", 3117 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", 3118 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", 3119 | "dev": true, 3120 | "dependencies": { 3121 | "has-tostringtag": "^1.0.0" 3122 | }, 3123 | "engines": { 3124 | "node": ">= 0.4" 3125 | }, 3126 | "funding": { 3127 | "url": "https://github.com/sponsors/ljharb" 3128 | } 3129 | }, 3130 | "node_modules/is-glob": { 3131 | "version": "4.0.3", 3132 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3133 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3134 | "dev": true, 3135 | "dependencies": { 3136 | "is-extglob": "^2.1.1" 3137 | }, 3138 | "engines": { 3139 | "node": ">=0.10.0" 3140 | } 3141 | }, 3142 | "node_modules/is-json": { 3143 | "version": "2.0.1", 3144 | "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", 3145 | "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", 3146 | "dev": true 3147 | }, 3148 | "node_modules/is-nan": { 3149 | "version": "1.3.2", 3150 | "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", 3151 | "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", 3152 | "dev": true, 3153 | "dependencies": { 3154 | "call-bind": "^1.0.0", 3155 | "define-properties": "^1.1.3" 3156 | }, 3157 | "engines": { 3158 | "node": ">= 0.4" 3159 | }, 3160 | "funding": { 3161 | "url": "https://github.com/sponsors/ljharb" 3162 | } 3163 | }, 3164 | "node_modules/is-number": { 3165 | "version": "7.0.0", 3166 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3167 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3168 | "dev": true, 3169 | "engines": { 3170 | "node": ">=0.12.0" 3171 | } 3172 | }, 3173 | "node_modules/is-typed-array": { 3174 | "version": "1.1.13", 3175 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", 3176 | "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", 3177 | "dev": true, 3178 | "dependencies": { 3179 | "which-typed-array": "^1.1.14" 3180 | }, 3181 | "engines": { 3182 | "node": ">= 0.4" 3183 | }, 3184 | "funding": { 3185 | "url": "https://github.com/sponsors/ljharb" 3186 | } 3187 | }, 3188 | "node_modules/js-tokens": { 3189 | "version": "4.0.0", 3190 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3191 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 3192 | "dev": true 3193 | }, 3194 | "node_modules/js-yaml": { 3195 | "version": "4.1.0", 3196 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 3197 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 3198 | "dev": true, 3199 | "dependencies": { 3200 | "argparse": "^2.0.1" 3201 | }, 3202 | "bin": { 3203 | "js-yaml": "bin/js-yaml.js" 3204 | } 3205 | }, 3206 | "node_modules/json-parse-even-better-errors": { 3207 | "version": "2.3.1", 3208 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 3209 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 3210 | "dev": true 3211 | }, 3212 | "node_modules/json5": { 3213 | "version": "2.2.3", 3214 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 3215 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 3216 | "dev": true, 3217 | "bin": { 3218 | "json5": "lib/cli.js" 3219 | }, 3220 | "engines": { 3221 | "node": ">=6" 3222 | } 3223 | }, 3224 | "node_modules/lightningcss": { 3225 | "version": "1.25.1", 3226 | "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.25.1.tgz", 3227 | "integrity": "sha512-V0RMVZzK1+rCHpymRv4URK2lNhIRyO8g7U7zOFwVAhJuat74HtkjIQpQRKNCwFEYkRGpafOpmXXLoaoBcyVtBg==", 3228 | "dev": true, 3229 | "dependencies": { 3230 | "detect-libc": "^1.0.3" 3231 | }, 3232 | "engines": { 3233 | "node": ">= 12.0.0" 3234 | }, 3235 | "funding": { 3236 | "type": "opencollective", 3237 | "url": "https://opencollective.com/parcel" 3238 | }, 3239 | "optionalDependencies": { 3240 | "lightningcss-darwin-arm64": "1.25.1", 3241 | "lightningcss-darwin-x64": "1.25.1", 3242 | "lightningcss-freebsd-x64": "1.25.1", 3243 | "lightningcss-linux-arm-gnueabihf": "1.25.1", 3244 | "lightningcss-linux-arm64-gnu": "1.25.1", 3245 | "lightningcss-linux-arm64-musl": "1.25.1", 3246 | "lightningcss-linux-x64-gnu": "1.25.1", 3247 | "lightningcss-linux-x64-musl": "1.25.1", 3248 | "lightningcss-win32-x64-msvc": "1.25.1" 3249 | } 3250 | }, 3251 | "node_modules/lightningcss-darwin-arm64": { 3252 | "version": "1.25.1", 3253 | "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.25.1.tgz", 3254 | "integrity": "sha512-G4Dcvv85bs5NLENcu/s1f7ehzE3D5ThnlWSDwE190tWXRQCQaqwcuHe+MGSVI/slm0XrxnaayXY+cNl3cSricw==", 3255 | "cpu": [ 3256 | "arm64" 3257 | ], 3258 | "dev": true, 3259 | "optional": true, 3260 | "os": [ 3261 | "darwin" 3262 | ], 3263 | "engines": { 3264 | "node": ">= 12.0.0" 3265 | }, 3266 | "funding": { 3267 | "type": "opencollective", 3268 | "url": "https://opencollective.com/parcel" 3269 | } 3270 | }, 3271 | "node_modules/lightningcss-darwin-x64": { 3272 | "version": "1.25.1", 3273 | "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.25.1.tgz", 3274 | "integrity": "sha512-dYWuCzzfqRueDSmto6YU5SoGHvZTMU1Em9xvhcdROpmtOQLorurUZz8+xFxZ51lCO2LnYbfdjZ/gCqWEkwixNg==", 3275 | "cpu": [ 3276 | "x64" 3277 | ], 3278 | "dev": true, 3279 | "optional": true, 3280 | "os": [ 3281 | "darwin" 3282 | ], 3283 | "engines": { 3284 | "node": ">= 12.0.0" 3285 | }, 3286 | "funding": { 3287 | "type": "opencollective", 3288 | "url": "https://opencollective.com/parcel" 3289 | } 3290 | }, 3291 | "node_modules/lightningcss-freebsd-x64": { 3292 | "version": "1.25.1", 3293 | "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.25.1.tgz", 3294 | "integrity": "sha512-hXoy2s9A3KVNAIoKz+Fp6bNeY+h9c3tkcx1J3+pS48CqAt+5bI/R/YY4hxGL57fWAIquRjGKW50arltD6iRt/w==", 3295 | "cpu": [ 3296 | "x64" 3297 | ], 3298 | "dev": true, 3299 | "optional": true, 3300 | "os": [ 3301 | "freebsd" 3302 | ], 3303 | "engines": { 3304 | "node": ">= 12.0.0" 3305 | }, 3306 | "funding": { 3307 | "type": "opencollective", 3308 | "url": "https://opencollective.com/parcel" 3309 | } 3310 | }, 3311 | "node_modules/lightningcss-linux-arm-gnueabihf": { 3312 | "version": "1.25.1", 3313 | "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.25.1.tgz", 3314 | "integrity": "sha512-tWyMgHFlHlp1e5iW3EpqvH5MvsgoN7ZkylBbG2R2LWxnvH3FuWCJOhtGcYx9Ks0Kv0eZOBud789odkYLhyf1ng==", 3315 | "cpu": [ 3316 | "arm" 3317 | ], 3318 | "dev": true, 3319 | "optional": true, 3320 | "os": [ 3321 | "linux" 3322 | ], 3323 | "engines": { 3324 | "node": ">= 12.0.0" 3325 | }, 3326 | "funding": { 3327 | "type": "opencollective", 3328 | "url": "https://opencollective.com/parcel" 3329 | } 3330 | }, 3331 | "node_modules/lightningcss-linux-arm64-gnu": { 3332 | "version": "1.25.1", 3333 | "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.25.1.tgz", 3334 | "integrity": "sha512-Xjxsx286OT9/XSnVLIsFEDyDipqe4BcLeB4pXQ/FEA5+2uWCCuAEarUNQumRucnj7k6ftkAHUEph5r821KBccQ==", 3335 | "cpu": [ 3336 | "arm64" 3337 | ], 3338 | "dev": true, 3339 | "optional": true, 3340 | "os": [ 3341 | "linux" 3342 | ], 3343 | "engines": { 3344 | "node": ">= 12.0.0" 3345 | }, 3346 | "funding": { 3347 | "type": "opencollective", 3348 | "url": "https://opencollective.com/parcel" 3349 | } 3350 | }, 3351 | "node_modules/lightningcss-linux-arm64-musl": { 3352 | "version": "1.25.1", 3353 | "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.25.1.tgz", 3354 | "integrity": "sha512-IhxVFJoTW8wq6yLvxdPvyHv4NjzcpN1B7gjxrY3uaykQNXPHNIpChLB52+wfH+yS58zm1PL4LemUp8u9Cfp6Bw==", 3355 | "cpu": [ 3356 | "arm64" 3357 | ], 3358 | "dev": true, 3359 | "optional": true, 3360 | "os": [ 3361 | "linux" 3362 | ], 3363 | "engines": { 3364 | "node": ">= 12.0.0" 3365 | }, 3366 | "funding": { 3367 | "type": "opencollective", 3368 | "url": "https://opencollective.com/parcel" 3369 | } 3370 | }, 3371 | "node_modules/lightningcss-linux-x64-gnu": { 3372 | "version": "1.25.1", 3373 | "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.25.1.tgz", 3374 | "integrity": "sha512-RXIaru79KrREPEd6WLXfKfIp4QzoppZvD3x7vuTKkDA64PwTzKJ2jaC43RZHRt8BmyIkRRlmywNhTRMbmkPYpA==", 3375 | "cpu": [ 3376 | "x64" 3377 | ], 3378 | "dev": true, 3379 | "optional": true, 3380 | "os": [ 3381 | "linux" 3382 | ], 3383 | "engines": { 3384 | "node": ">= 12.0.0" 3385 | }, 3386 | "funding": { 3387 | "type": "opencollective", 3388 | "url": "https://opencollective.com/parcel" 3389 | } 3390 | }, 3391 | "node_modules/lightningcss-linux-x64-musl": { 3392 | "version": "1.25.1", 3393 | "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.25.1.tgz", 3394 | "integrity": "sha512-TdcNqFsAENEEFr8fJWg0Y4fZ/nwuqTRsIr7W7t2wmDUlA8eSXVepeeONYcb+gtTj1RaXn/WgNLB45SFkz+XBZA==", 3395 | "cpu": [ 3396 | "x64" 3397 | ], 3398 | "dev": true, 3399 | "optional": true, 3400 | "os": [ 3401 | "linux" 3402 | ], 3403 | "engines": { 3404 | "node": ">= 12.0.0" 3405 | }, 3406 | "funding": { 3407 | "type": "opencollective", 3408 | "url": "https://opencollective.com/parcel" 3409 | } 3410 | }, 3411 | "node_modules/lightningcss-win32-x64-msvc": { 3412 | "version": "1.25.1", 3413 | "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.25.1.tgz", 3414 | "integrity": "sha512-9KZZkmmy9oGDSrnyHuxP6iMhbsgChUiu/NSgOx+U1I/wTngBStDf2i2aGRCHvFqj19HqqBEI4WuGVQBa2V6e0A==", 3415 | "cpu": [ 3416 | "x64" 3417 | ], 3418 | "dev": true, 3419 | "optional": true, 3420 | "os": [ 3421 | "win32" 3422 | ], 3423 | "engines": { 3424 | "node": ">= 12.0.0" 3425 | }, 3426 | "funding": { 3427 | "type": "opencollective", 3428 | "url": "https://opencollective.com/parcel" 3429 | } 3430 | }, 3431 | "node_modules/lines-and-columns": { 3432 | "version": "1.2.4", 3433 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 3434 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 3435 | "dev": true 3436 | }, 3437 | "node_modules/lmdb": { 3438 | "version": "2.8.5", 3439 | "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz", 3440 | "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==", 3441 | "dev": true, 3442 | "hasInstallScript": true, 3443 | "dependencies": { 3444 | "msgpackr": "^1.9.5", 3445 | "node-addon-api": "^6.1.0", 3446 | "node-gyp-build-optional-packages": "5.1.1", 3447 | "ordered-binary": "^1.4.1", 3448 | "weak-lru-cache": "^1.2.2" 3449 | }, 3450 | "bin": { 3451 | "download-lmdb-prebuilds": "bin/download-prebuilds.js" 3452 | }, 3453 | "optionalDependencies": { 3454 | "@lmdb/lmdb-darwin-arm64": "2.8.5", 3455 | "@lmdb/lmdb-darwin-x64": "2.8.5", 3456 | "@lmdb/lmdb-linux-arm": "2.8.5", 3457 | "@lmdb/lmdb-linux-arm64": "2.8.5", 3458 | "@lmdb/lmdb-linux-x64": "2.8.5", 3459 | "@lmdb/lmdb-win32-x64": "2.8.5" 3460 | } 3461 | }, 3462 | "node_modules/lmdb/node_modules/node-addon-api": { 3463 | "version": "6.1.0", 3464 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", 3465 | "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", 3466 | "dev": true 3467 | }, 3468 | "node_modules/loose-envify": { 3469 | "version": "1.4.0", 3470 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 3471 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 3472 | "dev": true, 3473 | "dependencies": { 3474 | "js-tokens": "^3.0.0 || ^4.0.0" 3475 | }, 3476 | "bin": { 3477 | "loose-envify": "cli.js" 3478 | } 3479 | }, 3480 | "node_modules/mdn-data": { 3481 | "version": "2.0.30", 3482 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", 3483 | "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", 3484 | "dev": true, 3485 | "optional": true, 3486 | "peer": true 3487 | }, 3488 | "node_modules/micromatch": { 3489 | "version": "4.0.7", 3490 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", 3491 | "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", 3492 | "dev": true, 3493 | "dependencies": { 3494 | "braces": "^3.0.3", 3495 | "picomatch": "^2.3.1" 3496 | }, 3497 | "engines": { 3498 | "node": ">=8.6" 3499 | } 3500 | }, 3501 | "node_modules/msgpackr": { 3502 | "version": "1.10.2", 3503 | "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.10.2.tgz", 3504 | "integrity": "sha512-L60rsPynBvNE+8BWipKKZ9jHcSGbtyJYIwjRq0VrIvQ08cRjntGXJYW/tmciZ2IHWIY8WEW32Qa2xbh5+SKBZA==", 3505 | "dev": true, 3506 | "optionalDependencies": { 3507 | "msgpackr-extract": "^3.0.2" 3508 | } 3509 | }, 3510 | "node_modules/msgpackr-extract": { 3511 | "version": "3.0.3", 3512 | "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", 3513 | "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", 3514 | "dev": true, 3515 | "hasInstallScript": true, 3516 | "optional": true, 3517 | "dependencies": { 3518 | "node-gyp-build-optional-packages": "5.2.2" 3519 | }, 3520 | "bin": { 3521 | "download-msgpackr-prebuilds": "bin/download-prebuilds.js" 3522 | }, 3523 | "optionalDependencies": { 3524 | "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", 3525 | "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", 3526 | "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", 3527 | "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", 3528 | "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", 3529 | "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" 3530 | } 3531 | }, 3532 | "node_modules/msgpackr-extract/node_modules/detect-libc": { 3533 | "version": "2.0.3", 3534 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", 3535 | "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", 3536 | "dev": true, 3537 | "optional": true, 3538 | "engines": { 3539 | "node": ">=8" 3540 | } 3541 | }, 3542 | "node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages": { 3543 | "version": "5.2.2", 3544 | "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", 3545 | "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", 3546 | "dev": true, 3547 | "optional": true, 3548 | "dependencies": { 3549 | "detect-libc": "^2.0.1" 3550 | }, 3551 | "bin": { 3552 | "node-gyp-build-optional-packages": "bin.js", 3553 | "node-gyp-build-optional-packages-optional": "optional.js", 3554 | "node-gyp-build-optional-packages-test": "build-test.js" 3555 | } 3556 | }, 3557 | "node_modules/node-addon-api": { 3558 | "version": "7.1.0", 3559 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", 3560 | "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", 3561 | "dev": true, 3562 | "engines": { 3563 | "node": "^16 || ^18 || >= 20" 3564 | } 3565 | }, 3566 | "node_modules/node-gyp-build-optional-packages": { 3567 | "version": "5.1.1", 3568 | "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", 3569 | "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", 3570 | "dev": true, 3571 | "dependencies": { 3572 | "detect-libc": "^2.0.1" 3573 | }, 3574 | "bin": { 3575 | "node-gyp-build-optional-packages": "bin.js", 3576 | "node-gyp-build-optional-packages-optional": "optional.js", 3577 | "node-gyp-build-optional-packages-test": "build-test.js" 3578 | } 3579 | }, 3580 | "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { 3581 | "version": "2.0.3", 3582 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", 3583 | "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", 3584 | "dev": true, 3585 | "engines": { 3586 | "node": ">=8" 3587 | } 3588 | }, 3589 | "node_modules/node-releases": { 3590 | "version": "2.0.14", 3591 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", 3592 | "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", 3593 | "dev": true 3594 | }, 3595 | "node_modules/nth-check": { 3596 | "version": "2.1.1", 3597 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", 3598 | "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", 3599 | "dev": true, 3600 | "dependencies": { 3601 | "boolbase": "^1.0.0" 3602 | }, 3603 | "funding": { 3604 | "url": "https://github.com/fb55/nth-check?sponsor=1" 3605 | } 3606 | }, 3607 | "node_modules/nullthrows": { 3608 | "version": "1.1.1", 3609 | "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", 3610 | "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", 3611 | "dev": true 3612 | }, 3613 | "node_modules/object-inspect": { 3614 | "version": "1.13.1", 3615 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", 3616 | "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", 3617 | "dev": true, 3618 | "funding": { 3619 | "url": "https://github.com/sponsors/ljharb" 3620 | } 3621 | }, 3622 | "node_modules/object-is": { 3623 | "version": "1.1.6", 3624 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", 3625 | "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", 3626 | "dev": true, 3627 | "dependencies": { 3628 | "call-bind": "^1.0.7", 3629 | "define-properties": "^1.2.1" 3630 | }, 3631 | "engines": { 3632 | "node": ">= 0.4" 3633 | }, 3634 | "funding": { 3635 | "url": "https://github.com/sponsors/ljharb" 3636 | } 3637 | }, 3638 | "node_modules/object-keys": { 3639 | "version": "1.1.1", 3640 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 3641 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 3642 | "dev": true, 3643 | "engines": { 3644 | "node": ">= 0.4" 3645 | } 3646 | }, 3647 | "node_modules/object.assign": { 3648 | "version": "4.1.5", 3649 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", 3650 | "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", 3651 | "dev": true, 3652 | "dependencies": { 3653 | "call-bind": "^1.0.5", 3654 | "define-properties": "^1.2.1", 3655 | "has-symbols": "^1.0.3", 3656 | "object-keys": "^1.1.1" 3657 | }, 3658 | "engines": { 3659 | "node": ">= 0.4" 3660 | }, 3661 | "funding": { 3662 | "url": "https://github.com/sponsors/ljharb" 3663 | } 3664 | }, 3665 | "node_modules/ordered-binary": { 3666 | "version": "1.5.1", 3667 | "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz", 3668 | "integrity": "sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==", 3669 | "dev": true 3670 | }, 3671 | "node_modules/os-browserify": { 3672 | "version": "0.3.0", 3673 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 3674 | "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", 3675 | "dev": true 3676 | }, 3677 | "node_modules/pako": { 3678 | "version": "1.0.11", 3679 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", 3680 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", 3681 | "dev": true 3682 | }, 3683 | "node_modules/parcel": { 3684 | "version": "2.12.0", 3685 | "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.12.0.tgz", 3686 | "integrity": "sha512-W+gxAq7aQ9dJIg/XLKGcRT0cvnStFAQHPaI0pvD0U2l6IVLueUAm3nwN7lkY62zZNmlvNx6jNtE4wlbS+CyqSg==", 3687 | "dev": true, 3688 | "dependencies": { 3689 | "@parcel/config-default": "2.12.0", 3690 | "@parcel/core": "2.12.0", 3691 | "@parcel/diagnostic": "2.12.0", 3692 | "@parcel/events": "2.12.0", 3693 | "@parcel/fs": "2.12.0", 3694 | "@parcel/logger": "2.12.0", 3695 | "@parcel/package-manager": "2.12.0", 3696 | "@parcel/reporter-cli": "2.12.0", 3697 | "@parcel/reporter-dev-server": "2.12.0", 3698 | "@parcel/reporter-tracer": "2.12.0", 3699 | "@parcel/utils": "2.12.0", 3700 | "chalk": "^4.1.0", 3701 | "commander": "^7.0.0", 3702 | "get-port": "^4.2.0" 3703 | }, 3704 | "bin": { 3705 | "parcel": "lib/bin.js" 3706 | }, 3707 | "engines": { 3708 | "node": ">= 12.0.0" 3709 | }, 3710 | "funding": { 3711 | "type": "opencollective", 3712 | "url": "https://opencollective.com/parcel" 3713 | } 3714 | }, 3715 | "node_modules/parent-module": { 3716 | "version": "1.0.1", 3717 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3718 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3719 | "dev": true, 3720 | "dependencies": { 3721 | "callsites": "^3.0.0" 3722 | }, 3723 | "engines": { 3724 | "node": ">=6" 3725 | } 3726 | }, 3727 | "node_modules/parse-json": { 3728 | "version": "5.2.0", 3729 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 3730 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 3731 | "dev": true, 3732 | "dependencies": { 3733 | "@babel/code-frame": "^7.0.0", 3734 | "error-ex": "^1.3.1", 3735 | "json-parse-even-better-errors": "^2.3.0", 3736 | "lines-and-columns": "^1.1.6" 3737 | }, 3738 | "engines": { 3739 | "node": ">=8" 3740 | }, 3741 | "funding": { 3742 | "url": "https://github.com/sponsors/sindresorhus" 3743 | } 3744 | }, 3745 | "node_modules/path-browserify": { 3746 | "version": "1.0.1", 3747 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", 3748 | "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", 3749 | "dev": true 3750 | }, 3751 | "node_modules/picocolors": { 3752 | "version": "1.0.1", 3753 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", 3754 | "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", 3755 | "dev": true 3756 | }, 3757 | "node_modules/picomatch": { 3758 | "version": "2.3.1", 3759 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 3760 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 3761 | "dev": true, 3762 | "engines": { 3763 | "node": ">=8.6" 3764 | }, 3765 | "funding": { 3766 | "url": "https://github.com/sponsors/jonschlinkert" 3767 | } 3768 | }, 3769 | "node_modules/possible-typed-array-names": { 3770 | "version": "1.0.0", 3771 | "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", 3772 | "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", 3773 | "dev": true, 3774 | "engines": { 3775 | "node": ">= 0.4" 3776 | } 3777 | }, 3778 | "node_modules/postcss-value-parser": { 3779 | "version": "4.2.0", 3780 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 3781 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 3782 | "dev": true 3783 | }, 3784 | "node_modules/posthtml": { 3785 | "version": "0.16.6", 3786 | "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", 3787 | "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", 3788 | "dev": true, 3789 | "dependencies": { 3790 | "posthtml-parser": "^0.11.0", 3791 | "posthtml-render": "^3.0.0" 3792 | }, 3793 | "engines": { 3794 | "node": ">=12.0.0" 3795 | } 3796 | }, 3797 | "node_modules/posthtml-parser": { 3798 | "version": "0.10.2", 3799 | "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", 3800 | "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", 3801 | "dev": true, 3802 | "dependencies": { 3803 | "htmlparser2": "^7.1.1" 3804 | }, 3805 | "engines": { 3806 | "node": ">=12" 3807 | } 3808 | }, 3809 | "node_modules/posthtml-render": { 3810 | "version": "3.0.0", 3811 | "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", 3812 | "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", 3813 | "dev": true, 3814 | "dependencies": { 3815 | "is-json": "^2.0.1" 3816 | }, 3817 | "engines": { 3818 | "node": ">=12" 3819 | } 3820 | }, 3821 | "node_modules/posthtml/node_modules/posthtml-parser": { 3822 | "version": "0.11.0", 3823 | "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", 3824 | "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", 3825 | "dev": true, 3826 | "dependencies": { 3827 | "htmlparser2": "^7.1.1" 3828 | }, 3829 | "engines": { 3830 | "node": ">=12" 3831 | } 3832 | }, 3833 | "node_modules/process": { 3834 | "version": "0.11.10", 3835 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 3836 | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", 3837 | "dev": true, 3838 | "engines": { 3839 | "node": ">= 0.6.0" 3840 | } 3841 | }, 3842 | "node_modules/punycode": { 3843 | "version": "1.4.1", 3844 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 3845 | "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", 3846 | "dev": true 3847 | }, 3848 | "node_modules/qs": { 3849 | "version": "6.12.1", 3850 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", 3851 | "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", 3852 | "dev": true, 3853 | "dependencies": { 3854 | "side-channel": "^1.0.6" 3855 | }, 3856 | "engines": { 3857 | "node": ">=0.6" 3858 | }, 3859 | "funding": { 3860 | "url": "https://github.com/sponsors/ljharb" 3861 | } 3862 | }, 3863 | "node_modules/querystring-es3": { 3864 | "version": "0.2.1", 3865 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 3866 | "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", 3867 | "dev": true, 3868 | "engines": { 3869 | "node": ">=0.4.x" 3870 | } 3871 | }, 3872 | "node_modules/react": { 3873 | "version": "18.3.1", 3874 | "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", 3875 | "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", 3876 | "dev": true, 3877 | "dependencies": { 3878 | "loose-envify": "^1.1.0" 3879 | }, 3880 | "engines": { 3881 | "node": ">=0.10.0" 3882 | } 3883 | }, 3884 | "node_modules/react-country-state-city": { 3885 | "version": "1.1.2", 3886 | "resolved": "https://registry.npmjs.org/react-country-state-city/-/react-country-state-city-1.1.2.tgz", 3887 | "integrity": "sha512-va1NUAeyIiFlb9v8m3277KY0/sw6hzZ5MEjfiz2KXb9lplwr5iiPdtSVui63KOcvQyd7JIlULof6bP4kwrxrAQ==", 3888 | "dev": true, 3889 | "peerDependencies": { 3890 | "react": ">=16" 3891 | } 3892 | }, 3893 | "node_modules/react-dom": { 3894 | "version": "18.3.1", 3895 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", 3896 | "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", 3897 | "dev": true, 3898 | "dependencies": { 3899 | "loose-envify": "^1.1.0", 3900 | "scheduler": "^0.23.2" 3901 | }, 3902 | "peerDependencies": { 3903 | "react": "^18.3.1" 3904 | } 3905 | }, 3906 | "node_modules/react-error-overlay": { 3907 | "version": "6.0.9", 3908 | "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", 3909 | "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", 3910 | "dev": true 3911 | }, 3912 | "node_modules/react-icons": { 3913 | "version": "4.12.0", 3914 | "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", 3915 | "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==", 3916 | "dev": true, 3917 | "peerDependencies": { 3918 | "react": "*" 3919 | } 3920 | }, 3921 | "node_modules/react-puzzle-captcha": { 3922 | "version": "1.0.1", 3923 | "resolved": "https://registry.npmjs.org/react-puzzle-captcha/-/react-puzzle-captcha-1.0.1.tgz", 3924 | "integrity": "sha512-ymVkbvCMGjRBR3xnF2sKqWhWBP2K8HiFuY1tDI92Vf8/bdiyDZBBuxnzBcdVZaVe5sQIEns05P3s9US0D/CxCA==", 3925 | "dev": true, 3926 | "dependencies": { 3927 | "@babel/runtime": "^7.15.4" 3928 | }, 3929 | "peerDependencies": { 3930 | "react": "^18.2.0" 3931 | } 3932 | }, 3933 | "node_modules/react-refresh": { 3934 | "version": "0.9.0", 3935 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz", 3936 | "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==", 3937 | "dev": true, 3938 | "engines": { 3939 | "node": ">=0.10.0" 3940 | } 3941 | }, 3942 | "node_modules/react-router": { 3943 | "version": "6.23.1", 3944 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.23.1.tgz", 3945 | "integrity": "sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==", 3946 | "dev": true, 3947 | "dependencies": { 3948 | "@remix-run/router": "1.16.1" 3949 | }, 3950 | "engines": { 3951 | "node": ">=14.0.0" 3952 | }, 3953 | "peerDependencies": { 3954 | "react": ">=16.8" 3955 | } 3956 | }, 3957 | "node_modules/react-router-dom": { 3958 | "version": "6.23.1", 3959 | "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.23.1.tgz", 3960 | "integrity": "sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==", 3961 | "dev": true, 3962 | "dependencies": { 3963 | "@remix-run/router": "1.16.1", 3964 | "react-router": "6.23.1" 3965 | }, 3966 | "engines": { 3967 | "node": ">=14.0.0" 3968 | }, 3969 | "peerDependencies": { 3970 | "react": ">=16.8", 3971 | "react-dom": ">=16.8" 3972 | } 3973 | }, 3974 | "node_modules/readable-stream": { 3975 | "version": "3.6.2", 3976 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 3977 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 3978 | "dev": true, 3979 | "dependencies": { 3980 | "inherits": "^2.0.3", 3981 | "string_decoder": "^1.1.1", 3982 | "util-deprecate": "^1.0.1" 3983 | }, 3984 | "engines": { 3985 | "node": ">= 6" 3986 | } 3987 | }, 3988 | "node_modules/regenerator-runtime": { 3989 | "version": "0.13.11", 3990 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", 3991 | "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", 3992 | "dev": true 3993 | }, 3994 | "node_modules/resolve-from": { 3995 | "version": "4.0.0", 3996 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3997 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 3998 | "dev": true, 3999 | "engines": { 4000 | "node": ">=4" 4001 | } 4002 | }, 4003 | "node_modules/safe-buffer": { 4004 | "version": "5.2.1", 4005 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 4006 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 4007 | "dev": true, 4008 | "funding": [ 4009 | { 4010 | "type": "github", 4011 | "url": "https://github.com/sponsors/feross" 4012 | }, 4013 | { 4014 | "type": "patreon", 4015 | "url": "https://www.patreon.com/feross" 4016 | }, 4017 | { 4018 | "type": "consulting", 4019 | "url": "https://feross.org/support" 4020 | } 4021 | ] 4022 | }, 4023 | "node_modules/scheduler": { 4024 | "version": "0.23.2", 4025 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", 4026 | "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", 4027 | "dev": true, 4028 | "dependencies": { 4029 | "loose-envify": "^1.1.0" 4030 | } 4031 | }, 4032 | "node_modules/semver": { 4033 | "version": "7.6.2", 4034 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", 4035 | "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", 4036 | "dev": true, 4037 | "bin": { 4038 | "semver": "bin/semver.js" 4039 | }, 4040 | "engines": { 4041 | "node": ">=10" 4042 | } 4043 | }, 4044 | "node_modules/set-function-length": { 4045 | "version": "1.2.2", 4046 | "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 4047 | "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 4048 | "dev": true, 4049 | "dependencies": { 4050 | "define-data-property": "^1.1.4", 4051 | "es-errors": "^1.3.0", 4052 | "function-bind": "^1.1.2", 4053 | "get-intrinsic": "^1.2.4", 4054 | "gopd": "^1.0.1", 4055 | "has-property-descriptors": "^1.0.2" 4056 | }, 4057 | "engines": { 4058 | "node": ">= 0.4" 4059 | } 4060 | }, 4061 | "node_modules/side-channel": { 4062 | "version": "1.0.6", 4063 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", 4064 | "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", 4065 | "dev": true, 4066 | "dependencies": { 4067 | "call-bind": "^1.0.7", 4068 | "es-errors": "^1.3.0", 4069 | "get-intrinsic": "^1.2.4", 4070 | "object-inspect": "^1.13.1" 4071 | }, 4072 | "engines": { 4073 | "node": ">= 0.4" 4074 | }, 4075 | "funding": { 4076 | "url": "https://github.com/sponsors/ljharb" 4077 | } 4078 | }, 4079 | "node_modules/source-map": { 4080 | "version": "0.6.1", 4081 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 4082 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 4083 | "dev": true, 4084 | "engines": { 4085 | "node": ">=0.10.0" 4086 | } 4087 | }, 4088 | "node_modules/source-map-js": { 4089 | "version": "1.2.0", 4090 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", 4091 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", 4092 | "dev": true, 4093 | "optional": true, 4094 | "peer": true, 4095 | "engines": { 4096 | "node": ">=0.10.0" 4097 | } 4098 | }, 4099 | "node_modules/srcset": { 4100 | "version": "5.0.1", 4101 | "resolved": "https://registry.npmjs.org/srcset/-/srcset-5.0.1.tgz", 4102 | "integrity": "sha512-/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw==", 4103 | "dev": true, 4104 | "optional": true, 4105 | "peer": true, 4106 | "engines": { 4107 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 4108 | }, 4109 | "funding": { 4110 | "url": "https://github.com/sponsors/sindresorhus" 4111 | } 4112 | }, 4113 | "node_modules/stable": { 4114 | "version": "0.1.8", 4115 | "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", 4116 | "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", 4117 | "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", 4118 | "dev": true 4119 | }, 4120 | "node_modules/stream-browserify": { 4121 | "version": "3.0.0", 4122 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", 4123 | "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", 4124 | "dev": true, 4125 | "dependencies": { 4126 | "inherits": "~2.0.4", 4127 | "readable-stream": "^3.5.0" 4128 | } 4129 | }, 4130 | "node_modules/stream-http": { 4131 | "version": "3.2.0", 4132 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", 4133 | "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", 4134 | "dev": true, 4135 | "dependencies": { 4136 | "builtin-status-codes": "^3.0.0", 4137 | "inherits": "^2.0.4", 4138 | "readable-stream": "^3.6.0", 4139 | "xtend": "^4.0.2" 4140 | } 4141 | }, 4142 | "node_modules/string_decoder": { 4143 | "version": "1.3.0", 4144 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 4145 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 4146 | "dev": true, 4147 | "dependencies": { 4148 | "safe-buffer": "~5.2.0" 4149 | } 4150 | }, 4151 | "node_modules/supports-color": { 4152 | "version": "7.2.0", 4153 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 4154 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 4155 | "dev": true, 4156 | "dependencies": { 4157 | "has-flag": "^4.0.0" 4158 | }, 4159 | "engines": { 4160 | "node": ">=8" 4161 | } 4162 | }, 4163 | "node_modules/svgo": { 4164 | "version": "3.3.2", 4165 | "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", 4166 | "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", 4167 | "dev": true, 4168 | "optional": true, 4169 | "peer": true, 4170 | "dependencies": { 4171 | "@trysound/sax": "0.2.0", 4172 | "commander": "^7.2.0", 4173 | "css-select": "^5.1.0", 4174 | "css-tree": "^2.3.1", 4175 | "css-what": "^6.1.0", 4176 | "csso": "^5.0.5", 4177 | "picocolors": "^1.0.0" 4178 | }, 4179 | "bin": { 4180 | "svgo": "bin/svgo" 4181 | }, 4182 | "engines": { 4183 | "node": ">=14.0.0" 4184 | }, 4185 | "funding": { 4186 | "type": "opencollective", 4187 | "url": "https://opencollective.com/svgo" 4188 | } 4189 | }, 4190 | "node_modules/term-size": { 4191 | "version": "2.2.1", 4192 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", 4193 | "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", 4194 | "dev": true, 4195 | "engines": { 4196 | "node": ">=8" 4197 | }, 4198 | "funding": { 4199 | "url": "https://github.com/sponsors/sindresorhus" 4200 | } 4201 | }, 4202 | "node_modules/timsort": { 4203 | "version": "0.3.0", 4204 | "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", 4205 | "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", 4206 | "dev": true 4207 | }, 4208 | "node_modules/to-regex-range": { 4209 | "version": "5.0.1", 4210 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 4211 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 4212 | "dev": true, 4213 | "dependencies": { 4214 | "is-number": "^7.0.0" 4215 | }, 4216 | "engines": { 4217 | "node": ">=8.0" 4218 | } 4219 | }, 4220 | "node_modules/tslib": { 4221 | "version": "2.6.3", 4222 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", 4223 | "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", 4224 | "dev": true 4225 | }, 4226 | "node_modules/tty-browserify": { 4227 | "version": "0.0.1", 4228 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", 4229 | "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", 4230 | "dev": true 4231 | }, 4232 | "node_modules/type-fest": { 4233 | "version": "0.20.2", 4234 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 4235 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 4236 | "dev": true, 4237 | "engines": { 4238 | "node": ">=10" 4239 | }, 4240 | "funding": { 4241 | "url": "https://github.com/sponsors/sindresorhus" 4242 | } 4243 | }, 4244 | "node_modules/update-browserslist-db": { 4245 | "version": "1.0.16", 4246 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", 4247 | "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", 4248 | "dev": true, 4249 | "funding": [ 4250 | { 4251 | "type": "opencollective", 4252 | "url": "https://opencollective.com/browserslist" 4253 | }, 4254 | { 4255 | "type": "tidelift", 4256 | "url": "https://tidelift.com/funding/github/npm/browserslist" 4257 | }, 4258 | { 4259 | "type": "github", 4260 | "url": "https://github.com/sponsors/ai" 4261 | } 4262 | ], 4263 | "dependencies": { 4264 | "escalade": "^3.1.2", 4265 | "picocolors": "^1.0.1" 4266 | }, 4267 | "bin": { 4268 | "update-browserslist-db": "cli.js" 4269 | }, 4270 | "peerDependencies": { 4271 | "browserslist": ">= 4.21.0" 4272 | } 4273 | }, 4274 | "node_modules/url": { 4275 | "version": "0.11.3", 4276 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", 4277 | "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", 4278 | "dev": true, 4279 | "dependencies": { 4280 | "punycode": "^1.4.1", 4281 | "qs": "^6.11.2" 4282 | } 4283 | }, 4284 | "node_modules/util": { 4285 | "version": "0.12.5", 4286 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", 4287 | "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", 4288 | "dev": true, 4289 | "dependencies": { 4290 | "inherits": "^2.0.3", 4291 | "is-arguments": "^1.0.4", 4292 | "is-generator-function": "^1.0.7", 4293 | "is-typed-array": "^1.1.3", 4294 | "which-typed-array": "^1.1.2" 4295 | } 4296 | }, 4297 | "node_modules/util-deprecate": { 4298 | "version": "1.0.2", 4299 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4300 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 4301 | "dev": true 4302 | }, 4303 | "node_modules/utility-types": { 4304 | "version": "3.11.0", 4305 | "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", 4306 | "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", 4307 | "dev": true, 4308 | "engines": { 4309 | "node": ">= 4" 4310 | } 4311 | }, 4312 | "node_modules/weak-lru-cache": { 4313 | "version": "1.2.2", 4314 | "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", 4315 | "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", 4316 | "dev": true 4317 | }, 4318 | "node_modules/which-typed-array": { 4319 | "version": "1.1.15", 4320 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", 4321 | "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", 4322 | "dev": true, 4323 | "dependencies": { 4324 | "available-typed-arrays": "^1.0.7", 4325 | "call-bind": "^1.0.7", 4326 | "for-each": "^0.3.3", 4327 | "gopd": "^1.0.1", 4328 | "has-tostringtag": "^1.0.2" 4329 | }, 4330 | "engines": { 4331 | "node": ">= 0.4" 4332 | }, 4333 | "funding": { 4334 | "url": "https://github.com/sponsors/ljharb" 4335 | } 4336 | }, 4337 | "node_modules/xtend": { 4338 | "version": "4.0.2", 4339 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 4340 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 4341 | "dev": true, 4342 | "engines": { 4343 | "node": ">=0.4" 4344 | } 4345 | } 4346 | } 4347 | } 4348 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "parcel src/index.html" 7 | }, 8 | "devDependencies": { 9 | "@types/react": "^18.0.37", 10 | "@types/react-dom": "^18.0.11", 11 | "assert": "^2.0.0", 12 | "bootstrap": "^5.2.3", 13 | "browserify-zlib": "^0.2.0", 14 | "buffer": "^5.7.1", 15 | "https-browserify": "^1.0.0", 16 | "os-browserify": "^0.3.0", 17 | "parcel": "^2.8.3", 18 | "path-browserify": "^1.0.1", 19 | "process": "^0.11.10", 20 | "punycode": "^1.4.1", 21 | "querystring-es3": "^0.2.1", 22 | "react": "^18.2.0", 23 | "react-country-state-city": "^1.0.5", 24 | "react-dom": "^18.2.0", 25 | "react-icons": "^4.8.0", 26 | "react-puzzle-captcha": "^1.0.1", 27 | "react-router-dom": "^6.11.1", 28 | "stream-browserify": "^3.0.0", 29 | "stream-http": "^3.2.0", 30 | "tty-browserify": "^0.0.1", 31 | "url": "^0.11.0", 32 | "util": "^0.12.5" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /example/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import './app.css'; 3 | import { Verify } from 'react-puzzle-captcha'; 4 | import 'react-puzzle-captcha/dist/react-puzzle-captcha.css'; 5 | import 'bootstrap/dist/css/bootstrap.min.css'; 6 | export default function App() { 7 | const [visible, setVisible] = useState(false); 8 | const show = () => { 9 | setVisible(true); 10 | }; 11 | const hide = () => { 12 | setVisible(false); 13 | }; 14 | return ( 15 |
16 |
17 | {!visible ? ( 18 |
19 | Show 20 |
21 | ) : ( 22 |
23 | Hide 24 |
25 | )} 26 |
27 | { 32 | alert('success'); 33 | hide(); 34 | }} 35 | onFail={() => { 36 | alert('fail'); 37 | }} 38 | onRefresh={() => { 39 | alert('refresh'); 40 | }} 41 | /> 42 |
43 | ); 44 | } 45 | -------------------------------------------------------------------------------- /example/src/app.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | margin: 0; 4 | padding: 0; 5 | height: 100%; 6 | } 7 | * { 8 | box-sizing: border-box; 9 | } 10 | -------------------------------------------------------------------------------- /example/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | React-puzzle-captcha 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /example/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import App from './App'; 4 | import { HashRouter, Routes, Route } from 'react-router-dom'; 5 | const root = ReactDOM.createRoot( 6 | document.getElementById('root') as HTMLElement, 7 | ); 8 | root.render( 9 | 10 | 11 | } /> 12 | 13 | , 14 | ); 15 | -------------------------------------------------------------------------------- /global.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.scss"; -------------------------------------------------------------------------------- /jestconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "transform": { 3 | "^.+\\.(t|j)sx?$": "ts-jest" 4 | }, 5 | "testRegex": "(/tests/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", 6 | "moduleFileExtensions": ["scss", "ts", "tsx", "js", "jsx", "json", "node"], 7 | "testEnvironment": "jsdom", 8 | "moduleNameMapper": { 9 | "\\.(css|scss)$": "identity-obj-proxy" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-puzzle-captcha", 3 | "version": "1.0.2", 4 | "author": "Venkatesh", 5 | "description": "Puzzle Slider - Slide verification component based on react", 6 | "keywords": [ 7 | "puzzle-captcha", 8 | "react-puzzle-captcha", 9 | "component", 10 | "components", 11 | "design", 12 | "framework", 13 | "frontend", 14 | "react", 15 | "react-component", 16 | "ui", 17 | "slider", 18 | "puzzle-captcha", 19 | "captcha", 20 | "puzzle" 21 | ], 22 | "scripts": { 23 | "build": "rollup -c", 24 | "build:esm": "tsc", 25 | "build:cjs": "tsc --module commonjs --outDir dist/cjs", 26 | "lint": "eslint \"{**/*,*}.{js,ts,jsx,tsx}\"", 27 | "prettier": "prettier --write \"{src,tests,example/src}/**/*.{js,ts,jsx,tsx}\"", 28 | "test": "jest --config jestconfig.json", 29 | "prepare": "npm run build", 30 | "prepublishOnly": "npm test && npm run prettier && npm run lint" 31 | }, 32 | "contributors": [ 33 | "venkatmcajj" 34 | ], 35 | "files": [ 36 | "dist", 37 | "lib", 38 | "es" 39 | ], 40 | "main": "dist/cjs/index.js", 41 | "module": "dist/esm/index.js", 42 | "browser": "dist/umd/index.js", 43 | "types": "dist/esm/index.d.ts", 44 | "browserslist": [ 45 | "last 2 version", 46 | "Firefox ESR", 47 | "> 1%", 48 | "ie >= 9" 49 | ], 50 | "gitHooks": { 51 | "pre-commit": "lint-staged" 52 | }, 53 | "lint-staged": { 54 | "*.{js,jsx,less,md,json}": [ 55 | "prettier --write" 56 | ], 57 | "*.ts?(x)": [ 58 | "prettier --parser=typescript --write" 59 | ] 60 | }, 61 | "homepage": "https://github.com/venkatmcajj/react-puzzle-captcha", 62 | "bugs": { 63 | "url": "https://github.com/venkatmcajj/react-puzzle-captcha/issues" 64 | }, 65 | "repository": { 66 | "type": "git", 67 | "url": "git+https://github.com:venkatmcajj/react-puzzle-captcha.git" 68 | }, 69 | "dependencies": { 70 | "@babel/runtime": "^7.15.4" 71 | }, 72 | "peerDependencies": { 73 | "react": "^18.2.0" 74 | }, 75 | "resolutions": { 76 | "@types/react": "^18.2.0" 77 | }, 78 | "devDependencies": { 79 | "@rollup/plugin-commonjs": "^24.1.0", 80 | "@rollup/plugin-json": "^6.0.0", 81 | "@rollup/plugin-node-resolve": "^15.0.2", 82 | "@rollup/plugin-terser": "^0.4.1", 83 | "@testing-library/react": "^14.0.0", 84 | "@types/jest": "^29.5.3", 85 | "@types/react": "^18.0.37", 86 | "@types/react-test-renderer": "^18.0.0", 87 | "@typescript-eslint/eslint-plugin": "^5.59.0", 88 | "@typescript-eslint/parser": "^5.59.0", 89 | "css-loader": "^6.7.3", 90 | "eslint": "^8.38.0", 91 | "eslint-config-prettier": "^8.8.0", 92 | "eslint-plugin-prettier": "^4.2.1", 93 | "eslint-plugin-react": "^7.32.2", 94 | "eslint-plugin-react-hooks": "^4.6.0", 95 | "identity-obj-proxy": "^3.0.0", 96 | "jest": "^29.5.0", 97 | "jest-canvas-mock": "^2.5.0", 98 | "jest-environment-jsdom": "^29.5.0", 99 | "jest-fetch-mock": "^3.0.3", 100 | "node-sass": "^8.0.0", 101 | "prettier": "^2.8.7", 102 | "react": "^18.2.0", 103 | "react-dom": "^18.2.0", 104 | "react-test-renderer": "^18.2.0", 105 | "rollup": "^3.21.6", 106 | "rollup-plugin-peer-deps-external": "^2.2.4", 107 | "rollup-plugin-postcss": "^4.0.2", 108 | "rollup-plugin-sass": "^1.12.19", 109 | "rollup-plugin-typescript2": "^0.34.1", 110 | "style-loader": "^3.3.2", 111 | "ts-jest": "^29.1.0", 112 | "typescript": "^5.0.4" 113 | }, 114 | "license": "MIT", 115 | "publishConfig": { 116 | "registry": "https://registry.npmjs.com" 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /push.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | yarn build 3 | git add . 4 | git commit -m $1 5 | git push -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | const typescript = require("rollup-plugin-typescript2"); 2 | const pkg = require("./package.json"); 3 | const terser = require("@rollup/plugin-terser"); 4 | const json = require("@rollup/plugin-json"); 5 | const peerDepsExternal = require("rollup-plugin-peer-deps-external"); 6 | const resolve = require("@rollup/plugin-node-resolve"); 7 | const commonjs = require("@rollup/plugin-commonjs"); 8 | const sass = require("rollup-plugin-sass"); 9 | module.exports = { 10 | input: "src/index.ts", 11 | output: [ 12 | { 13 | file: pkg.main, 14 | format: "cjs", 15 | sourcemap: true 16 | }, 17 | { 18 | file: pkg.module, 19 | format: "esm", 20 | sourcemap: true 21 | }, 22 | { 23 | file: pkg.browser, 24 | format: "umd", 25 | sourcemap: true, 26 | name: 'ReactPuzzleCaptcha' 27 | } 28 | ], 29 | plugins: [ 30 | peerDepsExternal(), 31 | resolve(), 32 | commonjs(), 33 | typescript({ useTsconfigDeclarationDir: true }), 34 | sass({ output: './dist/react-puzzle-captcha.css' }), 35 | json(), 36 | terser() 37 | ] 38 | }; -------------------------------------------------------------------------------- /src/Verify/index.md: -------------------------------------------------------------------------------- 1 | ### Basic use: 2 | 3 | ```tsx 4 | import React from 'react'; 5 | import { Verify } from 'react-puzzle-captcha'; 6 | 7 | export default () => { 8 | return ; 9 | }; 10 | ``` 11 | 12 | ### set width and height: 13 | 14 | ```tsx 15 | import React from 'react'; 16 | import { Verify } from 'react-puzzle-captcha'; 17 | 18 | export default () => { 19 | return ; 20 | }; 21 | ``` 22 | 23 | ### Set slider side length and radius: 24 | 25 | ```tsx 26 | import React from 'react'; 27 | import { Verify } from 'react-puzzle-captcha'; 28 | 29 | export default () => { 30 | return ; 31 | }; 32 | ``` 33 | 34 | ### Set success, failure, callback when refreshing: 35 | 36 | ```tsx 37 | import React from 'react'; 38 | import { Verify } from 'react-puzzle-captcha'; 39 | 40 | export default () => { 41 | return ( 42 | alert('success')} 46 | onFail={() => alert('fail')} 47 | onRefresh={() => alert('refresh')} 48 | /> 49 | ); 50 | }; 51 | ``` 52 | 53 | ### User-Defined Validation Logic: 54 | 55 | The component exposes `onCustomverify` method, and accepts `verify` object as input parameter, we can control `spliced` and `verified` attributes to control whether the verification is successful, that is, the return value of the function must contain `spliced` and `verified` two Boolean property object 56 | 57 | ```tsx 58 | import React from 'react'; 59 | import { Verify } from 'react-puzzle-captcha'; 60 | 61 | export default () => { 62 | const handleCustomverify = (verify) => { 63 | console.log(verify, Math.abs(left - destX) < 5); 64 | const { destX, left, spliced, verified } = verify; 65 | return { 66 | spliced: Math.abs(left - destX) < 5, 67 | verified, 68 | }; 69 | }; 70 | return ( 71 | alert('success')} 76 | onFail={() => alert('fail')} 77 | onRefresh={() => alert('refresh')} 78 | /> 79 | ); 80 | }; 81 | ``` 82 | 83 | ### Dynamically set show/hide: 84 | 85 | ```tsx 86 | import React, { useState } from 'react'; 87 | import { Verify } from 'react-puzzle-captcha'; 88 | 89 | export default () => { 90 | const [visible, setVisible] = useState(false); 91 | const show = () => { 92 | setVisible(true); 93 | }; 94 | const hide = () => { 95 | setVisible(false); 96 | }; 97 | const style = { 98 | display: 'inline-block', 99 | marginRight: '20px', 100 | marginBottom: '20px', 101 | width: '100px', 102 | padding: '5px 20px', 103 | color: '#fff', 104 | textAlign: 'center', 105 | cursor: 'pointer', 106 | background: '#1991FA', 107 | }; 108 | return ( 109 | <> 110 |
111 | Show 112 |
113 |
114 | Hide 115 |
116 | alert('success')} 121 | onFail={() => alert('fail')} 122 | onRefresh={() => alert('refresh')} 123 | /> 124 | 125 | ); 126 | }; 127 | ``` 128 | 129 | 130 | -------------------------------------------------------------------------------- /src/Verify/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { useRef, useState, useEffect, ReactNode, memo } from 'react'; 2 | import { getRandomNumberByRange, sum, square } from './tool'; 3 | 4 | interface verifyType { 5 | spliced: boolean; 6 | verified: boolean; // Simply verify the drag trajectory, when it is zero, it means that there is no fluctuation up and down the Y axis, which may be non-human operation 7 | left: number; // Move position of the slider 8 | destX: number; // The target position of the slider 9 | } 10 | 11 | interface IverifyProp { 12 | /** 13 | * @description canvaswidth 14 | * @default 320 15 | */ 16 | width?: number; 17 | /** 18 | * @description canvasheight 19 | * @default 160 20 | */ 21 | height?: number; 22 | /** 23 | * @description slider side length 24 | * @default 42 25 | */ 26 | l?: number; 27 | /** 28 | * @description slider radius 29 | * @default 9 30 | */ 31 | r?: number; 32 | /** 33 | * @description Is it visible 34 | * @default true 35 | */ 36 | visible?: boolean; 37 | /** 38 | * @description slider text 39 | * @default Swipe right to fill the puzzle 40 | */ 41 | text?: string | ReactNode; 42 | /** 43 | * @description refresh button icon, It is the url address of the icon 44 | * @default - 45 | */ 46 | refreshIcon?: string; 47 | /** 48 | * @description The url address used to get random pictures 49 | * @default https://picsum.photos/${id}/${width}/${height}, specific referencehttps://picsum.photos/, Just implement a similar interface 50 | */ 51 | imgUrl?: string; 52 | /** 53 | * @description Callback when dragging the slider, The parameter is the dragging distance of the current slider 54 | * @default (l: number):void => {} 55 | */ 56 | onDraw?: (l: number) => void; 57 | /** 58 | * @description User's custom validation logic 59 | * @default (arg: verifyType) => verifyType 60 | */ 61 | onCustomverify?: (arg: verifyType) => verifyType; 62 | /** 63 | * @description Verification successful callback 64 | * @default ():void => {} 65 | */ 66 | onSuccess?: VoidFunction; 67 | /** 68 | * @description Validation failure callback 69 | * @default ():void => {} 70 | */ 71 | onFail?: VoidFunction; 72 | /** 73 | * @description Callback on refresh 74 | * @default ():void => {} 75 | */ 76 | onRefresh?: VoidFunction; 77 | } 78 | const Verify = ({ 79 | width = 320, 80 | height = 160, 81 | l = 42, 82 | r = 9, 83 | imgUrl, 84 | text, 85 | refreshIcon = 'https://raw.githubusercontent.com/venkatmcajj/react-puzzle-captcha/master/docs/icon12.png', 86 | visible = true, 87 | onDraw, 88 | onCustomverify, 89 | onSuccess, 90 | onFail, 91 | onRefresh, 92 | }: IverifyProp) => { 93 | const [isLoading, setLoading] = useState(false); 94 | const [sliderLeft, setSliderLeft] = useState(0); 95 | const [sliderClass, setSliderClass] = useState('sliderContainer'); 96 | const [textTip, setTextTip] = useState(text); 97 | const canvasRef = useRef(null); 98 | const blockRef = useRef(null); 99 | const imgRef = useRef(null); 100 | const isMouseDownRef = useRef(false); 101 | const trailRef = useRef([]); 102 | const originXRef = useRef(0); 103 | const originYRef = useRef(0); 104 | const xRef = useRef(0); 105 | const yRef = useRef(0); 106 | const PI = Math.PI; 107 | const L = l + r * 2 + 3; // The actual side length of the slider 108 | 109 | const drawPath = ( 110 | ctx: any, 111 | x: number, 112 | y: number, 113 | operation: 'fill' | 'clip', 114 | ) => { 115 | ctx.beginPath(); 116 | ctx.moveTo(x, y); 117 | ctx.arc(x + l / 2, y - r + 2, r, 0.72 * PI, 2.26 * PI); 118 | ctx.lineTo(x + l, y); 119 | ctx.arc(x + l + r - 2, y + l / 2, r, 1.21 * PI, 2.78 * PI); 120 | ctx.lineTo(x + l, y + l); 121 | ctx.lineTo(x, y + l); 122 | ctx.arc(x + r - 2, y + l / 2, r + 0.4, 2.76 * PI, 1.24 * PI, true); 123 | ctx.lineTo(x, y); 124 | ctx.lineWidth = 2; 125 | ctx.fillStyle = 'rgba(255, 255, 255, 0.7)'; 126 | ctx.strokeStyle = 'rgba(255, 255, 255, 0.7)'; 127 | ctx.stroke(); 128 | ctx.globalCompositeOperation = 'destination-over'; 129 | operation === 'fill' ? ctx.fill() : ctx.clip(); 130 | }; 131 | 132 | const getRandomImgSrc = () => { 133 | return ( 134 | imgUrl || 135 | `https://picsum.photos/id/${getRandomNumberByRange( 136 | 0, 137 | 1084, 138 | )}/${width}/${height}` 139 | ); 140 | }; 141 | 142 | const createImg = (onload: VoidFunction) => { 143 | const img = new Image(); 144 | img.crossOrigin = 'Anonymous'; 145 | img.onload = onload; 146 | img.onerror = () => { 147 | (img as any).setSrc(getRandomImgSrc()); // Reload other images when image loading fails 148 | }; 149 | 150 | (img as any).setSrc = (src: string) => { 151 | const isIE = window.navigator.userAgent.indexOf('Trident') > -1; 152 | if (isIE) { 153 | // IE browser cannot cross domain through img.crossOrigin, use ajax to get image blob and then convert it to dataURL for display 154 | const xhr = new XMLHttpRequest(); 155 | xhr.onloadend = function (e: any) { 156 | const file = new FileReader(); // FileReader only supports IE10+ 157 | file.readAsDataURL(e.target.response); 158 | file.onloadend = function (e) { 159 | img.src = e?.target?.result as string; 160 | }; 161 | }; 162 | xhr.open('GET', src); 163 | xhr.responseType = 'blob'; 164 | xhr.send(); 165 | } else img.src = src; 166 | }; 167 | 168 | (img as any).setSrc(getRandomImgSrc()); 169 | return img; 170 | }; 171 | 172 | const draw = (img: HTMLImageElement) => { 173 | const canvasCtx = canvasRef.current.getContext('2d'); 174 | const blockCtx = blockRef.current.getContext('2d'); 175 | // Create puzzle shapes at random positions 176 | xRef.current = getRandomNumberByRange(L + 10, width - (L + 10)); 177 | yRef.current = getRandomNumberByRange(10 + r * 2, height - (L + 10)); 178 | drawPath(canvasCtx, xRef.current, yRef.current, 'fill'); 179 | drawPath(blockCtx, xRef.current, yRef.current, 'clip'); 180 | 181 | // draw into picture 182 | canvasCtx.drawImage(img, 0, 0, width, height); 183 | blockCtx.drawImage(img, 0, 0, width, height); 184 | 185 | // Extract the slider and bring it to the far left 186 | const y1 = yRef.current - r * 2 - 1; 187 | const ImageData = blockCtx.getImageData(xRef.current - 3, y1, L, L); 188 | blockRef.current.width = L; 189 | blockCtx.putImageData(ImageData, 0, y1); 190 | }; 191 | 192 | const initImg = () => { 193 | const img = createImg(() => { 194 | setLoading(false); 195 | draw(img); 196 | }); 197 | imgRef.current = img; 198 | }; 199 | 200 | const reset = () => { 201 | const canvasCtx = canvasRef.current.getContext('2d'); 202 | const blockCtx = blockRef.current.getContext('2d'); 203 | // reset style 204 | setSliderLeft(0); 205 | setSliderClass('sliderContainer'); 206 | blockRef.current.width = width; 207 | blockRef.current.style.left = 0 + 'px'; 208 | 209 | // clear canvas 210 | canvasCtx.clearRect(0, 0, width, height); 211 | blockCtx.clearRect(0, 0, width, height); 212 | 213 | // reload image 214 | setLoading(true); 215 | imgRef.current.setSrc(getRandomImgSrc()); 216 | }; 217 | 218 | const handleRefresh = () => { 219 | reset(); 220 | typeof onRefresh === 'function' && onRefresh(); 221 | }; 222 | 223 | const verify = () => { 224 | const arr = trailRef.current; // The moving distance of the y-axis when dragging 225 | const average = arr.reduce(sum) / arr.length; 226 | const deviations = arr.map((x) => x - average); 227 | const stddev = Math.sqrt(deviations.map(square).reduce(sum) / arr.length); 228 | const left = parseInt(blockRef.current.style.left); 229 | return { 230 | spliced: Math.abs(left - xRef.current) < 10, 231 | verified: stddev !== 0, // Simply verify the drag trajectory, when it is zero, it means that there is no fluctuation up and down the Y axis, which may be non-human operation 232 | left, 233 | destX: xRef.current, 234 | }; 235 | }; 236 | 237 | const handleDragStart = function (e: any) { 238 | originXRef.current = e.clientX || e.touches[0].clientX; 239 | originYRef.current = e.clientY || e.touches[0].clientY; 240 | isMouseDownRef.current = true; 241 | }; 242 | 243 | const handleDragMove = (e: any) => { 244 | if (!isMouseDownRef.current) return false; 245 | e.preventDefault(); 246 | const eventX = e.clientX || e.touches[0].clientX; 247 | const eventY = e.clientY || e.touches[0].clientY; 248 | const moveX = eventX - originXRef.current; 249 | const moveY = eventY - originYRef.current; 250 | if (moveX < 0 || moveX + 38 >= width) return false; 251 | setSliderLeft(moveX); 252 | const blockLeft = ((width - 40 - 20) / (width - 40)) * moveX; 253 | blockRef.current.style.left = blockLeft + 'px'; 254 | 255 | setSliderClass('sliderContainer sliderContainer_active'); 256 | trailRef.current.push(moveY); 257 | onDraw && onDraw(blockLeft); 258 | return true; 259 | }; 260 | 261 | const handleDragEnd = (e: any) => { 262 | if (!isMouseDownRef.current) return false; 263 | isMouseDownRef.current = false; 264 | const eventX = e.clientX || e.changedTouches[0].clientX; 265 | if (eventX === originXRef.current) return false; 266 | setSliderClass('sliderContainer'); 267 | const { spliced, verified } = onCustomverify 268 | ? onCustomverify(verify()) 269 | : verify(); 270 | if (spliced) { 271 | if (verified) { 272 | setSliderClass('sliderContainer sliderContainer_success'); 273 | typeof onSuccess === 'function' && onSuccess(); 274 | } else { 275 | setSliderClass('sliderContainer sliderContainer_fail'); 276 | setTextTip('Please try again'); 277 | reset(); 278 | } 279 | } else { 280 | setSliderClass('sliderContainer sliderContainer_fail'); 281 | typeof onFail === 'function' && onFail(); 282 | setTimeout(() => { 283 | reset(); 284 | }, 1000); 285 | } 286 | return true; 287 | }; 288 | 289 | useEffect(() => { 290 | if (visible) { 291 | imgRef.current ? reset() : initImg(); 292 | } 293 | // eslint-disable-next-line react-hooks/exhaustive-deps 294 | }, [visible]); 295 | 296 | return ( 297 |
309 |
310 | 311 | 319 |
320 |
327 |
328 |
334 |
335 |
336 |
337 |
{textTip}
338 |
339 |
344 |
352 |
353 | Loading... 354 |
355 |
356 | ); 357 | }; 358 | 359 | export default memo(Verify); 360 | -------------------------------------------------------------------------------- /src/Verify/style.scss: -------------------------------------------------------------------------------- 1 | .verifyWrap { 2 | position: relative; 3 | 4 | .block { 5 | position: absolute; 6 | left: 0; 7 | top: 0; 8 | cursor: pointer; 9 | cursor: grab; 10 | 11 | &:active { 12 | cursor: grabbing; 13 | } 14 | } 15 | 16 | .sliderContainer { 17 | position: relative; 18 | text-align: center; 19 | width: 310px; 20 | height: 40px; 21 | line-height: 40px; 22 | margin-top: 15px; 23 | background: #f7f9fa; 24 | color: #45494c; 25 | border: 1px solid #e4e7eb; 26 | } 27 | 28 | .sliderContainer_active .slider { 29 | height: 38px; 30 | top: -1px; 31 | border: 1px solid #486cd6; 32 | } 33 | 34 | .sliderContainer_active .sliderMask { 35 | height: 38px; 36 | border-width: 1px; 37 | } 38 | 39 | .sliderContainer_success .slider { 40 | height: 38px; 41 | top: -1px; 42 | border: 1px solid #0db87f; 43 | background-color: #0ca14a !important; 44 | } 45 | 46 | .sliderContainer_success .sliderMask { 47 | height: 38px; 48 | border: 1px solid #0db87f; 49 | background-color: #d2f4ef; 50 | } 51 | 52 | .sliderContainer_success .sliderIcon { 53 | background-position: 0 -26px !important; 54 | } 55 | 56 | .sliderContainer_fail .slider { 57 | height: 38px; 58 | top: -1px; 59 | border: 1px solid #f57a7a; 60 | background-color: #f57a7a !important; 61 | } 62 | 63 | .sliderContainer_fail .sliderMask { 64 | height: 38px; 65 | border: 1px solid #f57a7a; 66 | background-color: #fce1e1; 67 | } 68 | 69 | .sliderContainer_fail .sliderIcon { 70 | top: 14px; 71 | background-position: 0 -82px !important; 72 | } 73 | 74 | .sliderContainer_active .sliderText, 75 | .sliderContainer_success .sliderText, 76 | .sliderContainer_fail .sliderText { 77 | display: none; 78 | } 79 | 80 | .sliderMask { 81 | position: absolute; 82 | left: 0; 83 | top: 0; 84 | height: 40px; 85 | border: 0 solid #486cd6; 86 | background: #d1e9fe; 87 | } 88 | 89 | .slider { 90 | position: absolute; 91 | top: 0; 92 | left: 0; 93 | width: 40px; 94 | height: 40px; 95 | background: #fff; 96 | box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); 97 | transition: background 0.2s linear; 98 | cursor: pointer; 99 | cursor: grab; 100 | 101 | &:active { 102 | cursor: grabbing; 103 | } 104 | 105 | &:hover { 106 | background: #486cd6; 107 | } 108 | } 109 | 110 | .sliderIcon { 111 | font-size: 18px; 112 | color: #000; 113 | } 114 | 115 | .slider:hover .sliderIcon { 116 | color: #fff; 117 | } 118 | 119 | .refreshIcon { 120 | position: absolute; 121 | right: 5px; 122 | top: 5px; 123 | width: 30px; 124 | height: 30px; 125 | cursor: pointer; 126 | background-size: 32px; 127 | } 128 | 129 | .loadingContainer { 130 | position: absolute; 131 | left: 0; 132 | top: 0; 133 | width: 310px; 134 | height: 155px; 135 | display: flex; 136 | flex-direction: column; 137 | justify-content: center; 138 | align-items: center; 139 | font-size: 14px; 140 | color: #45494c; 141 | z-index: 2; 142 | background: #edf0f2; 143 | } 144 | 145 | .loadingIcon { 146 | width: 32px; 147 | height: 32px; 148 | margin-bottom: 10px; 149 | background: url(https://raw.githubusercontent.com/venkatmcajj/react-puzzle-captcha/master/docs/icon12.png); 150 | background-size: 32px; 151 | animation: loading-icon-rotate 0.8s linear infinite; 152 | } 153 | 154 | @keyframes loading-icon-rotate { 155 | from { 156 | transform: rotate(0); 157 | } 158 | 159 | to { 160 | transform: rotate(360deg); 161 | } 162 | } 163 | } -------------------------------------------------------------------------------- /src/Verify/tool.ts: -------------------------------------------------------------------------------- 1 | function getRandomNumberByRange(start: number, end: number) { 2 | return Math.round(Math.random() * (end - start) + start); 3 | } 4 | 5 | function sum(x: number, y: number) { 6 | return x + y; 7 | } 8 | 9 | function square(x: number) { 10 | return x * x; 11 | } 12 | 13 | export { getRandomNumberByRange, sum, square }; 14 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import './Verify/style.scss'; 2 | import Verify from './Verify'; 3 | 4 | export { Verify }; 5 | -------------------------------------------------------------------------------- /tests/__snapshots__/common.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Common render should render correctly without crash 1`] = ` 4 |
18 |
21 | 25 | 32 |
33 |
42 |
50 |
60 |
63 | → 64 |
65 |
66 |
67 |
70 |
71 |
80 |
90 |
93 | 94 | Loading... 95 | 96 |
97 |
98 | `; 99 | -------------------------------------------------------------------------------- /tests/common.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import 'jest-canvas-mock'; 3 | import renderer from 'react-test-renderer'; 4 | import { Verify } from '../src'; 5 | import fetchmock from 'jest-fetch-mock'; 6 | fetchmock.dontMock(); 7 | describe('Common render', () => { 8 | it('should render correctly without crash', () => { 9 | const tree = renderer.create().toJSON(); 10 | expect(tree).toMatchSnapshot(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["src"], 3 | "exclude": ["dist", "node_modules"], 4 | "compilerOptions": { 5 | "module": "esnext", 6 | "lib": ["dom", "esnext"], 7 | "importHelpers": true, 8 | "declaration": true, 9 | "sourceMap": true, 10 | "rootDir": "./src", 11 | "outDir": "./dist/esm", 12 | "strict": true, 13 | "noImplicitReturns": true, 14 | "noFallthroughCasesInSwitch": true, 15 | "noUnusedLocals": true, 16 | "noUnusedParameters": true, 17 | "moduleResolution": "node", 18 | "jsx": "react", 19 | "esModuleInterop": true, 20 | "resolveJsonModule": true, 21 | "skipLibCheck": true, 22 | "forceConsistentCasingInFileNames": true 23 | } 24 | } 25 | --------------------------------------------------------------------------------