├── .eslintrc.json ├── .gitignore ├── .yarnclean ├── LICENSE ├── README.md ├── demo.jpg ├── dist ├── index.d.ts └── index.js ├── package-lock.json ├── package.json ├── publish.ps1 ├── publish.sh ├── src └── index.tsx ├── tsconfig.json └── yarn.lock /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "@typescript-eslint" 4 | ], 5 | "rules": { 6 | "@typescript-eslint/no-unused-vars": 0, 7 | "jsx-a11y/alt-text": 0, 8 | "no-unused-vars": 1, 9 | "no-unused-expressions": 1, 10 | "react/prop-types": 0 11 | }, 12 | "extends": [ 13 | "eslint:recommended", 14 | "plugin:react/recommended" 15 | ], 16 | "parser": "@typescript-eslint/parser", 17 | "parserOptions": { 18 | "sourceType": "module", 19 | "ecmaVersion": 2020 20 | }, 21 | "env": { 22 | "browser": true, 23 | "node": true 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | .*.swp 3 | /.settings 4 | /.vscode 5 | /.idea 6 | *.iml 7 | /lib 8 | 9 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 10 | 11 | # dependencies 12 | /node_modules 13 | /.pnp 14 | .pnp.js 15 | 16 | # testing 17 | /coverage 18 | 19 | # production 20 | /build 21 | 22 | # misc 23 | DS_Store 24 | .DS_Store 25 | .env.local 26 | .env.development.local 27 | .env.test.local 28 | .env.production.local 29 | 30 | npm-debug.log* 31 | yarn-debug.log* 32 | yarn-error.log* 33 | -------------------------------------------------------------------------------- /.yarnclean: -------------------------------------------------------------------------------- 1 | # test directories 2 | __tests__ 3 | test 4 | tests 5 | powered-test 6 | 7 | # asset directories 8 | docs 9 | doc 10 | website 11 | images 12 | assets 13 | 14 | # examples 15 | example 16 | examples 17 | 18 | # code coverage directories 19 | coverage 20 | .nyc_output 21 | 22 | # build scripts 23 | Makefile 24 | Gulpfile.js 25 | Gruntfile.js 26 | 27 | # configs 28 | appveyor.yml 29 | circle.yml 30 | codeship-services.yml 31 | codeship-steps.yml 32 | wercker.yml 33 | .tern-project 34 | .gitattributes 35 | .editorconfig 36 | .*ignore 37 | .eslintrc 38 | .eslintrc.js 39 | .eslintrc.json 40 | .jshintrc 41 | .jshintrc.json 42 | .flowconfig 43 | .documentup.json 44 | .yarn-metadata.json 45 | .travis.yml 46 | 47 | # misc 48 | *.md 49 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 RickoNoNo3 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React-WinBox 2 | 3 | 4 | 5 | 6 | A React controlled component for [WinBox.js](https://github.com/nextapps-de/winbox), with full Reactful props and state. Includes all configurations of WinBox.js by using React component props. 7 | 8 | **Full type declaration for both JavaScript and TypeScript.** 9 | 10 | ## Play the [Demo](https://react-winbox.vercel.app) 11 | 12 | demo: 13 | 14 | ----- 15 | 16 | ![demo screenshot](https://github.com/RickoNoNo3/react-winbox/blob/main/demo.jpg) 17 | 18 | ## Install 19 | 20 | ```bash 21 | npm install --save react-winbox 22 | # OR 23 | yarn add react-winbox 24 | ``` 25 | 26 | ## Usage 27 | 28 | ### Help for different situations 29 | 30 | - [Use in Next.js](#use-in-next) 31 | - [Upgrade from versions <=1.4](#upgrade) 32 | 33 | ### Examples 34 | 35 | > Ensure the document body has an initial non-zero height, e.g. `100vh`. 36 | 37 | ```jsx 38 | import 'winbox/dist/css/winbox.min.css'; // required 39 | import 'winbox/dist/css/themes/modern.min.css'; // optional 40 | import 'winbox/dist/css/themes/white.min.css'; // optional 41 | import WinBox from 'react-winbox'; 42 | 43 | 50 |
51 |

Hello, WinBox!

52 | 53 |
54 |
55 | ``` 56 | 57 | Or you can do more one step, to make a genuine 'windows manager', just like: 58 | 59 | ```tsx 60 | // ... 61 | // some code to maintain a list of necessary windows info... 62 | // ... 63 | const [windows, setWindows] = useState([]); 64 | 65 | const handleClose = (force, id) => { 66 | let state = [...windows]; 67 | const index = state.findIndex(info => info.id === id); 68 | if (index === -1) return 69 | if (state[index].onclose && state[index].onclose(force)) return true; 70 | // window-specific onclose, returns true if it does not need the default close process. 71 | state.splice(index, 1); 72 | setTimeout(() => setWindows(state)); // to change winbox showing state while `onclose`, MUST wrap it within `setTimeout` 73 | }; 74 | 75 | return ( 76 | <> 77 | {windows.map(info => ( 78 | handleClose(force, info.id)} 82 | {...info.neededProps} // assign any props you want to WinBox 83 | > 84 |
Some children
85 |
86 | ))} 87 | 88 | ); 89 | ``` 90 | 91 | ## Notice 92 | 93 | - To use WinBox, ensure the document body has an initial non-zero height, e.g. 100vh. 94 | - To open a winbox, just create it in your virtual DOM, that's enough. 95 | - To close a winbox, just do not render it. It's safe. 96 | - `onclose` is called BEFORE the winbox goes to close process. It is easy to block a closing for some unsaved data or giving a confirmation to user to close (see the doc to get more info). However, if you do not want to block the closing, but want to destroy the React WinBox component, be sure to wrap destroying actions within `setTimeout` so that they occur after the winbox.js DOM is truly closed, e.g. `setTimeout(() => setShowWindow(false))`. 97 | - To change some properties of the winbox DOM, just change the component's properties. The properties need [official methods](https://github.com/nextapps-de/winbox#overview) support. We suggest that all states you want to control of the winbox should be listened for changes and keep controlled, such as `width` state with `onResize` callback. But if you do not have such listeners, you can call the `forceUpdate` method from refs to keep the winbox status in control as well. 98 | - If you have to operate the pure WinBox.js object manually, you can find a `winBoxObj` in the component ref. It's needed only when you want to call `mount()` method. 99 | 100 | ## Props and Methods 101 | 102 | ### See the official document for [WinBox.js](https://github.com/nextapps-de/winbox) 103 | 104 | ### Props 105 | 106 | > most props are one-to-one corresponding to the params of WinBox.js. 107 | 108 | ```ts 109 | type WinBoxPropType = { 110 | title?: string 111 | /** 112 | * Icon supports both native image urls and React package resources: 113 | * 114 | * Example: 115 | * ``` 116 | * import icon from './icon.jpg'; 117 | * 118 | * 119 | * ``` 120 | */ 121 | icon?: string 122 | id?: string 123 | children?: ReactElement | ReactElement[] | null 124 | url?: string // When you use this, the children elements will be ignored. 125 | 126 | noAnimation?: boolean, 127 | noShadow?: boolean, 128 | noHeader?: boolean, 129 | noMin?: boolean, 130 | noMax?: boolean, 131 | noFull?: boolean, 132 | noClose?: boolean, 133 | noResize?: boolean, 134 | noMove?: boolean, 135 | modal?: boolean, 136 | hide?: boolean, 137 | 138 | index?: number, 139 | border?: number, 140 | background?: string, 141 | 142 | max?: boolean, 143 | min?: boolean, 144 | fullscreen?: boolean, 145 | 146 | x?: string | number | 'center' | 'right', 147 | y?: string | number | 'center' | 'bottom', 148 | top?: string | number, 149 | bottom?: string | number, 150 | left?: string | number, 151 | right?: string | number, 152 | height?: string | number, 153 | width?: string | number, 154 | 155 | /** 156 | * This callback is called BEFORE the winbox goes to close process. So if you want to destroy the React WinBox component while it is triggered, be sure to wrap destroying actions within `setTimeout` so that they occur after the winbox.js DOM is truly closed,e.g. `setTimeout(() => setState({showWindow: false}))` 157 | * 158 | * see the following document for more detail about the argument and the return value. 159 | * @see https://github.com/nextapps-de/winbox 160 | * @param force Whether you should not abort the winbox to close. If this is true, you MUST return false, or some problems will happen. 161 | * @return noDefaultClose - true if the winbox does not need the default close process, for example, when it needs a confirmation to close instead of being closed suddenly. 162 | */ 163 | onClose?: (force: boolean) => boolean | undefined | void, 164 | onMove?: (x: number, y: number) => any, 165 | onResize?: (width: number, height: number) => any, 166 | onBlur?: () => any, 167 | onFocus?: () => any, 168 | 169 | /** Used for themeing. The `no-xxx` classes that winbox.js already appointed can not assign here, use special props instead, e.g. class `no-resize` to prop `noResize={true}` */ 170 | className?: string | number, 171 | 172 | minWidth?: number | string, 173 | minHeight?: number | string, 174 | maxWidth?: number | string, 175 | maxHeight?: number | string, 176 | 177 | onCreate?: (options: any) => any, 178 | onFullscreen?: () => any, 179 | onMinimize?: () => any, 180 | onMaximize?: () => any, 181 | onRestore?: () => any, 182 | onHide?: () => any, 183 | onShow?: () => any, 184 | 185 | /** 186 | * an array of WinBoxControlInfo 187 | * @see https://github.com/nextapps-de/winbox#custom-controls 188 | */ 189 | customControls?: WinBoxControlInfo[], 190 | } 191 | 192 | type WinBoxControlInfo = { 193 | /** Index to jump into native controls. If no index assigned, custum controls will be arranged side-by-side automatically on the left of native controls*/ 194 | index?: number 195 | /** a name to identify the button, can also style it by using css, may starts with `wb-` */ 196 | class: string 197 | /** an image resource same like icon prop */ 198 | image: string 199 | click?: () => void, 200 | } 201 | ``` 202 | 203 | ### Methods 204 | 205 | > use React Ref to call these methods 206 | 207 | ```ts 208 | forceUpdate (callback?: () => void) => void 209 | 210 | focus () => void 211 | 212 | blur () => void 213 | 214 | getId () => string | undefined 215 | 216 | getIndex () => number | undefined 217 | 218 | getPosition () => { x: number, y: number } | undefined 219 | 220 | getSize () => { width: number, height: number } | undefined 221 | 222 | getSizeLimit () => { minWidth: number, minHeight: number, maxWidth: number, maxHeight: number } | undefined 223 | 224 | getViewportBoundary () => { top: number, right: number, bottom: number, left: number} | undefined 225 | 226 | isFocused () => boolean 227 | 228 | isHidden () => boolean 229 | 230 | isMax () => boolean 231 | 232 | isMin () => boolean 233 | 234 | isFullscreen () => boolean 235 | 236 | isClosed () => boolean // REACT ONLY. Returns true if the winbox DOM element has been removed but the React component not yet. 237 | 238 | // below methods are not suggested, as they are not state-controlled and have alternative props. 239 | minimize () => void // prop `min` 240 | maximize () => void // prop `max` 241 | fullscreen () => void // prop `fullscreen` 242 | restore () => void // prop `min`/`max`/`fullscreen` 243 | hide () => void // prop `hide` 244 | show () => void // prop `hide` 245 | ``` 246 | 247 | > Thanks for your reading. If any questions or problems, feel free to issue them. 248 | 249 | ----- 250 | 251 | # Extra Helps 252 | ## Use in Next 253 | To use `react-winbox` in Next.js, there are some special steps: 254 | 1. install `react-winbox` (must >= v1.5.0) into your project. 255 | 2. ([Source](https://github.com/RickoNoNo3/react-winbox/issues/10#issuecomment-1348653226)) install `next-transpile-modules`, and change the `next.config.js` to: 256 | ```js 257 | const withTM = require('next-transpile-modules')([ 258 | 'react-winbox', 259 | ]); 260 | module.exports = withTM({ 261 | // additional webpack configurations 262 | }); 263 | ``` 264 | 3. in `_app.js`: 265 | ```js 266 | import 'winbox/dist/css/winbox.min.css'; 267 | import 'winbox/dist/css/themes/modern.min.css'; // optional 268 | import 'winbox/dist/css/themes/white.min.css'; // optional 269 | ``` 270 | 4. in files you want to use `react-winbox`: 271 | ```jsx 272 | //import WinBox from 'react-winbox'; // do not use this, use below: 273 | import dynamic from 'next/dynamic'; 274 | const WinBox = dynamic(() => import('react-winbox'), {ssr: false}); 275 | ``` 276 | 277 | All is OK, start coding now! 278 | 279 | ## Upgrade 280 | For old versions upgrading to v1.5.x, these things deserve attention: 281 | - **All old versions have bugs in React 18+, but v1.5+ do not.** 282 | - CSS files need to be imported manually. See [example 1](#examples). 283 | - All props are camel-cased, use `onClose` instead of `onclose`. 284 | - `splitscreen` has been removed, some props and methods were added. 285 | -------------------------------------------------------------------------------- /demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RickoNoNo3/react-winbox/63fd9c345b825a6c392e4ba73873b5f2548c5097/demo.jpg -------------------------------------------------------------------------------- /dist/index.d.ts: -------------------------------------------------------------------------------- 1 | import React, { Component, ReactElement } from 'react'; 2 | import OriginalWinBox from 'winbox/src/js/winbox'; 3 | export declare type WinBoxControlInfo = { 4 | /** Index to jump into native controls. If no index assigned, custum controls will be arranged side-by-side automatically on the left of native controls*/ 5 | index?: number; 6 | /** a name to identify the button, can also style it by using css, may starts with `wb-` */ 7 | class: string; 8 | /** an image resource same like icon prop */ 9 | image: string; 10 | click?: () => void; 11 | }; 12 | export declare type WinBoxPropType = { 13 | title?: string; 14 | /** 15 | * Icon supports both native image urls and React package resources: 16 | * 17 | * Example: 18 | * ``` 19 | * import icon from './icon.jpg'; 20 | * 21 | * 22 | * ``` 23 | */ 24 | icon?: string; 25 | id?: string; 26 | children?: ReactElement | ReactElement[] | null; 27 | /** 28 | * When you use this, the children elements will be ignored. 29 | */ 30 | url?: string; 31 | noAnimation?: boolean; 32 | noShadow?: boolean; 33 | noHeader?: boolean; 34 | noMin?: boolean; 35 | noMax?: boolean; 36 | noFull?: boolean; 37 | noClose?: boolean; 38 | noResize?: boolean; 39 | noMove?: boolean; 40 | modal?: boolean; 41 | hide?: boolean; 42 | index?: number; 43 | border?: number; 44 | background?: string; 45 | /** @deprecated this does not work since v1.5.0 */ 46 | splitscreen?: boolean; 47 | max?: boolean; 48 | min?: boolean; 49 | fullscreen?: boolean; 50 | x?: string | number | 'center' | 'right'; 51 | y?: string | number | 'center' | 'bottom'; 52 | /** For dynamical changing, only supports numbers (px) */ 53 | top?: string | number; 54 | /** For dynamical changing, only supports numbers (px) */ 55 | bottom?: string | number; 56 | /** For dynamical changing, only supports numbers (px) */ 57 | left?: string | number; 58 | /** For dynamical changing, only supports numbers (px) */ 59 | right?: string | number; 60 | /** supports units "px" and "%" */ 61 | height?: string | number; 62 | /** supports units "px" and "%" */ 63 | width?: string | number; 64 | /** 65 | * This callback is called BEFORE the winbox goes to close process. So if you want to destroy the React WinBox component while it is triggered, be sure to wrap destroying actions within `setTimeout` so that they occur after the winbox.js DOM is truly closed,e.g. `setTimeout(() => setState({showWindow: false}))` 66 | * 67 | * see the following document for more detail about the argument and the return value. 68 | * @see https://github.com/nextapps-de/winbox 69 | * @param force Whether you should not abort the winbox to close. If this is true, you MUST return false, or some problems will happen. 70 | * @return noDefaultClose - true if the winbox does not need the default close process, for example, when it needs a confirmation to close instead of being closed suddenly. 71 | */ 72 | onClose?: (force: boolean) => boolean | undefined | void; 73 | onMove?: (x: number, y: number) => any; 74 | onResize?: (width: number, height: number) => any; 75 | onBlur?: () => any; 76 | onFocus?: () => any; 77 | /** @deprecated use onClose instead */ 78 | onclose?: (force: boolean) => boolean | undefined | void; 79 | /** @deprecated use onMove instead */ 80 | onmove?: (x: number, y: number) => any; 81 | /** @deprecated use onMove instead */ 82 | onresize?: (width: number, height: number) => any; 83 | /** @deprecated use onBlur instead */ 84 | onblur?: () => any; 85 | /** @deprecated use onFocus instead */ 86 | onfocus?: () => any; 87 | /** The `no-xxx` classes that winbox.js already appointed can not assign here, use special props instead, e.g. class `no-resize` to prop `noResize={true}` */ 88 | className?: string; 89 | /** @deprecated Autosize the window for content. In React, that may be impossible, but the param is retained conservatively */ 90 | autosize?: boolean; 91 | /** supports units "px" and "%". For dynamical changing, only supports numbers (px) */ 92 | minWidth?: number | string; 93 | /** supports units "px" and "%". For dynamical changing, only supports numbers (px) */ 94 | minHeight?: number | string; 95 | /** supports units "px" and "%". For dynamical changing, only supports numbers (px) */ 96 | maxWidth?: number | string; 97 | /** supports units "px" and "%". For dynamical changing, only supports numbers (px) */ 98 | maxHeight?: number | string; 99 | /** Callback triggered when the winbox element is being created */ 100 | onCreate?: (options: any) => any; 101 | onFullscreen?: () => any; 102 | onMinimize?: () => any; 103 | onMaximize?: () => any; 104 | onRestore?: () => any; 105 | onHide?: () => any; 106 | onShow?: () => any; 107 | /** 108 | * an array of WinBoxControlInfo 109 | * @see https://github.com/nextapps-de/winbox#custom-controls 110 | */ 111 | customControls?: WinBoxControlInfo[]; 112 | }; 113 | declare type WinBoxState = { 114 | closed: boolean; 115 | }; 116 | /** 117 | * # WinBox React Component 118 | * 119 | * @see https://github.com/rickonono3/react-winbox 120 | * @see https://github.com/nextapps-de/winbox 121 | */ 122 | declare class WinBox extends Component { 123 | winBoxObj?: OriginalWinBox; 124 | private cdmCount; 125 | private checkReactVersionGE18; 126 | constructor(props: any); 127 | componentDidMount(): void; 128 | componentDidUpdate(prevProps: Readonly, prevState: Readonly): void; 129 | componentWillUnmount(): void; 130 | forceUpdate(callback?: () => void): void; 131 | getId: () => string | undefined; 132 | getIndex: () => number | undefined; 133 | getPosition: () => { 134 | x: number; 135 | y: number; 136 | } | undefined; 137 | getSize: () => { 138 | width: number; 139 | height: number; 140 | } | undefined; 141 | getSizeLimit: () => { 142 | minWidth: number; 143 | minHeight: number; 144 | maxWidth: number; 145 | maxHeight: number; 146 | } | undefined; 147 | getViewportBoundary: () => { 148 | top: number; 149 | right: number; 150 | bottom: number; 151 | left: number; 152 | } | undefined; 153 | isFocused: () => boolean; 154 | isHidden: () => boolean; 155 | isMax: () => boolean; 156 | isMin: () => boolean; 157 | isFullscreen: () => boolean; 158 | isClosed: () => boolean; 159 | focus: () => void; 160 | blur: () => void; 161 | /** We suggest using `min` prop instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 162 | minimize: () => void; 163 | /** We suggest using `max` prop instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 164 | maximize: () => void; 165 | /** We suggest using `fullscreen` prop instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 166 | fullscreen: () => void; 167 | /** We suggest using `max`/`min`/`fullscreen` props instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 168 | restore: () => void; 169 | /** We suggest using `hide` props instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 170 | hide: () => void; 171 | /** We suggest using `hide` props instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 172 | show: () => void; 173 | maintainStyle: () => void; 174 | maintain: (args?: { 175 | force?: boolean | undefined; 176 | prevProps?: WinBoxPropType | undefined; 177 | } | undefined) => void; 178 | handleClose: () => void; 179 | render(): React.ReactPortal | null; 180 | } 181 | export default WinBox; 182 | -------------------------------------------------------------------------------- /dist/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __extends = (this && this.__extends) || (function () { 3 | var extendStatics = function (d, b) { 4 | extendStatics = Object.setPrototypeOf || 5 | ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 6 | function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 7 | return extendStatics(d, b); 8 | }; 9 | return function (d, b) { 10 | if (typeof b !== "function" && b !== null) 11 | throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 12 | extendStatics(d, b); 13 | function __() { this.constructor = d; } 14 | d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 15 | }; 16 | })(); 17 | var __assign = (this && this.__assign) || function () { 18 | __assign = Object.assign || function(t) { 19 | for (var s, i = 1, n = arguments.length; i < n; i++) { 20 | s = arguments[i]; 21 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) 22 | t[p] = s[p]; 23 | } 24 | return t; 25 | }; 26 | return __assign.apply(this, arguments); 27 | }; 28 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 29 | if (k2 === undefined) k2 = k; 30 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); 31 | }) : (function(o, m, k, k2) { 32 | if (k2 === undefined) k2 = k; 33 | o[k2] = m[k]; 34 | })); 35 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 36 | Object.defineProperty(o, "default", { enumerable: true, value: v }); 37 | }) : function(o, v) { 38 | o["default"] = v; 39 | }); 40 | var __importStar = (this && this.__importStar) || function (mod) { 41 | if (mod && mod.__esModule) return mod; 42 | var result = {}; 43 | if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 44 | __setModuleDefault(result, mod); 45 | return result; 46 | }; 47 | var __importDefault = (this && this.__importDefault) || function (mod) { 48 | return (mod && mod.__esModule) ? mod : { "default": mod }; 49 | }; 50 | Object.defineProperty(exports, "__esModule", { value: true }); 51 | var jsx_runtime_1 = require("react/jsx-runtime"); 52 | var react_1 = __importStar(require("react")); 53 | var winbox_1 = __importDefault(require("winbox/src/js/winbox")); 54 | var react_dom_1 = __importDefault(require("react-dom")); 55 | /** 56 | * # WinBox React Component 57 | * 58 | * @see https://github.com/rickonono3/react-winbox 59 | * @see https://github.com/nextapps-de/winbox 60 | */ 61 | var WinBox = /** @class */ (function (_super) { 62 | __extends(WinBox, _super); 63 | function WinBox(props) { 64 | var _this = _super.call(this, props) || this; 65 | _this.cdmCount = 0; 66 | _this.checkReactVersionGE18 = function () { 67 | var a = parseInt(react_1.default.version.split('.')[0]); 68 | return (a >= 18); 69 | }; 70 | _this.getId = function () { var _a; return ((_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.id); }; 71 | _this.getIndex = function () { var _a; return ((_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.index); }; 72 | _this.getPosition = function () { 73 | if (_this.winBoxObj) { 74 | return { 75 | x: _this.winBoxObj.x, 76 | y: _this.winBoxObj.y, 77 | }; 78 | } 79 | return undefined; 80 | }; 81 | _this.getSize = function () { 82 | if (_this.winBoxObj) { 83 | return { 84 | width: _this.winBoxObj.width, 85 | height: _this.winBoxObj.height, 86 | }; 87 | } 88 | return undefined; 89 | }; 90 | _this.getSizeLimit = function () { 91 | if (_this.winBoxObj) { 92 | return { 93 | minWidth: _this.winBoxObj.minwidth, 94 | minHeight: _this.winBoxObj.minheight, 95 | maxWidth: _this.winBoxObj.maxwidth, 96 | maxHeight: _this.winBoxObj.maxheight, 97 | }; 98 | } 99 | return undefined; 100 | }; 101 | _this.getViewportBoundary = function () { 102 | if (_this.winBoxObj) { 103 | return { 104 | top: _this.winBoxObj.top, 105 | right: _this.winBoxObj.right, 106 | bottom: _this.winBoxObj.bottom, 107 | left: _this.winBoxObj.left, 108 | }; 109 | } 110 | return undefined; 111 | }; 112 | _this.isFocused = function () { var _a, _b; return ((_b = (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.focused) !== null && _b !== void 0 ? _b : false); }; 113 | _this.isHidden = function () { var _a, _b; return ((_b = (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.hidden) !== null && _b !== void 0 ? _b : false); }; 114 | _this.isMax = function () { var _a, _b; return ((_b = (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.max) !== null && _b !== void 0 ? _b : false); }; 115 | _this.isMin = function () { var _a, _b; return ((_b = (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.min) !== null && _b !== void 0 ? _b : false); }; 116 | _this.isFullscreen = function () { var _a, _b; return ((_b = (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.full) !== null && _b !== void 0 ? _b : false); }; 117 | _this.isClosed = function () { return (_this.state.closed); }; 118 | _this.focus = function () { var _a; (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.focus(); }; 119 | _this.blur = function () { var _a; (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.blur(); }; 120 | /** We suggest using `min` prop instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 121 | _this.minimize = function () { var _a; (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.minimize(); }; 122 | /** We suggest using `max` prop instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 123 | _this.maximize = function () { var _a; (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.maximize(); }; 124 | /** We suggest using `fullscreen` prop instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 125 | _this.fullscreen = function () { var _a; (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.fullscreen(); }; 126 | /** We suggest using `max`/`min`/`fullscreen` props instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 127 | _this.restore = function () { var _a; (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.restore(); }; 128 | /** We suggest using `hide` props instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 129 | _this.hide = function () { var _a; (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.hide(); }; 130 | /** We suggest using `hide` props instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 131 | _this.show = function () { var _a; (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.show(); }; 132 | _this.maintainStyle = function () { 133 | if (!_this.winBoxObj) 134 | return; 135 | _this.winBoxObj[_this.props.noAnimation ? 'addClass' : 'removeClass']('no-animation'); 136 | _this.winBoxObj[_this.props.noClose ? 'addClass' : 'removeClass']('no-close'); 137 | _this.winBoxObj[_this.props.noFull ? 'addClass' : 'removeClass']('no-full'); 138 | _this.winBoxObj[_this.props.noMin ? 'addClass' : 'removeClass']('no-min'); 139 | _this.winBoxObj[_this.props.noMax ? 'addClass' : 'removeClass']('no-max'); 140 | _this.winBoxObj[_this.props.noMove ? 'addClass' : 'removeClass']('no-move'); 141 | _this.winBoxObj[_this.props.noHeader ? 'addClass' : 'removeClass']('no-header'); 142 | _this.winBoxObj[_this.props.noResize ? 'addClass' : 'removeClass']('no-resize'); 143 | _this.winBoxObj[_this.props.noShadow ? 'addClass' : 'removeClass']('no-shadow'); 144 | _this.winBoxObj[_this.props.modal ? 'addClass' : 'removeClass']('modal'); 145 | _this.winBoxObj[_this.props.hide ? 'addClass' : 'removeClass']('hide'); 146 | }; 147 | _this.maintain = function (args) { 148 | var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; 149 | if (!_this.winBoxObj) 150 | return; 151 | var _o = args !== null && args !== void 0 ? args : {}, force = _o.force, prevProps = _o.prevProps; 152 | if (force || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.title) !== _this.props.title) { 153 | if (typeof _this.props.title === 'string') 154 | _this.winBoxObj.setTitle(_this.props.title); 155 | } 156 | if (force || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.icon) !== _this.props.icon) { 157 | if (typeof _this.props.icon === 'string') 158 | _this.winBoxObj.setIcon(_this.props.icon); 159 | } 160 | if (force || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.url) !== _this.props.url) { 161 | if (_this.props.url != undefined) 162 | _this.winBoxObj.setUrl(_this.props.url); 163 | } 164 | if (force || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.background) !== _this.props.background) { 165 | if (_this.props.background != undefined) 166 | _this.winBoxObj.setBackground(_this.props.background); 167 | } 168 | if (force 169 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.minWidth) !== _this.props.minWidth 170 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.minHeight) !== _this.props.minHeight 171 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.maxWidth) !== _this.props.maxWidth 172 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.maxHeight) !== _this.props.maxHeight) { 173 | var minWidth = (_a = _this.props.minWidth) !== null && _a !== void 0 ? _a : _this.winBoxObj.minwidth; 174 | var minHeight = (_b = _this.props.minHeight) !== null && _b !== void 0 ? _b : _this.winBoxObj.minheight; 175 | var maxWidth = (_c = _this.props.maxWidth) !== null && _c !== void 0 ? _c : _this.winBoxObj.maxwidth; 176 | var maxHeight = (_d = _this.props.maxHeight) !== null && _d !== void 0 ? _d : _this.winBoxObj.maxheight; 177 | _this.winBoxObj.minwidth = minWidth; 178 | _this.winBoxObj.minheight = minHeight; 179 | _this.winBoxObj.maxwidth = maxWidth; 180 | _this.winBoxObj.maxheight = maxHeight; 181 | } 182 | if (force 183 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.width) !== _this.props.width 184 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.height) !== _this.props.height) { 185 | var width = (_e = _this.props.width) !== null && _e !== void 0 ? _e : _this.winBoxObj.width; 186 | var height = (_f = _this.props.height) !== null && _f !== void 0 ? _f : _this.winBoxObj.height; 187 | // use function params rather than assigning fields directly to avoid the 'just support numbers' feature 188 | // see https://github.com/nextapps-de/winbox#custom-position--size 189 | _this.winBoxObj.resize(width, height); 190 | } 191 | if (force 192 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.x) !== _this.props.x 193 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.y) !== _this.props.y) { 194 | var x = (_g = _this.props.x) !== null && _g !== void 0 ? _g : _this.winBoxObj.x; 195 | var y = (_h = _this.props.y) !== null && _h !== void 0 ? _h : _this.winBoxObj.y; 196 | // use function params rather than assigning fields directly to avoid the 'just support numbers' feature 197 | // see https://github.com/nextapps-de/winbox#custom-position--size 198 | _this.winBoxObj.move(x, y); 199 | } 200 | if (force 201 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.top) !== _this.props.top 202 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.right) !== _this.props.right 203 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.bottom) !== _this.props.bottom 204 | || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.left) !== _this.props.left) { 205 | _this.winBoxObj.top = (_j = _this.props.top) !== null && _j !== void 0 ? _j : _this.winBoxObj.top; 206 | _this.winBoxObj.right = (_k = _this.props.right) !== null && _k !== void 0 ? _k : _this.winBoxObj.right; 207 | _this.winBoxObj.bottom = (_l = _this.props.bottom) !== null && _l !== void 0 ? _l : _this.winBoxObj.bottom; 208 | _this.winBoxObj.left = (_m = _this.props.left) !== null && _m !== void 0 ? _m : _this.winBoxObj.left; 209 | _this.winBoxObj.move(); 210 | } 211 | if (force || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.fullscreen) !== _this.props.fullscreen) { 212 | if (_this.props.fullscreen != undefined) 213 | _this.winBoxObj.fullscreen(_this.props.fullscreen); 214 | } 215 | if (force || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.min) !== _this.props.min) { 216 | if (_this.props.min != undefined) 217 | _this.winBoxObj.minimize(_this.props.min); 218 | } 219 | if (force || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.max) !== _this.props.max) { 220 | if (_this.props.max != undefined) 221 | _this.winBoxObj.maximize(_this.props.max); 222 | } 223 | if (force || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.className) !== _this.props.className) { 224 | if ((prevProps === null || prevProps === void 0 ? void 0 : prevProps.className) != undefined) { 225 | var classes = prevProps.className.replaceAll(/\s+/g, ' ').split(' ').filter(function (c) { return c != ''; }); 226 | for (var _i = 0, classes_1 = classes; _i < classes_1.length; _i++) { 227 | var c = classes_1[_i]; 228 | if (_this.winBoxObj.hasClass(c)) { 229 | _this.winBoxObj.removeClass(c); 230 | } 231 | } 232 | } 233 | if (_this.props.className != undefined) { 234 | var classes = _this.props.className.replaceAll(/\s+/g, ' ').split(' ').filter(function (c) { return c != ''; }); 235 | for (var _p = 0, classes_2 = classes; _p < classes_2.length; _p++) { 236 | var c = classes_2[_p]; 237 | if (!_this.winBoxObj.hasClass(c)) { 238 | _this.winBoxObj.addClass(c); 239 | } 240 | } 241 | } 242 | } 243 | if (force || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.customControls) !== _this.props.customControls 244 | && !deepEqual(prevProps === null || prevProps === void 0 ? void 0 : prevProps.customControls, _this.props.customControls)) { 245 | if ((prevProps === null || prevProps === void 0 ? void 0 : prevProps.customControls) != undefined) { 246 | prevProps.customControls 247 | .filter(function (o) { return typeof o === 'object' && o.class; }) 248 | .forEach(function (o) { return _this.winBoxObj.removeControl(o.class); }); 249 | } 250 | if (_this.props.customControls != undefined) { 251 | _this.props.customControls 252 | .filter(function (o) { return typeof o === 'object' && o.class; }) 253 | .forEach(function (o) { return _this.winBoxObj.addControl(o); }); 254 | } 255 | } 256 | _this.maintainStyle(); 257 | }; 258 | _this.handleClose = function () { 259 | _this.winBoxObj = undefined; 260 | _this.setState({ closed: true }); 261 | }; 262 | _this.state = { 263 | closed: false, 264 | }; 265 | _this.winBoxObj = undefined; 266 | return _this; 267 | } 268 | WinBox.prototype.componentDidMount = function () { 269 | var _this = this; 270 | var _a, _b, _c, _d, _e, _f, _g, _h, _j; 271 | this.cdmCount++; 272 | if (this.checkReactVersionGE18()) { // strict mode safe 273 | if (this.cdmCount >= 2) 274 | return; 275 | } 276 | try { 277 | if (this.props.id !== undefined && this.props.id !== null && document.getElementById(this.props.id)) 278 | throw 'duplicated window id'; 279 | this.winBoxObj = winbox_1.default.new(__assign(__assign({ width: 300, height: 200, top: 0, bottom: 0, left: 0, right: 0, hidden: this.props.hide }, this.props), { 280 | // 👇override values 281 | minwidth: (_a = this.props.minWidth) !== null && _a !== void 0 ? _a : 150, maxwidth: (_b = this.props.maxWidth) !== null && _b !== void 0 ? _b : 2147483647, minheight: (_c = this.props.minHeight) !== null && _c !== void 0 ? _c : 35, maxheight: (_d = this.props.maxHeight) !== null && _d !== void 0 ? _d : 2147483647, max: false, min: false, fullscreen: false, class: "" + ((_e = this.props.className) !== null && _e !== void 0 ? _e : ''), onclose: function (force) { 282 | var _a, _b, _c, _d; 283 | if ((_b = (_a = _this.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a, force !== null && force !== void 0 ? force : false)) { 284 | return true; 285 | } 286 | else if ((_d = (_c = _this.props).onclose) === null || _d === void 0 ? void 0 : _d.call(_c, force !== null && force !== void 0 ? force : false)) { 287 | return true; 288 | } 289 | _this.handleClose(); // only when false, run close process. 290 | return false; 291 | }, onmove: (_f = this.props.onMove) !== null && _f !== void 0 ? _f : this.props.onmove, onresize: (_g = this.props.onResize) !== null && _g !== void 0 ? _g : this.props.onresize, onblur: (_h = this.props.onBlur) !== null && _h !== void 0 ? _h : this.props.onblur, onfocus: (_j = this.props.onFocus) !== null && _j !== void 0 ? _j : this.props.onfocus, oncreate: this.props.onCreate, onfullscreen: this.props.onFullscreen, onminimize: this.props.onMinimize, onmaximize: this.props.onMaximize, onrestore: this.props.onRestore, onhide: this.props.onHide, onshow: this.props.onShow })); 292 | setTimeout(function () { 293 | _this.forceUpdate(); 294 | }); 295 | } 296 | catch (e) { 297 | console.error(e); 298 | //this.winBoxObj?.close(true); 299 | //this.setState({ closed: true }); 300 | } 301 | }; 302 | WinBox.prototype.componentDidUpdate = function (prevProps, prevState) { 303 | this.maintain({ prevProps: prevProps }); 304 | }; 305 | WinBox.prototype.componentWillUnmount = function () { 306 | var _this = this; 307 | var _a, _b; 308 | try { 309 | if (this.checkReactVersionGE18()) { // strict mode safe (depends on the timeout of 100ms, in low performance enviroments may crash.) 310 | if (this.cdmCount <= 1) { 311 | setTimeout(function () { 312 | var _a; 313 | if (_this.cdmCount <= 1) { 314 | (_a = _this.winBoxObj) === null || _a === void 0 ? void 0 : _a.close(true); 315 | } 316 | }, 100); 317 | } 318 | else { 319 | (_a = this.winBoxObj) === null || _a === void 0 ? void 0 : _a.close(true); 320 | } 321 | } 322 | else { // less than 18, keep old code 323 | (_b = this.winBoxObj) === null || _b === void 0 ? void 0 : _b.close(true); 324 | } 325 | } 326 | catch (ignored) { } 327 | }; 328 | WinBox.prototype.forceUpdate = function (callback) { 329 | try { 330 | this.maintain({ force: true }); 331 | } 332 | catch (e) { 333 | console.error(e); 334 | //this.winBoxObj?.close(true); 335 | //this.setState({ closed: true }); 336 | } 337 | _super.prototype.forceUpdate.call(this, callback); 338 | }; 339 | WinBox.prototype.render = function () { 340 | if (Object.keys(this.props).indexOf('url') !== -1 && this.props.url) 341 | return null; // do nothing if url is set. 342 | if (!this.winBoxObj || !this.winBoxObj.body) 343 | return null; 344 | return react_dom_1.default.createPortal(jsx_runtime_1.jsx(jsx_runtime_1.Fragment, { children: this.props.children }, void 0), this.winBoxObj.body); 345 | }; 346 | return WinBox; 347 | }(react_1.Component)); 348 | exports.default = WinBox; 349 | function deepEqual(x, y) { 350 | var ok = Object.keys, tx = typeof x, ty = typeof y; 351 | return x && y && tx === 'object' && tx === ty ? (ok(x).length === ok(y).length && 352 | ok(x).every(function (key) { return deepEqual(x[key], y[key]); })) : (x === y); 353 | } 354 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-winbox", 3 | "version": "1.5.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "react-winbox", 9 | "version": "1.5.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "winbox": "=0.2.6" 13 | }, 14 | "devDependencies": { 15 | "@types/react": "^18.0.9", 16 | "@types/react-dom": "^18.0.4", 17 | "@typescript-eslint/eslint-plugin": "^5.19.0", 18 | "@typescript-eslint/parser": "^5.19.0", 19 | "eslint-plugin-react": "^7.29.4", 20 | "typescript": "^4.6.3" 21 | }, 22 | "peerDependencies": { 23 | "react": ">=16.14.0", 24 | "react-dom": ">=16.14.0" 25 | } 26 | }, 27 | "node_modules/@nodelib/fs.scandir": { 28 | "version": "2.1.5", 29 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 30 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 31 | "dev": true, 32 | "license": "MIT", 33 | "dependencies": { 34 | "@nodelib/fs.stat": "2.0.5", 35 | "run-parallel": "^1.1.9" 36 | }, 37 | "engines": { 38 | "node": ">= 8" 39 | } 40 | }, 41 | "node_modules/@nodelib/fs.stat": { 42 | "version": "2.0.5", 43 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 44 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 45 | "dev": true, 46 | "license": "MIT", 47 | "engines": { 48 | "node": ">= 8" 49 | } 50 | }, 51 | "node_modules/@nodelib/fs.walk": { 52 | "version": "1.2.8", 53 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 54 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 55 | "dev": true, 56 | "license": "MIT", 57 | "dependencies": { 58 | "@nodelib/fs.scandir": "2.1.5", 59 | "fastq": "^1.6.0" 60 | }, 61 | "engines": { 62 | "node": ">= 8" 63 | } 64 | }, 65 | "node_modules/@types/json-schema": { 66 | "version": "7.0.11", 67 | "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz", 68 | "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", 69 | "dev": true, 70 | "license": "MIT" 71 | }, 72 | "node_modules/@types/prop-types": { 73 | "version": "15.7.5", 74 | "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz", 75 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 76 | "dev": true, 77 | "license": "MIT" 78 | }, 79 | "node_modules/@types/react": { 80 | "version": "18.0.9", 81 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz", 82 | "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==", 83 | "dev": true, 84 | "license": "MIT", 85 | "dependencies": { 86 | "@types/prop-types": "*", 87 | "@types/scheduler": "*", 88 | "csstype": "^3.0.2" 89 | } 90 | }, 91 | "node_modules/@types/react-dom": { 92 | "version": "18.0.4", 93 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.4.tgz", 94 | "integrity": "sha512-FgTtbqPOCI3dzZPZoC2T/sx3L34qxy99ITWn4eoSA95qPyXDMH0ALoAqUp49ITniiJFsXUVBtalh/KffMpg21Q==", 95 | "dev": true, 96 | "license": "MIT", 97 | "dependencies": { 98 | "@types/react": "*" 99 | } 100 | }, 101 | "node_modules/@types/scheduler": { 102 | "version": "0.16.2", 103 | "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz", 104 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 105 | "dev": true, 106 | "license": "MIT" 107 | }, 108 | "node_modules/@typescript-eslint/eslint-plugin": { 109 | "version": "5.19.0", 110 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz", 111 | "integrity": "sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==", 112 | "dev": true, 113 | "license": "MIT", 114 | "dependencies": { 115 | "@typescript-eslint/scope-manager": "5.19.0", 116 | "@typescript-eslint/type-utils": "5.19.0", 117 | "@typescript-eslint/utils": "5.19.0", 118 | "debug": "^4.3.2", 119 | "functional-red-black-tree": "^1.0.1", 120 | "ignore": "^5.1.8", 121 | "regexpp": "^3.2.0", 122 | "semver": "^7.3.5", 123 | "tsutils": "^3.21.0" 124 | }, 125 | "engines": { 126 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 127 | }, 128 | "funding": { 129 | "type": "opencollective", 130 | "url": "https://opencollective.com/typescript-eslint" 131 | }, 132 | "peerDependencies": { 133 | "@typescript-eslint/parser": "^5.0.0", 134 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 135 | }, 136 | "peerDependenciesMeta": { 137 | "typescript": { 138 | "optional": true 139 | } 140 | } 141 | }, 142 | "node_modules/@typescript-eslint/parser": { 143 | "version": "5.19.0", 144 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.19.0.tgz", 145 | "integrity": "sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==", 146 | "dev": true, 147 | "license": "BSD-2-Clause", 148 | "dependencies": { 149 | "@typescript-eslint/scope-manager": "5.19.0", 150 | "@typescript-eslint/types": "5.19.0", 151 | "@typescript-eslint/typescript-estree": "5.19.0", 152 | "debug": "^4.3.2" 153 | }, 154 | "engines": { 155 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 156 | }, 157 | "funding": { 158 | "type": "opencollective", 159 | "url": "https://opencollective.com/typescript-eslint" 160 | }, 161 | "peerDependencies": { 162 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 163 | }, 164 | "peerDependenciesMeta": { 165 | "typescript": { 166 | "optional": true 167 | } 168 | } 169 | }, 170 | "node_modules/@typescript-eslint/scope-manager": { 171 | "version": "5.19.0", 172 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", 173 | "integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==", 174 | "dev": true, 175 | "license": "MIT", 176 | "dependencies": { 177 | "@typescript-eslint/types": "5.19.0", 178 | "@typescript-eslint/visitor-keys": "5.19.0" 179 | }, 180 | "engines": { 181 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 182 | }, 183 | "funding": { 184 | "type": "opencollective", 185 | "url": "https://opencollective.com/typescript-eslint" 186 | } 187 | }, 188 | "node_modules/@typescript-eslint/type-utils": { 189 | "version": "5.19.0", 190 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz", 191 | "integrity": "sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==", 192 | "dev": true, 193 | "license": "MIT", 194 | "dependencies": { 195 | "@typescript-eslint/utils": "5.19.0", 196 | "debug": "^4.3.2", 197 | "tsutils": "^3.21.0" 198 | }, 199 | "engines": { 200 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 201 | }, 202 | "funding": { 203 | "type": "opencollective", 204 | "url": "https://opencollective.com/typescript-eslint" 205 | }, 206 | "peerDependencies": { 207 | "eslint": "*" 208 | }, 209 | "peerDependenciesMeta": { 210 | "typescript": { 211 | "optional": true 212 | } 213 | } 214 | }, 215 | "node_modules/@typescript-eslint/types": { 216 | "version": "5.19.0", 217 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.19.0.tgz", 218 | "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", 219 | "dev": true, 220 | "license": "MIT", 221 | "engines": { 222 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 223 | }, 224 | "funding": { 225 | "type": "opencollective", 226 | "url": "https://opencollective.com/typescript-eslint" 227 | } 228 | }, 229 | "node_modules/@typescript-eslint/typescript-estree": { 230 | "version": "5.19.0", 231 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", 232 | "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", 233 | "dev": true, 234 | "license": "BSD-2-Clause", 235 | "dependencies": { 236 | "@typescript-eslint/types": "5.19.0", 237 | "@typescript-eslint/visitor-keys": "5.19.0", 238 | "debug": "^4.3.2", 239 | "globby": "^11.0.4", 240 | "is-glob": "^4.0.3", 241 | "semver": "^7.3.5", 242 | "tsutils": "^3.21.0" 243 | }, 244 | "engines": { 245 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 246 | }, 247 | "funding": { 248 | "type": "opencollective", 249 | "url": "https://opencollective.com/typescript-eslint" 250 | }, 251 | "peerDependenciesMeta": { 252 | "typescript": { 253 | "optional": true 254 | } 255 | } 256 | }, 257 | "node_modules/@typescript-eslint/utils": { 258 | "version": "5.19.0", 259 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.19.0.tgz", 260 | "integrity": "sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==", 261 | "dev": true, 262 | "license": "MIT", 263 | "dependencies": { 264 | "@types/json-schema": "^7.0.9", 265 | "@typescript-eslint/scope-manager": "5.19.0", 266 | "@typescript-eslint/types": "5.19.0", 267 | "@typescript-eslint/typescript-estree": "5.19.0", 268 | "eslint-scope": "^5.1.1", 269 | "eslint-utils": "^3.0.0" 270 | }, 271 | "engines": { 272 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 273 | }, 274 | "funding": { 275 | "type": "opencollective", 276 | "url": "https://opencollective.com/typescript-eslint" 277 | }, 278 | "peerDependencies": { 279 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 280 | } 281 | }, 282 | "node_modules/@typescript-eslint/visitor-keys": { 283 | "version": "5.19.0", 284 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", 285 | "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", 286 | "dev": true, 287 | "license": "MIT", 288 | "dependencies": { 289 | "@typescript-eslint/types": "5.19.0", 290 | "eslint-visitor-keys": "^3.0.0" 291 | }, 292 | "engines": { 293 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 294 | }, 295 | "funding": { 296 | "type": "opencollective", 297 | "url": "https://opencollective.com/typescript-eslint" 298 | } 299 | }, 300 | "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { 301 | "version": "3.3.0", 302 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 303 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 304 | "dev": true, 305 | "license": "Apache-2.0", 306 | "engines": { 307 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 308 | } 309 | }, 310 | "node_modules/array-includes": { 311 | "version": "3.1.4", 312 | "resolved": "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.4.tgz", 313 | "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", 314 | "dev": true, 315 | "license": "MIT", 316 | "dependencies": { 317 | "call-bind": "^1.0.2", 318 | "define-properties": "^1.1.3", 319 | "es-abstract": "^1.19.1", 320 | "get-intrinsic": "^1.1.1", 321 | "is-string": "^1.0.7" 322 | }, 323 | "engines": { 324 | "node": ">= 0.4" 325 | }, 326 | "funding": { 327 | "url": "https://github.com/sponsors/ljharb" 328 | } 329 | }, 330 | "node_modules/array-union": { 331 | "version": "2.1.0", 332 | "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", 333 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 334 | "dev": true, 335 | "license": "MIT", 336 | "engines": { 337 | "node": ">=8" 338 | } 339 | }, 340 | "node_modules/array.prototype.flatmap": { 341 | "version": "1.3.0", 342 | "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", 343 | "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", 344 | "dev": true, 345 | "license": "MIT", 346 | "dependencies": { 347 | "call-bind": "^1.0.2", 348 | "define-properties": "^1.1.3", 349 | "es-abstract": "^1.19.2", 350 | "es-shim-unscopables": "^1.0.0" 351 | }, 352 | "engines": { 353 | "node": ">= 0.4" 354 | }, 355 | "funding": { 356 | "url": "https://github.com/sponsors/ljharb" 357 | } 358 | }, 359 | "node_modules/balanced-match": { 360 | "version": "1.0.2", 361 | "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", 362 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 363 | "dev": true, 364 | "license": "MIT" 365 | }, 366 | "node_modules/brace-expansion": { 367 | "version": "1.1.11", 368 | "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", 369 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 370 | "dev": true, 371 | "license": "MIT", 372 | "dependencies": { 373 | "balanced-match": "^1.0.0", 374 | "concat-map": "0.0.1" 375 | } 376 | }, 377 | "node_modules/braces": { 378 | "version": "3.0.2", 379 | "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", 380 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 381 | "dev": true, 382 | "license": "MIT", 383 | "dependencies": { 384 | "fill-range": "^7.0.1" 385 | }, 386 | "engines": { 387 | "node": ">=8" 388 | } 389 | }, 390 | "node_modules/call-bind": { 391 | "version": "1.0.2", 392 | "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", 393 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 394 | "dev": true, 395 | "license": "MIT", 396 | "dependencies": { 397 | "function-bind": "^1.1.1", 398 | "get-intrinsic": "^1.0.2" 399 | }, 400 | "funding": { 401 | "url": "https://github.com/sponsors/ljharb" 402 | } 403 | }, 404 | "node_modules/concat-map": { 405 | "version": "0.0.1", 406 | "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", 407 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 408 | "dev": true, 409 | "license": "MIT" 410 | }, 411 | "node_modules/csstype": { 412 | "version": "3.0.11", 413 | "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz", 414 | "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", 415 | "dev": true, 416 | "license": "MIT" 417 | }, 418 | "node_modules/debug": { 419 | "version": "4.3.4", 420 | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", 421 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 422 | "dev": true, 423 | "license": "MIT", 424 | "dependencies": { 425 | "ms": "2.1.2" 426 | }, 427 | "engines": { 428 | "node": ">=6.0" 429 | }, 430 | "peerDependenciesMeta": { 431 | "supports-color": { 432 | "optional": true 433 | } 434 | } 435 | }, 436 | "node_modules/define-properties": { 437 | "version": "1.1.4", 438 | "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.4.tgz", 439 | "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", 440 | "dev": true, 441 | "license": "MIT", 442 | "dependencies": { 443 | "has-property-descriptors": "^1.0.0", 444 | "object-keys": "^1.1.1" 445 | }, 446 | "engines": { 447 | "node": ">= 0.4" 448 | }, 449 | "funding": { 450 | "url": "https://github.com/sponsors/ljharb" 451 | } 452 | }, 453 | "node_modules/dir-glob": { 454 | "version": "3.0.1", 455 | "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", 456 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 457 | "dev": true, 458 | "license": "MIT", 459 | "dependencies": { 460 | "path-type": "^4.0.0" 461 | }, 462 | "engines": { 463 | "node": ">=8" 464 | } 465 | }, 466 | "node_modules/doctrine": { 467 | "version": "2.1.0", 468 | "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz", 469 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 470 | "dev": true, 471 | "license": "Apache-2.0", 472 | "dependencies": { 473 | "esutils": "^2.0.2" 474 | }, 475 | "engines": { 476 | "node": ">=0.10.0" 477 | } 478 | }, 479 | "node_modules/es-abstract": { 480 | "version": "1.19.5", 481 | "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.19.5.tgz", 482 | "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", 483 | "dev": true, 484 | "license": "MIT", 485 | "dependencies": { 486 | "call-bind": "^1.0.2", 487 | "es-to-primitive": "^1.2.1", 488 | "function-bind": "^1.1.1", 489 | "get-intrinsic": "^1.1.1", 490 | "get-symbol-description": "^1.0.0", 491 | "has": "^1.0.3", 492 | "has-symbols": "^1.0.3", 493 | "internal-slot": "^1.0.3", 494 | "is-callable": "^1.2.4", 495 | "is-negative-zero": "^2.0.2", 496 | "is-regex": "^1.1.4", 497 | "is-shared-array-buffer": "^1.0.2", 498 | "is-string": "^1.0.7", 499 | "is-weakref": "^1.0.2", 500 | "object-inspect": "^1.12.0", 501 | "object-keys": "^1.1.1", 502 | "object.assign": "^4.1.2", 503 | "string.prototype.trimend": "^1.0.4", 504 | "string.prototype.trimstart": "^1.0.4", 505 | "unbox-primitive": "^1.0.1" 506 | }, 507 | "engines": { 508 | "node": ">= 0.4" 509 | }, 510 | "funding": { 511 | "url": "https://github.com/sponsors/ljharb" 512 | } 513 | }, 514 | "node_modules/es-shim-unscopables": { 515 | "version": "1.0.0", 516 | "resolved": "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", 517 | "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", 518 | "dev": true, 519 | "license": "MIT", 520 | "dependencies": { 521 | "has": "^1.0.3" 522 | } 523 | }, 524 | "node_modules/es-to-primitive": { 525 | "version": "1.2.1", 526 | "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 527 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 528 | "dev": true, 529 | "license": "MIT", 530 | "dependencies": { 531 | "is-callable": "^1.1.4", 532 | "is-date-object": "^1.0.1", 533 | "is-symbol": "^1.0.2" 534 | }, 535 | "engines": { 536 | "node": ">= 0.4" 537 | }, 538 | "funding": { 539 | "url": "https://github.com/sponsors/ljharb" 540 | } 541 | }, 542 | "node_modules/eslint-plugin-react": { 543 | "version": "7.29.4", 544 | "resolved": "https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", 545 | "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", 546 | "dev": true, 547 | "license": "MIT", 548 | "dependencies": { 549 | "array-includes": "^3.1.4", 550 | "array.prototype.flatmap": "^1.2.5", 551 | "doctrine": "^2.1.0", 552 | "estraverse": "^5.3.0", 553 | "jsx-ast-utils": "^2.4.1 || ^3.0.0", 554 | "minimatch": "^3.1.2", 555 | "object.entries": "^1.1.5", 556 | "object.fromentries": "^2.0.5", 557 | "object.hasown": "^1.1.0", 558 | "object.values": "^1.1.5", 559 | "prop-types": "^15.8.1", 560 | "resolve": "^2.0.0-next.3", 561 | "semver": "^6.3.0", 562 | "string.prototype.matchall": "^4.0.6" 563 | }, 564 | "engines": { 565 | "node": ">=4" 566 | }, 567 | "peerDependencies": { 568 | "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" 569 | } 570 | }, 571 | "node_modules/eslint-plugin-react/node_modules/semver": { 572 | "version": "6.3.0", 573 | "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", 574 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 575 | "dev": true, 576 | "license": "ISC", 577 | "bin": { 578 | "semver": "bin/semver.js" 579 | } 580 | }, 581 | "node_modules/eslint-scope": { 582 | "version": "5.1.1", 583 | "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", 584 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 585 | "dev": true, 586 | "license": "BSD-2-Clause", 587 | "dependencies": { 588 | "esrecurse": "^4.3.0", 589 | "estraverse": "^4.1.1" 590 | }, 591 | "engines": { 592 | "node": ">=8.0.0" 593 | } 594 | }, 595 | "node_modules/eslint-scope/node_modules/estraverse": { 596 | "version": "4.3.0", 597 | "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", 598 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 599 | "dev": true, 600 | "license": "BSD-2-Clause", 601 | "engines": { 602 | "node": ">=4.0" 603 | } 604 | }, 605 | "node_modules/eslint-utils": { 606 | "version": "3.0.0", 607 | "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz", 608 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 609 | "dev": true, 610 | "license": "MIT", 611 | "dependencies": { 612 | "eslint-visitor-keys": "^2.0.0" 613 | }, 614 | "engines": { 615 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" 616 | }, 617 | "funding": { 618 | "url": "https://github.com/sponsors/mysticatea" 619 | }, 620 | "peerDependencies": { 621 | "eslint": ">=5" 622 | } 623 | }, 624 | "node_modules/eslint-visitor-keys": { 625 | "version": "2.1.0", 626 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 627 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 628 | "dev": true, 629 | "license": "Apache-2.0", 630 | "engines": { 631 | "node": ">=10" 632 | } 633 | }, 634 | "node_modules/esrecurse": { 635 | "version": "4.3.0", 636 | "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", 637 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 638 | "dev": true, 639 | "license": "BSD-2-Clause", 640 | "dependencies": { 641 | "estraverse": "^5.2.0" 642 | }, 643 | "engines": { 644 | "node": ">=4.0" 645 | } 646 | }, 647 | "node_modules/estraverse": { 648 | "version": "5.3.0", 649 | "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", 650 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 651 | "dev": true, 652 | "license": "BSD-2-Clause", 653 | "engines": { 654 | "node": ">=4.0" 655 | } 656 | }, 657 | "node_modules/esutils": { 658 | "version": "2.0.3", 659 | "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", 660 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 661 | "dev": true, 662 | "license": "BSD-2-Clause", 663 | "engines": { 664 | "node": ">=0.10.0" 665 | } 666 | }, 667 | "node_modules/fast-glob": { 668 | "version": "3.2.11", 669 | "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz", 670 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 671 | "dev": true, 672 | "license": "MIT", 673 | "dependencies": { 674 | "@nodelib/fs.stat": "^2.0.2", 675 | "@nodelib/fs.walk": "^1.2.3", 676 | "glob-parent": "^5.1.2", 677 | "merge2": "^1.3.0", 678 | "micromatch": "^4.0.4" 679 | }, 680 | "engines": { 681 | "node": ">=8.6.0" 682 | } 683 | }, 684 | "node_modules/fastq": { 685 | "version": "1.13.0", 686 | "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", 687 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 688 | "dev": true, 689 | "license": "ISC", 690 | "dependencies": { 691 | "reusify": "^1.0.4" 692 | } 693 | }, 694 | "node_modules/fill-range": { 695 | "version": "7.0.1", 696 | "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", 697 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 698 | "dev": true, 699 | "license": "MIT", 700 | "dependencies": { 701 | "to-regex-range": "^5.0.1" 702 | }, 703 | "engines": { 704 | "node": ">=8" 705 | } 706 | }, 707 | "node_modules/function-bind": { 708 | "version": "1.1.1", 709 | "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", 710 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 711 | "dev": true, 712 | "license": "MIT" 713 | }, 714 | "node_modules/functional-red-black-tree": { 715 | "version": "1.0.1", 716 | "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 717 | "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", 718 | "dev": true, 719 | "license": "MIT" 720 | }, 721 | "node_modules/functions-have-names": { 722 | "version": "1.2.2", 723 | "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.2.tgz", 724 | "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", 725 | "dev": true, 726 | "license": "MIT", 727 | "funding": { 728 | "url": "https://github.com/sponsors/ljharb" 729 | } 730 | }, 731 | "node_modules/get-intrinsic": { 732 | "version": "1.1.1", 733 | "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 734 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 735 | "dev": true, 736 | "license": "MIT", 737 | "dependencies": { 738 | "function-bind": "^1.1.1", 739 | "has": "^1.0.3", 740 | "has-symbols": "^1.0.1" 741 | }, 742 | "funding": { 743 | "url": "https://github.com/sponsors/ljharb" 744 | } 745 | }, 746 | "node_modules/get-symbol-description": { 747 | "version": "1.0.0", 748 | "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz", 749 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", 750 | "dev": true, 751 | "license": "MIT", 752 | "dependencies": { 753 | "call-bind": "^1.0.2", 754 | "get-intrinsic": "^1.1.1" 755 | }, 756 | "engines": { 757 | "node": ">= 0.4" 758 | }, 759 | "funding": { 760 | "url": "https://github.com/sponsors/ljharb" 761 | } 762 | }, 763 | "node_modules/glob-parent": { 764 | "version": "5.1.2", 765 | "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", 766 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 767 | "dev": true, 768 | "license": "ISC", 769 | "dependencies": { 770 | "is-glob": "^4.0.1" 771 | }, 772 | "engines": { 773 | "node": ">= 6" 774 | } 775 | }, 776 | "node_modules/globby": { 777 | "version": "11.1.0", 778 | "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", 779 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 780 | "dev": true, 781 | "license": "MIT", 782 | "dependencies": { 783 | "array-union": "^2.1.0", 784 | "dir-glob": "^3.0.1", 785 | "fast-glob": "^3.2.9", 786 | "ignore": "^5.2.0", 787 | "merge2": "^1.4.1", 788 | "slash": "^3.0.0" 789 | }, 790 | "engines": { 791 | "node": ">=10" 792 | }, 793 | "funding": { 794 | "url": "https://github.com/sponsors/sindresorhus" 795 | } 796 | }, 797 | "node_modules/has": { 798 | "version": "1.0.3", 799 | "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", 800 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 801 | "dev": true, 802 | "license": "MIT", 803 | "dependencies": { 804 | "function-bind": "^1.1.1" 805 | }, 806 | "engines": { 807 | "node": ">= 0.4.0" 808 | } 809 | }, 810 | "node_modules/has-bigints": { 811 | "version": "1.0.1", 812 | "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.1.tgz", 813 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", 814 | "dev": true, 815 | "license": "MIT", 816 | "funding": { 817 | "url": "https://github.com/sponsors/ljharb" 818 | } 819 | }, 820 | "node_modules/has-property-descriptors": { 821 | "version": "1.0.0", 822 | "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", 823 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", 824 | "dev": true, 825 | "license": "MIT", 826 | "dependencies": { 827 | "get-intrinsic": "^1.1.1" 828 | }, 829 | "funding": { 830 | "url": "https://github.com/sponsors/ljharb" 831 | } 832 | }, 833 | "node_modules/has-symbols": { 834 | "version": "1.0.3", 835 | "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", 836 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 837 | "dev": true, 838 | "license": "MIT", 839 | "engines": { 840 | "node": ">= 0.4" 841 | }, 842 | "funding": { 843 | "url": "https://github.com/sponsors/ljharb" 844 | } 845 | }, 846 | "node_modules/has-tostringtag": { 847 | "version": "1.0.0", 848 | "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 849 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 850 | "dev": true, 851 | "license": "MIT", 852 | "dependencies": { 853 | "has-symbols": "^1.0.2" 854 | }, 855 | "engines": { 856 | "node": ">= 0.4" 857 | }, 858 | "funding": { 859 | "url": "https://github.com/sponsors/ljharb" 860 | } 861 | }, 862 | "node_modules/ignore": { 863 | "version": "5.2.0", 864 | "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz", 865 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 866 | "dev": true, 867 | "license": "MIT", 868 | "engines": { 869 | "node": ">= 4" 870 | } 871 | }, 872 | "node_modules/internal-slot": { 873 | "version": "1.0.3", 874 | "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.3.tgz", 875 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", 876 | "dev": true, 877 | "license": "MIT", 878 | "dependencies": { 879 | "get-intrinsic": "^1.1.0", 880 | "has": "^1.0.3", 881 | "side-channel": "^1.0.4" 882 | }, 883 | "engines": { 884 | "node": ">= 0.4" 885 | } 886 | }, 887 | "node_modules/is-bigint": { 888 | "version": "1.0.4", 889 | "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz", 890 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 891 | "dev": true, 892 | "license": "MIT", 893 | "dependencies": { 894 | "has-bigints": "^1.0.1" 895 | }, 896 | "funding": { 897 | "url": "https://github.com/sponsors/ljharb" 898 | } 899 | }, 900 | "node_modules/is-boolean-object": { 901 | "version": "1.1.2", 902 | "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 903 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 904 | "dev": true, 905 | "license": "MIT", 906 | "dependencies": { 907 | "call-bind": "^1.0.2", 908 | "has-tostringtag": "^1.0.0" 909 | }, 910 | "engines": { 911 | "node": ">= 0.4" 912 | }, 913 | "funding": { 914 | "url": "https://github.com/sponsors/ljharb" 915 | } 916 | }, 917 | "node_modules/is-callable": { 918 | "version": "1.2.4", 919 | "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.4.tgz", 920 | "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", 921 | "dev": true, 922 | "license": "MIT", 923 | "engines": { 924 | "node": ">= 0.4" 925 | }, 926 | "funding": { 927 | "url": "https://github.com/sponsors/ljharb" 928 | } 929 | }, 930 | "node_modules/is-core-module": { 931 | "version": "2.8.1", 932 | "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz", 933 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 934 | "dev": true, 935 | "license": "MIT", 936 | "dependencies": { 937 | "has": "^1.0.3" 938 | }, 939 | "funding": { 940 | "url": "https://github.com/sponsors/ljharb" 941 | } 942 | }, 943 | "node_modules/is-date-object": { 944 | "version": "1.0.5", 945 | "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz", 946 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 947 | "dev": true, 948 | "license": "MIT", 949 | "dependencies": { 950 | "has-tostringtag": "^1.0.0" 951 | }, 952 | "engines": { 953 | "node": ">= 0.4" 954 | }, 955 | "funding": { 956 | "url": "https://github.com/sponsors/ljharb" 957 | } 958 | }, 959 | "node_modules/is-extglob": { 960 | "version": "2.1.1", 961 | "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", 962 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 963 | "dev": true, 964 | "license": "MIT", 965 | "engines": { 966 | "node": ">=0.10.0" 967 | } 968 | }, 969 | "node_modules/is-glob": { 970 | "version": "4.0.3", 971 | "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", 972 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 973 | "dev": true, 974 | "license": "MIT", 975 | "dependencies": { 976 | "is-extglob": "^2.1.1" 977 | }, 978 | "engines": { 979 | "node": ">=0.10.0" 980 | } 981 | }, 982 | "node_modules/is-negative-zero": { 983 | "version": "2.0.2", 984 | "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz", 985 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", 986 | "dev": true, 987 | "license": "MIT", 988 | "engines": { 989 | "node": ">= 0.4" 990 | }, 991 | "funding": { 992 | "url": "https://github.com/sponsors/ljharb" 993 | } 994 | }, 995 | "node_modules/is-number": { 996 | "version": "7.0.0", 997 | "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", 998 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 999 | "dev": true, 1000 | "license": "MIT", 1001 | "engines": { 1002 | "node": ">=0.12.0" 1003 | } 1004 | }, 1005 | "node_modules/is-number-object": { 1006 | "version": "1.0.7", 1007 | "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz", 1008 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 1009 | "dev": true, 1010 | "license": "MIT", 1011 | "dependencies": { 1012 | "has-tostringtag": "^1.0.0" 1013 | }, 1014 | "engines": { 1015 | "node": ">= 0.4" 1016 | }, 1017 | "funding": { 1018 | "url": "https://github.com/sponsors/ljharb" 1019 | } 1020 | }, 1021 | "node_modules/is-regex": { 1022 | "version": "1.1.4", 1023 | "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz", 1024 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 1025 | "dev": true, 1026 | "license": "MIT", 1027 | "dependencies": { 1028 | "call-bind": "^1.0.2", 1029 | "has-tostringtag": "^1.0.0" 1030 | }, 1031 | "engines": { 1032 | "node": ">= 0.4" 1033 | }, 1034 | "funding": { 1035 | "url": "https://github.com/sponsors/ljharb" 1036 | } 1037 | }, 1038 | "node_modules/is-shared-array-buffer": { 1039 | "version": "1.0.2", 1040 | "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", 1041 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", 1042 | "dev": true, 1043 | "license": "MIT", 1044 | "dependencies": { 1045 | "call-bind": "^1.0.2" 1046 | }, 1047 | "funding": { 1048 | "url": "https://github.com/sponsors/ljharb" 1049 | } 1050 | }, 1051 | "node_modules/is-string": { 1052 | "version": "1.0.7", 1053 | "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz", 1054 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 1055 | "dev": true, 1056 | "license": "MIT", 1057 | "dependencies": { 1058 | "has-tostringtag": "^1.0.0" 1059 | }, 1060 | "engines": { 1061 | "node": ">= 0.4" 1062 | }, 1063 | "funding": { 1064 | "url": "https://github.com/sponsors/ljharb" 1065 | } 1066 | }, 1067 | "node_modules/is-symbol": { 1068 | "version": "1.0.4", 1069 | "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz", 1070 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 1071 | "dev": true, 1072 | "license": "MIT", 1073 | "dependencies": { 1074 | "has-symbols": "^1.0.2" 1075 | }, 1076 | "engines": { 1077 | "node": ">= 0.4" 1078 | }, 1079 | "funding": { 1080 | "url": "https://github.com/sponsors/ljharb" 1081 | } 1082 | }, 1083 | "node_modules/is-weakref": { 1084 | "version": "1.0.2", 1085 | "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz", 1086 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 1087 | "dev": true, 1088 | "license": "MIT", 1089 | "dependencies": { 1090 | "call-bind": "^1.0.2" 1091 | }, 1092 | "funding": { 1093 | "url": "https://github.com/sponsors/ljharb" 1094 | } 1095 | }, 1096 | "node_modules/js-tokens": { 1097 | "version": "4.0.0", 1098 | "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", 1099 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1100 | "license": "MIT" 1101 | }, 1102 | "node_modules/jsx-ast-utils": { 1103 | "version": "3.2.2", 1104 | "resolved": "https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", 1105 | "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", 1106 | "dev": true, 1107 | "license": "MIT", 1108 | "dependencies": { 1109 | "array-includes": "^3.1.4", 1110 | "object.assign": "^4.1.2" 1111 | }, 1112 | "engines": { 1113 | "node": ">=4.0" 1114 | } 1115 | }, 1116 | "node_modules/loose-envify": { 1117 | "version": "1.4.0", 1118 | "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", 1119 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1120 | "license": "MIT", 1121 | "dependencies": { 1122 | "js-tokens": "^3.0.0 || ^4.0.0" 1123 | }, 1124 | "bin": { 1125 | "loose-envify": "cli.js" 1126 | } 1127 | }, 1128 | "node_modules/lru-cache": { 1129 | "version": "6.0.0", 1130 | "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", 1131 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1132 | "dev": true, 1133 | "license": "ISC", 1134 | "dependencies": { 1135 | "yallist": "^4.0.0" 1136 | }, 1137 | "engines": { 1138 | "node": ">=10" 1139 | } 1140 | }, 1141 | "node_modules/merge2": { 1142 | "version": "1.4.1", 1143 | "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", 1144 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1145 | "dev": true, 1146 | "license": "MIT", 1147 | "engines": { 1148 | "node": ">= 8" 1149 | } 1150 | }, 1151 | "node_modules/micromatch": { 1152 | "version": "4.0.5", 1153 | "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", 1154 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 1155 | "dev": true, 1156 | "license": "MIT", 1157 | "dependencies": { 1158 | "braces": "^3.0.2", 1159 | "picomatch": "^2.3.1" 1160 | }, 1161 | "engines": { 1162 | "node": ">=8.6" 1163 | } 1164 | }, 1165 | "node_modules/minimatch": { 1166 | "version": "3.1.2", 1167 | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", 1168 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1169 | "dev": true, 1170 | "license": "ISC", 1171 | "dependencies": { 1172 | "brace-expansion": "^1.1.7" 1173 | }, 1174 | "engines": { 1175 | "node": "*" 1176 | } 1177 | }, 1178 | "node_modules/ms": { 1179 | "version": "2.1.2", 1180 | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", 1181 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1182 | "dev": true, 1183 | "license": "MIT" 1184 | }, 1185 | "node_modules/object-assign": { 1186 | "version": "4.1.1", 1187 | "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", 1188 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1189 | "dev": true, 1190 | "license": "MIT", 1191 | "engines": { 1192 | "node": ">=0.10.0" 1193 | } 1194 | }, 1195 | "node_modules/object-inspect": { 1196 | "version": "1.12.0", 1197 | "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz", 1198 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", 1199 | "dev": true, 1200 | "license": "MIT", 1201 | "funding": { 1202 | "url": "https://github.com/sponsors/ljharb" 1203 | } 1204 | }, 1205 | "node_modules/object-keys": { 1206 | "version": "1.1.1", 1207 | "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", 1208 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1209 | "dev": true, 1210 | "license": "MIT", 1211 | "engines": { 1212 | "node": ">= 0.4" 1213 | } 1214 | }, 1215 | "node_modules/object.assign": { 1216 | "version": "4.1.2", 1217 | "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.2.tgz", 1218 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 1219 | "dev": true, 1220 | "license": "MIT", 1221 | "dependencies": { 1222 | "call-bind": "^1.0.0", 1223 | "define-properties": "^1.1.3", 1224 | "has-symbols": "^1.0.1", 1225 | "object-keys": "^1.1.1" 1226 | }, 1227 | "engines": { 1228 | "node": ">= 0.4" 1229 | }, 1230 | "funding": { 1231 | "url": "https://github.com/sponsors/ljharb" 1232 | } 1233 | }, 1234 | "node_modules/object.entries": { 1235 | "version": "1.1.5", 1236 | "resolved": "https://registry.npmmirror.com/object.entries/-/object.entries-1.1.5.tgz", 1237 | "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", 1238 | "dev": true, 1239 | "license": "MIT", 1240 | "dependencies": { 1241 | "call-bind": "^1.0.2", 1242 | "define-properties": "^1.1.3", 1243 | "es-abstract": "^1.19.1" 1244 | }, 1245 | "engines": { 1246 | "node": ">= 0.4" 1247 | } 1248 | }, 1249 | "node_modules/object.fromentries": { 1250 | "version": "2.0.5", 1251 | "resolved": "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.5.tgz", 1252 | "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", 1253 | "dev": true, 1254 | "license": "MIT", 1255 | "dependencies": { 1256 | "call-bind": "^1.0.2", 1257 | "define-properties": "^1.1.3", 1258 | "es-abstract": "^1.19.1" 1259 | }, 1260 | "engines": { 1261 | "node": ">= 0.4" 1262 | }, 1263 | "funding": { 1264 | "url": "https://github.com/sponsors/ljharb" 1265 | } 1266 | }, 1267 | "node_modules/object.hasown": { 1268 | "version": "1.1.0", 1269 | "resolved": "https://registry.npmmirror.com/object.hasown/-/object.hasown-1.1.0.tgz", 1270 | "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", 1271 | "dev": true, 1272 | "license": "MIT", 1273 | "dependencies": { 1274 | "define-properties": "^1.1.3", 1275 | "es-abstract": "^1.19.1" 1276 | }, 1277 | "funding": { 1278 | "url": "https://github.com/sponsors/ljharb" 1279 | } 1280 | }, 1281 | "node_modules/object.values": { 1282 | "version": "1.1.5", 1283 | "resolved": "https://registry.npmmirror.com/object.values/-/object.values-1.1.5.tgz", 1284 | "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", 1285 | "dev": true, 1286 | "license": "MIT", 1287 | "dependencies": { 1288 | "call-bind": "^1.0.2", 1289 | "define-properties": "^1.1.3", 1290 | "es-abstract": "^1.19.1" 1291 | }, 1292 | "engines": { 1293 | "node": ">= 0.4" 1294 | }, 1295 | "funding": { 1296 | "url": "https://github.com/sponsors/ljharb" 1297 | } 1298 | }, 1299 | "node_modules/path-parse": { 1300 | "version": "1.0.7", 1301 | "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", 1302 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1303 | "dev": true, 1304 | "license": "MIT" 1305 | }, 1306 | "node_modules/path-type": { 1307 | "version": "4.0.0", 1308 | "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", 1309 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1310 | "dev": true, 1311 | "license": "MIT", 1312 | "engines": { 1313 | "node": ">=8" 1314 | } 1315 | }, 1316 | "node_modules/picomatch": { 1317 | "version": "2.3.1", 1318 | "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", 1319 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1320 | "dev": true, 1321 | "license": "MIT", 1322 | "engines": { 1323 | "node": ">=8.6" 1324 | }, 1325 | "funding": { 1326 | "url": "https://github.com/sponsors/jonschlinkert" 1327 | } 1328 | }, 1329 | "node_modules/prop-types": { 1330 | "version": "15.8.1", 1331 | "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz", 1332 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 1333 | "dev": true, 1334 | "license": "MIT", 1335 | "dependencies": { 1336 | "loose-envify": "^1.4.0", 1337 | "object-assign": "^4.1.1", 1338 | "react-is": "^16.13.1" 1339 | } 1340 | }, 1341 | "node_modules/queue-microtask": { 1342 | "version": "1.2.3", 1343 | "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", 1344 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1345 | "dev": true, 1346 | "funding": [ 1347 | { 1348 | "type": "github", 1349 | "url": "https://github.com/sponsors/feross" 1350 | }, 1351 | { 1352 | "type": "patreon", 1353 | "url": "https://www.patreon.com/feross" 1354 | }, 1355 | { 1356 | "type": "consulting", 1357 | "url": "https://feross.org/support" 1358 | } 1359 | ], 1360 | "license": "MIT" 1361 | }, 1362 | "node_modules/react": { 1363 | "version": "18.2.0", 1364 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 1365 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 1366 | "peer": true, 1367 | "dependencies": { 1368 | "loose-envify": "^1.1.0" 1369 | }, 1370 | "engines": { 1371 | "node": ">=0.10.0" 1372 | } 1373 | }, 1374 | "node_modules/react-dom": { 1375 | "version": "18.2.0", 1376 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 1377 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 1378 | "peer": true, 1379 | "dependencies": { 1380 | "loose-envify": "^1.1.0", 1381 | "scheduler": "^0.23.0" 1382 | }, 1383 | "peerDependencies": { 1384 | "react": "^18.2.0" 1385 | } 1386 | }, 1387 | "node_modules/react-is": { 1388 | "version": "16.13.1", 1389 | "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", 1390 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", 1391 | "dev": true, 1392 | "license": "MIT" 1393 | }, 1394 | "node_modules/regexp.prototype.flags": { 1395 | "version": "1.4.3", 1396 | "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", 1397 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", 1398 | "dev": true, 1399 | "license": "MIT", 1400 | "dependencies": { 1401 | "call-bind": "^1.0.2", 1402 | "define-properties": "^1.1.3", 1403 | "functions-have-names": "^1.2.2" 1404 | }, 1405 | "engines": { 1406 | "node": ">= 0.4" 1407 | }, 1408 | "funding": { 1409 | "url": "https://github.com/sponsors/ljharb" 1410 | } 1411 | }, 1412 | "node_modules/regexpp": { 1413 | "version": "3.2.0", 1414 | "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", 1415 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 1416 | "dev": true, 1417 | "license": "MIT", 1418 | "engines": { 1419 | "node": ">=8" 1420 | }, 1421 | "funding": { 1422 | "url": "https://github.com/sponsors/mysticatea" 1423 | } 1424 | }, 1425 | "node_modules/resolve": { 1426 | "version": "2.0.0-next.3", 1427 | "resolved": "https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.3.tgz", 1428 | "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", 1429 | "dev": true, 1430 | "license": "MIT", 1431 | "dependencies": { 1432 | "is-core-module": "^2.2.0", 1433 | "path-parse": "^1.0.6" 1434 | }, 1435 | "funding": { 1436 | "url": "https://github.com/sponsors/ljharb" 1437 | } 1438 | }, 1439 | "node_modules/reusify": { 1440 | "version": "1.0.4", 1441 | "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", 1442 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1443 | "dev": true, 1444 | "license": "MIT", 1445 | "engines": { 1446 | "iojs": ">=1.0.0", 1447 | "node": ">=0.10.0" 1448 | } 1449 | }, 1450 | "node_modules/run-parallel": { 1451 | "version": "1.2.0", 1452 | "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", 1453 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1454 | "dev": true, 1455 | "funding": [ 1456 | { 1457 | "type": "github", 1458 | "url": "https://github.com/sponsors/feross" 1459 | }, 1460 | { 1461 | "type": "patreon", 1462 | "url": "https://www.patreon.com/feross" 1463 | }, 1464 | { 1465 | "type": "consulting", 1466 | "url": "https://feross.org/support" 1467 | } 1468 | ], 1469 | "license": "MIT", 1470 | "dependencies": { 1471 | "queue-microtask": "^1.2.2" 1472 | } 1473 | }, 1474 | "node_modules/scheduler": { 1475 | "version": "0.23.0", 1476 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 1477 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 1478 | "peer": true, 1479 | "dependencies": { 1480 | "loose-envify": "^1.1.0" 1481 | } 1482 | }, 1483 | "node_modules/semver": { 1484 | "version": "7.3.7", 1485 | "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", 1486 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 1487 | "dev": true, 1488 | "license": "ISC", 1489 | "dependencies": { 1490 | "lru-cache": "^6.0.0" 1491 | }, 1492 | "bin": { 1493 | "semver": "bin/semver.js" 1494 | }, 1495 | "engines": { 1496 | "node": ">=10" 1497 | } 1498 | }, 1499 | "node_modules/side-channel": { 1500 | "version": "1.0.4", 1501 | "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", 1502 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1503 | "dev": true, 1504 | "license": "MIT", 1505 | "dependencies": { 1506 | "call-bind": "^1.0.0", 1507 | "get-intrinsic": "^1.0.2", 1508 | "object-inspect": "^1.9.0" 1509 | }, 1510 | "funding": { 1511 | "url": "https://github.com/sponsors/ljharb" 1512 | } 1513 | }, 1514 | "node_modules/slash": { 1515 | "version": "3.0.0", 1516 | "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", 1517 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 1518 | "dev": true, 1519 | "license": "MIT", 1520 | "engines": { 1521 | "node": ">=8" 1522 | } 1523 | }, 1524 | "node_modules/string.prototype.matchall": { 1525 | "version": "4.0.7", 1526 | "resolved": "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", 1527 | "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", 1528 | "dev": true, 1529 | "license": "MIT", 1530 | "dependencies": { 1531 | "call-bind": "^1.0.2", 1532 | "define-properties": "^1.1.3", 1533 | "es-abstract": "^1.19.1", 1534 | "get-intrinsic": "^1.1.1", 1535 | "has-symbols": "^1.0.3", 1536 | "internal-slot": "^1.0.3", 1537 | "regexp.prototype.flags": "^1.4.1", 1538 | "side-channel": "^1.0.4" 1539 | }, 1540 | "funding": { 1541 | "url": "https://github.com/sponsors/ljharb" 1542 | } 1543 | }, 1544 | "node_modules/string.prototype.trimend": { 1545 | "version": "1.0.4", 1546 | "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", 1547 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", 1548 | "dev": true, 1549 | "license": "MIT", 1550 | "dependencies": { 1551 | "call-bind": "^1.0.2", 1552 | "define-properties": "^1.1.3" 1553 | }, 1554 | "funding": { 1555 | "url": "https://github.com/sponsors/ljharb" 1556 | } 1557 | }, 1558 | "node_modules/string.prototype.trimstart": { 1559 | "version": "1.0.4", 1560 | "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", 1561 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", 1562 | "dev": true, 1563 | "license": "MIT", 1564 | "dependencies": { 1565 | "call-bind": "^1.0.2", 1566 | "define-properties": "^1.1.3" 1567 | }, 1568 | "funding": { 1569 | "url": "https://github.com/sponsors/ljharb" 1570 | } 1571 | }, 1572 | "node_modules/to-regex-range": { 1573 | "version": "5.0.1", 1574 | "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", 1575 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1576 | "dev": true, 1577 | "license": "MIT", 1578 | "dependencies": { 1579 | "is-number": "^7.0.0" 1580 | }, 1581 | "engines": { 1582 | "node": ">=8.0" 1583 | } 1584 | }, 1585 | "node_modules/tslib": { 1586 | "version": "1.14.1", 1587 | "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", 1588 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", 1589 | "dev": true, 1590 | "license": "0BSD" 1591 | }, 1592 | "node_modules/tsutils": { 1593 | "version": "3.21.0", 1594 | "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz", 1595 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 1596 | "dev": true, 1597 | "license": "MIT", 1598 | "dependencies": { 1599 | "tslib": "^1.8.1" 1600 | }, 1601 | "engines": { 1602 | "node": ">= 6" 1603 | }, 1604 | "peerDependencies": { 1605 | "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" 1606 | } 1607 | }, 1608 | "node_modules/typescript": { 1609 | "version": "4.6.3", 1610 | "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.6.3.tgz", 1611 | "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", 1612 | "dev": true, 1613 | "license": "Apache-2.0", 1614 | "bin": { 1615 | "tsc": "bin/tsc", 1616 | "tsserver": "bin/tsserver" 1617 | }, 1618 | "engines": { 1619 | "node": ">=4.2.0" 1620 | } 1621 | }, 1622 | "node_modules/unbox-primitive": { 1623 | "version": "1.0.1", 1624 | "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz", 1625 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", 1626 | "dev": true, 1627 | "license": "MIT", 1628 | "dependencies": { 1629 | "function-bind": "^1.1.1", 1630 | "has-bigints": "^1.0.1", 1631 | "has-symbols": "^1.0.2", 1632 | "which-boxed-primitive": "^1.0.2" 1633 | }, 1634 | "funding": { 1635 | "url": "https://github.com/sponsors/ljharb" 1636 | } 1637 | }, 1638 | "node_modules/which-boxed-primitive": { 1639 | "version": "1.0.2", 1640 | "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 1641 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 1642 | "dev": true, 1643 | "license": "MIT", 1644 | "dependencies": { 1645 | "is-bigint": "^1.0.1", 1646 | "is-boolean-object": "^1.1.0", 1647 | "is-number-object": "^1.0.4", 1648 | "is-string": "^1.0.5", 1649 | "is-symbol": "^1.0.3" 1650 | }, 1651 | "funding": { 1652 | "url": "https://github.com/sponsors/ljharb" 1653 | } 1654 | }, 1655 | "node_modules/winbox": { 1656 | "version": "0.2.6", 1657 | "resolved": "https://registry.npmjs.org/winbox/-/winbox-0.2.6.tgz", 1658 | "integrity": "sha512-P/Tqjcf4bA0Hr1lqR1YliQsisV8xf+t56xgCtqWN8Urw9RLonYSVQGYw+qILp9tgkPs1o7e1dsl6dskaS6GudQ==" 1659 | }, 1660 | "node_modules/yallist": { 1661 | "version": "4.0.0", 1662 | "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", 1663 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1664 | "dev": true, 1665 | "license": "ISC" 1666 | } 1667 | }, 1668 | "dependencies": { 1669 | "@nodelib/fs.scandir": { 1670 | "version": "2.1.5", 1671 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1672 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1673 | "dev": true, 1674 | "requires": { 1675 | "@nodelib/fs.stat": "2.0.5", 1676 | "run-parallel": "^1.1.9" 1677 | } 1678 | }, 1679 | "@nodelib/fs.stat": { 1680 | "version": "2.0.5", 1681 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1682 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1683 | "dev": true 1684 | }, 1685 | "@nodelib/fs.walk": { 1686 | "version": "1.2.8", 1687 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1688 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1689 | "dev": true, 1690 | "requires": { 1691 | "@nodelib/fs.scandir": "2.1.5", 1692 | "fastq": "^1.6.0" 1693 | } 1694 | }, 1695 | "@types/json-schema": { 1696 | "version": "7.0.11", 1697 | "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz", 1698 | "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", 1699 | "dev": true 1700 | }, 1701 | "@types/prop-types": { 1702 | "version": "15.7.5", 1703 | "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz", 1704 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 1705 | "dev": true 1706 | }, 1707 | "@types/react": { 1708 | "version": "18.0.9", 1709 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz", 1710 | "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==", 1711 | "dev": true, 1712 | "requires": { 1713 | "@types/prop-types": "*", 1714 | "@types/scheduler": "*", 1715 | "csstype": "^3.0.2" 1716 | } 1717 | }, 1718 | "@types/react-dom": { 1719 | "version": "18.0.4", 1720 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.4.tgz", 1721 | "integrity": "sha512-FgTtbqPOCI3dzZPZoC2T/sx3L34qxy99ITWn4eoSA95qPyXDMH0ALoAqUp49ITniiJFsXUVBtalh/KffMpg21Q==", 1722 | "dev": true, 1723 | "requires": { 1724 | "@types/react": "*" 1725 | } 1726 | }, 1727 | "@types/scheduler": { 1728 | "version": "0.16.2", 1729 | "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz", 1730 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 1731 | "dev": true 1732 | }, 1733 | "@typescript-eslint/eslint-plugin": { 1734 | "version": "5.19.0", 1735 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz", 1736 | "integrity": "sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==", 1737 | "dev": true, 1738 | "requires": { 1739 | "@typescript-eslint/scope-manager": "5.19.0", 1740 | "@typescript-eslint/type-utils": "5.19.0", 1741 | "@typescript-eslint/utils": "5.19.0", 1742 | "debug": "^4.3.2", 1743 | "functional-red-black-tree": "^1.0.1", 1744 | "ignore": "^5.1.8", 1745 | "regexpp": "^3.2.0", 1746 | "semver": "^7.3.5", 1747 | "tsutils": "^3.21.0" 1748 | } 1749 | }, 1750 | "@typescript-eslint/parser": { 1751 | "version": "5.19.0", 1752 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.19.0.tgz", 1753 | "integrity": "sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==", 1754 | "dev": true, 1755 | "requires": { 1756 | "@typescript-eslint/scope-manager": "5.19.0", 1757 | "@typescript-eslint/types": "5.19.0", 1758 | "@typescript-eslint/typescript-estree": "5.19.0", 1759 | "debug": "^4.3.2" 1760 | } 1761 | }, 1762 | "@typescript-eslint/scope-manager": { 1763 | "version": "5.19.0", 1764 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz", 1765 | "integrity": "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==", 1766 | "dev": true, 1767 | "requires": { 1768 | "@typescript-eslint/types": "5.19.0", 1769 | "@typescript-eslint/visitor-keys": "5.19.0" 1770 | } 1771 | }, 1772 | "@typescript-eslint/type-utils": { 1773 | "version": "5.19.0", 1774 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz", 1775 | "integrity": "sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==", 1776 | "dev": true, 1777 | "requires": { 1778 | "@typescript-eslint/utils": "5.19.0", 1779 | "debug": "^4.3.2", 1780 | "tsutils": "^3.21.0" 1781 | } 1782 | }, 1783 | "@typescript-eslint/types": { 1784 | "version": "5.19.0", 1785 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.19.0.tgz", 1786 | "integrity": "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==", 1787 | "dev": true 1788 | }, 1789 | "@typescript-eslint/typescript-estree": { 1790 | "version": "5.19.0", 1791 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz", 1792 | "integrity": "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==", 1793 | "dev": true, 1794 | "requires": { 1795 | "@typescript-eslint/types": "5.19.0", 1796 | "@typescript-eslint/visitor-keys": "5.19.0", 1797 | "debug": "^4.3.2", 1798 | "globby": "^11.0.4", 1799 | "is-glob": "^4.0.3", 1800 | "semver": "^7.3.5", 1801 | "tsutils": "^3.21.0" 1802 | } 1803 | }, 1804 | "@typescript-eslint/utils": { 1805 | "version": "5.19.0", 1806 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.19.0.tgz", 1807 | "integrity": "sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==", 1808 | "dev": true, 1809 | "requires": { 1810 | "@types/json-schema": "^7.0.9", 1811 | "@typescript-eslint/scope-manager": "5.19.0", 1812 | "@typescript-eslint/types": "5.19.0", 1813 | "@typescript-eslint/typescript-estree": "5.19.0", 1814 | "eslint-scope": "^5.1.1", 1815 | "eslint-utils": "^3.0.0" 1816 | } 1817 | }, 1818 | "@typescript-eslint/visitor-keys": { 1819 | "version": "5.19.0", 1820 | "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz", 1821 | "integrity": "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==", 1822 | "dev": true, 1823 | "requires": { 1824 | "@typescript-eslint/types": "5.19.0", 1825 | "eslint-visitor-keys": "^3.0.0" 1826 | }, 1827 | "dependencies": { 1828 | "eslint-visitor-keys": { 1829 | "version": "3.3.0", 1830 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 1831 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 1832 | "dev": true 1833 | } 1834 | } 1835 | }, 1836 | "array-includes": { 1837 | "version": "3.1.4", 1838 | "resolved": "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.4.tgz", 1839 | "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", 1840 | "dev": true, 1841 | "requires": { 1842 | "call-bind": "^1.0.2", 1843 | "define-properties": "^1.1.3", 1844 | "es-abstract": "^1.19.1", 1845 | "get-intrinsic": "^1.1.1", 1846 | "is-string": "^1.0.7" 1847 | } 1848 | }, 1849 | "array-union": { 1850 | "version": "2.1.0", 1851 | "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", 1852 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 1853 | "dev": true 1854 | }, 1855 | "array.prototype.flatmap": { 1856 | "version": "1.3.0", 1857 | "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", 1858 | "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", 1859 | "dev": true, 1860 | "requires": { 1861 | "call-bind": "^1.0.2", 1862 | "define-properties": "^1.1.3", 1863 | "es-abstract": "^1.19.2", 1864 | "es-shim-unscopables": "^1.0.0" 1865 | } 1866 | }, 1867 | "balanced-match": { 1868 | "version": "1.0.2", 1869 | "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", 1870 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1871 | "dev": true 1872 | }, 1873 | "brace-expansion": { 1874 | "version": "1.1.11", 1875 | "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", 1876 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1877 | "dev": true, 1878 | "requires": { 1879 | "balanced-match": "^1.0.0", 1880 | "concat-map": "0.0.1" 1881 | } 1882 | }, 1883 | "braces": { 1884 | "version": "3.0.2", 1885 | "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", 1886 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1887 | "dev": true, 1888 | "requires": { 1889 | "fill-range": "^7.0.1" 1890 | } 1891 | }, 1892 | "call-bind": { 1893 | "version": "1.0.2", 1894 | "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", 1895 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 1896 | "dev": true, 1897 | "requires": { 1898 | "function-bind": "^1.1.1", 1899 | "get-intrinsic": "^1.0.2" 1900 | } 1901 | }, 1902 | "concat-map": { 1903 | "version": "0.0.1", 1904 | "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", 1905 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 1906 | "dev": true 1907 | }, 1908 | "csstype": { 1909 | "version": "3.0.11", 1910 | "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz", 1911 | "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", 1912 | "dev": true 1913 | }, 1914 | "debug": { 1915 | "version": "4.3.4", 1916 | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", 1917 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1918 | "dev": true, 1919 | "requires": { 1920 | "ms": "2.1.2" 1921 | } 1922 | }, 1923 | "define-properties": { 1924 | "version": "1.1.4", 1925 | "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.4.tgz", 1926 | "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", 1927 | "dev": true, 1928 | "requires": { 1929 | "has-property-descriptors": "^1.0.0", 1930 | "object-keys": "^1.1.1" 1931 | } 1932 | }, 1933 | "dir-glob": { 1934 | "version": "3.0.1", 1935 | "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", 1936 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 1937 | "dev": true, 1938 | "requires": { 1939 | "path-type": "^4.0.0" 1940 | } 1941 | }, 1942 | "doctrine": { 1943 | "version": "2.1.0", 1944 | "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz", 1945 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 1946 | "dev": true, 1947 | "requires": { 1948 | "esutils": "^2.0.2" 1949 | } 1950 | }, 1951 | "es-abstract": { 1952 | "version": "1.19.5", 1953 | "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.19.5.tgz", 1954 | "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", 1955 | "dev": true, 1956 | "requires": { 1957 | "call-bind": "^1.0.2", 1958 | "es-to-primitive": "^1.2.1", 1959 | "function-bind": "^1.1.1", 1960 | "get-intrinsic": "^1.1.1", 1961 | "get-symbol-description": "^1.0.0", 1962 | "has": "^1.0.3", 1963 | "has-symbols": "^1.0.3", 1964 | "internal-slot": "^1.0.3", 1965 | "is-callable": "^1.2.4", 1966 | "is-negative-zero": "^2.0.2", 1967 | "is-regex": "^1.1.4", 1968 | "is-shared-array-buffer": "^1.0.2", 1969 | "is-string": "^1.0.7", 1970 | "is-weakref": "^1.0.2", 1971 | "object-inspect": "^1.12.0", 1972 | "object-keys": "^1.1.1", 1973 | "object.assign": "^4.1.2", 1974 | "string.prototype.trimend": "^1.0.4", 1975 | "string.prototype.trimstart": "^1.0.4", 1976 | "unbox-primitive": "^1.0.1" 1977 | } 1978 | }, 1979 | "es-shim-unscopables": { 1980 | "version": "1.0.0", 1981 | "resolved": "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", 1982 | "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", 1983 | "dev": true, 1984 | "requires": { 1985 | "has": "^1.0.3" 1986 | } 1987 | }, 1988 | "es-to-primitive": { 1989 | "version": "1.2.1", 1990 | "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 1991 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 1992 | "dev": true, 1993 | "requires": { 1994 | "is-callable": "^1.1.4", 1995 | "is-date-object": "^1.0.1", 1996 | "is-symbol": "^1.0.2" 1997 | } 1998 | }, 1999 | "eslint-plugin-react": { 2000 | "version": "7.29.4", 2001 | "resolved": "https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", 2002 | "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", 2003 | "dev": true, 2004 | "requires": { 2005 | "array-includes": "^3.1.4", 2006 | "array.prototype.flatmap": "^1.2.5", 2007 | "doctrine": "^2.1.0", 2008 | "estraverse": "^5.3.0", 2009 | "jsx-ast-utils": "^2.4.1 || ^3.0.0", 2010 | "minimatch": "^3.1.2", 2011 | "object.entries": "^1.1.5", 2012 | "object.fromentries": "^2.0.5", 2013 | "object.hasown": "^1.1.0", 2014 | "object.values": "^1.1.5", 2015 | "prop-types": "^15.8.1", 2016 | "resolve": "^2.0.0-next.3", 2017 | "semver": "^6.3.0", 2018 | "string.prototype.matchall": "^4.0.6" 2019 | }, 2020 | "dependencies": { 2021 | "semver": { 2022 | "version": "6.3.0", 2023 | "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", 2024 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2025 | "dev": true 2026 | } 2027 | } 2028 | }, 2029 | "eslint-scope": { 2030 | "version": "5.1.1", 2031 | "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", 2032 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 2033 | "dev": true, 2034 | "requires": { 2035 | "esrecurse": "^4.3.0", 2036 | "estraverse": "^4.1.1" 2037 | }, 2038 | "dependencies": { 2039 | "estraverse": { 2040 | "version": "4.3.0", 2041 | "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", 2042 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 2043 | "dev": true 2044 | } 2045 | } 2046 | }, 2047 | "eslint-utils": { 2048 | "version": "3.0.0", 2049 | "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz", 2050 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 2051 | "dev": true, 2052 | "requires": { 2053 | "eslint-visitor-keys": "^2.0.0" 2054 | } 2055 | }, 2056 | "eslint-visitor-keys": { 2057 | "version": "2.1.0", 2058 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 2059 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 2060 | "dev": true 2061 | }, 2062 | "esrecurse": { 2063 | "version": "4.3.0", 2064 | "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", 2065 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2066 | "dev": true, 2067 | "requires": { 2068 | "estraverse": "^5.2.0" 2069 | } 2070 | }, 2071 | "estraverse": { 2072 | "version": "5.3.0", 2073 | "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", 2074 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2075 | "dev": true 2076 | }, 2077 | "esutils": { 2078 | "version": "2.0.3", 2079 | "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", 2080 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2081 | "dev": true 2082 | }, 2083 | "fast-glob": { 2084 | "version": "3.2.11", 2085 | "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz", 2086 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 2087 | "dev": true, 2088 | "requires": { 2089 | "@nodelib/fs.stat": "^2.0.2", 2090 | "@nodelib/fs.walk": "^1.2.3", 2091 | "glob-parent": "^5.1.2", 2092 | "merge2": "^1.3.0", 2093 | "micromatch": "^4.0.4" 2094 | } 2095 | }, 2096 | "fastq": { 2097 | "version": "1.13.0", 2098 | "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", 2099 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 2100 | "dev": true, 2101 | "requires": { 2102 | "reusify": "^1.0.4" 2103 | } 2104 | }, 2105 | "fill-range": { 2106 | "version": "7.0.1", 2107 | "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", 2108 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 2109 | "dev": true, 2110 | "requires": { 2111 | "to-regex-range": "^5.0.1" 2112 | } 2113 | }, 2114 | "function-bind": { 2115 | "version": "1.1.1", 2116 | "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", 2117 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2118 | "dev": true 2119 | }, 2120 | "functional-red-black-tree": { 2121 | "version": "1.0.1", 2122 | "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 2123 | "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", 2124 | "dev": true 2125 | }, 2126 | "functions-have-names": { 2127 | "version": "1.2.2", 2128 | "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.2.tgz", 2129 | "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", 2130 | "dev": true 2131 | }, 2132 | "get-intrinsic": { 2133 | "version": "1.1.1", 2134 | "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 2135 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 2136 | "dev": true, 2137 | "requires": { 2138 | "function-bind": "^1.1.1", 2139 | "has": "^1.0.3", 2140 | "has-symbols": "^1.0.1" 2141 | } 2142 | }, 2143 | "get-symbol-description": { 2144 | "version": "1.0.0", 2145 | "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz", 2146 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", 2147 | "dev": true, 2148 | "requires": { 2149 | "call-bind": "^1.0.2", 2150 | "get-intrinsic": "^1.1.1" 2151 | } 2152 | }, 2153 | "glob-parent": { 2154 | "version": "5.1.2", 2155 | "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", 2156 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2157 | "dev": true, 2158 | "requires": { 2159 | "is-glob": "^4.0.1" 2160 | } 2161 | }, 2162 | "globby": { 2163 | "version": "11.1.0", 2164 | "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", 2165 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 2166 | "dev": true, 2167 | "requires": { 2168 | "array-union": "^2.1.0", 2169 | "dir-glob": "^3.0.1", 2170 | "fast-glob": "^3.2.9", 2171 | "ignore": "^5.2.0", 2172 | "merge2": "^1.4.1", 2173 | "slash": "^3.0.0" 2174 | } 2175 | }, 2176 | "has": { 2177 | "version": "1.0.3", 2178 | "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", 2179 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2180 | "dev": true, 2181 | "requires": { 2182 | "function-bind": "^1.1.1" 2183 | } 2184 | }, 2185 | "has-bigints": { 2186 | "version": "1.0.1", 2187 | "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.1.tgz", 2188 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", 2189 | "dev": true 2190 | }, 2191 | "has-property-descriptors": { 2192 | "version": "1.0.0", 2193 | "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", 2194 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", 2195 | "dev": true, 2196 | "requires": { 2197 | "get-intrinsic": "^1.1.1" 2198 | } 2199 | }, 2200 | "has-symbols": { 2201 | "version": "1.0.3", 2202 | "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", 2203 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 2204 | "dev": true 2205 | }, 2206 | "has-tostringtag": { 2207 | "version": "1.0.0", 2208 | "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 2209 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 2210 | "dev": true, 2211 | "requires": { 2212 | "has-symbols": "^1.0.2" 2213 | } 2214 | }, 2215 | "ignore": { 2216 | "version": "5.2.0", 2217 | "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz", 2218 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 2219 | "dev": true 2220 | }, 2221 | "internal-slot": { 2222 | "version": "1.0.3", 2223 | "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.3.tgz", 2224 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", 2225 | "dev": true, 2226 | "requires": { 2227 | "get-intrinsic": "^1.1.0", 2228 | "has": "^1.0.3", 2229 | "side-channel": "^1.0.4" 2230 | } 2231 | }, 2232 | "is-bigint": { 2233 | "version": "1.0.4", 2234 | "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz", 2235 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 2236 | "dev": true, 2237 | "requires": { 2238 | "has-bigints": "^1.0.1" 2239 | } 2240 | }, 2241 | "is-boolean-object": { 2242 | "version": "1.1.2", 2243 | "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 2244 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 2245 | "dev": true, 2246 | "requires": { 2247 | "call-bind": "^1.0.2", 2248 | "has-tostringtag": "^1.0.0" 2249 | } 2250 | }, 2251 | "is-callable": { 2252 | "version": "1.2.4", 2253 | "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.4.tgz", 2254 | "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", 2255 | "dev": true 2256 | }, 2257 | "is-core-module": { 2258 | "version": "2.8.1", 2259 | "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz", 2260 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 2261 | "dev": true, 2262 | "requires": { 2263 | "has": "^1.0.3" 2264 | } 2265 | }, 2266 | "is-date-object": { 2267 | "version": "1.0.5", 2268 | "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz", 2269 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 2270 | "dev": true, 2271 | "requires": { 2272 | "has-tostringtag": "^1.0.0" 2273 | } 2274 | }, 2275 | "is-extglob": { 2276 | "version": "2.1.1", 2277 | "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", 2278 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2279 | "dev": true 2280 | }, 2281 | "is-glob": { 2282 | "version": "4.0.3", 2283 | "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", 2284 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2285 | "dev": true, 2286 | "requires": { 2287 | "is-extglob": "^2.1.1" 2288 | } 2289 | }, 2290 | "is-negative-zero": { 2291 | "version": "2.0.2", 2292 | "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz", 2293 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", 2294 | "dev": true 2295 | }, 2296 | "is-number": { 2297 | "version": "7.0.0", 2298 | "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", 2299 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 2300 | "dev": true 2301 | }, 2302 | "is-number-object": { 2303 | "version": "1.0.7", 2304 | "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz", 2305 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 2306 | "dev": true, 2307 | "requires": { 2308 | "has-tostringtag": "^1.0.0" 2309 | } 2310 | }, 2311 | "is-regex": { 2312 | "version": "1.1.4", 2313 | "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz", 2314 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 2315 | "dev": true, 2316 | "requires": { 2317 | "call-bind": "^1.0.2", 2318 | "has-tostringtag": "^1.0.0" 2319 | } 2320 | }, 2321 | "is-shared-array-buffer": { 2322 | "version": "1.0.2", 2323 | "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", 2324 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", 2325 | "dev": true, 2326 | "requires": { 2327 | "call-bind": "^1.0.2" 2328 | } 2329 | }, 2330 | "is-string": { 2331 | "version": "1.0.7", 2332 | "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz", 2333 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 2334 | "dev": true, 2335 | "requires": { 2336 | "has-tostringtag": "^1.0.0" 2337 | } 2338 | }, 2339 | "is-symbol": { 2340 | "version": "1.0.4", 2341 | "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz", 2342 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 2343 | "dev": true, 2344 | "requires": { 2345 | "has-symbols": "^1.0.2" 2346 | } 2347 | }, 2348 | "is-weakref": { 2349 | "version": "1.0.2", 2350 | "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz", 2351 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 2352 | "dev": true, 2353 | "requires": { 2354 | "call-bind": "^1.0.2" 2355 | } 2356 | }, 2357 | "js-tokens": { 2358 | "version": "4.0.0", 2359 | "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", 2360 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2361 | }, 2362 | "jsx-ast-utils": { 2363 | "version": "3.2.2", 2364 | "resolved": "https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", 2365 | "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", 2366 | "dev": true, 2367 | "requires": { 2368 | "array-includes": "^3.1.4", 2369 | "object.assign": "^4.1.2" 2370 | } 2371 | }, 2372 | "loose-envify": { 2373 | "version": "1.4.0", 2374 | "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", 2375 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2376 | "requires": { 2377 | "js-tokens": "^3.0.0 || ^4.0.0" 2378 | } 2379 | }, 2380 | "lru-cache": { 2381 | "version": "6.0.0", 2382 | "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", 2383 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 2384 | "dev": true, 2385 | "requires": { 2386 | "yallist": "^4.0.0" 2387 | } 2388 | }, 2389 | "merge2": { 2390 | "version": "1.4.1", 2391 | "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", 2392 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 2393 | "dev": true 2394 | }, 2395 | "micromatch": { 2396 | "version": "4.0.5", 2397 | "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", 2398 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 2399 | "dev": true, 2400 | "requires": { 2401 | "braces": "^3.0.2", 2402 | "picomatch": "^2.3.1" 2403 | } 2404 | }, 2405 | "minimatch": { 2406 | "version": "3.1.2", 2407 | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", 2408 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2409 | "dev": true, 2410 | "requires": { 2411 | "brace-expansion": "^1.1.7" 2412 | } 2413 | }, 2414 | "ms": { 2415 | "version": "2.1.2", 2416 | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", 2417 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2418 | "dev": true 2419 | }, 2420 | "object-assign": { 2421 | "version": "4.1.1", 2422 | "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", 2423 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 2424 | "dev": true 2425 | }, 2426 | "object-inspect": { 2427 | "version": "1.12.0", 2428 | "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz", 2429 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", 2430 | "dev": true 2431 | }, 2432 | "object-keys": { 2433 | "version": "1.1.1", 2434 | "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", 2435 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 2436 | "dev": true 2437 | }, 2438 | "object.assign": { 2439 | "version": "4.1.2", 2440 | "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.2.tgz", 2441 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 2442 | "dev": true, 2443 | "requires": { 2444 | "call-bind": "^1.0.0", 2445 | "define-properties": "^1.1.3", 2446 | "has-symbols": "^1.0.1", 2447 | "object-keys": "^1.1.1" 2448 | } 2449 | }, 2450 | "object.entries": { 2451 | "version": "1.1.5", 2452 | "resolved": "https://registry.npmmirror.com/object.entries/-/object.entries-1.1.5.tgz", 2453 | "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", 2454 | "dev": true, 2455 | "requires": { 2456 | "call-bind": "^1.0.2", 2457 | "define-properties": "^1.1.3", 2458 | "es-abstract": "^1.19.1" 2459 | } 2460 | }, 2461 | "object.fromentries": { 2462 | "version": "2.0.5", 2463 | "resolved": "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.5.tgz", 2464 | "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", 2465 | "dev": true, 2466 | "requires": { 2467 | "call-bind": "^1.0.2", 2468 | "define-properties": "^1.1.3", 2469 | "es-abstract": "^1.19.1" 2470 | } 2471 | }, 2472 | "object.hasown": { 2473 | "version": "1.1.0", 2474 | "resolved": "https://registry.npmmirror.com/object.hasown/-/object.hasown-1.1.0.tgz", 2475 | "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", 2476 | "dev": true, 2477 | "requires": { 2478 | "define-properties": "^1.1.3", 2479 | "es-abstract": "^1.19.1" 2480 | } 2481 | }, 2482 | "object.values": { 2483 | "version": "1.1.5", 2484 | "resolved": "https://registry.npmmirror.com/object.values/-/object.values-1.1.5.tgz", 2485 | "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", 2486 | "dev": true, 2487 | "requires": { 2488 | "call-bind": "^1.0.2", 2489 | "define-properties": "^1.1.3", 2490 | "es-abstract": "^1.19.1" 2491 | } 2492 | }, 2493 | "path-parse": { 2494 | "version": "1.0.7", 2495 | "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", 2496 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2497 | "dev": true 2498 | }, 2499 | "path-type": { 2500 | "version": "4.0.0", 2501 | "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", 2502 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 2503 | "dev": true 2504 | }, 2505 | "picomatch": { 2506 | "version": "2.3.1", 2507 | "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", 2508 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2509 | "dev": true 2510 | }, 2511 | "prop-types": { 2512 | "version": "15.8.1", 2513 | "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz", 2514 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 2515 | "dev": true, 2516 | "requires": { 2517 | "loose-envify": "^1.4.0", 2518 | "object-assign": "^4.1.1", 2519 | "react-is": "^16.13.1" 2520 | } 2521 | }, 2522 | "queue-microtask": { 2523 | "version": "1.2.3", 2524 | "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", 2525 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2526 | "dev": true 2527 | }, 2528 | "react": { 2529 | "version": "18.2.0", 2530 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 2531 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 2532 | "peer": true, 2533 | "requires": { 2534 | "loose-envify": "^1.1.0" 2535 | } 2536 | }, 2537 | "react-dom": { 2538 | "version": "18.2.0", 2539 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 2540 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 2541 | "peer": true, 2542 | "requires": { 2543 | "loose-envify": "^1.1.0", 2544 | "scheduler": "^0.23.0" 2545 | } 2546 | }, 2547 | "react-is": { 2548 | "version": "16.13.1", 2549 | "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", 2550 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", 2551 | "dev": true 2552 | }, 2553 | "regexp.prototype.flags": { 2554 | "version": "1.4.3", 2555 | "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", 2556 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", 2557 | "dev": true, 2558 | "requires": { 2559 | "call-bind": "^1.0.2", 2560 | "define-properties": "^1.1.3", 2561 | "functions-have-names": "^1.2.2" 2562 | } 2563 | }, 2564 | "regexpp": { 2565 | "version": "3.2.0", 2566 | "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", 2567 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 2568 | "dev": true 2569 | }, 2570 | "resolve": { 2571 | "version": "2.0.0-next.3", 2572 | "resolved": "https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.3.tgz", 2573 | "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", 2574 | "dev": true, 2575 | "requires": { 2576 | "is-core-module": "^2.2.0", 2577 | "path-parse": "^1.0.6" 2578 | } 2579 | }, 2580 | "reusify": { 2581 | "version": "1.0.4", 2582 | "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", 2583 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2584 | "dev": true 2585 | }, 2586 | "run-parallel": { 2587 | "version": "1.2.0", 2588 | "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", 2589 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2590 | "dev": true, 2591 | "requires": { 2592 | "queue-microtask": "^1.2.2" 2593 | } 2594 | }, 2595 | "scheduler": { 2596 | "version": "0.23.0", 2597 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 2598 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 2599 | "peer": true, 2600 | "requires": { 2601 | "loose-envify": "^1.1.0" 2602 | } 2603 | }, 2604 | "semver": { 2605 | "version": "7.3.7", 2606 | "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", 2607 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 2608 | "dev": true, 2609 | "requires": { 2610 | "lru-cache": "^6.0.0" 2611 | } 2612 | }, 2613 | "side-channel": { 2614 | "version": "1.0.4", 2615 | "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", 2616 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 2617 | "dev": true, 2618 | "requires": { 2619 | "call-bind": "^1.0.0", 2620 | "get-intrinsic": "^1.0.2", 2621 | "object-inspect": "^1.9.0" 2622 | } 2623 | }, 2624 | "slash": { 2625 | "version": "3.0.0", 2626 | "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", 2627 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 2628 | "dev": true 2629 | }, 2630 | "string.prototype.matchall": { 2631 | "version": "4.0.7", 2632 | "resolved": "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", 2633 | "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", 2634 | "dev": true, 2635 | "requires": { 2636 | "call-bind": "^1.0.2", 2637 | "define-properties": "^1.1.3", 2638 | "es-abstract": "^1.19.1", 2639 | "get-intrinsic": "^1.1.1", 2640 | "has-symbols": "^1.0.3", 2641 | "internal-slot": "^1.0.3", 2642 | "regexp.prototype.flags": "^1.4.1", 2643 | "side-channel": "^1.0.4" 2644 | } 2645 | }, 2646 | "string.prototype.trimend": { 2647 | "version": "1.0.4", 2648 | "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", 2649 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", 2650 | "dev": true, 2651 | "requires": { 2652 | "call-bind": "^1.0.2", 2653 | "define-properties": "^1.1.3" 2654 | } 2655 | }, 2656 | "string.prototype.trimstart": { 2657 | "version": "1.0.4", 2658 | "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", 2659 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", 2660 | "dev": true, 2661 | "requires": { 2662 | "call-bind": "^1.0.2", 2663 | "define-properties": "^1.1.3" 2664 | } 2665 | }, 2666 | "to-regex-range": { 2667 | "version": "5.0.1", 2668 | "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", 2669 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2670 | "dev": true, 2671 | "requires": { 2672 | "is-number": "^7.0.0" 2673 | } 2674 | }, 2675 | "tslib": { 2676 | "version": "1.14.1", 2677 | "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", 2678 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", 2679 | "dev": true 2680 | }, 2681 | "tsutils": { 2682 | "version": "3.21.0", 2683 | "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz", 2684 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 2685 | "dev": true, 2686 | "requires": { 2687 | "tslib": "^1.8.1" 2688 | } 2689 | }, 2690 | "typescript": { 2691 | "version": "4.6.3", 2692 | "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.6.3.tgz", 2693 | "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", 2694 | "dev": true 2695 | }, 2696 | "unbox-primitive": { 2697 | "version": "1.0.1", 2698 | "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz", 2699 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", 2700 | "dev": true, 2701 | "requires": { 2702 | "function-bind": "^1.1.1", 2703 | "has-bigints": "^1.0.1", 2704 | "has-symbols": "^1.0.2", 2705 | "which-boxed-primitive": "^1.0.2" 2706 | } 2707 | }, 2708 | "which-boxed-primitive": { 2709 | "version": "1.0.2", 2710 | "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 2711 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 2712 | "dev": true, 2713 | "requires": { 2714 | "is-bigint": "^1.0.1", 2715 | "is-boolean-object": "^1.1.0", 2716 | "is-number-object": "^1.0.4", 2717 | "is-string": "^1.0.5", 2718 | "is-symbol": "^1.0.3" 2719 | } 2720 | }, 2721 | "winbox": { 2722 | "version": "0.2.6", 2723 | "resolved": "https://registry.npmjs.org/winbox/-/winbox-0.2.6.tgz", 2724 | "integrity": "sha512-P/Tqjcf4bA0Hr1lqR1YliQsisV8xf+t56xgCtqWN8Urw9RLonYSVQGYw+qILp9tgkPs1o7e1dsl6dskaS6GudQ==" 2725 | }, 2726 | "yallist": { 2727 | "version": "4.0.0", 2728 | "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", 2729 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 2730 | "dev": true 2731 | } 2732 | } 2733 | } 2734 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-winbox", 3 | "version": "1.5.0", 4 | "description": "The React component for WinBox.js. Full Reactful props and state. A window manager for React", 5 | "private": false, 6 | "homepage": "https://github.com/rickonono3/react-winbox", 7 | "repository": { 8 | "type": "git", 9 | "url": "github:rickonono3/react-winbox" 10 | }, 11 | "main": "dist/index.js", 12 | "types": "dist/index.d.ts", 13 | "license": "MIT", 14 | "dependencies": { 15 | "winbox": "=0.2.6" 16 | }, 17 | "peerDependencies": { 18 | "react": ">=16.14.0", 19 | "react-dom": ">=16.14.0" 20 | }, 21 | "devDependencies": { 22 | "@types/react": "^18.0.9", 23 | "@types/react-dom": "^18.0.4", 24 | "@typescript-eslint/eslint-plugin": "^5.19.0", 25 | "@typescript-eslint/parser": "^5.19.0", 26 | "eslint-plugin-react": "^7.29.4", 27 | "typescript": "^4.6.3" 28 | }, 29 | "scripts": { 30 | "build": "tsc" 31 | }, 32 | "eslintConfig": { 33 | "extends": [ 34 | "react-app" 35 | ] 36 | }, 37 | "files": [ 38 | "/dist" 39 | ] 40 | } -------------------------------------------------------------------------------- /publish.ps1: -------------------------------------------------------------------------------- 1 | yarn install 2 | yarn build 3 | npm install 4 | git add . 5 | git commit -m "publish" 6 | npm version patch 7 | npm publish 8 | git push 9 | -------------------------------------------------------------------------------- /publish.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | yarn install 3 | yarn build 4 | npm install 5 | git add . 6 | git commit -m "publish from $(date +'%Y-%m-%d %H:%M:%S')" 7 | npm version patch 8 | npm publish 9 | git push 10 | -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { Component, ReactElement } from 'react'; 2 | import OriginalWinBox from 'winbox/src/js/winbox'; 3 | import ReactDOM from 'react-dom'; 4 | 5 | export type WinBoxControlInfo = { 6 | /** Index to jump into native controls. If no index assigned, custum controls will be arranged side-by-side automatically on the left of native controls*/ 7 | index?: number 8 | /** a name to identify the button, can also style it by using css, may starts with `wb-` */ 9 | class: string 10 | /** an image resource same like icon prop */ 11 | image: string 12 | click?: () => void, 13 | } 14 | 15 | export type WinBoxPropType = { 16 | title?: string 17 | /** 18 | * Icon supports both native image urls and React package resources: 19 | * 20 | * Example: 21 | * ``` 22 | * import icon from './icon.jpg'; 23 | * 24 | * 25 | * ``` 26 | */ 27 | icon?: string 28 | id?: string 29 | children?: ReactElement | ReactElement[] | null 30 | /** 31 | * When you use this, the children elements will be ignored. 32 | */ 33 | url?: string 34 | 35 | noAnimation?: boolean, 36 | noShadow?: boolean, 37 | noHeader?: boolean, 38 | noMin?: boolean, 39 | noMax?: boolean, 40 | noFull?: boolean, 41 | noClose?: boolean, 42 | noResize?: boolean, 43 | noMove?: boolean, 44 | modal?: boolean, 45 | hide?: boolean, 46 | 47 | index?: number, 48 | border?: number, 49 | background?: string, 50 | /** @deprecated this does not work since v1.5.0 */ 51 | splitscreen?: boolean, 52 | 53 | max?: boolean, 54 | min?: boolean, 55 | fullscreen?: boolean, 56 | 57 | x?: string | number | 'center' | 'right', 58 | y?: string | number | 'center' | 'bottom', 59 | /** For dynamical changing, only supports numbers (px) */ 60 | top?: string | number, 61 | /** For dynamical changing, only supports numbers (px) */ 62 | bottom?: string | number, 63 | /** For dynamical changing, only supports numbers (px) */ 64 | left?: string | number, 65 | /** For dynamical changing, only supports numbers (px) */ 66 | right?: string | number, 67 | /** supports units "px" and "%" */ 68 | height?: string | number, 69 | /** supports units "px" and "%" */ 70 | width?: string | number, 71 | 72 | /** 73 | * This callback is called BEFORE the winbox goes to close process. So if you want to destroy the React WinBox component while it is triggered, be sure to wrap destroying actions within `setTimeout` so that they occur after the winbox.js DOM is truly closed,e.g. `setTimeout(() => setState({showWindow: false}))` 74 | * 75 | * see the following document for more detail about the argument and the return value. 76 | * @see https://github.com/nextapps-de/winbox 77 | * @param force Whether you should not abort the winbox to close. If this is true, you MUST return false, or some problems will happen. 78 | * @return noDefaultClose - true if the winbox does not need the default close process, for example, when it needs a confirmation to close instead of being closed suddenly. 79 | */ 80 | onClose?: (force: boolean) => boolean | undefined | void, 81 | onMove?: (x: number, y: number) => any, 82 | onResize?: (width: number, height: number) => any, 83 | onBlur?: () => any, 84 | onFocus?: () => any, 85 | /** @deprecated use onClose instead */ 86 | onclose?: (force: boolean) => boolean | undefined | void, 87 | /** @deprecated use onMove instead */ 88 | onmove?: (x: number, y: number) => any, 89 | /** @deprecated use onMove instead */ 90 | onresize?: (width: number, height: number) => any, 91 | /** @deprecated use onBlur instead */ 92 | onblur?: () => any, 93 | /** @deprecated use onFocus instead */ 94 | onfocus?: () => any, 95 | 96 | /** The `no-xxx` classes that winbox.js already appointed can not assign here, use special props instead, e.g. class `no-resize` to prop `noResize={true}` */ 97 | className?: string, 98 | 99 | // below is from v0.2.6 100 | /** @deprecated Autosize the window for content. In React, that may be impossible, but the param is retained conservatively */ 101 | autosize?: boolean, 102 | /** supports units "px" and "%". For dynamical changing, only supports numbers (px) */ 103 | minWidth?: number | string, 104 | /** supports units "px" and "%". For dynamical changing, only supports numbers (px) */ 105 | minHeight?: number | string, 106 | /** supports units "px" and "%". For dynamical changing, only supports numbers (px) */ 107 | maxWidth?: number | string, 108 | /** supports units "px" and "%". For dynamical changing, only supports numbers (px) */ 109 | maxHeight?: number | string, 110 | /** Callback triggered when the winbox element is being created */ 111 | onCreate?: (options: any) => any, 112 | onFullscreen?: () => any, 113 | onMinimize?: () => any, 114 | onMaximize?: () => any, 115 | onRestore?: () => any, 116 | onHide?: () => any, 117 | onShow?: () => any, 118 | 119 | /** 120 | * an array of WinBoxControlInfo 121 | * @see https://github.com/nextapps-de/winbox#custom-controls 122 | */ 123 | customControls?: WinBoxControlInfo[], 124 | } 125 | 126 | type WinBoxState = { 127 | closed: boolean 128 | } 129 | 130 | /** 131 | * # WinBox React Component 132 | * 133 | * @see https://github.com/rickonono3/react-winbox 134 | * @see https://github.com/nextapps-de/winbox 135 | */ 136 | class WinBox extends Component { 137 | public winBoxObj?: OriginalWinBox; 138 | private cdmCount = 0; 139 | private checkReactVersionGE18 = (): boolean => { 140 | const a = parseInt(React.version.split('.')[0]); 141 | return (a >= 18); 142 | } 143 | 144 | constructor(props) { 145 | super(props); 146 | this.state = { 147 | closed: false, 148 | }; 149 | this.winBoxObj = undefined; 150 | } 151 | 152 | componentDidMount() { 153 | this.cdmCount++; 154 | if (this.checkReactVersionGE18()) { // strict mode safe 155 | if (this.cdmCount >= 2) return; 156 | } 157 | try { 158 | if (this.props.id !== undefined && this.props.id !== null && document.getElementById(this.props.id)) 159 | throw 'duplicated window id'; 160 | this.winBoxObj = OriginalWinBox.new({ 161 | width: 300, 162 | height: 200, 163 | top: 0, 164 | bottom: 0, 165 | left: 0, 166 | right: 0, 167 | hidden: this.props.hide, 168 | // 👆default values 169 | ...this.props, 170 | // 👇override values 171 | minwidth: this.props.minWidth ?? 150, 172 | maxwidth: this.props.maxWidth ?? 2147483647, 173 | minheight: this.props.minHeight ?? 35, 174 | maxheight: this.props.maxHeight ?? 2147483647, 175 | max: false, // wait for creating 176 | min: false, // wait for creating 177 | fullscreen: false, // wait for creating 178 | class: `${this.props.className ?? ''}`, 179 | onclose: (force?: boolean) => { 180 | if (this.props.onClose?.(force ?? false)) { 181 | return true; 182 | } else if (this.props.onclose?.(force ?? false)) { 183 | return true; 184 | } 185 | this.handleClose(); // only when false, run close process. 186 | return false; 187 | }, 188 | onmove: this.props.onMove ?? this.props.onmove, 189 | onresize: this.props.onResize ?? this.props.onresize, 190 | onblur: this.props.onBlur ?? this.props.onblur, 191 | onfocus: this.props.onFocus ?? this.props.onfocus, 192 | oncreate: this.props.onCreate, 193 | onfullscreen: this.props.onFullscreen, 194 | onminimize: this.props.onMinimize, 195 | onmaximize: this.props.onMaximize, 196 | onrestore: this.props.onRestore, 197 | onhide: this.props.onHide, 198 | onshow: this.props.onShow, 199 | }); 200 | setTimeout(() => { 201 | this.forceUpdate(); 202 | }) 203 | } catch (e) { 204 | console.error(e); 205 | //this.winBoxObj?.close(true); 206 | //this.setState({ closed: true }); 207 | } 208 | } 209 | 210 | componentDidUpdate(prevProps: Readonly, prevState: Readonly) { 211 | this.maintain({ prevProps }); 212 | } 213 | 214 | componentWillUnmount() { 215 | try { 216 | if (this.checkReactVersionGE18()) { // strict mode safe (depends on the timeout of 100ms, in low performance enviroments may crash.) 217 | if (this.cdmCount <= 1) { 218 | setTimeout(() => { 219 | if (this.cdmCount <= 1) { 220 | this.winBoxObj?.close(true); 221 | } 222 | }, 100); 223 | } else { 224 | this.winBoxObj?.close(true); 225 | } 226 | } else { // less than 18, keep old code 227 | this.winBoxObj?.close(true); 228 | } 229 | } catch (ignored) { } 230 | } 231 | 232 | public forceUpdate(callback?: () => void): void { 233 | try { 234 | this.maintain({ force: true }); 235 | } catch (e) { 236 | console.error(e); 237 | //this.winBoxObj?.close(true); 238 | //this.setState({ closed: true }); 239 | } 240 | 241 | super.forceUpdate(callback); 242 | } 243 | 244 | public getId = (): string | undefined => (this.winBoxObj?.id); 245 | 246 | public getIndex = (): number | undefined => (this.winBoxObj?.index); 247 | 248 | public getPosition = (): { x: number, y: number } | undefined => { 249 | if (this.winBoxObj) { 250 | return { 251 | x: this.winBoxObj.x, 252 | y: this.winBoxObj.y, 253 | }; 254 | } 255 | return undefined; 256 | } 257 | 258 | public getSize = (): { width: number, height: number } | undefined => { 259 | if (this.winBoxObj) { 260 | return { 261 | width: this.winBoxObj.width, 262 | height: this.winBoxObj.height, 263 | }; 264 | } 265 | return undefined; 266 | } 267 | 268 | public getSizeLimit = (): { minWidth: number, minHeight: number, maxWidth: number, maxHeight: number } | undefined => { 269 | if (this.winBoxObj) { 270 | return { 271 | minWidth: this.winBoxObj.minwidth, 272 | minHeight: this.winBoxObj.minheight, 273 | maxWidth: this.winBoxObj.maxwidth, 274 | maxHeight: this.winBoxObj.maxheight, 275 | }; 276 | } 277 | return undefined; 278 | } 279 | 280 | public getViewportBoundary = (): { top: number, right: number, bottom: number, left: number } | undefined => { 281 | if (this.winBoxObj) { 282 | return { 283 | top: this.winBoxObj.top, 284 | right: this.winBoxObj.right, 285 | bottom: this.winBoxObj.bottom, 286 | left: this.winBoxObj.left, 287 | }; 288 | } 289 | return undefined; 290 | } 291 | 292 | public isFocused = (): boolean => (this.winBoxObj?.focused ?? false); 293 | 294 | public isHidden = (): boolean => (this.winBoxObj?.hidden ?? false); 295 | 296 | public isMax = (): boolean => (this.winBoxObj?.max ?? false); 297 | 298 | public isMin = (): boolean => (this.winBoxObj?.min ?? false); 299 | 300 | public isFullscreen = (): boolean => (this.winBoxObj?.full ?? false); 301 | 302 | public isClosed = (): boolean => (this.state.closed); 303 | 304 | public focus = (): void => { this.winBoxObj?.focus() } 305 | 306 | public blur = (): void => { this.winBoxObj?.blur() } 307 | 308 | /** We suggest using `min` prop instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 309 | public minimize = (): void => { this.winBoxObj?.minimize() } 310 | 311 | /** We suggest using `max` prop instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 312 | public maximize = (): void => { this.winBoxObj?.maximize() } 313 | 314 | /** We suggest using `fullscreen` prop instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 315 | public fullscreen = (): void => { this.winBoxObj?.fullscreen() } 316 | 317 | /** We suggest using `max`/`min`/`fullscreen` props instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 318 | public restore = (): void => { this.winBoxObj?.restore() } 319 | 320 | /** We suggest using `hide` props instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 321 | public hide = (): void => { this.winBoxObj?.hide() } 322 | 323 | /** We suggest using `hide` props instead of this method. If you have to forcely refresh the winbox's state, may `forceUpdate` would be better?*/ 324 | public show = (): void => { this.winBoxObj?.show() } 325 | 326 | maintainStyle = () => { 327 | if (!this.winBoxObj) return; 328 | this.winBoxObj[this.props.noAnimation ? 'addClass' : 'removeClass']('no-animation'); 329 | this.winBoxObj[this.props.noClose ? 'addClass' : 'removeClass']('no-close'); 330 | this.winBoxObj[this.props.noFull ? 'addClass' : 'removeClass']('no-full'); 331 | this.winBoxObj[this.props.noMin ? 'addClass' : 'removeClass']('no-min'); 332 | this.winBoxObj[this.props.noMax ? 'addClass' : 'removeClass']('no-max'); 333 | this.winBoxObj[this.props.noMove ? 'addClass' : 'removeClass']('no-move'); 334 | this.winBoxObj[this.props.noHeader ? 'addClass' : 'removeClass']('no-header'); 335 | this.winBoxObj[this.props.noResize ? 'addClass' : 'removeClass']('no-resize'); 336 | this.winBoxObj[this.props.noShadow ? 'addClass' : 'removeClass']('no-shadow'); 337 | this.winBoxObj[this.props.modal ? 'addClass' : 'removeClass']('modal'); 338 | this.winBoxObj[this.props.hide ? 'addClass' : 'removeClass']('hide'); 339 | }; 340 | 341 | maintain = (args?: { force?: boolean, prevProps?: WinBoxPropType }) => { 342 | if (!this.winBoxObj) return; 343 | const { force, prevProps } = args ?? {}; 344 | if (force || prevProps?.title !== this.props.title) { 345 | if (typeof this.props.title === 'string') 346 | this.winBoxObj.setTitle(this.props.title); 347 | } 348 | if (force || prevProps?.icon !== this.props.icon) { 349 | if (typeof this.props.icon === 'string') 350 | this.winBoxObj.setIcon(this.props.icon); 351 | } 352 | if (force || prevProps?.url !== this.props.url) { 353 | if (this.props.url != undefined) 354 | this.winBoxObj.setUrl(this.props.url); 355 | } 356 | if (force || prevProps?.background !== this.props.background) { 357 | if (this.props.background != undefined) 358 | this.winBoxObj.setBackground(this.props.background); 359 | } 360 | if (force 361 | || prevProps?.minWidth !== this.props.minWidth 362 | || prevProps?.minHeight !== this.props.minHeight 363 | || prevProps?.maxWidth !== this.props.maxWidth 364 | || prevProps?.maxHeight !== this.props.maxHeight 365 | ) { 366 | const minWidth = this.props.minWidth ?? this.winBoxObj.minwidth; 367 | const minHeight = this.props.minHeight ?? this.winBoxObj.minheight; 368 | const maxWidth = this.props.maxWidth ?? this.winBoxObj.maxwidth; 369 | const maxHeight = this.props.maxHeight ?? this.winBoxObj.maxheight; 370 | this.winBoxObj.minwidth = minWidth; 371 | this.winBoxObj.minheight = minHeight; 372 | this.winBoxObj.maxwidth = maxWidth; 373 | this.winBoxObj.maxheight = maxHeight; 374 | } 375 | if (force 376 | || prevProps?.width !== this.props.width 377 | || prevProps?.height !== this.props.height 378 | ) { 379 | const width = this.props.width ?? this.winBoxObj.width; 380 | const height = this.props.height ?? this.winBoxObj.height; 381 | // use function params rather than assigning fields directly to avoid the 'just support numbers' feature 382 | // see https://github.com/nextapps-de/winbox#custom-position--size 383 | this.winBoxObj.resize(width, height); 384 | } 385 | if (force 386 | || prevProps?.x !== this.props.x 387 | || prevProps?.y !== this.props.y 388 | ) { 389 | const x = this.props.x ?? this.winBoxObj.x; 390 | const y = this.props.y ?? this.winBoxObj.y; 391 | // use function params rather than assigning fields directly to avoid the 'just support numbers' feature 392 | // see https://github.com/nextapps-de/winbox#custom-position--size 393 | this.winBoxObj.move(x, y); 394 | } 395 | if (force 396 | || prevProps?.top !== this.props.top 397 | || prevProps?.right !== this.props.right 398 | || prevProps?.bottom !== this.props.bottom 399 | || prevProps?.left !== this.props.left 400 | ) { 401 | this.winBoxObj.top = this.props.top ?? this.winBoxObj.top; 402 | this.winBoxObj.right = this.props.right ?? this.winBoxObj.right; 403 | this.winBoxObj.bottom = this.props.bottom ?? this.winBoxObj.bottom; 404 | this.winBoxObj.left = this.props.left ?? this.winBoxObj.left; 405 | this.winBoxObj.move(); 406 | } 407 | if (force || prevProps?.fullscreen !== this.props.fullscreen) { 408 | if (this.props.fullscreen != undefined) 409 | this.winBoxObj.fullscreen(this.props.fullscreen); 410 | } 411 | if (force || prevProps?.min !== this.props.min) { 412 | if (this.props.min != undefined) 413 | this.winBoxObj.minimize(this.props.min); 414 | } 415 | if (force || prevProps?.max !== this.props.max) { 416 | if (this.props.max != undefined) 417 | this.winBoxObj.maximize(this.props.max); 418 | } 419 | if (force || prevProps?.className !== this.props.className) { 420 | if (prevProps?.className != undefined) { 421 | const classes = prevProps.className.replaceAll(/\s+/g, ' ').split(' ').filter(c => c != ''); 422 | for (const c of classes) { 423 | if (this.winBoxObj.hasClass(c)) { 424 | this.winBoxObj.removeClass(c); 425 | } 426 | } 427 | } 428 | if (this.props.className != undefined) { 429 | const classes = this.props.className.replaceAll(/\s+/g, ' ').split(' ').filter(c => c != ''); 430 | for (const c of classes) { 431 | if (!this.winBoxObj.hasClass(c)) { 432 | this.winBoxObj.addClass(c); 433 | } 434 | } 435 | } 436 | } 437 | if (force || prevProps?.customControls !== this.props.customControls 438 | && !deepEqual(prevProps?.customControls, this.props.customControls)) { 439 | if (prevProps?.customControls != undefined) { 440 | prevProps.customControls 441 | .filter(o => typeof o === 'object' && o.class) 442 | .forEach(o => this.winBoxObj.removeControl(o.class)); 443 | } 444 | if (this.props.customControls != undefined) { 445 | this.props.customControls 446 | .filter(o => typeof o === 'object' && o.class) 447 | .forEach(o => this.winBoxObj.addControl(o)); 448 | } 449 | } 450 | this.maintainStyle(); 451 | }; 452 | 453 | handleClose = () => { 454 | this.winBoxObj = undefined; 455 | this.setState({ closed: true }); 456 | }; 457 | 458 | render() { 459 | if (Object.keys(this.props).indexOf('url') !== -1 && this.props.url) 460 | return null; // do nothing if url is set. 461 | if (!this.winBoxObj || !this.winBoxObj.body) 462 | return null; 463 | return ReactDOM.createPortal(<>{this.props.children}, this.winBoxObj.body); 464 | } 465 | } 466 | 467 | export default WinBox; 468 | 469 | function deepEqual(x: any, y: any) { 470 | const ok = Object.keys, tx = typeof x, ty = typeof y; 471 | return x && y && tx === 'object' && tx === ty ? ( 472 | ok(x).length === ok(y).length && 473 | ok(x).every(key => deepEqual(x[key], y[key])) 474 | ) : (x === y); 475 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "dist", 4 | "module": "commonjs", 5 | "target": "es5", 6 | "noImplicitAny": false, 7 | "noUnusedLocals": false, 8 | "noUnusedParameters": false, 9 | "lib": [ 10 | "dom", 11 | "dom.iterable", 12 | "es6", 13 | "es2016", 14 | "es2017", 15 | "esnext" 16 | ], 17 | "declaration": true, 18 | "allowJs": true, 19 | "esModuleInterop": true, 20 | "allowSyntheticDefaultImports": true, 21 | "strict": true, 22 | "forceConsistentCasingInFileNames": true, 23 | "noFallthroughCasesInSwitch": true, 24 | "moduleResolution": "node", 25 | "resolveJsonModule": true, 26 | "isolatedModules": true, 27 | "noEmit": false, 28 | "jsx": "react-jsx" 29 | }, 30 | "include": [ 31 | "src" 32 | ], 33 | "exclude": [ 34 | "node_modules", 35 | "lib" 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@nodelib/fs.scandir@2.1.5": 6 | "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" 7 | "resolved" "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" 8 | "version" "2.1.5" 9 | dependencies: 10 | "@nodelib/fs.stat" "2.0.5" 11 | "run-parallel" "^1.1.9" 12 | 13 | "@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": 14 | "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" 15 | "resolved" "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" 16 | "version" "2.0.5" 17 | 18 | "@nodelib/fs.walk@^1.2.3": 19 | "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" 20 | "resolved" "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" 21 | "version" "1.2.8" 22 | dependencies: 23 | "@nodelib/fs.scandir" "2.1.5" 24 | "fastq" "^1.6.0" 25 | 26 | "@types/json-schema@^7.0.9": 27 | "integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" 28 | "resolved" "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz" 29 | "version" "7.0.11" 30 | 31 | "@types/prop-types@*": 32 | "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" 33 | "resolved" "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz" 34 | "version" "15.7.5" 35 | 36 | "@types/react-dom@^18.0.4": 37 | "integrity" "sha512-FgTtbqPOCI3dzZPZoC2T/sx3L34qxy99ITWn4eoSA95qPyXDMH0ALoAqUp49ITniiJFsXUVBtalh/KffMpg21Q==" 38 | "resolved" "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.4.tgz" 39 | "version" "18.0.4" 40 | dependencies: 41 | "@types/react" "*" 42 | 43 | "@types/react@*", "@types/react@^18.0.9": 44 | "integrity" "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==" 45 | "resolved" "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz" 46 | "version" "18.0.9" 47 | dependencies: 48 | "@types/prop-types" "*" 49 | "@types/scheduler" "*" 50 | "csstype" "^3.0.2" 51 | 52 | "@types/scheduler@*": 53 | "integrity" "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" 54 | "resolved" "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz" 55 | "version" "0.16.2" 56 | 57 | "@typescript-eslint/eslint-plugin@^5.19.0": 58 | "integrity" "sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg==" 59 | "resolved" "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz" 60 | "version" "5.19.0" 61 | dependencies: 62 | "@typescript-eslint/scope-manager" "5.19.0" 63 | "@typescript-eslint/type-utils" "5.19.0" 64 | "@typescript-eslint/utils" "5.19.0" 65 | "debug" "^4.3.2" 66 | "functional-red-black-tree" "^1.0.1" 67 | "ignore" "^5.1.8" 68 | "regexpp" "^3.2.0" 69 | "semver" "^7.3.5" 70 | "tsutils" "^3.21.0" 71 | 72 | "@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.19.0": 73 | "integrity" "sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ==" 74 | "resolved" "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.19.0.tgz" 75 | "version" "5.19.0" 76 | dependencies: 77 | "@typescript-eslint/scope-manager" "5.19.0" 78 | "@typescript-eslint/types" "5.19.0" 79 | "@typescript-eslint/typescript-estree" "5.19.0" 80 | "debug" "^4.3.2" 81 | 82 | "@typescript-eslint/scope-manager@5.19.0": 83 | "integrity" "sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g==" 84 | "resolved" "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz" 85 | "version" "5.19.0" 86 | dependencies: 87 | "@typescript-eslint/types" "5.19.0" 88 | "@typescript-eslint/visitor-keys" "5.19.0" 89 | 90 | "@typescript-eslint/type-utils@5.19.0": 91 | "integrity" "sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q==" 92 | "resolved" "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz" 93 | "version" "5.19.0" 94 | dependencies: 95 | "@typescript-eslint/utils" "5.19.0" 96 | "debug" "^4.3.2" 97 | "tsutils" "^3.21.0" 98 | 99 | "@typescript-eslint/types@5.19.0": 100 | "integrity" "sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w==" 101 | "resolved" "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.19.0.tgz" 102 | "version" "5.19.0" 103 | 104 | "@typescript-eslint/typescript-estree@5.19.0": 105 | "integrity" "sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw==" 106 | "resolved" "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz" 107 | "version" "5.19.0" 108 | dependencies: 109 | "@typescript-eslint/types" "5.19.0" 110 | "@typescript-eslint/visitor-keys" "5.19.0" 111 | "debug" "^4.3.2" 112 | "globby" "^11.0.4" 113 | "is-glob" "^4.0.3" 114 | "semver" "^7.3.5" 115 | "tsutils" "^3.21.0" 116 | 117 | "@typescript-eslint/utils@5.19.0": 118 | "integrity" "sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ==" 119 | "resolved" "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.19.0.tgz" 120 | "version" "5.19.0" 121 | dependencies: 122 | "@types/json-schema" "^7.0.9" 123 | "@typescript-eslint/scope-manager" "5.19.0" 124 | "@typescript-eslint/types" "5.19.0" 125 | "@typescript-eslint/typescript-estree" "5.19.0" 126 | "eslint-scope" "^5.1.1" 127 | "eslint-utils" "^3.0.0" 128 | 129 | "@typescript-eslint/visitor-keys@5.19.0": 130 | "integrity" "sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ==" 131 | "resolved" "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz" 132 | "version" "5.19.0" 133 | dependencies: 134 | "@typescript-eslint/types" "5.19.0" 135 | "eslint-visitor-keys" "^3.0.0" 136 | 137 | "array-includes@^3.1.4": 138 | "integrity" "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==" 139 | "resolved" "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.4.tgz" 140 | "version" "3.1.4" 141 | dependencies: 142 | "call-bind" "^1.0.2" 143 | "define-properties" "^1.1.3" 144 | "es-abstract" "^1.19.1" 145 | "get-intrinsic" "^1.1.1" 146 | "is-string" "^1.0.7" 147 | 148 | "array-union@^2.1.0": 149 | "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" 150 | "resolved" "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz" 151 | "version" "2.1.0" 152 | 153 | "array.prototype.flatmap@^1.2.5": 154 | "integrity" "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==" 155 | "resolved" "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz" 156 | "version" "1.3.0" 157 | dependencies: 158 | "call-bind" "^1.0.2" 159 | "define-properties" "^1.1.3" 160 | "es-abstract" "^1.19.2" 161 | "es-shim-unscopables" "^1.0.0" 162 | 163 | "balanced-match@^1.0.0": 164 | "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 165 | "resolved" "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz" 166 | "version" "1.0.2" 167 | 168 | "brace-expansion@^1.1.7": 169 | "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" 170 | "resolved" "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz" 171 | "version" "1.1.11" 172 | dependencies: 173 | "balanced-match" "^1.0.0" 174 | "concat-map" "0.0.1" 175 | 176 | "braces@^3.0.2": 177 | "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" 178 | "resolved" "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz" 179 | "version" "3.0.2" 180 | dependencies: 181 | "fill-range" "^7.0.1" 182 | 183 | "call-bind@^1.0.0", "call-bind@^1.0.2": 184 | "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" 185 | "resolved" "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz" 186 | "version" "1.0.2" 187 | dependencies: 188 | "function-bind" "^1.1.1" 189 | "get-intrinsic" "^1.0.2" 190 | 191 | "concat-map@0.0.1": 192 | "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 193 | "resolved" "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz" 194 | "version" "0.0.1" 195 | 196 | "csstype@^3.0.2": 197 | "integrity" "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" 198 | "resolved" "https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz" 199 | "version" "3.0.11" 200 | 201 | "debug@^4.3.2": 202 | "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" 203 | "resolved" "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz" 204 | "version" "4.3.4" 205 | dependencies: 206 | "ms" "2.1.2" 207 | 208 | "define-properties@^1.1.3": 209 | "integrity" "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==" 210 | "resolved" "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.4.tgz" 211 | "version" "1.1.4" 212 | dependencies: 213 | "has-property-descriptors" "^1.0.0" 214 | "object-keys" "^1.1.1" 215 | 216 | "dir-glob@^3.0.1": 217 | "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" 218 | "resolved" "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz" 219 | "version" "3.0.1" 220 | dependencies: 221 | "path-type" "^4.0.0" 222 | 223 | "doctrine@^2.1.0": 224 | "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==" 225 | "resolved" "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz" 226 | "version" "2.1.0" 227 | dependencies: 228 | "esutils" "^2.0.2" 229 | 230 | "es-abstract@^1.19.1", "es-abstract@^1.19.2": 231 | "integrity" "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==" 232 | "resolved" "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.19.5.tgz" 233 | "version" "1.19.5" 234 | dependencies: 235 | "call-bind" "^1.0.2" 236 | "es-to-primitive" "^1.2.1" 237 | "function-bind" "^1.1.1" 238 | "get-intrinsic" "^1.1.1" 239 | "get-symbol-description" "^1.0.0" 240 | "has" "^1.0.3" 241 | "has-symbols" "^1.0.3" 242 | "internal-slot" "^1.0.3" 243 | "is-callable" "^1.2.4" 244 | "is-negative-zero" "^2.0.2" 245 | "is-regex" "^1.1.4" 246 | "is-shared-array-buffer" "^1.0.2" 247 | "is-string" "^1.0.7" 248 | "is-weakref" "^1.0.2" 249 | "object-inspect" "^1.12.0" 250 | "object-keys" "^1.1.1" 251 | "object.assign" "^4.1.2" 252 | "string.prototype.trimend" "^1.0.4" 253 | "string.prototype.trimstart" "^1.0.4" 254 | "unbox-primitive" "^1.0.1" 255 | 256 | "es-shim-unscopables@^1.0.0": 257 | "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==" 258 | "resolved" "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" 259 | "version" "1.0.0" 260 | dependencies: 261 | "has" "^1.0.3" 262 | 263 | "es-to-primitive@^1.2.1": 264 | "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" 265 | "resolved" "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz" 266 | "version" "1.2.1" 267 | dependencies: 268 | "is-callable" "^1.1.4" 269 | "is-date-object" "^1.0.1" 270 | "is-symbol" "^1.0.2" 271 | 272 | "eslint-plugin-react@^7.29.4": 273 | "integrity" "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==" 274 | "resolved" "https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz" 275 | "version" "7.29.4" 276 | dependencies: 277 | "array-includes" "^3.1.4" 278 | "array.prototype.flatmap" "^1.2.5" 279 | "doctrine" "^2.1.0" 280 | "estraverse" "^5.3.0" 281 | "jsx-ast-utils" "^2.4.1 || ^3.0.0" 282 | "minimatch" "^3.1.2" 283 | "object.entries" "^1.1.5" 284 | "object.fromentries" "^2.0.5" 285 | "object.hasown" "^1.1.0" 286 | "object.values" "^1.1.5" 287 | "prop-types" "^15.8.1" 288 | "resolve" "^2.0.0-next.3" 289 | "semver" "^6.3.0" 290 | "string.prototype.matchall" "^4.0.6" 291 | 292 | "eslint-scope@^5.1.1": 293 | "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" 294 | "resolved" "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz" 295 | "version" "5.1.1" 296 | dependencies: 297 | "esrecurse" "^4.3.0" 298 | "estraverse" "^4.1.1" 299 | 300 | "eslint-utils@^3.0.0": 301 | "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==" 302 | "resolved" "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz" 303 | "version" "3.0.0" 304 | dependencies: 305 | "eslint-visitor-keys" "^2.0.0" 306 | 307 | "eslint-visitor-keys@^2.0.0": 308 | "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" 309 | "resolved" "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" 310 | "version" "2.1.0" 311 | 312 | "eslint-visitor-keys@^3.0.0": 313 | "integrity" "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" 314 | "resolved" "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" 315 | "version" "3.3.0" 316 | 317 | "esrecurse@^4.3.0": 318 | "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" 319 | "resolved" "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz" 320 | "version" "4.3.0" 321 | dependencies: 322 | "estraverse" "^5.2.0" 323 | 324 | "estraverse@^4.1.1": 325 | "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" 326 | "resolved" "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz" 327 | "version" "4.3.0" 328 | 329 | "estraverse@^5.2.0", "estraverse@^5.3.0": 330 | "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" 331 | "resolved" "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz" 332 | "version" "5.3.0" 333 | 334 | "esutils@^2.0.2": 335 | "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" 336 | "resolved" "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz" 337 | "version" "2.0.3" 338 | 339 | "fast-glob@^3.2.9": 340 | "integrity" "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==" 341 | "resolved" "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz" 342 | "version" "3.2.11" 343 | dependencies: 344 | "@nodelib/fs.stat" "^2.0.2" 345 | "@nodelib/fs.walk" "^1.2.3" 346 | "glob-parent" "^5.1.2" 347 | "merge2" "^1.3.0" 348 | "micromatch" "^4.0.4" 349 | 350 | "fastq@^1.6.0": 351 | "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" 352 | "resolved" "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz" 353 | "version" "1.13.0" 354 | dependencies: 355 | "reusify" "^1.0.4" 356 | 357 | "fill-range@^7.0.1": 358 | "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" 359 | "resolved" "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz" 360 | "version" "7.0.1" 361 | dependencies: 362 | "to-regex-range" "^5.0.1" 363 | 364 | "function-bind@^1.1.1": 365 | "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 366 | "resolved" "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz" 367 | "version" "1.1.1" 368 | 369 | "functional-red-black-tree@^1.0.1": 370 | "integrity" "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" 371 | "resolved" "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" 372 | "version" "1.0.1" 373 | 374 | "functions-have-names@^1.2.2": 375 | "integrity" "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==" 376 | "resolved" "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.2.tgz" 377 | "version" "1.2.2" 378 | 379 | "get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1": 380 | "integrity" "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" 381 | "resolved" "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz" 382 | "version" "1.1.1" 383 | dependencies: 384 | "function-bind" "^1.1.1" 385 | "has" "^1.0.3" 386 | "has-symbols" "^1.0.1" 387 | 388 | "get-symbol-description@^1.0.0": 389 | "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" 390 | "resolved" "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz" 391 | "version" "1.0.0" 392 | dependencies: 393 | "call-bind" "^1.0.2" 394 | "get-intrinsic" "^1.1.1" 395 | 396 | "glob-parent@^5.1.2": 397 | "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" 398 | "resolved" "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz" 399 | "version" "5.1.2" 400 | dependencies: 401 | "is-glob" "^4.0.1" 402 | 403 | "globby@^11.0.4": 404 | "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==" 405 | "resolved" "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz" 406 | "version" "11.1.0" 407 | dependencies: 408 | "array-union" "^2.1.0" 409 | "dir-glob" "^3.0.1" 410 | "fast-glob" "^3.2.9" 411 | "ignore" "^5.2.0" 412 | "merge2" "^1.4.1" 413 | "slash" "^3.0.0" 414 | 415 | "has-bigints@^1.0.1": 416 | "integrity" "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" 417 | "resolved" "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.1.tgz" 418 | "version" "1.0.1" 419 | 420 | "has-property-descriptors@^1.0.0": 421 | "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" 422 | "resolved" "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" 423 | "version" "1.0.0" 424 | dependencies: 425 | "get-intrinsic" "^1.1.1" 426 | 427 | "has-symbols@^1.0.1", "has-symbols@^1.0.2", "has-symbols@^1.0.3": 428 | "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" 429 | "resolved" "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz" 430 | "version" "1.0.3" 431 | 432 | "has-tostringtag@^1.0.0": 433 | "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" 434 | "resolved" "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz" 435 | "version" "1.0.0" 436 | dependencies: 437 | "has-symbols" "^1.0.2" 438 | 439 | "has@^1.0.3": 440 | "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" 441 | "resolved" "https://registry.npmmirror.com/has/-/has-1.0.3.tgz" 442 | "version" "1.0.3" 443 | dependencies: 444 | "function-bind" "^1.1.1" 445 | 446 | "ignore@^5.1.8", "ignore@^5.2.0": 447 | "integrity" "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" 448 | "resolved" "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz" 449 | "version" "5.2.0" 450 | 451 | "internal-slot@^1.0.3": 452 | "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==" 453 | "resolved" "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.3.tgz" 454 | "version" "1.0.3" 455 | dependencies: 456 | "get-intrinsic" "^1.1.0" 457 | "has" "^1.0.3" 458 | "side-channel" "^1.0.4" 459 | 460 | "is-bigint@^1.0.1": 461 | "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" 462 | "resolved" "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz" 463 | "version" "1.0.4" 464 | dependencies: 465 | "has-bigints" "^1.0.1" 466 | 467 | "is-boolean-object@^1.1.0": 468 | "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" 469 | "resolved" "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz" 470 | "version" "1.1.2" 471 | dependencies: 472 | "call-bind" "^1.0.2" 473 | "has-tostringtag" "^1.0.0" 474 | 475 | "is-callable@^1.1.4", "is-callable@^1.2.4": 476 | "integrity" "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" 477 | "resolved" "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.4.tgz" 478 | "version" "1.2.4" 479 | 480 | "is-core-module@^2.2.0": 481 | "integrity" "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==" 482 | "resolved" "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz" 483 | "version" "2.8.1" 484 | dependencies: 485 | "has" "^1.0.3" 486 | 487 | "is-date-object@^1.0.1": 488 | "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" 489 | "resolved" "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz" 490 | "version" "1.0.5" 491 | dependencies: 492 | "has-tostringtag" "^1.0.0" 493 | 494 | "is-extglob@^2.1.1": 495 | "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" 496 | "resolved" "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz" 497 | "version" "2.1.1" 498 | 499 | "is-glob@^4.0.1", "is-glob@^4.0.3": 500 | "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" 501 | "resolved" "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz" 502 | "version" "4.0.3" 503 | dependencies: 504 | "is-extglob" "^2.1.1" 505 | 506 | "is-negative-zero@^2.0.2": 507 | "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" 508 | "resolved" "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz" 509 | "version" "2.0.2" 510 | 511 | "is-number-object@^1.0.4": 512 | "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==" 513 | "resolved" "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz" 514 | "version" "1.0.7" 515 | dependencies: 516 | "has-tostringtag" "^1.0.0" 517 | 518 | "is-number@^7.0.0": 519 | "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" 520 | "resolved" "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz" 521 | "version" "7.0.0" 522 | 523 | "is-regex@^1.1.4": 524 | "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" 525 | "resolved" "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz" 526 | "version" "1.1.4" 527 | dependencies: 528 | "call-bind" "^1.0.2" 529 | "has-tostringtag" "^1.0.0" 530 | 531 | "is-shared-array-buffer@^1.0.2": 532 | "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==" 533 | "resolved" "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" 534 | "version" "1.0.2" 535 | dependencies: 536 | "call-bind" "^1.0.2" 537 | 538 | "is-string@^1.0.5", "is-string@^1.0.7": 539 | "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" 540 | "resolved" "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz" 541 | "version" "1.0.7" 542 | dependencies: 543 | "has-tostringtag" "^1.0.0" 544 | 545 | "is-symbol@^1.0.2", "is-symbol@^1.0.3": 546 | "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" 547 | "resolved" "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz" 548 | "version" "1.0.4" 549 | dependencies: 550 | "has-symbols" "^1.0.2" 551 | 552 | "is-weakref@^1.0.2": 553 | "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==" 554 | "resolved" "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz" 555 | "version" "1.0.2" 556 | dependencies: 557 | "call-bind" "^1.0.2" 558 | 559 | "js-tokens@^3.0.0 || ^4.0.0": 560 | "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 561 | "resolved" "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz" 562 | "version" "4.0.0" 563 | 564 | "jsx-ast-utils@^2.4.1 || ^3.0.0": 565 | "integrity" "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==" 566 | "resolved" "https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz" 567 | "version" "3.2.2" 568 | dependencies: 569 | "array-includes" "^3.1.4" 570 | "object.assign" "^4.1.2" 571 | 572 | "loose-envify@^1.1.0", "loose-envify@^1.4.0": 573 | "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" 574 | "resolved" "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz" 575 | "version" "1.4.0" 576 | dependencies: 577 | "js-tokens" "^3.0.0 || ^4.0.0" 578 | 579 | "lru-cache@^6.0.0": 580 | "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" 581 | "resolved" "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz" 582 | "version" "6.0.0" 583 | dependencies: 584 | "yallist" "^4.0.0" 585 | 586 | "merge2@^1.3.0", "merge2@^1.4.1": 587 | "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" 588 | "resolved" "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz" 589 | "version" "1.4.1" 590 | 591 | "micromatch@^4.0.4": 592 | "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" 593 | "resolved" "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz" 594 | "version" "4.0.5" 595 | dependencies: 596 | "braces" "^3.0.2" 597 | "picomatch" "^2.3.1" 598 | 599 | "minimatch@^3.1.2": 600 | "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" 601 | "resolved" "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz" 602 | "version" "3.1.2" 603 | dependencies: 604 | "brace-expansion" "^1.1.7" 605 | 606 | "ms@2.1.2": 607 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 608 | "resolved" "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz" 609 | "version" "2.1.2" 610 | 611 | "object-assign@^4.1.1": 612 | "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 613 | "resolved" "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz" 614 | "version" "4.1.1" 615 | 616 | "object-inspect@^1.12.0", "object-inspect@^1.9.0": 617 | "integrity" "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" 618 | "resolved" "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz" 619 | "version" "1.12.0" 620 | 621 | "object-keys@^1.1.1": 622 | "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" 623 | "resolved" "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz" 624 | "version" "1.1.1" 625 | 626 | "object.assign@^4.1.2": 627 | "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" 628 | "resolved" "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.2.tgz" 629 | "version" "4.1.2" 630 | dependencies: 631 | "call-bind" "^1.0.0" 632 | "define-properties" "^1.1.3" 633 | "has-symbols" "^1.0.1" 634 | "object-keys" "^1.1.1" 635 | 636 | "object.entries@^1.1.5": 637 | "integrity" "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==" 638 | "resolved" "https://registry.npmmirror.com/object.entries/-/object.entries-1.1.5.tgz" 639 | "version" "1.1.5" 640 | dependencies: 641 | "call-bind" "^1.0.2" 642 | "define-properties" "^1.1.3" 643 | "es-abstract" "^1.19.1" 644 | 645 | "object.fromentries@^2.0.5": 646 | "integrity" "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==" 647 | "resolved" "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.5.tgz" 648 | "version" "2.0.5" 649 | dependencies: 650 | "call-bind" "^1.0.2" 651 | "define-properties" "^1.1.3" 652 | "es-abstract" "^1.19.1" 653 | 654 | "object.hasown@^1.1.0": 655 | "integrity" "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==" 656 | "resolved" "https://registry.npmmirror.com/object.hasown/-/object.hasown-1.1.0.tgz" 657 | "version" "1.1.0" 658 | dependencies: 659 | "define-properties" "^1.1.3" 660 | "es-abstract" "^1.19.1" 661 | 662 | "object.values@^1.1.5": 663 | "integrity" "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==" 664 | "resolved" "https://registry.npmmirror.com/object.values/-/object.values-1.1.5.tgz" 665 | "version" "1.1.5" 666 | dependencies: 667 | "call-bind" "^1.0.2" 668 | "define-properties" "^1.1.3" 669 | "es-abstract" "^1.19.1" 670 | 671 | "path-parse@^1.0.6": 672 | "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 673 | "resolved" "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz" 674 | "version" "1.0.7" 675 | 676 | "path-type@^4.0.0": 677 | "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" 678 | "resolved" "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz" 679 | "version" "4.0.0" 680 | 681 | "picomatch@^2.3.1": 682 | "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" 683 | "resolved" "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz" 684 | "version" "2.3.1" 685 | 686 | "prop-types@^15.8.1": 687 | "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" 688 | "resolved" "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz" 689 | "version" "15.8.1" 690 | dependencies: 691 | "loose-envify" "^1.4.0" 692 | "object-assign" "^4.1.1" 693 | "react-is" "^16.13.1" 694 | 695 | "queue-microtask@^1.2.2": 696 | "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 697 | "resolved" "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz" 698 | "version" "1.2.3" 699 | 700 | "react-dom@>=16.14.0": 701 | "integrity" "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==" 702 | "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" 703 | "version" "18.2.0" 704 | dependencies: 705 | "loose-envify" "^1.1.0" 706 | "scheduler" "^0.23.0" 707 | 708 | "react-is@^16.13.1": 709 | "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 710 | "resolved" "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz" 711 | "version" "16.13.1" 712 | 713 | "react@^18.2.0", "react@>=16.14.0": 714 | "integrity" "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==" 715 | "resolved" "https://registry.npmjs.org/react/-/react-18.2.0.tgz" 716 | "version" "18.2.0" 717 | dependencies: 718 | "loose-envify" "^1.1.0" 719 | 720 | "regexp.prototype.flags@^1.4.1": 721 | "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==" 722 | "resolved" "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" 723 | "version" "1.4.3" 724 | dependencies: 725 | "call-bind" "^1.0.2" 726 | "define-properties" "^1.1.3" 727 | "functions-have-names" "^1.2.2" 728 | 729 | "regexpp@^3.2.0": 730 | "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" 731 | "resolved" "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz" 732 | "version" "3.2.0" 733 | 734 | "resolve@^2.0.0-next.3": 735 | "integrity" "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==" 736 | "resolved" "https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.3.tgz" 737 | "version" "2.0.0-next.3" 738 | dependencies: 739 | "is-core-module" "^2.2.0" 740 | "path-parse" "^1.0.6" 741 | 742 | "reusify@^1.0.4": 743 | "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 744 | "resolved" "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz" 745 | "version" "1.0.4" 746 | 747 | "run-parallel@^1.1.9": 748 | "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" 749 | "resolved" "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz" 750 | "version" "1.2.0" 751 | dependencies: 752 | "queue-microtask" "^1.2.2" 753 | 754 | "scheduler@^0.23.0": 755 | "integrity" "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==" 756 | "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" 757 | "version" "0.23.0" 758 | dependencies: 759 | "loose-envify" "^1.1.0" 760 | 761 | "semver@^6.3.0": 762 | "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 763 | "resolved" "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz" 764 | "version" "6.3.0" 765 | 766 | "semver@^7.3.5": 767 | "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" 768 | "resolved" "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz" 769 | "version" "7.3.7" 770 | dependencies: 771 | "lru-cache" "^6.0.0" 772 | 773 | "side-channel@^1.0.4": 774 | "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" 775 | "resolved" "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz" 776 | "version" "1.0.4" 777 | dependencies: 778 | "call-bind" "^1.0.0" 779 | "get-intrinsic" "^1.0.2" 780 | "object-inspect" "^1.9.0" 781 | 782 | "slash@^3.0.0": 783 | "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" 784 | "resolved" "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz" 785 | "version" "3.0.0" 786 | 787 | "string.prototype.matchall@^4.0.6": 788 | "integrity" "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==" 789 | "resolved" "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz" 790 | "version" "4.0.7" 791 | dependencies: 792 | "call-bind" "^1.0.2" 793 | "define-properties" "^1.1.3" 794 | "es-abstract" "^1.19.1" 795 | "get-intrinsic" "^1.1.1" 796 | "has-symbols" "^1.0.3" 797 | "internal-slot" "^1.0.3" 798 | "regexp.prototype.flags" "^1.4.1" 799 | "side-channel" "^1.0.4" 800 | 801 | "string.prototype.trimend@^1.0.4": 802 | "integrity" "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==" 803 | "resolved" "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" 804 | "version" "1.0.4" 805 | dependencies: 806 | "call-bind" "^1.0.2" 807 | "define-properties" "^1.1.3" 808 | 809 | "string.prototype.trimstart@^1.0.4": 810 | "integrity" "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==" 811 | "resolved" "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" 812 | "version" "1.0.4" 813 | dependencies: 814 | "call-bind" "^1.0.2" 815 | "define-properties" "^1.1.3" 816 | 817 | "to-regex-range@^5.0.1": 818 | "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" 819 | "resolved" "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz" 820 | "version" "5.0.1" 821 | dependencies: 822 | "is-number" "^7.0.0" 823 | 824 | "tslib@^1.8.1": 825 | "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 826 | "resolved" "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz" 827 | "version" "1.14.1" 828 | 829 | "tsutils@^3.21.0": 830 | "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" 831 | "resolved" "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz" 832 | "version" "3.21.0" 833 | dependencies: 834 | "tslib" "^1.8.1" 835 | 836 | "typescript@^4.6.3", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": 837 | "integrity" "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==" 838 | "resolved" "https://registry.npmmirror.com/typescript/-/typescript-4.6.3.tgz" 839 | "version" "4.6.3" 840 | 841 | "unbox-primitive@^1.0.1": 842 | "integrity" "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==" 843 | "resolved" "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz" 844 | "version" "1.0.1" 845 | dependencies: 846 | "function-bind" "^1.1.1" 847 | "has-bigints" "^1.0.1" 848 | "has-symbols" "^1.0.2" 849 | "which-boxed-primitive" "^1.0.2" 850 | 851 | "which-boxed-primitive@^1.0.2": 852 | "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" 853 | "resolved" "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" 854 | "version" "1.0.2" 855 | dependencies: 856 | "is-bigint" "^1.0.1" 857 | "is-boolean-object" "^1.1.0" 858 | "is-number-object" "^1.0.4" 859 | "is-string" "^1.0.5" 860 | "is-symbol" "^1.0.3" 861 | 862 | "winbox@=0.2.6": 863 | "integrity" "sha512-P/Tqjcf4bA0Hr1lqR1YliQsisV8xf+t56xgCtqWN8Urw9RLonYSVQGYw+qILp9tgkPs1o7e1dsl6dskaS6GudQ==" 864 | "resolved" "https://registry.npmjs.org/winbox/-/winbox-0.2.6.tgz" 865 | "version" "0.2.6" 866 | 867 | "yallist@^4.0.0": 868 | "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 869 | "resolved" "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz" 870 | "version" "4.0.0" 871 | --------------------------------------------------------------------------------