├── .babelrc ├── .gitignore ├── .prettierrc ├── .vscode └── settings.json ├── README.md ├── package.json ├── pnpm-lock.yaml ├── src ├── index.ts └── useForm.ts ├── tsconfig.cjs.json ├── tsconfig.esm.json ├── tsconfig.json └── tsconfig.types.json /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "modules": false 7 | } 8 | ], 9 | "@babel/preset-react" 10 | ], 11 | "env": { 12 | "test": { 13 | "plugins": [ 14 | "@babel/plugin-transform-modules-commonjs" 15 | ] 16 | }, 17 | "commonjs": { 18 | "presets": [ 19 | [ 20 | "@babel/preset-env", 21 | { 22 | "modules": "commonjs" 23 | } 24 | ], 25 | "@babel/preset-react" 26 | ] 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS or Editor files 2 | ._* 3 | .DS_Store 4 | Thumbs.db 5 | 6 | # Files that might appear on external disks 7 | .Spotlight-V100 8 | .Trashes 9 | 10 | # Always-ignore extensions 11 | *~ 12 | *.diff 13 | *.err 14 | *.log 15 | *.orig 16 | *.pyc 17 | *.rej 18 | *.vsix 19 | 20 | *.sass-cache 21 | *.sw? 22 | *.vi 23 | 24 | yarn.lock 25 | 26 | .merlin 27 | node_modules 28 | lib 29 | es 30 | types 31 | coverage 32 | dist 33 | .next 34 | .vercel 35 | out 36 | .vscode 37 | .turbo -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "singleQuote": true, 4 | "bracketSpacing": true, 5 | "jsxBracketSameLine": true, 6 | "printWidth": 80, 7 | "tabWidth": 2, 8 | "useTabs": false, 9 | "semi": false 10 | } 11 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "**/._*": true, 4 | "**/.DS_Store": true, 5 | "**/Thumbs.db": true, 6 | "**/.Spotlight-V100": true, 7 | "**/.Trashes": true, 8 | "**/*~": true, 9 | "**/*.diff": true, 10 | "**/*.err": true, 11 | "**/*.log": true, 12 | "**/*.orig": true, 13 | "**/*.pyc": true, 14 | "**/*.rej": true, 15 | "**/*.vsix": true, 16 | "**/*.sass-cache": true, 17 | "**/*.sw?": true, 18 | "**/*.vi": true, 19 | "**/yarn.lock": true, 20 | "**/.merlin": true, 21 | "**/node_modules": true, 22 | "**/lib": true, 23 | "**/es": true, 24 | "**/coverage": true, 25 | "**/dist": true, 26 | "**/.next": true, 27 | "**/.vercel": true, 28 | "**/out": true, 29 | "**/.vscode": true, 30 | "**/.turbo": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-controlled-form 2 | 3 | A package for creating controlled forms in React with baked in [zod](https://zod.dev) validation.
4 | You own and control the rendered markup and the hook takes care of the state and validation. 5 | 6 | npm version npm downloads Bundlephobia 7 | 8 | ## Installation 9 | 10 | ```sh 11 | # npm 12 | npm i --save react-controlled-form 13 | # yarn 14 | yarn add react-controlled-form 15 | # pnpm 16 | pnpm add react-controlled-form 17 | ``` 18 | 19 | ## The Gist 20 | 21 | ```tsx 22 | import * as React from 'react' 23 | import { useForm, FieldProps } from 'react-controlled-form' 24 | import { z, ZodError } from 'zod' 25 | 26 | // create our schema with validation included 27 | const Z_RegisterInput = z.object({ 28 | name: z.string().optional(), 29 | email: z.string().email(), 30 | // we can also pass custom messages as a second parameter 31 | password: z 32 | .string() 33 | .min(8, { message: 'Your password next to have at least 8 characters.' }), 34 | }) 35 | 36 | type T_RegisterInput = z.infer 37 | 38 | function Form() { 39 | // we create a form by passing the schema 40 | const { useField, handleSubmit, formProps, reset } = useForm(Z_RegisterInput) 41 | 42 | // now we can create our fields for each property 43 | // the field controls the state and validation per property 44 | const name = useField('name') 45 | const email = useField('email') 46 | const password = useField('password') 47 | 48 | function onSuccess(data: T_RegisterInput) { 49 | // do something with the safely parsed data 50 | console.log(data) 51 | // reset the form to its initial state 52 | reset() 53 | } 54 | 55 | function onFailure(error: ZodError) { 56 | console.error(error) 57 | } 58 | 59 | return ( 60 |
61 | 62 | 63 | 64 | 65 | 66 |

{email.errorMessage}

67 | 68 | 69 | 70 |

{password.errorMessage}

71 | 72 | 73 |
74 | ) 75 | } 76 | ``` 77 | 78 | > **Note**: This is, of course, a simplified version and you most likely render custom components to handle labelling, error messages and validation styling.
For such cases, each field also exposes a `props` property that extends the `inputProps` with non-standard HTML attributes. 79 | 80 | ## API Reference 81 | 82 | ### useForm 83 | 84 | The core API that connects the form with a zod schema and returns a set of helpers to manage the state and render the actual markup. 85 | 86 | | Parameter |  Type | Default |  Description | 87 | | ------------------ | -------------------------------------------- | -------------------------- | -------------------------------------------------- | 88 | | schema | ZodObject |   | A valid zod object schema | 89 | | formatErrorMessage |  `(error: ZodIssue, name: string) => string` | `(error) => error.message` | A custom formatter that receives the raw zod issue | 90 | 91 | ```ts 92 | import { z } from 'zod' 93 | 94 | const Z_Input = z.object({ 95 | name: z.string().optional(), 96 | email: z.string().email(), 97 | // we can also pass custom messages as a second parameter 98 | password: z 99 | .string() 100 | .min(8, { message: 'Your password next to have at least 8 characters.' }), 101 | }) 102 | 103 | type T_Input = z.infer 104 | 105 | // usage inside react components 106 | const { useField, handleSubmit, reset, formProps } = useForm(Z_Input) 107 | ``` 108 | 109 | #### formatErrorMessage 110 | 111 | The preferred way to handle custom error messages would be to add them to the schema directly.
112 | In some cases e.g. when receiving the schema from an API or when having to localise the error, we can leverage this helper. 113 | 114 | ```ts 115 | import { ZodIssue } from 'zod' 116 | 117 | // Note: the type is ZodIssue and not ZodError since we always only show the first error 118 | function formatErrorMessage(error: ZodIssue, name: string) { 119 | switch (error.code) { 120 | case 'too_small': 121 | return `This field ${name} requires at least ${error.minimum} characters.` 122 | default: 123 | return error.message 124 | } 125 | } 126 | ``` 127 | 128 | ### useField 129 | 130 | A hook that manages the field state and returns the relevant HTML attributes to render our inputs.
131 | Also returns a set of helpers to manually update and reset the field. 132 | 133 | | Parameter |  Type | Default |  Description | 134 | | --------- | ------------------------------ | --------------------- | ----------------------------------------------------------- | 135 | | name | `keyof z.infer` | | The name of the schema property that this field connects to | 136 | | config | [Config](#config) | See [Config](#config) | Initial field data and additional config options | 137 | 138 | #### Config 139 | 140 | | Property | Type | Default |  Description | 141 | | ---------------- | ------------------------------------ | ----------------------- | --------------------------------------------------------------------------------------------------------------------------- | 142 | | value | `any` | `''` | Initial value | 143 | | disabled | `boolean` | `false` | Initial disabled state | 144 | | touched | `boolean` | `false` | Initial touched state that indicates whether validation errors are shown or not | 145 | | showValidationOn | `"change"` \| `"blur"` \| `"submit"` | `"submit"` | Which event is used to trigger the touched state | 146 | | parseValue | `(Event) => any` | `(e) => e.target.value` | How the value is received from the input element.
Use `e.target.checked` when working with `` | 147 | 148 | ```ts 149 | const { inputProps, props, errorMessage, update, reset } = useField('email') 150 | ``` 151 | 152 | #### inputProps 153 | 154 | Pass these to native HTML `input`, `select` and `textarea` elements.
155 | Use `data-valid` to style the element based on the validation state. 156 | 157 | ```ts 158 | type InputProps = { 159 | name: string 160 | value: any 161 | disabled: boolean 162 | 'data-valid': boolean 163 | onChange: React.ChangeEventHandler 164 | onBlur?: React.KeyboardEventHandler 165 | } 166 | ``` 167 | 168 | #### props 169 | 170 | Pass these to custom components that render label and input elements.
171 | Also includes information such as `errorMessage` or `valid` that's non standard HTML attributes and thus can't be passed to native HTML `input` elements directly. 172 | 173 | ```ts 174 | type Props = { 175 | value: any 176 | name: string 177 | valid: boolean 178 | required: boolean 179 | disabled: boolean 180 | errorMessage?: string 181 | onChange: React.ChangeEventHandler 182 | onBlur?: React.KeyboardEventHandler 183 | } 184 | ``` 185 | 186 | #### errorMessage 187 | 188 | > **Note**: If you're using [`props`](#props), you already get the errorMessage! 189 | 190 | A string containing the validation message. Only returned if the field is invalid **and** touched. 191 | 192 | #### update 193 | 194 | Programmatically change the data of a field. Useful e.g. when receiving data from an API.
195 | If value is changed, it will automatically trigger re-validation. 196 | 197 | > **Note**: If you know the initial data upfront, prefer to pass it to the `useField` hook directly though. 198 | 199 | ```ts 200 | update({ 201 | value: 'Foo', 202 | touched: true, 203 | }) 204 | ``` 205 | 206 | #### reset 207 | 208 | Resets the field back to its initial field data. 209 | 210 | ```ts 211 | reset() 212 | ``` 213 | 214 | ### handleSubmit 215 | 216 | Helper that wraps the native `onSubmit` event on `
` elements.
217 | It prevents default action execution and parses the form data using the zod schema. 218 | 219 | | Parameter |  Type |  Description | 220 | | --------- | -------------------------------- | -------------------------------------------------- | 221 | | onSuccess | `(data: z.infer)` | Callback on successful safe parse of the form data | 222 | | onFailure | `(error: ZodError)` | Callback on failed safe parse | 223 | 224 | ```ts 225 | import { ZodError } from 'zod' 226 | 227 | function onSuccess(data: T_Input) { 228 | console.log(data) 229 | } 230 | 231 | function onFailure(error: ZodError) { 232 | console.error(error) 233 | } 234 | 235 | // onSubmit handler 236 | const onSubmit = handleSubmit(onSuccess, onFailure) 237 | ``` 238 | 239 | ### reset 240 | 241 | Resets the form fields back to their initial field data. Helpful when trying to clear a form after a successful submit. 242 | 243 | > **Note**: This API is similar to the `reset` helper that the `useField` hook returns. The only difference is that it resets all fields. 244 | 245 | ``` 246 | reset() 247 | ``` 248 | 249 | ### isDirty 250 | 251 | Returns whether the form is dirty, meaning that any of the fields was altered compared to their initial state.
252 | Useful e.g. when conditionally showing a save button or when you want to inform a user that he's closing a modal with unsafed changes. 253 | 254 | ```ts 255 | isDirty() 256 | ``` 257 | 258 | ### formProps 259 | 260 | An object that contains props that are passed to the native `` element. 261 | Currently only consists of a single prop: 262 | 263 | ```ts 264 | const formProps = { 265 | noValidate: true, 266 | } 267 | ``` 268 | 269 | ## Recipes 270 | 271 | ### Non-String Values 272 | 273 | By default, [useField](#usefield) expects string values and defaults to an empty string if no initial value is provided.
274 | In order to also support e.g. `boolean` values or arrays, we can customise the types and pass new values. 275 | 276 | ```tsx 277 | import { ChangeEvent } from 'react' 278 | 279 | const acceptsTerms = useField>('terms', { 280 | // alter how the value is obtained if neccessary 281 | // e.g. for checkboxes or custom inputs 282 | parseValue: (e) => e.target.checked, 283 | // set an initial value overwritting the default empty string 284 | value: false, 285 | }) 286 | 287 | // custom multi-select input that returns an array of values on change 288 | type Tags = Array 289 | type TagsChangeEvent = (value: Tags) => void 290 | 291 | const tags = useField('tags', { 292 | parseValue: (value) => value, 293 | value: [], 294 | }) 295 | ``` 296 | 297 | Passing a custom value type and change event will also change the type of `field.value` and the expected input for [update](#update). 298 | 299 | ## License 300 | 301 | react-controlled-form is licensed under the [MIT License](http://opensource.org/licenses/MIT).
302 | Documentation is licensed under [Creative Common License](http://creativecommons.org/licenses/by/4.0/).
303 | Created with ♥ by [@robinweser](http://weser.io) and all the great contributors. 304 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-controlled-form", 3 | "description": "React Forms with Zod Validation", 4 | "version": "5.0.2", 5 | "main": "lib/index.js", 6 | "module": "es/index.js", 7 | "typings": "types/index.d.ts", 8 | "sideEffects": false, 9 | "publishConfig": { 10 | "access": "public" 11 | }, 12 | "files": [ 13 | "LICENSE", 14 | "README.md", 15 | "index.d.ts", 16 | "lib/**", 17 | "es/**", 18 | "types/**" 19 | ], 20 | "browserslist": [ 21 | "IE >= 11", 22 | "Firefox >= 60", 23 | "Safari >= 11.1", 24 | "Chrome >= 66", 25 | "ChromeAndroid >= 66", 26 | "iOS >= 11.3", 27 | "Edge >= 15" 28 | ], 29 | "scripts": { 30 | "clean": "rimraf lib es types", 31 | "build": "tsc -b ./tsconfig.esm.json ./tsconfig.cjs.json ./tsconfig.types.json", 32 | "dev": "pnpm build -w", 33 | "release": "pnpm clean && pnpm build && npm publish" 34 | }, 35 | "peerDependencies": { 36 | "react": ">=16.8", 37 | "zod": ">=3" 38 | }, 39 | "devDependencies": { 40 | "@babel/cli": "^7.2.0", 41 | "@babel/core": "^7.2.2", 42 | "@babel/node": "^7.13.0", 43 | "@babel/plugin-transform-modules-commonjs": "^7.5.0", 44 | "@babel/polyfill": "^7.7.0", 45 | "@babel/preset-env": "^7.5.5", 46 | "@babel/preset-react": "^7.0.0", 47 | "@types/react": "^18.3.3", 48 | "babel-core": "7.0.0-bridge.0", 49 | "cross-env": "^6.0.3", 50 | "prettier": "^3.3.0", 51 | "react": "^18.3.1", 52 | "rimraf": "^3.0.0", 53 | "typescript": "^5.4.5", 54 | "zod": "^3.23.8" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | devDependencies: 8 | '@babel/cli': 9 | specifier: ^7.2.0 10 | version: 7.2.0(@babel/core@7.2.2) 11 | '@babel/core': 12 | specifier: ^7.2.2 13 | version: 7.2.2 14 | '@babel/node': 15 | specifier: ^7.13.0 16 | version: 7.13.0(@babel/core@7.2.2) 17 | '@babel/plugin-transform-modules-commonjs': 18 | specifier: ^7.5.0 19 | version: 7.5.0(@babel/core@7.2.2) 20 | '@babel/polyfill': 21 | specifier: ^7.7.0 22 | version: 7.7.0 23 | '@babel/preset-env': 24 | specifier: ^7.5.5 25 | version: 7.5.5(@babel/core@7.2.2) 26 | '@babel/preset-react': 27 | specifier: ^7.0.0 28 | version: 7.0.0(@babel/core@7.2.2) 29 | '@types/react': 30 | specifier: ^18.3.3 31 | version: 18.3.3 32 | babel-core: 33 | specifier: 7.0.0-bridge.0 34 | version: 7.0.0-bridge.0(@babel/core@7.2.2) 35 | cross-env: 36 | specifier: ^6.0.3 37 | version: 6.0.3 38 | prettier: 39 | specifier: ^3.3.0 40 | version: 3.3.0 41 | react: 42 | specifier: ^18.3.1 43 | version: 18.3.1 44 | rimraf: 45 | specifier: ^3.0.0 46 | version: 3.0.0 47 | typescript: 48 | specifier: ^5.4.5 49 | version: 5.4.5 50 | zod: 51 | specifier: ^3.23.8 52 | version: 3.23.8 53 | 54 | packages: 55 | 56 | /@babel/cli@7.2.0(@babel/core@7.2.2): 57 | resolution: {integrity: sha512-FLteTkEoony0DX8NbnT51CmwmLBzINdlXmiJCSqCLmqWCDA/xk8EITPWqwDnVLbuK0bsZONt/grqHnQzQ15j0Q==} 58 | hasBin: true 59 | peerDependencies: 60 | '@babel/core': ^7.0.0-0 61 | dependencies: 62 | '@babel/core': 7.2.2 63 | commander: 2.20.3 64 | convert-source-map: 1.9.0 65 | fs-readdir-recursive: 1.1.0 66 | glob: 7.2.3 67 | lodash: 4.17.21 68 | mkdirp: 0.5.6 69 | output-file-sync: 2.0.1 70 | slash: 2.0.0 71 | source-map: 0.5.7 72 | optionalDependencies: 73 | chokidar: 2.1.8 74 | transitivePeerDependencies: 75 | - supports-color 76 | dev: true 77 | 78 | /@babel/code-frame@7.23.5: 79 | resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} 80 | engines: {node: '>=6.9.0'} 81 | dependencies: 82 | '@babel/highlight': 7.23.4 83 | chalk: 2.4.2 84 | dev: true 85 | 86 | /@babel/compat-data@7.23.5: 87 | resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} 88 | engines: {node: '>=6.9.0'} 89 | dev: true 90 | 91 | /@babel/core@7.2.2: 92 | resolution: {integrity: sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==} 93 | engines: {node: '>=6.9.0'} 94 | dependencies: 95 | '@babel/code-frame': 7.23.5 96 | '@babel/generator': 7.23.6 97 | '@babel/helpers': 7.23.9 98 | '@babel/parser': 7.23.9 99 | '@babel/template': 7.23.9 100 | '@babel/traverse': 7.23.9 101 | '@babel/types': 7.23.9 102 | convert-source-map: 1.9.0 103 | debug: 4.3.4 104 | json5: 2.2.3 105 | lodash: 4.17.21 106 | resolve: 1.22.8 107 | semver: 5.7.2 108 | source-map: 0.5.7 109 | transitivePeerDependencies: 110 | - supports-color 111 | dev: true 112 | 113 | /@babel/generator@7.23.6: 114 | resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} 115 | engines: {node: '>=6.9.0'} 116 | dependencies: 117 | '@babel/types': 7.23.9 118 | '@jridgewell/gen-mapping': 0.3.3 119 | '@jridgewell/trace-mapping': 0.3.22 120 | jsesc: 2.5.2 121 | dev: true 122 | 123 | /@babel/helper-annotate-as-pure@7.22.5: 124 | resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} 125 | engines: {node: '>=6.9.0'} 126 | dependencies: 127 | '@babel/types': 7.23.9 128 | dev: true 129 | 130 | /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: 131 | resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} 132 | engines: {node: '>=6.9.0'} 133 | dependencies: 134 | '@babel/types': 7.23.9 135 | dev: true 136 | 137 | /@babel/helper-compilation-targets@7.23.6: 138 | resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} 139 | engines: {node: '>=6.9.0'} 140 | dependencies: 141 | '@babel/compat-data': 7.23.5 142 | '@babel/helper-validator-option': 7.23.5 143 | browserslist: 4.22.3 144 | lru-cache: 5.1.1 145 | semver: 6.3.1 146 | dev: true 147 | 148 | /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.2.2): 149 | resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} 150 | engines: {node: '>=6.9.0'} 151 | peerDependencies: 152 | '@babel/core': ^7.0.0 153 | dependencies: 154 | '@babel/core': 7.2.2 155 | '@babel/helper-annotate-as-pure': 7.22.5 156 | regexpu-core: 5.3.2 157 | semver: 6.3.1 158 | dev: true 159 | 160 | /@babel/helper-environment-visitor@7.22.20: 161 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 162 | engines: {node: '>=6.9.0'} 163 | dev: true 164 | 165 | /@babel/helper-function-name@7.23.0: 166 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} 167 | engines: {node: '>=6.9.0'} 168 | dependencies: 169 | '@babel/template': 7.23.9 170 | '@babel/types': 7.23.9 171 | dev: true 172 | 173 | /@babel/helper-hoist-variables@7.22.5: 174 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 175 | engines: {node: '>=6.9.0'} 176 | dependencies: 177 | '@babel/types': 7.23.9 178 | dev: true 179 | 180 | /@babel/helper-member-expression-to-functions@7.23.0: 181 | resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} 182 | engines: {node: '>=6.9.0'} 183 | dependencies: 184 | '@babel/types': 7.23.9 185 | dev: true 186 | 187 | /@babel/helper-module-imports@7.22.15: 188 | resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} 189 | engines: {node: '>=6.9.0'} 190 | dependencies: 191 | '@babel/types': 7.23.9 192 | dev: true 193 | 194 | /@babel/helper-module-transforms@7.23.3(@babel/core@7.2.2): 195 | resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} 196 | engines: {node: '>=6.9.0'} 197 | peerDependencies: 198 | '@babel/core': ^7.0.0 199 | dependencies: 200 | '@babel/core': 7.2.2 201 | '@babel/helper-environment-visitor': 7.22.20 202 | '@babel/helper-module-imports': 7.22.15 203 | '@babel/helper-simple-access': 7.22.5 204 | '@babel/helper-split-export-declaration': 7.22.6 205 | '@babel/helper-validator-identifier': 7.22.20 206 | dev: true 207 | 208 | /@babel/helper-optimise-call-expression@7.22.5: 209 | resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} 210 | engines: {node: '>=6.9.0'} 211 | dependencies: 212 | '@babel/types': 7.23.9 213 | dev: true 214 | 215 | /@babel/helper-plugin-utils@7.22.5: 216 | resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} 217 | engines: {node: '>=6.9.0'} 218 | dev: true 219 | 220 | /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.2.2): 221 | resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} 222 | engines: {node: '>=6.9.0'} 223 | peerDependencies: 224 | '@babel/core': ^7.0.0 225 | dependencies: 226 | '@babel/core': 7.2.2 227 | '@babel/helper-annotate-as-pure': 7.22.5 228 | '@babel/helper-environment-visitor': 7.22.20 229 | '@babel/helper-wrap-function': 7.22.20 230 | dev: true 231 | 232 | /@babel/helper-replace-supers@7.22.20(@babel/core@7.2.2): 233 | resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} 234 | engines: {node: '>=6.9.0'} 235 | peerDependencies: 236 | '@babel/core': ^7.0.0 237 | dependencies: 238 | '@babel/core': 7.2.2 239 | '@babel/helper-environment-visitor': 7.22.20 240 | '@babel/helper-member-expression-to-functions': 7.23.0 241 | '@babel/helper-optimise-call-expression': 7.22.5 242 | dev: true 243 | 244 | /@babel/helper-simple-access@7.22.5: 245 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 246 | engines: {node: '>=6.9.0'} 247 | dependencies: 248 | '@babel/types': 7.23.9 249 | dev: true 250 | 251 | /@babel/helper-skip-transparent-expression-wrappers@7.22.5: 252 | resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} 253 | engines: {node: '>=6.9.0'} 254 | dependencies: 255 | '@babel/types': 7.23.9 256 | dev: true 257 | 258 | /@babel/helper-split-export-declaration@7.22.6: 259 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 260 | engines: {node: '>=6.9.0'} 261 | dependencies: 262 | '@babel/types': 7.23.9 263 | dev: true 264 | 265 | /@babel/helper-string-parser@7.23.4: 266 | resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} 267 | engines: {node: '>=6.9.0'} 268 | dev: true 269 | 270 | /@babel/helper-validator-identifier@7.22.20: 271 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 272 | engines: {node: '>=6.9.0'} 273 | dev: true 274 | 275 | /@babel/helper-validator-option@7.23.5: 276 | resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} 277 | engines: {node: '>=6.9.0'} 278 | dev: true 279 | 280 | /@babel/helper-wrap-function@7.22.20: 281 | resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} 282 | engines: {node: '>=6.9.0'} 283 | dependencies: 284 | '@babel/helper-function-name': 7.23.0 285 | '@babel/template': 7.23.9 286 | '@babel/types': 7.23.9 287 | dev: true 288 | 289 | /@babel/helpers@7.23.9: 290 | resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} 291 | engines: {node: '>=6.9.0'} 292 | dependencies: 293 | '@babel/template': 7.23.9 294 | '@babel/traverse': 7.23.9 295 | '@babel/types': 7.23.9 296 | transitivePeerDependencies: 297 | - supports-color 298 | dev: true 299 | 300 | /@babel/highlight@7.23.4: 301 | resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} 302 | engines: {node: '>=6.9.0'} 303 | dependencies: 304 | '@babel/helper-validator-identifier': 7.22.20 305 | chalk: 2.4.2 306 | js-tokens: 4.0.0 307 | dev: true 308 | 309 | /@babel/node@7.13.0(@babel/core@7.2.2): 310 | resolution: {integrity: sha512-WJcD7YMnTs7qFo45lstvAOR7Sa370sydddnF8JNpD5xen3BwMlhHd0XVVDIB0crYIlSav/W/+dVw+D1wJQUZBQ==} 311 | hasBin: true 312 | peerDependencies: 313 | '@babel/core': ^7.0.0-0 314 | dependencies: 315 | '@babel/core': 7.2.2 316 | '@babel/register': 7.23.7(@babel/core@7.2.2) 317 | commander: 4.1.1 318 | core-js: 3.35.1 319 | lodash: 4.17.21 320 | node-environment-flags: 1.0.6 321 | regenerator-runtime: 0.13.11 322 | v8flags: 3.2.0 323 | dev: true 324 | 325 | /@babel/parser@7.23.9: 326 | resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} 327 | engines: {node: '>=6.0.0'} 328 | hasBin: true 329 | dependencies: 330 | '@babel/types': 7.23.9 331 | dev: true 332 | 333 | /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.2.2): 334 | resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} 335 | engines: {node: '>=6.9.0'} 336 | deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. 337 | peerDependencies: 338 | '@babel/core': ^7.0.0-0 339 | dependencies: 340 | '@babel/core': 7.2.2 341 | '@babel/helper-environment-visitor': 7.22.20 342 | '@babel/helper-plugin-utils': 7.22.5 343 | '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.2.2) 344 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.2.2) 345 | dev: true 346 | 347 | /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.2.2): 348 | resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} 349 | engines: {node: '>=6.9.0'} 350 | deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. 351 | peerDependencies: 352 | '@babel/core': ^7.0.0-0 353 | dependencies: 354 | '@babel/core': 7.2.2 355 | '@babel/helper-plugin-utils': 7.22.5 356 | '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.2.2) 357 | dev: true 358 | 359 | /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.2.2): 360 | resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} 361 | engines: {node: '>=6.9.0'} 362 | deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. 363 | peerDependencies: 364 | '@babel/core': ^7.0.0-0 365 | dependencies: 366 | '@babel/core': 7.2.2 367 | '@babel/helper-plugin-utils': 7.22.5 368 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.2.2) 369 | dev: true 370 | 371 | /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.2.2): 372 | resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} 373 | engines: {node: '>=6.9.0'} 374 | deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. 375 | peerDependencies: 376 | '@babel/core': ^7.0.0-0 377 | dependencies: 378 | '@babel/compat-data': 7.23.5 379 | '@babel/core': 7.2.2 380 | '@babel/helper-compilation-targets': 7.23.6 381 | '@babel/helper-plugin-utils': 7.22.5 382 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.2.2) 383 | '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.2.2) 384 | dev: true 385 | 386 | /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.2.2): 387 | resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} 388 | engines: {node: '>=6.9.0'} 389 | deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. 390 | peerDependencies: 391 | '@babel/core': ^7.0.0-0 392 | dependencies: 393 | '@babel/core': 7.2.2 394 | '@babel/helper-plugin-utils': 7.22.5 395 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.2.2) 396 | dev: true 397 | 398 | /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.2.2): 399 | resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} 400 | engines: {node: '>=4'} 401 | deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. 402 | peerDependencies: 403 | '@babel/core': ^7.0.0-0 404 | dependencies: 405 | '@babel/core': 7.2.2 406 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.2.2) 407 | '@babel/helper-plugin-utils': 7.22.5 408 | dev: true 409 | 410 | /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.2.2): 411 | resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} 412 | peerDependencies: 413 | '@babel/core': ^7.0.0-0 414 | dependencies: 415 | '@babel/core': 7.2.2 416 | '@babel/helper-plugin-utils': 7.22.5 417 | dev: true 418 | 419 | /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.2.2): 420 | resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} 421 | peerDependencies: 422 | '@babel/core': ^7.0.0-0 423 | dependencies: 424 | '@babel/core': 7.2.2 425 | '@babel/helper-plugin-utils': 7.22.5 426 | dev: true 427 | 428 | /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.2.2): 429 | resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} 430 | peerDependencies: 431 | '@babel/core': ^7.0.0-0 432 | dependencies: 433 | '@babel/core': 7.2.2 434 | '@babel/helper-plugin-utils': 7.22.5 435 | dev: true 436 | 437 | /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.2.2): 438 | resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} 439 | engines: {node: '>=6.9.0'} 440 | peerDependencies: 441 | '@babel/core': ^7.0.0-0 442 | dependencies: 443 | '@babel/core': 7.2.2 444 | '@babel/helper-plugin-utils': 7.22.5 445 | dev: true 446 | 447 | /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.2.2): 448 | resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} 449 | peerDependencies: 450 | '@babel/core': ^7.0.0-0 451 | dependencies: 452 | '@babel/core': 7.2.2 453 | '@babel/helper-plugin-utils': 7.22.5 454 | dev: true 455 | 456 | /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.2.2): 457 | resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} 458 | peerDependencies: 459 | '@babel/core': ^7.0.0-0 460 | dependencies: 461 | '@babel/core': 7.2.2 462 | '@babel/helper-plugin-utils': 7.22.5 463 | dev: true 464 | 465 | /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.2.2): 466 | resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} 467 | engines: {node: '>=6.9.0'} 468 | peerDependencies: 469 | '@babel/core': ^7.0.0-0 470 | dependencies: 471 | '@babel/core': 7.2.2 472 | '@babel/helper-plugin-utils': 7.22.5 473 | dev: true 474 | 475 | /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.2.2): 476 | resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} 477 | engines: {node: '>=6.9.0'} 478 | peerDependencies: 479 | '@babel/core': ^7.0.0-0 480 | dependencies: 481 | '@babel/core': 7.2.2 482 | '@babel/helper-module-imports': 7.22.15 483 | '@babel/helper-plugin-utils': 7.22.5 484 | '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.2.2) 485 | dev: true 486 | 487 | /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.2.2): 488 | resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} 489 | engines: {node: '>=6.9.0'} 490 | peerDependencies: 491 | '@babel/core': ^7.0.0-0 492 | dependencies: 493 | '@babel/core': 7.2.2 494 | '@babel/helper-plugin-utils': 7.22.5 495 | dev: true 496 | 497 | /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.2.2): 498 | resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} 499 | engines: {node: '>=6.9.0'} 500 | peerDependencies: 501 | '@babel/core': ^7.0.0-0 502 | dependencies: 503 | '@babel/core': 7.2.2 504 | '@babel/helper-plugin-utils': 7.22.5 505 | dev: true 506 | 507 | /@babel/plugin-transform-classes@7.23.8(@babel/core@7.2.2): 508 | resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} 509 | engines: {node: '>=6.9.0'} 510 | peerDependencies: 511 | '@babel/core': ^7.0.0-0 512 | dependencies: 513 | '@babel/core': 7.2.2 514 | '@babel/helper-annotate-as-pure': 7.22.5 515 | '@babel/helper-compilation-targets': 7.23.6 516 | '@babel/helper-environment-visitor': 7.22.20 517 | '@babel/helper-function-name': 7.23.0 518 | '@babel/helper-plugin-utils': 7.22.5 519 | '@babel/helper-replace-supers': 7.22.20(@babel/core@7.2.2) 520 | '@babel/helper-split-export-declaration': 7.22.6 521 | globals: 11.12.0 522 | dev: true 523 | 524 | /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.2.2): 525 | resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} 526 | engines: {node: '>=6.9.0'} 527 | peerDependencies: 528 | '@babel/core': ^7.0.0-0 529 | dependencies: 530 | '@babel/core': 7.2.2 531 | '@babel/helper-plugin-utils': 7.22.5 532 | '@babel/template': 7.23.9 533 | dev: true 534 | 535 | /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.2.2): 536 | resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} 537 | engines: {node: '>=6.9.0'} 538 | peerDependencies: 539 | '@babel/core': ^7.0.0-0 540 | dependencies: 541 | '@babel/core': 7.2.2 542 | '@babel/helper-plugin-utils': 7.22.5 543 | dev: true 544 | 545 | /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.2.2): 546 | resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} 547 | engines: {node: '>=6.9.0'} 548 | peerDependencies: 549 | '@babel/core': ^7.0.0-0 550 | dependencies: 551 | '@babel/core': 7.2.2 552 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.2.2) 553 | '@babel/helper-plugin-utils': 7.22.5 554 | dev: true 555 | 556 | /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.2.2): 557 | resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} 558 | engines: {node: '>=6.9.0'} 559 | peerDependencies: 560 | '@babel/core': ^7.0.0-0 561 | dependencies: 562 | '@babel/core': 7.2.2 563 | '@babel/helper-plugin-utils': 7.22.5 564 | dev: true 565 | 566 | /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.2.2): 567 | resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} 568 | engines: {node: '>=6.9.0'} 569 | peerDependencies: 570 | '@babel/core': ^7.0.0-0 571 | dependencies: 572 | '@babel/core': 7.2.2 573 | '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 574 | '@babel/helper-plugin-utils': 7.22.5 575 | dev: true 576 | 577 | /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.2.2): 578 | resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} 579 | engines: {node: '>=6.9.0'} 580 | peerDependencies: 581 | '@babel/core': ^7.0.0-0 582 | dependencies: 583 | '@babel/core': 7.2.2 584 | '@babel/helper-plugin-utils': 7.22.5 585 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 586 | dev: true 587 | 588 | /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.2.2): 589 | resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} 590 | engines: {node: '>=6.9.0'} 591 | peerDependencies: 592 | '@babel/core': ^7.0.0-0 593 | dependencies: 594 | '@babel/core': 7.2.2 595 | '@babel/helper-compilation-targets': 7.23.6 596 | '@babel/helper-function-name': 7.23.0 597 | '@babel/helper-plugin-utils': 7.22.5 598 | dev: true 599 | 600 | /@babel/plugin-transform-literals@7.23.3(@babel/core@7.2.2): 601 | resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} 602 | engines: {node: '>=6.9.0'} 603 | peerDependencies: 604 | '@babel/core': ^7.0.0-0 605 | dependencies: 606 | '@babel/core': 7.2.2 607 | '@babel/helper-plugin-utils': 7.22.5 608 | dev: true 609 | 610 | /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.2.2): 611 | resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} 612 | engines: {node: '>=6.9.0'} 613 | peerDependencies: 614 | '@babel/core': ^7.0.0-0 615 | dependencies: 616 | '@babel/core': 7.2.2 617 | '@babel/helper-plugin-utils': 7.22.5 618 | dev: true 619 | 620 | /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.2.2): 621 | resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} 622 | engines: {node: '>=6.9.0'} 623 | peerDependencies: 624 | '@babel/core': ^7.0.0-0 625 | dependencies: 626 | '@babel/core': 7.2.2 627 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.2.2) 628 | '@babel/helper-plugin-utils': 7.22.5 629 | dev: true 630 | 631 | /@babel/plugin-transform-modules-commonjs@7.5.0(@babel/core@7.2.2): 632 | resolution: {integrity: sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==} 633 | peerDependencies: 634 | '@babel/core': ^7.0.0-0 635 | dependencies: 636 | '@babel/core': 7.2.2 637 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.2.2) 638 | '@babel/helper-plugin-utils': 7.22.5 639 | '@babel/helper-simple-access': 7.22.5 640 | babel-plugin-dynamic-import-node: 2.3.3 641 | dev: true 642 | 643 | /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.2.2): 644 | resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} 645 | engines: {node: '>=6.9.0'} 646 | peerDependencies: 647 | '@babel/core': ^7.0.0-0 648 | dependencies: 649 | '@babel/core': 7.2.2 650 | '@babel/helper-hoist-variables': 7.22.5 651 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.2.2) 652 | '@babel/helper-plugin-utils': 7.22.5 653 | '@babel/helper-validator-identifier': 7.22.20 654 | dev: true 655 | 656 | /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.2.2): 657 | resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} 658 | engines: {node: '>=6.9.0'} 659 | peerDependencies: 660 | '@babel/core': ^7.0.0-0 661 | dependencies: 662 | '@babel/core': 7.2.2 663 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.2.2) 664 | '@babel/helper-plugin-utils': 7.22.5 665 | dev: true 666 | 667 | /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.2.2): 668 | resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} 669 | engines: {node: '>=6.9.0'} 670 | peerDependencies: 671 | '@babel/core': ^7.0.0 672 | dependencies: 673 | '@babel/core': 7.2.2 674 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.2.2) 675 | '@babel/helper-plugin-utils': 7.22.5 676 | dev: true 677 | 678 | /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.2.2): 679 | resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} 680 | engines: {node: '>=6.9.0'} 681 | peerDependencies: 682 | '@babel/core': ^7.0.0-0 683 | dependencies: 684 | '@babel/core': 7.2.2 685 | '@babel/helper-plugin-utils': 7.22.5 686 | dev: true 687 | 688 | /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.2.2): 689 | resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} 690 | engines: {node: '>=6.9.0'} 691 | peerDependencies: 692 | '@babel/core': ^7.0.0-0 693 | dependencies: 694 | '@babel/core': 7.2.2 695 | '@babel/helper-plugin-utils': 7.22.5 696 | '@babel/helper-replace-supers': 7.22.20(@babel/core@7.2.2) 697 | dev: true 698 | 699 | /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.2.2): 700 | resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} 701 | engines: {node: '>=6.9.0'} 702 | peerDependencies: 703 | '@babel/core': ^7.0.0-0 704 | dependencies: 705 | '@babel/core': 7.2.2 706 | '@babel/helper-plugin-utils': 7.22.5 707 | dev: true 708 | 709 | /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.2.2): 710 | resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} 711 | engines: {node: '>=6.9.0'} 712 | peerDependencies: 713 | '@babel/core': ^7.0.0-0 714 | dependencies: 715 | '@babel/core': 7.2.2 716 | '@babel/helper-plugin-utils': 7.22.5 717 | dev: true 718 | 719 | /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.2.2): 720 | resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} 721 | engines: {node: '>=6.9.0'} 722 | peerDependencies: 723 | '@babel/core': ^7.0.0-0 724 | dependencies: 725 | '@babel/core': 7.2.2 726 | '@babel/helper-plugin-utils': 7.22.5 727 | dev: true 728 | 729 | /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.2.2): 730 | resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} 731 | engines: {node: '>=6.9.0'} 732 | peerDependencies: 733 | '@babel/core': ^7.0.0-0 734 | dependencies: 735 | '@babel/core': 7.2.2 736 | '@babel/helper-plugin-utils': 7.22.5 737 | dev: true 738 | 739 | /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.2.2): 740 | resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} 741 | engines: {node: '>=6.9.0'} 742 | peerDependencies: 743 | '@babel/core': ^7.0.0-0 744 | dependencies: 745 | '@babel/core': 7.2.2 746 | '@babel/helper-plugin-utils': 7.22.5 747 | dev: true 748 | 749 | /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.2.2): 750 | resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} 751 | engines: {node: '>=6.9.0'} 752 | peerDependencies: 753 | '@babel/core': ^7.0.0-0 754 | dependencies: 755 | '@babel/core': 7.2.2 756 | '@babel/helper-annotate-as-pure': 7.22.5 757 | '@babel/helper-module-imports': 7.22.15 758 | '@babel/helper-plugin-utils': 7.22.5 759 | '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.2.2) 760 | '@babel/types': 7.23.9 761 | dev: true 762 | 763 | /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.2.2): 764 | resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} 765 | engines: {node: '>=6.9.0'} 766 | peerDependencies: 767 | '@babel/core': ^7.0.0-0 768 | dependencies: 769 | '@babel/core': 7.2.2 770 | '@babel/helper-plugin-utils': 7.22.5 771 | regenerator-transform: 0.15.2 772 | dev: true 773 | 774 | /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.2.2): 775 | resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} 776 | engines: {node: '>=6.9.0'} 777 | peerDependencies: 778 | '@babel/core': ^7.0.0-0 779 | dependencies: 780 | '@babel/core': 7.2.2 781 | '@babel/helper-plugin-utils': 7.22.5 782 | dev: true 783 | 784 | /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.2.2): 785 | resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} 786 | engines: {node: '>=6.9.0'} 787 | peerDependencies: 788 | '@babel/core': ^7.0.0-0 789 | dependencies: 790 | '@babel/core': 7.2.2 791 | '@babel/helper-plugin-utils': 7.22.5 792 | dev: true 793 | 794 | /@babel/plugin-transform-spread@7.23.3(@babel/core@7.2.2): 795 | resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} 796 | engines: {node: '>=6.9.0'} 797 | peerDependencies: 798 | '@babel/core': ^7.0.0-0 799 | dependencies: 800 | '@babel/core': 7.2.2 801 | '@babel/helper-plugin-utils': 7.22.5 802 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 803 | dev: true 804 | 805 | /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.2.2): 806 | resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} 807 | engines: {node: '>=6.9.0'} 808 | peerDependencies: 809 | '@babel/core': ^7.0.0-0 810 | dependencies: 811 | '@babel/core': 7.2.2 812 | '@babel/helper-plugin-utils': 7.22.5 813 | dev: true 814 | 815 | /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.2.2): 816 | resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} 817 | engines: {node: '>=6.9.0'} 818 | peerDependencies: 819 | '@babel/core': ^7.0.0-0 820 | dependencies: 821 | '@babel/core': 7.2.2 822 | '@babel/helper-plugin-utils': 7.22.5 823 | dev: true 824 | 825 | /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.2.2): 826 | resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} 827 | engines: {node: '>=6.9.0'} 828 | peerDependencies: 829 | '@babel/core': ^7.0.0-0 830 | dependencies: 831 | '@babel/core': 7.2.2 832 | '@babel/helper-plugin-utils': 7.22.5 833 | dev: true 834 | 835 | /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.2.2): 836 | resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} 837 | engines: {node: '>=6.9.0'} 838 | peerDependencies: 839 | '@babel/core': ^7.0.0-0 840 | dependencies: 841 | '@babel/core': 7.2.2 842 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.2.2) 843 | '@babel/helper-plugin-utils': 7.22.5 844 | dev: true 845 | 846 | /@babel/polyfill@7.7.0: 847 | resolution: {integrity: sha512-/TS23MVvo34dFmf8mwCisCbWGrfhbiWZSwBo6HkADTBhUa2Q/jWltyY/tpofz/b6/RIhqaqQcquptCirqIhOaQ==} 848 | deprecated: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information. 849 | dependencies: 850 | core-js: 2.6.12 851 | regenerator-runtime: 0.13.11 852 | dev: true 853 | 854 | /@babel/preset-env@7.5.5(@babel/core@7.2.2): 855 | resolution: {integrity: sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A==} 856 | peerDependencies: 857 | '@babel/core': ^7.0.0-0 858 | dependencies: 859 | '@babel/core': 7.2.2 860 | '@babel/helper-module-imports': 7.22.15 861 | '@babel/helper-plugin-utils': 7.22.5 862 | '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.2.2) 863 | '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.2.2) 864 | '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.2.2) 865 | '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.2.2) 866 | '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.2.2) 867 | '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.2.2) 868 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.2.2) 869 | '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.2.2) 870 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.2.2) 871 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.2.2) 872 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.2.2) 873 | '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.2.2) 874 | '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.2.2) 875 | '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.2.2) 876 | '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.2.2) 877 | '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.2.2) 878 | '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.2.2) 879 | '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.2.2) 880 | '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.2.2) 881 | '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.2.2) 882 | '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.2.2) 883 | '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.2.2) 884 | '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.2.2) 885 | '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.2.2) 886 | '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.2.2) 887 | '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.2.2) 888 | '@babel/plugin-transform-modules-commonjs': 7.5.0(@babel/core@7.2.2) 889 | '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.2.2) 890 | '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.2.2) 891 | '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.2.2) 892 | '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.2.2) 893 | '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.2.2) 894 | '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.2.2) 895 | '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.2.2) 896 | '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.2.2) 897 | '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.2.2) 898 | '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.2.2) 899 | '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.2.2) 900 | '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.2.2) 901 | '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.2.2) 902 | '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.2.2) 903 | '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.2.2) 904 | '@babel/types': 7.23.9 905 | browserslist: 4.22.3 906 | core-js-compat: 3.35.1 907 | invariant: 2.2.4 908 | js-levenshtein: 1.1.6 909 | semver: 5.7.2 910 | dev: true 911 | 912 | /@babel/preset-react@7.0.0(@babel/core@7.2.2): 913 | resolution: {integrity: sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==} 914 | peerDependencies: 915 | '@babel/core': ^7.0.0-0 916 | dependencies: 917 | '@babel/core': 7.2.2 918 | '@babel/helper-plugin-utils': 7.22.5 919 | '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.2.2) 920 | '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.2.2) 921 | '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.2.2) 922 | '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.2.2) 923 | dev: true 924 | 925 | /@babel/register@7.23.7(@babel/core@7.2.2): 926 | resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} 927 | engines: {node: '>=6.9.0'} 928 | peerDependencies: 929 | '@babel/core': ^7.0.0-0 930 | dependencies: 931 | '@babel/core': 7.2.2 932 | clone-deep: 4.0.1 933 | find-cache-dir: 2.1.0 934 | make-dir: 2.1.0 935 | pirates: 4.0.6 936 | source-map-support: 0.5.21 937 | dev: true 938 | 939 | /@babel/regjsgen@0.8.0: 940 | resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} 941 | dev: true 942 | 943 | /@babel/runtime@7.23.9: 944 | resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} 945 | engines: {node: '>=6.9.0'} 946 | dependencies: 947 | regenerator-runtime: 0.14.1 948 | dev: true 949 | 950 | /@babel/template@7.23.9: 951 | resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} 952 | engines: {node: '>=6.9.0'} 953 | dependencies: 954 | '@babel/code-frame': 7.23.5 955 | '@babel/parser': 7.23.9 956 | '@babel/types': 7.23.9 957 | dev: true 958 | 959 | /@babel/traverse@7.23.9: 960 | resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} 961 | engines: {node: '>=6.9.0'} 962 | dependencies: 963 | '@babel/code-frame': 7.23.5 964 | '@babel/generator': 7.23.6 965 | '@babel/helper-environment-visitor': 7.22.20 966 | '@babel/helper-function-name': 7.23.0 967 | '@babel/helper-hoist-variables': 7.22.5 968 | '@babel/helper-split-export-declaration': 7.22.6 969 | '@babel/parser': 7.23.9 970 | '@babel/types': 7.23.9 971 | debug: 4.3.4 972 | globals: 11.12.0 973 | transitivePeerDependencies: 974 | - supports-color 975 | dev: true 976 | 977 | /@babel/types@7.23.9: 978 | resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} 979 | engines: {node: '>=6.9.0'} 980 | dependencies: 981 | '@babel/helper-string-parser': 7.23.4 982 | '@babel/helper-validator-identifier': 7.22.20 983 | to-fast-properties: 2.0.0 984 | dev: true 985 | 986 | /@jridgewell/gen-mapping@0.3.3: 987 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 988 | engines: {node: '>=6.0.0'} 989 | dependencies: 990 | '@jridgewell/set-array': 1.1.2 991 | '@jridgewell/sourcemap-codec': 1.4.15 992 | '@jridgewell/trace-mapping': 0.3.22 993 | dev: true 994 | 995 | /@jridgewell/resolve-uri@3.1.1: 996 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 997 | engines: {node: '>=6.0.0'} 998 | dev: true 999 | 1000 | /@jridgewell/set-array@1.1.2: 1001 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 1002 | engines: {node: '>=6.0.0'} 1003 | dev: true 1004 | 1005 | /@jridgewell/sourcemap-codec@1.4.15: 1006 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 1007 | dev: true 1008 | 1009 | /@jridgewell/trace-mapping@0.3.22: 1010 | resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} 1011 | dependencies: 1012 | '@jridgewell/resolve-uri': 3.1.1 1013 | '@jridgewell/sourcemap-codec': 1.4.15 1014 | dev: true 1015 | 1016 | /@types/prop-types@15.7.12: 1017 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 1018 | dev: true 1019 | 1020 | /@types/react@18.3.3: 1021 | resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} 1022 | dependencies: 1023 | '@types/prop-types': 15.7.12 1024 | csstype: 3.1.3 1025 | dev: true 1026 | 1027 | /ansi-styles@3.2.1: 1028 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1029 | engines: {node: '>=4'} 1030 | dependencies: 1031 | color-convert: 1.9.3 1032 | dev: true 1033 | 1034 | /anymatch@2.0.0: 1035 | resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} 1036 | requiresBuild: true 1037 | dependencies: 1038 | micromatch: 3.1.10 1039 | normalize-path: 2.1.1 1040 | transitivePeerDependencies: 1041 | - supports-color 1042 | dev: true 1043 | optional: true 1044 | 1045 | /arr-diff@4.0.0: 1046 | resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} 1047 | engines: {node: '>=0.10.0'} 1048 | requiresBuild: true 1049 | dev: true 1050 | optional: true 1051 | 1052 | /arr-flatten@1.1.0: 1053 | resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} 1054 | engines: {node: '>=0.10.0'} 1055 | requiresBuild: true 1056 | dev: true 1057 | optional: true 1058 | 1059 | /arr-union@3.1.0: 1060 | resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} 1061 | engines: {node: '>=0.10.0'} 1062 | requiresBuild: true 1063 | dev: true 1064 | optional: true 1065 | 1066 | /array-buffer-byte-length@1.0.0: 1067 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 1068 | dependencies: 1069 | call-bind: 1.0.5 1070 | is-array-buffer: 3.0.2 1071 | dev: true 1072 | 1073 | /array-unique@0.3.2: 1074 | resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} 1075 | engines: {node: '>=0.10.0'} 1076 | requiresBuild: true 1077 | dev: true 1078 | optional: true 1079 | 1080 | /array.prototype.reduce@1.0.6: 1081 | resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} 1082 | engines: {node: '>= 0.4'} 1083 | dependencies: 1084 | call-bind: 1.0.5 1085 | define-properties: 1.2.1 1086 | es-abstract: 1.22.3 1087 | es-array-method-boxes-properly: 1.0.0 1088 | is-string: 1.0.7 1089 | dev: true 1090 | 1091 | /arraybuffer.prototype.slice@1.0.2: 1092 | resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} 1093 | engines: {node: '>= 0.4'} 1094 | dependencies: 1095 | array-buffer-byte-length: 1.0.0 1096 | call-bind: 1.0.5 1097 | define-properties: 1.2.1 1098 | es-abstract: 1.22.3 1099 | get-intrinsic: 1.2.2 1100 | is-array-buffer: 3.0.2 1101 | is-shared-array-buffer: 1.0.2 1102 | dev: true 1103 | 1104 | /assign-symbols@1.0.0: 1105 | resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} 1106 | engines: {node: '>=0.10.0'} 1107 | requiresBuild: true 1108 | dev: true 1109 | optional: true 1110 | 1111 | /async-each@1.0.6: 1112 | resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} 1113 | requiresBuild: true 1114 | dev: true 1115 | optional: true 1116 | 1117 | /atob@2.1.2: 1118 | resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} 1119 | engines: {node: '>= 4.5.0'} 1120 | hasBin: true 1121 | requiresBuild: true 1122 | dev: true 1123 | optional: true 1124 | 1125 | /available-typed-arrays@1.0.5: 1126 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 1127 | engines: {node: '>= 0.4'} 1128 | dev: true 1129 | 1130 | /babel-core@7.0.0-bridge.0(@babel/core@7.2.2): 1131 | resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} 1132 | peerDependencies: 1133 | '@babel/core': ^7.0.0-0 1134 | dependencies: 1135 | '@babel/core': 7.2.2 1136 | dev: true 1137 | 1138 | /babel-plugin-dynamic-import-node@2.3.3: 1139 | resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} 1140 | dependencies: 1141 | object.assign: 4.1.5 1142 | dev: true 1143 | 1144 | /balanced-match@1.0.2: 1145 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1146 | dev: true 1147 | 1148 | /base@0.11.2: 1149 | resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} 1150 | engines: {node: '>=0.10.0'} 1151 | requiresBuild: true 1152 | dependencies: 1153 | cache-base: 1.0.1 1154 | class-utils: 0.3.6 1155 | component-emitter: 1.3.1 1156 | define-property: 1.0.0 1157 | isobject: 3.0.1 1158 | mixin-deep: 1.3.2 1159 | pascalcase: 0.1.1 1160 | dev: true 1161 | optional: true 1162 | 1163 | /binary-extensions@1.13.1: 1164 | resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} 1165 | engines: {node: '>=0.10.0'} 1166 | requiresBuild: true 1167 | dev: true 1168 | optional: true 1169 | 1170 | /bindings@1.5.0: 1171 | resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} 1172 | requiresBuild: true 1173 | dependencies: 1174 | file-uri-to-path: 1.0.0 1175 | dev: true 1176 | optional: true 1177 | 1178 | /brace-expansion@1.1.11: 1179 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1180 | dependencies: 1181 | balanced-match: 1.0.2 1182 | concat-map: 0.0.1 1183 | dev: true 1184 | 1185 | /braces@2.3.2: 1186 | resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} 1187 | engines: {node: '>=0.10.0'} 1188 | requiresBuild: true 1189 | dependencies: 1190 | arr-flatten: 1.1.0 1191 | array-unique: 0.3.2 1192 | extend-shallow: 2.0.1 1193 | fill-range: 4.0.0 1194 | isobject: 3.0.1 1195 | repeat-element: 1.1.4 1196 | snapdragon: 0.8.2 1197 | snapdragon-node: 2.1.1 1198 | split-string: 3.1.0 1199 | to-regex: 3.0.2 1200 | transitivePeerDependencies: 1201 | - supports-color 1202 | dev: true 1203 | optional: true 1204 | 1205 | /browserslist@4.22.3: 1206 | resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} 1207 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1208 | hasBin: true 1209 | dependencies: 1210 | caniuse-lite: 1.0.30001580 1211 | electron-to-chromium: 1.4.648 1212 | node-releases: 2.0.14 1213 | update-browserslist-db: 1.0.13(browserslist@4.22.3) 1214 | dev: true 1215 | 1216 | /buffer-from@1.1.2: 1217 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1218 | dev: true 1219 | 1220 | /cache-base@1.0.1: 1221 | resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} 1222 | engines: {node: '>=0.10.0'} 1223 | requiresBuild: true 1224 | dependencies: 1225 | collection-visit: 1.0.0 1226 | component-emitter: 1.3.1 1227 | get-value: 2.0.6 1228 | has-value: 1.0.0 1229 | isobject: 3.0.1 1230 | set-value: 2.0.1 1231 | to-object-path: 0.3.0 1232 | union-value: 1.0.1 1233 | unset-value: 1.0.0 1234 | dev: true 1235 | optional: true 1236 | 1237 | /call-bind@1.0.5: 1238 | resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} 1239 | dependencies: 1240 | function-bind: 1.1.2 1241 | get-intrinsic: 1.2.2 1242 | set-function-length: 1.2.0 1243 | dev: true 1244 | 1245 | /caniuse-lite@1.0.30001580: 1246 | resolution: {integrity: sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==} 1247 | dev: true 1248 | 1249 | /chalk@2.4.2: 1250 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1251 | engines: {node: '>=4'} 1252 | dependencies: 1253 | ansi-styles: 3.2.1 1254 | escape-string-regexp: 1.0.5 1255 | supports-color: 5.5.0 1256 | dev: true 1257 | 1258 | /chokidar@2.1.8: 1259 | resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} 1260 | deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies 1261 | requiresBuild: true 1262 | dependencies: 1263 | anymatch: 2.0.0 1264 | async-each: 1.0.6 1265 | braces: 2.3.2 1266 | glob-parent: 3.1.0 1267 | inherits: 2.0.4 1268 | is-binary-path: 1.0.1 1269 | is-glob: 4.0.3 1270 | normalize-path: 3.0.0 1271 | path-is-absolute: 1.0.1 1272 | readdirp: 2.2.1 1273 | upath: 1.2.0 1274 | optionalDependencies: 1275 | fsevents: 1.2.13 1276 | transitivePeerDependencies: 1277 | - supports-color 1278 | dev: true 1279 | optional: true 1280 | 1281 | /class-utils@0.3.6: 1282 | resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} 1283 | engines: {node: '>=0.10.0'} 1284 | requiresBuild: true 1285 | dependencies: 1286 | arr-union: 3.1.0 1287 | define-property: 0.2.5 1288 | isobject: 3.0.1 1289 | static-extend: 0.1.2 1290 | dev: true 1291 | optional: true 1292 | 1293 | /clone-deep@4.0.1: 1294 | resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} 1295 | engines: {node: '>=6'} 1296 | dependencies: 1297 | is-plain-object: 2.0.4 1298 | kind-of: 6.0.3 1299 | shallow-clone: 3.0.1 1300 | dev: true 1301 | 1302 | /collection-visit@1.0.0: 1303 | resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} 1304 | engines: {node: '>=0.10.0'} 1305 | requiresBuild: true 1306 | dependencies: 1307 | map-visit: 1.0.0 1308 | object-visit: 1.0.1 1309 | dev: true 1310 | optional: true 1311 | 1312 | /color-convert@1.9.3: 1313 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1314 | dependencies: 1315 | color-name: 1.1.3 1316 | dev: true 1317 | 1318 | /color-name@1.1.3: 1319 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1320 | dev: true 1321 | 1322 | /commander@2.20.3: 1323 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 1324 | dev: true 1325 | 1326 | /commander@4.1.1: 1327 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1328 | engines: {node: '>= 6'} 1329 | dev: true 1330 | 1331 | /commondir@1.0.1: 1332 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 1333 | dev: true 1334 | 1335 | /component-emitter@1.3.1: 1336 | resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} 1337 | requiresBuild: true 1338 | dev: true 1339 | optional: true 1340 | 1341 | /concat-map@0.0.1: 1342 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1343 | dev: true 1344 | 1345 | /convert-source-map@1.9.0: 1346 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 1347 | dev: true 1348 | 1349 | /copy-descriptor@0.1.1: 1350 | resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} 1351 | engines: {node: '>=0.10.0'} 1352 | requiresBuild: true 1353 | dev: true 1354 | optional: true 1355 | 1356 | /core-js-compat@3.35.1: 1357 | resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==} 1358 | dependencies: 1359 | browserslist: 4.22.3 1360 | dev: true 1361 | 1362 | /core-js@2.6.12: 1363 | resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} 1364 | deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. 1365 | requiresBuild: true 1366 | dev: true 1367 | 1368 | /core-js@3.35.1: 1369 | resolution: {integrity: sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==} 1370 | requiresBuild: true 1371 | dev: true 1372 | 1373 | /core-util-is@1.0.3: 1374 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 1375 | requiresBuild: true 1376 | dev: true 1377 | optional: true 1378 | 1379 | /cross-env@6.0.3: 1380 | resolution: {integrity: sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag==} 1381 | engines: {node: '>=8.0'} 1382 | hasBin: true 1383 | dependencies: 1384 | cross-spawn: 7.0.3 1385 | dev: true 1386 | 1387 | /cross-spawn@7.0.3: 1388 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1389 | engines: {node: '>= 8'} 1390 | dependencies: 1391 | path-key: 3.1.1 1392 | shebang-command: 2.0.0 1393 | which: 2.0.2 1394 | dev: true 1395 | 1396 | /csstype@3.1.3: 1397 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1398 | dev: true 1399 | 1400 | /debug@2.6.9: 1401 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 1402 | requiresBuild: true 1403 | peerDependencies: 1404 | supports-color: '*' 1405 | peerDependenciesMeta: 1406 | supports-color: 1407 | optional: true 1408 | dependencies: 1409 | ms: 2.0.0 1410 | dev: true 1411 | optional: true 1412 | 1413 | /debug@4.3.4: 1414 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1415 | engines: {node: '>=6.0'} 1416 | peerDependencies: 1417 | supports-color: '*' 1418 | peerDependenciesMeta: 1419 | supports-color: 1420 | optional: true 1421 | dependencies: 1422 | ms: 2.1.2 1423 | dev: true 1424 | 1425 | /decode-uri-component@0.2.2: 1426 | resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} 1427 | engines: {node: '>=0.10'} 1428 | requiresBuild: true 1429 | dev: true 1430 | optional: true 1431 | 1432 | /define-data-property@1.1.1: 1433 | resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} 1434 | engines: {node: '>= 0.4'} 1435 | dependencies: 1436 | get-intrinsic: 1.2.2 1437 | gopd: 1.0.1 1438 | has-property-descriptors: 1.0.1 1439 | dev: true 1440 | 1441 | /define-properties@1.2.1: 1442 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 1443 | engines: {node: '>= 0.4'} 1444 | dependencies: 1445 | define-data-property: 1.1.1 1446 | has-property-descriptors: 1.0.1 1447 | object-keys: 1.1.1 1448 | dev: true 1449 | 1450 | /define-property@0.2.5: 1451 | resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} 1452 | engines: {node: '>=0.10.0'} 1453 | requiresBuild: true 1454 | dependencies: 1455 | is-descriptor: 0.1.7 1456 | dev: true 1457 | optional: true 1458 | 1459 | /define-property@1.0.0: 1460 | resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} 1461 | engines: {node: '>=0.10.0'} 1462 | requiresBuild: true 1463 | dependencies: 1464 | is-descriptor: 1.0.3 1465 | dev: true 1466 | optional: true 1467 | 1468 | /define-property@2.0.2: 1469 | resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} 1470 | engines: {node: '>=0.10.0'} 1471 | requiresBuild: true 1472 | dependencies: 1473 | is-descriptor: 1.0.3 1474 | isobject: 3.0.1 1475 | dev: true 1476 | optional: true 1477 | 1478 | /electron-to-chromium@1.4.648: 1479 | resolution: {integrity: sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg==} 1480 | dev: true 1481 | 1482 | /es-abstract@1.22.3: 1483 | resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} 1484 | engines: {node: '>= 0.4'} 1485 | dependencies: 1486 | array-buffer-byte-length: 1.0.0 1487 | arraybuffer.prototype.slice: 1.0.2 1488 | available-typed-arrays: 1.0.5 1489 | call-bind: 1.0.5 1490 | es-set-tostringtag: 2.0.2 1491 | es-to-primitive: 1.2.1 1492 | function.prototype.name: 1.1.6 1493 | get-intrinsic: 1.2.2 1494 | get-symbol-description: 1.0.0 1495 | globalthis: 1.0.3 1496 | gopd: 1.0.1 1497 | has-property-descriptors: 1.0.1 1498 | has-proto: 1.0.1 1499 | has-symbols: 1.0.3 1500 | hasown: 2.0.0 1501 | internal-slot: 1.0.6 1502 | is-array-buffer: 3.0.2 1503 | is-callable: 1.2.7 1504 | is-negative-zero: 2.0.2 1505 | is-regex: 1.1.4 1506 | is-shared-array-buffer: 1.0.2 1507 | is-string: 1.0.7 1508 | is-typed-array: 1.1.12 1509 | is-weakref: 1.0.2 1510 | object-inspect: 1.13.1 1511 | object-keys: 1.1.1 1512 | object.assign: 4.1.5 1513 | regexp.prototype.flags: 1.5.1 1514 | safe-array-concat: 1.1.0 1515 | safe-regex-test: 1.0.2 1516 | string.prototype.trim: 1.2.8 1517 | string.prototype.trimend: 1.0.7 1518 | string.prototype.trimstart: 1.0.7 1519 | typed-array-buffer: 1.0.0 1520 | typed-array-byte-length: 1.0.0 1521 | typed-array-byte-offset: 1.0.0 1522 | typed-array-length: 1.0.4 1523 | unbox-primitive: 1.0.2 1524 | which-typed-array: 1.1.13 1525 | dev: true 1526 | 1527 | /es-array-method-boxes-properly@1.0.0: 1528 | resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} 1529 | dev: true 1530 | 1531 | /es-set-tostringtag@2.0.2: 1532 | resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} 1533 | engines: {node: '>= 0.4'} 1534 | dependencies: 1535 | get-intrinsic: 1.2.2 1536 | has-tostringtag: 1.0.0 1537 | hasown: 2.0.0 1538 | dev: true 1539 | 1540 | /es-to-primitive@1.2.1: 1541 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1542 | engines: {node: '>= 0.4'} 1543 | dependencies: 1544 | is-callable: 1.2.7 1545 | is-date-object: 1.0.5 1546 | is-symbol: 1.0.4 1547 | dev: true 1548 | 1549 | /escalade@3.1.1: 1550 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1551 | engines: {node: '>=6'} 1552 | dev: true 1553 | 1554 | /escape-string-regexp@1.0.5: 1555 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1556 | engines: {node: '>=0.8.0'} 1557 | dev: true 1558 | 1559 | /expand-brackets@2.1.4: 1560 | resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} 1561 | engines: {node: '>=0.10.0'} 1562 | requiresBuild: true 1563 | dependencies: 1564 | debug: 2.6.9 1565 | define-property: 0.2.5 1566 | extend-shallow: 2.0.1 1567 | posix-character-classes: 0.1.1 1568 | regex-not: 1.0.2 1569 | snapdragon: 0.8.2 1570 | to-regex: 3.0.2 1571 | transitivePeerDependencies: 1572 | - supports-color 1573 | dev: true 1574 | optional: true 1575 | 1576 | /extend-shallow@2.0.1: 1577 | resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} 1578 | engines: {node: '>=0.10.0'} 1579 | requiresBuild: true 1580 | dependencies: 1581 | is-extendable: 0.1.1 1582 | dev: true 1583 | optional: true 1584 | 1585 | /extend-shallow@3.0.2: 1586 | resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} 1587 | engines: {node: '>=0.10.0'} 1588 | requiresBuild: true 1589 | dependencies: 1590 | assign-symbols: 1.0.0 1591 | is-extendable: 1.0.1 1592 | dev: true 1593 | optional: true 1594 | 1595 | /extglob@2.0.4: 1596 | resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} 1597 | engines: {node: '>=0.10.0'} 1598 | requiresBuild: true 1599 | dependencies: 1600 | array-unique: 0.3.2 1601 | define-property: 1.0.0 1602 | expand-brackets: 2.1.4 1603 | extend-shallow: 2.0.1 1604 | fragment-cache: 0.2.1 1605 | regex-not: 1.0.2 1606 | snapdragon: 0.8.2 1607 | to-regex: 3.0.2 1608 | transitivePeerDependencies: 1609 | - supports-color 1610 | dev: true 1611 | optional: true 1612 | 1613 | /file-uri-to-path@1.0.0: 1614 | resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} 1615 | requiresBuild: true 1616 | dev: true 1617 | optional: true 1618 | 1619 | /fill-range@4.0.0: 1620 | resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} 1621 | engines: {node: '>=0.10.0'} 1622 | requiresBuild: true 1623 | dependencies: 1624 | extend-shallow: 2.0.1 1625 | is-number: 3.0.0 1626 | repeat-string: 1.6.1 1627 | to-regex-range: 2.1.1 1628 | dev: true 1629 | optional: true 1630 | 1631 | /find-cache-dir@2.1.0: 1632 | resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} 1633 | engines: {node: '>=6'} 1634 | dependencies: 1635 | commondir: 1.0.1 1636 | make-dir: 2.1.0 1637 | pkg-dir: 3.0.0 1638 | dev: true 1639 | 1640 | /find-up@3.0.0: 1641 | resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} 1642 | engines: {node: '>=6'} 1643 | dependencies: 1644 | locate-path: 3.0.0 1645 | dev: true 1646 | 1647 | /for-each@0.3.3: 1648 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1649 | dependencies: 1650 | is-callable: 1.2.7 1651 | dev: true 1652 | 1653 | /for-in@1.0.2: 1654 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} 1655 | engines: {node: '>=0.10.0'} 1656 | requiresBuild: true 1657 | dev: true 1658 | optional: true 1659 | 1660 | /fragment-cache@0.2.1: 1661 | resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} 1662 | engines: {node: '>=0.10.0'} 1663 | requiresBuild: true 1664 | dependencies: 1665 | map-cache: 0.2.2 1666 | dev: true 1667 | optional: true 1668 | 1669 | /fs-readdir-recursive@1.1.0: 1670 | resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} 1671 | dev: true 1672 | 1673 | /fs.realpath@1.0.0: 1674 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1675 | dev: true 1676 | 1677 | /fsevents@1.2.13: 1678 | resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} 1679 | engines: {node: '>= 4.0'} 1680 | os: [darwin] 1681 | deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 1682 | requiresBuild: true 1683 | dependencies: 1684 | bindings: 1.5.0 1685 | nan: 2.18.0 1686 | dev: true 1687 | optional: true 1688 | 1689 | /function-bind@1.1.2: 1690 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1691 | dev: true 1692 | 1693 | /function.prototype.name@1.1.6: 1694 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 1695 | engines: {node: '>= 0.4'} 1696 | dependencies: 1697 | call-bind: 1.0.5 1698 | define-properties: 1.2.1 1699 | es-abstract: 1.22.3 1700 | functions-have-names: 1.2.3 1701 | dev: true 1702 | 1703 | /functions-have-names@1.2.3: 1704 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1705 | dev: true 1706 | 1707 | /get-intrinsic@1.2.2: 1708 | resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} 1709 | dependencies: 1710 | function-bind: 1.1.2 1711 | has-proto: 1.0.1 1712 | has-symbols: 1.0.3 1713 | hasown: 2.0.0 1714 | dev: true 1715 | 1716 | /get-symbol-description@1.0.0: 1717 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1718 | engines: {node: '>= 0.4'} 1719 | dependencies: 1720 | call-bind: 1.0.5 1721 | get-intrinsic: 1.2.2 1722 | dev: true 1723 | 1724 | /get-value@2.0.6: 1725 | resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} 1726 | engines: {node: '>=0.10.0'} 1727 | requiresBuild: true 1728 | dev: true 1729 | optional: true 1730 | 1731 | /glob-parent@3.1.0: 1732 | resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} 1733 | requiresBuild: true 1734 | dependencies: 1735 | is-glob: 3.1.0 1736 | path-dirname: 1.0.2 1737 | dev: true 1738 | optional: true 1739 | 1740 | /glob@7.2.3: 1741 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1742 | dependencies: 1743 | fs.realpath: 1.0.0 1744 | inflight: 1.0.6 1745 | inherits: 2.0.4 1746 | minimatch: 3.1.2 1747 | once: 1.4.0 1748 | path-is-absolute: 1.0.1 1749 | dev: true 1750 | 1751 | /globals@11.12.0: 1752 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1753 | engines: {node: '>=4'} 1754 | dev: true 1755 | 1756 | /globalthis@1.0.3: 1757 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1758 | engines: {node: '>= 0.4'} 1759 | dependencies: 1760 | define-properties: 1.2.1 1761 | dev: true 1762 | 1763 | /gopd@1.0.1: 1764 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1765 | dependencies: 1766 | get-intrinsic: 1.2.2 1767 | dev: true 1768 | 1769 | /graceful-fs@4.2.11: 1770 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1771 | dev: true 1772 | 1773 | /has-bigints@1.0.2: 1774 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1775 | dev: true 1776 | 1777 | /has-flag@3.0.0: 1778 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1779 | engines: {node: '>=4'} 1780 | dev: true 1781 | 1782 | /has-property-descriptors@1.0.1: 1783 | resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} 1784 | dependencies: 1785 | get-intrinsic: 1.2.2 1786 | dev: true 1787 | 1788 | /has-proto@1.0.1: 1789 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 1790 | engines: {node: '>= 0.4'} 1791 | dev: true 1792 | 1793 | /has-symbols@1.0.3: 1794 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1795 | engines: {node: '>= 0.4'} 1796 | dev: true 1797 | 1798 | /has-tostringtag@1.0.0: 1799 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1800 | engines: {node: '>= 0.4'} 1801 | dependencies: 1802 | has-symbols: 1.0.3 1803 | dev: true 1804 | 1805 | /has-value@0.3.1: 1806 | resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} 1807 | engines: {node: '>=0.10.0'} 1808 | requiresBuild: true 1809 | dependencies: 1810 | get-value: 2.0.6 1811 | has-values: 0.1.4 1812 | isobject: 2.1.0 1813 | dev: true 1814 | optional: true 1815 | 1816 | /has-value@1.0.0: 1817 | resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} 1818 | engines: {node: '>=0.10.0'} 1819 | requiresBuild: true 1820 | dependencies: 1821 | get-value: 2.0.6 1822 | has-values: 1.0.0 1823 | isobject: 3.0.1 1824 | dev: true 1825 | optional: true 1826 | 1827 | /has-values@0.1.4: 1828 | resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} 1829 | engines: {node: '>=0.10.0'} 1830 | requiresBuild: true 1831 | dev: true 1832 | optional: true 1833 | 1834 | /has-values@1.0.0: 1835 | resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} 1836 | engines: {node: '>=0.10.0'} 1837 | requiresBuild: true 1838 | dependencies: 1839 | is-number: 3.0.0 1840 | kind-of: 4.0.0 1841 | dev: true 1842 | optional: true 1843 | 1844 | /hasown@2.0.0: 1845 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} 1846 | engines: {node: '>= 0.4'} 1847 | dependencies: 1848 | function-bind: 1.1.2 1849 | dev: true 1850 | 1851 | /homedir-polyfill@1.0.3: 1852 | resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} 1853 | engines: {node: '>=0.10.0'} 1854 | dependencies: 1855 | parse-passwd: 1.0.0 1856 | dev: true 1857 | 1858 | /inflight@1.0.6: 1859 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1860 | dependencies: 1861 | once: 1.4.0 1862 | wrappy: 1.0.2 1863 | dev: true 1864 | 1865 | /inherits@2.0.4: 1866 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1867 | dev: true 1868 | 1869 | /internal-slot@1.0.6: 1870 | resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} 1871 | engines: {node: '>= 0.4'} 1872 | dependencies: 1873 | get-intrinsic: 1.2.2 1874 | hasown: 2.0.0 1875 | side-channel: 1.0.4 1876 | dev: true 1877 | 1878 | /invariant@2.2.4: 1879 | resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} 1880 | dependencies: 1881 | loose-envify: 1.4.0 1882 | dev: true 1883 | 1884 | /is-accessor-descriptor@1.0.1: 1885 | resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} 1886 | engines: {node: '>= 0.10'} 1887 | requiresBuild: true 1888 | dependencies: 1889 | hasown: 2.0.0 1890 | dev: true 1891 | optional: true 1892 | 1893 | /is-array-buffer@3.0.2: 1894 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 1895 | dependencies: 1896 | call-bind: 1.0.5 1897 | get-intrinsic: 1.2.2 1898 | is-typed-array: 1.1.12 1899 | dev: true 1900 | 1901 | /is-bigint@1.0.4: 1902 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1903 | dependencies: 1904 | has-bigints: 1.0.2 1905 | dev: true 1906 | 1907 | /is-binary-path@1.0.1: 1908 | resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} 1909 | engines: {node: '>=0.10.0'} 1910 | requiresBuild: true 1911 | dependencies: 1912 | binary-extensions: 1.13.1 1913 | dev: true 1914 | optional: true 1915 | 1916 | /is-boolean-object@1.1.2: 1917 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1918 | engines: {node: '>= 0.4'} 1919 | dependencies: 1920 | call-bind: 1.0.5 1921 | has-tostringtag: 1.0.0 1922 | dev: true 1923 | 1924 | /is-buffer@1.1.6: 1925 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} 1926 | requiresBuild: true 1927 | dev: true 1928 | optional: true 1929 | 1930 | /is-callable@1.2.7: 1931 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1932 | engines: {node: '>= 0.4'} 1933 | dev: true 1934 | 1935 | /is-core-module@2.13.1: 1936 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1937 | dependencies: 1938 | hasown: 2.0.0 1939 | dev: true 1940 | 1941 | /is-data-descriptor@1.0.1: 1942 | resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} 1943 | engines: {node: '>= 0.4'} 1944 | requiresBuild: true 1945 | dependencies: 1946 | hasown: 2.0.0 1947 | dev: true 1948 | optional: true 1949 | 1950 | /is-date-object@1.0.5: 1951 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1952 | engines: {node: '>= 0.4'} 1953 | dependencies: 1954 | has-tostringtag: 1.0.0 1955 | dev: true 1956 | 1957 | /is-descriptor@0.1.7: 1958 | resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} 1959 | engines: {node: '>= 0.4'} 1960 | requiresBuild: true 1961 | dependencies: 1962 | is-accessor-descriptor: 1.0.1 1963 | is-data-descriptor: 1.0.1 1964 | dev: true 1965 | optional: true 1966 | 1967 | /is-descriptor@1.0.3: 1968 | resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} 1969 | engines: {node: '>= 0.4'} 1970 | requiresBuild: true 1971 | dependencies: 1972 | is-accessor-descriptor: 1.0.1 1973 | is-data-descriptor: 1.0.1 1974 | dev: true 1975 | optional: true 1976 | 1977 | /is-extendable@0.1.1: 1978 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 1979 | engines: {node: '>=0.10.0'} 1980 | requiresBuild: true 1981 | dev: true 1982 | optional: true 1983 | 1984 | /is-extendable@1.0.1: 1985 | resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} 1986 | engines: {node: '>=0.10.0'} 1987 | requiresBuild: true 1988 | dependencies: 1989 | is-plain-object: 2.0.4 1990 | dev: true 1991 | optional: true 1992 | 1993 | /is-extglob@2.1.1: 1994 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1995 | engines: {node: '>=0.10.0'} 1996 | requiresBuild: true 1997 | dev: true 1998 | optional: true 1999 | 2000 | /is-glob@3.1.0: 2001 | resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} 2002 | engines: {node: '>=0.10.0'} 2003 | requiresBuild: true 2004 | dependencies: 2005 | is-extglob: 2.1.1 2006 | dev: true 2007 | optional: true 2008 | 2009 | /is-glob@4.0.3: 2010 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2011 | engines: {node: '>=0.10.0'} 2012 | requiresBuild: true 2013 | dependencies: 2014 | is-extglob: 2.1.1 2015 | dev: true 2016 | optional: true 2017 | 2018 | /is-negative-zero@2.0.2: 2019 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 2020 | engines: {node: '>= 0.4'} 2021 | dev: true 2022 | 2023 | /is-number-object@1.0.7: 2024 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 2025 | engines: {node: '>= 0.4'} 2026 | dependencies: 2027 | has-tostringtag: 1.0.0 2028 | dev: true 2029 | 2030 | /is-number@3.0.0: 2031 | resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} 2032 | engines: {node: '>=0.10.0'} 2033 | requiresBuild: true 2034 | dependencies: 2035 | kind-of: 3.2.2 2036 | dev: true 2037 | optional: true 2038 | 2039 | /is-plain-obj@1.1.0: 2040 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} 2041 | engines: {node: '>=0.10.0'} 2042 | dev: true 2043 | 2044 | /is-plain-object@2.0.4: 2045 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 2046 | engines: {node: '>=0.10.0'} 2047 | dependencies: 2048 | isobject: 3.0.1 2049 | dev: true 2050 | 2051 | /is-regex@1.1.4: 2052 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 2053 | engines: {node: '>= 0.4'} 2054 | dependencies: 2055 | call-bind: 1.0.5 2056 | has-tostringtag: 1.0.0 2057 | dev: true 2058 | 2059 | /is-shared-array-buffer@1.0.2: 2060 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 2061 | dependencies: 2062 | call-bind: 1.0.5 2063 | dev: true 2064 | 2065 | /is-string@1.0.7: 2066 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 2067 | engines: {node: '>= 0.4'} 2068 | dependencies: 2069 | has-tostringtag: 1.0.0 2070 | dev: true 2071 | 2072 | /is-symbol@1.0.4: 2073 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2074 | engines: {node: '>= 0.4'} 2075 | dependencies: 2076 | has-symbols: 1.0.3 2077 | dev: true 2078 | 2079 | /is-typed-array@1.1.12: 2080 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} 2081 | engines: {node: '>= 0.4'} 2082 | dependencies: 2083 | which-typed-array: 1.1.13 2084 | dev: true 2085 | 2086 | /is-weakref@1.0.2: 2087 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 2088 | dependencies: 2089 | call-bind: 1.0.5 2090 | dev: true 2091 | 2092 | /is-windows@1.0.2: 2093 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 2094 | engines: {node: '>=0.10.0'} 2095 | requiresBuild: true 2096 | dev: true 2097 | optional: true 2098 | 2099 | /isarray@1.0.0: 2100 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 2101 | requiresBuild: true 2102 | dev: true 2103 | optional: true 2104 | 2105 | /isarray@2.0.5: 2106 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 2107 | dev: true 2108 | 2109 | /isexe@2.0.0: 2110 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2111 | dev: true 2112 | 2113 | /isobject@2.1.0: 2114 | resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} 2115 | engines: {node: '>=0.10.0'} 2116 | requiresBuild: true 2117 | dependencies: 2118 | isarray: 1.0.0 2119 | dev: true 2120 | optional: true 2121 | 2122 | /isobject@3.0.1: 2123 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} 2124 | engines: {node: '>=0.10.0'} 2125 | requiresBuild: true 2126 | dev: true 2127 | 2128 | /js-levenshtein@1.1.6: 2129 | resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} 2130 | engines: {node: '>=0.10.0'} 2131 | dev: true 2132 | 2133 | /js-tokens@4.0.0: 2134 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2135 | dev: true 2136 | 2137 | /jsesc@0.5.0: 2138 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} 2139 | hasBin: true 2140 | dev: true 2141 | 2142 | /jsesc@2.5.2: 2143 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 2144 | engines: {node: '>=4'} 2145 | hasBin: true 2146 | dev: true 2147 | 2148 | /json5@2.2.3: 2149 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 2150 | engines: {node: '>=6'} 2151 | hasBin: true 2152 | dev: true 2153 | 2154 | /kind-of@3.2.2: 2155 | resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} 2156 | engines: {node: '>=0.10.0'} 2157 | requiresBuild: true 2158 | dependencies: 2159 | is-buffer: 1.1.6 2160 | dev: true 2161 | optional: true 2162 | 2163 | /kind-of@4.0.0: 2164 | resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} 2165 | engines: {node: '>=0.10.0'} 2166 | requiresBuild: true 2167 | dependencies: 2168 | is-buffer: 1.1.6 2169 | dev: true 2170 | optional: true 2171 | 2172 | /kind-of@6.0.3: 2173 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 2174 | engines: {node: '>=0.10.0'} 2175 | dev: true 2176 | 2177 | /locate-path@3.0.0: 2178 | resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} 2179 | engines: {node: '>=6'} 2180 | dependencies: 2181 | p-locate: 3.0.0 2182 | path-exists: 3.0.0 2183 | dev: true 2184 | 2185 | /lodash@4.17.21: 2186 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2187 | dev: true 2188 | 2189 | /loose-envify@1.4.0: 2190 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2191 | hasBin: true 2192 | dependencies: 2193 | js-tokens: 4.0.0 2194 | dev: true 2195 | 2196 | /lru-cache@5.1.1: 2197 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 2198 | dependencies: 2199 | yallist: 3.1.1 2200 | dev: true 2201 | 2202 | /make-dir@2.1.0: 2203 | resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} 2204 | engines: {node: '>=6'} 2205 | dependencies: 2206 | pify: 4.0.1 2207 | semver: 5.7.2 2208 | dev: true 2209 | 2210 | /map-cache@0.2.2: 2211 | resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} 2212 | engines: {node: '>=0.10.0'} 2213 | requiresBuild: true 2214 | dev: true 2215 | optional: true 2216 | 2217 | /map-visit@1.0.0: 2218 | resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} 2219 | engines: {node: '>=0.10.0'} 2220 | requiresBuild: true 2221 | dependencies: 2222 | object-visit: 1.0.1 2223 | dev: true 2224 | optional: true 2225 | 2226 | /micromatch@3.1.10: 2227 | resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} 2228 | engines: {node: '>=0.10.0'} 2229 | requiresBuild: true 2230 | dependencies: 2231 | arr-diff: 4.0.0 2232 | array-unique: 0.3.2 2233 | braces: 2.3.2 2234 | define-property: 2.0.2 2235 | extend-shallow: 3.0.2 2236 | extglob: 2.0.4 2237 | fragment-cache: 0.2.1 2238 | kind-of: 6.0.3 2239 | nanomatch: 1.2.13 2240 | object.pick: 1.3.0 2241 | regex-not: 1.0.2 2242 | snapdragon: 0.8.2 2243 | to-regex: 3.0.2 2244 | transitivePeerDependencies: 2245 | - supports-color 2246 | dev: true 2247 | optional: true 2248 | 2249 | /minimatch@3.1.2: 2250 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2251 | dependencies: 2252 | brace-expansion: 1.1.11 2253 | dev: true 2254 | 2255 | /minimist@1.2.8: 2256 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2257 | dev: true 2258 | 2259 | /mixin-deep@1.3.2: 2260 | resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} 2261 | engines: {node: '>=0.10.0'} 2262 | requiresBuild: true 2263 | dependencies: 2264 | for-in: 1.0.2 2265 | is-extendable: 1.0.1 2266 | dev: true 2267 | optional: true 2268 | 2269 | /mkdirp@0.5.6: 2270 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 2271 | hasBin: true 2272 | dependencies: 2273 | minimist: 1.2.8 2274 | dev: true 2275 | 2276 | /ms@2.0.0: 2277 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 2278 | requiresBuild: true 2279 | dev: true 2280 | optional: true 2281 | 2282 | /ms@2.1.2: 2283 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2284 | dev: true 2285 | 2286 | /nan@2.18.0: 2287 | resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} 2288 | requiresBuild: true 2289 | dev: true 2290 | optional: true 2291 | 2292 | /nanomatch@1.2.13: 2293 | resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} 2294 | engines: {node: '>=0.10.0'} 2295 | requiresBuild: true 2296 | dependencies: 2297 | arr-diff: 4.0.0 2298 | array-unique: 0.3.2 2299 | define-property: 2.0.2 2300 | extend-shallow: 3.0.2 2301 | fragment-cache: 0.2.1 2302 | is-windows: 1.0.2 2303 | kind-of: 6.0.3 2304 | object.pick: 1.3.0 2305 | regex-not: 1.0.2 2306 | snapdragon: 0.8.2 2307 | to-regex: 3.0.2 2308 | transitivePeerDependencies: 2309 | - supports-color 2310 | dev: true 2311 | optional: true 2312 | 2313 | /node-environment-flags@1.0.6: 2314 | resolution: {integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==} 2315 | dependencies: 2316 | object.getownpropertydescriptors: 2.1.7 2317 | semver: 5.7.2 2318 | dev: true 2319 | 2320 | /node-releases@2.0.14: 2321 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 2322 | dev: true 2323 | 2324 | /normalize-path@2.1.1: 2325 | resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} 2326 | engines: {node: '>=0.10.0'} 2327 | requiresBuild: true 2328 | dependencies: 2329 | remove-trailing-separator: 1.1.0 2330 | dev: true 2331 | optional: true 2332 | 2333 | /normalize-path@3.0.0: 2334 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2335 | engines: {node: '>=0.10.0'} 2336 | requiresBuild: true 2337 | dev: true 2338 | optional: true 2339 | 2340 | /object-copy@0.1.0: 2341 | resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} 2342 | engines: {node: '>=0.10.0'} 2343 | requiresBuild: true 2344 | dependencies: 2345 | copy-descriptor: 0.1.1 2346 | define-property: 0.2.5 2347 | kind-of: 3.2.2 2348 | dev: true 2349 | optional: true 2350 | 2351 | /object-inspect@1.13.1: 2352 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 2353 | dev: true 2354 | 2355 | /object-keys@1.1.1: 2356 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2357 | engines: {node: '>= 0.4'} 2358 | dev: true 2359 | 2360 | /object-visit@1.0.1: 2361 | resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} 2362 | engines: {node: '>=0.10.0'} 2363 | requiresBuild: true 2364 | dependencies: 2365 | isobject: 3.0.1 2366 | dev: true 2367 | optional: true 2368 | 2369 | /object.assign@4.1.5: 2370 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} 2371 | engines: {node: '>= 0.4'} 2372 | dependencies: 2373 | call-bind: 1.0.5 2374 | define-properties: 1.2.1 2375 | has-symbols: 1.0.3 2376 | object-keys: 1.1.1 2377 | dev: true 2378 | 2379 | /object.getownpropertydescriptors@2.1.7: 2380 | resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==} 2381 | engines: {node: '>= 0.8'} 2382 | dependencies: 2383 | array.prototype.reduce: 1.0.6 2384 | call-bind: 1.0.5 2385 | define-properties: 1.2.1 2386 | es-abstract: 1.22.3 2387 | safe-array-concat: 1.1.0 2388 | dev: true 2389 | 2390 | /object.pick@1.3.0: 2391 | resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} 2392 | engines: {node: '>=0.10.0'} 2393 | requiresBuild: true 2394 | dependencies: 2395 | isobject: 3.0.1 2396 | dev: true 2397 | optional: true 2398 | 2399 | /once@1.4.0: 2400 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2401 | dependencies: 2402 | wrappy: 1.0.2 2403 | dev: true 2404 | 2405 | /output-file-sync@2.0.1: 2406 | resolution: {integrity: sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==} 2407 | dependencies: 2408 | graceful-fs: 4.2.11 2409 | is-plain-obj: 1.1.0 2410 | mkdirp: 0.5.6 2411 | dev: true 2412 | 2413 | /p-limit@2.3.0: 2414 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2415 | engines: {node: '>=6'} 2416 | dependencies: 2417 | p-try: 2.2.0 2418 | dev: true 2419 | 2420 | /p-locate@3.0.0: 2421 | resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} 2422 | engines: {node: '>=6'} 2423 | dependencies: 2424 | p-limit: 2.3.0 2425 | dev: true 2426 | 2427 | /p-try@2.2.0: 2428 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2429 | engines: {node: '>=6'} 2430 | dev: true 2431 | 2432 | /parse-passwd@1.0.0: 2433 | resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} 2434 | engines: {node: '>=0.10.0'} 2435 | dev: true 2436 | 2437 | /pascalcase@0.1.1: 2438 | resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} 2439 | engines: {node: '>=0.10.0'} 2440 | requiresBuild: true 2441 | dev: true 2442 | optional: true 2443 | 2444 | /path-dirname@1.0.2: 2445 | resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} 2446 | requiresBuild: true 2447 | dev: true 2448 | optional: true 2449 | 2450 | /path-exists@3.0.0: 2451 | resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} 2452 | engines: {node: '>=4'} 2453 | dev: true 2454 | 2455 | /path-is-absolute@1.0.1: 2456 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2457 | engines: {node: '>=0.10.0'} 2458 | dev: true 2459 | 2460 | /path-key@3.1.1: 2461 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2462 | engines: {node: '>=8'} 2463 | dev: true 2464 | 2465 | /path-parse@1.0.7: 2466 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2467 | dev: true 2468 | 2469 | /picocolors@1.0.0: 2470 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2471 | dev: true 2472 | 2473 | /pify@4.0.1: 2474 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 2475 | engines: {node: '>=6'} 2476 | dev: true 2477 | 2478 | /pirates@4.0.6: 2479 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 2480 | engines: {node: '>= 6'} 2481 | dev: true 2482 | 2483 | /pkg-dir@3.0.0: 2484 | resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} 2485 | engines: {node: '>=6'} 2486 | dependencies: 2487 | find-up: 3.0.0 2488 | dev: true 2489 | 2490 | /posix-character-classes@0.1.1: 2491 | resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} 2492 | engines: {node: '>=0.10.0'} 2493 | requiresBuild: true 2494 | dev: true 2495 | optional: true 2496 | 2497 | /prettier@3.3.0: 2498 | resolution: {integrity: sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==} 2499 | engines: {node: '>=14'} 2500 | hasBin: true 2501 | dev: true 2502 | 2503 | /process-nextick-args@2.0.1: 2504 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 2505 | requiresBuild: true 2506 | dev: true 2507 | optional: true 2508 | 2509 | /react@18.3.1: 2510 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 2511 | engines: {node: '>=0.10.0'} 2512 | dependencies: 2513 | loose-envify: 1.4.0 2514 | dev: true 2515 | 2516 | /readable-stream@2.3.8: 2517 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 2518 | requiresBuild: true 2519 | dependencies: 2520 | core-util-is: 1.0.3 2521 | inherits: 2.0.4 2522 | isarray: 1.0.0 2523 | process-nextick-args: 2.0.1 2524 | safe-buffer: 5.1.2 2525 | string_decoder: 1.1.1 2526 | util-deprecate: 1.0.2 2527 | dev: true 2528 | optional: true 2529 | 2530 | /readdirp@2.2.1: 2531 | resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} 2532 | engines: {node: '>=0.10'} 2533 | requiresBuild: true 2534 | dependencies: 2535 | graceful-fs: 4.2.11 2536 | micromatch: 3.1.10 2537 | readable-stream: 2.3.8 2538 | transitivePeerDependencies: 2539 | - supports-color 2540 | dev: true 2541 | optional: true 2542 | 2543 | /regenerate-unicode-properties@10.1.1: 2544 | resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} 2545 | engines: {node: '>=4'} 2546 | dependencies: 2547 | regenerate: 1.4.2 2548 | dev: true 2549 | 2550 | /regenerate@1.4.2: 2551 | resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} 2552 | dev: true 2553 | 2554 | /regenerator-runtime@0.13.11: 2555 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 2556 | dev: true 2557 | 2558 | /regenerator-runtime@0.14.1: 2559 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 2560 | dev: true 2561 | 2562 | /regenerator-transform@0.15.2: 2563 | resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} 2564 | dependencies: 2565 | '@babel/runtime': 7.23.9 2566 | dev: true 2567 | 2568 | /regex-not@1.0.2: 2569 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} 2570 | engines: {node: '>=0.10.0'} 2571 | requiresBuild: true 2572 | dependencies: 2573 | extend-shallow: 3.0.2 2574 | safe-regex: 1.1.0 2575 | dev: true 2576 | optional: true 2577 | 2578 | /regexp.prototype.flags@1.5.1: 2579 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} 2580 | engines: {node: '>= 0.4'} 2581 | dependencies: 2582 | call-bind: 1.0.5 2583 | define-properties: 1.2.1 2584 | set-function-name: 2.0.1 2585 | dev: true 2586 | 2587 | /regexpu-core@5.3.2: 2588 | resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} 2589 | engines: {node: '>=4'} 2590 | dependencies: 2591 | '@babel/regjsgen': 0.8.0 2592 | regenerate: 1.4.2 2593 | regenerate-unicode-properties: 10.1.1 2594 | regjsparser: 0.9.1 2595 | unicode-match-property-ecmascript: 2.0.0 2596 | unicode-match-property-value-ecmascript: 2.1.0 2597 | dev: true 2598 | 2599 | /regjsparser@0.9.1: 2600 | resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} 2601 | hasBin: true 2602 | dependencies: 2603 | jsesc: 0.5.0 2604 | dev: true 2605 | 2606 | /remove-trailing-separator@1.1.0: 2607 | resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} 2608 | requiresBuild: true 2609 | dev: true 2610 | optional: true 2611 | 2612 | /repeat-element@1.1.4: 2613 | resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} 2614 | engines: {node: '>=0.10.0'} 2615 | requiresBuild: true 2616 | dev: true 2617 | optional: true 2618 | 2619 | /repeat-string@1.6.1: 2620 | resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} 2621 | engines: {node: '>=0.10'} 2622 | requiresBuild: true 2623 | dev: true 2624 | optional: true 2625 | 2626 | /resolve-url@0.2.1: 2627 | resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} 2628 | deprecated: https://github.com/lydell/resolve-url#deprecated 2629 | requiresBuild: true 2630 | dev: true 2631 | optional: true 2632 | 2633 | /resolve@1.22.8: 2634 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 2635 | hasBin: true 2636 | dependencies: 2637 | is-core-module: 2.13.1 2638 | path-parse: 1.0.7 2639 | supports-preserve-symlinks-flag: 1.0.0 2640 | dev: true 2641 | 2642 | /ret@0.1.15: 2643 | resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} 2644 | engines: {node: '>=0.12'} 2645 | requiresBuild: true 2646 | dev: true 2647 | optional: true 2648 | 2649 | /rimraf@3.0.0: 2650 | resolution: {integrity: sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==} 2651 | hasBin: true 2652 | dependencies: 2653 | glob: 7.2.3 2654 | dev: true 2655 | 2656 | /safe-array-concat@1.1.0: 2657 | resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} 2658 | engines: {node: '>=0.4'} 2659 | dependencies: 2660 | call-bind: 1.0.5 2661 | get-intrinsic: 1.2.2 2662 | has-symbols: 1.0.3 2663 | isarray: 2.0.5 2664 | dev: true 2665 | 2666 | /safe-buffer@5.1.2: 2667 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 2668 | requiresBuild: true 2669 | dev: true 2670 | optional: true 2671 | 2672 | /safe-regex-test@1.0.2: 2673 | resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} 2674 | engines: {node: '>= 0.4'} 2675 | dependencies: 2676 | call-bind: 1.0.5 2677 | get-intrinsic: 1.2.2 2678 | is-regex: 1.1.4 2679 | dev: true 2680 | 2681 | /safe-regex@1.1.0: 2682 | resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} 2683 | requiresBuild: true 2684 | dependencies: 2685 | ret: 0.1.15 2686 | dev: true 2687 | optional: true 2688 | 2689 | /semver@5.7.2: 2690 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 2691 | hasBin: true 2692 | dev: true 2693 | 2694 | /semver@6.3.1: 2695 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 2696 | hasBin: true 2697 | dev: true 2698 | 2699 | /set-function-length@1.2.0: 2700 | resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} 2701 | engines: {node: '>= 0.4'} 2702 | dependencies: 2703 | define-data-property: 1.1.1 2704 | function-bind: 1.1.2 2705 | get-intrinsic: 1.2.2 2706 | gopd: 1.0.1 2707 | has-property-descriptors: 1.0.1 2708 | dev: true 2709 | 2710 | /set-function-name@2.0.1: 2711 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} 2712 | engines: {node: '>= 0.4'} 2713 | dependencies: 2714 | define-data-property: 1.1.1 2715 | functions-have-names: 1.2.3 2716 | has-property-descriptors: 1.0.1 2717 | dev: true 2718 | 2719 | /set-value@2.0.1: 2720 | resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} 2721 | engines: {node: '>=0.10.0'} 2722 | requiresBuild: true 2723 | dependencies: 2724 | extend-shallow: 2.0.1 2725 | is-extendable: 0.1.1 2726 | is-plain-object: 2.0.4 2727 | split-string: 3.1.0 2728 | dev: true 2729 | optional: true 2730 | 2731 | /shallow-clone@3.0.1: 2732 | resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} 2733 | engines: {node: '>=8'} 2734 | dependencies: 2735 | kind-of: 6.0.3 2736 | dev: true 2737 | 2738 | /shebang-command@2.0.0: 2739 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2740 | engines: {node: '>=8'} 2741 | dependencies: 2742 | shebang-regex: 3.0.0 2743 | dev: true 2744 | 2745 | /shebang-regex@3.0.0: 2746 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2747 | engines: {node: '>=8'} 2748 | dev: true 2749 | 2750 | /side-channel@1.0.4: 2751 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2752 | dependencies: 2753 | call-bind: 1.0.5 2754 | get-intrinsic: 1.2.2 2755 | object-inspect: 1.13.1 2756 | dev: true 2757 | 2758 | /slash@2.0.0: 2759 | resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} 2760 | engines: {node: '>=6'} 2761 | dev: true 2762 | 2763 | /snapdragon-node@2.1.1: 2764 | resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} 2765 | engines: {node: '>=0.10.0'} 2766 | requiresBuild: true 2767 | dependencies: 2768 | define-property: 1.0.0 2769 | isobject: 3.0.1 2770 | snapdragon-util: 3.0.1 2771 | dev: true 2772 | optional: true 2773 | 2774 | /snapdragon-util@3.0.1: 2775 | resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} 2776 | engines: {node: '>=0.10.0'} 2777 | requiresBuild: true 2778 | dependencies: 2779 | kind-of: 3.2.2 2780 | dev: true 2781 | optional: true 2782 | 2783 | /snapdragon@0.8.2: 2784 | resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} 2785 | engines: {node: '>=0.10.0'} 2786 | requiresBuild: true 2787 | dependencies: 2788 | base: 0.11.2 2789 | debug: 2.6.9 2790 | define-property: 0.2.5 2791 | extend-shallow: 2.0.1 2792 | map-cache: 0.2.2 2793 | source-map: 0.5.7 2794 | source-map-resolve: 0.5.3 2795 | use: 3.1.1 2796 | transitivePeerDependencies: 2797 | - supports-color 2798 | dev: true 2799 | optional: true 2800 | 2801 | /source-map-resolve@0.5.3: 2802 | resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} 2803 | deprecated: See https://github.com/lydell/source-map-resolve#deprecated 2804 | requiresBuild: true 2805 | dependencies: 2806 | atob: 2.1.2 2807 | decode-uri-component: 0.2.2 2808 | resolve-url: 0.2.1 2809 | source-map-url: 0.4.1 2810 | urix: 0.1.0 2811 | dev: true 2812 | optional: true 2813 | 2814 | /source-map-support@0.5.21: 2815 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 2816 | dependencies: 2817 | buffer-from: 1.1.2 2818 | source-map: 0.6.1 2819 | dev: true 2820 | 2821 | /source-map-url@0.4.1: 2822 | resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} 2823 | deprecated: See https://github.com/lydell/source-map-url#deprecated 2824 | requiresBuild: true 2825 | dev: true 2826 | optional: true 2827 | 2828 | /source-map@0.5.7: 2829 | resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} 2830 | engines: {node: '>=0.10.0'} 2831 | dev: true 2832 | 2833 | /source-map@0.6.1: 2834 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2835 | engines: {node: '>=0.10.0'} 2836 | dev: true 2837 | 2838 | /split-string@3.1.0: 2839 | resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} 2840 | engines: {node: '>=0.10.0'} 2841 | requiresBuild: true 2842 | dependencies: 2843 | extend-shallow: 3.0.2 2844 | dev: true 2845 | optional: true 2846 | 2847 | /static-extend@0.1.2: 2848 | resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} 2849 | engines: {node: '>=0.10.0'} 2850 | requiresBuild: true 2851 | dependencies: 2852 | define-property: 0.2.5 2853 | object-copy: 0.1.0 2854 | dev: true 2855 | optional: true 2856 | 2857 | /string.prototype.trim@1.2.8: 2858 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} 2859 | engines: {node: '>= 0.4'} 2860 | dependencies: 2861 | call-bind: 1.0.5 2862 | define-properties: 1.2.1 2863 | es-abstract: 1.22.3 2864 | dev: true 2865 | 2866 | /string.prototype.trimend@1.0.7: 2867 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} 2868 | dependencies: 2869 | call-bind: 1.0.5 2870 | define-properties: 1.2.1 2871 | es-abstract: 1.22.3 2872 | dev: true 2873 | 2874 | /string.prototype.trimstart@1.0.7: 2875 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} 2876 | dependencies: 2877 | call-bind: 1.0.5 2878 | define-properties: 1.2.1 2879 | es-abstract: 1.22.3 2880 | dev: true 2881 | 2882 | /string_decoder@1.1.1: 2883 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 2884 | requiresBuild: true 2885 | dependencies: 2886 | safe-buffer: 5.1.2 2887 | dev: true 2888 | optional: true 2889 | 2890 | /supports-color@5.5.0: 2891 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2892 | engines: {node: '>=4'} 2893 | dependencies: 2894 | has-flag: 3.0.0 2895 | dev: true 2896 | 2897 | /supports-preserve-symlinks-flag@1.0.0: 2898 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2899 | engines: {node: '>= 0.4'} 2900 | dev: true 2901 | 2902 | /to-fast-properties@2.0.0: 2903 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 2904 | engines: {node: '>=4'} 2905 | dev: true 2906 | 2907 | /to-object-path@0.3.0: 2908 | resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} 2909 | engines: {node: '>=0.10.0'} 2910 | requiresBuild: true 2911 | dependencies: 2912 | kind-of: 3.2.2 2913 | dev: true 2914 | optional: true 2915 | 2916 | /to-regex-range@2.1.1: 2917 | resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} 2918 | engines: {node: '>=0.10.0'} 2919 | requiresBuild: true 2920 | dependencies: 2921 | is-number: 3.0.0 2922 | repeat-string: 1.6.1 2923 | dev: true 2924 | optional: true 2925 | 2926 | /to-regex@3.0.2: 2927 | resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} 2928 | engines: {node: '>=0.10.0'} 2929 | requiresBuild: true 2930 | dependencies: 2931 | define-property: 2.0.2 2932 | extend-shallow: 3.0.2 2933 | regex-not: 1.0.2 2934 | safe-regex: 1.1.0 2935 | dev: true 2936 | optional: true 2937 | 2938 | /typed-array-buffer@1.0.0: 2939 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} 2940 | engines: {node: '>= 0.4'} 2941 | dependencies: 2942 | call-bind: 1.0.5 2943 | get-intrinsic: 1.2.2 2944 | is-typed-array: 1.1.12 2945 | dev: true 2946 | 2947 | /typed-array-byte-length@1.0.0: 2948 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} 2949 | engines: {node: '>= 0.4'} 2950 | dependencies: 2951 | call-bind: 1.0.5 2952 | for-each: 0.3.3 2953 | has-proto: 1.0.1 2954 | is-typed-array: 1.1.12 2955 | dev: true 2956 | 2957 | /typed-array-byte-offset@1.0.0: 2958 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} 2959 | engines: {node: '>= 0.4'} 2960 | dependencies: 2961 | available-typed-arrays: 1.0.5 2962 | call-bind: 1.0.5 2963 | for-each: 0.3.3 2964 | has-proto: 1.0.1 2965 | is-typed-array: 1.1.12 2966 | dev: true 2967 | 2968 | /typed-array-length@1.0.4: 2969 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 2970 | dependencies: 2971 | call-bind: 1.0.5 2972 | for-each: 0.3.3 2973 | is-typed-array: 1.1.12 2974 | dev: true 2975 | 2976 | /typescript@5.4.5: 2977 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} 2978 | engines: {node: '>=14.17'} 2979 | hasBin: true 2980 | dev: true 2981 | 2982 | /unbox-primitive@1.0.2: 2983 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2984 | dependencies: 2985 | call-bind: 1.0.5 2986 | has-bigints: 1.0.2 2987 | has-symbols: 1.0.3 2988 | which-boxed-primitive: 1.0.2 2989 | dev: true 2990 | 2991 | /unicode-canonical-property-names-ecmascript@2.0.0: 2992 | resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} 2993 | engines: {node: '>=4'} 2994 | dev: true 2995 | 2996 | /unicode-match-property-ecmascript@2.0.0: 2997 | resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} 2998 | engines: {node: '>=4'} 2999 | dependencies: 3000 | unicode-canonical-property-names-ecmascript: 2.0.0 3001 | unicode-property-aliases-ecmascript: 2.1.0 3002 | dev: true 3003 | 3004 | /unicode-match-property-value-ecmascript@2.1.0: 3005 | resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} 3006 | engines: {node: '>=4'} 3007 | dev: true 3008 | 3009 | /unicode-property-aliases-ecmascript@2.1.0: 3010 | resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} 3011 | engines: {node: '>=4'} 3012 | dev: true 3013 | 3014 | /union-value@1.0.1: 3015 | resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} 3016 | engines: {node: '>=0.10.0'} 3017 | requiresBuild: true 3018 | dependencies: 3019 | arr-union: 3.1.0 3020 | get-value: 2.0.6 3021 | is-extendable: 0.1.1 3022 | set-value: 2.0.1 3023 | dev: true 3024 | optional: true 3025 | 3026 | /unset-value@1.0.0: 3027 | resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} 3028 | engines: {node: '>=0.10.0'} 3029 | requiresBuild: true 3030 | dependencies: 3031 | has-value: 0.3.1 3032 | isobject: 3.0.1 3033 | dev: true 3034 | optional: true 3035 | 3036 | /upath@1.2.0: 3037 | resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} 3038 | engines: {node: '>=4'} 3039 | requiresBuild: true 3040 | dev: true 3041 | optional: true 3042 | 3043 | /update-browserslist-db@1.0.13(browserslist@4.22.3): 3044 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 3045 | hasBin: true 3046 | peerDependencies: 3047 | browserslist: '>= 4.21.0' 3048 | dependencies: 3049 | browserslist: 4.22.3 3050 | escalade: 3.1.1 3051 | picocolors: 1.0.0 3052 | dev: true 3053 | 3054 | /urix@0.1.0: 3055 | resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} 3056 | deprecated: Please see https://github.com/lydell/urix#deprecated 3057 | requiresBuild: true 3058 | dev: true 3059 | optional: true 3060 | 3061 | /use@3.1.1: 3062 | resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} 3063 | engines: {node: '>=0.10.0'} 3064 | requiresBuild: true 3065 | dev: true 3066 | optional: true 3067 | 3068 | /util-deprecate@1.0.2: 3069 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3070 | requiresBuild: true 3071 | dev: true 3072 | optional: true 3073 | 3074 | /v8flags@3.2.0: 3075 | resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} 3076 | engines: {node: '>= 0.10'} 3077 | dependencies: 3078 | homedir-polyfill: 1.0.3 3079 | dev: true 3080 | 3081 | /which-boxed-primitive@1.0.2: 3082 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 3083 | dependencies: 3084 | is-bigint: 1.0.4 3085 | is-boolean-object: 1.1.2 3086 | is-number-object: 1.0.7 3087 | is-string: 1.0.7 3088 | is-symbol: 1.0.4 3089 | dev: true 3090 | 3091 | /which-typed-array@1.1.13: 3092 | resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} 3093 | engines: {node: '>= 0.4'} 3094 | dependencies: 3095 | available-typed-arrays: 1.0.5 3096 | call-bind: 1.0.5 3097 | for-each: 0.3.3 3098 | gopd: 1.0.1 3099 | has-tostringtag: 1.0.0 3100 | dev: true 3101 | 3102 | /which@2.0.2: 3103 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3104 | engines: {node: '>= 8'} 3105 | hasBin: true 3106 | dependencies: 3107 | isexe: 2.0.0 3108 | dev: true 3109 | 3110 | /wrappy@1.0.2: 3111 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3112 | dev: true 3113 | 3114 | /yallist@3.1.1: 3115 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 3116 | dev: true 3117 | 3118 | /zod@3.23.8: 3119 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 3120 | dev: true 3121 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as useForm } from './useForm' 2 | -------------------------------------------------------------------------------- /src/useForm.ts: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, useState, FormEvent, ChangeEvent } from 'react' 2 | import { z, ZodObject, ZodError, ZodRawShape, ZodIssue } from 'zod' 3 | 4 | export type Field = { 5 | value: T 6 | disabled: boolean 7 | touched: boolean 8 | dirty: boolean 9 | valid: boolean 10 | errorMessage?: string 11 | } 12 | 13 | type FieldReference = { 14 | ref: { 15 | current: { 16 | value: any 17 | dirty: boolean 18 | } 19 | } 20 | update: (data: Partial>) => void 21 | reset: () => void 22 | } 23 | 24 | type FieldsMap = Record 25 | 26 | function mapFieldsToData(fields: Record): Record { 27 | const obj: Record = {} 28 | for (const name in fields) { 29 | obj[name] = fields[name].ref.current.value 30 | } 31 | 32 | return obj 33 | } 34 | 35 | function defaultFormatErrorMessage(error: ZodIssue) { 36 | return error.message 37 | } 38 | 39 | // TODO: accept refined schemas, not possible due to https://github.com/colinhacks/zod/issues/2474 40 | export default function useForm( 41 | schema: ZodObject, 42 | formatErrorMessage: ( 43 | error: ZodIssue, 44 | name: string 45 | ) => string = defaultFormatErrorMessage 46 | ) { 47 | const [fields, setFields] = useState({}) 48 | 49 | type Options = { 50 | value?: T 51 | disabled?: boolean 52 | touched?: boolean 53 | showValidationOn?: 'submit' | 'blur' | 'change' 54 | parseValue?: (e: any) => T 55 | } 56 | 57 | function useField>( 58 | name: keyof S, 59 | { 60 | value = '' as T, 61 | disabled = false, 62 | touched = false, 63 | showValidationOn = 'submit', 64 | parseValue = (e: ChangeEvent) => e.target.value as T, 65 | }: Options = {} 66 | ) { 67 | const shape = schema.shape[name] 68 | const isOptional = shape.isOptional() 69 | 70 | function validate(value: T): undefined | string { 71 | const res = shape.safeParse(value) 72 | 73 | if (res.success) { 74 | return 75 | } else { 76 | return formatErrorMessage(res.error.errors[0], name as string) 77 | } 78 | } 79 | 80 | const message = validate(value) 81 | 82 | const initialField = { 83 | value, 84 | disabled, 85 | touched, 86 | dirty: false, 87 | valid: !message, 88 | errorMessage: message, 89 | } 90 | 91 | const ref = useRef<{ 92 | value: T 93 | dirty: boolean 94 | }>({ 95 | value, 96 | dirty: false, 97 | }) 98 | const [field, setField] = useState>(initialField) 99 | 100 | function update(data: Partial>) { 101 | if (typeof data.value !== 'undefined') { 102 | const dirty = data.value !== initialField.value 103 | const errorMessage = validate(data.value) 104 | 105 | ref.current = { 106 | value: data.value, 107 | dirty, 108 | } 109 | 110 | setField((field: Field) => ({ 111 | ...field, 112 | touched: showValidationOn === 'change' ? dirty : field.touched, 113 | dirty, 114 | ...data, 115 | errorMessage, 116 | valid: !errorMessage, 117 | })) 118 | } else { 119 | setField((field: Field) => ({ 120 | ...field, 121 | ...data, 122 | })) 123 | } 124 | } 125 | 126 | function reset() { 127 | ref.current = { 128 | value: initialField.value, 129 | dirty: false, 130 | } 131 | 132 | setField(initialField) 133 | } 134 | 135 | useEffect( 136 | () => 137 | setFields((fields: FieldsMap) => ({ 138 | ...fields, 139 | [name]: { 140 | ref, 141 | update, 142 | reset, 143 | }, 144 | })), 145 | [] 146 | ) 147 | 148 | function onChange(e: C) { 149 | update({ value: parseValue(e) }) 150 | } 151 | 152 | const required = !isOptional 153 | // Only show validation error when is touched 154 | const valid = !field.touched ? true : !field.errorMessage 155 | // Only show errrorMessage and validation styles if the field is touched according to the config 156 | const errorMessage = field.touched ? field.errorMessage : undefined 157 | 158 | const touch = () => update({ touched: false }) 159 | const untouch = () => update({ touched: false }) 160 | 161 | function getListeners() { 162 | if (showValidationOn === 'blur') { 163 | return { 164 | onFocus: touch, 165 | onBlur: untouch, 166 | } 167 | } 168 | 169 | return { 170 | onFocus: touch, 171 | } 172 | } 173 | 174 | const inputProps = { 175 | value: field.value, 176 | disabled: field.disabled, 177 | required, 178 | name, 179 | 'data-valid': valid, 180 | onChange, 181 | ...getListeners(), 182 | } 183 | 184 | const props = { 185 | name, 186 | value: field.value, 187 | disabled: field.disabled, 188 | valid, 189 | required, 190 | errorMessage, 191 | onChange, 192 | ...getListeners(), 193 | } 194 | 195 | return { 196 | ...field, 197 | required, 198 | valid, 199 | name, 200 | update, 201 | reset, 202 | errorMessage, 203 | inputProps, 204 | props, 205 | } 206 | } 207 | 208 | function touchFields() { 209 | for (const name in fields) { 210 | fields[name].update({ touched: true }) 211 | } 212 | } 213 | 214 | function reset() { 215 | for (const name in fields) { 216 | fields[name].reset() 217 | } 218 | } 219 | 220 | function isDirty() { 221 | for (const name in fields) { 222 | if (fields[name].ref.current.dirty) { 223 | return true 224 | } 225 | } 226 | 227 | return false 228 | } 229 | 230 | function handleSubmit( 231 | onSubmit: (data: z.infer) => void, 232 | onError?: (error: ZodError) => void 233 | ) { 234 | return (e: FormEvent) => { 235 | e.preventDefault() 236 | 237 | touchFields() 238 | 239 | const data = mapFieldsToData(fields) 240 | const parsed = schema.safeParse(data) 241 | 242 | if (parsed.success) { 243 | onSubmit(parsed.data) 244 | } else { 245 | if (onError) { 246 | onError(parsed.error) 247 | } 248 | } 249 | } 250 | } 251 | 252 | const formProps = { 253 | noValidate: true, 254 | } 255 | 256 | return { 257 | useField, 258 | handleSubmit, 259 | formProps, 260 | isDirty, 261 | reset, 262 | } 263 | } 264 | -------------------------------------------------------------------------------- /tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./lib", 5 | "module": "commonjs", 6 | "target": "es5" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./es", 5 | "module": "esnext" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "esModuleInterop": true, 4 | "forceConsistentCasingInFileNames": true, 5 | "strict": true, 6 | "skipLibCheck": true, 7 | "moduleResolution": "node", 8 | "jsx": "preserve" 9 | }, 10 | "exclude": ["node_modules", "es", "lib", "types"] 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./types", 5 | "declaration": true, 6 | "emitDeclarationOnly": true 7 | } 8 | } 9 | --------------------------------------------------------------------------------