├── .gitignore ├── LICENSE ├── README.md ├── package.json ├── pnpm-lock.yaml ├── src └── index.tsx ├── tests ├── index.test.tsx └── setup.ts ├── tsconfig.json └── vitest.config.ts /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .DS_Store 4 | coverage -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Tiaan du Plessis 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # react-hook-form-persist 3 | [![package version](https://img.shields.io/npm/v/react-hook-form-persist.svg?style=flat-square)](https://npmjs.org/package/react-hook-form-persist) 4 | [![package downloads](https://img.shields.io/npm/dm/react-hook-form-persist.svg?style=flat-square)](https://npmjs.org/package/react-hook-form-persist) 5 | [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) 6 | [![package license](https://img.shields.io/npm/l/react-hook-form-persist.svg?style=flat-square)](https://npmjs.org/package/react-hook-form-persist) 7 | [![make a pull request](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) 8 | 9 | Persist and populate [react-hook-form](https://react-hook-form.com/) form using storage of your choice 10 | 11 | ## 📖 Table of Contents 12 | 13 | - [react-hook-form-persist](#react-hook-form-persist) 14 | - [📖 Table of Contents](#-table-of-contents) 15 | - [⚙️ Install](#️-install) 16 | - [📖 Usage](#-usage) 17 | - [Additional examples](#additional-examples) 18 | - [📚 API](#-api) 19 | - [💬 Contributing](#-contributing) 20 | - [🪪 License](#-license) 21 | 22 | ## ⚙️ Install 23 | 24 | Install the package locally within you project folder with your package manager: 25 | 26 | With `npm`: 27 | ```sh 28 | npm install react-hook-form-persist 29 | ``` 30 | 31 | With `yarn`: 32 | ```sh 33 | yarn add react-hook-form-persist 34 | ``` 35 | 36 | With `pnpm`: 37 | ```sh 38 | pnpm add react-hook-form-persist 39 | ``` 40 | 41 | ## 📖 Usage 42 | 43 | ```jsx 44 | import React from "react"; 45 | import ReactDOM from "react-dom"; 46 | import { useForm } from "react-hook-form"; 47 | 48 | import useFormPersist from 'react-hook-form-persist' 49 | 50 | function App() { 51 | const { register, handleSubmit, watch, errors, setValue } = useForm(); 52 | 53 | useFormPersist("storageKey", { 54 | watch, 55 | setValue, 56 | storage: window.localStorage, // default window.sessionStorage 57 | exclude: ['baz'] 58 | }); 59 | 60 | const onSubmit = data => { 61 | console.log(data); 62 | }; 63 | 64 | return ( 65 |
66 | 69 | 70 | 73 | {errors.required && This field is required} 74 | 75 | 78 | 79 | 80 |
81 | ); 82 | } 83 | 84 | const rootElement = document.getElementById("root"); 85 | ReactDOM.render(, rootElement); 86 | 87 | ``` 88 | 89 | ### Additional examples 90 | 91 | Persist all form fields: 92 | 93 | ```js 94 | useFormPersist('form', {watch, setValue}); 95 | ``` 96 | 97 | Persist all form fields except password: 98 | 99 | ```js 100 | useFormPersist('form', {watch, setValue, exclude: ['password']}); 101 | ``` 102 | 103 | Persist only the email field: 104 | 105 | ```js 106 | useFormPersist('form', {watch, setValue, include: ['email'] }); 107 | ``` 108 | 109 | 110 | 111 | 112 | 113 | ## 📚 API 114 | 115 | For all configuration options, please see the [API docs](https://paka.dev/npm/react-hook-form-persist). 116 | 117 | ## 💬 Contributing 118 | 119 | Got an idea for a new feature? Found a bug? Contributions are welcome! Please [open up an issue](https://github.com/tiaanduplessis/feature-flip/issues) or [make a pull request](https://makeapullrequest.com/). 120 | 121 | ## 🪪 License 122 | 123 | [MIT © Tiaan du Plessis](./LICENSE) 124 | 125 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-hook-form-persist", 3 | "version": "3.0.0", 4 | "description": "Persist and populate react-hook-form form using storage of your choice", 5 | "types": "dist/index.d.ts", 6 | "main": "dist/index.js", 7 | "module": "dist/index.mjs", 8 | "files": [ 9 | "dist" 10 | ], 11 | "scripts": { 12 | "test": "vitest", 13 | "coverage": "vitest run --coverage", 14 | "format": "pretty-quick --ignore-path .gitignore", 15 | "build": "rm -rf dist && tsup src/index.tsx --format cjs,esm --dts --target node16", 16 | "prepublishOnly": "npm run build", 17 | "types:check": "tsc --noEmit", 18 | "size": "dist-size" 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/tiaanduplessis/react-hook-form-persist.git" 23 | }, 24 | "keywords": [ 25 | "react-hook-form", 26 | "persist", 27 | "storage", 28 | "store", 29 | "localstorage", 30 | "sessionstorage" 31 | ], 32 | "author": "Tiaan du Plessis ", 33 | "license": "MIT", 34 | "bugs": { 35 | "url": "https://github.com/tiaanduplessis/react-hook-form-persist/issues" 36 | }, 37 | "homepage": "https://github.com/tiaanduplessis/react-hook-form-persist#readme", 38 | "devDependencies": { 39 | "@testing-library/dom": "^8.13.0", 40 | "@testing-library/jest-dom": "^5.16.4", 41 | "@testing-library/react": "^13.2.0", 42 | "@testing-library/user-event": "^14.2.0", 43 | "@types/testing-library__jest-dom": "^5.14.3", 44 | "dist-size": "^0.4.0", 45 | "jsdom": "^19.0.0", 46 | "prettier": "^2.6.2", 47 | "pretty-quick": "^3.1.3", 48 | "react": "18.1.0", 49 | "react-dom": "18.1.0", 50 | "react-hook-form": "7.31.1", 51 | "tsup": "^5.12.7", 52 | "typescript": "^4.6.4", 53 | "vitest": "^0.12.6" 54 | }, 55 | "peerDependencies": { 56 | "react": ">= 16.3", 57 | "react-hook-form": ">= 6" 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | "@testing-library/dom": ^8.13.0 5 | "@testing-library/jest-dom": ^5.16.4 6 | "@testing-library/react": ^13.2.0 7 | "@testing-library/user-event": ^14.2.0 8 | "@types/testing-library__jest-dom": ^5.14.3 9 | dist-size: ^0.4.0 10 | jsdom: ^19.0.0 11 | prettier: ^2.6.2 12 | pretty-quick: ^3.1.3 13 | react: 18.1.0 14 | react-dom: 18.1.0 15 | react-hook-form: 7.31.1 16 | tsup: ^5.12.7 17 | typescript: ^4.6.4 18 | vitest: ^0.12.6 19 | 20 | devDependencies: 21 | "@testing-library/dom": 8.13.0 22 | "@testing-library/jest-dom": 5.16.4 23 | "@testing-library/react": 13.2.0_ef5jwxihqo6n7gxfmzogljlgcm 24 | "@testing-library/user-event": 14.2.0_tlwynutqiyp5mns3woioasuxnq 25 | "@types/testing-library__jest-dom": 5.14.3 26 | dist-size: 0.4.0 27 | jsdom: 19.0.0 28 | prettier: 2.6.2 29 | pretty-quick: 3.1.3_prettier@2.6.2 30 | react: 18.1.0 31 | react-dom: 18.1.0_react@18.1.0 32 | react-hook-form: 7.31.1_react@18.1.0 33 | tsup: 5.12.7_typescript@4.6.4 34 | typescript: 4.6.4 35 | vitest: 0.12.6_jsdom@19.0.0 36 | 37 | packages: 38 | /@babel/code-frame/7.16.7: 39 | resolution: 40 | { 41 | integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==, 42 | } 43 | engines: { node: ">=6.9.0" } 44 | dependencies: 45 | "@babel/highlight": 7.17.9 46 | dev: true 47 | 48 | /@babel/helper-validator-identifier/7.16.7: 49 | resolution: 50 | { 51 | integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==, 52 | } 53 | engines: { node: ">=6.9.0" } 54 | dev: true 55 | 56 | /@babel/highlight/7.17.9: 57 | resolution: 58 | { 59 | integrity: sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==, 60 | } 61 | engines: { node: ">=6.9.0" } 62 | dependencies: 63 | "@babel/helper-validator-identifier": 7.16.7 64 | chalk: 2.4.2 65 | js-tokens: 4.0.0 66 | dev: true 67 | 68 | /@babel/runtime/7.17.9: 69 | resolution: 70 | { 71 | integrity: sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==, 72 | } 73 | engines: { node: ">=6.9.0" } 74 | dependencies: 75 | regenerator-runtime: 0.13.9 76 | dev: true 77 | 78 | /@nodelib/fs.scandir/2.1.5: 79 | resolution: 80 | { 81 | integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, 82 | } 83 | engines: { node: ">= 8" } 84 | dependencies: 85 | "@nodelib/fs.stat": 2.0.5 86 | run-parallel: 1.2.0 87 | dev: true 88 | 89 | /@nodelib/fs.stat/2.0.5: 90 | resolution: 91 | { 92 | integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, 93 | } 94 | engines: { node: ">= 8" } 95 | dev: true 96 | 97 | /@nodelib/fs.walk/1.2.8: 98 | resolution: 99 | { 100 | integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, 101 | } 102 | engines: { node: ">= 8" } 103 | dependencies: 104 | "@nodelib/fs.scandir": 2.1.5 105 | fastq: 1.13.0 106 | dev: true 107 | 108 | /@testing-library/dom/8.13.0: 109 | resolution: 110 | { 111 | integrity: sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==, 112 | } 113 | engines: { node: ">=12" } 114 | dependencies: 115 | "@babel/code-frame": 7.16.7 116 | "@babel/runtime": 7.17.9 117 | "@types/aria-query": 4.2.2 118 | aria-query: 5.0.0 119 | chalk: 4.1.2 120 | dom-accessibility-api: 0.5.14 121 | lz-string: 1.4.4 122 | pretty-format: 27.5.1 123 | dev: true 124 | 125 | /@testing-library/jest-dom/5.16.4: 126 | resolution: 127 | { 128 | integrity: sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA==, 129 | } 130 | engines: { node: ">=8", npm: ">=6", yarn: ">=1" } 131 | dependencies: 132 | "@babel/runtime": 7.17.9 133 | "@types/testing-library__jest-dom": 5.14.3 134 | aria-query: 5.0.0 135 | chalk: 3.0.0 136 | css: 3.0.0 137 | css.escape: 1.5.1 138 | dom-accessibility-api: 0.5.14 139 | lodash: 4.17.21 140 | redent: 3.0.0 141 | dev: true 142 | 143 | /@testing-library/react/13.2.0_ef5jwxihqo6n7gxfmzogljlgcm: 144 | resolution: 145 | { 146 | integrity: sha512-Bprbz/SZVONCJy5f7hcihNCv313IJXdYiv0nSJklIs1SQCIHHNlnGNkosSXnGZTmesyGIcBGNppYhXcc11pb7g==, 147 | } 148 | engines: { node: ">=12" } 149 | peerDependencies: 150 | react: ^18.0.0 151 | react-dom: ^18.0.0 152 | dependencies: 153 | "@babel/runtime": 7.17.9 154 | "@testing-library/dom": 8.13.0 155 | "@types/react-dom": 18.0.4 156 | react: 18.1.0 157 | react-dom: 18.1.0_react@18.1.0 158 | dev: true 159 | 160 | /@testing-library/user-event/14.2.0_tlwynutqiyp5mns3woioasuxnq: 161 | resolution: 162 | { 163 | integrity: sha512-+hIlG4nJS6ivZrKnOP7OGsDu9Fxmryj9vCl8x0ZINtTJcCHs2zLsYif5GzuRiBF2ck5GZG2aQr7Msg+EHlnYVQ==, 164 | } 165 | engines: { node: ">=12", npm: ">=6" } 166 | peerDependencies: 167 | "@testing-library/dom": ">=7.21.4" 168 | dependencies: 169 | "@testing-library/dom": 8.13.0 170 | dev: true 171 | 172 | /@tootallnate/once/2.0.0: 173 | resolution: 174 | { 175 | integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==, 176 | } 177 | engines: { node: ">= 10" } 178 | dev: true 179 | 180 | /@types/aria-query/4.2.2: 181 | resolution: 182 | { 183 | integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==, 184 | } 185 | dev: true 186 | 187 | /@types/chai-subset/1.3.3: 188 | resolution: 189 | { 190 | integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==, 191 | } 192 | dependencies: 193 | "@types/chai": 4.3.1 194 | dev: true 195 | 196 | /@types/chai/4.3.1: 197 | resolution: 198 | { 199 | integrity: sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==, 200 | } 201 | dev: true 202 | 203 | /@types/jest/27.5.1: 204 | resolution: 205 | { 206 | integrity: sha512-fUy7YRpT+rHXto1YlL+J9rs0uLGyiqVt3ZOTQR+4ROc47yNl8WLdVLgUloBRhOxP1PZvguHl44T3H0wAWxahYQ==, 207 | } 208 | dependencies: 209 | jest-matcher-utils: 27.5.1 210 | pretty-format: 27.5.1 211 | dev: true 212 | 213 | /@types/keyv/3.1.4: 214 | resolution: 215 | { 216 | integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, 217 | } 218 | dependencies: 219 | "@types/node": 17.0.33 220 | dev: true 221 | 222 | /@types/minimatch/3.0.5: 223 | resolution: 224 | { 225 | integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==, 226 | } 227 | dev: true 228 | 229 | /@types/minimist/1.2.2: 230 | resolution: 231 | { 232 | integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, 233 | } 234 | dev: true 235 | 236 | /@types/node/17.0.33: 237 | resolution: 238 | { 239 | integrity: sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==, 240 | } 241 | dev: true 242 | 243 | /@types/prop-types/15.7.5: 244 | resolution: 245 | { 246 | integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==, 247 | } 248 | dev: true 249 | 250 | /@types/react-dom/18.0.4: 251 | resolution: 252 | { 253 | integrity: sha512-FgTtbqPOCI3dzZPZoC2T/sx3L34qxy99ITWn4eoSA95qPyXDMH0ALoAqUp49ITniiJFsXUVBtalh/KffMpg21Q==, 254 | } 255 | dependencies: 256 | "@types/react": 18.0.9 257 | dev: true 258 | 259 | /@types/react/18.0.9: 260 | resolution: 261 | { 262 | integrity: sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==, 263 | } 264 | dependencies: 265 | "@types/prop-types": 15.7.5 266 | "@types/scheduler": 0.16.2 267 | csstype: 3.0.11 268 | dev: true 269 | 270 | /@types/responselike/1.0.0: 271 | resolution: 272 | { 273 | integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==, 274 | } 275 | dependencies: 276 | "@types/node": 17.0.33 277 | dev: true 278 | 279 | /@types/scheduler/0.16.2: 280 | resolution: 281 | { 282 | integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==, 283 | } 284 | dev: true 285 | 286 | /@types/testing-library__jest-dom/5.14.3: 287 | resolution: 288 | { 289 | integrity: sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==, 290 | } 291 | dependencies: 292 | "@types/jest": 27.5.1 293 | dev: true 294 | 295 | /abab/2.0.6: 296 | resolution: 297 | { 298 | integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==, 299 | } 300 | dev: true 301 | 302 | /acorn-globals/6.0.0: 303 | resolution: 304 | { 305 | integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==, 306 | } 307 | dependencies: 308 | acorn: 7.4.1 309 | acorn-walk: 7.2.0 310 | dev: true 311 | 312 | /acorn-walk/7.2.0: 313 | resolution: 314 | { 315 | integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==, 316 | } 317 | engines: { node: ">=0.4.0" } 318 | dev: true 319 | 320 | /acorn/7.4.1: 321 | resolution: 322 | { 323 | integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, 324 | } 325 | engines: { node: ">=0.4.0" } 326 | hasBin: true 327 | dev: true 328 | 329 | /acorn/8.7.1: 330 | resolution: 331 | { 332 | integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==, 333 | } 334 | engines: { node: ">=0.4.0" } 335 | hasBin: true 336 | dev: true 337 | 338 | /agent-base/6.0.2: 339 | resolution: 340 | { 341 | integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, 342 | } 343 | engines: { node: ">= 6.0.0" } 344 | dependencies: 345 | debug: 4.3.4 346 | transitivePeerDependencies: 347 | - supports-color 348 | dev: true 349 | 350 | /ansi-align/2.0.0: 351 | resolution: { integrity: sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= } 352 | dependencies: 353 | string-width: 2.1.1 354 | dev: true 355 | 356 | /ansi-regex/3.0.1: 357 | resolution: 358 | { 359 | integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==, 360 | } 361 | engines: { node: ">=4" } 362 | dev: true 363 | 364 | /ansi-regex/5.0.1: 365 | resolution: 366 | { 367 | integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, 368 | } 369 | engines: { node: ">=8" } 370 | dev: true 371 | 372 | /ansi-styles/3.2.1: 373 | resolution: 374 | { 375 | integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, 376 | } 377 | engines: { node: ">=4" } 378 | dependencies: 379 | color-convert: 1.9.3 380 | dev: true 381 | 382 | /ansi-styles/4.3.0: 383 | resolution: 384 | { 385 | integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, 386 | } 387 | engines: { node: ">=8" } 388 | dependencies: 389 | color-convert: 2.0.1 390 | dev: true 391 | 392 | /ansi-styles/5.2.0: 393 | resolution: 394 | { 395 | integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, 396 | } 397 | engines: { node: ">=10" } 398 | dev: true 399 | 400 | /any-promise/1.3.0: 401 | resolution: { integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8= } 402 | dev: true 403 | 404 | /anymatch/3.1.2: 405 | resolution: 406 | { 407 | integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==, 408 | } 409 | engines: { node: ">= 8" } 410 | dependencies: 411 | normalize-path: 3.0.0 412 | picomatch: 2.3.1 413 | dev: true 414 | 415 | /aria-query/5.0.0: 416 | resolution: 417 | { 418 | integrity: sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==, 419 | } 420 | engines: { node: ">=6.0" } 421 | dev: true 422 | 423 | /array-differ/3.0.0: 424 | resolution: 425 | { 426 | integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==, 427 | } 428 | engines: { node: ">=8" } 429 | dev: true 430 | 431 | /array-union/1.0.2: 432 | resolution: { integrity: sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= } 433 | engines: { node: ">=0.10.0" } 434 | dependencies: 435 | array-uniq: 1.0.3 436 | dev: true 437 | 438 | /array-union/2.1.0: 439 | resolution: 440 | { 441 | integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, 442 | } 443 | engines: { node: ">=8" } 444 | dev: true 445 | 446 | /array-uniq/1.0.3: 447 | resolution: { integrity: sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= } 448 | engines: { node: ">=0.10.0" } 449 | dev: true 450 | 451 | /arrify/2.0.1: 452 | resolution: 453 | { 454 | integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, 455 | } 456 | engines: { node: ">=8" } 457 | dev: true 458 | 459 | /assertion-error/1.1.0: 460 | resolution: 461 | { 462 | integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, 463 | } 464 | dev: true 465 | 466 | /asynckit/0.4.0: 467 | resolution: { integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= } 468 | dev: true 469 | 470 | /atob/2.1.2: 471 | resolution: 472 | { 473 | integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, 474 | } 475 | engines: { node: ">= 4.5.0" } 476 | hasBin: true 477 | dev: true 478 | 479 | /balanced-match/1.0.2: 480 | resolution: 481 | { 482 | integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, 483 | } 484 | dev: true 485 | 486 | /binary-extensions/2.2.0: 487 | resolution: 488 | { 489 | integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, 490 | } 491 | engines: { node: ">=8" } 492 | dev: true 493 | 494 | /boxen/1.3.0: 495 | resolution: 496 | { 497 | integrity: sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==, 498 | } 499 | engines: { node: ">=4" } 500 | dependencies: 501 | ansi-align: 2.0.0 502 | camelcase: 4.1.0 503 | chalk: 2.4.2 504 | cli-boxes: 1.0.0 505 | string-width: 2.1.1 506 | term-size: 1.2.0 507 | widest-line: 2.0.1 508 | dev: true 509 | 510 | /brace-expansion/1.1.11: 511 | resolution: 512 | { 513 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, 514 | } 515 | dependencies: 516 | balanced-match: 1.0.2 517 | concat-map: 0.0.1 518 | dev: true 519 | 520 | /braces/3.0.2: 521 | resolution: 522 | { 523 | integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, 524 | } 525 | engines: { node: ">=8" } 526 | dependencies: 527 | fill-range: 7.0.1 528 | dev: true 529 | 530 | /browser-process-hrtime/1.0.0: 531 | resolution: 532 | { 533 | integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==, 534 | } 535 | dev: true 536 | 537 | /bundle-require/3.0.4_esbuild@0.14.39: 538 | resolution: 539 | { 540 | integrity: sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==, 541 | } 542 | engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } 543 | peerDependencies: 544 | esbuild: ">=0.13" 545 | dependencies: 546 | esbuild: 0.14.39 547 | load-tsconfig: 0.2.3 548 | dev: true 549 | 550 | /cac/4.4.4: 551 | resolution: { integrity: sha1-3sXz9qrinOmI12VOH7PG6Ad5JLE= } 552 | engines: { node: ">=6" } 553 | dependencies: 554 | chalk: 2.4.2 555 | minimost: 1.2.0 556 | read-pkg-up: 2.0.0 557 | redent: 2.0.0 558 | string-width: 2.1.1 559 | text-table: 0.2.0 560 | dev: true 561 | 562 | /cac/6.7.12: 563 | resolution: 564 | { 565 | integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==, 566 | } 567 | engines: { node: ">=8" } 568 | dev: true 569 | 570 | /camelcase/4.1.0: 571 | resolution: { integrity: sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= } 572 | engines: { node: ">=4" } 573 | dev: true 574 | 575 | /capture-stack-trace/1.0.1: 576 | resolution: 577 | { 578 | integrity: sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==, 579 | } 580 | engines: { node: ">=0.10.0" } 581 | dev: true 582 | 583 | /chai/4.3.6: 584 | resolution: 585 | { 586 | integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==, 587 | } 588 | engines: { node: ">=4" } 589 | dependencies: 590 | assertion-error: 1.1.0 591 | check-error: 1.0.2 592 | deep-eql: 3.0.1 593 | get-func-name: 2.0.0 594 | loupe: 2.3.4 595 | pathval: 1.1.1 596 | type-detect: 4.0.8 597 | dev: true 598 | 599 | /chalk/2.4.2: 600 | resolution: 601 | { 602 | integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, 603 | } 604 | engines: { node: ">=4" } 605 | dependencies: 606 | ansi-styles: 3.2.1 607 | escape-string-regexp: 1.0.5 608 | supports-color: 5.5.0 609 | dev: true 610 | 611 | /chalk/3.0.0: 612 | resolution: 613 | { 614 | integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, 615 | } 616 | engines: { node: ">=8" } 617 | dependencies: 618 | ansi-styles: 4.3.0 619 | supports-color: 7.2.0 620 | dev: true 621 | 622 | /chalk/4.1.2: 623 | resolution: 624 | { 625 | integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, 626 | } 627 | engines: { node: ">=10" } 628 | dependencies: 629 | ansi-styles: 4.3.0 630 | supports-color: 7.2.0 631 | dev: true 632 | 633 | /check-error/1.0.2: 634 | resolution: { integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= } 635 | dev: true 636 | 637 | /chokidar/3.5.3: 638 | resolution: 639 | { 640 | integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, 641 | } 642 | engines: { node: ">= 8.10.0" } 643 | dependencies: 644 | anymatch: 3.1.2 645 | braces: 3.0.2 646 | glob-parent: 5.1.2 647 | is-binary-path: 2.1.0 648 | is-glob: 4.0.3 649 | normalize-path: 3.0.0 650 | readdirp: 3.6.0 651 | optionalDependencies: 652 | fsevents: 2.3.2 653 | dev: true 654 | 655 | /ci-info/1.6.0: 656 | resolution: 657 | { 658 | integrity: sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==, 659 | } 660 | dev: true 661 | 662 | /cli-boxes/1.0.0: 663 | resolution: { integrity: sha1-T6kXw+WclKAEzWH47lCdplFocUM= } 664 | engines: { node: ">=0.10.0" } 665 | dev: true 666 | 667 | /color-convert/1.9.3: 668 | resolution: 669 | { 670 | integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, 671 | } 672 | dependencies: 673 | color-name: 1.1.3 674 | dev: true 675 | 676 | /color-convert/2.0.1: 677 | resolution: 678 | { 679 | integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, 680 | } 681 | engines: { node: ">=7.0.0" } 682 | dependencies: 683 | color-name: 1.1.4 684 | dev: true 685 | 686 | /color-name/1.1.3: 687 | resolution: { integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= } 688 | dev: true 689 | 690 | /color-name/1.1.4: 691 | resolution: 692 | { 693 | integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, 694 | } 695 | dev: true 696 | 697 | /combined-stream/1.0.8: 698 | resolution: 699 | { 700 | integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, 701 | } 702 | engines: { node: ">= 0.8" } 703 | dependencies: 704 | delayed-stream: 1.0.0 705 | dev: true 706 | 707 | /commander/4.1.1: 708 | resolution: 709 | { 710 | integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, 711 | } 712 | engines: { node: ">= 6" } 713 | dev: true 714 | 715 | /concat-map/0.0.1: 716 | resolution: { integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= } 717 | dev: true 718 | 719 | /configstore/3.1.5: 720 | resolution: 721 | { 722 | integrity: sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==, 723 | } 724 | engines: { node: ">=4" } 725 | dependencies: 726 | dot-prop: 4.2.1 727 | graceful-fs: 4.2.10 728 | make-dir: 1.3.0 729 | unique-string: 1.0.0 730 | write-file-atomic: 2.4.3 731 | xdg-basedir: 3.0.0 732 | dev: true 733 | 734 | /create-error-class/3.0.2: 735 | resolution: { integrity: sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= } 736 | engines: { node: ">=0.10.0" } 737 | dependencies: 738 | capture-stack-trace: 1.0.1 739 | dev: true 740 | 741 | /cross-spawn/5.1.0: 742 | resolution: { integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= } 743 | dependencies: 744 | lru-cache: 4.1.5 745 | shebang-command: 1.2.0 746 | which: 1.3.1 747 | dev: true 748 | 749 | /cross-spawn/7.0.3: 750 | resolution: 751 | { 752 | integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, 753 | } 754 | engines: { node: ">= 8" } 755 | dependencies: 756 | path-key: 3.1.1 757 | shebang-command: 2.0.0 758 | which: 2.0.2 759 | dev: true 760 | 761 | /crypto-random-string/1.0.0: 762 | resolution: { integrity: sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= } 763 | engines: { node: ">=4" } 764 | dev: true 765 | 766 | /css.escape/1.5.1: 767 | resolution: { integrity: sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= } 768 | dev: true 769 | 770 | /css/3.0.0: 771 | resolution: 772 | { 773 | integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==, 774 | } 775 | dependencies: 776 | inherits: 2.0.4 777 | source-map: 0.6.1 778 | source-map-resolve: 0.6.0 779 | dev: true 780 | 781 | /cssom/0.3.8: 782 | resolution: 783 | { 784 | integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==, 785 | } 786 | dev: true 787 | 788 | /cssom/0.5.0: 789 | resolution: 790 | { 791 | integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==, 792 | } 793 | dev: true 794 | 795 | /cssstyle/2.3.0: 796 | resolution: 797 | { 798 | integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==, 799 | } 800 | engines: { node: ">=8" } 801 | dependencies: 802 | cssom: 0.3.8 803 | dev: true 804 | 805 | /csstype/3.0.11: 806 | resolution: 807 | { 808 | integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==, 809 | } 810 | dev: true 811 | 812 | /data-urls/3.0.2: 813 | resolution: 814 | { 815 | integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==, 816 | } 817 | engines: { node: ">=12" } 818 | dependencies: 819 | abab: 2.0.6 820 | whatwg-mimetype: 3.0.0 821 | whatwg-url: 11.0.0 822 | dev: true 823 | 824 | /debug/4.3.4: 825 | resolution: 826 | { 827 | integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, 828 | } 829 | engines: { node: ">=6.0" } 830 | peerDependencies: 831 | supports-color: "*" 832 | peerDependenciesMeta: 833 | supports-color: 834 | optional: true 835 | dependencies: 836 | ms: 2.1.2 837 | dev: true 838 | 839 | /decimal.js/10.3.1: 840 | resolution: 841 | { 842 | integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==, 843 | } 844 | dev: true 845 | 846 | /decode-uri-component/0.2.0: 847 | resolution: { integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= } 848 | engines: { node: ">=0.10" } 849 | dev: true 850 | 851 | /deep-eql/3.0.1: 852 | resolution: 853 | { 854 | integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==, 855 | } 856 | engines: { node: ">=0.12" } 857 | dependencies: 858 | type-detect: 4.0.8 859 | dev: true 860 | 861 | /deep-extend/0.6.0: 862 | resolution: 863 | { 864 | integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, 865 | } 866 | engines: { node: ">=4.0.0" } 867 | dev: true 868 | 869 | /deep-is/0.1.4: 870 | resolution: 871 | { 872 | integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, 873 | } 874 | dev: true 875 | 876 | /delayed-stream/1.0.0: 877 | resolution: { integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= } 878 | engines: { node: ">=0.4.0" } 879 | dev: true 880 | 881 | /diff-sequences/27.5.1: 882 | resolution: 883 | { 884 | integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==, 885 | } 886 | engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } 887 | dev: true 888 | 889 | /dir-glob/3.0.1: 890 | resolution: 891 | { 892 | integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, 893 | } 894 | engines: { node: ">=8" } 895 | dependencies: 896 | path-type: 4.0.0 897 | dev: true 898 | 899 | /dist-size/0.4.0: 900 | resolution: 901 | { 902 | integrity: sha512-06JxCMOxxJ2dChQXo+1RtRBiY8EOhHsjOh+oDjfUp3hJPqC3fuNUmjA8htPDhzPHrHIZjg17Wjnk8xbfFyfWPQ==, 903 | } 904 | hasBin: true 905 | dependencies: 906 | cac: 4.4.4 907 | chalk: 2.4.2 908 | globby: 6.1.0 909 | gzip-size: 3.0.0 910 | pify: 3.0.0 911 | pretty-bytes: 4.0.2 912 | string-width: 2.1.1 913 | text-table: 0.2.0 914 | update-notifier: 2.5.0 915 | dev: true 916 | 917 | /dom-accessibility-api/0.5.14: 918 | resolution: 919 | { 920 | integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==, 921 | } 922 | dev: true 923 | 924 | /domexception/4.0.0: 925 | resolution: 926 | { 927 | integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==, 928 | } 929 | engines: { node: ">=12" } 930 | dependencies: 931 | webidl-conversions: 7.0.0 932 | dev: true 933 | 934 | /dot-prop/4.2.1: 935 | resolution: 936 | { 937 | integrity: sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==, 938 | } 939 | engines: { node: ">=4" } 940 | dependencies: 941 | is-obj: 1.0.1 942 | dev: true 943 | 944 | /duplexer/0.1.2: 945 | resolution: 946 | { 947 | integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, 948 | } 949 | dev: true 950 | 951 | /duplexer3/0.1.4: 952 | resolution: { integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= } 953 | dev: true 954 | 955 | /end-of-stream/1.4.4: 956 | resolution: 957 | { 958 | integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, 959 | } 960 | dependencies: 961 | once: 1.4.0 962 | dev: true 963 | 964 | /error-ex/1.3.2: 965 | resolution: 966 | { 967 | integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, 968 | } 969 | dependencies: 970 | is-arrayish: 0.2.1 971 | dev: true 972 | 973 | /esbuild-android-64/0.14.39: 974 | resolution: 975 | { 976 | integrity: sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==, 977 | } 978 | engines: { node: ">=12" } 979 | cpu: [x64] 980 | os: [android] 981 | requiresBuild: true 982 | dev: true 983 | optional: true 984 | 985 | /esbuild-android-arm64/0.14.39: 986 | resolution: 987 | { 988 | integrity: sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==, 989 | } 990 | engines: { node: ">=12" } 991 | cpu: [arm64] 992 | os: [android] 993 | requiresBuild: true 994 | dev: true 995 | optional: true 996 | 997 | /esbuild-darwin-64/0.14.39: 998 | resolution: 999 | { 1000 | integrity: sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==, 1001 | } 1002 | engines: { node: ">=12" } 1003 | cpu: [x64] 1004 | os: [darwin] 1005 | requiresBuild: true 1006 | dev: true 1007 | optional: true 1008 | 1009 | /esbuild-darwin-arm64/0.14.39: 1010 | resolution: 1011 | { 1012 | integrity: sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==, 1013 | } 1014 | engines: { node: ">=12" } 1015 | cpu: [arm64] 1016 | os: [darwin] 1017 | requiresBuild: true 1018 | dev: true 1019 | optional: true 1020 | 1021 | /esbuild-freebsd-64/0.14.39: 1022 | resolution: 1023 | { 1024 | integrity: sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==, 1025 | } 1026 | engines: { node: ">=12" } 1027 | cpu: [x64] 1028 | os: [freebsd] 1029 | requiresBuild: true 1030 | dev: true 1031 | optional: true 1032 | 1033 | /esbuild-freebsd-arm64/0.14.39: 1034 | resolution: 1035 | { 1036 | integrity: sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==, 1037 | } 1038 | engines: { node: ">=12" } 1039 | cpu: [arm64] 1040 | os: [freebsd] 1041 | requiresBuild: true 1042 | dev: true 1043 | optional: true 1044 | 1045 | /esbuild-linux-32/0.14.39: 1046 | resolution: 1047 | { 1048 | integrity: sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==, 1049 | } 1050 | engines: { node: ">=12" } 1051 | cpu: [ia32] 1052 | os: [linux] 1053 | requiresBuild: true 1054 | dev: true 1055 | optional: true 1056 | 1057 | /esbuild-linux-64/0.14.39: 1058 | resolution: 1059 | { 1060 | integrity: sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==, 1061 | } 1062 | engines: { node: ">=12" } 1063 | cpu: [x64] 1064 | os: [linux] 1065 | requiresBuild: true 1066 | dev: true 1067 | optional: true 1068 | 1069 | /esbuild-linux-arm/0.14.39: 1070 | resolution: 1071 | { 1072 | integrity: sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==, 1073 | } 1074 | engines: { node: ">=12" } 1075 | cpu: [arm] 1076 | os: [linux] 1077 | requiresBuild: true 1078 | dev: true 1079 | optional: true 1080 | 1081 | /esbuild-linux-arm64/0.14.39: 1082 | resolution: 1083 | { 1084 | integrity: sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==, 1085 | } 1086 | engines: { node: ">=12" } 1087 | cpu: [arm64] 1088 | os: [linux] 1089 | requiresBuild: true 1090 | dev: true 1091 | optional: true 1092 | 1093 | /esbuild-linux-mips64le/0.14.39: 1094 | resolution: 1095 | { 1096 | integrity: sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==, 1097 | } 1098 | engines: { node: ">=12" } 1099 | cpu: [mips64el] 1100 | os: [linux] 1101 | requiresBuild: true 1102 | dev: true 1103 | optional: true 1104 | 1105 | /esbuild-linux-ppc64le/0.14.39: 1106 | resolution: 1107 | { 1108 | integrity: sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==, 1109 | } 1110 | engines: { node: ">=12" } 1111 | cpu: [ppc64] 1112 | os: [linux] 1113 | requiresBuild: true 1114 | dev: true 1115 | optional: true 1116 | 1117 | /esbuild-linux-riscv64/0.14.39: 1118 | resolution: 1119 | { 1120 | integrity: sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==, 1121 | } 1122 | engines: { node: ">=12" } 1123 | cpu: [riscv64] 1124 | os: [linux] 1125 | requiresBuild: true 1126 | dev: true 1127 | optional: true 1128 | 1129 | /esbuild-linux-s390x/0.14.39: 1130 | resolution: 1131 | { 1132 | integrity: sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==, 1133 | } 1134 | engines: { node: ">=12" } 1135 | cpu: [s390x] 1136 | os: [linux] 1137 | requiresBuild: true 1138 | dev: true 1139 | optional: true 1140 | 1141 | /esbuild-netbsd-64/0.14.39: 1142 | resolution: 1143 | { 1144 | integrity: sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==, 1145 | } 1146 | engines: { node: ">=12" } 1147 | cpu: [x64] 1148 | os: [netbsd] 1149 | requiresBuild: true 1150 | dev: true 1151 | optional: true 1152 | 1153 | /esbuild-openbsd-64/0.14.39: 1154 | resolution: 1155 | { 1156 | integrity: sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==, 1157 | } 1158 | engines: { node: ">=12" } 1159 | cpu: [x64] 1160 | os: [openbsd] 1161 | requiresBuild: true 1162 | dev: true 1163 | optional: true 1164 | 1165 | /esbuild-sunos-64/0.14.39: 1166 | resolution: 1167 | { 1168 | integrity: sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==, 1169 | } 1170 | engines: { node: ">=12" } 1171 | cpu: [x64] 1172 | os: [sunos] 1173 | requiresBuild: true 1174 | dev: true 1175 | optional: true 1176 | 1177 | /esbuild-windows-32/0.14.39: 1178 | resolution: 1179 | { 1180 | integrity: sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==, 1181 | } 1182 | engines: { node: ">=12" } 1183 | cpu: [ia32] 1184 | os: [win32] 1185 | requiresBuild: true 1186 | dev: true 1187 | optional: true 1188 | 1189 | /esbuild-windows-64/0.14.39: 1190 | resolution: 1191 | { 1192 | integrity: sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==, 1193 | } 1194 | engines: { node: ">=12" } 1195 | cpu: [x64] 1196 | os: [win32] 1197 | requiresBuild: true 1198 | dev: true 1199 | optional: true 1200 | 1201 | /esbuild-windows-arm64/0.14.39: 1202 | resolution: 1203 | { 1204 | integrity: sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==, 1205 | } 1206 | engines: { node: ">=12" } 1207 | cpu: [arm64] 1208 | os: [win32] 1209 | requiresBuild: true 1210 | dev: true 1211 | optional: true 1212 | 1213 | /esbuild/0.14.39: 1214 | resolution: 1215 | { 1216 | integrity: sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==, 1217 | } 1218 | engines: { node: ">=12" } 1219 | hasBin: true 1220 | requiresBuild: true 1221 | optionalDependencies: 1222 | esbuild-android-64: 0.14.39 1223 | esbuild-android-arm64: 0.14.39 1224 | esbuild-darwin-64: 0.14.39 1225 | esbuild-darwin-arm64: 0.14.39 1226 | esbuild-freebsd-64: 0.14.39 1227 | esbuild-freebsd-arm64: 0.14.39 1228 | esbuild-linux-32: 0.14.39 1229 | esbuild-linux-64: 0.14.39 1230 | esbuild-linux-arm: 0.14.39 1231 | esbuild-linux-arm64: 0.14.39 1232 | esbuild-linux-mips64le: 0.14.39 1233 | esbuild-linux-ppc64le: 0.14.39 1234 | esbuild-linux-riscv64: 0.14.39 1235 | esbuild-linux-s390x: 0.14.39 1236 | esbuild-netbsd-64: 0.14.39 1237 | esbuild-openbsd-64: 0.14.39 1238 | esbuild-sunos-64: 0.14.39 1239 | esbuild-windows-32: 0.14.39 1240 | esbuild-windows-64: 0.14.39 1241 | esbuild-windows-arm64: 0.14.39 1242 | dev: true 1243 | 1244 | /escape-string-regexp/1.0.5: 1245 | resolution: { integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= } 1246 | engines: { node: ">=0.8.0" } 1247 | dev: true 1248 | 1249 | /escodegen/2.0.0: 1250 | resolution: 1251 | { 1252 | integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==, 1253 | } 1254 | engines: { node: ">=6.0" } 1255 | hasBin: true 1256 | dependencies: 1257 | esprima: 4.0.1 1258 | estraverse: 5.3.0 1259 | esutils: 2.0.3 1260 | optionator: 0.8.3 1261 | optionalDependencies: 1262 | source-map: 0.6.1 1263 | dev: true 1264 | 1265 | /esprima/4.0.1: 1266 | resolution: 1267 | { 1268 | integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, 1269 | } 1270 | engines: { node: ">=4" } 1271 | hasBin: true 1272 | dev: true 1273 | 1274 | /estraverse/5.3.0: 1275 | resolution: 1276 | { 1277 | integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, 1278 | } 1279 | engines: { node: ">=4.0" } 1280 | dev: true 1281 | 1282 | /esutils/2.0.3: 1283 | resolution: 1284 | { 1285 | integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, 1286 | } 1287 | engines: { node: ">=0.10.0" } 1288 | dev: true 1289 | 1290 | /execa/0.7.0: 1291 | resolution: { integrity: sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= } 1292 | engines: { node: ">=4" } 1293 | dependencies: 1294 | cross-spawn: 5.1.0 1295 | get-stream: 3.0.0 1296 | is-stream: 1.1.0 1297 | npm-run-path: 2.0.2 1298 | p-finally: 1.0.0 1299 | signal-exit: 3.0.7 1300 | strip-eof: 1.0.0 1301 | dev: true 1302 | 1303 | /execa/4.1.0: 1304 | resolution: 1305 | { 1306 | integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, 1307 | } 1308 | engines: { node: ">=10" } 1309 | dependencies: 1310 | cross-spawn: 7.0.3 1311 | get-stream: 5.2.0 1312 | human-signals: 1.1.1 1313 | is-stream: 2.0.1 1314 | merge-stream: 2.0.0 1315 | npm-run-path: 4.0.1 1316 | onetime: 5.1.2 1317 | signal-exit: 3.0.7 1318 | strip-final-newline: 2.0.0 1319 | dev: true 1320 | 1321 | /execa/5.1.1: 1322 | resolution: 1323 | { 1324 | integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, 1325 | } 1326 | engines: { node: ">=10" } 1327 | dependencies: 1328 | cross-spawn: 7.0.3 1329 | get-stream: 6.0.1 1330 | human-signals: 2.1.0 1331 | is-stream: 2.0.1 1332 | merge-stream: 2.0.0 1333 | npm-run-path: 4.0.1 1334 | onetime: 5.1.2 1335 | signal-exit: 3.0.7 1336 | strip-final-newline: 2.0.0 1337 | dev: true 1338 | 1339 | /fast-glob/3.2.11: 1340 | resolution: 1341 | { 1342 | integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==, 1343 | } 1344 | engines: { node: ">=8.6.0" } 1345 | dependencies: 1346 | "@nodelib/fs.stat": 2.0.5 1347 | "@nodelib/fs.walk": 1.2.8 1348 | glob-parent: 5.1.2 1349 | merge2: 1.4.1 1350 | micromatch: 4.0.5 1351 | dev: true 1352 | 1353 | /fast-levenshtein/2.0.6: 1354 | resolution: { integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= } 1355 | dev: true 1356 | 1357 | /fastq/1.13.0: 1358 | resolution: 1359 | { 1360 | integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==, 1361 | } 1362 | dependencies: 1363 | reusify: 1.0.4 1364 | dev: true 1365 | 1366 | /fill-range/7.0.1: 1367 | resolution: 1368 | { 1369 | integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, 1370 | } 1371 | engines: { node: ">=8" } 1372 | dependencies: 1373 | to-regex-range: 5.0.1 1374 | dev: true 1375 | 1376 | /find-up/2.1.0: 1377 | resolution: { integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c= } 1378 | engines: { node: ">=4" } 1379 | dependencies: 1380 | locate-path: 2.0.0 1381 | dev: true 1382 | 1383 | /find-up/4.1.0: 1384 | resolution: 1385 | { 1386 | integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, 1387 | } 1388 | engines: { node: ">=8" } 1389 | dependencies: 1390 | locate-path: 5.0.0 1391 | path-exists: 4.0.0 1392 | dev: true 1393 | 1394 | /form-data/4.0.0: 1395 | resolution: 1396 | { 1397 | integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, 1398 | } 1399 | engines: { node: ">= 6" } 1400 | dependencies: 1401 | asynckit: 0.4.0 1402 | combined-stream: 1.0.8 1403 | mime-types: 2.1.35 1404 | dev: true 1405 | 1406 | /fs.realpath/1.0.0: 1407 | resolution: { integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= } 1408 | dev: true 1409 | 1410 | /fsevents/2.3.2: 1411 | resolution: 1412 | { 1413 | integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, 1414 | } 1415 | engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } 1416 | os: [darwin] 1417 | requiresBuild: true 1418 | dev: true 1419 | optional: true 1420 | 1421 | /function-bind/1.1.1: 1422 | resolution: 1423 | { 1424 | integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, 1425 | } 1426 | dev: true 1427 | 1428 | /get-func-name/2.0.0: 1429 | resolution: { integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= } 1430 | dev: true 1431 | 1432 | /get-stream/3.0.0: 1433 | resolution: { integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= } 1434 | engines: { node: ">=4" } 1435 | dev: true 1436 | 1437 | /get-stream/5.2.0: 1438 | resolution: 1439 | { 1440 | integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, 1441 | } 1442 | engines: { node: ">=8" } 1443 | dependencies: 1444 | pump: 3.0.0 1445 | dev: true 1446 | 1447 | /get-stream/6.0.1: 1448 | resolution: 1449 | { 1450 | integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, 1451 | } 1452 | engines: { node: ">=10" } 1453 | dev: true 1454 | 1455 | /glob-parent/5.1.2: 1456 | resolution: 1457 | { 1458 | integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, 1459 | } 1460 | engines: { node: ">= 6" } 1461 | dependencies: 1462 | is-glob: 4.0.3 1463 | dev: true 1464 | 1465 | /glob/7.1.6: 1466 | resolution: 1467 | { 1468 | integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, 1469 | } 1470 | dependencies: 1471 | fs.realpath: 1.0.0 1472 | inflight: 1.0.6 1473 | inherits: 2.0.4 1474 | minimatch: 3.1.2 1475 | once: 1.4.0 1476 | path-is-absolute: 1.0.1 1477 | dev: true 1478 | 1479 | /glob/7.2.3: 1480 | resolution: 1481 | { 1482 | integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, 1483 | } 1484 | dependencies: 1485 | fs.realpath: 1.0.0 1486 | inflight: 1.0.6 1487 | inherits: 2.0.4 1488 | minimatch: 3.1.2 1489 | once: 1.4.0 1490 | path-is-absolute: 1.0.1 1491 | dev: true 1492 | 1493 | /global-dirs/0.1.1: 1494 | resolution: { integrity: sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= } 1495 | engines: { node: ">=4" } 1496 | dependencies: 1497 | ini: 1.3.8 1498 | dev: true 1499 | 1500 | /globby/11.1.0: 1501 | resolution: 1502 | { 1503 | integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, 1504 | } 1505 | engines: { node: ">=10" } 1506 | dependencies: 1507 | array-union: 2.1.0 1508 | dir-glob: 3.0.1 1509 | fast-glob: 3.2.11 1510 | ignore: 5.2.0 1511 | merge2: 1.4.1 1512 | slash: 3.0.0 1513 | dev: true 1514 | 1515 | /globby/6.1.0: 1516 | resolution: { integrity: sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= } 1517 | engines: { node: ">=0.10.0" } 1518 | dependencies: 1519 | array-union: 1.0.2 1520 | glob: 7.2.3 1521 | object-assign: 4.1.1 1522 | pify: 2.3.0 1523 | pinkie-promise: 2.0.1 1524 | dev: true 1525 | 1526 | /got/6.7.1: 1527 | resolution: { integrity: sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= } 1528 | engines: { node: ">=4" } 1529 | dependencies: 1530 | "@types/keyv": 3.1.4 1531 | "@types/responselike": 1.0.0 1532 | create-error-class: 3.0.2 1533 | duplexer3: 0.1.4 1534 | get-stream: 3.0.0 1535 | is-redirect: 1.0.0 1536 | is-retry-allowed: 1.2.0 1537 | is-stream: 1.1.0 1538 | lowercase-keys: 1.0.1 1539 | safe-buffer: 5.2.1 1540 | timed-out: 4.0.1 1541 | unzip-response: 2.0.1 1542 | url-parse-lax: 1.0.0 1543 | dev: true 1544 | 1545 | /graceful-fs/4.2.10: 1546 | resolution: 1547 | { 1548 | integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, 1549 | } 1550 | dev: true 1551 | 1552 | /gzip-size/3.0.0: 1553 | resolution: { integrity: sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA= } 1554 | engines: { node: ">=0.12.0" } 1555 | dependencies: 1556 | duplexer: 0.1.2 1557 | dev: true 1558 | 1559 | /has-flag/3.0.0: 1560 | resolution: { integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= } 1561 | engines: { node: ">=4" } 1562 | dev: true 1563 | 1564 | /has-flag/4.0.0: 1565 | resolution: 1566 | { 1567 | integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, 1568 | } 1569 | engines: { node: ">=8" } 1570 | dev: true 1571 | 1572 | /has/1.0.3: 1573 | resolution: 1574 | { 1575 | integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, 1576 | } 1577 | engines: { node: ">= 0.4.0" } 1578 | dependencies: 1579 | function-bind: 1.1.1 1580 | dev: true 1581 | 1582 | /hosted-git-info/2.8.9: 1583 | resolution: 1584 | { 1585 | integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, 1586 | } 1587 | dev: true 1588 | 1589 | /html-encoding-sniffer/3.0.0: 1590 | resolution: 1591 | { 1592 | integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==, 1593 | } 1594 | engines: { node: ">=12" } 1595 | dependencies: 1596 | whatwg-encoding: 2.0.0 1597 | dev: true 1598 | 1599 | /http-proxy-agent/5.0.0: 1600 | resolution: 1601 | { 1602 | integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==, 1603 | } 1604 | engines: { node: ">= 6" } 1605 | dependencies: 1606 | "@tootallnate/once": 2.0.0 1607 | agent-base: 6.0.2 1608 | debug: 4.3.4 1609 | transitivePeerDependencies: 1610 | - supports-color 1611 | dev: true 1612 | 1613 | /https-proxy-agent/5.0.1: 1614 | resolution: 1615 | { 1616 | integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, 1617 | } 1618 | engines: { node: ">= 6" } 1619 | dependencies: 1620 | agent-base: 6.0.2 1621 | debug: 4.3.4 1622 | transitivePeerDependencies: 1623 | - supports-color 1624 | dev: true 1625 | 1626 | /human-signals/1.1.1: 1627 | resolution: 1628 | { 1629 | integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, 1630 | } 1631 | engines: { node: ">=8.12.0" } 1632 | dev: true 1633 | 1634 | /human-signals/2.1.0: 1635 | resolution: 1636 | { 1637 | integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, 1638 | } 1639 | engines: { node: ">=10.17.0" } 1640 | dev: true 1641 | 1642 | /iconv-lite/0.6.3: 1643 | resolution: 1644 | { 1645 | integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, 1646 | } 1647 | engines: { node: ">=0.10.0" } 1648 | dependencies: 1649 | safer-buffer: 2.1.2 1650 | dev: true 1651 | 1652 | /ignore/5.2.0: 1653 | resolution: 1654 | { 1655 | integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==, 1656 | } 1657 | engines: { node: ">= 4" } 1658 | dev: true 1659 | 1660 | /import-lazy/2.1.0: 1661 | resolution: { integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= } 1662 | engines: { node: ">=4" } 1663 | dev: true 1664 | 1665 | /imurmurhash/0.1.4: 1666 | resolution: { integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= } 1667 | engines: { node: ">=0.8.19" } 1668 | dev: true 1669 | 1670 | /indent-string/3.2.0: 1671 | resolution: { integrity: sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= } 1672 | engines: { node: ">=4" } 1673 | dev: true 1674 | 1675 | /indent-string/4.0.0: 1676 | resolution: 1677 | { 1678 | integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, 1679 | } 1680 | engines: { node: ">=8" } 1681 | dev: true 1682 | 1683 | /inflight/1.0.6: 1684 | resolution: { integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= } 1685 | dependencies: 1686 | once: 1.4.0 1687 | wrappy: 1.0.2 1688 | dev: true 1689 | 1690 | /inherits/2.0.4: 1691 | resolution: 1692 | { 1693 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, 1694 | } 1695 | dev: true 1696 | 1697 | /ini/1.3.8: 1698 | resolution: 1699 | { 1700 | integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, 1701 | } 1702 | dev: true 1703 | 1704 | /is-arrayish/0.2.1: 1705 | resolution: { integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= } 1706 | dev: true 1707 | 1708 | /is-binary-path/2.1.0: 1709 | resolution: 1710 | { 1711 | integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, 1712 | } 1713 | engines: { node: ">=8" } 1714 | dependencies: 1715 | binary-extensions: 2.2.0 1716 | dev: true 1717 | 1718 | /is-ci/1.2.1: 1719 | resolution: 1720 | { 1721 | integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==, 1722 | } 1723 | hasBin: true 1724 | dependencies: 1725 | ci-info: 1.6.0 1726 | dev: true 1727 | 1728 | /is-core-module/2.9.0: 1729 | resolution: 1730 | { 1731 | integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==, 1732 | } 1733 | dependencies: 1734 | has: 1.0.3 1735 | dev: true 1736 | 1737 | /is-extglob/2.1.1: 1738 | resolution: { integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= } 1739 | engines: { node: ">=0.10.0" } 1740 | dev: true 1741 | 1742 | /is-fullwidth-code-point/2.0.0: 1743 | resolution: { integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= } 1744 | engines: { node: ">=4" } 1745 | dev: true 1746 | 1747 | /is-glob/4.0.3: 1748 | resolution: 1749 | { 1750 | integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, 1751 | } 1752 | engines: { node: ">=0.10.0" } 1753 | dependencies: 1754 | is-extglob: 2.1.1 1755 | dev: true 1756 | 1757 | /is-installed-globally/0.1.0: 1758 | resolution: { integrity: sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= } 1759 | engines: { node: ">=4" } 1760 | dependencies: 1761 | global-dirs: 0.1.1 1762 | is-path-inside: 1.0.1 1763 | dev: true 1764 | 1765 | /is-npm/1.0.0: 1766 | resolution: { integrity: sha1-8vtjpl5JBbQGyGBydloaTceTufQ= } 1767 | engines: { node: ">=0.10.0" } 1768 | dev: true 1769 | 1770 | /is-number/7.0.0: 1771 | resolution: 1772 | { 1773 | integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, 1774 | } 1775 | engines: { node: ">=0.12.0" } 1776 | dev: true 1777 | 1778 | /is-obj/1.0.1: 1779 | resolution: { integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8= } 1780 | engines: { node: ">=0.10.0" } 1781 | dev: true 1782 | 1783 | /is-path-inside/1.0.1: 1784 | resolution: { integrity: sha1-jvW33lBDej/cprToZe96pVy0gDY= } 1785 | engines: { node: ">=0.10.0" } 1786 | dependencies: 1787 | path-is-inside: 1.0.2 1788 | dev: true 1789 | 1790 | /is-potential-custom-element-name/1.0.1: 1791 | resolution: 1792 | { 1793 | integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, 1794 | } 1795 | dev: true 1796 | 1797 | /is-redirect/1.0.0: 1798 | resolution: { integrity: sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= } 1799 | engines: { node: ">=0.10.0" } 1800 | dev: true 1801 | 1802 | /is-retry-allowed/1.2.0: 1803 | resolution: 1804 | { 1805 | integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==, 1806 | } 1807 | engines: { node: ">=0.10.0" } 1808 | dev: true 1809 | 1810 | /is-stream/1.1.0: 1811 | resolution: { integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ= } 1812 | engines: { node: ">=0.10.0" } 1813 | dev: true 1814 | 1815 | /is-stream/2.0.1: 1816 | resolution: 1817 | { 1818 | integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, 1819 | } 1820 | engines: { node: ">=8" } 1821 | dev: true 1822 | 1823 | /isexe/2.0.0: 1824 | resolution: { integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= } 1825 | dev: true 1826 | 1827 | /jest-diff/27.5.1: 1828 | resolution: 1829 | { 1830 | integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==, 1831 | } 1832 | engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } 1833 | dependencies: 1834 | chalk: 4.1.2 1835 | diff-sequences: 27.5.1 1836 | jest-get-type: 27.5.1 1837 | pretty-format: 27.5.1 1838 | dev: true 1839 | 1840 | /jest-get-type/27.5.1: 1841 | resolution: 1842 | { 1843 | integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==, 1844 | } 1845 | engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } 1846 | dev: true 1847 | 1848 | /jest-matcher-utils/27.5.1: 1849 | resolution: 1850 | { 1851 | integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==, 1852 | } 1853 | engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } 1854 | dependencies: 1855 | chalk: 4.1.2 1856 | jest-diff: 27.5.1 1857 | jest-get-type: 27.5.1 1858 | pretty-format: 27.5.1 1859 | dev: true 1860 | 1861 | /joycon/3.1.1: 1862 | resolution: 1863 | { 1864 | integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, 1865 | } 1866 | engines: { node: ">=10" } 1867 | dev: true 1868 | 1869 | /js-tokens/4.0.0: 1870 | resolution: 1871 | { 1872 | integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, 1873 | } 1874 | dev: true 1875 | 1876 | /jsdom/19.0.0: 1877 | resolution: 1878 | { 1879 | integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==, 1880 | } 1881 | engines: { node: ">=12" } 1882 | peerDependencies: 1883 | canvas: ^2.5.0 1884 | peerDependenciesMeta: 1885 | canvas: 1886 | optional: true 1887 | dependencies: 1888 | abab: 2.0.6 1889 | acorn: 8.7.1 1890 | acorn-globals: 6.0.0 1891 | cssom: 0.5.0 1892 | cssstyle: 2.3.0 1893 | data-urls: 3.0.2 1894 | decimal.js: 10.3.1 1895 | domexception: 4.0.0 1896 | escodegen: 2.0.0 1897 | form-data: 4.0.0 1898 | html-encoding-sniffer: 3.0.0 1899 | http-proxy-agent: 5.0.0 1900 | https-proxy-agent: 5.0.1 1901 | is-potential-custom-element-name: 1.0.1 1902 | nwsapi: 2.2.0 1903 | parse5: 6.0.1 1904 | saxes: 5.0.1 1905 | symbol-tree: 3.2.4 1906 | tough-cookie: 4.0.0 1907 | w3c-hr-time: 1.0.2 1908 | w3c-xmlserializer: 3.0.0 1909 | webidl-conversions: 7.0.0 1910 | whatwg-encoding: 2.0.0 1911 | whatwg-mimetype: 3.0.0 1912 | whatwg-url: 10.0.0 1913 | ws: 8.6.0 1914 | xml-name-validator: 4.0.0 1915 | transitivePeerDependencies: 1916 | - bufferutil 1917 | - supports-color 1918 | - utf-8-validate 1919 | dev: true 1920 | 1921 | /latest-version/3.1.0: 1922 | resolution: { integrity: sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= } 1923 | engines: { node: ">=4" } 1924 | dependencies: 1925 | package-json: 4.0.1 1926 | dev: true 1927 | 1928 | /levn/0.3.0: 1929 | resolution: { integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= } 1930 | engines: { node: ">= 0.8.0" } 1931 | dependencies: 1932 | prelude-ls: 1.1.2 1933 | type-check: 0.3.2 1934 | dev: true 1935 | 1936 | /lilconfig/2.0.5: 1937 | resolution: 1938 | { 1939 | integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==, 1940 | } 1941 | engines: { node: ">=10" } 1942 | dev: true 1943 | 1944 | /lines-and-columns/1.2.4: 1945 | resolution: 1946 | { 1947 | integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, 1948 | } 1949 | dev: true 1950 | 1951 | /load-json-file/2.0.0: 1952 | resolution: { integrity: sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= } 1953 | engines: { node: ">=4" } 1954 | dependencies: 1955 | graceful-fs: 4.2.10 1956 | parse-json: 2.2.0 1957 | pify: 2.3.0 1958 | strip-bom: 3.0.0 1959 | dev: true 1960 | 1961 | /load-tsconfig/0.2.3: 1962 | resolution: 1963 | { 1964 | integrity: sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==, 1965 | } 1966 | engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } 1967 | dev: true 1968 | 1969 | /local-pkg/0.4.1: 1970 | resolution: 1971 | { 1972 | integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==, 1973 | } 1974 | engines: { node: ">=14" } 1975 | dev: true 1976 | 1977 | /locate-path/2.0.0: 1978 | resolution: { integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= } 1979 | engines: { node: ">=4" } 1980 | dependencies: 1981 | p-locate: 2.0.0 1982 | path-exists: 3.0.0 1983 | dev: true 1984 | 1985 | /locate-path/5.0.0: 1986 | resolution: 1987 | { 1988 | integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, 1989 | } 1990 | engines: { node: ">=8" } 1991 | dependencies: 1992 | p-locate: 4.1.0 1993 | dev: true 1994 | 1995 | /lodash/4.17.21: 1996 | resolution: 1997 | { 1998 | integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, 1999 | } 2000 | dev: true 2001 | 2002 | /loose-envify/1.4.0: 2003 | resolution: 2004 | { 2005 | integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, 2006 | } 2007 | hasBin: true 2008 | dependencies: 2009 | js-tokens: 4.0.0 2010 | dev: true 2011 | 2012 | /loupe/2.3.4: 2013 | resolution: 2014 | { 2015 | integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==, 2016 | } 2017 | dependencies: 2018 | get-func-name: 2.0.0 2019 | dev: true 2020 | 2021 | /lowercase-keys/1.0.1: 2022 | resolution: 2023 | { 2024 | integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, 2025 | } 2026 | engines: { node: ">=0.10.0" } 2027 | dev: true 2028 | 2029 | /lru-cache/4.1.5: 2030 | resolution: 2031 | { 2032 | integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==, 2033 | } 2034 | dependencies: 2035 | pseudomap: 1.0.2 2036 | yallist: 2.1.2 2037 | dev: true 2038 | 2039 | /lz-string/1.4.4: 2040 | resolution: { integrity: sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= } 2041 | hasBin: true 2042 | dev: true 2043 | 2044 | /make-dir/1.3.0: 2045 | resolution: 2046 | { 2047 | integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==, 2048 | } 2049 | engines: { node: ">=4" } 2050 | dependencies: 2051 | pify: 3.0.0 2052 | dev: true 2053 | 2054 | /merge-stream/2.0.0: 2055 | resolution: 2056 | { 2057 | integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, 2058 | } 2059 | dev: true 2060 | 2061 | /merge2/1.4.1: 2062 | resolution: 2063 | { 2064 | integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, 2065 | } 2066 | engines: { node: ">= 8" } 2067 | dev: true 2068 | 2069 | /micromatch/4.0.5: 2070 | resolution: 2071 | { 2072 | integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, 2073 | } 2074 | engines: { node: ">=8.6" } 2075 | dependencies: 2076 | braces: 3.0.2 2077 | picomatch: 2.3.1 2078 | dev: true 2079 | 2080 | /mime-db/1.52.0: 2081 | resolution: 2082 | { 2083 | integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, 2084 | } 2085 | engines: { node: ">= 0.6" } 2086 | dev: true 2087 | 2088 | /mime-types/2.1.35: 2089 | resolution: 2090 | { 2091 | integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, 2092 | } 2093 | engines: { node: ">= 0.6" } 2094 | dependencies: 2095 | mime-db: 1.52.0 2096 | dev: true 2097 | 2098 | /mimic-fn/2.1.0: 2099 | resolution: 2100 | { 2101 | integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, 2102 | } 2103 | engines: { node: ">=6" } 2104 | dev: true 2105 | 2106 | /min-indent/1.0.1: 2107 | resolution: 2108 | { 2109 | integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, 2110 | } 2111 | engines: { node: ">=4" } 2112 | dev: true 2113 | 2114 | /minimatch/3.1.2: 2115 | resolution: 2116 | { 2117 | integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, 2118 | } 2119 | dependencies: 2120 | brace-expansion: 1.1.11 2121 | dev: true 2122 | 2123 | /minimist/1.2.6: 2124 | resolution: 2125 | { 2126 | integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==, 2127 | } 2128 | dev: true 2129 | 2130 | /minimost/1.2.0: 2131 | resolution: 2132 | { 2133 | integrity: sha512-/+eWyOtXw41WIUV9rBgrXna11bxbqymebSeW2arsfp/MCGCwe+2czzsOueEtLZgH4xb4QXhje5H9MLCsCPibLA==, 2134 | } 2135 | engines: { node: ">=4" } 2136 | dependencies: 2137 | "@types/minimist": 1.2.2 2138 | minimist: 1.2.6 2139 | dev: true 2140 | 2141 | /mri/1.2.0: 2142 | resolution: 2143 | { 2144 | integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, 2145 | } 2146 | engines: { node: ">=4" } 2147 | dev: true 2148 | 2149 | /ms/2.1.2: 2150 | resolution: 2151 | { 2152 | integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, 2153 | } 2154 | dev: true 2155 | 2156 | /multimatch/4.0.0: 2157 | resolution: 2158 | { 2159 | integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==, 2160 | } 2161 | engines: { node: ">=8" } 2162 | dependencies: 2163 | "@types/minimatch": 3.0.5 2164 | array-differ: 3.0.0 2165 | array-union: 2.1.0 2166 | arrify: 2.0.1 2167 | minimatch: 3.1.2 2168 | dev: true 2169 | 2170 | /mz/2.7.0: 2171 | resolution: 2172 | { 2173 | integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, 2174 | } 2175 | dependencies: 2176 | any-promise: 1.3.0 2177 | object-assign: 4.1.1 2178 | thenify-all: 1.6.0 2179 | dev: true 2180 | 2181 | /nanoid/3.3.4: 2182 | resolution: 2183 | { 2184 | integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, 2185 | } 2186 | engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } 2187 | hasBin: true 2188 | dev: true 2189 | 2190 | /normalize-package-data/2.5.0: 2191 | resolution: 2192 | { 2193 | integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, 2194 | } 2195 | dependencies: 2196 | hosted-git-info: 2.8.9 2197 | resolve: 1.22.0 2198 | semver: 5.7.1 2199 | validate-npm-package-license: 3.0.4 2200 | dev: true 2201 | 2202 | /normalize-path/3.0.0: 2203 | resolution: 2204 | { 2205 | integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, 2206 | } 2207 | engines: { node: ">=0.10.0" } 2208 | dev: true 2209 | 2210 | /npm-run-path/2.0.2: 2211 | resolution: { integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= } 2212 | engines: { node: ">=4" } 2213 | dependencies: 2214 | path-key: 2.0.1 2215 | dev: true 2216 | 2217 | /npm-run-path/4.0.1: 2218 | resolution: 2219 | { 2220 | integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, 2221 | } 2222 | engines: { node: ">=8" } 2223 | dependencies: 2224 | path-key: 3.1.1 2225 | dev: true 2226 | 2227 | /nwsapi/2.2.0: 2228 | resolution: 2229 | { 2230 | integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==, 2231 | } 2232 | dev: true 2233 | 2234 | /object-assign/4.1.1: 2235 | resolution: { integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= } 2236 | engines: { node: ">=0.10.0" } 2237 | dev: true 2238 | 2239 | /once/1.4.0: 2240 | resolution: { integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= } 2241 | dependencies: 2242 | wrappy: 1.0.2 2243 | dev: true 2244 | 2245 | /onetime/5.1.2: 2246 | resolution: 2247 | { 2248 | integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, 2249 | } 2250 | engines: { node: ">=6" } 2251 | dependencies: 2252 | mimic-fn: 2.1.0 2253 | dev: true 2254 | 2255 | /optionator/0.8.3: 2256 | resolution: 2257 | { 2258 | integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, 2259 | } 2260 | engines: { node: ">= 0.8.0" } 2261 | dependencies: 2262 | deep-is: 0.1.4 2263 | fast-levenshtein: 2.0.6 2264 | levn: 0.3.0 2265 | prelude-ls: 1.1.2 2266 | type-check: 0.3.2 2267 | word-wrap: 1.2.3 2268 | dev: true 2269 | 2270 | /p-finally/1.0.0: 2271 | resolution: { integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= } 2272 | engines: { node: ">=4" } 2273 | dev: true 2274 | 2275 | /p-limit/1.3.0: 2276 | resolution: 2277 | { 2278 | integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, 2279 | } 2280 | engines: { node: ">=4" } 2281 | dependencies: 2282 | p-try: 1.0.0 2283 | dev: true 2284 | 2285 | /p-limit/2.3.0: 2286 | resolution: 2287 | { 2288 | integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, 2289 | } 2290 | engines: { node: ">=6" } 2291 | dependencies: 2292 | p-try: 2.2.0 2293 | dev: true 2294 | 2295 | /p-locate/2.0.0: 2296 | resolution: { integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= } 2297 | engines: { node: ">=4" } 2298 | dependencies: 2299 | p-limit: 1.3.0 2300 | dev: true 2301 | 2302 | /p-locate/4.1.0: 2303 | resolution: 2304 | { 2305 | integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, 2306 | } 2307 | engines: { node: ">=8" } 2308 | dependencies: 2309 | p-limit: 2.3.0 2310 | dev: true 2311 | 2312 | /p-try/1.0.0: 2313 | resolution: { integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= } 2314 | engines: { node: ">=4" } 2315 | dev: true 2316 | 2317 | /p-try/2.2.0: 2318 | resolution: 2319 | { 2320 | integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, 2321 | } 2322 | engines: { node: ">=6" } 2323 | dev: true 2324 | 2325 | /package-json/4.0.1: 2326 | resolution: { integrity: sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= } 2327 | engines: { node: ">=4" } 2328 | dependencies: 2329 | got: 6.7.1 2330 | registry-auth-token: 3.4.0 2331 | registry-url: 3.1.0 2332 | semver: 5.7.1 2333 | dev: true 2334 | 2335 | /parse-json/2.2.0: 2336 | resolution: { integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= } 2337 | engines: { node: ">=0.10.0" } 2338 | dependencies: 2339 | error-ex: 1.3.2 2340 | dev: true 2341 | 2342 | /parse5/6.0.1: 2343 | resolution: 2344 | { 2345 | integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, 2346 | } 2347 | dev: true 2348 | 2349 | /path-exists/3.0.0: 2350 | resolution: { integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= } 2351 | engines: { node: ">=4" } 2352 | dev: true 2353 | 2354 | /path-exists/4.0.0: 2355 | resolution: 2356 | { 2357 | integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, 2358 | } 2359 | engines: { node: ">=8" } 2360 | dev: true 2361 | 2362 | /path-is-absolute/1.0.1: 2363 | resolution: { integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= } 2364 | engines: { node: ">=0.10.0" } 2365 | dev: true 2366 | 2367 | /path-is-inside/1.0.2: 2368 | resolution: { integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= } 2369 | dev: true 2370 | 2371 | /path-key/2.0.1: 2372 | resolution: { integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= } 2373 | engines: { node: ">=4" } 2374 | dev: true 2375 | 2376 | /path-key/3.1.1: 2377 | resolution: 2378 | { 2379 | integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, 2380 | } 2381 | engines: { node: ">=8" } 2382 | dev: true 2383 | 2384 | /path-parse/1.0.7: 2385 | resolution: 2386 | { 2387 | integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, 2388 | } 2389 | dev: true 2390 | 2391 | /path-type/2.0.0: 2392 | resolution: { integrity: sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= } 2393 | engines: { node: ">=4" } 2394 | dependencies: 2395 | pify: 2.3.0 2396 | dev: true 2397 | 2398 | /path-type/4.0.0: 2399 | resolution: 2400 | { 2401 | integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, 2402 | } 2403 | engines: { node: ">=8" } 2404 | dev: true 2405 | 2406 | /pathval/1.1.1: 2407 | resolution: 2408 | { 2409 | integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, 2410 | } 2411 | dev: true 2412 | 2413 | /picocolors/1.0.0: 2414 | resolution: 2415 | { 2416 | integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, 2417 | } 2418 | dev: true 2419 | 2420 | /picomatch/2.3.1: 2421 | resolution: 2422 | { 2423 | integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, 2424 | } 2425 | engines: { node: ">=8.6" } 2426 | dev: true 2427 | 2428 | /pify/2.3.0: 2429 | resolution: { integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw= } 2430 | engines: { node: ">=0.10.0" } 2431 | dev: true 2432 | 2433 | /pify/3.0.0: 2434 | resolution: { integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= } 2435 | engines: { node: ">=4" } 2436 | dev: true 2437 | 2438 | /pinkie-promise/2.0.1: 2439 | resolution: { integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o= } 2440 | engines: { node: ">=0.10.0" } 2441 | dependencies: 2442 | pinkie: 2.0.4 2443 | dev: true 2444 | 2445 | /pinkie/2.0.4: 2446 | resolution: { integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA= } 2447 | engines: { node: ">=0.10.0" } 2448 | dev: true 2449 | 2450 | /pirates/4.0.5: 2451 | resolution: 2452 | { 2453 | integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==, 2454 | } 2455 | engines: { node: ">= 6" } 2456 | dev: true 2457 | 2458 | /postcss-load-config/3.1.4: 2459 | resolution: 2460 | { 2461 | integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==, 2462 | } 2463 | engines: { node: ">= 10" } 2464 | peerDependencies: 2465 | postcss: ">=8.0.9" 2466 | ts-node: ">=9.0.0" 2467 | peerDependenciesMeta: 2468 | postcss: 2469 | optional: true 2470 | ts-node: 2471 | optional: true 2472 | dependencies: 2473 | lilconfig: 2.0.5 2474 | yaml: 1.10.2 2475 | dev: true 2476 | 2477 | /postcss/8.4.13: 2478 | resolution: 2479 | { 2480 | integrity: sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==, 2481 | } 2482 | engines: { node: ^10 || ^12 || >=14 } 2483 | dependencies: 2484 | nanoid: 3.3.4 2485 | picocolors: 1.0.0 2486 | source-map-js: 1.0.2 2487 | dev: true 2488 | 2489 | /prelude-ls/1.1.2: 2490 | resolution: { integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= } 2491 | engines: { node: ">= 0.8.0" } 2492 | dev: true 2493 | 2494 | /prepend-http/1.0.4: 2495 | resolution: { integrity: sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= } 2496 | engines: { node: ">=0.10.0" } 2497 | dev: true 2498 | 2499 | /prettier/2.6.2: 2500 | resolution: 2501 | { 2502 | integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==, 2503 | } 2504 | engines: { node: ">=10.13.0" } 2505 | hasBin: true 2506 | dev: true 2507 | 2508 | /pretty-bytes/4.0.2: 2509 | resolution: { integrity: sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk= } 2510 | engines: { node: ">=4" } 2511 | dev: true 2512 | 2513 | /pretty-format/27.5.1: 2514 | resolution: 2515 | { 2516 | integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, 2517 | } 2518 | engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } 2519 | dependencies: 2520 | ansi-regex: 5.0.1 2521 | ansi-styles: 5.2.0 2522 | react-is: 17.0.2 2523 | dev: true 2524 | 2525 | /pretty-quick/3.1.3_prettier@2.6.2: 2526 | resolution: 2527 | { 2528 | integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==, 2529 | } 2530 | engines: { node: ">=10.13" } 2531 | hasBin: true 2532 | peerDependencies: 2533 | prettier: ">=2.0.0" 2534 | dependencies: 2535 | chalk: 3.0.0 2536 | execa: 4.1.0 2537 | find-up: 4.1.0 2538 | ignore: 5.2.0 2539 | mri: 1.2.0 2540 | multimatch: 4.0.0 2541 | prettier: 2.6.2 2542 | dev: true 2543 | 2544 | /pseudomap/1.0.2: 2545 | resolution: { integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM= } 2546 | dev: true 2547 | 2548 | /psl/1.8.0: 2549 | resolution: 2550 | { 2551 | integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==, 2552 | } 2553 | dev: true 2554 | 2555 | /pump/3.0.0: 2556 | resolution: 2557 | { 2558 | integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, 2559 | } 2560 | dependencies: 2561 | end-of-stream: 1.4.4 2562 | once: 1.4.0 2563 | dev: true 2564 | 2565 | /punycode/2.1.1: 2566 | resolution: 2567 | { 2568 | integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==, 2569 | } 2570 | engines: { node: ">=6" } 2571 | dev: true 2572 | 2573 | /queue-microtask/1.2.3: 2574 | resolution: 2575 | { 2576 | integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, 2577 | } 2578 | dev: true 2579 | 2580 | /rc/1.2.8: 2581 | resolution: 2582 | { 2583 | integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, 2584 | } 2585 | hasBin: true 2586 | dependencies: 2587 | deep-extend: 0.6.0 2588 | ini: 1.3.8 2589 | minimist: 1.2.6 2590 | strip-json-comments: 2.0.1 2591 | dev: true 2592 | 2593 | /react-dom/18.1.0_react@18.1.0: 2594 | resolution: 2595 | { 2596 | integrity: sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==, 2597 | } 2598 | peerDependencies: 2599 | react: ^18.1.0 2600 | dependencies: 2601 | loose-envify: 1.4.0 2602 | react: 18.1.0 2603 | scheduler: 0.22.0 2604 | dev: true 2605 | 2606 | /react-hook-form/7.31.1_react@18.1.0: 2607 | resolution: 2608 | { 2609 | integrity: sha512-QjtjZ8r8KtEBWWpcXLyQordCraTFxILtyQpaz5KLLxN2YzcC+FZ9LLtOnNGuOnzZo9gCoB+viK3ZHV9Mb2htmQ==, 2610 | } 2611 | engines: { node: ">=12.22.0" } 2612 | peerDependencies: 2613 | react: ^16.8.0 || ^17 || ^18 2614 | dependencies: 2615 | react: 18.1.0 2616 | dev: true 2617 | 2618 | /react-is/17.0.2: 2619 | resolution: 2620 | { 2621 | integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, 2622 | } 2623 | dev: true 2624 | 2625 | /react/18.1.0: 2626 | resolution: 2627 | { 2628 | integrity: sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==, 2629 | } 2630 | engines: { node: ">=0.10.0" } 2631 | dependencies: 2632 | loose-envify: 1.4.0 2633 | dev: true 2634 | 2635 | /read-pkg-up/2.0.0: 2636 | resolution: { integrity: sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= } 2637 | engines: { node: ">=4" } 2638 | dependencies: 2639 | find-up: 2.1.0 2640 | read-pkg: 2.0.0 2641 | dev: true 2642 | 2643 | /read-pkg/2.0.0: 2644 | resolution: { integrity: sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= } 2645 | engines: { node: ">=4" } 2646 | dependencies: 2647 | load-json-file: 2.0.0 2648 | normalize-package-data: 2.5.0 2649 | path-type: 2.0.0 2650 | dev: true 2651 | 2652 | /readdirp/3.6.0: 2653 | resolution: 2654 | { 2655 | integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, 2656 | } 2657 | engines: { node: ">=8.10.0" } 2658 | dependencies: 2659 | picomatch: 2.3.1 2660 | dev: true 2661 | 2662 | /redent/2.0.0: 2663 | resolution: { integrity: sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= } 2664 | engines: { node: ">=4" } 2665 | dependencies: 2666 | indent-string: 3.2.0 2667 | strip-indent: 2.0.0 2668 | dev: true 2669 | 2670 | /redent/3.0.0: 2671 | resolution: 2672 | { 2673 | integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, 2674 | } 2675 | engines: { node: ">=8" } 2676 | dependencies: 2677 | indent-string: 4.0.0 2678 | strip-indent: 3.0.0 2679 | dev: true 2680 | 2681 | /regenerator-runtime/0.13.9: 2682 | resolution: 2683 | { 2684 | integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==, 2685 | } 2686 | dev: true 2687 | 2688 | /registry-auth-token/3.4.0: 2689 | resolution: 2690 | { 2691 | integrity: sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==, 2692 | } 2693 | dependencies: 2694 | rc: 1.2.8 2695 | safe-buffer: 5.2.1 2696 | dev: true 2697 | 2698 | /registry-url/3.1.0: 2699 | resolution: { integrity: sha1-PU74cPc93h138M+aOBQyRE4XSUI= } 2700 | engines: { node: ">=0.10.0" } 2701 | dependencies: 2702 | rc: 1.2.8 2703 | dev: true 2704 | 2705 | /resolve-from/5.0.0: 2706 | resolution: 2707 | { 2708 | integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, 2709 | } 2710 | engines: { node: ">=8" } 2711 | dev: true 2712 | 2713 | /resolve/1.22.0: 2714 | resolution: 2715 | { 2716 | integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==, 2717 | } 2718 | hasBin: true 2719 | dependencies: 2720 | is-core-module: 2.9.0 2721 | path-parse: 1.0.7 2722 | supports-preserve-symlinks-flag: 1.0.0 2723 | dev: true 2724 | 2725 | /reusify/1.0.4: 2726 | resolution: 2727 | { 2728 | integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, 2729 | } 2730 | engines: { iojs: ">=1.0.0", node: ">=0.10.0" } 2731 | dev: true 2732 | 2733 | /rollup/2.73.0: 2734 | resolution: 2735 | { 2736 | integrity: sha512-h/UngC3S4Zt28mB3g0+2YCMegT5yoftnQplwzPqGZcKvlld5e+kT/QRmJiL+qxGyZKOYpgirWGdLyEO1b0dpLQ==, 2737 | } 2738 | engines: { node: ">=10.0.0" } 2739 | hasBin: true 2740 | optionalDependencies: 2741 | fsevents: 2.3.2 2742 | dev: true 2743 | 2744 | /run-parallel/1.2.0: 2745 | resolution: 2746 | { 2747 | integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, 2748 | } 2749 | dependencies: 2750 | queue-microtask: 1.2.3 2751 | dev: true 2752 | 2753 | /safe-buffer/5.2.1: 2754 | resolution: 2755 | { 2756 | integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, 2757 | } 2758 | dev: true 2759 | 2760 | /safer-buffer/2.1.2: 2761 | resolution: 2762 | { 2763 | integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, 2764 | } 2765 | dev: true 2766 | 2767 | /saxes/5.0.1: 2768 | resolution: 2769 | { 2770 | integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==, 2771 | } 2772 | engines: { node: ">=10" } 2773 | dependencies: 2774 | xmlchars: 2.2.0 2775 | dev: true 2776 | 2777 | /scheduler/0.22.0: 2778 | resolution: 2779 | { 2780 | integrity: sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==, 2781 | } 2782 | dependencies: 2783 | loose-envify: 1.4.0 2784 | dev: true 2785 | 2786 | /semver-diff/2.1.0: 2787 | resolution: { integrity: sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= } 2788 | engines: { node: ">=0.10.0" } 2789 | dependencies: 2790 | semver: 5.7.1 2791 | dev: true 2792 | 2793 | /semver/5.7.1: 2794 | resolution: 2795 | { 2796 | integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, 2797 | } 2798 | hasBin: true 2799 | dev: true 2800 | 2801 | /shebang-command/1.2.0: 2802 | resolution: { integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= } 2803 | engines: { node: ">=0.10.0" } 2804 | dependencies: 2805 | shebang-regex: 1.0.0 2806 | dev: true 2807 | 2808 | /shebang-command/2.0.0: 2809 | resolution: 2810 | { 2811 | integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, 2812 | } 2813 | engines: { node: ">=8" } 2814 | dependencies: 2815 | shebang-regex: 3.0.0 2816 | dev: true 2817 | 2818 | /shebang-regex/1.0.0: 2819 | resolution: { integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= } 2820 | engines: { node: ">=0.10.0" } 2821 | dev: true 2822 | 2823 | /shebang-regex/3.0.0: 2824 | resolution: 2825 | { 2826 | integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, 2827 | } 2828 | engines: { node: ">=8" } 2829 | dev: true 2830 | 2831 | /signal-exit/3.0.7: 2832 | resolution: 2833 | { 2834 | integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, 2835 | } 2836 | dev: true 2837 | 2838 | /slash/3.0.0: 2839 | resolution: 2840 | { 2841 | integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, 2842 | } 2843 | engines: { node: ">=8" } 2844 | dev: true 2845 | 2846 | /source-map-js/1.0.2: 2847 | resolution: 2848 | { 2849 | integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, 2850 | } 2851 | engines: { node: ">=0.10.0" } 2852 | dev: true 2853 | 2854 | /source-map-resolve/0.6.0: 2855 | resolution: 2856 | { 2857 | integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==, 2858 | } 2859 | deprecated: See https://github.com/lydell/source-map-resolve#deprecated 2860 | dependencies: 2861 | atob: 2.1.2 2862 | decode-uri-component: 0.2.0 2863 | dev: true 2864 | 2865 | /source-map/0.6.1: 2866 | resolution: 2867 | { 2868 | integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, 2869 | } 2870 | engines: { node: ">=0.10.0" } 2871 | dev: true 2872 | 2873 | /source-map/0.7.3: 2874 | resolution: 2875 | { 2876 | integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==, 2877 | } 2878 | engines: { node: ">= 8" } 2879 | dev: true 2880 | 2881 | /spdx-correct/3.1.1: 2882 | resolution: 2883 | { 2884 | integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==, 2885 | } 2886 | dependencies: 2887 | spdx-expression-parse: 3.0.1 2888 | spdx-license-ids: 3.0.11 2889 | dev: true 2890 | 2891 | /spdx-exceptions/2.3.0: 2892 | resolution: 2893 | { 2894 | integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, 2895 | } 2896 | dev: true 2897 | 2898 | /spdx-expression-parse/3.0.1: 2899 | resolution: 2900 | { 2901 | integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, 2902 | } 2903 | dependencies: 2904 | spdx-exceptions: 2.3.0 2905 | spdx-license-ids: 3.0.11 2906 | dev: true 2907 | 2908 | /spdx-license-ids/3.0.11: 2909 | resolution: 2910 | { 2911 | integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==, 2912 | } 2913 | dev: true 2914 | 2915 | /string-width/2.1.1: 2916 | resolution: 2917 | { 2918 | integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==, 2919 | } 2920 | engines: { node: ">=4" } 2921 | dependencies: 2922 | is-fullwidth-code-point: 2.0.0 2923 | strip-ansi: 4.0.0 2924 | dev: true 2925 | 2926 | /strip-ansi/4.0.0: 2927 | resolution: { integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8= } 2928 | engines: { node: ">=4" } 2929 | dependencies: 2930 | ansi-regex: 3.0.1 2931 | dev: true 2932 | 2933 | /strip-bom/3.0.0: 2934 | resolution: { integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= } 2935 | engines: { node: ">=4" } 2936 | dev: true 2937 | 2938 | /strip-eof/1.0.0: 2939 | resolution: { integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= } 2940 | engines: { node: ">=0.10.0" } 2941 | dev: true 2942 | 2943 | /strip-final-newline/2.0.0: 2944 | resolution: 2945 | { 2946 | integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, 2947 | } 2948 | engines: { node: ">=6" } 2949 | dev: true 2950 | 2951 | /strip-indent/2.0.0: 2952 | resolution: { integrity: sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= } 2953 | engines: { node: ">=4" } 2954 | dev: true 2955 | 2956 | /strip-indent/3.0.0: 2957 | resolution: 2958 | { 2959 | integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, 2960 | } 2961 | engines: { node: ">=8" } 2962 | dependencies: 2963 | min-indent: 1.0.1 2964 | dev: true 2965 | 2966 | /strip-json-comments/2.0.1: 2967 | resolution: { integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo= } 2968 | engines: { node: ">=0.10.0" } 2969 | dev: true 2970 | 2971 | /sucrase/3.21.0: 2972 | resolution: 2973 | { 2974 | integrity: sha512-FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ==, 2975 | } 2976 | engines: { node: ">=8" } 2977 | hasBin: true 2978 | dependencies: 2979 | commander: 4.1.1 2980 | glob: 7.1.6 2981 | lines-and-columns: 1.2.4 2982 | mz: 2.7.0 2983 | pirates: 4.0.5 2984 | ts-interface-checker: 0.1.13 2985 | dev: true 2986 | 2987 | /supports-color/5.5.0: 2988 | resolution: 2989 | { 2990 | integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, 2991 | } 2992 | engines: { node: ">=4" } 2993 | dependencies: 2994 | has-flag: 3.0.0 2995 | dev: true 2996 | 2997 | /supports-color/7.2.0: 2998 | resolution: 2999 | { 3000 | integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, 3001 | } 3002 | engines: { node: ">=8" } 3003 | dependencies: 3004 | has-flag: 4.0.0 3005 | dev: true 3006 | 3007 | /supports-preserve-symlinks-flag/1.0.0: 3008 | resolution: 3009 | { 3010 | integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, 3011 | } 3012 | engines: { node: ">= 0.4" } 3013 | dev: true 3014 | 3015 | /symbol-tree/3.2.4: 3016 | resolution: 3017 | { 3018 | integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, 3019 | } 3020 | dev: true 3021 | 3022 | /term-size/1.2.0: 3023 | resolution: { integrity: sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= } 3024 | engines: { node: ">=4" } 3025 | dependencies: 3026 | execa: 0.7.0 3027 | dev: true 3028 | 3029 | /text-table/0.2.0: 3030 | resolution: { integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= } 3031 | dev: true 3032 | 3033 | /thenify-all/1.6.0: 3034 | resolution: { integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= } 3035 | engines: { node: ">=0.8" } 3036 | dependencies: 3037 | thenify: 3.3.1 3038 | dev: true 3039 | 3040 | /thenify/3.3.1: 3041 | resolution: 3042 | { 3043 | integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, 3044 | } 3045 | dependencies: 3046 | any-promise: 1.3.0 3047 | dev: true 3048 | 3049 | /timed-out/4.0.1: 3050 | resolution: { integrity: sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= } 3051 | engines: { node: ">=0.10.0" } 3052 | dev: true 3053 | 3054 | /tinypool/0.1.3: 3055 | resolution: 3056 | { 3057 | integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==, 3058 | } 3059 | engines: { node: ">=14.0.0" } 3060 | dev: true 3061 | 3062 | /tinyspy/0.3.2: 3063 | resolution: 3064 | { 3065 | integrity: sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==, 3066 | } 3067 | engines: { node: ">=14.0.0" } 3068 | dev: true 3069 | 3070 | /to-regex-range/5.0.1: 3071 | resolution: 3072 | { 3073 | integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, 3074 | } 3075 | engines: { node: ">=8.0" } 3076 | dependencies: 3077 | is-number: 7.0.0 3078 | dev: true 3079 | 3080 | /tough-cookie/4.0.0: 3081 | resolution: 3082 | { 3083 | integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==, 3084 | } 3085 | engines: { node: ">=6" } 3086 | dependencies: 3087 | psl: 1.8.0 3088 | punycode: 2.1.1 3089 | universalify: 0.1.2 3090 | dev: true 3091 | 3092 | /tr46/3.0.0: 3093 | resolution: 3094 | { 3095 | integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==, 3096 | } 3097 | engines: { node: ">=12" } 3098 | dependencies: 3099 | punycode: 2.1.1 3100 | dev: true 3101 | 3102 | /tree-kill/1.2.2: 3103 | resolution: 3104 | { 3105 | integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, 3106 | } 3107 | hasBin: true 3108 | dev: true 3109 | 3110 | /ts-interface-checker/0.1.13: 3111 | resolution: 3112 | { 3113 | integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, 3114 | } 3115 | dev: true 3116 | 3117 | /tsup/5.12.7_typescript@4.6.4: 3118 | resolution: 3119 | { 3120 | integrity: sha512-+OxYroGLByY0Fm8DLZaB4nVMlD59VsQoNXdhnO9wOG+cOsKXUwN3ER9gaKOjZJG26eKUXebmDme0Cy3emfRvOQ==, 3121 | } 3122 | hasBin: true 3123 | peerDependencies: 3124 | typescript: ^4.1.0 3125 | peerDependenciesMeta: 3126 | typescript: 3127 | optional: true 3128 | dependencies: 3129 | bundle-require: 3.0.4_esbuild@0.14.39 3130 | cac: 6.7.12 3131 | chokidar: 3.5.3 3132 | debug: 4.3.4 3133 | esbuild: 0.14.39 3134 | execa: 5.1.1 3135 | globby: 11.1.0 3136 | joycon: 3.1.1 3137 | postcss-load-config: 3.1.4 3138 | resolve-from: 5.0.0 3139 | rollup: 2.73.0 3140 | source-map: 0.7.3 3141 | sucrase: 3.21.0 3142 | tree-kill: 1.2.2 3143 | typescript: 4.6.4 3144 | transitivePeerDependencies: 3145 | - postcss 3146 | - supports-color 3147 | - ts-node 3148 | dev: true 3149 | 3150 | /type-check/0.3.2: 3151 | resolution: { integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= } 3152 | engines: { node: ">= 0.8.0" } 3153 | dependencies: 3154 | prelude-ls: 1.1.2 3155 | dev: true 3156 | 3157 | /type-detect/4.0.8: 3158 | resolution: 3159 | { 3160 | integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, 3161 | } 3162 | engines: { node: ">=4" } 3163 | dev: true 3164 | 3165 | /typescript/4.6.4: 3166 | resolution: 3167 | { 3168 | integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==, 3169 | } 3170 | engines: { node: ">=4.2.0" } 3171 | hasBin: true 3172 | dev: true 3173 | 3174 | /unique-string/1.0.0: 3175 | resolution: { integrity: sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= } 3176 | engines: { node: ">=4" } 3177 | dependencies: 3178 | crypto-random-string: 1.0.0 3179 | dev: true 3180 | 3181 | /universalify/0.1.2: 3182 | resolution: 3183 | { 3184 | integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, 3185 | } 3186 | engines: { node: ">= 4.0.0" } 3187 | dev: true 3188 | 3189 | /unzip-response/2.0.1: 3190 | resolution: { integrity: sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= } 3191 | engines: { node: ">=4" } 3192 | dev: true 3193 | 3194 | /update-notifier/2.5.0: 3195 | resolution: 3196 | { 3197 | integrity: sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==, 3198 | } 3199 | engines: { node: ">=4" } 3200 | dependencies: 3201 | boxen: 1.3.0 3202 | chalk: 2.4.2 3203 | configstore: 3.1.5 3204 | import-lazy: 2.1.0 3205 | is-ci: 1.2.1 3206 | is-installed-globally: 0.1.0 3207 | is-npm: 1.0.0 3208 | latest-version: 3.1.0 3209 | semver-diff: 2.1.0 3210 | xdg-basedir: 3.0.0 3211 | dev: true 3212 | 3213 | /url-parse-lax/1.0.0: 3214 | resolution: { integrity: sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= } 3215 | engines: { node: ">=0.10.0" } 3216 | dependencies: 3217 | prepend-http: 1.0.4 3218 | dev: true 3219 | 3220 | /validate-npm-package-license/3.0.4: 3221 | resolution: 3222 | { 3223 | integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, 3224 | } 3225 | dependencies: 3226 | spdx-correct: 3.1.1 3227 | spdx-expression-parse: 3.0.1 3228 | dev: true 3229 | 3230 | /vite/2.9.9: 3231 | resolution: 3232 | { 3233 | integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==, 3234 | } 3235 | engines: { node: ">=12.2.0" } 3236 | hasBin: true 3237 | peerDependencies: 3238 | less: "*" 3239 | sass: "*" 3240 | stylus: "*" 3241 | peerDependenciesMeta: 3242 | less: 3243 | optional: true 3244 | sass: 3245 | optional: true 3246 | stylus: 3247 | optional: true 3248 | dependencies: 3249 | esbuild: 0.14.39 3250 | postcss: 8.4.13 3251 | resolve: 1.22.0 3252 | rollup: 2.73.0 3253 | optionalDependencies: 3254 | fsevents: 2.3.2 3255 | dev: true 3256 | 3257 | /vitest/0.12.6_jsdom@19.0.0: 3258 | resolution: 3259 | { 3260 | integrity: sha512-YWbCTv0XKBuBw5YtuW/iufuguoi8QhGpYyi2g57Oo7akpscMkkWTAaZGgY0ux1oJJtO/pc/8GFt0EF32WFBUUQ==, 3261 | } 3262 | engines: { node: ">=v14.16.0" } 3263 | hasBin: true 3264 | peerDependencies: 3265 | "@vitest/ui": "*" 3266 | c8: "*" 3267 | happy-dom: "*" 3268 | jsdom: "*" 3269 | peerDependenciesMeta: 3270 | "@vitest/ui": 3271 | optional: true 3272 | c8: 3273 | optional: true 3274 | happy-dom: 3275 | optional: true 3276 | jsdom: 3277 | optional: true 3278 | dependencies: 3279 | "@types/chai": 4.3.1 3280 | "@types/chai-subset": 1.3.3 3281 | chai: 4.3.6 3282 | jsdom: 19.0.0 3283 | local-pkg: 0.4.1 3284 | tinypool: 0.1.3 3285 | tinyspy: 0.3.2 3286 | vite: 2.9.9 3287 | transitivePeerDependencies: 3288 | - less 3289 | - sass 3290 | - stylus 3291 | dev: true 3292 | 3293 | /w3c-hr-time/1.0.2: 3294 | resolution: 3295 | { 3296 | integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==, 3297 | } 3298 | dependencies: 3299 | browser-process-hrtime: 1.0.0 3300 | dev: true 3301 | 3302 | /w3c-xmlserializer/3.0.0: 3303 | resolution: 3304 | { 3305 | integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==, 3306 | } 3307 | engines: { node: ">=12" } 3308 | dependencies: 3309 | xml-name-validator: 4.0.0 3310 | dev: true 3311 | 3312 | /webidl-conversions/7.0.0: 3313 | resolution: 3314 | { 3315 | integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, 3316 | } 3317 | engines: { node: ">=12" } 3318 | dev: true 3319 | 3320 | /whatwg-encoding/2.0.0: 3321 | resolution: 3322 | { 3323 | integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==, 3324 | } 3325 | engines: { node: ">=12" } 3326 | dependencies: 3327 | iconv-lite: 0.6.3 3328 | dev: true 3329 | 3330 | /whatwg-mimetype/3.0.0: 3331 | resolution: 3332 | { 3333 | integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==, 3334 | } 3335 | engines: { node: ">=12" } 3336 | dev: true 3337 | 3338 | /whatwg-url/10.0.0: 3339 | resolution: 3340 | { 3341 | integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==, 3342 | } 3343 | engines: { node: ">=12" } 3344 | dependencies: 3345 | tr46: 3.0.0 3346 | webidl-conversions: 7.0.0 3347 | dev: true 3348 | 3349 | /whatwg-url/11.0.0: 3350 | resolution: 3351 | { 3352 | integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==, 3353 | } 3354 | engines: { node: ">=12" } 3355 | dependencies: 3356 | tr46: 3.0.0 3357 | webidl-conversions: 7.0.0 3358 | dev: true 3359 | 3360 | /which/1.3.1: 3361 | resolution: 3362 | { 3363 | integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, 3364 | } 3365 | hasBin: true 3366 | dependencies: 3367 | isexe: 2.0.0 3368 | dev: true 3369 | 3370 | /which/2.0.2: 3371 | resolution: 3372 | { 3373 | integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, 3374 | } 3375 | engines: { node: ">= 8" } 3376 | hasBin: true 3377 | dependencies: 3378 | isexe: 2.0.0 3379 | dev: true 3380 | 3381 | /widest-line/2.0.1: 3382 | resolution: 3383 | { 3384 | integrity: sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==, 3385 | } 3386 | engines: { node: ">=4" } 3387 | dependencies: 3388 | string-width: 2.1.1 3389 | dev: true 3390 | 3391 | /word-wrap/1.2.3: 3392 | resolution: 3393 | { 3394 | integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, 3395 | } 3396 | engines: { node: ">=0.10.0" } 3397 | dev: true 3398 | 3399 | /wrappy/1.0.2: 3400 | resolution: { integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= } 3401 | dev: true 3402 | 3403 | /write-file-atomic/2.4.3: 3404 | resolution: 3405 | { 3406 | integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==, 3407 | } 3408 | dependencies: 3409 | graceful-fs: 4.2.10 3410 | imurmurhash: 0.1.4 3411 | signal-exit: 3.0.7 3412 | dev: true 3413 | 3414 | /ws/8.6.0: 3415 | resolution: 3416 | { 3417 | integrity: sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==, 3418 | } 3419 | engines: { node: ">=10.0.0" } 3420 | peerDependencies: 3421 | bufferutil: ^4.0.1 3422 | utf-8-validate: ^5.0.2 3423 | peerDependenciesMeta: 3424 | bufferutil: 3425 | optional: true 3426 | utf-8-validate: 3427 | optional: true 3428 | dev: true 3429 | 3430 | /xdg-basedir/3.0.0: 3431 | resolution: { integrity: sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= } 3432 | engines: { node: ">=4" } 3433 | dev: true 3434 | 3435 | /xml-name-validator/4.0.0: 3436 | resolution: 3437 | { 3438 | integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==, 3439 | } 3440 | engines: { node: ">=12" } 3441 | dev: true 3442 | 3443 | /xmlchars/2.2.0: 3444 | resolution: 3445 | { 3446 | integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, 3447 | } 3448 | dev: true 3449 | 3450 | /yallist/2.1.2: 3451 | resolution: { integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= } 3452 | dev: true 3453 | 3454 | /yaml/1.10.2: 3455 | resolution: 3456 | { 3457 | integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, 3458 | } 3459 | engines: { node: ">= 6" } 3460 | dev: true 3461 | -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react' 2 | import { SetFieldValue } from 'react-hook-form' 3 | 4 | export interface FormPersistConfig { 5 | storage?: Storage; 6 | watch: (names?: string | string[]) => any; 7 | setValue: SetFieldValue; 8 | exclude?: string[]; 9 | onDataRestored?: (data: any) => void; 10 | validate?: boolean; 11 | dirty?: boolean; 12 | touch?: boolean; 13 | onTimeout?: () => void; 14 | timeout?: number; 15 | } 16 | 17 | const useFormPersist = ( 18 | name: string, 19 | { 20 | storage, 21 | watch, 22 | setValue, 23 | exclude = [], 24 | onDataRestored, 25 | validate = false, 26 | dirty = false, 27 | touch = false, 28 | onTimeout, 29 | timeout 30 | }: FormPersistConfig 31 | ) => { 32 | const watchedValues = watch() 33 | 34 | const getStorage = () => storage || window.sessionStorage 35 | 36 | const clearStorage = () => getStorage().removeItem(name) 37 | 38 | useEffect(() => { 39 | const str = getStorage().getItem(name) 40 | 41 | if (str) { 42 | const { _timestamp = null, ...values } = JSON.parse(str) 43 | const dataRestored: { [key: string]: any } = {} 44 | const currTimestamp = Date.now() 45 | 46 | if (timeout && (currTimestamp - _timestamp) > timeout) { 47 | onTimeout && onTimeout() 48 | clearStorage() 49 | return 50 | } 51 | 52 | Object.keys(values).forEach((key) => { 53 | const shouldSet = !exclude.includes(key) 54 | if (shouldSet) { 55 | dataRestored[key] = values[key] 56 | setValue(key, values[key], { 57 | shouldValidate: validate, 58 | shouldDirty: dirty, 59 | shouldTouch: touch 60 | }) 61 | } 62 | }) 63 | 64 | if (onDataRestored) { 65 | onDataRestored(dataRestored) 66 | } 67 | } 68 | }, [ 69 | storage, 70 | name, 71 | onDataRestored, 72 | setValue 73 | ]) 74 | 75 | useEffect(() => { 76 | 77 | const values = exclude.length 78 | ? Object.entries(watchedValues) 79 | .filter(([key]) => !exclude.includes(key)) 80 | .reduce((obj, [key, val]) => Object.assign(obj, { [key]: val }), {}) 81 | : Object.assign({}, watchedValues) 82 | 83 | if (Object.entries(values).length) { 84 | if (timeout !== undefined) { 85 | values._timestamp = Date.now() 86 | } 87 | getStorage().setItem(name, JSON.stringify(values)) 88 | } 89 | }, [watchedValues, timeout]) 90 | 91 | return { 92 | clear: () => getStorage().removeItem(name) 93 | } 94 | } 95 | 96 | export default useFormPersist 97 | -------------------------------------------------------------------------------- /tests/index.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { vi, describe, test, expect, beforeEach } from 'vitest' 3 | import { render, screen } from '@testing-library/react' 4 | import { useForm } from 'react-hook-form' 5 | import userEvent from '@testing-library/user-event' 6 | 7 | import useFormPersist, { FormPersistConfig } from '../src' 8 | 9 | const STORAGE_KEY = 'STORAGE_KEY' 10 | 11 | beforeEach(() => { 12 | window.sessionStorage.clear() 13 | }) 14 | 15 | 16 | const Form = ({ onSubmit = () => { }, config = {} }: { onSubmit?: any, config?: Omit }) => { 17 | const { register, handleSubmit, watch, setValue } = useForm() 18 | 19 | useFormPersist(STORAGE_KEY, { watch, setValue, ...config }) 20 | 21 | return ( 22 |
23 | 26 | 27 | 30 | 31 | 34 | 35 | 36 |
37 | ) 38 | } 39 | 40 | describe('react-hook-form-persist', () => { 41 | test('should persist fields in storage', async () => { 42 | const spy = vi.spyOn(Storage.prototype, 'setItem') 43 | 44 | render(
) 45 | 46 | await userEvent.type(screen.getByLabelText('foo:'), 'foo') 47 | 48 | expect(spy).toHaveBeenCalled() 49 | 50 | expect(JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || "{}")).toEqual({ 51 | foo: 'foo', 52 | bar: '', 53 | baz: '' 54 | }) 55 | }) 56 | 57 | test('should retrieve stored fields', async () => { 58 | const spy = vi.spyOn(Storage.prototype, 'getItem') 59 | 60 | const { unmount } = render() 61 | 62 | await userEvent.type(screen.getByLabelText('foo:'), 'foo') 63 | 64 | unmount() 65 | render() 66 | 67 | expect(spy).toHaveBeenCalled() 68 | expect(screen.getByLabelText('foo:')).toHaveValue('foo') 69 | }) 70 | 71 | test('should not persist excluded fields', async () => { 72 | render() 73 | 74 | await userEvent.type(screen.getByLabelText('foo:'), 'foo') 75 | await userEvent.type(screen.getByLabelText('bar:'), 'bar') 76 | await userEvent.type(screen.getByLabelText('baz:'), 'baz') 77 | 78 | expect(JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || "{}")).toEqual({ 79 | bar: 'bar' 80 | }) 81 | }) 82 | 83 | test('should support timeout config option', async () => { 84 | const now = Date.now() 85 | const { unmount } = render() 86 | 87 | const spy = vi.spyOn(Date, 'now').mockReturnValue(now) 88 | 89 | await userEvent.type(screen.getByLabelText('foo:'), 'foo') 90 | await userEvent.type(screen.getByLabelText('bar:'), 'bar') 91 | await userEvent.type(screen.getByLabelText('baz:'), 'baz') 92 | 93 | expect(spy).toBeCalled() 94 | expect(JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || "{}")).toEqual({ 95 | bar: 'bar', 96 | baz: 'baz', 97 | foo: 'foo', 98 | _timestamp: now 99 | }) 100 | 101 | unmount() 102 | spy.mockImplementation(() => now + 4000) 103 | const clearSpy = vi.spyOn(Storage.prototype, 'removeItem') 104 | 105 | render() 106 | 107 | expect(clearSpy).toBeCalled() 108 | expect(JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || "{}")).toEqual({}) 109 | }) 110 | 111 | }) 112 | -------------------------------------------------------------------------------- /tests/setup.ts: -------------------------------------------------------------------------------- 1 | import { expect } from "vitest"; 2 | import matchers, { 3 | TestingLibraryMatchers, 4 | } from "@testing-library/jest-dom/matchers"; 5 | 6 | declare global { 7 | namespace Vi { 8 | interface JestAssertion 9 | extends jest.Matchers, 10 | TestingLibraryMatchers {} 11 | } 12 | } 13 | 14 | expect.extend(matchers); 15 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "moduleResolution": "node", 4 | "target": "es2018", 5 | "module": "esnext", 6 | "lib": ["esnext", "dom"], 7 | "strict": true, 8 | "strictNullChecks": true, 9 | "jsx": "react", 10 | "allowSyntheticDefaultImports": true, 11 | "types": ["@types/testing-library__jest-dom"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vitest/config"; 2 | 3 | export default defineConfig({ 4 | test: { 5 | globals: true, 6 | environment: "jsdom", 7 | setupFiles: "./tests/setup.ts", 8 | }, 9 | }); 10 | --------------------------------------------------------------------------------