├── .github └── workflows │ ├── npm-publish.yml │ └── test.yml ├── .gitignore ├── CONTRIBUTING.md ├── README.md ├── package-lock.json ├── package.json ├── src ├── index.js └── utils.js └── test ├── index.test.js └── utils.test.js /.github/workflows/npm-publish.yml: -------------------------------------------------------------------------------- 1 | name: npm-publish 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | npm-publish: 10 | name: npm-publish 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | - uses: actions/setup-node@v4 15 | with: 16 | node-version: 20.x 17 | - run: npm ci 18 | - run: npm test 19 | - uses: JS-DevTools/npm-publish@v3 20 | with: 21 | token: ${{ secrets.NPM_TOKEN }} 22 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | test: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | - uses: actions/setup-node@v4 15 | with: 16 | node-version: 20.x 17 | - run: npm ci 18 | - run: npm test 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | coverage 3 | node_modules 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # tailwindcss-theme-swapper 2 | 3 | ## Test `npm run test` 4 | This runs the **tests** once. 5 | 6 | ## Test Watch: `npm run test -- --watch` 7 | Runs the tests and listens for file updates. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # tailwindcss-theme-swapper 2 | 3 | **Extend** your tailwind config with CSS Custom Properties and trigger the updating of them with any type of selector or media query. 4 | 5 | ## Requirements 6 | 7 | * Tailwind 1.2 8 | 9 | ## Browser Support 10 | 11 | Just needs to support CSS Custom Properties. IE11 can kind of work but only the base theme with something like `postcss-preset-env`. 12 | 13 | ## Installation 14 | 15 | ```bash 16 | yarn add tailwindcss-theme-swapper 17 | # or 18 | npm install tailwindcss-theme-swapper --save-dev 19 | ``` 20 | 21 | ## Try It Out 22 | 23 | ### Minimal 24 | https://play.tailwindcss.com/Gt21fePNvv 25 | 26 | ### Fancier (radix colors, multiple themes) 27 | https://play.tailwindcss.com/jskI9McL20 28 | 29 | ## Usage Example 30 | 31 | In your tailwind.config.js: 32 | 33 | ```js 34 | const themeSwapper = require('tailwindcss-theme-swapper') 35 | 36 | module.exports = { 37 | plugins: [ 38 | themeSwapper({ 39 | themes: [ 40 | // The only required theme is `base`. Every property used in 41 | // other themes must exist in here. 42 | { 43 | name: 'base', 44 | selectors: [':root'], 45 | theme: { 46 | colors: { 47 | primary: '#f00', 48 | }, 49 | }, 50 | }, 51 | { 52 | name: 'dark', 53 | selectors: ['.dark'], 54 | mediaQuery: '@media (prefers-color-scheme: dark)', 55 | theme: { 56 | colors: { 57 | primary: '#fff', 58 | }, 59 | }, 60 | }, 61 | { 62 | name: 'matrix', 63 | selectors: ['.matrix'], 64 | theme: { 65 | colors: { 66 | primary: '#0f0', 67 | }, 68 | }, 69 | }, 70 | ], 71 | }), 72 | ], 73 | } 74 | ``` 75 | 76 | ### Theme Swapper Properties 77 | 78 | ```js 79 | { 80 | // The name of the theme. You only have to name `base`. 81 | name: 'dark', 82 | 83 | // Apply one of these selectors(?) to an element and all of its children to use that theme. 84 | // `
`, `
`, `
` 85 | selectors: ['.dark', '[data-theme="dark"]', '[dark]', ], 86 | 87 | // If this media query matches the theme will apply to the entire page. 88 | mediaQuery: '@media (prefers-color-scheme: dark)', 89 | 90 | // This extends your tailwind theme. 91 | // Only keys/values defined here will be made into custom properties. 92 | theme: { 93 | colors: { 94 | // ... 95 | }, 96 | spacing: { 97 | // ... 98 | }, 99 | borderRadius: { 100 | // ... 101 | }, 102 | }, 103 | } 104 | ``` 105 | 106 | ## Example I:O 107 | 108 | ### Themes Input 109 | 110 | ```js 111 | const themes = [ 112 | { 113 | name: 'base', 114 | selectors: [':root'], 115 | theme: { 116 | colors: { 117 | primary: 'hsl(0 100% 50%)', 118 | }, 119 | spacing: { 120 | sm: '3px', 121 | }, 122 | }, 123 | }, 124 | { 125 | name: 'dark', 126 | selectors: [ 127 | '.dark', 128 | '[dark]', 129 | '[data-theme="dark"]' 130 | ], 131 | mediaQuery: '@media (prefers-color-scheme: dark)', 132 | theme: { 133 | colors: { 134 | primary: 'darkslateblue', 135 | }, 136 | }, 137 | }, 138 | { 139 | selectors: ['.lime'] 140 | theme: { 141 | colors: { 142 | primary: '#0f0', 143 | }, 144 | }, 145 | }, 146 | ] 147 | ``` 148 | 149 | ### CSS Output 150 | 151 | ```css 152 | :root { 153 | --colors-primary: hsl(0 100% 50%); 154 | --spacing-sm: 3px 155 | } 156 | 157 | .dark, [dark], [data-theme="dark"] { 158 | --colors-primary: darkslateblue 159 | } 160 | 161 | @media (prefers-color-scheme: dark) { 162 | :root{ 163 | --colors-primary: darkslateblue 164 | } 165 | } 166 | 167 | .lime { 168 | --colors-primary: #0f0 169 | } 170 | 171 | /* ... */ 172 | 173 | .bg-primary { 174 | --tw-bg-opacity: 1; 175 | background-color: color-mix(in srgb, var(--colors-primary), transparent calc(100% - 100% * var(--tw-bg-opacity))) 176 | } 177 | 178 | .text-primary { 179 | --tw-text-opacity: 1; 180 | background-color: color-mix(in srgb, var(--colors-primary), transparent calc(100% - 100% * var(--tw-text-opacity))) 181 | } 182 | 183 | .p-sm { 184 | padding: var(--spacing-sm) 185 | } 186 | ``` 187 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tailwindcss-theme-swapper", 3 | "version": "0.11.1", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "tailwindcss-theme-swapper", 9 | "version": "0.11.1", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "jest": "^29.5.0", 13 | "jest-matcher-css": "^1.1.0", 14 | "postcss": "^8.4.21", 15 | "tailwindcss": "^3.3.1" 16 | }, 17 | "peerDependencies": { 18 | "tailwindcss": ">=3.0.0 || insiders" 19 | } 20 | }, 21 | "node_modules/@ampproject/remapping": { 22 | "version": "2.2.1", 23 | "dev": true, 24 | "license": "Apache-2.0", 25 | "dependencies": { 26 | "@jridgewell/gen-mapping": "^0.3.0", 27 | "@jridgewell/trace-mapping": "^0.3.9" 28 | }, 29 | "engines": { 30 | "node": ">=6.0.0" 31 | } 32 | }, 33 | "node_modules/@babel/code-frame": { 34 | "version": "7.24.2", 35 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", 36 | "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", 37 | "dev": true, 38 | "dependencies": { 39 | "@babel/highlight": "^7.24.2", 40 | "picocolors": "^1.0.0" 41 | }, 42 | "engines": { 43 | "node": ">=6.9.0" 44 | } 45 | }, 46 | "node_modules/@babel/compat-data": { 47 | "version": "7.21.4", 48 | "dev": true, 49 | "license": "MIT", 50 | "engines": { 51 | "node": ">=6.9.0" 52 | } 53 | }, 54 | "node_modules/@babel/core": { 55 | "version": "7.21.4", 56 | "dev": true, 57 | "license": "MIT", 58 | "dependencies": { 59 | "@ampproject/remapping": "^2.2.0", 60 | "@babel/code-frame": "^7.21.4", 61 | "@babel/generator": "^7.21.4", 62 | "@babel/helper-compilation-targets": "^7.21.4", 63 | "@babel/helper-module-transforms": "^7.21.2", 64 | "@babel/helpers": "^7.21.0", 65 | "@babel/parser": "^7.21.4", 66 | "@babel/template": "^7.20.7", 67 | "@babel/traverse": "^7.21.4", 68 | "@babel/types": "^7.21.4", 69 | "convert-source-map": "^1.7.0", 70 | "debug": "^4.1.0", 71 | "gensync": "^1.0.0-beta.2", 72 | "json5": "^2.2.2", 73 | "semver": "^6.3.0" 74 | }, 75 | "engines": { 76 | "node": ">=6.9.0" 77 | }, 78 | "funding": { 79 | "type": "opencollective", 80 | "url": "https://opencollective.com/babel" 81 | } 82 | }, 83 | "node_modules/@babel/generator": { 84 | "version": "7.24.5", 85 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", 86 | "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", 87 | "dev": true, 88 | "dependencies": { 89 | "@babel/types": "^7.24.5", 90 | "@jridgewell/gen-mapping": "^0.3.5", 91 | "@jridgewell/trace-mapping": "^0.3.25", 92 | "jsesc": "^2.5.1" 93 | }, 94 | "engines": { 95 | "node": ">=6.9.0" 96 | } 97 | }, 98 | "node_modules/@babel/helper-compilation-targets": { 99 | "version": "7.21.4", 100 | "dev": true, 101 | "license": "MIT", 102 | "dependencies": { 103 | "@babel/compat-data": "^7.21.4", 104 | "@babel/helper-validator-option": "^7.21.0", 105 | "browserslist": "^4.21.3", 106 | "lru-cache": "^5.1.1", 107 | "semver": "^6.3.0" 108 | }, 109 | "engines": { 110 | "node": ">=6.9.0" 111 | }, 112 | "peerDependencies": { 113 | "@babel/core": "^7.0.0" 114 | } 115 | }, 116 | "node_modules/@babel/helper-environment-visitor": { 117 | "version": "7.22.20", 118 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", 119 | "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", 120 | "dev": true, 121 | "engines": { 122 | "node": ">=6.9.0" 123 | } 124 | }, 125 | "node_modules/@babel/helper-function-name": { 126 | "version": "7.23.0", 127 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", 128 | "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", 129 | "dev": true, 130 | "dependencies": { 131 | "@babel/template": "^7.22.15", 132 | "@babel/types": "^7.23.0" 133 | }, 134 | "engines": { 135 | "node": ">=6.9.0" 136 | } 137 | }, 138 | "node_modules/@babel/helper-hoist-variables": { 139 | "version": "7.22.5", 140 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", 141 | "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", 142 | "dev": true, 143 | "dependencies": { 144 | "@babel/types": "^7.22.5" 145 | }, 146 | "engines": { 147 | "node": ">=6.9.0" 148 | } 149 | }, 150 | "node_modules/@babel/helper-module-imports": { 151 | "version": "7.21.4", 152 | "dev": true, 153 | "license": "MIT", 154 | "dependencies": { 155 | "@babel/types": "^7.21.4" 156 | }, 157 | "engines": { 158 | "node": ">=6.9.0" 159 | } 160 | }, 161 | "node_modules/@babel/helper-module-transforms": { 162 | "version": "7.21.2", 163 | "dev": true, 164 | "license": "MIT", 165 | "dependencies": { 166 | "@babel/helper-environment-visitor": "^7.18.9", 167 | "@babel/helper-module-imports": "^7.18.6", 168 | "@babel/helper-simple-access": "^7.20.2", 169 | "@babel/helper-split-export-declaration": "^7.18.6", 170 | "@babel/helper-validator-identifier": "^7.19.1", 171 | "@babel/template": "^7.20.7", 172 | "@babel/traverse": "^7.21.2", 173 | "@babel/types": "^7.21.2" 174 | }, 175 | "engines": { 176 | "node": ">=6.9.0" 177 | } 178 | }, 179 | "node_modules/@babel/helper-plugin-utils": { 180 | "version": "7.10.4", 181 | "dev": true, 182 | "license": "MIT" 183 | }, 184 | "node_modules/@babel/helper-simple-access": { 185 | "version": "7.20.2", 186 | "dev": true, 187 | "license": "MIT", 188 | "dependencies": { 189 | "@babel/types": "^7.20.2" 190 | }, 191 | "engines": { 192 | "node": ">=6.9.0" 193 | } 194 | }, 195 | "node_modules/@babel/helper-split-export-declaration": { 196 | "version": "7.24.5", 197 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", 198 | "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", 199 | "dev": true, 200 | "dependencies": { 201 | "@babel/types": "^7.24.5" 202 | }, 203 | "engines": { 204 | "node": ">=6.9.0" 205 | } 206 | }, 207 | "node_modules/@babel/helper-string-parser": { 208 | "version": "7.24.1", 209 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", 210 | "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", 211 | "dev": true, 212 | "engines": { 213 | "node": ">=6.9.0" 214 | } 215 | }, 216 | "node_modules/@babel/helper-validator-identifier": { 217 | "version": "7.24.5", 218 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", 219 | "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", 220 | "dev": true, 221 | "engines": { 222 | "node": ">=6.9.0" 223 | } 224 | }, 225 | "node_modules/@babel/helper-validator-option": { 226 | "version": "7.21.0", 227 | "dev": true, 228 | "license": "MIT", 229 | "engines": { 230 | "node": ">=6.9.0" 231 | } 232 | }, 233 | "node_modules/@babel/helpers": { 234 | "version": "7.21.0", 235 | "dev": true, 236 | "license": "MIT", 237 | "dependencies": { 238 | "@babel/template": "^7.20.7", 239 | "@babel/traverse": "^7.21.0", 240 | "@babel/types": "^7.21.0" 241 | }, 242 | "engines": { 243 | "node": ">=6.9.0" 244 | } 245 | }, 246 | "node_modules/@babel/highlight": { 247 | "version": "7.24.5", 248 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", 249 | "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", 250 | "dev": true, 251 | "dependencies": { 252 | "@babel/helper-validator-identifier": "^7.24.5", 253 | "chalk": "^2.4.2", 254 | "js-tokens": "^4.0.0", 255 | "picocolors": "^1.0.0" 256 | }, 257 | "engines": { 258 | "node": ">=6.9.0" 259 | } 260 | }, 261 | "node_modules/@babel/highlight/node_modules/ansi-styles": { 262 | "version": "3.2.1", 263 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 264 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 265 | "dev": true, 266 | "dependencies": { 267 | "color-convert": "^1.9.0" 268 | }, 269 | "engines": { 270 | "node": ">=4" 271 | } 272 | }, 273 | "node_modules/@babel/highlight/node_modules/chalk": { 274 | "version": "2.4.2", 275 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 276 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 277 | "dev": true, 278 | "dependencies": { 279 | "ansi-styles": "^3.2.1", 280 | "escape-string-regexp": "^1.0.5", 281 | "supports-color": "^5.3.0" 282 | }, 283 | "engines": { 284 | "node": ">=4" 285 | } 286 | }, 287 | "node_modules/@babel/highlight/node_modules/color-convert": { 288 | "version": "1.9.3", 289 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 290 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 291 | "dev": true, 292 | "dependencies": { 293 | "color-name": "1.1.3" 294 | } 295 | }, 296 | "node_modules/@babel/highlight/node_modules/color-name": { 297 | "version": "1.1.3", 298 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 299 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 300 | "dev": true 301 | }, 302 | "node_modules/@babel/highlight/node_modules/has-flag": { 303 | "version": "3.0.0", 304 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 305 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 306 | "dev": true, 307 | "engines": { 308 | "node": ">=4" 309 | } 310 | }, 311 | "node_modules/@babel/highlight/node_modules/supports-color": { 312 | "version": "5.5.0", 313 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 314 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 315 | "dev": true, 316 | "dependencies": { 317 | "has-flag": "^3.0.0" 318 | }, 319 | "engines": { 320 | "node": ">=4" 321 | } 322 | }, 323 | "node_modules/@babel/parser": { 324 | "version": "7.24.5", 325 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", 326 | "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", 327 | "dev": true, 328 | "bin": { 329 | "parser": "bin/babel-parser.js" 330 | }, 331 | "engines": { 332 | "node": ">=6.0.0" 333 | } 334 | }, 335 | "node_modules/@babel/plugin-syntax-async-generators": { 336 | "version": "7.8.4", 337 | "dev": true, 338 | "license": "MIT", 339 | "dependencies": { 340 | "@babel/helper-plugin-utils": "^7.8.0" 341 | }, 342 | "peerDependencies": { 343 | "@babel/core": "^7.0.0-0" 344 | } 345 | }, 346 | "node_modules/@babel/plugin-syntax-bigint": { 347 | "version": "7.8.3", 348 | "dev": true, 349 | "license": "MIT", 350 | "dependencies": { 351 | "@babel/helper-plugin-utils": "^7.8.0" 352 | }, 353 | "peerDependencies": { 354 | "@babel/core": "^7.0.0-0" 355 | } 356 | }, 357 | "node_modules/@babel/plugin-syntax-class-properties": { 358 | "version": "7.12.1", 359 | "dev": true, 360 | "license": "MIT", 361 | "dependencies": { 362 | "@babel/helper-plugin-utils": "^7.10.4" 363 | }, 364 | "peerDependencies": { 365 | "@babel/core": "^7.0.0-0" 366 | } 367 | }, 368 | "node_modules/@babel/plugin-syntax-import-meta": { 369 | "version": "7.10.4", 370 | "dev": true, 371 | "license": "MIT", 372 | "dependencies": { 373 | "@babel/helper-plugin-utils": "^7.10.4" 374 | }, 375 | "peerDependencies": { 376 | "@babel/core": "^7.0.0-0" 377 | } 378 | }, 379 | "node_modules/@babel/plugin-syntax-json-strings": { 380 | "version": "7.8.3", 381 | "dev": true, 382 | "license": "MIT", 383 | "dependencies": { 384 | "@babel/helper-plugin-utils": "^7.8.0" 385 | }, 386 | "peerDependencies": { 387 | "@babel/core": "^7.0.0-0" 388 | } 389 | }, 390 | "node_modules/@babel/plugin-syntax-jsx": { 391 | "version": "7.21.4", 392 | "dev": true, 393 | "license": "MIT", 394 | "dependencies": { 395 | "@babel/helper-plugin-utils": "^7.20.2" 396 | }, 397 | "engines": { 398 | "node": ">=6.9.0" 399 | }, 400 | "peerDependencies": { 401 | "@babel/core": "^7.0.0-0" 402 | } 403 | }, 404 | "node_modules/@babel/plugin-syntax-jsx/node_modules/@babel/helper-plugin-utils": { 405 | "version": "7.20.2", 406 | "dev": true, 407 | "license": "MIT", 408 | "engines": { 409 | "node": ">=6.9.0" 410 | } 411 | }, 412 | "node_modules/@babel/plugin-syntax-logical-assignment-operators": { 413 | "version": "7.10.4", 414 | "dev": true, 415 | "license": "MIT", 416 | "dependencies": { 417 | "@babel/helper-plugin-utils": "^7.10.4" 418 | }, 419 | "peerDependencies": { 420 | "@babel/core": "^7.0.0-0" 421 | } 422 | }, 423 | "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { 424 | "version": "7.8.3", 425 | "dev": true, 426 | "license": "MIT", 427 | "dependencies": { 428 | "@babel/helper-plugin-utils": "^7.8.0" 429 | }, 430 | "peerDependencies": { 431 | "@babel/core": "^7.0.0-0" 432 | } 433 | }, 434 | "node_modules/@babel/plugin-syntax-numeric-separator": { 435 | "version": "7.10.4", 436 | "dev": true, 437 | "license": "MIT", 438 | "dependencies": { 439 | "@babel/helper-plugin-utils": "^7.10.4" 440 | }, 441 | "peerDependencies": { 442 | "@babel/core": "^7.0.0-0" 443 | } 444 | }, 445 | "node_modules/@babel/plugin-syntax-object-rest-spread": { 446 | "version": "7.8.3", 447 | "dev": true, 448 | "license": "MIT", 449 | "dependencies": { 450 | "@babel/helper-plugin-utils": "^7.8.0" 451 | }, 452 | "peerDependencies": { 453 | "@babel/core": "^7.0.0-0" 454 | } 455 | }, 456 | "node_modules/@babel/plugin-syntax-optional-catch-binding": { 457 | "version": "7.8.3", 458 | "dev": true, 459 | "license": "MIT", 460 | "dependencies": { 461 | "@babel/helper-plugin-utils": "^7.8.0" 462 | }, 463 | "peerDependencies": { 464 | "@babel/core": "^7.0.0-0" 465 | } 466 | }, 467 | "node_modules/@babel/plugin-syntax-optional-chaining": { 468 | "version": "7.8.3", 469 | "dev": true, 470 | "license": "MIT", 471 | "dependencies": { 472 | "@babel/helper-plugin-utils": "^7.8.0" 473 | }, 474 | "peerDependencies": { 475 | "@babel/core": "^7.0.0-0" 476 | } 477 | }, 478 | "node_modules/@babel/plugin-syntax-top-level-await": { 479 | "version": "7.14.5", 480 | "dev": true, 481 | "license": "MIT", 482 | "dependencies": { 483 | "@babel/helper-plugin-utils": "^7.14.5" 484 | }, 485 | "engines": { 486 | "node": ">=6.9.0" 487 | }, 488 | "peerDependencies": { 489 | "@babel/core": "^7.0.0-0" 490 | } 491 | }, 492 | "node_modules/@babel/plugin-syntax-top-level-await/node_modules/@babel/helper-plugin-utils": { 493 | "version": "7.16.7", 494 | "dev": true, 495 | "license": "MIT", 496 | "engines": { 497 | "node": ">=6.9.0" 498 | } 499 | }, 500 | "node_modules/@babel/plugin-syntax-typescript": { 501 | "version": "7.16.7", 502 | "dev": true, 503 | "license": "MIT", 504 | "dependencies": { 505 | "@babel/helper-plugin-utils": "^7.16.7" 506 | }, 507 | "engines": { 508 | "node": ">=6.9.0" 509 | }, 510 | "peerDependencies": { 511 | "@babel/core": "^7.0.0-0" 512 | } 513 | }, 514 | "node_modules/@babel/plugin-syntax-typescript/node_modules/@babel/helper-plugin-utils": { 515 | "version": "7.16.7", 516 | "dev": true, 517 | "license": "MIT", 518 | "engines": { 519 | "node": ">=6.9.0" 520 | } 521 | }, 522 | "node_modules/@babel/template": { 523 | "version": "7.24.0", 524 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", 525 | "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", 526 | "dev": true, 527 | "dependencies": { 528 | "@babel/code-frame": "^7.23.5", 529 | "@babel/parser": "^7.24.0", 530 | "@babel/types": "^7.24.0" 531 | }, 532 | "engines": { 533 | "node": ">=6.9.0" 534 | } 535 | }, 536 | "node_modules/@babel/traverse": { 537 | "version": "7.24.5", 538 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", 539 | "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", 540 | "dev": true, 541 | "dependencies": { 542 | "@babel/code-frame": "^7.24.2", 543 | "@babel/generator": "^7.24.5", 544 | "@babel/helper-environment-visitor": "^7.22.20", 545 | "@babel/helper-function-name": "^7.23.0", 546 | "@babel/helper-hoist-variables": "^7.22.5", 547 | "@babel/helper-split-export-declaration": "^7.24.5", 548 | "@babel/parser": "^7.24.5", 549 | "@babel/types": "^7.24.5", 550 | "debug": "^4.3.1", 551 | "globals": "^11.1.0" 552 | }, 553 | "engines": { 554 | "node": ">=6.9.0" 555 | } 556 | }, 557 | "node_modules/@babel/types": { 558 | "version": "7.24.5", 559 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", 560 | "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", 561 | "dev": true, 562 | "dependencies": { 563 | "@babel/helper-string-parser": "^7.24.1", 564 | "@babel/helper-validator-identifier": "^7.24.5", 565 | "to-fast-properties": "^2.0.0" 566 | }, 567 | "engines": { 568 | "node": ">=6.9.0" 569 | } 570 | }, 571 | "node_modules/@bcoe/v8-coverage": { 572 | "version": "0.2.3", 573 | "dev": true, 574 | "license": "MIT" 575 | }, 576 | "node_modules/@istanbuljs/load-nyc-config": { 577 | "version": "1.1.0", 578 | "dev": true, 579 | "license": "ISC", 580 | "dependencies": { 581 | "camelcase": "^5.3.1", 582 | "find-up": "^4.1.0", 583 | "get-package-type": "^0.1.0", 584 | "js-yaml": "^3.13.1", 585 | "resolve-from": "^5.0.0" 586 | }, 587 | "engines": { 588 | "node": ">=8" 589 | } 590 | }, 591 | "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { 592 | "version": "5.3.1", 593 | "dev": true, 594 | "license": "MIT", 595 | "engines": { 596 | "node": ">=6" 597 | } 598 | }, 599 | "node_modules/@istanbuljs/schema": { 600 | "version": "0.1.2", 601 | "dev": true, 602 | "license": "MIT", 603 | "engines": { 604 | "node": ">=8" 605 | } 606 | }, 607 | "node_modules/@jest/console": { 608 | "version": "29.5.0", 609 | "dev": true, 610 | "license": "MIT", 611 | "dependencies": { 612 | "@jest/types": "^29.5.0", 613 | "@types/node": "*", 614 | "chalk": "^4.0.0", 615 | "jest-message-util": "^29.5.0", 616 | "jest-util": "^29.5.0", 617 | "slash": "^3.0.0" 618 | }, 619 | "engines": { 620 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 621 | } 622 | }, 623 | "node_modules/@jest/core": { 624 | "version": "29.5.0", 625 | "dev": true, 626 | "license": "MIT", 627 | "dependencies": { 628 | "@jest/console": "^29.5.0", 629 | "@jest/reporters": "^29.5.0", 630 | "@jest/test-result": "^29.5.0", 631 | "@jest/transform": "^29.5.0", 632 | "@jest/types": "^29.5.0", 633 | "@types/node": "*", 634 | "ansi-escapes": "^4.2.1", 635 | "chalk": "^4.0.0", 636 | "ci-info": "^3.2.0", 637 | "exit": "^0.1.2", 638 | "graceful-fs": "^4.2.9", 639 | "jest-changed-files": "^29.5.0", 640 | "jest-config": "^29.5.0", 641 | "jest-haste-map": "^29.5.0", 642 | "jest-message-util": "^29.5.0", 643 | "jest-regex-util": "^29.4.3", 644 | "jest-resolve": "^29.5.0", 645 | "jest-resolve-dependencies": "^29.5.0", 646 | "jest-runner": "^29.5.0", 647 | "jest-runtime": "^29.5.0", 648 | "jest-snapshot": "^29.5.0", 649 | "jest-util": "^29.5.0", 650 | "jest-validate": "^29.5.0", 651 | "jest-watcher": "^29.5.0", 652 | "micromatch": "^4.0.4", 653 | "pretty-format": "^29.5.0", 654 | "slash": "^3.0.0", 655 | "strip-ansi": "^6.0.0" 656 | }, 657 | "engines": { 658 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 659 | }, 660 | "peerDependencies": { 661 | "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" 662 | }, 663 | "peerDependenciesMeta": { 664 | "node-notifier": { 665 | "optional": true 666 | } 667 | } 668 | }, 669 | "node_modules/@jest/environment": { 670 | "version": "29.5.0", 671 | "dev": true, 672 | "license": "MIT", 673 | "dependencies": { 674 | "@jest/fake-timers": "^29.5.0", 675 | "@jest/types": "^29.5.0", 676 | "@types/node": "*", 677 | "jest-mock": "^29.5.0" 678 | }, 679 | "engines": { 680 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 681 | } 682 | }, 683 | "node_modules/@jest/expect": { 684 | "version": "29.5.0", 685 | "dev": true, 686 | "license": "MIT", 687 | "dependencies": { 688 | "expect": "^29.5.0", 689 | "jest-snapshot": "^29.5.0" 690 | }, 691 | "engines": { 692 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 693 | } 694 | }, 695 | "node_modules/@jest/expect-utils": { 696 | "version": "29.5.0", 697 | "dev": true, 698 | "license": "MIT", 699 | "dependencies": { 700 | "jest-get-type": "^29.4.3" 701 | }, 702 | "engines": { 703 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 704 | } 705 | }, 706 | "node_modules/@jest/fake-timers": { 707 | "version": "29.5.0", 708 | "dev": true, 709 | "license": "MIT", 710 | "dependencies": { 711 | "@jest/types": "^29.5.0", 712 | "@sinonjs/fake-timers": "^10.0.2", 713 | "@types/node": "*", 714 | "jest-message-util": "^29.5.0", 715 | "jest-mock": "^29.5.0", 716 | "jest-util": "^29.5.0" 717 | }, 718 | "engines": { 719 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 720 | } 721 | }, 722 | "node_modules/@jest/globals": { 723 | "version": "29.5.0", 724 | "dev": true, 725 | "license": "MIT", 726 | "dependencies": { 727 | "@jest/environment": "^29.5.0", 728 | "@jest/expect": "^29.5.0", 729 | "@jest/types": "^29.5.0", 730 | "jest-mock": "^29.5.0" 731 | }, 732 | "engines": { 733 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 734 | } 735 | }, 736 | "node_modules/@jest/reporters": { 737 | "version": "29.5.0", 738 | "dev": true, 739 | "license": "MIT", 740 | "dependencies": { 741 | "@bcoe/v8-coverage": "^0.2.3", 742 | "@jest/console": "^29.5.0", 743 | "@jest/test-result": "^29.5.0", 744 | "@jest/transform": "^29.5.0", 745 | "@jest/types": "^29.5.0", 746 | "@jridgewell/trace-mapping": "^0.3.15", 747 | "@types/node": "*", 748 | "chalk": "^4.0.0", 749 | "collect-v8-coverage": "^1.0.0", 750 | "exit": "^0.1.2", 751 | "glob": "^7.1.3", 752 | "graceful-fs": "^4.2.9", 753 | "istanbul-lib-coverage": "^3.0.0", 754 | "istanbul-lib-instrument": "^5.1.0", 755 | "istanbul-lib-report": "^3.0.0", 756 | "istanbul-lib-source-maps": "^4.0.0", 757 | "istanbul-reports": "^3.1.3", 758 | "jest-message-util": "^29.5.0", 759 | "jest-util": "^29.5.0", 760 | "jest-worker": "^29.5.0", 761 | "slash": "^3.0.0", 762 | "string-length": "^4.0.1", 763 | "strip-ansi": "^6.0.0", 764 | "v8-to-istanbul": "^9.0.1" 765 | }, 766 | "engines": { 767 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 768 | }, 769 | "peerDependencies": { 770 | "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" 771 | }, 772 | "peerDependenciesMeta": { 773 | "node-notifier": { 774 | "optional": true 775 | } 776 | } 777 | }, 778 | "node_modules/@jest/schemas": { 779 | "version": "29.4.3", 780 | "dev": true, 781 | "license": "MIT", 782 | "dependencies": { 783 | "@sinclair/typebox": "^0.25.16" 784 | }, 785 | "engines": { 786 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 787 | } 788 | }, 789 | "node_modules/@jest/source-map": { 790 | "version": "29.4.3", 791 | "dev": true, 792 | "license": "MIT", 793 | "dependencies": { 794 | "@jridgewell/trace-mapping": "^0.3.15", 795 | "callsites": "^3.0.0", 796 | "graceful-fs": "^4.2.9" 797 | }, 798 | "engines": { 799 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 800 | } 801 | }, 802 | "node_modules/@jest/test-result": { 803 | "version": "29.5.0", 804 | "dev": true, 805 | "license": "MIT", 806 | "dependencies": { 807 | "@jest/console": "^29.5.0", 808 | "@jest/types": "^29.5.0", 809 | "@types/istanbul-lib-coverage": "^2.0.0", 810 | "collect-v8-coverage": "^1.0.0" 811 | }, 812 | "engines": { 813 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 814 | } 815 | }, 816 | "node_modules/@jest/test-sequencer": { 817 | "version": "29.5.0", 818 | "dev": true, 819 | "license": "MIT", 820 | "dependencies": { 821 | "@jest/test-result": "^29.5.0", 822 | "graceful-fs": "^4.2.9", 823 | "jest-haste-map": "^29.5.0", 824 | "slash": "^3.0.0" 825 | }, 826 | "engines": { 827 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 828 | } 829 | }, 830 | "node_modules/@jest/transform": { 831 | "version": "29.5.0", 832 | "dev": true, 833 | "license": "MIT", 834 | "dependencies": { 835 | "@babel/core": "^7.11.6", 836 | "@jest/types": "^29.5.0", 837 | "@jridgewell/trace-mapping": "^0.3.15", 838 | "babel-plugin-istanbul": "^6.1.1", 839 | "chalk": "^4.0.0", 840 | "convert-source-map": "^2.0.0", 841 | "fast-json-stable-stringify": "^2.1.0", 842 | "graceful-fs": "^4.2.9", 843 | "jest-haste-map": "^29.5.0", 844 | "jest-regex-util": "^29.4.3", 845 | "jest-util": "^29.5.0", 846 | "micromatch": "^4.0.4", 847 | "pirates": "^4.0.4", 848 | "slash": "^3.0.0", 849 | "write-file-atomic": "^4.0.2" 850 | }, 851 | "engines": { 852 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 853 | } 854 | }, 855 | "node_modules/@jest/transform/node_modules/convert-source-map": { 856 | "version": "2.0.0", 857 | "dev": true, 858 | "license": "MIT" 859 | }, 860 | "node_modules/@jest/types": { 861 | "version": "29.5.0", 862 | "dev": true, 863 | "license": "MIT", 864 | "dependencies": { 865 | "@jest/schemas": "^29.4.3", 866 | "@types/istanbul-lib-coverage": "^2.0.0", 867 | "@types/istanbul-reports": "^3.0.0", 868 | "@types/node": "*", 869 | "@types/yargs": "^17.0.8", 870 | "chalk": "^4.0.0" 871 | }, 872 | "engines": { 873 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 874 | } 875 | }, 876 | "node_modules/@jridgewell/gen-mapping": { 877 | "version": "0.3.5", 878 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", 879 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", 880 | "dev": true, 881 | "dependencies": { 882 | "@jridgewell/set-array": "^1.2.1", 883 | "@jridgewell/sourcemap-codec": "^1.4.10", 884 | "@jridgewell/trace-mapping": "^0.3.24" 885 | }, 886 | "engines": { 887 | "node": ">=6.0.0" 888 | } 889 | }, 890 | "node_modules/@jridgewell/resolve-uri": { 891 | "version": "3.1.0", 892 | "dev": true, 893 | "license": "MIT", 894 | "engines": { 895 | "node": ">=6.0.0" 896 | } 897 | }, 898 | "node_modules/@jridgewell/set-array": { 899 | "version": "1.2.1", 900 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 901 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 902 | "dev": true, 903 | "engines": { 904 | "node": ">=6.0.0" 905 | } 906 | }, 907 | "node_modules/@jridgewell/sourcemap-codec": { 908 | "version": "1.4.11", 909 | "dev": true, 910 | "license": "MIT" 911 | }, 912 | "node_modules/@jridgewell/trace-mapping": { 913 | "version": "0.3.25", 914 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 915 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 916 | "dev": true, 917 | "dependencies": { 918 | "@jridgewell/resolve-uri": "^3.1.0", 919 | "@jridgewell/sourcemap-codec": "^1.4.14" 920 | } 921 | }, 922 | "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { 923 | "version": "1.4.14", 924 | "dev": true, 925 | "license": "MIT" 926 | }, 927 | "node_modules/@nodelib/fs.scandir": { 928 | "version": "2.1.5", 929 | "dev": true, 930 | "license": "MIT", 931 | "dependencies": { 932 | "@nodelib/fs.stat": "2.0.5", 933 | "run-parallel": "^1.1.9" 934 | }, 935 | "engines": { 936 | "node": ">= 8" 937 | } 938 | }, 939 | "node_modules/@nodelib/fs.stat": { 940 | "version": "2.0.5", 941 | "dev": true, 942 | "license": "MIT", 943 | "engines": { 944 | "node": ">= 8" 945 | } 946 | }, 947 | "node_modules/@nodelib/fs.walk": { 948 | "version": "1.2.8", 949 | "dev": true, 950 | "license": "MIT", 951 | "dependencies": { 952 | "@nodelib/fs.scandir": "2.1.5", 953 | "fastq": "^1.6.0" 954 | }, 955 | "engines": { 956 | "node": ">= 8" 957 | } 958 | }, 959 | "node_modules/@sinclair/typebox": { 960 | "version": "0.25.24", 961 | "dev": true, 962 | "license": "MIT" 963 | }, 964 | "node_modules/@sinonjs/commons": { 965 | "version": "2.0.0", 966 | "dev": true, 967 | "license": "BSD-3-Clause", 968 | "dependencies": { 969 | "type-detect": "4.0.8" 970 | } 971 | }, 972 | "node_modules/@sinonjs/fake-timers": { 973 | "version": "10.0.2", 974 | "dev": true, 975 | "license": "BSD-3-Clause", 976 | "dependencies": { 977 | "@sinonjs/commons": "^2.0.0" 978 | } 979 | }, 980 | "node_modules/@types/babel__core": { 981 | "version": "7.1.19", 982 | "dev": true, 983 | "license": "MIT", 984 | "dependencies": { 985 | "@babel/parser": "^7.1.0", 986 | "@babel/types": "^7.0.0", 987 | "@types/babel__generator": "*", 988 | "@types/babel__template": "*", 989 | "@types/babel__traverse": "*" 990 | } 991 | }, 992 | "node_modules/@types/babel__generator": { 993 | "version": "7.6.2", 994 | "dev": true, 995 | "license": "MIT", 996 | "dependencies": { 997 | "@babel/types": "^7.0.0" 998 | } 999 | }, 1000 | "node_modules/@types/babel__template": { 1001 | "version": "7.4.0", 1002 | "dev": true, 1003 | "license": "MIT", 1004 | "dependencies": { 1005 | "@babel/parser": "^7.1.0", 1006 | "@babel/types": "^7.0.0" 1007 | } 1008 | }, 1009 | "node_modules/@types/babel__traverse": { 1010 | "version": "7.11.0", 1011 | "dev": true, 1012 | "license": "MIT", 1013 | "dependencies": { 1014 | "@babel/types": "^7.3.0" 1015 | } 1016 | }, 1017 | "node_modules/@types/graceful-fs": { 1018 | "version": "4.1.6", 1019 | "dev": true, 1020 | "license": "MIT", 1021 | "dependencies": { 1022 | "@types/node": "*" 1023 | } 1024 | }, 1025 | "node_modules/@types/istanbul-lib-coverage": { 1026 | "version": "2.0.3", 1027 | "dev": true, 1028 | "license": "MIT" 1029 | }, 1030 | "node_modules/@types/istanbul-lib-report": { 1031 | "version": "3.0.0", 1032 | "dev": true, 1033 | "license": "MIT", 1034 | "dependencies": { 1035 | "@types/istanbul-lib-coverage": "*" 1036 | } 1037 | }, 1038 | "node_modules/@types/istanbul-reports": { 1039 | "version": "3.0.1", 1040 | "dev": true, 1041 | "license": "MIT", 1042 | "dependencies": { 1043 | "@types/istanbul-lib-report": "*" 1044 | } 1045 | }, 1046 | "node_modules/@types/node": { 1047 | "version": "14.14.11", 1048 | "dev": true, 1049 | "license": "MIT" 1050 | }, 1051 | "node_modules/@types/prettier": { 1052 | "version": "2.6.0", 1053 | "dev": true, 1054 | "license": "MIT" 1055 | }, 1056 | "node_modules/@types/stack-utils": { 1057 | "version": "2.0.1", 1058 | "dev": true, 1059 | "license": "MIT" 1060 | }, 1061 | "node_modules/@types/yargs": { 1062 | "version": "17.0.24", 1063 | "dev": true, 1064 | "license": "MIT", 1065 | "dependencies": { 1066 | "@types/yargs-parser": "*" 1067 | } 1068 | }, 1069 | "node_modules/@types/yargs-parser": { 1070 | "version": "15.0.0", 1071 | "dev": true, 1072 | "license": "MIT" 1073 | }, 1074 | "node_modules/ansi-escapes": { 1075 | "version": "4.3.1", 1076 | "dev": true, 1077 | "license": "MIT", 1078 | "dependencies": { 1079 | "type-fest": "^0.11.0" 1080 | }, 1081 | "engines": { 1082 | "node": ">=8" 1083 | }, 1084 | "funding": { 1085 | "url": "https://github.com/sponsors/sindresorhus" 1086 | } 1087 | }, 1088 | "node_modules/ansi-regex": { 1089 | "version": "5.0.1", 1090 | "dev": true, 1091 | "license": "MIT", 1092 | "engines": { 1093 | "node": ">=8" 1094 | } 1095 | }, 1096 | "node_modules/ansi-styles": { 1097 | "version": "4.3.0", 1098 | "dev": true, 1099 | "license": "MIT", 1100 | "dependencies": { 1101 | "color-convert": "^2.0.1" 1102 | }, 1103 | "engines": { 1104 | "node": ">=8" 1105 | }, 1106 | "funding": { 1107 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1108 | } 1109 | }, 1110 | "node_modules/any-promise": { 1111 | "version": "1.3.0", 1112 | "dev": true, 1113 | "license": "MIT" 1114 | }, 1115 | "node_modules/anymatch": { 1116 | "version": "3.1.2", 1117 | "dev": true, 1118 | "license": "ISC", 1119 | "dependencies": { 1120 | "normalize-path": "^3.0.0", 1121 | "picomatch": "^2.0.4" 1122 | }, 1123 | "engines": { 1124 | "node": ">= 8" 1125 | } 1126 | }, 1127 | "node_modules/anymatch/node_modules/picomatch": { 1128 | "version": "2.2.2", 1129 | "dev": true, 1130 | "license": "MIT", 1131 | "engines": { 1132 | "node": ">=8.6" 1133 | }, 1134 | "funding": { 1135 | "url": "https://github.com/sponsors/jonschlinkert" 1136 | } 1137 | }, 1138 | "node_modules/arg": { 1139 | "version": "5.0.2", 1140 | "dev": true, 1141 | "license": "MIT" 1142 | }, 1143 | "node_modules/argparse": { 1144 | "version": "1.0.10", 1145 | "dev": true, 1146 | "license": "MIT", 1147 | "dependencies": { 1148 | "sprintf-js": "~1.0.2" 1149 | } 1150 | }, 1151 | "node_modules/babel-jest": { 1152 | "version": "29.5.0", 1153 | "dev": true, 1154 | "license": "MIT", 1155 | "dependencies": { 1156 | "@jest/transform": "^29.5.0", 1157 | "@types/babel__core": "^7.1.14", 1158 | "babel-plugin-istanbul": "^6.1.1", 1159 | "babel-preset-jest": "^29.5.0", 1160 | "chalk": "^4.0.0", 1161 | "graceful-fs": "^4.2.9", 1162 | "slash": "^3.0.0" 1163 | }, 1164 | "engines": { 1165 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 1166 | }, 1167 | "peerDependencies": { 1168 | "@babel/core": "^7.8.0" 1169 | } 1170 | }, 1171 | "node_modules/babel-plugin-istanbul": { 1172 | "version": "6.1.1", 1173 | "dev": true, 1174 | "license": "BSD-3-Clause", 1175 | "dependencies": { 1176 | "@babel/helper-plugin-utils": "^7.0.0", 1177 | "@istanbuljs/load-nyc-config": "^1.0.0", 1178 | "@istanbuljs/schema": "^0.1.2", 1179 | "istanbul-lib-instrument": "^5.0.4", 1180 | "test-exclude": "^6.0.0" 1181 | }, 1182 | "engines": { 1183 | "node": ">=8" 1184 | } 1185 | }, 1186 | "node_modules/babel-plugin-jest-hoist": { 1187 | "version": "29.5.0", 1188 | "dev": true, 1189 | "license": "MIT", 1190 | "dependencies": { 1191 | "@babel/template": "^7.3.3", 1192 | "@babel/types": "^7.3.3", 1193 | "@types/babel__core": "^7.1.14", 1194 | "@types/babel__traverse": "^7.0.6" 1195 | }, 1196 | "engines": { 1197 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 1198 | } 1199 | }, 1200 | "node_modules/babel-preset-current-node-syntax": { 1201 | "version": "1.0.1", 1202 | "dev": true, 1203 | "license": "MIT", 1204 | "dependencies": { 1205 | "@babel/plugin-syntax-async-generators": "^7.8.4", 1206 | "@babel/plugin-syntax-bigint": "^7.8.3", 1207 | "@babel/plugin-syntax-class-properties": "^7.8.3", 1208 | "@babel/plugin-syntax-import-meta": "^7.8.3", 1209 | "@babel/plugin-syntax-json-strings": "^7.8.3", 1210 | "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", 1211 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", 1212 | "@babel/plugin-syntax-numeric-separator": "^7.8.3", 1213 | "@babel/plugin-syntax-object-rest-spread": "^7.8.3", 1214 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", 1215 | "@babel/plugin-syntax-optional-chaining": "^7.8.3", 1216 | "@babel/plugin-syntax-top-level-await": "^7.8.3" 1217 | }, 1218 | "peerDependencies": { 1219 | "@babel/core": "^7.0.0" 1220 | } 1221 | }, 1222 | "node_modules/babel-preset-jest": { 1223 | "version": "29.5.0", 1224 | "dev": true, 1225 | "license": "MIT", 1226 | "dependencies": { 1227 | "babel-plugin-jest-hoist": "^29.5.0", 1228 | "babel-preset-current-node-syntax": "^1.0.0" 1229 | }, 1230 | "engines": { 1231 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 1232 | }, 1233 | "peerDependencies": { 1234 | "@babel/core": "^7.0.0" 1235 | } 1236 | }, 1237 | "node_modules/balanced-match": { 1238 | "version": "1.0.0", 1239 | "dev": true, 1240 | "license": "MIT" 1241 | }, 1242 | "node_modules/binary-extensions": { 1243 | "version": "2.2.0", 1244 | "dev": true, 1245 | "license": "MIT", 1246 | "engines": { 1247 | "node": ">=8" 1248 | } 1249 | }, 1250 | "node_modules/brace-expansion": { 1251 | "version": "1.1.11", 1252 | "dev": true, 1253 | "license": "MIT", 1254 | "dependencies": { 1255 | "balanced-match": "^1.0.0", 1256 | "concat-map": "0.0.1" 1257 | } 1258 | }, 1259 | "node_modules/braces": { 1260 | "version": "3.0.2", 1261 | "dev": true, 1262 | "license": "MIT", 1263 | "dependencies": { 1264 | "fill-range": "^7.0.1" 1265 | }, 1266 | "engines": { 1267 | "node": ">=8" 1268 | } 1269 | }, 1270 | "node_modules/browserslist": { 1271 | "version": "4.21.5", 1272 | "dev": true, 1273 | "funding": [ 1274 | { 1275 | "type": "opencollective", 1276 | "url": "https://opencollective.com/browserslist" 1277 | }, 1278 | { 1279 | "type": "tidelift", 1280 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1281 | } 1282 | ], 1283 | "license": "MIT", 1284 | "dependencies": { 1285 | "caniuse-lite": "^1.0.30001449", 1286 | "electron-to-chromium": "^1.4.284", 1287 | "node-releases": "^2.0.8", 1288 | "update-browserslist-db": "^1.0.10" 1289 | }, 1290 | "bin": { 1291 | "browserslist": "cli.js" 1292 | }, 1293 | "engines": { 1294 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 1295 | } 1296 | }, 1297 | "node_modules/bser": { 1298 | "version": "2.1.1", 1299 | "dev": true, 1300 | "license": "Apache-2.0", 1301 | "dependencies": { 1302 | "node-int64": "^0.4.0" 1303 | } 1304 | }, 1305 | "node_modules/buffer-from": { 1306 | "version": "1.1.1", 1307 | "dev": true, 1308 | "license": "MIT" 1309 | }, 1310 | "node_modules/callsites": { 1311 | "version": "3.1.0", 1312 | "dev": true, 1313 | "license": "MIT", 1314 | "engines": { 1315 | "node": ">=6" 1316 | } 1317 | }, 1318 | "node_modules/camelcase": { 1319 | "version": "6.3.0", 1320 | "dev": true, 1321 | "license": "MIT", 1322 | "engines": { 1323 | "node": ">=10" 1324 | }, 1325 | "funding": { 1326 | "url": "https://github.com/sponsors/sindresorhus" 1327 | } 1328 | }, 1329 | "node_modules/camelcase-css": { 1330 | "version": "2.0.1", 1331 | "dev": true, 1332 | "license": "MIT", 1333 | "engines": { 1334 | "node": ">= 6" 1335 | } 1336 | }, 1337 | "node_modules/caniuse-lite": { 1338 | "version": "1.0.30001478", 1339 | "dev": true, 1340 | "funding": [ 1341 | { 1342 | "type": "opencollective", 1343 | "url": "https://opencollective.com/browserslist" 1344 | }, 1345 | { 1346 | "type": "tidelift", 1347 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 1348 | }, 1349 | { 1350 | "type": "github", 1351 | "url": "https://github.com/sponsors/ai" 1352 | } 1353 | ], 1354 | "license": "CC-BY-4.0" 1355 | }, 1356 | "node_modules/chalk": { 1357 | "version": "4.1.2", 1358 | "dev": true, 1359 | "license": "MIT", 1360 | "dependencies": { 1361 | "ansi-styles": "^4.1.0", 1362 | "supports-color": "^7.1.0" 1363 | }, 1364 | "engines": { 1365 | "node": ">=10" 1366 | }, 1367 | "funding": { 1368 | "url": "https://github.com/chalk/chalk?sponsor=1" 1369 | } 1370 | }, 1371 | "node_modules/char-regex": { 1372 | "version": "1.0.2", 1373 | "dev": true, 1374 | "license": "MIT", 1375 | "engines": { 1376 | "node": ">=10" 1377 | } 1378 | }, 1379 | "node_modules/chokidar": { 1380 | "version": "3.5.3", 1381 | "dev": true, 1382 | "funding": [ 1383 | { 1384 | "type": "individual", 1385 | "url": "https://paulmillr.com/funding/" 1386 | } 1387 | ], 1388 | "license": "MIT", 1389 | "dependencies": { 1390 | "anymatch": "~3.1.2", 1391 | "braces": "~3.0.2", 1392 | "glob-parent": "~5.1.2", 1393 | "is-binary-path": "~2.1.0", 1394 | "is-glob": "~4.0.1", 1395 | "normalize-path": "~3.0.0", 1396 | "readdirp": "~3.6.0" 1397 | }, 1398 | "engines": { 1399 | "node": ">= 8.10.0" 1400 | }, 1401 | "optionalDependencies": { 1402 | "fsevents": "~2.3.2" 1403 | } 1404 | }, 1405 | "node_modules/ci-info": { 1406 | "version": "3.3.0", 1407 | "dev": true, 1408 | "license": "MIT" 1409 | }, 1410 | "node_modules/cjs-module-lexer": { 1411 | "version": "1.2.2", 1412 | "dev": true, 1413 | "license": "MIT" 1414 | }, 1415 | "node_modules/cliui": { 1416 | "version": "8.0.1", 1417 | "dev": true, 1418 | "license": "ISC", 1419 | "dependencies": { 1420 | "string-width": "^4.2.0", 1421 | "strip-ansi": "^6.0.1", 1422 | "wrap-ansi": "^7.0.0" 1423 | }, 1424 | "engines": { 1425 | "node": ">=12" 1426 | } 1427 | }, 1428 | "node_modules/cliui/node_modules/strip-ansi": { 1429 | "version": "6.0.1", 1430 | "dev": true, 1431 | "license": "MIT", 1432 | "dependencies": { 1433 | "ansi-regex": "^5.0.1" 1434 | }, 1435 | "engines": { 1436 | "node": ">=8" 1437 | } 1438 | }, 1439 | "node_modules/co": { 1440 | "version": "4.6.0", 1441 | "dev": true, 1442 | "license": "MIT", 1443 | "engines": { 1444 | "iojs": ">= 1.0.0", 1445 | "node": ">= 0.12.0" 1446 | } 1447 | }, 1448 | "node_modules/collect-v8-coverage": { 1449 | "version": "1.0.1", 1450 | "dev": true, 1451 | "license": "MIT" 1452 | }, 1453 | "node_modules/color-convert": { 1454 | "version": "2.0.1", 1455 | "dev": true, 1456 | "license": "MIT", 1457 | "dependencies": { 1458 | "color-name": "~1.1.4" 1459 | }, 1460 | "engines": { 1461 | "node": ">=7.0.0" 1462 | } 1463 | }, 1464 | "node_modules/color-name": { 1465 | "version": "1.1.4", 1466 | "dev": true, 1467 | "license": "MIT" 1468 | }, 1469 | "node_modules/commander": { 1470 | "version": "4.1.1", 1471 | "dev": true, 1472 | "license": "MIT", 1473 | "engines": { 1474 | "node": ">= 6" 1475 | } 1476 | }, 1477 | "node_modules/concat-map": { 1478 | "version": "0.0.1", 1479 | "dev": true, 1480 | "license": "MIT" 1481 | }, 1482 | "node_modules/convert-source-map": { 1483 | "version": "1.7.0", 1484 | "dev": true, 1485 | "license": "MIT", 1486 | "dependencies": { 1487 | "safe-buffer": "~5.1.1" 1488 | } 1489 | }, 1490 | "node_modules/cross-spawn": { 1491 | "version": "7.0.3", 1492 | "dev": true, 1493 | "license": "MIT", 1494 | "dependencies": { 1495 | "path-key": "^3.1.0", 1496 | "shebang-command": "^2.0.0", 1497 | "which": "^2.0.1" 1498 | }, 1499 | "engines": { 1500 | "node": ">= 8" 1501 | } 1502 | }, 1503 | "node_modules/cssesc": { 1504 | "version": "3.0.0", 1505 | "dev": true, 1506 | "license": "MIT", 1507 | "bin": { 1508 | "cssesc": "bin/cssesc" 1509 | }, 1510 | "engines": { 1511 | "node": ">=4" 1512 | } 1513 | }, 1514 | "node_modules/debug": { 1515 | "version": "4.3.1", 1516 | "dev": true, 1517 | "license": "MIT", 1518 | "dependencies": { 1519 | "ms": "2.1.2" 1520 | }, 1521 | "engines": { 1522 | "node": ">=6.0" 1523 | }, 1524 | "peerDependenciesMeta": { 1525 | "supports-color": { 1526 | "optional": true 1527 | } 1528 | } 1529 | }, 1530 | "node_modules/dedent": { 1531 | "version": "0.7.0", 1532 | "dev": true, 1533 | "license": "MIT" 1534 | }, 1535 | "node_modules/deepmerge": { 1536 | "version": "4.2.2", 1537 | "dev": true, 1538 | "license": "MIT", 1539 | "engines": { 1540 | "node": ">=0.10.0" 1541 | } 1542 | }, 1543 | "node_modules/detect-newline": { 1544 | "version": "3.1.0", 1545 | "dev": true, 1546 | "license": "MIT", 1547 | "engines": { 1548 | "node": ">=8" 1549 | } 1550 | }, 1551 | "node_modules/didyoumean": { 1552 | "version": "1.2.2", 1553 | "dev": true, 1554 | "license": "Apache-2.0" 1555 | }, 1556 | "node_modules/diff-sequences": { 1557 | "version": "29.4.3", 1558 | "dev": true, 1559 | "license": "MIT", 1560 | "engines": { 1561 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 1562 | } 1563 | }, 1564 | "node_modules/dlv": { 1565 | "version": "1.1.3", 1566 | "dev": true, 1567 | "license": "MIT" 1568 | }, 1569 | "node_modules/electron-to-chromium": { 1570 | "version": "1.4.363", 1571 | "dev": true, 1572 | "license": "ISC" 1573 | }, 1574 | "node_modules/emittery": { 1575 | "version": "0.13.1", 1576 | "dev": true, 1577 | "license": "MIT", 1578 | "engines": { 1579 | "node": ">=12" 1580 | }, 1581 | "funding": { 1582 | "url": "https://github.com/sindresorhus/emittery?sponsor=1" 1583 | } 1584 | }, 1585 | "node_modules/emoji-regex": { 1586 | "version": "8.0.0", 1587 | "dev": true, 1588 | "license": "MIT" 1589 | }, 1590 | "node_modules/error-ex": { 1591 | "version": "1.3.2", 1592 | "dev": true, 1593 | "license": "MIT", 1594 | "dependencies": { 1595 | "is-arrayish": "^0.2.1" 1596 | } 1597 | }, 1598 | "node_modules/error-ex/node_modules/is-arrayish": { 1599 | "version": "0.2.1", 1600 | "dev": true, 1601 | "license": "MIT" 1602 | }, 1603 | "node_modules/escalade": { 1604 | "version": "3.1.1", 1605 | "dev": true, 1606 | "license": "MIT", 1607 | "engines": { 1608 | "node": ">=6" 1609 | } 1610 | }, 1611 | "node_modules/escape-string-regexp": { 1612 | "version": "1.0.5", 1613 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1614 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 1615 | "dev": true, 1616 | "engines": { 1617 | "node": ">=0.8.0" 1618 | } 1619 | }, 1620 | "node_modules/esprima": { 1621 | "version": "4.0.1", 1622 | "dev": true, 1623 | "license": "BSD-2-Clause", 1624 | "bin": { 1625 | "esparse": "bin/esparse.js", 1626 | "esvalidate": "bin/esvalidate.js" 1627 | }, 1628 | "engines": { 1629 | "node": ">=4" 1630 | } 1631 | }, 1632 | "node_modules/execa": { 1633 | "version": "5.1.1", 1634 | "dev": true, 1635 | "license": "MIT", 1636 | "dependencies": { 1637 | "cross-spawn": "^7.0.3", 1638 | "get-stream": "^6.0.0", 1639 | "human-signals": "^2.1.0", 1640 | "is-stream": "^2.0.0", 1641 | "merge-stream": "^2.0.0", 1642 | "npm-run-path": "^4.0.1", 1643 | "onetime": "^5.1.2", 1644 | "signal-exit": "^3.0.3", 1645 | "strip-final-newline": "^2.0.0" 1646 | }, 1647 | "engines": { 1648 | "node": ">=10" 1649 | }, 1650 | "funding": { 1651 | "url": "https://github.com/sindresorhus/execa?sponsor=1" 1652 | } 1653 | }, 1654 | "node_modules/exit": { 1655 | "version": "0.1.2", 1656 | "dev": true, 1657 | "engines": { 1658 | "node": ">= 0.8.0" 1659 | } 1660 | }, 1661 | "node_modules/expect": { 1662 | "version": "29.5.0", 1663 | "dev": true, 1664 | "license": "MIT", 1665 | "dependencies": { 1666 | "@jest/expect-utils": "^29.5.0", 1667 | "jest-get-type": "^29.4.3", 1668 | "jest-matcher-utils": "^29.5.0", 1669 | "jest-message-util": "^29.5.0", 1670 | "jest-util": "^29.5.0" 1671 | }, 1672 | "engines": { 1673 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 1674 | } 1675 | }, 1676 | "node_modules/fast-glob": { 1677 | "version": "3.2.12", 1678 | "dev": true, 1679 | "license": "MIT", 1680 | "dependencies": { 1681 | "@nodelib/fs.stat": "^2.0.2", 1682 | "@nodelib/fs.walk": "^1.2.3", 1683 | "glob-parent": "^5.1.2", 1684 | "merge2": "^1.3.0", 1685 | "micromatch": "^4.0.4" 1686 | }, 1687 | "engines": { 1688 | "node": ">=8.6.0" 1689 | } 1690 | }, 1691 | "node_modules/fast-json-stable-stringify": { 1692 | "version": "2.1.0", 1693 | "dev": true, 1694 | "license": "MIT" 1695 | }, 1696 | "node_modules/fastq": { 1697 | "version": "1.13.0", 1698 | "dev": true, 1699 | "license": "ISC", 1700 | "dependencies": { 1701 | "reusify": "^1.0.4" 1702 | } 1703 | }, 1704 | "node_modules/fb-watchman": { 1705 | "version": "2.0.1", 1706 | "dev": true, 1707 | "license": "Apache-2.0", 1708 | "dependencies": { 1709 | "bser": "2.1.1" 1710 | } 1711 | }, 1712 | "node_modules/fill-range": { 1713 | "version": "7.0.1", 1714 | "dev": true, 1715 | "license": "MIT", 1716 | "dependencies": { 1717 | "to-regex-range": "^5.0.1" 1718 | }, 1719 | "engines": { 1720 | "node": ">=8" 1721 | } 1722 | }, 1723 | "node_modules/find-up": { 1724 | "version": "4.1.0", 1725 | "dev": true, 1726 | "license": "MIT", 1727 | "dependencies": { 1728 | "locate-path": "^5.0.0", 1729 | "path-exists": "^4.0.0" 1730 | }, 1731 | "engines": { 1732 | "node": ">=8" 1733 | } 1734 | }, 1735 | "node_modules/fs.realpath": { 1736 | "version": "1.0.0", 1737 | "dev": true, 1738 | "license": "ISC" 1739 | }, 1740 | "node_modules/fsevents": { 1741 | "version": "2.3.2", 1742 | "dev": true, 1743 | "license": "MIT", 1744 | "optional": true, 1745 | "os": [ 1746 | "darwin" 1747 | ], 1748 | "engines": { 1749 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1750 | } 1751 | }, 1752 | "node_modules/function-bind": { 1753 | "version": "1.1.1", 1754 | "dev": true, 1755 | "license": "MIT" 1756 | }, 1757 | "node_modules/gensync": { 1758 | "version": "1.0.0-beta.2", 1759 | "dev": true, 1760 | "license": "MIT", 1761 | "engines": { 1762 | "node": ">=6.9.0" 1763 | } 1764 | }, 1765 | "node_modules/get-caller-file": { 1766 | "version": "2.0.5", 1767 | "dev": true, 1768 | "license": "ISC", 1769 | "engines": { 1770 | "node": "6.* || 8.* || >= 10.*" 1771 | } 1772 | }, 1773 | "node_modules/get-package-type": { 1774 | "version": "0.1.0", 1775 | "dev": true, 1776 | "license": "MIT", 1777 | "engines": { 1778 | "node": ">=8.0.0" 1779 | } 1780 | }, 1781 | "node_modules/get-stream": { 1782 | "version": "6.0.1", 1783 | "dev": true, 1784 | "license": "MIT", 1785 | "engines": { 1786 | "node": ">=10" 1787 | }, 1788 | "funding": { 1789 | "url": "https://github.com/sponsors/sindresorhus" 1790 | } 1791 | }, 1792 | "node_modules/glob": { 1793 | "version": "7.1.6", 1794 | "dev": true, 1795 | "license": "ISC", 1796 | "dependencies": { 1797 | "fs.realpath": "^1.0.0", 1798 | "inflight": "^1.0.4", 1799 | "inherits": "2", 1800 | "minimatch": "^3.0.4", 1801 | "once": "^1.3.0", 1802 | "path-is-absolute": "^1.0.0" 1803 | }, 1804 | "engines": { 1805 | "node": "*" 1806 | }, 1807 | "funding": { 1808 | "url": "https://github.com/sponsors/isaacs" 1809 | } 1810 | }, 1811 | "node_modules/glob-parent": { 1812 | "version": "5.1.2", 1813 | "dev": true, 1814 | "license": "ISC", 1815 | "dependencies": { 1816 | "is-glob": "^4.0.1" 1817 | }, 1818 | "engines": { 1819 | "node": ">= 6" 1820 | } 1821 | }, 1822 | "node_modules/globals": { 1823 | "version": "11.12.0", 1824 | "dev": true, 1825 | "license": "MIT", 1826 | "engines": { 1827 | "node": ">=4" 1828 | } 1829 | }, 1830 | "node_modules/graceful-fs": { 1831 | "version": "4.2.10", 1832 | "dev": true, 1833 | "license": "ISC" 1834 | }, 1835 | "node_modules/has": { 1836 | "version": "1.0.3", 1837 | "dev": true, 1838 | "license": "MIT", 1839 | "dependencies": { 1840 | "function-bind": "^1.1.1" 1841 | }, 1842 | "engines": { 1843 | "node": ">= 0.4.0" 1844 | } 1845 | }, 1846 | "node_modules/has-flag": { 1847 | "version": "4.0.0", 1848 | "dev": true, 1849 | "license": "MIT", 1850 | "engines": { 1851 | "node": ">=8" 1852 | } 1853 | }, 1854 | "node_modules/html-escaper": { 1855 | "version": "2.0.2", 1856 | "dev": true, 1857 | "license": "MIT" 1858 | }, 1859 | "node_modules/human-signals": { 1860 | "version": "2.1.0", 1861 | "dev": true, 1862 | "license": "Apache-2.0", 1863 | "engines": { 1864 | "node": ">=10.17.0" 1865 | } 1866 | }, 1867 | "node_modules/import-local": { 1868 | "version": "3.0.2", 1869 | "dev": true, 1870 | "license": "MIT", 1871 | "dependencies": { 1872 | "pkg-dir": "^4.2.0", 1873 | "resolve-cwd": "^3.0.0" 1874 | }, 1875 | "bin": { 1876 | "import-local-fixture": "fixtures/cli.js" 1877 | }, 1878 | "engines": { 1879 | "node": ">=8" 1880 | } 1881 | }, 1882 | "node_modules/imurmurhash": { 1883 | "version": "0.1.4", 1884 | "dev": true, 1885 | "license": "MIT", 1886 | "engines": { 1887 | "node": ">=0.8.19" 1888 | } 1889 | }, 1890 | "node_modules/inflight": { 1891 | "version": "1.0.6", 1892 | "dev": true, 1893 | "license": "ISC", 1894 | "dependencies": { 1895 | "once": "^1.3.0", 1896 | "wrappy": "1" 1897 | } 1898 | }, 1899 | "node_modules/inherits": { 1900 | "version": "2.0.4", 1901 | "dev": true, 1902 | "license": "ISC" 1903 | }, 1904 | "node_modules/is-binary-path": { 1905 | "version": "2.1.0", 1906 | "dev": true, 1907 | "license": "MIT", 1908 | "dependencies": { 1909 | "binary-extensions": "^2.0.0" 1910 | }, 1911 | "engines": { 1912 | "node": ">=8" 1913 | } 1914 | }, 1915 | "node_modules/is-core-module": { 1916 | "version": "2.12.0", 1917 | "dev": true, 1918 | "license": "MIT", 1919 | "dependencies": { 1920 | "has": "^1.0.3" 1921 | }, 1922 | "funding": { 1923 | "url": "https://github.com/sponsors/ljharb" 1924 | } 1925 | }, 1926 | "node_modules/is-extglob": { 1927 | "version": "2.1.1", 1928 | "dev": true, 1929 | "license": "MIT", 1930 | "engines": { 1931 | "node": ">=0.10.0" 1932 | } 1933 | }, 1934 | "node_modules/is-fullwidth-code-point": { 1935 | "version": "3.0.0", 1936 | "dev": true, 1937 | "license": "MIT", 1938 | "engines": { 1939 | "node": ">=8" 1940 | } 1941 | }, 1942 | "node_modules/is-generator-fn": { 1943 | "version": "2.1.0", 1944 | "dev": true, 1945 | "license": "MIT", 1946 | "engines": { 1947 | "node": ">=6" 1948 | } 1949 | }, 1950 | "node_modules/is-glob": { 1951 | "version": "4.0.3", 1952 | "dev": true, 1953 | "license": "MIT", 1954 | "dependencies": { 1955 | "is-extglob": "^2.1.1" 1956 | }, 1957 | "engines": { 1958 | "node": ">=0.10.0" 1959 | } 1960 | }, 1961 | "node_modules/is-number": { 1962 | "version": "7.0.0", 1963 | "dev": true, 1964 | "license": "MIT", 1965 | "engines": { 1966 | "node": ">=0.12.0" 1967 | } 1968 | }, 1969 | "node_modules/is-stream": { 1970 | "version": "2.0.0", 1971 | "dev": true, 1972 | "license": "MIT", 1973 | "engines": { 1974 | "node": ">=8" 1975 | } 1976 | }, 1977 | "node_modules/isexe": { 1978 | "version": "2.0.0", 1979 | "dev": true, 1980 | "license": "ISC" 1981 | }, 1982 | "node_modules/istanbul-lib-coverage": { 1983 | "version": "3.0.0", 1984 | "dev": true, 1985 | "license": "BSD-3-Clause", 1986 | "engines": { 1987 | "node": ">=8" 1988 | } 1989 | }, 1990 | "node_modules/istanbul-lib-instrument": { 1991 | "version": "5.1.0", 1992 | "dev": true, 1993 | "license": "BSD-3-Clause", 1994 | "dependencies": { 1995 | "@babel/core": "^7.12.3", 1996 | "@babel/parser": "^7.14.7", 1997 | "@istanbuljs/schema": "^0.1.2", 1998 | "istanbul-lib-coverage": "^3.2.0", 1999 | "semver": "^6.3.0" 2000 | }, 2001 | "engines": { 2002 | "node": ">=8" 2003 | } 2004 | }, 2005 | "node_modules/istanbul-lib-instrument/node_modules/@ampproject/remapping": { 2006 | "version": "2.1.2", 2007 | "dev": true, 2008 | "license": "Apache-2.0", 2009 | "dependencies": { 2010 | "@jridgewell/trace-mapping": "^0.3.0" 2011 | }, 2012 | "engines": { 2013 | "node": ">=6.0.0" 2014 | } 2015 | }, 2016 | "node_modules/istanbul-lib-instrument/node_modules/@babel/compat-data": { 2017 | "version": "7.17.7", 2018 | "dev": true, 2019 | "license": "MIT", 2020 | "engines": { 2021 | "node": ">=6.9.0" 2022 | } 2023 | }, 2024 | "node_modules/istanbul-lib-instrument/node_modules/@babel/core": { 2025 | "version": "7.17.9", 2026 | "dev": true, 2027 | "license": "MIT", 2028 | "dependencies": { 2029 | "@ampproject/remapping": "^2.1.0", 2030 | "@babel/code-frame": "^7.16.7", 2031 | "@babel/generator": "^7.17.9", 2032 | "@babel/helper-compilation-targets": "^7.17.7", 2033 | "@babel/helper-module-transforms": "^7.17.7", 2034 | "@babel/helpers": "^7.17.9", 2035 | "@babel/parser": "^7.17.9", 2036 | "@babel/template": "^7.16.7", 2037 | "@babel/traverse": "^7.17.9", 2038 | "@babel/types": "^7.17.0", 2039 | "convert-source-map": "^1.7.0", 2040 | "debug": "^4.1.0", 2041 | "gensync": "^1.0.0-beta.2", 2042 | "json5": "^2.2.1", 2043 | "semver": "^6.3.0" 2044 | }, 2045 | "engines": { 2046 | "node": ">=6.9.0" 2047 | }, 2048 | "funding": { 2049 | "type": "opencollective", 2050 | "url": "https://opencollective.com/babel" 2051 | } 2052 | }, 2053 | "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-compilation-targets": { 2054 | "version": "7.17.7", 2055 | "dev": true, 2056 | "license": "MIT", 2057 | "dependencies": { 2058 | "@babel/compat-data": "^7.17.7", 2059 | "@babel/helper-validator-option": "^7.16.7", 2060 | "browserslist": "^4.17.5", 2061 | "semver": "^6.3.0" 2062 | }, 2063 | "engines": { 2064 | "node": ">=6.9.0" 2065 | }, 2066 | "peerDependencies": { 2067 | "@babel/core": "^7.0.0" 2068 | } 2069 | }, 2070 | "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-module-imports": { 2071 | "version": "7.16.7", 2072 | "dev": true, 2073 | "license": "MIT", 2074 | "dependencies": { 2075 | "@babel/types": "^7.16.7" 2076 | }, 2077 | "engines": { 2078 | "node": ">=6.9.0" 2079 | } 2080 | }, 2081 | "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-module-transforms": { 2082 | "version": "7.17.7", 2083 | "dev": true, 2084 | "license": "MIT", 2085 | "dependencies": { 2086 | "@babel/helper-environment-visitor": "^7.16.7", 2087 | "@babel/helper-module-imports": "^7.16.7", 2088 | "@babel/helper-simple-access": "^7.17.7", 2089 | "@babel/helper-split-export-declaration": "^7.16.7", 2090 | "@babel/helper-validator-identifier": "^7.16.7", 2091 | "@babel/template": "^7.16.7", 2092 | "@babel/traverse": "^7.17.3", 2093 | "@babel/types": "^7.17.0" 2094 | }, 2095 | "engines": { 2096 | "node": ">=6.9.0" 2097 | } 2098 | }, 2099 | "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-simple-access": { 2100 | "version": "7.17.7", 2101 | "dev": true, 2102 | "license": "MIT", 2103 | "dependencies": { 2104 | "@babel/types": "^7.17.0" 2105 | }, 2106 | "engines": { 2107 | "node": ">=6.9.0" 2108 | } 2109 | }, 2110 | "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-validator-option": { 2111 | "version": "7.16.7", 2112 | "dev": true, 2113 | "license": "MIT", 2114 | "engines": { 2115 | "node": ">=6.9.0" 2116 | } 2117 | }, 2118 | "node_modules/istanbul-lib-instrument/node_modules/@babel/helpers": { 2119 | "version": "7.17.9", 2120 | "dev": true, 2121 | "license": "MIT", 2122 | "dependencies": { 2123 | "@babel/template": "^7.16.7", 2124 | "@babel/traverse": "^7.17.9", 2125 | "@babel/types": "^7.17.0" 2126 | }, 2127 | "engines": { 2128 | "node": ">=6.9.0" 2129 | } 2130 | }, 2131 | "node_modules/istanbul-lib-instrument/node_modules/browserslist": { 2132 | "version": "4.20.2", 2133 | "dev": true, 2134 | "funding": [ 2135 | { 2136 | "type": "opencollective", 2137 | "url": "https://opencollective.com/browserslist" 2138 | }, 2139 | { 2140 | "type": "tidelift", 2141 | "url": "https://tidelift.com/funding/github/npm/browserslist" 2142 | } 2143 | ], 2144 | "license": "MIT", 2145 | "dependencies": { 2146 | "caniuse-lite": "^1.0.30001317", 2147 | "electron-to-chromium": "^1.4.84", 2148 | "escalade": "^3.1.1", 2149 | "node-releases": "^2.0.2", 2150 | "picocolors": "^1.0.0" 2151 | }, 2152 | "bin": { 2153 | "browserslist": "cli.js" 2154 | }, 2155 | "engines": { 2156 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 2157 | } 2158 | }, 2159 | "node_modules/istanbul-lib-instrument/node_modules/caniuse-lite": { 2160 | "version": "1.0.30001327", 2161 | "dev": true, 2162 | "funding": [ 2163 | { 2164 | "type": "opencollective", 2165 | "url": "https://opencollective.com/browserslist" 2166 | }, 2167 | { 2168 | "type": "tidelift", 2169 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 2170 | } 2171 | ], 2172 | "license": "CC-BY-4.0" 2173 | }, 2174 | "node_modules/istanbul-lib-instrument/node_modules/electron-to-chromium": { 2175 | "version": "1.4.106", 2176 | "dev": true, 2177 | "license": "ISC" 2178 | }, 2179 | "node_modules/istanbul-lib-instrument/node_modules/istanbul-lib-coverage": { 2180 | "version": "3.2.0", 2181 | "dev": true, 2182 | "license": "BSD-3-Clause", 2183 | "engines": { 2184 | "node": ">=8" 2185 | } 2186 | }, 2187 | "node_modules/istanbul-lib-instrument/node_modules/node-releases": { 2188 | "version": "2.0.2", 2189 | "dev": true, 2190 | "license": "MIT" 2191 | }, 2192 | "node_modules/istanbul-lib-report": { 2193 | "version": "3.0.0", 2194 | "dev": true, 2195 | "license": "BSD-3-Clause", 2196 | "dependencies": { 2197 | "istanbul-lib-coverage": "^3.0.0", 2198 | "make-dir": "^3.0.0", 2199 | "supports-color": "^7.1.0" 2200 | }, 2201 | "engines": { 2202 | "node": ">=8" 2203 | } 2204 | }, 2205 | "node_modules/istanbul-lib-source-maps": { 2206 | "version": "4.0.0", 2207 | "dev": true, 2208 | "license": "BSD-3-Clause", 2209 | "dependencies": { 2210 | "debug": "^4.1.1", 2211 | "istanbul-lib-coverage": "^3.0.0", 2212 | "source-map": "^0.6.1" 2213 | }, 2214 | "engines": { 2215 | "node": ">=8" 2216 | } 2217 | }, 2218 | "node_modules/istanbul-reports": { 2219 | "version": "3.1.4", 2220 | "dev": true, 2221 | "license": "BSD-3-Clause", 2222 | "dependencies": { 2223 | "html-escaper": "^2.0.0", 2224 | "istanbul-lib-report": "^3.0.0" 2225 | }, 2226 | "engines": { 2227 | "node": ">=8" 2228 | } 2229 | }, 2230 | "node_modules/jest": { 2231 | "version": "29.5.0", 2232 | "dev": true, 2233 | "license": "MIT", 2234 | "dependencies": { 2235 | "@jest/core": "^29.5.0", 2236 | "@jest/types": "^29.5.0", 2237 | "import-local": "^3.0.2", 2238 | "jest-cli": "^29.5.0" 2239 | }, 2240 | "bin": { 2241 | "jest": "bin/jest.js" 2242 | }, 2243 | "engines": { 2244 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2245 | }, 2246 | "peerDependencies": { 2247 | "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" 2248 | }, 2249 | "peerDependenciesMeta": { 2250 | "node-notifier": { 2251 | "optional": true 2252 | } 2253 | } 2254 | }, 2255 | "node_modules/jest-changed-files": { 2256 | "version": "29.5.0", 2257 | "dev": true, 2258 | "license": "MIT", 2259 | "dependencies": { 2260 | "execa": "^5.0.0", 2261 | "p-limit": "^3.1.0" 2262 | }, 2263 | "engines": { 2264 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2265 | } 2266 | }, 2267 | "node_modules/jest-circus": { 2268 | "version": "29.5.0", 2269 | "dev": true, 2270 | "license": "MIT", 2271 | "dependencies": { 2272 | "@jest/environment": "^29.5.0", 2273 | "@jest/expect": "^29.5.0", 2274 | "@jest/test-result": "^29.5.0", 2275 | "@jest/types": "^29.5.0", 2276 | "@types/node": "*", 2277 | "chalk": "^4.0.0", 2278 | "co": "^4.6.0", 2279 | "dedent": "^0.7.0", 2280 | "is-generator-fn": "^2.0.0", 2281 | "jest-each": "^29.5.0", 2282 | "jest-matcher-utils": "^29.5.0", 2283 | "jest-message-util": "^29.5.0", 2284 | "jest-runtime": "^29.5.0", 2285 | "jest-snapshot": "^29.5.0", 2286 | "jest-util": "^29.5.0", 2287 | "p-limit": "^3.1.0", 2288 | "pretty-format": "^29.5.0", 2289 | "pure-rand": "^6.0.0", 2290 | "slash": "^3.0.0", 2291 | "stack-utils": "^2.0.3" 2292 | }, 2293 | "engines": { 2294 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2295 | } 2296 | }, 2297 | "node_modules/jest-cli": { 2298 | "version": "29.5.0", 2299 | "dev": true, 2300 | "license": "MIT", 2301 | "dependencies": { 2302 | "@jest/core": "^29.5.0", 2303 | "@jest/test-result": "^29.5.0", 2304 | "@jest/types": "^29.5.0", 2305 | "chalk": "^4.0.0", 2306 | "exit": "^0.1.2", 2307 | "graceful-fs": "^4.2.9", 2308 | "import-local": "^3.0.2", 2309 | "jest-config": "^29.5.0", 2310 | "jest-util": "^29.5.0", 2311 | "jest-validate": "^29.5.0", 2312 | "prompts": "^2.0.1", 2313 | "yargs": "^17.3.1" 2314 | }, 2315 | "bin": { 2316 | "jest": "bin/jest.js" 2317 | }, 2318 | "engines": { 2319 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2320 | }, 2321 | "peerDependencies": { 2322 | "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" 2323 | }, 2324 | "peerDependenciesMeta": { 2325 | "node-notifier": { 2326 | "optional": true 2327 | } 2328 | } 2329 | }, 2330 | "node_modules/jest-config": { 2331 | "version": "29.5.0", 2332 | "dev": true, 2333 | "license": "MIT", 2334 | "dependencies": { 2335 | "@babel/core": "^7.11.6", 2336 | "@jest/test-sequencer": "^29.5.0", 2337 | "@jest/types": "^29.5.0", 2338 | "babel-jest": "^29.5.0", 2339 | "chalk": "^4.0.0", 2340 | "ci-info": "^3.2.0", 2341 | "deepmerge": "^4.2.2", 2342 | "glob": "^7.1.3", 2343 | "graceful-fs": "^4.2.9", 2344 | "jest-circus": "^29.5.0", 2345 | "jest-environment-node": "^29.5.0", 2346 | "jest-get-type": "^29.4.3", 2347 | "jest-regex-util": "^29.4.3", 2348 | "jest-resolve": "^29.5.0", 2349 | "jest-runner": "^29.5.0", 2350 | "jest-util": "^29.5.0", 2351 | "jest-validate": "^29.5.0", 2352 | "micromatch": "^4.0.4", 2353 | "parse-json": "^5.2.0", 2354 | "pretty-format": "^29.5.0", 2355 | "slash": "^3.0.0", 2356 | "strip-json-comments": "^3.1.1" 2357 | }, 2358 | "engines": { 2359 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2360 | }, 2361 | "peerDependencies": { 2362 | "@types/node": "*", 2363 | "ts-node": ">=9.0.0" 2364 | }, 2365 | "peerDependenciesMeta": { 2366 | "@types/node": { 2367 | "optional": true 2368 | }, 2369 | "ts-node": { 2370 | "optional": true 2371 | } 2372 | } 2373 | }, 2374 | "node_modules/jest-diff": { 2375 | "version": "29.5.0", 2376 | "dev": true, 2377 | "license": "MIT", 2378 | "dependencies": { 2379 | "chalk": "^4.0.0", 2380 | "diff-sequences": "^29.4.3", 2381 | "jest-get-type": "^29.4.3", 2382 | "pretty-format": "^29.5.0" 2383 | }, 2384 | "engines": { 2385 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2386 | } 2387 | }, 2388 | "node_modules/jest-docblock": { 2389 | "version": "29.4.3", 2390 | "dev": true, 2391 | "license": "MIT", 2392 | "dependencies": { 2393 | "detect-newline": "^3.0.0" 2394 | }, 2395 | "engines": { 2396 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2397 | } 2398 | }, 2399 | "node_modules/jest-each": { 2400 | "version": "29.5.0", 2401 | "dev": true, 2402 | "license": "MIT", 2403 | "dependencies": { 2404 | "@jest/types": "^29.5.0", 2405 | "chalk": "^4.0.0", 2406 | "jest-get-type": "^29.4.3", 2407 | "jest-util": "^29.5.0", 2408 | "pretty-format": "^29.5.0" 2409 | }, 2410 | "engines": { 2411 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2412 | } 2413 | }, 2414 | "node_modules/jest-environment-node": { 2415 | "version": "29.5.0", 2416 | "dev": true, 2417 | "license": "MIT", 2418 | "dependencies": { 2419 | "@jest/environment": "^29.5.0", 2420 | "@jest/fake-timers": "^29.5.0", 2421 | "@jest/types": "^29.5.0", 2422 | "@types/node": "*", 2423 | "jest-mock": "^29.5.0", 2424 | "jest-util": "^29.5.0" 2425 | }, 2426 | "engines": { 2427 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2428 | } 2429 | }, 2430 | "node_modules/jest-get-type": { 2431 | "version": "29.4.3", 2432 | "dev": true, 2433 | "license": "MIT", 2434 | "engines": { 2435 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2436 | } 2437 | }, 2438 | "node_modules/jest-haste-map": { 2439 | "version": "29.5.0", 2440 | "dev": true, 2441 | "license": "MIT", 2442 | "dependencies": { 2443 | "@jest/types": "^29.5.0", 2444 | "@types/graceful-fs": "^4.1.3", 2445 | "@types/node": "*", 2446 | "anymatch": "^3.0.3", 2447 | "fb-watchman": "^2.0.0", 2448 | "graceful-fs": "^4.2.9", 2449 | "jest-regex-util": "^29.4.3", 2450 | "jest-util": "^29.5.0", 2451 | "jest-worker": "^29.5.0", 2452 | "micromatch": "^4.0.4", 2453 | "walker": "^1.0.8" 2454 | }, 2455 | "engines": { 2456 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2457 | }, 2458 | "optionalDependencies": { 2459 | "fsevents": "^2.3.2" 2460 | } 2461 | }, 2462 | "node_modules/jest-haste-map/node_modules/anymatch": { 2463 | "version": "3.1.1", 2464 | "dev": true, 2465 | "license": "ISC", 2466 | "dependencies": { 2467 | "normalize-path": "^3.0.0", 2468 | "picomatch": "^2.0.4" 2469 | }, 2470 | "engines": { 2471 | "node": ">= 8" 2472 | } 2473 | }, 2474 | "node_modules/jest-haste-map/node_modules/picomatch": { 2475 | "version": "2.2.2", 2476 | "dev": true, 2477 | "license": "MIT", 2478 | "engines": { 2479 | "node": ">=8.6" 2480 | }, 2481 | "funding": { 2482 | "url": "https://github.com/sponsors/jonschlinkert" 2483 | } 2484 | }, 2485 | "node_modules/jest-leak-detector": { 2486 | "version": "29.5.0", 2487 | "dev": true, 2488 | "license": "MIT", 2489 | "dependencies": { 2490 | "jest-get-type": "^29.4.3", 2491 | "pretty-format": "^29.5.0" 2492 | }, 2493 | "engines": { 2494 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2495 | } 2496 | }, 2497 | "node_modules/jest-matcher-css": { 2498 | "version": "1.1.0", 2499 | "dev": true, 2500 | "license": "ISC" 2501 | }, 2502 | "node_modules/jest-matcher-utils": { 2503 | "version": "29.5.0", 2504 | "dev": true, 2505 | "license": "MIT", 2506 | "dependencies": { 2507 | "chalk": "^4.0.0", 2508 | "jest-diff": "^29.5.0", 2509 | "jest-get-type": "^29.4.3", 2510 | "pretty-format": "^29.5.0" 2511 | }, 2512 | "engines": { 2513 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2514 | } 2515 | }, 2516 | "node_modules/jest-message-util": { 2517 | "version": "29.5.0", 2518 | "dev": true, 2519 | "license": "MIT", 2520 | "dependencies": { 2521 | "@babel/code-frame": "^7.12.13", 2522 | "@jest/types": "^29.5.0", 2523 | "@types/stack-utils": "^2.0.0", 2524 | "chalk": "^4.0.0", 2525 | "graceful-fs": "^4.2.9", 2526 | "micromatch": "^4.0.4", 2527 | "pretty-format": "^29.5.0", 2528 | "slash": "^3.0.0", 2529 | "stack-utils": "^2.0.3" 2530 | }, 2531 | "engines": { 2532 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2533 | } 2534 | }, 2535 | "node_modules/jest-mock": { 2536 | "version": "29.5.0", 2537 | "dev": true, 2538 | "license": "MIT", 2539 | "dependencies": { 2540 | "@jest/types": "^29.5.0", 2541 | "@types/node": "*", 2542 | "jest-util": "^29.5.0" 2543 | }, 2544 | "engines": { 2545 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2546 | } 2547 | }, 2548 | "node_modules/jest-pnp-resolver": { 2549 | "version": "1.2.2", 2550 | "dev": true, 2551 | "license": "MIT", 2552 | "engines": { 2553 | "node": ">=6" 2554 | }, 2555 | "peerDependencies": { 2556 | "jest-resolve": "*" 2557 | }, 2558 | "peerDependenciesMeta": { 2559 | "jest-resolve": { 2560 | "optional": true 2561 | } 2562 | } 2563 | }, 2564 | "node_modules/jest-regex-util": { 2565 | "version": "29.4.3", 2566 | "dev": true, 2567 | "license": "MIT", 2568 | "engines": { 2569 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2570 | } 2571 | }, 2572 | "node_modules/jest-resolve": { 2573 | "version": "29.5.0", 2574 | "dev": true, 2575 | "license": "MIT", 2576 | "dependencies": { 2577 | "chalk": "^4.0.0", 2578 | "graceful-fs": "^4.2.9", 2579 | "jest-haste-map": "^29.5.0", 2580 | "jest-pnp-resolver": "^1.2.2", 2581 | "jest-util": "^29.5.0", 2582 | "jest-validate": "^29.5.0", 2583 | "resolve": "^1.20.0", 2584 | "resolve.exports": "^2.0.0", 2585 | "slash": "^3.0.0" 2586 | }, 2587 | "engines": { 2588 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2589 | } 2590 | }, 2591 | "node_modules/jest-resolve-dependencies": { 2592 | "version": "29.5.0", 2593 | "dev": true, 2594 | "license": "MIT", 2595 | "dependencies": { 2596 | "jest-regex-util": "^29.4.3", 2597 | "jest-snapshot": "^29.5.0" 2598 | }, 2599 | "engines": { 2600 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2601 | } 2602 | }, 2603 | "node_modules/jest-resolve/node_modules/is-core-module": { 2604 | "version": "2.8.1", 2605 | "dev": true, 2606 | "license": "MIT", 2607 | "dependencies": { 2608 | "has": "^1.0.3" 2609 | }, 2610 | "funding": { 2611 | "url": "https://github.com/sponsors/ljharb" 2612 | } 2613 | }, 2614 | "node_modules/jest-resolve/node_modules/resolve": { 2615 | "version": "1.22.0", 2616 | "dev": true, 2617 | "license": "MIT", 2618 | "dependencies": { 2619 | "is-core-module": "^2.8.1", 2620 | "path-parse": "^1.0.7", 2621 | "supports-preserve-symlinks-flag": "^1.0.0" 2622 | }, 2623 | "bin": { 2624 | "resolve": "bin/resolve" 2625 | }, 2626 | "funding": { 2627 | "url": "https://github.com/sponsors/ljharb" 2628 | } 2629 | }, 2630 | "node_modules/jest-runner": { 2631 | "version": "29.5.0", 2632 | "dev": true, 2633 | "license": "MIT", 2634 | "dependencies": { 2635 | "@jest/console": "^29.5.0", 2636 | "@jest/environment": "^29.5.0", 2637 | "@jest/test-result": "^29.5.0", 2638 | "@jest/transform": "^29.5.0", 2639 | "@jest/types": "^29.5.0", 2640 | "@types/node": "*", 2641 | "chalk": "^4.0.0", 2642 | "emittery": "^0.13.1", 2643 | "graceful-fs": "^4.2.9", 2644 | "jest-docblock": "^29.4.3", 2645 | "jest-environment-node": "^29.5.0", 2646 | "jest-haste-map": "^29.5.0", 2647 | "jest-leak-detector": "^29.5.0", 2648 | "jest-message-util": "^29.5.0", 2649 | "jest-resolve": "^29.5.0", 2650 | "jest-runtime": "^29.5.0", 2651 | "jest-util": "^29.5.0", 2652 | "jest-watcher": "^29.5.0", 2653 | "jest-worker": "^29.5.0", 2654 | "p-limit": "^3.1.0", 2655 | "source-map-support": "0.5.13" 2656 | }, 2657 | "engines": { 2658 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2659 | } 2660 | }, 2661 | "node_modules/jest-runtime": { 2662 | "version": "29.5.0", 2663 | "dev": true, 2664 | "license": "MIT", 2665 | "dependencies": { 2666 | "@jest/environment": "^29.5.0", 2667 | "@jest/fake-timers": "^29.5.0", 2668 | "@jest/globals": "^29.5.0", 2669 | "@jest/source-map": "^29.4.3", 2670 | "@jest/test-result": "^29.5.0", 2671 | "@jest/transform": "^29.5.0", 2672 | "@jest/types": "^29.5.0", 2673 | "@types/node": "*", 2674 | "chalk": "^4.0.0", 2675 | "cjs-module-lexer": "^1.0.0", 2676 | "collect-v8-coverage": "^1.0.0", 2677 | "glob": "^7.1.3", 2678 | "graceful-fs": "^4.2.9", 2679 | "jest-haste-map": "^29.5.0", 2680 | "jest-message-util": "^29.5.0", 2681 | "jest-mock": "^29.5.0", 2682 | "jest-regex-util": "^29.4.3", 2683 | "jest-resolve": "^29.5.0", 2684 | "jest-snapshot": "^29.5.0", 2685 | "jest-util": "^29.5.0", 2686 | "slash": "^3.0.0", 2687 | "strip-bom": "^4.0.0" 2688 | }, 2689 | "engines": { 2690 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2691 | } 2692 | }, 2693 | "node_modules/jest-snapshot": { 2694 | "version": "29.5.0", 2695 | "dev": true, 2696 | "license": "MIT", 2697 | "dependencies": { 2698 | "@babel/core": "^7.11.6", 2699 | "@babel/generator": "^7.7.2", 2700 | "@babel/plugin-syntax-jsx": "^7.7.2", 2701 | "@babel/plugin-syntax-typescript": "^7.7.2", 2702 | "@babel/traverse": "^7.7.2", 2703 | "@babel/types": "^7.3.3", 2704 | "@jest/expect-utils": "^29.5.0", 2705 | "@jest/transform": "^29.5.0", 2706 | "@jest/types": "^29.5.0", 2707 | "@types/babel__traverse": "^7.0.6", 2708 | "@types/prettier": "^2.1.5", 2709 | "babel-preset-current-node-syntax": "^1.0.0", 2710 | "chalk": "^4.0.0", 2711 | "expect": "^29.5.0", 2712 | "graceful-fs": "^4.2.9", 2713 | "jest-diff": "^29.5.0", 2714 | "jest-get-type": "^29.4.3", 2715 | "jest-matcher-utils": "^29.5.0", 2716 | "jest-message-util": "^29.5.0", 2717 | "jest-util": "^29.5.0", 2718 | "natural-compare": "^1.4.0", 2719 | "pretty-format": "^29.5.0", 2720 | "semver": "^7.3.5" 2721 | }, 2722 | "engines": { 2723 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2724 | } 2725 | }, 2726 | "node_modules/jest-snapshot/node_modules/lru-cache": { 2727 | "version": "6.0.0", 2728 | "dev": true, 2729 | "license": "ISC", 2730 | "dependencies": { 2731 | "yallist": "^4.0.0" 2732 | }, 2733 | "engines": { 2734 | "node": ">=10" 2735 | } 2736 | }, 2737 | "node_modules/jest-snapshot/node_modules/semver": { 2738 | "version": "7.6.0", 2739 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", 2740 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", 2741 | "dev": true, 2742 | "dependencies": { 2743 | "lru-cache": "^6.0.0" 2744 | }, 2745 | "bin": { 2746 | "semver": "bin/semver.js" 2747 | }, 2748 | "engines": { 2749 | "node": ">=10" 2750 | } 2751 | }, 2752 | "node_modules/jest-snapshot/node_modules/yallist": { 2753 | "version": "4.0.0", 2754 | "dev": true, 2755 | "license": "ISC" 2756 | }, 2757 | "node_modules/jest-util": { 2758 | "version": "29.5.0", 2759 | "dev": true, 2760 | "license": "MIT", 2761 | "dependencies": { 2762 | "@jest/types": "^29.5.0", 2763 | "@types/node": "*", 2764 | "chalk": "^4.0.0", 2765 | "ci-info": "^3.2.0", 2766 | "graceful-fs": "^4.2.9", 2767 | "picomatch": "^2.2.3" 2768 | }, 2769 | "engines": { 2770 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2771 | } 2772 | }, 2773 | "node_modules/jest-validate": { 2774 | "version": "29.5.0", 2775 | "dev": true, 2776 | "license": "MIT", 2777 | "dependencies": { 2778 | "@jest/types": "^29.5.0", 2779 | "camelcase": "^6.2.0", 2780 | "chalk": "^4.0.0", 2781 | "jest-get-type": "^29.4.3", 2782 | "leven": "^3.1.0", 2783 | "pretty-format": "^29.5.0" 2784 | }, 2785 | "engines": { 2786 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2787 | } 2788 | }, 2789 | "node_modules/jest-watcher": { 2790 | "version": "29.5.0", 2791 | "dev": true, 2792 | "license": "MIT", 2793 | "dependencies": { 2794 | "@jest/test-result": "^29.5.0", 2795 | "@jest/types": "^29.5.0", 2796 | "@types/node": "*", 2797 | "ansi-escapes": "^4.2.1", 2798 | "chalk": "^4.0.0", 2799 | "emittery": "^0.13.1", 2800 | "jest-util": "^29.5.0", 2801 | "string-length": "^4.0.1" 2802 | }, 2803 | "engines": { 2804 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2805 | } 2806 | }, 2807 | "node_modules/jest-worker": { 2808 | "version": "29.5.0", 2809 | "dev": true, 2810 | "license": "MIT", 2811 | "dependencies": { 2812 | "@types/node": "*", 2813 | "jest-util": "^29.5.0", 2814 | "merge-stream": "^2.0.0", 2815 | "supports-color": "^8.0.0" 2816 | }, 2817 | "engines": { 2818 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 2819 | } 2820 | }, 2821 | "node_modules/jest-worker/node_modules/supports-color": { 2822 | "version": "8.1.1", 2823 | "dev": true, 2824 | "license": "MIT", 2825 | "dependencies": { 2826 | "has-flag": "^4.0.0" 2827 | }, 2828 | "engines": { 2829 | "node": ">=10" 2830 | }, 2831 | "funding": { 2832 | "url": "https://github.com/chalk/supports-color?sponsor=1" 2833 | } 2834 | }, 2835 | "node_modules/jiti": { 2836 | "version": "1.18.2", 2837 | "dev": true, 2838 | "license": "MIT", 2839 | "bin": { 2840 | "jiti": "bin/jiti.js" 2841 | } 2842 | }, 2843 | "node_modules/js-tokens": { 2844 | "version": "4.0.0", 2845 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2846 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 2847 | "dev": true 2848 | }, 2849 | "node_modules/js-yaml": { 2850 | "version": "3.14.1", 2851 | "dev": true, 2852 | "license": "MIT", 2853 | "dependencies": { 2854 | "argparse": "^1.0.7", 2855 | "esprima": "^4.0.0" 2856 | }, 2857 | "bin": { 2858 | "js-yaml": "bin/js-yaml.js" 2859 | } 2860 | }, 2861 | "node_modules/jsesc": { 2862 | "version": "2.5.2", 2863 | "dev": true, 2864 | "license": "MIT", 2865 | "bin": { 2866 | "jsesc": "bin/jsesc" 2867 | }, 2868 | "engines": { 2869 | "node": ">=4" 2870 | } 2871 | }, 2872 | "node_modules/json-parse-even-better-errors": { 2873 | "version": "2.3.1", 2874 | "dev": true, 2875 | "license": "MIT" 2876 | }, 2877 | "node_modules/json5": { 2878 | "version": "2.2.3", 2879 | "dev": true, 2880 | "license": "MIT", 2881 | "bin": { 2882 | "json5": "lib/cli.js" 2883 | }, 2884 | "engines": { 2885 | "node": ">=6" 2886 | } 2887 | }, 2888 | "node_modules/kleur": { 2889 | "version": "3.0.3", 2890 | "dev": true, 2891 | "license": "MIT", 2892 | "engines": { 2893 | "node": ">=6" 2894 | } 2895 | }, 2896 | "node_modules/leven": { 2897 | "version": "3.1.0", 2898 | "dev": true, 2899 | "license": "MIT", 2900 | "engines": { 2901 | "node": ">=6" 2902 | } 2903 | }, 2904 | "node_modules/lilconfig": { 2905 | "version": "2.1.0", 2906 | "dev": true, 2907 | "license": "MIT", 2908 | "engines": { 2909 | "node": ">=10" 2910 | } 2911 | }, 2912 | "node_modules/lines-and-columns": { 2913 | "version": "1.1.6", 2914 | "dev": true, 2915 | "license": "MIT" 2916 | }, 2917 | "node_modules/locate-path": { 2918 | "version": "5.0.0", 2919 | "dev": true, 2920 | "license": "MIT", 2921 | "dependencies": { 2922 | "p-locate": "^4.1.0" 2923 | }, 2924 | "engines": { 2925 | "node": ">=8" 2926 | } 2927 | }, 2928 | "node_modules/lru-cache": { 2929 | "version": "5.1.1", 2930 | "dev": true, 2931 | "license": "ISC", 2932 | "dependencies": { 2933 | "yallist": "^3.0.2" 2934 | } 2935 | }, 2936 | "node_modules/make-dir": { 2937 | "version": "3.1.0", 2938 | "dev": true, 2939 | "license": "MIT", 2940 | "dependencies": { 2941 | "semver": "^6.0.0" 2942 | }, 2943 | "engines": { 2944 | "node": ">=8" 2945 | }, 2946 | "funding": { 2947 | "url": "https://github.com/sponsors/sindresorhus" 2948 | } 2949 | }, 2950 | "node_modules/makeerror": { 2951 | "version": "1.0.12", 2952 | "dev": true, 2953 | "license": "BSD-3-Clause", 2954 | "dependencies": { 2955 | "tmpl": "1.0.5" 2956 | } 2957 | }, 2958 | "node_modules/merge-stream": { 2959 | "version": "2.0.0", 2960 | "dev": true, 2961 | "license": "MIT" 2962 | }, 2963 | "node_modules/merge2": { 2964 | "version": "1.4.1", 2965 | "dev": true, 2966 | "license": "MIT", 2967 | "engines": { 2968 | "node": ">= 8" 2969 | } 2970 | }, 2971 | "node_modules/micromatch": { 2972 | "version": "4.0.5", 2973 | "dev": true, 2974 | "license": "MIT", 2975 | "dependencies": { 2976 | "braces": "^3.0.2", 2977 | "picomatch": "^2.3.1" 2978 | }, 2979 | "engines": { 2980 | "node": ">=8.6" 2981 | } 2982 | }, 2983 | "node_modules/mimic-fn": { 2984 | "version": "2.1.0", 2985 | "dev": true, 2986 | "license": "MIT", 2987 | "engines": { 2988 | "node": ">=6" 2989 | } 2990 | }, 2991 | "node_modules/minimatch": { 2992 | "version": "3.1.2", 2993 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2994 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2995 | "dev": true, 2996 | "dependencies": { 2997 | "brace-expansion": "^1.1.7" 2998 | }, 2999 | "engines": { 3000 | "node": "*" 3001 | } 3002 | }, 3003 | "node_modules/ms": { 3004 | "version": "2.1.2", 3005 | "dev": true, 3006 | "license": "MIT" 3007 | }, 3008 | "node_modules/mz": { 3009 | "version": "2.7.0", 3010 | "dev": true, 3011 | "license": "MIT", 3012 | "dependencies": { 3013 | "any-promise": "^1.0.0", 3014 | "object-assign": "^4.0.1", 3015 | "thenify-all": "^1.0.0" 3016 | } 3017 | }, 3018 | "node_modules/nanoid": { 3019 | "version": "3.3.7", 3020 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 3021 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 3022 | "dev": true, 3023 | "funding": [ 3024 | { 3025 | "type": "github", 3026 | "url": "https://github.com/sponsors/ai" 3027 | } 3028 | ], 3029 | "bin": { 3030 | "nanoid": "bin/nanoid.cjs" 3031 | }, 3032 | "engines": { 3033 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 3034 | } 3035 | }, 3036 | "node_modules/natural-compare": { 3037 | "version": "1.4.0", 3038 | "dev": true, 3039 | "license": "MIT" 3040 | }, 3041 | "node_modules/node-int64": { 3042 | "version": "0.4.0", 3043 | "dev": true, 3044 | "license": "MIT" 3045 | }, 3046 | "node_modules/node-releases": { 3047 | "version": "2.0.10", 3048 | "dev": true, 3049 | "license": "MIT" 3050 | }, 3051 | "node_modules/normalize-path": { 3052 | "version": "3.0.0", 3053 | "dev": true, 3054 | "license": "MIT", 3055 | "engines": { 3056 | "node": ">=0.10.0" 3057 | } 3058 | }, 3059 | "node_modules/npm-run-path": { 3060 | "version": "4.0.1", 3061 | "dev": true, 3062 | "license": "MIT", 3063 | "dependencies": { 3064 | "path-key": "^3.0.0" 3065 | }, 3066 | "engines": { 3067 | "node": ">=8" 3068 | } 3069 | }, 3070 | "node_modules/object-assign": { 3071 | "version": "4.1.1", 3072 | "dev": true, 3073 | "license": "MIT", 3074 | "engines": { 3075 | "node": ">=0.10.0" 3076 | } 3077 | }, 3078 | "node_modules/object-hash": { 3079 | "version": "3.0.0", 3080 | "dev": true, 3081 | "license": "MIT", 3082 | "engines": { 3083 | "node": ">= 6" 3084 | } 3085 | }, 3086 | "node_modules/once": { 3087 | "version": "1.4.0", 3088 | "dev": true, 3089 | "license": "ISC", 3090 | "dependencies": { 3091 | "wrappy": "1" 3092 | } 3093 | }, 3094 | "node_modules/onetime": { 3095 | "version": "5.1.2", 3096 | "dev": true, 3097 | "license": "MIT", 3098 | "dependencies": { 3099 | "mimic-fn": "^2.1.0" 3100 | }, 3101 | "engines": { 3102 | "node": ">=6" 3103 | }, 3104 | "funding": { 3105 | "url": "https://github.com/sponsors/sindresorhus" 3106 | } 3107 | }, 3108 | "node_modules/p-limit": { 3109 | "version": "3.1.0", 3110 | "dev": true, 3111 | "license": "MIT", 3112 | "dependencies": { 3113 | "yocto-queue": "^0.1.0" 3114 | }, 3115 | "engines": { 3116 | "node": ">=10" 3117 | }, 3118 | "funding": { 3119 | "url": "https://github.com/sponsors/sindresorhus" 3120 | } 3121 | }, 3122 | "node_modules/p-locate": { 3123 | "version": "4.1.0", 3124 | "dev": true, 3125 | "license": "MIT", 3126 | "dependencies": { 3127 | "p-limit": "^2.2.0" 3128 | }, 3129 | "engines": { 3130 | "node": ">=8" 3131 | } 3132 | }, 3133 | "node_modules/p-locate/node_modules/p-limit": { 3134 | "version": "2.3.0", 3135 | "dev": true, 3136 | "license": "MIT", 3137 | "dependencies": { 3138 | "p-try": "^2.0.0" 3139 | }, 3140 | "engines": { 3141 | "node": ">=6" 3142 | }, 3143 | "funding": { 3144 | "url": "https://github.com/sponsors/sindresorhus" 3145 | } 3146 | }, 3147 | "node_modules/p-try": { 3148 | "version": "2.2.0", 3149 | "dev": true, 3150 | "license": "MIT", 3151 | "engines": { 3152 | "node": ">=6" 3153 | } 3154 | }, 3155 | "node_modules/parse-json": { 3156 | "version": "5.2.0", 3157 | "dev": true, 3158 | "license": "MIT", 3159 | "dependencies": { 3160 | "@babel/code-frame": "^7.0.0", 3161 | "error-ex": "^1.3.1", 3162 | "json-parse-even-better-errors": "^2.3.0", 3163 | "lines-and-columns": "^1.1.6" 3164 | }, 3165 | "engines": { 3166 | "node": ">=8" 3167 | }, 3168 | "funding": { 3169 | "url": "https://github.com/sponsors/sindresorhus" 3170 | } 3171 | }, 3172 | "node_modules/path-exists": { 3173 | "version": "4.0.0", 3174 | "dev": true, 3175 | "license": "MIT", 3176 | "engines": { 3177 | "node": ">=8" 3178 | } 3179 | }, 3180 | "node_modules/path-is-absolute": { 3181 | "version": "1.0.1", 3182 | "dev": true, 3183 | "license": "MIT", 3184 | "engines": { 3185 | "node": ">=0.10.0" 3186 | } 3187 | }, 3188 | "node_modules/path-key": { 3189 | "version": "3.1.1", 3190 | "dev": true, 3191 | "license": "MIT", 3192 | "engines": { 3193 | "node": ">=8" 3194 | } 3195 | }, 3196 | "node_modules/path-parse": { 3197 | "version": "1.0.7", 3198 | "dev": true, 3199 | "license": "MIT" 3200 | }, 3201 | "node_modules/picocolors": { 3202 | "version": "1.0.0", 3203 | "dev": true, 3204 | "license": "ISC" 3205 | }, 3206 | "node_modules/picomatch": { 3207 | "version": "2.3.1", 3208 | "dev": true, 3209 | "license": "MIT", 3210 | "engines": { 3211 | "node": ">=8.6" 3212 | }, 3213 | "funding": { 3214 | "url": "https://github.com/sponsors/jonschlinkert" 3215 | } 3216 | }, 3217 | "node_modules/pify": { 3218 | "version": "2.3.0", 3219 | "dev": true, 3220 | "license": "MIT", 3221 | "engines": { 3222 | "node": ">=0.10.0" 3223 | } 3224 | }, 3225 | "node_modules/pirates": { 3226 | "version": "4.0.5", 3227 | "dev": true, 3228 | "license": "MIT", 3229 | "engines": { 3230 | "node": ">= 6" 3231 | } 3232 | }, 3233 | "node_modules/pkg-dir": { 3234 | "version": "4.2.0", 3235 | "dev": true, 3236 | "license": "MIT", 3237 | "dependencies": { 3238 | "find-up": "^4.0.0" 3239 | }, 3240 | "engines": { 3241 | "node": ">=8" 3242 | } 3243 | }, 3244 | "node_modules/postcss": { 3245 | "version": "8.4.38", 3246 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", 3247 | "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", 3248 | "dev": true, 3249 | "funding": [ 3250 | { 3251 | "type": "opencollective", 3252 | "url": "https://opencollective.com/postcss/" 3253 | }, 3254 | { 3255 | "type": "tidelift", 3256 | "url": "https://tidelift.com/funding/github/npm/postcss" 3257 | }, 3258 | { 3259 | "type": "github", 3260 | "url": "https://github.com/sponsors/ai" 3261 | } 3262 | ], 3263 | "dependencies": { 3264 | "nanoid": "^3.3.7", 3265 | "picocolors": "^1.0.0", 3266 | "source-map-js": "^1.2.0" 3267 | }, 3268 | "engines": { 3269 | "node": "^10 || ^12 || >=14" 3270 | } 3271 | }, 3272 | "node_modules/postcss-import": { 3273 | "version": "14.1.0", 3274 | "dev": true, 3275 | "license": "MIT", 3276 | "dependencies": { 3277 | "postcss-value-parser": "^4.0.0", 3278 | "read-cache": "^1.0.0", 3279 | "resolve": "^1.1.7" 3280 | }, 3281 | "engines": { 3282 | "node": ">=10.0.0" 3283 | }, 3284 | "peerDependencies": { 3285 | "postcss": "^8.0.0" 3286 | } 3287 | }, 3288 | "node_modules/postcss-js": { 3289 | "version": "4.0.0", 3290 | "dev": true, 3291 | "license": "MIT", 3292 | "dependencies": { 3293 | "camelcase-css": "^2.0.1" 3294 | }, 3295 | "engines": { 3296 | "node": "^12 || ^14 || >= 16" 3297 | }, 3298 | "funding": { 3299 | "type": "opencollective", 3300 | "url": "https://opencollective.com/postcss/" 3301 | }, 3302 | "peerDependencies": { 3303 | "postcss": "^8.3.3" 3304 | } 3305 | }, 3306 | "node_modules/postcss-load-config": { 3307 | "version": "3.1.4", 3308 | "dev": true, 3309 | "license": "MIT", 3310 | "dependencies": { 3311 | "lilconfig": "^2.0.5", 3312 | "yaml": "^1.10.2" 3313 | }, 3314 | "engines": { 3315 | "node": ">= 10" 3316 | }, 3317 | "funding": { 3318 | "type": "opencollective", 3319 | "url": "https://opencollective.com/postcss/" 3320 | }, 3321 | "peerDependencies": { 3322 | "postcss": ">=8.0.9", 3323 | "ts-node": ">=9.0.0" 3324 | }, 3325 | "peerDependenciesMeta": { 3326 | "postcss": { 3327 | "optional": true 3328 | }, 3329 | "ts-node": { 3330 | "optional": true 3331 | } 3332 | } 3333 | }, 3334 | "node_modules/postcss-load-config/node_modules/lilconfig": { 3335 | "version": "2.0.5", 3336 | "dev": true, 3337 | "license": "MIT", 3338 | "engines": { 3339 | "node": ">=10" 3340 | } 3341 | }, 3342 | "node_modules/postcss-nested": { 3343 | "version": "6.0.0", 3344 | "dev": true, 3345 | "license": "MIT", 3346 | "dependencies": { 3347 | "postcss-selector-parser": "^6.0.10" 3348 | }, 3349 | "engines": { 3350 | "node": ">=12.0" 3351 | }, 3352 | "funding": { 3353 | "type": "opencollective", 3354 | "url": "https://opencollective.com/postcss/" 3355 | }, 3356 | "peerDependencies": { 3357 | "postcss": "^8.2.14" 3358 | } 3359 | }, 3360 | "node_modules/postcss-selector-parser": { 3361 | "version": "6.0.11", 3362 | "dev": true, 3363 | "license": "MIT", 3364 | "dependencies": { 3365 | "cssesc": "^3.0.0", 3366 | "util-deprecate": "^1.0.2" 3367 | }, 3368 | "engines": { 3369 | "node": ">=4" 3370 | } 3371 | }, 3372 | "node_modules/postcss-value-parser": { 3373 | "version": "4.2.0", 3374 | "dev": true, 3375 | "license": "MIT" 3376 | }, 3377 | "node_modules/pretty-format": { 3378 | "version": "29.5.0", 3379 | "dev": true, 3380 | "license": "MIT", 3381 | "dependencies": { 3382 | "@jest/schemas": "^29.4.3", 3383 | "ansi-styles": "^5.0.0", 3384 | "react-is": "^18.0.0" 3385 | }, 3386 | "engines": { 3387 | "node": "^14.15.0 || ^16.10.0 || >=18.0.0" 3388 | } 3389 | }, 3390 | "node_modules/pretty-format/node_modules/ansi-styles": { 3391 | "version": "5.2.0", 3392 | "dev": true, 3393 | "license": "MIT", 3394 | "engines": { 3395 | "node": ">=10" 3396 | }, 3397 | "funding": { 3398 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3399 | } 3400 | }, 3401 | "node_modules/prompts": { 3402 | "version": "2.4.0", 3403 | "dev": true, 3404 | "license": "MIT", 3405 | "dependencies": { 3406 | "kleur": "^3.0.3", 3407 | "sisteransi": "^1.0.5" 3408 | }, 3409 | "engines": { 3410 | "node": ">= 6" 3411 | } 3412 | }, 3413 | "node_modules/pure-rand": { 3414 | "version": "6.0.1", 3415 | "dev": true, 3416 | "funding": [ 3417 | { 3418 | "type": "individual", 3419 | "url": "https://github.com/sponsors/dubzzz" 3420 | }, 3421 | { 3422 | "type": "opencollective", 3423 | "url": "https://opencollective.com/fast-check" 3424 | } 3425 | ], 3426 | "license": "MIT" 3427 | }, 3428 | "node_modules/queue-microtask": { 3429 | "version": "1.2.3", 3430 | "dev": true, 3431 | "funding": [ 3432 | { 3433 | "type": "github", 3434 | "url": "https://github.com/sponsors/feross" 3435 | }, 3436 | { 3437 | "type": "patreon", 3438 | "url": "https://www.patreon.com/feross" 3439 | }, 3440 | { 3441 | "type": "consulting", 3442 | "url": "https://feross.org/support" 3443 | } 3444 | ], 3445 | "license": "MIT" 3446 | }, 3447 | "node_modules/quick-lru": { 3448 | "version": "5.1.1", 3449 | "dev": true, 3450 | "license": "MIT", 3451 | "engines": { 3452 | "node": ">=10" 3453 | }, 3454 | "funding": { 3455 | "url": "https://github.com/sponsors/sindresorhus" 3456 | } 3457 | }, 3458 | "node_modules/react-is": { 3459 | "version": "18.2.0", 3460 | "dev": true, 3461 | "license": "MIT" 3462 | }, 3463 | "node_modules/read-cache": { 3464 | "version": "1.0.0", 3465 | "dev": true, 3466 | "license": "MIT", 3467 | "dependencies": { 3468 | "pify": "^2.3.0" 3469 | } 3470 | }, 3471 | "node_modules/readdirp": { 3472 | "version": "3.6.0", 3473 | "dev": true, 3474 | "license": "MIT", 3475 | "dependencies": { 3476 | "picomatch": "^2.2.1" 3477 | }, 3478 | "engines": { 3479 | "node": ">=8.10.0" 3480 | } 3481 | }, 3482 | "node_modules/require-directory": { 3483 | "version": "2.1.1", 3484 | "dev": true, 3485 | "license": "MIT", 3486 | "engines": { 3487 | "node": ">=0.10.0" 3488 | } 3489 | }, 3490 | "node_modules/resolve": { 3491 | "version": "1.22.2", 3492 | "dev": true, 3493 | "license": "MIT", 3494 | "dependencies": { 3495 | "is-core-module": "^2.11.0", 3496 | "path-parse": "^1.0.7", 3497 | "supports-preserve-symlinks-flag": "^1.0.0" 3498 | }, 3499 | "bin": { 3500 | "resolve": "bin/resolve" 3501 | }, 3502 | "funding": { 3503 | "url": "https://github.com/sponsors/ljharb" 3504 | } 3505 | }, 3506 | "node_modules/resolve-cwd": { 3507 | "version": "3.0.0", 3508 | "dev": true, 3509 | "license": "MIT", 3510 | "dependencies": { 3511 | "resolve-from": "^5.0.0" 3512 | }, 3513 | "engines": { 3514 | "node": ">=8" 3515 | } 3516 | }, 3517 | "node_modules/resolve-from": { 3518 | "version": "5.0.0", 3519 | "dev": true, 3520 | "license": "MIT", 3521 | "engines": { 3522 | "node": ">=8" 3523 | } 3524 | }, 3525 | "node_modules/resolve.exports": { 3526 | "version": "2.0.2", 3527 | "dev": true, 3528 | "license": "MIT", 3529 | "engines": { 3530 | "node": ">=10" 3531 | } 3532 | }, 3533 | "node_modules/reusify": { 3534 | "version": "1.0.4", 3535 | "dev": true, 3536 | "license": "MIT", 3537 | "engines": { 3538 | "iojs": ">=1.0.0", 3539 | "node": ">=0.10.0" 3540 | } 3541 | }, 3542 | "node_modules/run-parallel": { 3543 | "version": "1.2.0", 3544 | "dev": true, 3545 | "funding": [ 3546 | { 3547 | "type": "github", 3548 | "url": "https://github.com/sponsors/feross" 3549 | }, 3550 | { 3551 | "type": "patreon", 3552 | "url": "https://www.patreon.com/feross" 3553 | }, 3554 | { 3555 | "type": "consulting", 3556 | "url": "https://feross.org/support" 3557 | } 3558 | ], 3559 | "license": "MIT", 3560 | "dependencies": { 3561 | "queue-microtask": "^1.2.2" 3562 | } 3563 | }, 3564 | "node_modules/safe-buffer": { 3565 | "version": "5.1.2", 3566 | "dev": true, 3567 | "license": "MIT" 3568 | }, 3569 | "node_modules/semver": { 3570 | "version": "6.3.1", 3571 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 3572 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 3573 | "dev": true, 3574 | "bin": { 3575 | "semver": "bin/semver.js" 3576 | } 3577 | }, 3578 | "node_modules/shebang-command": { 3579 | "version": "2.0.0", 3580 | "dev": true, 3581 | "license": "MIT", 3582 | "dependencies": { 3583 | "shebang-regex": "^3.0.0" 3584 | }, 3585 | "engines": { 3586 | "node": ">=8" 3587 | } 3588 | }, 3589 | "node_modules/shebang-regex": { 3590 | "version": "3.0.0", 3591 | "dev": true, 3592 | "license": "MIT", 3593 | "engines": { 3594 | "node": ">=8" 3595 | } 3596 | }, 3597 | "node_modules/signal-exit": { 3598 | "version": "3.0.7", 3599 | "dev": true, 3600 | "license": "ISC" 3601 | }, 3602 | "node_modules/sisteransi": { 3603 | "version": "1.0.5", 3604 | "dev": true, 3605 | "license": "MIT" 3606 | }, 3607 | "node_modules/slash": { 3608 | "version": "3.0.0", 3609 | "dev": true, 3610 | "license": "MIT", 3611 | "engines": { 3612 | "node": ">=8" 3613 | } 3614 | }, 3615 | "node_modules/source-map": { 3616 | "version": "0.6.1", 3617 | "dev": true, 3618 | "license": "BSD-3-Clause", 3619 | "engines": { 3620 | "node": ">=0.10.0" 3621 | } 3622 | }, 3623 | "node_modules/source-map-js": { 3624 | "version": "1.2.0", 3625 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", 3626 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", 3627 | "dev": true, 3628 | "engines": { 3629 | "node": ">=0.10.0" 3630 | } 3631 | }, 3632 | "node_modules/source-map-support": { 3633 | "version": "0.5.13", 3634 | "dev": true, 3635 | "license": "MIT", 3636 | "dependencies": { 3637 | "buffer-from": "^1.0.0", 3638 | "source-map": "^0.6.0" 3639 | } 3640 | }, 3641 | "node_modules/sprintf-js": { 3642 | "version": "1.0.3", 3643 | "dev": true, 3644 | "license": "BSD-3-Clause" 3645 | }, 3646 | "node_modules/stack-utils": { 3647 | "version": "2.0.5", 3648 | "dev": true, 3649 | "license": "MIT", 3650 | "dependencies": { 3651 | "escape-string-regexp": "^2.0.0" 3652 | }, 3653 | "engines": { 3654 | "node": ">=10" 3655 | } 3656 | }, 3657 | "node_modules/stack-utils/node_modules/escape-string-regexp": { 3658 | "version": "2.0.0", 3659 | "dev": true, 3660 | "license": "MIT", 3661 | "engines": { 3662 | "node": ">=8" 3663 | } 3664 | }, 3665 | "node_modules/string-length": { 3666 | "version": "4.0.2", 3667 | "dev": true, 3668 | "license": "MIT", 3669 | "dependencies": { 3670 | "char-regex": "^1.0.2", 3671 | "strip-ansi": "^6.0.0" 3672 | }, 3673 | "engines": { 3674 | "node": ">=10" 3675 | } 3676 | }, 3677 | "node_modules/string-width": { 3678 | "version": "4.2.0", 3679 | "dev": true, 3680 | "license": "MIT", 3681 | "dependencies": { 3682 | "emoji-regex": "^8.0.0", 3683 | "is-fullwidth-code-point": "^3.0.0", 3684 | "strip-ansi": "^6.0.0" 3685 | }, 3686 | "engines": { 3687 | "node": ">=8" 3688 | } 3689 | }, 3690 | "node_modules/strip-ansi": { 3691 | "version": "6.0.0", 3692 | "dev": true, 3693 | "license": "MIT", 3694 | "dependencies": { 3695 | "ansi-regex": "^5.0.0" 3696 | }, 3697 | "engines": { 3698 | "node": ">=8" 3699 | } 3700 | }, 3701 | "node_modules/strip-bom": { 3702 | "version": "4.0.0", 3703 | "dev": true, 3704 | "license": "MIT", 3705 | "engines": { 3706 | "node": ">=8" 3707 | } 3708 | }, 3709 | "node_modules/strip-final-newline": { 3710 | "version": "2.0.0", 3711 | "dev": true, 3712 | "license": "MIT", 3713 | "engines": { 3714 | "node": ">=6" 3715 | } 3716 | }, 3717 | "node_modules/strip-json-comments": { 3718 | "version": "3.1.1", 3719 | "dev": true, 3720 | "license": "MIT", 3721 | "engines": { 3722 | "node": ">=8" 3723 | }, 3724 | "funding": { 3725 | "url": "https://github.com/sponsors/sindresorhus" 3726 | } 3727 | }, 3728 | "node_modules/sucrase": { 3729 | "version": "3.32.0", 3730 | "dev": true, 3731 | "license": "MIT", 3732 | "dependencies": { 3733 | "@jridgewell/gen-mapping": "^0.3.2", 3734 | "commander": "^4.0.0", 3735 | "glob": "7.1.6", 3736 | "lines-and-columns": "^1.1.6", 3737 | "mz": "^2.7.0", 3738 | "pirates": "^4.0.1", 3739 | "ts-interface-checker": "^0.1.9" 3740 | }, 3741 | "bin": { 3742 | "sucrase": "bin/sucrase", 3743 | "sucrase-node": "bin/sucrase-node" 3744 | }, 3745 | "engines": { 3746 | "node": ">=8" 3747 | } 3748 | }, 3749 | "node_modules/supports-color": { 3750 | "version": "7.2.0", 3751 | "dev": true, 3752 | "license": "MIT", 3753 | "dependencies": { 3754 | "has-flag": "^4.0.0" 3755 | }, 3756 | "engines": { 3757 | "node": ">=8" 3758 | } 3759 | }, 3760 | "node_modules/supports-preserve-symlinks-flag": { 3761 | "version": "1.0.0", 3762 | "dev": true, 3763 | "license": "MIT", 3764 | "engines": { 3765 | "node": ">= 0.4" 3766 | }, 3767 | "funding": { 3768 | "url": "https://github.com/sponsors/ljharb" 3769 | } 3770 | }, 3771 | "node_modules/tailwindcss": { 3772 | "version": "3.3.1", 3773 | "dev": true, 3774 | "license": "MIT", 3775 | "dependencies": { 3776 | "arg": "^5.0.2", 3777 | "chokidar": "^3.5.3", 3778 | "color-name": "^1.1.4", 3779 | "didyoumean": "^1.2.2", 3780 | "dlv": "^1.1.3", 3781 | "fast-glob": "^3.2.12", 3782 | "glob-parent": "^6.0.2", 3783 | "is-glob": "^4.0.3", 3784 | "jiti": "^1.17.2", 3785 | "lilconfig": "^2.0.6", 3786 | "micromatch": "^4.0.5", 3787 | "normalize-path": "^3.0.0", 3788 | "object-hash": "^3.0.0", 3789 | "picocolors": "^1.0.0", 3790 | "postcss": "^8.0.9", 3791 | "postcss-import": "^14.1.0", 3792 | "postcss-js": "^4.0.0", 3793 | "postcss-load-config": "^3.1.4", 3794 | "postcss-nested": "6.0.0", 3795 | "postcss-selector-parser": "^6.0.11", 3796 | "postcss-value-parser": "^4.2.0", 3797 | "quick-lru": "^5.1.1", 3798 | "resolve": "^1.22.1", 3799 | "sucrase": "^3.29.0" 3800 | }, 3801 | "bin": { 3802 | "tailwind": "lib/cli.js", 3803 | "tailwindcss": "lib/cli.js" 3804 | }, 3805 | "engines": { 3806 | "node": ">=12.13.0" 3807 | }, 3808 | "peerDependencies": { 3809 | "postcss": "^8.0.9" 3810 | } 3811 | }, 3812 | "node_modules/tailwindcss/node_modules/glob-parent": { 3813 | "version": "6.0.2", 3814 | "dev": true, 3815 | "license": "ISC", 3816 | "dependencies": { 3817 | "is-glob": "^4.0.3" 3818 | }, 3819 | "engines": { 3820 | "node": ">=10.13.0" 3821 | } 3822 | }, 3823 | "node_modules/test-exclude": { 3824 | "version": "6.0.0", 3825 | "dev": true, 3826 | "license": "ISC", 3827 | "dependencies": { 3828 | "@istanbuljs/schema": "^0.1.2", 3829 | "glob": "^7.1.4", 3830 | "minimatch": "^3.0.4" 3831 | }, 3832 | "engines": { 3833 | "node": ">=8" 3834 | } 3835 | }, 3836 | "node_modules/thenify": { 3837 | "version": "3.3.1", 3838 | "dev": true, 3839 | "license": "MIT", 3840 | "dependencies": { 3841 | "any-promise": "^1.0.0" 3842 | } 3843 | }, 3844 | "node_modules/thenify-all": { 3845 | "version": "1.6.0", 3846 | "dev": true, 3847 | "license": "MIT", 3848 | "dependencies": { 3849 | "thenify": ">= 3.1.0 < 4" 3850 | }, 3851 | "engines": { 3852 | "node": ">=0.8" 3853 | } 3854 | }, 3855 | "node_modules/tmpl": { 3856 | "version": "1.0.5", 3857 | "dev": true, 3858 | "license": "BSD-3-Clause" 3859 | }, 3860 | "node_modules/to-fast-properties": { 3861 | "version": "2.0.0", 3862 | "dev": true, 3863 | "license": "MIT", 3864 | "engines": { 3865 | "node": ">=4" 3866 | } 3867 | }, 3868 | "node_modules/to-regex-range": { 3869 | "version": "5.0.1", 3870 | "dev": true, 3871 | "license": "MIT", 3872 | "dependencies": { 3873 | "is-number": "^7.0.0" 3874 | }, 3875 | "engines": { 3876 | "node": ">=8.0" 3877 | } 3878 | }, 3879 | "node_modules/ts-interface-checker": { 3880 | "version": "0.1.13", 3881 | "dev": true, 3882 | "license": "Apache-2.0" 3883 | }, 3884 | "node_modules/type-detect": { 3885 | "version": "4.0.8", 3886 | "dev": true, 3887 | "license": "MIT", 3888 | "engines": { 3889 | "node": ">=4" 3890 | } 3891 | }, 3892 | "node_modules/type-fest": { 3893 | "version": "0.11.0", 3894 | "dev": true, 3895 | "license": "(MIT OR CC0-1.0)", 3896 | "engines": { 3897 | "node": ">=8" 3898 | }, 3899 | "funding": { 3900 | "url": "https://github.com/sponsors/sindresorhus" 3901 | } 3902 | }, 3903 | "node_modules/update-browserslist-db": { 3904 | "version": "1.0.10", 3905 | "dev": true, 3906 | "funding": [ 3907 | { 3908 | "type": "opencollective", 3909 | "url": "https://opencollective.com/browserslist" 3910 | }, 3911 | { 3912 | "type": "tidelift", 3913 | "url": "https://tidelift.com/funding/github/npm/browserslist" 3914 | } 3915 | ], 3916 | "license": "MIT", 3917 | "dependencies": { 3918 | "escalade": "^3.1.1", 3919 | "picocolors": "^1.0.0" 3920 | }, 3921 | "bin": { 3922 | "browserslist-lint": "cli.js" 3923 | }, 3924 | "peerDependencies": { 3925 | "browserslist": ">= 4.21.0" 3926 | } 3927 | }, 3928 | "node_modules/util-deprecate": { 3929 | "version": "1.0.2", 3930 | "dev": true, 3931 | "license": "MIT" 3932 | }, 3933 | "node_modules/v8-to-istanbul": { 3934 | "version": "9.1.0", 3935 | "dev": true, 3936 | "license": "ISC", 3937 | "dependencies": { 3938 | "@jridgewell/trace-mapping": "^0.3.12", 3939 | "@types/istanbul-lib-coverage": "^2.0.1", 3940 | "convert-source-map": "^1.6.0" 3941 | }, 3942 | "engines": { 3943 | "node": ">=10.12.0" 3944 | } 3945 | }, 3946 | "node_modules/walker": { 3947 | "version": "1.0.8", 3948 | "dev": true, 3949 | "license": "Apache-2.0", 3950 | "dependencies": { 3951 | "makeerror": "1.0.12" 3952 | } 3953 | }, 3954 | "node_modules/which": { 3955 | "version": "2.0.2", 3956 | "dev": true, 3957 | "license": "ISC", 3958 | "dependencies": { 3959 | "isexe": "^2.0.0" 3960 | }, 3961 | "bin": { 3962 | "node-which": "bin/node-which" 3963 | }, 3964 | "engines": { 3965 | "node": ">= 8" 3966 | } 3967 | }, 3968 | "node_modules/wrap-ansi": { 3969 | "version": "7.0.0", 3970 | "dev": true, 3971 | "license": "MIT", 3972 | "dependencies": { 3973 | "ansi-styles": "^4.0.0", 3974 | "string-width": "^4.1.0", 3975 | "strip-ansi": "^6.0.0" 3976 | }, 3977 | "engines": { 3978 | "node": ">=10" 3979 | }, 3980 | "funding": { 3981 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 3982 | } 3983 | }, 3984 | "node_modules/wrappy": { 3985 | "version": "1.0.2", 3986 | "dev": true, 3987 | "license": "ISC" 3988 | }, 3989 | "node_modules/write-file-atomic": { 3990 | "version": "4.0.2", 3991 | "dev": true, 3992 | "license": "ISC", 3993 | "dependencies": { 3994 | "imurmurhash": "^0.1.4", 3995 | "signal-exit": "^3.0.7" 3996 | }, 3997 | "engines": { 3998 | "node": "^12.13.0 || ^14.15.0 || >=16.0.0" 3999 | } 4000 | }, 4001 | "node_modules/y18n": { 4002 | "version": "5.0.8", 4003 | "dev": true, 4004 | "license": "ISC", 4005 | "engines": { 4006 | "node": ">=10" 4007 | } 4008 | }, 4009 | "node_modules/yallist": { 4010 | "version": "3.1.1", 4011 | "dev": true, 4012 | "license": "ISC" 4013 | }, 4014 | "node_modules/yaml": { 4015 | "version": "1.10.2", 4016 | "dev": true, 4017 | "license": "ISC", 4018 | "engines": { 4019 | "node": ">= 6" 4020 | } 4021 | }, 4022 | "node_modules/yargs": { 4023 | "version": "17.7.1", 4024 | "dev": true, 4025 | "license": "MIT", 4026 | "dependencies": { 4027 | "cliui": "^8.0.1", 4028 | "escalade": "^3.1.1", 4029 | "get-caller-file": "^2.0.5", 4030 | "require-directory": "^2.1.1", 4031 | "string-width": "^4.2.3", 4032 | "y18n": "^5.0.5", 4033 | "yargs-parser": "^21.1.1" 4034 | }, 4035 | "engines": { 4036 | "node": ">=12" 4037 | } 4038 | }, 4039 | "node_modules/yargs-parser": { 4040 | "version": "21.1.1", 4041 | "dev": true, 4042 | "license": "ISC", 4043 | "engines": { 4044 | "node": ">=12" 4045 | } 4046 | }, 4047 | "node_modules/yargs/node_modules/string-width": { 4048 | "version": "4.2.3", 4049 | "dev": true, 4050 | "license": "MIT", 4051 | "dependencies": { 4052 | "emoji-regex": "^8.0.0", 4053 | "is-fullwidth-code-point": "^3.0.0", 4054 | "strip-ansi": "^6.0.1" 4055 | }, 4056 | "engines": { 4057 | "node": ">=8" 4058 | } 4059 | }, 4060 | "node_modules/yargs/node_modules/strip-ansi": { 4061 | "version": "6.0.1", 4062 | "dev": true, 4063 | "license": "MIT", 4064 | "dependencies": { 4065 | "ansi-regex": "^5.0.1" 4066 | }, 4067 | "engines": { 4068 | "node": ">=8" 4069 | } 4070 | }, 4071 | "node_modules/yocto-queue": { 4072 | "version": "0.1.0", 4073 | "dev": true, 4074 | "license": "MIT", 4075 | "engines": { 4076 | "node": ">=10" 4077 | }, 4078 | "funding": { 4079 | "url": "https://github.com/sponsors/sindresorhus" 4080 | } 4081 | } 4082 | }, 4083 | "dependencies": { 4084 | "@ampproject/remapping": { 4085 | "version": "2.2.1", 4086 | "dev": true, 4087 | "requires": { 4088 | "@jridgewell/gen-mapping": "^0.3.0", 4089 | "@jridgewell/trace-mapping": "^0.3.9" 4090 | } 4091 | }, 4092 | "@babel/code-frame": { 4093 | "version": "7.24.2", 4094 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", 4095 | "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", 4096 | "dev": true, 4097 | "requires": { 4098 | "@babel/highlight": "^7.24.2", 4099 | "picocolors": "^1.0.0" 4100 | } 4101 | }, 4102 | "@babel/compat-data": { 4103 | "version": "7.21.4", 4104 | "dev": true 4105 | }, 4106 | "@babel/core": { 4107 | "version": "7.21.4", 4108 | "dev": true, 4109 | "requires": { 4110 | "@ampproject/remapping": "^2.2.0", 4111 | "@babel/code-frame": "^7.21.4", 4112 | "@babel/generator": "^7.21.4", 4113 | "@babel/helper-compilation-targets": "^7.21.4", 4114 | "@babel/helper-module-transforms": "^7.21.2", 4115 | "@babel/helpers": "^7.21.0", 4116 | "@babel/parser": "^7.21.4", 4117 | "@babel/template": "^7.20.7", 4118 | "@babel/traverse": "^7.21.4", 4119 | "@babel/types": "^7.21.4", 4120 | "convert-source-map": "^1.7.0", 4121 | "debug": "^4.1.0", 4122 | "gensync": "^1.0.0-beta.2", 4123 | "json5": "^2.2.2", 4124 | "semver": "^6.3.0" 4125 | } 4126 | }, 4127 | "@babel/generator": { 4128 | "version": "7.24.5", 4129 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", 4130 | "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", 4131 | "dev": true, 4132 | "requires": { 4133 | "@babel/types": "^7.24.5", 4134 | "@jridgewell/gen-mapping": "^0.3.5", 4135 | "@jridgewell/trace-mapping": "^0.3.25", 4136 | "jsesc": "^2.5.1" 4137 | } 4138 | }, 4139 | "@babel/helper-compilation-targets": { 4140 | "version": "7.21.4", 4141 | "dev": true, 4142 | "requires": { 4143 | "@babel/compat-data": "^7.21.4", 4144 | "@babel/helper-validator-option": "^7.21.0", 4145 | "browserslist": "^4.21.3", 4146 | "lru-cache": "^5.1.1", 4147 | "semver": "^6.3.0" 4148 | } 4149 | }, 4150 | "@babel/helper-environment-visitor": { 4151 | "version": "7.22.20", 4152 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", 4153 | "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", 4154 | "dev": true 4155 | }, 4156 | "@babel/helper-function-name": { 4157 | "version": "7.23.0", 4158 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", 4159 | "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", 4160 | "dev": true, 4161 | "requires": { 4162 | "@babel/template": "^7.22.15", 4163 | "@babel/types": "^7.23.0" 4164 | } 4165 | }, 4166 | "@babel/helper-hoist-variables": { 4167 | "version": "7.22.5", 4168 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", 4169 | "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", 4170 | "dev": true, 4171 | "requires": { 4172 | "@babel/types": "^7.22.5" 4173 | } 4174 | }, 4175 | "@babel/helper-module-imports": { 4176 | "version": "7.21.4", 4177 | "dev": true, 4178 | "requires": { 4179 | "@babel/types": "^7.21.4" 4180 | } 4181 | }, 4182 | "@babel/helper-module-transforms": { 4183 | "version": "7.21.2", 4184 | "dev": true, 4185 | "requires": { 4186 | "@babel/helper-environment-visitor": "^7.18.9", 4187 | "@babel/helper-module-imports": "^7.18.6", 4188 | "@babel/helper-simple-access": "^7.20.2", 4189 | "@babel/helper-split-export-declaration": "^7.18.6", 4190 | "@babel/helper-validator-identifier": "^7.19.1", 4191 | "@babel/template": "^7.20.7", 4192 | "@babel/traverse": "^7.21.2", 4193 | "@babel/types": "^7.21.2" 4194 | } 4195 | }, 4196 | "@babel/helper-plugin-utils": { 4197 | "version": "7.10.4", 4198 | "dev": true 4199 | }, 4200 | "@babel/helper-simple-access": { 4201 | "version": "7.20.2", 4202 | "dev": true, 4203 | "requires": { 4204 | "@babel/types": "^7.20.2" 4205 | } 4206 | }, 4207 | "@babel/helper-split-export-declaration": { 4208 | "version": "7.24.5", 4209 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", 4210 | "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", 4211 | "dev": true, 4212 | "requires": { 4213 | "@babel/types": "^7.24.5" 4214 | } 4215 | }, 4216 | "@babel/helper-string-parser": { 4217 | "version": "7.24.1", 4218 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", 4219 | "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", 4220 | "dev": true 4221 | }, 4222 | "@babel/helper-validator-identifier": { 4223 | "version": "7.24.5", 4224 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", 4225 | "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", 4226 | "dev": true 4227 | }, 4228 | "@babel/helper-validator-option": { 4229 | "version": "7.21.0", 4230 | "dev": true 4231 | }, 4232 | "@babel/helpers": { 4233 | "version": "7.21.0", 4234 | "dev": true, 4235 | "requires": { 4236 | "@babel/template": "^7.20.7", 4237 | "@babel/traverse": "^7.21.0", 4238 | "@babel/types": "^7.21.0" 4239 | } 4240 | }, 4241 | "@babel/highlight": { 4242 | "version": "7.24.5", 4243 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", 4244 | "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", 4245 | "dev": true, 4246 | "requires": { 4247 | "@babel/helper-validator-identifier": "^7.24.5", 4248 | "chalk": "^2.4.2", 4249 | "js-tokens": "^4.0.0", 4250 | "picocolors": "^1.0.0" 4251 | }, 4252 | "dependencies": { 4253 | "ansi-styles": { 4254 | "version": "3.2.1", 4255 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 4256 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 4257 | "dev": true, 4258 | "requires": { 4259 | "color-convert": "^1.9.0" 4260 | } 4261 | }, 4262 | "chalk": { 4263 | "version": "2.4.2", 4264 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 4265 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 4266 | "dev": true, 4267 | "requires": { 4268 | "ansi-styles": "^3.2.1", 4269 | "escape-string-regexp": "^1.0.5", 4270 | "supports-color": "^5.3.0" 4271 | } 4272 | }, 4273 | "color-convert": { 4274 | "version": "1.9.3", 4275 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 4276 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 4277 | "dev": true, 4278 | "requires": { 4279 | "color-name": "1.1.3" 4280 | } 4281 | }, 4282 | "color-name": { 4283 | "version": "1.1.3", 4284 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 4285 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 4286 | "dev": true 4287 | }, 4288 | "has-flag": { 4289 | "version": "3.0.0", 4290 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 4291 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 4292 | "dev": true 4293 | }, 4294 | "supports-color": { 4295 | "version": "5.5.0", 4296 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 4297 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 4298 | "dev": true, 4299 | "requires": { 4300 | "has-flag": "^3.0.0" 4301 | } 4302 | } 4303 | } 4304 | }, 4305 | "@babel/parser": { 4306 | "version": "7.24.5", 4307 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", 4308 | "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", 4309 | "dev": true 4310 | }, 4311 | "@babel/plugin-syntax-async-generators": { 4312 | "version": "7.8.4", 4313 | "dev": true, 4314 | "requires": { 4315 | "@babel/helper-plugin-utils": "^7.8.0" 4316 | } 4317 | }, 4318 | "@babel/plugin-syntax-bigint": { 4319 | "version": "7.8.3", 4320 | "dev": true, 4321 | "requires": { 4322 | "@babel/helper-plugin-utils": "^7.8.0" 4323 | } 4324 | }, 4325 | "@babel/plugin-syntax-class-properties": { 4326 | "version": "7.12.1", 4327 | "dev": true, 4328 | "requires": { 4329 | "@babel/helper-plugin-utils": "^7.10.4" 4330 | } 4331 | }, 4332 | "@babel/plugin-syntax-import-meta": { 4333 | "version": "7.10.4", 4334 | "dev": true, 4335 | "requires": { 4336 | "@babel/helper-plugin-utils": "^7.10.4" 4337 | } 4338 | }, 4339 | "@babel/plugin-syntax-json-strings": { 4340 | "version": "7.8.3", 4341 | "dev": true, 4342 | "requires": { 4343 | "@babel/helper-plugin-utils": "^7.8.0" 4344 | } 4345 | }, 4346 | "@babel/plugin-syntax-jsx": { 4347 | "version": "7.21.4", 4348 | "dev": true, 4349 | "requires": { 4350 | "@babel/helper-plugin-utils": "^7.20.2" 4351 | }, 4352 | "dependencies": { 4353 | "@babel/helper-plugin-utils": { 4354 | "version": "7.20.2", 4355 | "dev": true 4356 | } 4357 | } 4358 | }, 4359 | "@babel/plugin-syntax-logical-assignment-operators": { 4360 | "version": "7.10.4", 4361 | "dev": true, 4362 | "requires": { 4363 | "@babel/helper-plugin-utils": "^7.10.4" 4364 | } 4365 | }, 4366 | "@babel/plugin-syntax-nullish-coalescing-operator": { 4367 | "version": "7.8.3", 4368 | "dev": true, 4369 | "requires": { 4370 | "@babel/helper-plugin-utils": "^7.8.0" 4371 | } 4372 | }, 4373 | "@babel/plugin-syntax-numeric-separator": { 4374 | "version": "7.10.4", 4375 | "dev": true, 4376 | "requires": { 4377 | "@babel/helper-plugin-utils": "^7.10.4" 4378 | } 4379 | }, 4380 | "@babel/plugin-syntax-object-rest-spread": { 4381 | "version": "7.8.3", 4382 | "dev": true, 4383 | "requires": { 4384 | "@babel/helper-plugin-utils": "^7.8.0" 4385 | } 4386 | }, 4387 | "@babel/plugin-syntax-optional-catch-binding": { 4388 | "version": "7.8.3", 4389 | "dev": true, 4390 | "requires": { 4391 | "@babel/helper-plugin-utils": "^7.8.0" 4392 | } 4393 | }, 4394 | "@babel/plugin-syntax-optional-chaining": { 4395 | "version": "7.8.3", 4396 | "dev": true, 4397 | "requires": { 4398 | "@babel/helper-plugin-utils": "^7.8.0" 4399 | } 4400 | }, 4401 | "@babel/plugin-syntax-top-level-await": { 4402 | "version": "7.14.5", 4403 | "dev": true, 4404 | "requires": { 4405 | "@babel/helper-plugin-utils": "^7.14.5" 4406 | }, 4407 | "dependencies": { 4408 | "@babel/helper-plugin-utils": { 4409 | "version": "7.16.7", 4410 | "dev": true 4411 | } 4412 | } 4413 | }, 4414 | "@babel/plugin-syntax-typescript": { 4415 | "version": "7.16.7", 4416 | "dev": true, 4417 | "requires": { 4418 | "@babel/helper-plugin-utils": "^7.16.7" 4419 | }, 4420 | "dependencies": { 4421 | "@babel/helper-plugin-utils": { 4422 | "version": "7.16.7", 4423 | "dev": true 4424 | } 4425 | } 4426 | }, 4427 | "@babel/template": { 4428 | "version": "7.24.0", 4429 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", 4430 | "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", 4431 | "dev": true, 4432 | "requires": { 4433 | "@babel/code-frame": "^7.23.5", 4434 | "@babel/parser": "^7.24.0", 4435 | "@babel/types": "^7.24.0" 4436 | } 4437 | }, 4438 | "@babel/traverse": { 4439 | "version": "7.24.5", 4440 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", 4441 | "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", 4442 | "dev": true, 4443 | "requires": { 4444 | "@babel/code-frame": "^7.24.2", 4445 | "@babel/generator": "^7.24.5", 4446 | "@babel/helper-environment-visitor": "^7.22.20", 4447 | "@babel/helper-function-name": "^7.23.0", 4448 | "@babel/helper-hoist-variables": "^7.22.5", 4449 | "@babel/helper-split-export-declaration": "^7.24.5", 4450 | "@babel/parser": "^7.24.5", 4451 | "@babel/types": "^7.24.5", 4452 | "debug": "^4.3.1", 4453 | "globals": "^11.1.0" 4454 | } 4455 | }, 4456 | "@babel/types": { 4457 | "version": "7.24.5", 4458 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", 4459 | "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", 4460 | "dev": true, 4461 | "requires": { 4462 | "@babel/helper-string-parser": "^7.24.1", 4463 | "@babel/helper-validator-identifier": "^7.24.5", 4464 | "to-fast-properties": "^2.0.0" 4465 | } 4466 | }, 4467 | "@bcoe/v8-coverage": { 4468 | "version": "0.2.3", 4469 | "dev": true 4470 | }, 4471 | "@istanbuljs/load-nyc-config": { 4472 | "version": "1.1.0", 4473 | "dev": true, 4474 | "requires": { 4475 | "camelcase": "^5.3.1", 4476 | "find-up": "^4.1.0", 4477 | "get-package-type": "^0.1.0", 4478 | "js-yaml": "^3.13.1", 4479 | "resolve-from": "^5.0.0" 4480 | }, 4481 | "dependencies": { 4482 | "camelcase": { 4483 | "version": "5.3.1", 4484 | "dev": true 4485 | } 4486 | } 4487 | }, 4488 | "@istanbuljs/schema": { 4489 | "version": "0.1.2", 4490 | "dev": true 4491 | }, 4492 | "@jest/console": { 4493 | "version": "29.5.0", 4494 | "dev": true, 4495 | "requires": { 4496 | "@jest/types": "^29.5.0", 4497 | "@types/node": "*", 4498 | "chalk": "^4.0.0", 4499 | "jest-message-util": "^29.5.0", 4500 | "jest-util": "^29.5.0", 4501 | "slash": "^3.0.0" 4502 | } 4503 | }, 4504 | "@jest/core": { 4505 | "version": "29.5.0", 4506 | "dev": true, 4507 | "requires": { 4508 | "@jest/console": "^29.5.0", 4509 | "@jest/reporters": "^29.5.0", 4510 | "@jest/test-result": "^29.5.0", 4511 | "@jest/transform": "^29.5.0", 4512 | "@jest/types": "^29.5.0", 4513 | "@types/node": "*", 4514 | "ansi-escapes": "^4.2.1", 4515 | "chalk": "^4.0.0", 4516 | "ci-info": "^3.2.0", 4517 | "exit": "^0.1.2", 4518 | "graceful-fs": "^4.2.9", 4519 | "jest-changed-files": "^29.5.0", 4520 | "jest-config": "^29.5.0", 4521 | "jest-haste-map": "^29.5.0", 4522 | "jest-message-util": "^29.5.0", 4523 | "jest-regex-util": "^29.4.3", 4524 | "jest-resolve": "^29.5.0", 4525 | "jest-resolve-dependencies": "^29.5.0", 4526 | "jest-runner": "^29.5.0", 4527 | "jest-runtime": "^29.5.0", 4528 | "jest-snapshot": "^29.5.0", 4529 | "jest-util": "^29.5.0", 4530 | "jest-validate": "^29.5.0", 4531 | "jest-watcher": "^29.5.0", 4532 | "micromatch": "^4.0.4", 4533 | "pretty-format": "^29.5.0", 4534 | "slash": "^3.0.0", 4535 | "strip-ansi": "^6.0.0" 4536 | } 4537 | }, 4538 | "@jest/environment": { 4539 | "version": "29.5.0", 4540 | "dev": true, 4541 | "requires": { 4542 | "@jest/fake-timers": "^29.5.0", 4543 | "@jest/types": "^29.5.0", 4544 | "@types/node": "*", 4545 | "jest-mock": "^29.5.0" 4546 | } 4547 | }, 4548 | "@jest/expect": { 4549 | "version": "29.5.0", 4550 | "dev": true, 4551 | "requires": { 4552 | "expect": "^29.5.0", 4553 | "jest-snapshot": "^29.5.0" 4554 | } 4555 | }, 4556 | "@jest/expect-utils": { 4557 | "version": "29.5.0", 4558 | "dev": true, 4559 | "requires": { 4560 | "jest-get-type": "^29.4.3" 4561 | } 4562 | }, 4563 | "@jest/fake-timers": { 4564 | "version": "29.5.0", 4565 | "dev": true, 4566 | "requires": { 4567 | "@jest/types": "^29.5.0", 4568 | "@sinonjs/fake-timers": "^10.0.2", 4569 | "@types/node": "*", 4570 | "jest-message-util": "^29.5.0", 4571 | "jest-mock": "^29.5.0", 4572 | "jest-util": "^29.5.0" 4573 | } 4574 | }, 4575 | "@jest/globals": { 4576 | "version": "29.5.0", 4577 | "dev": true, 4578 | "requires": { 4579 | "@jest/environment": "^29.5.0", 4580 | "@jest/expect": "^29.5.0", 4581 | "@jest/types": "^29.5.0", 4582 | "jest-mock": "^29.5.0" 4583 | } 4584 | }, 4585 | "@jest/reporters": { 4586 | "version": "29.5.0", 4587 | "dev": true, 4588 | "requires": { 4589 | "@bcoe/v8-coverage": "^0.2.3", 4590 | "@jest/console": "^29.5.0", 4591 | "@jest/test-result": "^29.5.0", 4592 | "@jest/transform": "^29.5.0", 4593 | "@jest/types": "^29.5.0", 4594 | "@jridgewell/trace-mapping": "^0.3.15", 4595 | "@types/node": "*", 4596 | "chalk": "^4.0.0", 4597 | "collect-v8-coverage": "^1.0.0", 4598 | "exit": "^0.1.2", 4599 | "glob": "^7.1.3", 4600 | "graceful-fs": "^4.2.9", 4601 | "istanbul-lib-coverage": "^3.0.0", 4602 | "istanbul-lib-instrument": "^5.1.0", 4603 | "istanbul-lib-report": "^3.0.0", 4604 | "istanbul-lib-source-maps": "^4.0.0", 4605 | "istanbul-reports": "^3.1.3", 4606 | "jest-message-util": "^29.5.0", 4607 | "jest-util": "^29.5.0", 4608 | "jest-worker": "^29.5.0", 4609 | "slash": "^3.0.0", 4610 | "string-length": "^4.0.1", 4611 | "strip-ansi": "^6.0.0", 4612 | "v8-to-istanbul": "^9.0.1" 4613 | } 4614 | }, 4615 | "@jest/schemas": { 4616 | "version": "29.4.3", 4617 | "dev": true, 4618 | "requires": { 4619 | "@sinclair/typebox": "^0.25.16" 4620 | } 4621 | }, 4622 | "@jest/source-map": { 4623 | "version": "29.4.3", 4624 | "dev": true, 4625 | "requires": { 4626 | "@jridgewell/trace-mapping": "^0.3.15", 4627 | "callsites": "^3.0.0", 4628 | "graceful-fs": "^4.2.9" 4629 | } 4630 | }, 4631 | "@jest/test-result": { 4632 | "version": "29.5.0", 4633 | "dev": true, 4634 | "requires": { 4635 | "@jest/console": "^29.5.0", 4636 | "@jest/types": "^29.5.0", 4637 | "@types/istanbul-lib-coverage": "^2.0.0", 4638 | "collect-v8-coverage": "^1.0.0" 4639 | } 4640 | }, 4641 | "@jest/test-sequencer": { 4642 | "version": "29.5.0", 4643 | "dev": true, 4644 | "requires": { 4645 | "@jest/test-result": "^29.5.0", 4646 | "graceful-fs": "^4.2.9", 4647 | "jest-haste-map": "^29.5.0", 4648 | "slash": "^3.0.0" 4649 | } 4650 | }, 4651 | "@jest/transform": { 4652 | "version": "29.5.0", 4653 | "dev": true, 4654 | "requires": { 4655 | "@babel/core": "^7.11.6", 4656 | "@jest/types": "^29.5.0", 4657 | "@jridgewell/trace-mapping": "^0.3.15", 4658 | "babel-plugin-istanbul": "^6.1.1", 4659 | "chalk": "^4.0.0", 4660 | "convert-source-map": "^2.0.0", 4661 | "fast-json-stable-stringify": "^2.1.0", 4662 | "graceful-fs": "^4.2.9", 4663 | "jest-haste-map": "^29.5.0", 4664 | "jest-regex-util": "^29.4.3", 4665 | "jest-util": "^29.5.0", 4666 | "micromatch": "^4.0.4", 4667 | "pirates": "^4.0.4", 4668 | "slash": "^3.0.0", 4669 | "write-file-atomic": "^4.0.2" 4670 | }, 4671 | "dependencies": { 4672 | "convert-source-map": { 4673 | "version": "2.0.0", 4674 | "dev": true 4675 | } 4676 | } 4677 | }, 4678 | "@jest/types": { 4679 | "version": "29.5.0", 4680 | "dev": true, 4681 | "requires": { 4682 | "@jest/schemas": "^29.4.3", 4683 | "@types/istanbul-lib-coverage": "^2.0.0", 4684 | "@types/istanbul-reports": "^3.0.0", 4685 | "@types/node": "*", 4686 | "@types/yargs": "^17.0.8", 4687 | "chalk": "^4.0.0" 4688 | } 4689 | }, 4690 | "@jridgewell/gen-mapping": { 4691 | "version": "0.3.5", 4692 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", 4693 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", 4694 | "dev": true, 4695 | "requires": { 4696 | "@jridgewell/set-array": "^1.2.1", 4697 | "@jridgewell/sourcemap-codec": "^1.4.10", 4698 | "@jridgewell/trace-mapping": "^0.3.24" 4699 | } 4700 | }, 4701 | "@jridgewell/resolve-uri": { 4702 | "version": "3.1.0", 4703 | "dev": true 4704 | }, 4705 | "@jridgewell/set-array": { 4706 | "version": "1.2.1", 4707 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 4708 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 4709 | "dev": true 4710 | }, 4711 | "@jridgewell/sourcemap-codec": { 4712 | "version": "1.4.11", 4713 | "dev": true 4714 | }, 4715 | "@jridgewell/trace-mapping": { 4716 | "version": "0.3.25", 4717 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 4718 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 4719 | "dev": true, 4720 | "requires": { 4721 | "@jridgewell/resolve-uri": "^3.1.0", 4722 | "@jridgewell/sourcemap-codec": "^1.4.14" 4723 | }, 4724 | "dependencies": { 4725 | "@jridgewell/sourcemap-codec": { 4726 | "version": "1.4.14", 4727 | "dev": true 4728 | } 4729 | } 4730 | }, 4731 | "@nodelib/fs.scandir": { 4732 | "version": "2.1.5", 4733 | "dev": true, 4734 | "requires": { 4735 | "@nodelib/fs.stat": "2.0.5", 4736 | "run-parallel": "^1.1.9" 4737 | } 4738 | }, 4739 | "@nodelib/fs.stat": { 4740 | "version": "2.0.5", 4741 | "dev": true 4742 | }, 4743 | "@nodelib/fs.walk": { 4744 | "version": "1.2.8", 4745 | "dev": true, 4746 | "requires": { 4747 | "@nodelib/fs.scandir": "2.1.5", 4748 | "fastq": "^1.6.0" 4749 | } 4750 | }, 4751 | "@sinclair/typebox": { 4752 | "version": "0.25.24", 4753 | "dev": true 4754 | }, 4755 | "@sinonjs/commons": { 4756 | "version": "2.0.0", 4757 | "dev": true, 4758 | "requires": { 4759 | "type-detect": "4.0.8" 4760 | } 4761 | }, 4762 | "@sinonjs/fake-timers": { 4763 | "version": "10.0.2", 4764 | "dev": true, 4765 | "requires": { 4766 | "@sinonjs/commons": "^2.0.0" 4767 | } 4768 | }, 4769 | "@types/babel__core": { 4770 | "version": "7.1.19", 4771 | "dev": true, 4772 | "requires": { 4773 | "@babel/parser": "^7.1.0", 4774 | "@babel/types": "^7.0.0", 4775 | "@types/babel__generator": "*", 4776 | "@types/babel__template": "*", 4777 | "@types/babel__traverse": "*" 4778 | } 4779 | }, 4780 | "@types/babel__generator": { 4781 | "version": "7.6.2", 4782 | "dev": true, 4783 | "requires": { 4784 | "@babel/types": "^7.0.0" 4785 | } 4786 | }, 4787 | "@types/babel__template": { 4788 | "version": "7.4.0", 4789 | "dev": true, 4790 | "requires": { 4791 | "@babel/parser": "^7.1.0", 4792 | "@babel/types": "^7.0.0" 4793 | } 4794 | }, 4795 | "@types/babel__traverse": { 4796 | "version": "7.11.0", 4797 | "dev": true, 4798 | "requires": { 4799 | "@babel/types": "^7.3.0" 4800 | } 4801 | }, 4802 | "@types/graceful-fs": { 4803 | "version": "4.1.6", 4804 | "dev": true, 4805 | "requires": { 4806 | "@types/node": "*" 4807 | } 4808 | }, 4809 | "@types/istanbul-lib-coverage": { 4810 | "version": "2.0.3", 4811 | "dev": true 4812 | }, 4813 | "@types/istanbul-lib-report": { 4814 | "version": "3.0.0", 4815 | "dev": true, 4816 | "requires": { 4817 | "@types/istanbul-lib-coverage": "*" 4818 | } 4819 | }, 4820 | "@types/istanbul-reports": { 4821 | "version": "3.0.1", 4822 | "dev": true, 4823 | "requires": { 4824 | "@types/istanbul-lib-report": "*" 4825 | } 4826 | }, 4827 | "@types/node": { 4828 | "version": "14.14.11", 4829 | "dev": true 4830 | }, 4831 | "@types/prettier": { 4832 | "version": "2.6.0", 4833 | "dev": true 4834 | }, 4835 | "@types/stack-utils": { 4836 | "version": "2.0.1", 4837 | "dev": true 4838 | }, 4839 | "@types/yargs": { 4840 | "version": "17.0.24", 4841 | "dev": true, 4842 | "requires": { 4843 | "@types/yargs-parser": "*" 4844 | } 4845 | }, 4846 | "@types/yargs-parser": { 4847 | "version": "15.0.0", 4848 | "dev": true 4849 | }, 4850 | "ansi-escapes": { 4851 | "version": "4.3.1", 4852 | "dev": true, 4853 | "requires": { 4854 | "type-fest": "^0.11.0" 4855 | } 4856 | }, 4857 | "ansi-regex": { 4858 | "version": "5.0.1", 4859 | "dev": true 4860 | }, 4861 | "ansi-styles": { 4862 | "version": "4.3.0", 4863 | "dev": true, 4864 | "requires": { 4865 | "color-convert": "^2.0.1" 4866 | } 4867 | }, 4868 | "any-promise": { 4869 | "version": "1.3.0", 4870 | "dev": true 4871 | }, 4872 | "anymatch": { 4873 | "version": "3.1.2", 4874 | "dev": true, 4875 | "requires": { 4876 | "normalize-path": "^3.0.0", 4877 | "picomatch": "^2.0.4" 4878 | }, 4879 | "dependencies": { 4880 | "picomatch": { 4881 | "version": "2.2.2", 4882 | "dev": true 4883 | } 4884 | } 4885 | }, 4886 | "arg": { 4887 | "version": "5.0.2", 4888 | "dev": true 4889 | }, 4890 | "argparse": { 4891 | "version": "1.0.10", 4892 | "dev": true, 4893 | "requires": { 4894 | "sprintf-js": "~1.0.2" 4895 | } 4896 | }, 4897 | "babel-jest": { 4898 | "version": "29.5.0", 4899 | "dev": true, 4900 | "requires": { 4901 | "@jest/transform": "^29.5.0", 4902 | "@types/babel__core": "^7.1.14", 4903 | "babel-plugin-istanbul": "^6.1.1", 4904 | "babel-preset-jest": "^29.5.0", 4905 | "chalk": "^4.0.0", 4906 | "graceful-fs": "^4.2.9", 4907 | "slash": "^3.0.0" 4908 | } 4909 | }, 4910 | "babel-plugin-istanbul": { 4911 | "version": "6.1.1", 4912 | "dev": true, 4913 | "requires": { 4914 | "@babel/helper-plugin-utils": "^7.0.0", 4915 | "@istanbuljs/load-nyc-config": "^1.0.0", 4916 | "@istanbuljs/schema": "^0.1.2", 4917 | "istanbul-lib-instrument": "^5.0.4", 4918 | "test-exclude": "^6.0.0" 4919 | } 4920 | }, 4921 | "babel-plugin-jest-hoist": { 4922 | "version": "29.5.0", 4923 | "dev": true, 4924 | "requires": { 4925 | "@babel/template": "^7.3.3", 4926 | "@babel/types": "^7.3.3", 4927 | "@types/babel__core": "^7.1.14", 4928 | "@types/babel__traverse": "^7.0.6" 4929 | } 4930 | }, 4931 | "babel-preset-current-node-syntax": { 4932 | "version": "1.0.1", 4933 | "dev": true, 4934 | "requires": { 4935 | "@babel/plugin-syntax-async-generators": "^7.8.4", 4936 | "@babel/plugin-syntax-bigint": "^7.8.3", 4937 | "@babel/plugin-syntax-class-properties": "^7.8.3", 4938 | "@babel/plugin-syntax-import-meta": "^7.8.3", 4939 | "@babel/plugin-syntax-json-strings": "^7.8.3", 4940 | "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", 4941 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", 4942 | "@babel/plugin-syntax-numeric-separator": "^7.8.3", 4943 | "@babel/plugin-syntax-object-rest-spread": "^7.8.3", 4944 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", 4945 | "@babel/plugin-syntax-optional-chaining": "^7.8.3", 4946 | "@babel/plugin-syntax-top-level-await": "^7.8.3" 4947 | } 4948 | }, 4949 | "babel-preset-jest": { 4950 | "version": "29.5.0", 4951 | "dev": true, 4952 | "requires": { 4953 | "babel-plugin-jest-hoist": "^29.5.0", 4954 | "babel-preset-current-node-syntax": "^1.0.0" 4955 | } 4956 | }, 4957 | "balanced-match": { 4958 | "version": "1.0.0", 4959 | "dev": true 4960 | }, 4961 | "binary-extensions": { 4962 | "version": "2.2.0", 4963 | "dev": true 4964 | }, 4965 | "brace-expansion": { 4966 | "version": "1.1.11", 4967 | "dev": true, 4968 | "requires": { 4969 | "balanced-match": "^1.0.0", 4970 | "concat-map": "0.0.1" 4971 | } 4972 | }, 4973 | "braces": { 4974 | "version": "3.0.2", 4975 | "dev": true, 4976 | "requires": { 4977 | "fill-range": "^7.0.1" 4978 | } 4979 | }, 4980 | "browserslist": { 4981 | "version": "4.21.5", 4982 | "dev": true, 4983 | "requires": { 4984 | "caniuse-lite": "^1.0.30001449", 4985 | "electron-to-chromium": "^1.4.284", 4986 | "node-releases": "^2.0.8", 4987 | "update-browserslist-db": "^1.0.10" 4988 | } 4989 | }, 4990 | "bser": { 4991 | "version": "2.1.1", 4992 | "dev": true, 4993 | "requires": { 4994 | "node-int64": "^0.4.0" 4995 | } 4996 | }, 4997 | "buffer-from": { 4998 | "version": "1.1.1", 4999 | "dev": true 5000 | }, 5001 | "callsites": { 5002 | "version": "3.1.0", 5003 | "dev": true 5004 | }, 5005 | "camelcase": { 5006 | "version": "6.3.0", 5007 | "dev": true 5008 | }, 5009 | "camelcase-css": { 5010 | "version": "2.0.1", 5011 | "dev": true 5012 | }, 5013 | "caniuse-lite": { 5014 | "version": "1.0.30001478", 5015 | "dev": true 5016 | }, 5017 | "chalk": { 5018 | "version": "4.1.2", 5019 | "dev": true, 5020 | "requires": { 5021 | "ansi-styles": "^4.1.0", 5022 | "supports-color": "^7.1.0" 5023 | } 5024 | }, 5025 | "char-regex": { 5026 | "version": "1.0.2", 5027 | "dev": true 5028 | }, 5029 | "chokidar": { 5030 | "version": "3.5.3", 5031 | "dev": true, 5032 | "requires": { 5033 | "anymatch": "~3.1.2", 5034 | "braces": "~3.0.2", 5035 | "fsevents": "~2.3.2", 5036 | "glob-parent": "~5.1.2", 5037 | "is-binary-path": "~2.1.0", 5038 | "is-glob": "~4.0.1", 5039 | "normalize-path": "~3.0.0", 5040 | "readdirp": "~3.6.0" 5041 | } 5042 | }, 5043 | "ci-info": { 5044 | "version": "3.3.0", 5045 | "dev": true 5046 | }, 5047 | "cjs-module-lexer": { 5048 | "version": "1.2.2", 5049 | "dev": true 5050 | }, 5051 | "cliui": { 5052 | "version": "8.0.1", 5053 | "dev": true, 5054 | "requires": { 5055 | "string-width": "^4.2.0", 5056 | "strip-ansi": "^6.0.1", 5057 | "wrap-ansi": "^7.0.0" 5058 | }, 5059 | "dependencies": { 5060 | "strip-ansi": { 5061 | "version": "6.0.1", 5062 | "dev": true, 5063 | "requires": { 5064 | "ansi-regex": "^5.0.1" 5065 | } 5066 | } 5067 | } 5068 | }, 5069 | "co": { 5070 | "version": "4.6.0", 5071 | "dev": true 5072 | }, 5073 | "collect-v8-coverage": { 5074 | "version": "1.0.1", 5075 | "dev": true 5076 | }, 5077 | "color-convert": { 5078 | "version": "2.0.1", 5079 | "dev": true, 5080 | "requires": { 5081 | "color-name": "~1.1.4" 5082 | } 5083 | }, 5084 | "color-name": { 5085 | "version": "1.1.4", 5086 | "dev": true 5087 | }, 5088 | "commander": { 5089 | "version": "4.1.1", 5090 | "dev": true 5091 | }, 5092 | "concat-map": { 5093 | "version": "0.0.1", 5094 | "dev": true 5095 | }, 5096 | "convert-source-map": { 5097 | "version": "1.7.0", 5098 | "dev": true, 5099 | "requires": { 5100 | "safe-buffer": "~5.1.1" 5101 | } 5102 | }, 5103 | "cross-spawn": { 5104 | "version": "7.0.3", 5105 | "dev": true, 5106 | "requires": { 5107 | "path-key": "^3.1.0", 5108 | "shebang-command": "^2.0.0", 5109 | "which": "^2.0.1" 5110 | } 5111 | }, 5112 | "cssesc": { 5113 | "version": "3.0.0", 5114 | "dev": true 5115 | }, 5116 | "debug": { 5117 | "version": "4.3.1", 5118 | "dev": true, 5119 | "requires": { 5120 | "ms": "2.1.2" 5121 | } 5122 | }, 5123 | "dedent": { 5124 | "version": "0.7.0", 5125 | "dev": true 5126 | }, 5127 | "deepmerge": { 5128 | "version": "4.2.2", 5129 | "dev": true 5130 | }, 5131 | "detect-newline": { 5132 | "version": "3.1.0", 5133 | "dev": true 5134 | }, 5135 | "didyoumean": { 5136 | "version": "1.2.2", 5137 | "dev": true 5138 | }, 5139 | "diff-sequences": { 5140 | "version": "29.4.3", 5141 | "dev": true 5142 | }, 5143 | "dlv": { 5144 | "version": "1.1.3", 5145 | "dev": true 5146 | }, 5147 | "electron-to-chromium": { 5148 | "version": "1.4.363", 5149 | "dev": true 5150 | }, 5151 | "emittery": { 5152 | "version": "0.13.1", 5153 | "dev": true 5154 | }, 5155 | "emoji-regex": { 5156 | "version": "8.0.0", 5157 | "dev": true 5158 | }, 5159 | "error-ex": { 5160 | "version": "1.3.2", 5161 | "dev": true, 5162 | "requires": { 5163 | "is-arrayish": "^0.2.1" 5164 | }, 5165 | "dependencies": { 5166 | "is-arrayish": { 5167 | "version": "0.2.1", 5168 | "dev": true 5169 | } 5170 | } 5171 | }, 5172 | "escalade": { 5173 | "version": "3.1.1", 5174 | "dev": true 5175 | }, 5176 | "escape-string-regexp": { 5177 | "version": "1.0.5", 5178 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 5179 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 5180 | "dev": true 5181 | }, 5182 | "esprima": { 5183 | "version": "4.0.1", 5184 | "dev": true 5185 | }, 5186 | "execa": { 5187 | "version": "5.1.1", 5188 | "dev": true, 5189 | "requires": { 5190 | "cross-spawn": "^7.0.3", 5191 | "get-stream": "^6.0.0", 5192 | "human-signals": "^2.1.0", 5193 | "is-stream": "^2.0.0", 5194 | "merge-stream": "^2.0.0", 5195 | "npm-run-path": "^4.0.1", 5196 | "onetime": "^5.1.2", 5197 | "signal-exit": "^3.0.3", 5198 | "strip-final-newline": "^2.0.0" 5199 | } 5200 | }, 5201 | "exit": { 5202 | "version": "0.1.2", 5203 | "dev": true 5204 | }, 5205 | "expect": { 5206 | "version": "29.5.0", 5207 | "dev": true, 5208 | "requires": { 5209 | "@jest/expect-utils": "^29.5.0", 5210 | "jest-get-type": "^29.4.3", 5211 | "jest-matcher-utils": "^29.5.0", 5212 | "jest-message-util": "^29.5.0", 5213 | "jest-util": "^29.5.0" 5214 | } 5215 | }, 5216 | "fast-glob": { 5217 | "version": "3.2.12", 5218 | "dev": true, 5219 | "requires": { 5220 | "@nodelib/fs.stat": "^2.0.2", 5221 | "@nodelib/fs.walk": "^1.2.3", 5222 | "glob-parent": "^5.1.2", 5223 | "merge2": "^1.3.0", 5224 | "micromatch": "^4.0.4" 5225 | } 5226 | }, 5227 | "fast-json-stable-stringify": { 5228 | "version": "2.1.0", 5229 | "dev": true 5230 | }, 5231 | "fastq": { 5232 | "version": "1.13.0", 5233 | "dev": true, 5234 | "requires": { 5235 | "reusify": "^1.0.4" 5236 | } 5237 | }, 5238 | "fb-watchman": { 5239 | "version": "2.0.1", 5240 | "dev": true, 5241 | "requires": { 5242 | "bser": "2.1.1" 5243 | } 5244 | }, 5245 | "fill-range": { 5246 | "version": "7.0.1", 5247 | "dev": true, 5248 | "requires": { 5249 | "to-regex-range": "^5.0.1" 5250 | } 5251 | }, 5252 | "find-up": { 5253 | "version": "4.1.0", 5254 | "dev": true, 5255 | "requires": { 5256 | "locate-path": "^5.0.0", 5257 | "path-exists": "^4.0.0" 5258 | } 5259 | }, 5260 | "fs.realpath": { 5261 | "version": "1.0.0", 5262 | "dev": true 5263 | }, 5264 | "fsevents": { 5265 | "version": "2.3.2", 5266 | "dev": true, 5267 | "optional": true 5268 | }, 5269 | "function-bind": { 5270 | "version": "1.1.1", 5271 | "dev": true 5272 | }, 5273 | "gensync": { 5274 | "version": "1.0.0-beta.2", 5275 | "dev": true 5276 | }, 5277 | "get-caller-file": { 5278 | "version": "2.0.5", 5279 | "dev": true 5280 | }, 5281 | "get-package-type": { 5282 | "version": "0.1.0", 5283 | "dev": true 5284 | }, 5285 | "get-stream": { 5286 | "version": "6.0.1", 5287 | "dev": true 5288 | }, 5289 | "glob": { 5290 | "version": "7.1.6", 5291 | "dev": true, 5292 | "requires": { 5293 | "fs.realpath": "^1.0.0", 5294 | "inflight": "^1.0.4", 5295 | "inherits": "2", 5296 | "minimatch": "^3.0.4", 5297 | "once": "^1.3.0", 5298 | "path-is-absolute": "^1.0.0" 5299 | } 5300 | }, 5301 | "glob-parent": { 5302 | "version": "5.1.2", 5303 | "dev": true, 5304 | "requires": { 5305 | "is-glob": "^4.0.1" 5306 | } 5307 | }, 5308 | "globals": { 5309 | "version": "11.12.0", 5310 | "dev": true 5311 | }, 5312 | "graceful-fs": { 5313 | "version": "4.2.10", 5314 | "dev": true 5315 | }, 5316 | "has": { 5317 | "version": "1.0.3", 5318 | "dev": true, 5319 | "requires": { 5320 | "function-bind": "^1.1.1" 5321 | } 5322 | }, 5323 | "has-flag": { 5324 | "version": "4.0.0", 5325 | "dev": true 5326 | }, 5327 | "html-escaper": { 5328 | "version": "2.0.2", 5329 | "dev": true 5330 | }, 5331 | "human-signals": { 5332 | "version": "2.1.0", 5333 | "dev": true 5334 | }, 5335 | "import-local": { 5336 | "version": "3.0.2", 5337 | "dev": true, 5338 | "requires": { 5339 | "pkg-dir": "^4.2.0", 5340 | "resolve-cwd": "^3.0.0" 5341 | } 5342 | }, 5343 | "imurmurhash": { 5344 | "version": "0.1.4", 5345 | "dev": true 5346 | }, 5347 | "inflight": { 5348 | "version": "1.0.6", 5349 | "dev": true, 5350 | "requires": { 5351 | "once": "^1.3.0", 5352 | "wrappy": "1" 5353 | } 5354 | }, 5355 | "inherits": { 5356 | "version": "2.0.4", 5357 | "dev": true 5358 | }, 5359 | "is-binary-path": { 5360 | "version": "2.1.0", 5361 | "dev": true, 5362 | "requires": { 5363 | "binary-extensions": "^2.0.0" 5364 | } 5365 | }, 5366 | "is-core-module": { 5367 | "version": "2.12.0", 5368 | "dev": true, 5369 | "requires": { 5370 | "has": "^1.0.3" 5371 | } 5372 | }, 5373 | "is-extglob": { 5374 | "version": "2.1.1", 5375 | "dev": true 5376 | }, 5377 | "is-fullwidth-code-point": { 5378 | "version": "3.0.0", 5379 | "dev": true 5380 | }, 5381 | "is-generator-fn": { 5382 | "version": "2.1.0", 5383 | "dev": true 5384 | }, 5385 | "is-glob": { 5386 | "version": "4.0.3", 5387 | "dev": true, 5388 | "requires": { 5389 | "is-extglob": "^2.1.1" 5390 | } 5391 | }, 5392 | "is-number": { 5393 | "version": "7.0.0", 5394 | "dev": true 5395 | }, 5396 | "is-stream": { 5397 | "version": "2.0.0", 5398 | "dev": true 5399 | }, 5400 | "isexe": { 5401 | "version": "2.0.0", 5402 | "dev": true 5403 | }, 5404 | "istanbul-lib-coverage": { 5405 | "version": "3.0.0", 5406 | "dev": true 5407 | }, 5408 | "istanbul-lib-instrument": { 5409 | "version": "5.1.0", 5410 | "dev": true, 5411 | "requires": { 5412 | "@babel/core": "^7.12.3", 5413 | "@babel/parser": "^7.14.7", 5414 | "@istanbuljs/schema": "^0.1.2", 5415 | "istanbul-lib-coverage": "^3.2.0", 5416 | "semver": "^6.3.0" 5417 | }, 5418 | "dependencies": { 5419 | "@ampproject/remapping": { 5420 | "version": "2.1.2", 5421 | "dev": true, 5422 | "requires": { 5423 | "@jridgewell/trace-mapping": "^0.3.0" 5424 | } 5425 | }, 5426 | "@babel/compat-data": { 5427 | "version": "7.17.7", 5428 | "dev": true 5429 | }, 5430 | "@babel/core": { 5431 | "version": "7.17.9", 5432 | "dev": true, 5433 | "requires": { 5434 | "@ampproject/remapping": "^2.1.0", 5435 | "@babel/code-frame": "^7.16.7", 5436 | "@babel/generator": "^7.17.9", 5437 | "@babel/helper-compilation-targets": "^7.17.7", 5438 | "@babel/helper-module-transforms": "^7.17.7", 5439 | "@babel/helpers": "^7.17.9", 5440 | "@babel/parser": "^7.17.9", 5441 | "@babel/template": "^7.16.7", 5442 | "@babel/traverse": "^7.17.9", 5443 | "@babel/types": "^7.17.0", 5444 | "convert-source-map": "^1.7.0", 5445 | "debug": "^4.1.0", 5446 | "gensync": "^1.0.0-beta.2", 5447 | "json5": "^2.2.1", 5448 | "semver": "^6.3.0" 5449 | } 5450 | }, 5451 | "@babel/helper-compilation-targets": { 5452 | "version": "7.17.7", 5453 | "dev": true, 5454 | "requires": { 5455 | "@babel/compat-data": "^7.17.7", 5456 | "@babel/helper-validator-option": "^7.16.7", 5457 | "browserslist": "^4.17.5", 5458 | "semver": "^6.3.0" 5459 | } 5460 | }, 5461 | "@babel/helper-module-imports": { 5462 | "version": "7.16.7", 5463 | "dev": true, 5464 | "requires": { 5465 | "@babel/types": "^7.16.7" 5466 | } 5467 | }, 5468 | "@babel/helper-module-transforms": { 5469 | "version": "7.17.7", 5470 | "dev": true, 5471 | "requires": { 5472 | "@babel/helper-environment-visitor": "^7.16.7", 5473 | "@babel/helper-module-imports": "^7.16.7", 5474 | "@babel/helper-simple-access": "^7.17.7", 5475 | "@babel/helper-split-export-declaration": "^7.16.7", 5476 | "@babel/helper-validator-identifier": "^7.16.7", 5477 | "@babel/template": "^7.16.7", 5478 | "@babel/traverse": "^7.17.3", 5479 | "@babel/types": "^7.17.0" 5480 | } 5481 | }, 5482 | "@babel/helper-simple-access": { 5483 | "version": "7.17.7", 5484 | "dev": true, 5485 | "requires": { 5486 | "@babel/types": "^7.17.0" 5487 | } 5488 | }, 5489 | "@babel/helper-validator-option": { 5490 | "version": "7.16.7", 5491 | "dev": true 5492 | }, 5493 | "@babel/helpers": { 5494 | "version": "7.17.9", 5495 | "dev": true, 5496 | "requires": { 5497 | "@babel/template": "^7.16.7", 5498 | "@babel/traverse": "^7.17.9", 5499 | "@babel/types": "^7.17.0" 5500 | } 5501 | }, 5502 | "browserslist": { 5503 | "version": "4.20.2", 5504 | "dev": true, 5505 | "requires": { 5506 | "caniuse-lite": "^1.0.30001317", 5507 | "electron-to-chromium": "^1.4.84", 5508 | "escalade": "^3.1.1", 5509 | "node-releases": "^2.0.2", 5510 | "picocolors": "^1.0.0" 5511 | } 5512 | }, 5513 | "caniuse-lite": { 5514 | "version": "1.0.30001327", 5515 | "dev": true 5516 | }, 5517 | "electron-to-chromium": { 5518 | "version": "1.4.106", 5519 | "dev": true 5520 | }, 5521 | "istanbul-lib-coverage": { 5522 | "version": "3.2.0", 5523 | "dev": true 5524 | }, 5525 | "node-releases": { 5526 | "version": "2.0.2", 5527 | "dev": true 5528 | } 5529 | } 5530 | }, 5531 | "istanbul-lib-report": { 5532 | "version": "3.0.0", 5533 | "dev": true, 5534 | "requires": { 5535 | "istanbul-lib-coverage": "^3.0.0", 5536 | "make-dir": "^3.0.0", 5537 | "supports-color": "^7.1.0" 5538 | } 5539 | }, 5540 | "istanbul-lib-source-maps": { 5541 | "version": "4.0.0", 5542 | "dev": true, 5543 | "requires": { 5544 | "debug": "^4.1.1", 5545 | "istanbul-lib-coverage": "^3.0.0", 5546 | "source-map": "^0.6.1" 5547 | } 5548 | }, 5549 | "istanbul-reports": { 5550 | "version": "3.1.4", 5551 | "dev": true, 5552 | "requires": { 5553 | "html-escaper": "^2.0.0", 5554 | "istanbul-lib-report": "^3.0.0" 5555 | } 5556 | }, 5557 | "jest": { 5558 | "version": "29.5.0", 5559 | "dev": true, 5560 | "requires": { 5561 | "@jest/core": "^29.5.0", 5562 | "@jest/types": "^29.5.0", 5563 | "import-local": "^3.0.2", 5564 | "jest-cli": "^29.5.0" 5565 | } 5566 | }, 5567 | "jest-changed-files": { 5568 | "version": "29.5.0", 5569 | "dev": true, 5570 | "requires": { 5571 | "execa": "^5.0.0", 5572 | "p-limit": "^3.1.0" 5573 | } 5574 | }, 5575 | "jest-circus": { 5576 | "version": "29.5.0", 5577 | "dev": true, 5578 | "requires": { 5579 | "@jest/environment": "^29.5.0", 5580 | "@jest/expect": "^29.5.0", 5581 | "@jest/test-result": "^29.5.0", 5582 | "@jest/types": "^29.5.0", 5583 | "@types/node": "*", 5584 | "chalk": "^4.0.0", 5585 | "co": "^4.6.0", 5586 | "dedent": "^0.7.0", 5587 | "is-generator-fn": "^2.0.0", 5588 | "jest-each": "^29.5.0", 5589 | "jest-matcher-utils": "^29.5.0", 5590 | "jest-message-util": "^29.5.0", 5591 | "jest-runtime": "^29.5.0", 5592 | "jest-snapshot": "^29.5.0", 5593 | "jest-util": "^29.5.0", 5594 | "p-limit": "^3.1.0", 5595 | "pretty-format": "^29.5.0", 5596 | "pure-rand": "^6.0.0", 5597 | "slash": "^3.0.0", 5598 | "stack-utils": "^2.0.3" 5599 | } 5600 | }, 5601 | "jest-cli": { 5602 | "version": "29.5.0", 5603 | "dev": true, 5604 | "requires": { 5605 | "@jest/core": "^29.5.0", 5606 | "@jest/test-result": "^29.5.0", 5607 | "@jest/types": "^29.5.0", 5608 | "chalk": "^4.0.0", 5609 | "exit": "^0.1.2", 5610 | "graceful-fs": "^4.2.9", 5611 | "import-local": "^3.0.2", 5612 | "jest-config": "^29.5.0", 5613 | "jest-util": "^29.5.0", 5614 | "jest-validate": "^29.5.0", 5615 | "prompts": "^2.0.1", 5616 | "yargs": "^17.3.1" 5617 | } 5618 | }, 5619 | "jest-config": { 5620 | "version": "29.5.0", 5621 | "dev": true, 5622 | "requires": { 5623 | "@babel/core": "^7.11.6", 5624 | "@jest/test-sequencer": "^29.5.0", 5625 | "@jest/types": "^29.5.0", 5626 | "babel-jest": "^29.5.0", 5627 | "chalk": "^4.0.0", 5628 | "ci-info": "^3.2.0", 5629 | "deepmerge": "^4.2.2", 5630 | "glob": "^7.1.3", 5631 | "graceful-fs": "^4.2.9", 5632 | "jest-circus": "^29.5.0", 5633 | "jest-environment-node": "^29.5.0", 5634 | "jest-get-type": "^29.4.3", 5635 | "jest-regex-util": "^29.4.3", 5636 | "jest-resolve": "^29.5.0", 5637 | "jest-runner": "^29.5.0", 5638 | "jest-util": "^29.5.0", 5639 | "jest-validate": "^29.5.0", 5640 | "micromatch": "^4.0.4", 5641 | "parse-json": "^5.2.0", 5642 | "pretty-format": "^29.5.0", 5643 | "slash": "^3.0.0", 5644 | "strip-json-comments": "^3.1.1" 5645 | } 5646 | }, 5647 | "jest-diff": { 5648 | "version": "29.5.0", 5649 | "dev": true, 5650 | "requires": { 5651 | "chalk": "^4.0.0", 5652 | "diff-sequences": "^29.4.3", 5653 | "jest-get-type": "^29.4.3", 5654 | "pretty-format": "^29.5.0" 5655 | } 5656 | }, 5657 | "jest-docblock": { 5658 | "version": "29.4.3", 5659 | "dev": true, 5660 | "requires": { 5661 | "detect-newline": "^3.0.0" 5662 | } 5663 | }, 5664 | "jest-each": { 5665 | "version": "29.5.0", 5666 | "dev": true, 5667 | "requires": { 5668 | "@jest/types": "^29.5.0", 5669 | "chalk": "^4.0.0", 5670 | "jest-get-type": "^29.4.3", 5671 | "jest-util": "^29.5.0", 5672 | "pretty-format": "^29.5.0" 5673 | } 5674 | }, 5675 | "jest-environment-node": { 5676 | "version": "29.5.0", 5677 | "dev": true, 5678 | "requires": { 5679 | "@jest/environment": "^29.5.0", 5680 | "@jest/fake-timers": "^29.5.0", 5681 | "@jest/types": "^29.5.0", 5682 | "@types/node": "*", 5683 | "jest-mock": "^29.5.0", 5684 | "jest-util": "^29.5.0" 5685 | } 5686 | }, 5687 | "jest-get-type": { 5688 | "version": "29.4.3", 5689 | "dev": true 5690 | }, 5691 | "jest-haste-map": { 5692 | "version": "29.5.0", 5693 | "dev": true, 5694 | "requires": { 5695 | "@jest/types": "^29.5.0", 5696 | "@types/graceful-fs": "^4.1.3", 5697 | "@types/node": "*", 5698 | "anymatch": "^3.0.3", 5699 | "fb-watchman": "^2.0.0", 5700 | "fsevents": "^2.3.2", 5701 | "graceful-fs": "^4.2.9", 5702 | "jest-regex-util": "^29.4.3", 5703 | "jest-util": "^29.5.0", 5704 | "jest-worker": "^29.5.0", 5705 | "micromatch": "^4.0.4", 5706 | "walker": "^1.0.8" 5707 | }, 5708 | "dependencies": { 5709 | "anymatch": { 5710 | "version": "3.1.1", 5711 | "dev": true, 5712 | "requires": { 5713 | "normalize-path": "^3.0.0", 5714 | "picomatch": "^2.0.4" 5715 | } 5716 | }, 5717 | "picomatch": { 5718 | "version": "2.2.2", 5719 | "dev": true 5720 | } 5721 | } 5722 | }, 5723 | "jest-leak-detector": { 5724 | "version": "29.5.0", 5725 | "dev": true, 5726 | "requires": { 5727 | "jest-get-type": "^29.4.3", 5728 | "pretty-format": "^29.5.0" 5729 | } 5730 | }, 5731 | "jest-matcher-css": { 5732 | "version": "1.1.0", 5733 | "dev": true 5734 | }, 5735 | "jest-matcher-utils": { 5736 | "version": "29.5.0", 5737 | "dev": true, 5738 | "requires": { 5739 | "chalk": "^4.0.0", 5740 | "jest-diff": "^29.5.0", 5741 | "jest-get-type": "^29.4.3", 5742 | "pretty-format": "^29.5.0" 5743 | } 5744 | }, 5745 | "jest-message-util": { 5746 | "version": "29.5.0", 5747 | "dev": true, 5748 | "requires": { 5749 | "@babel/code-frame": "^7.12.13", 5750 | "@jest/types": "^29.5.0", 5751 | "@types/stack-utils": "^2.0.0", 5752 | "chalk": "^4.0.0", 5753 | "graceful-fs": "^4.2.9", 5754 | "micromatch": "^4.0.4", 5755 | "pretty-format": "^29.5.0", 5756 | "slash": "^3.0.0", 5757 | "stack-utils": "^2.0.3" 5758 | } 5759 | }, 5760 | "jest-mock": { 5761 | "version": "29.5.0", 5762 | "dev": true, 5763 | "requires": { 5764 | "@jest/types": "^29.5.0", 5765 | "@types/node": "*", 5766 | "jest-util": "^29.5.0" 5767 | } 5768 | }, 5769 | "jest-pnp-resolver": { 5770 | "version": "1.2.2", 5771 | "dev": true, 5772 | "requires": {} 5773 | }, 5774 | "jest-regex-util": { 5775 | "version": "29.4.3", 5776 | "dev": true 5777 | }, 5778 | "jest-resolve": { 5779 | "version": "29.5.0", 5780 | "dev": true, 5781 | "requires": { 5782 | "chalk": "^4.0.0", 5783 | "graceful-fs": "^4.2.9", 5784 | "jest-haste-map": "^29.5.0", 5785 | "jest-pnp-resolver": "^1.2.2", 5786 | "jest-util": "^29.5.0", 5787 | "jest-validate": "^29.5.0", 5788 | "resolve": "^1.20.0", 5789 | "resolve.exports": "^2.0.0", 5790 | "slash": "^3.0.0" 5791 | }, 5792 | "dependencies": { 5793 | "is-core-module": { 5794 | "version": "2.8.1", 5795 | "dev": true, 5796 | "requires": { 5797 | "has": "^1.0.3" 5798 | } 5799 | }, 5800 | "resolve": { 5801 | "version": "1.22.0", 5802 | "dev": true, 5803 | "requires": { 5804 | "is-core-module": "^2.8.1", 5805 | "path-parse": "^1.0.7", 5806 | "supports-preserve-symlinks-flag": "^1.0.0" 5807 | } 5808 | } 5809 | } 5810 | }, 5811 | "jest-resolve-dependencies": { 5812 | "version": "29.5.0", 5813 | "dev": true, 5814 | "requires": { 5815 | "jest-regex-util": "^29.4.3", 5816 | "jest-snapshot": "^29.5.0" 5817 | } 5818 | }, 5819 | "jest-runner": { 5820 | "version": "29.5.0", 5821 | "dev": true, 5822 | "requires": { 5823 | "@jest/console": "^29.5.0", 5824 | "@jest/environment": "^29.5.0", 5825 | "@jest/test-result": "^29.5.0", 5826 | "@jest/transform": "^29.5.0", 5827 | "@jest/types": "^29.5.0", 5828 | "@types/node": "*", 5829 | "chalk": "^4.0.0", 5830 | "emittery": "^0.13.1", 5831 | "graceful-fs": "^4.2.9", 5832 | "jest-docblock": "^29.4.3", 5833 | "jest-environment-node": "^29.5.0", 5834 | "jest-haste-map": "^29.5.0", 5835 | "jest-leak-detector": "^29.5.0", 5836 | "jest-message-util": "^29.5.0", 5837 | "jest-resolve": "^29.5.0", 5838 | "jest-runtime": "^29.5.0", 5839 | "jest-util": "^29.5.0", 5840 | "jest-watcher": "^29.5.0", 5841 | "jest-worker": "^29.5.0", 5842 | "p-limit": "^3.1.0", 5843 | "source-map-support": "0.5.13" 5844 | } 5845 | }, 5846 | "jest-runtime": { 5847 | "version": "29.5.0", 5848 | "dev": true, 5849 | "requires": { 5850 | "@jest/environment": "^29.5.0", 5851 | "@jest/fake-timers": "^29.5.0", 5852 | "@jest/globals": "^29.5.0", 5853 | "@jest/source-map": "^29.4.3", 5854 | "@jest/test-result": "^29.5.0", 5855 | "@jest/transform": "^29.5.0", 5856 | "@jest/types": "^29.5.0", 5857 | "@types/node": "*", 5858 | "chalk": "^4.0.0", 5859 | "cjs-module-lexer": "^1.0.0", 5860 | "collect-v8-coverage": "^1.0.0", 5861 | "glob": "^7.1.3", 5862 | "graceful-fs": "^4.2.9", 5863 | "jest-haste-map": "^29.5.0", 5864 | "jest-message-util": "^29.5.0", 5865 | "jest-mock": "^29.5.0", 5866 | "jest-regex-util": "^29.4.3", 5867 | "jest-resolve": "^29.5.0", 5868 | "jest-snapshot": "^29.5.0", 5869 | "jest-util": "^29.5.0", 5870 | "slash": "^3.0.0", 5871 | "strip-bom": "^4.0.0" 5872 | } 5873 | }, 5874 | "jest-snapshot": { 5875 | "version": "29.5.0", 5876 | "dev": true, 5877 | "requires": { 5878 | "@babel/core": "^7.11.6", 5879 | "@babel/generator": "^7.7.2", 5880 | "@babel/plugin-syntax-jsx": "^7.7.2", 5881 | "@babel/plugin-syntax-typescript": "^7.7.2", 5882 | "@babel/traverse": "^7.7.2", 5883 | "@babel/types": "^7.3.3", 5884 | "@jest/expect-utils": "^29.5.0", 5885 | "@jest/transform": "^29.5.0", 5886 | "@jest/types": "^29.5.0", 5887 | "@types/babel__traverse": "^7.0.6", 5888 | "@types/prettier": "^2.1.5", 5889 | "babel-preset-current-node-syntax": "^1.0.0", 5890 | "chalk": "^4.0.0", 5891 | "expect": "^29.5.0", 5892 | "graceful-fs": "^4.2.9", 5893 | "jest-diff": "^29.5.0", 5894 | "jest-get-type": "^29.4.3", 5895 | "jest-matcher-utils": "^29.5.0", 5896 | "jest-message-util": "^29.5.0", 5897 | "jest-util": "^29.5.0", 5898 | "natural-compare": "^1.4.0", 5899 | "pretty-format": "^29.5.0", 5900 | "semver": "^7.3.5" 5901 | }, 5902 | "dependencies": { 5903 | "lru-cache": { 5904 | "version": "6.0.0", 5905 | "dev": true, 5906 | "requires": { 5907 | "yallist": "^4.0.0" 5908 | } 5909 | }, 5910 | "semver": { 5911 | "version": "7.6.0", 5912 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", 5913 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", 5914 | "dev": true, 5915 | "requires": { 5916 | "lru-cache": "^6.0.0" 5917 | } 5918 | }, 5919 | "yallist": { 5920 | "version": "4.0.0", 5921 | "dev": true 5922 | } 5923 | } 5924 | }, 5925 | "jest-util": { 5926 | "version": "29.5.0", 5927 | "dev": true, 5928 | "requires": { 5929 | "@jest/types": "^29.5.0", 5930 | "@types/node": "*", 5931 | "chalk": "^4.0.0", 5932 | "ci-info": "^3.2.0", 5933 | "graceful-fs": "^4.2.9", 5934 | "picomatch": "^2.2.3" 5935 | } 5936 | }, 5937 | "jest-validate": { 5938 | "version": "29.5.0", 5939 | "dev": true, 5940 | "requires": { 5941 | "@jest/types": "^29.5.0", 5942 | "camelcase": "^6.2.0", 5943 | "chalk": "^4.0.0", 5944 | "jest-get-type": "^29.4.3", 5945 | "leven": "^3.1.0", 5946 | "pretty-format": "^29.5.0" 5947 | } 5948 | }, 5949 | "jest-watcher": { 5950 | "version": "29.5.0", 5951 | "dev": true, 5952 | "requires": { 5953 | "@jest/test-result": "^29.5.0", 5954 | "@jest/types": "^29.5.0", 5955 | "@types/node": "*", 5956 | "ansi-escapes": "^4.2.1", 5957 | "chalk": "^4.0.0", 5958 | "emittery": "^0.13.1", 5959 | "jest-util": "^29.5.0", 5960 | "string-length": "^4.0.1" 5961 | } 5962 | }, 5963 | "jest-worker": { 5964 | "version": "29.5.0", 5965 | "dev": true, 5966 | "requires": { 5967 | "@types/node": "*", 5968 | "jest-util": "^29.5.0", 5969 | "merge-stream": "^2.0.0", 5970 | "supports-color": "^8.0.0" 5971 | }, 5972 | "dependencies": { 5973 | "supports-color": { 5974 | "version": "8.1.1", 5975 | "dev": true, 5976 | "requires": { 5977 | "has-flag": "^4.0.0" 5978 | } 5979 | } 5980 | } 5981 | }, 5982 | "jiti": { 5983 | "version": "1.18.2", 5984 | "dev": true 5985 | }, 5986 | "js-tokens": { 5987 | "version": "4.0.0", 5988 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 5989 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 5990 | "dev": true 5991 | }, 5992 | "js-yaml": { 5993 | "version": "3.14.1", 5994 | "dev": true, 5995 | "requires": { 5996 | "argparse": "^1.0.7", 5997 | "esprima": "^4.0.0" 5998 | } 5999 | }, 6000 | "jsesc": { 6001 | "version": "2.5.2", 6002 | "dev": true 6003 | }, 6004 | "json-parse-even-better-errors": { 6005 | "version": "2.3.1", 6006 | "dev": true 6007 | }, 6008 | "json5": { 6009 | "version": "2.2.3", 6010 | "dev": true 6011 | }, 6012 | "kleur": { 6013 | "version": "3.0.3", 6014 | "dev": true 6015 | }, 6016 | "leven": { 6017 | "version": "3.1.0", 6018 | "dev": true 6019 | }, 6020 | "lilconfig": { 6021 | "version": "2.1.0", 6022 | "dev": true 6023 | }, 6024 | "lines-and-columns": { 6025 | "version": "1.1.6", 6026 | "dev": true 6027 | }, 6028 | "locate-path": { 6029 | "version": "5.0.0", 6030 | "dev": true, 6031 | "requires": { 6032 | "p-locate": "^4.1.0" 6033 | } 6034 | }, 6035 | "lru-cache": { 6036 | "version": "5.1.1", 6037 | "dev": true, 6038 | "requires": { 6039 | "yallist": "^3.0.2" 6040 | } 6041 | }, 6042 | "make-dir": { 6043 | "version": "3.1.0", 6044 | "dev": true, 6045 | "requires": { 6046 | "semver": "^6.0.0" 6047 | } 6048 | }, 6049 | "makeerror": { 6050 | "version": "1.0.12", 6051 | "dev": true, 6052 | "requires": { 6053 | "tmpl": "1.0.5" 6054 | } 6055 | }, 6056 | "merge-stream": { 6057 | "version": "2.0.0", 6058 | "dev": true 6059 | }, 6060 | "merge2": { 6061 | "version": "1.4.1", 6062 | "dev": true 6063 | }, 6064 | "micromatch": { 6065 | "version": "4.0.5", 6066 | "dev": true, 6067 | "requires": { 6068 | "braces": "^3.0.2", 6069 | "picomatch": "^2.3.1" 6070 | } 6071 | }, 6072 | "mimic-fn": { 6073 | "version": "2.1.0", 6074 | "dev": true 6075 | }, 6076 | "minimatch": { 6077 | "version": "3.1.2", 6078 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 6079 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 6080 | "dev": true, 6081 | "requires": { 6082 | "brace-expansion": "^1.1.7" 6083 | } 6084 | }, 6085 | "ms": { 6086 | "version": "2.1.2", 6087 | "dev": true 6088 | }, 6089 | "mz": { 6090 | "version": "2.7.0", 6091 | "dev": true, 6092 | "requires": { 6093 | "any-promise": "^1.0.0", 6094 | "object-assign": "^4.0.1", 6095 | "thenify-all": "^1.0.0" 6096 | } 6097 | }, 6098 | "nanoid": { 6099 | "version": "3.3.7", 6100 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 6101 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 6102 | "dev": true 6103 | }, 6104 | "natural-compare": { 6105 | "version": "1.4.0", 6106 | "dev": true 6107 | }, 6108 | "node-int64": { 6109 | "version": "0.4.0", 6110 | "dev": true 6111 | }, 6112 | "node-releases": { 6113 | "version": "2.0.10", 6114 | "dev": true 6115 | }, 6116 | "normalize-path": { 6117 | "version": "3.0.0", 6118 | "dev": true 6119 | }, 6120 | "npm-run-path": { 6121 | "version": "4.0.1", 6122 | "dev": true, 6123 | "requires": { 6124 | "path-key": "^3.0.0" 6125 | } 6126 | }, 6127 | "object-assign": { 6128 | "version": "4.1.1", 6129 | "dev": true 6130 | }, 6131 | "object-hash": { 6132 | "version": "3.0.0", 6133 | "dev": true 6134 | }, 6135 | "once": { 6136 | "version": "1.4.0", 6137 | "dev": true, 6138 | "requires": { 6139 | "wrappy": "1" 6140 | } 6141 | }, 6142 | "onetime": { 6143 | "version": "5.1.2", 6144 | "dev": true, 6145 | "requires": { 6146 | "mimic-fn": "^2.1.0" 6147 | } 6148 | }, 6149 | "p-limit": { 6150 | "version": "3.1.0", 6151 | "dev": true, 6152 | "requires": { 6153 | "yocto-queue": "^0.1.0" 6154 | } 6155 | }, 6156 | "p-locate": { 6157 | "version": "4.1.0", 6158 | "dev": true, 6159 | "requires": { 6160 | "p-limit": "^2.2.0" 6161 | }, 6162 | "dependencies": { 6163 | "p-limit": { 6164 | "version": "2.3.0", 6165 | "dev": true, 6166 | "requires": { 6167 | "p-try": "^2.0.0" 6168 | } 6169 | } 6170 | } 6171 | }, 6172 | "p-try": { 6173 | "version": "2.2.0", 6174 | "dev": true 6175 | }, 6176 | "parse-json": { 6177 | "version": "5.2.0", 6178 | "dev": true, 6179 | "requires": { 6180 | "@babel/code-frame": "^7.0.0", 6181 | "error-ex": "^1.3.1", 6182 | "json-parse-even-better-errors": "^2.3.0", 6183 | "lines-and-columns": "^1.1.6" 6184 | } 6185 | }, 6186 | "path-exists": { 6187 | "version": "4.0.0", 6188 | "dev": true 6189 | }, 6190 | "path-is-absolute": { 6191 | "version": "1.0.1", 6192 | "dev": true 6193 | }, 6194 | "path-key": { 6195 | "version": "3.1.1", 6196 | "dev": true 6197 | }, 6198 | "path-parse": { 6199 | "version": "1.0.7", 6200 | "dev": true 6201 | }, 6202 | "picocolors": { 6203 | "version": "1.0.0", 6204 | "dev": true 6205 | }, 6206 | "picomatch": { 6207 | "version": "2.3.1", 6208 | "dev": true 6209 | }, 6210 | "pify": { 6211 | "version": "2.3.0", 6212 | "dev": true 6213 | }, 6214 | "pirates": { 6215 | "version": "4.0.5", 6216 | "dev": true 6217 | }, 6218 | "pkg-dir": { 6219 | "version": "4.2.0", 6220 | "dev": true, 6221 | "requires": { 6222 | "find-up": "^4.0.0" 6223 | } 6224 | }, 6225 | "postcss": { 6226 | "version": "8.4.38", 6227 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", 6228 | "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", 6229 | "dev": true, 6230 | "requires": { 6231 | "nanoid": "^3.3.7", 6232 | "picocolors": "^1.0.0", 6233 | "source-map-js": "^1.2.0" 6234 | } 6235 | }, 6236 | "postcss-import": { 6237 | "version": "14.1.0", 6238 | "dev": true, 6239 | "requires": { 6240 | "postcss-value-parser": "^4.0.0", 6241 | "read-cache": "^1.0.0", 6242 | "resolve": "^1.1.7" 6243 | } 6244 | }, 6245 | "postcss-js": { 6246 | "version": "4.0.0", 6247 | "dev": true, 6248 | "requires": { 6249 | "camelcase-css": "^2.0.1" 6250 | } 6251 | }, 6252 | "postcss-load-config": { 6253 | "version": "3.1.4", 6254 | "dev": true, 6255 | "requires": { 6256 | "lilconfig": "^2.0.5", 6257 | "yaml": "^1.10.2" 6258 | }, 6259 | "dependencies": { 6260 | "lilconfig": { 6261 | "version": "2.0.5", 6262 | "dev": true 6263 | } 6264 | } 6265 | }, 6266 | "postcss-nested": { 6267 | "version": "6.0.0", 6268 | "dev": true, 6269 | "requires": { 6270 | "postcss-selector-parser": "^6.0.10" 6271 | } 6272 | }, 6273 | "postcss-selector-parser": { 6274 | "version": "6.0.11", 6275 | "dev": true, 6276 | "requires": { 6277 | "cssesc": "^3.0.0", 6278 | "util-deprecate": "^1.0.2" 6279 | } 6280 | }, 6281 | "postcss-value-parser": { 6282 | "version": "4.2.0", 6283 | "dev": true 6284 | }, 6285 | "pretty-format": { 6286 | "version": "29.5.0", 6287 | "dev": true, 6288 | "requires": { 6289 | "@jest/schemas": "^29.4.3", 6290 | "ansi-styles": "^5.0.0", 6291 | "react-is": "^18.0.0" 6292 | }, 6293 | "dependencies": { 6294 | "ansi-styles": { 6295 | "version": "5.2.0", 6296 | "dev": true 6297 | } 6298 | } 6299 | }, 6300 | "prompts": { 6301 | "version": "2.4.0", 6302 | "dev": true, 6303 | "requires": { 6304 | "kleur": "^3.0.3", 6305 | "sisteransi": "^1.0.5" 6306 | } 6307 | }, 6308 | "pure-rand": { 6309 | "version": "6.0.1", 6310 | "dev": true 6311 | }, 6312 | "queue-microtask": { 6313 | "version": "1.2.3", 6314 | "dev": true 6315 | }, 6316 | "quick-lru": { 6317 | "version": "5.1.1", 6318 | "dev": true 6319 | }, 6320 | "react-is": { 6321 | "version": "18.2.0", 6322 | "dev": true 6323 | }, 6324 | "read-cache": { 6325 | "version": "1.0.0", 6326 | "dev": true, 6327 | "requires": { 6328 | "pify": "^2.3.0" 6329 | } 6330 | }, 6331 | "readdirp": { 6332 | "version": "3.6.0", 6333 | "dev": true, 6334 | "requires": { 6335 | "picomatch": "^2.2.1" 6336 | } 6337 | }, 6338 | "require-directory": { 6339 | "version": "2.1.1", 6340 | "dev": true 6341 | }, 6342 | "resolve": { 6343 | "version": "1.22.2", 6344 | "dev": true, 6345 | "requires": { 6346 | "is-core-module": "^2.11.0", 6347 | "path-parse": "^1.0.7", 6348 | "supports-preserve-symlinks-flag": "^1.0.0" 6349 | } 6350 | }, 6351 | "resolve-cwd": { 6352 | "version": "3.0.0", 6353 | "dev": true, 6354 | "requires": { 6355 | "resolve-from": "^5.0.0" 6356 | } 6357 | }, 6358 | "resolve-from": { 6359 | "version": "5.0.0", 6360 | "dev": true 6361 | }, 6362 | "resolve.exports": { 6363 | "version": "2.0.2", 6364 | "dev": true 6365 | }, 6366 | "reusify": { 6367 | "version": "1.0.4", 6368 | "dev": true 6369 | }, 6370 | "run-parallel": { 6371 | "version": "1.2.0", 6372 | "dev": true, 6373 | "requires": { 6374 | "queue-microtask": "^1.2.2" 6375 | } 6376 | }, 6377 | "safe-buffer": { 6378 | "version": "5.1.2", 6379 | "dev": true 6380 | }, 6381 | "semver": { 6382 | "version": "6.3.1", 6383 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 6384 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 6385 | "dev": true 6386 | }, 6387 | "shebang-command": { 6388 | "version": "2.0.0", 6389 | "dev": true, 6390 | "requires": { 6391 | "shebang-regex": "^3.0.0" 6392 | } 6393 | }, 6394 | "shebang-regex": { 6395 | "version": "3.0.0", 6396 | "dev": true 6397 | }, 6398 | "signal-exit": { 6399 | "version": "3.0.7", 6400 | "dev": true 6401 | }, 6402 | "sisteransi": { 6403 | "version": "1.0.5", 6404 | "dev": true 6405 | }, 6406 | "slash": { 6407 | "version": "3.0.0", 6408 | "dev": true 6409 | }, 6410 | "source-map": { 6411 | "version": "0.6.1", 6412 | "dev": true 6413 | }, 6414 | "source-map-js": { 6415 | "version": "1.2.0", 6416 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", 6417 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", 6418 | "dev": true 6419 | }, 6420 | "source-map-support": { 6421 | "version": "0.5.13", 6422 | "dev": true, 6423 | "requires": { 6424 | "buffer-from": "^1.0.0", 6425 | "source-map": "^0.6.0" 6426 | } 6427 | }, 6428 | "sprintf-js": { 6429 | "version": "1.0.3", 6430 | "dev": true 6431 | }, 6432 | "stack-utils": { 6433 | "version": "2.0.5", 6434 | "dev": true, 6435 | "requires": { 6436 | "escape-string-regexp": "^2.0.0" 6437 | }, 6438 | "dependencies": { 6439 | "escape-string-regexp": { 6440 | "version": "2.0.0", 6441 | "dev": true 6442 | } 6443 | } 6444 | }, 6445 | "string-length": { 6446 | "version": "4.0.2", 6447 | "dev": true, 6448 | "requires": { 6449 | "char-regex": "^1.0.2", 6450 | "strip-ansi": "^6.0.0" 6451 | } 6452 | }, 6453 | "string-width": { 6454 | "version": "4.2.0", 6455 | "dev": true, 6456 | "requires": { 6457 | "emoji-regex": "^8.0.0", 6458 | "is-fullwidth-code-point": "^3.0.0", 6459 | "strip-ansi": "^6.0.0" 6460 | } 6461 | }, 6462 | "strip-ansi": { 6463 | "version": "6.0.0", 6464 | "dev": true, 6465 | "requires": { 6466 | "ansi-regex": "^5.0.0" 6467 | } 6468 | }, 6469 | "strip-bom": { 6470 | "version": "4.0.0", 6471 | "dev": true 6472 | }, 6473 | "strip-final-newline": { 6474 | "version": "2.0.0", 6475 | "dev": true 6476 | }, 6477 | "strip-json-comments": { 6478 | "version": "3.1.1", 6479 | "dev": true 6480 | }, 6481 | "sucrase": { 6482 | "version": "3.32.0", 6483 | "dev": true, 6484 | "requires": { 6485 | "@jridgewell/gen-mapping": "^0.3.2", 6486 | "commander": "^4.0.0", 6487 | "glob": "7.1.6", 6488 | "lines-and-columns": "^1.1.6", 6489 | "mz": "^2.7.0", 6490 | "pirates": "^4.0.1", 6491 | "ts-interface-checker": "^0.1.9" 6492 | } 6493 | }, 6494 | "supports-color": { 6495 | "version": "7.2.0", 6496 | "dev": true, 6497 | "requires": { 6498 | "has-flag": "^4.0.0" 6499 | } 6500 | }, 6501 | "supports-preserve-symlinks-flag": { 6502 | "version": "1.0.0", 6503 | "dev": true 6504 | }, 6505 | "tailwindcss": { 6506 | "version": "3.3.1", 6507 | "dev": true, 6508 | "requires": { 6509 | "arg": "^5.0.2", 6510 | "chokidar": "^3.5.3", 6511 | "color-name": "^1.1.4", 6512 | "didyoumean": "^1.2.2", 6513 | "dlv": "^1.1.3", 6514 | "fast-glob": "^3.2.12", 6515 | "glob-parent": "^6.0.2", 6516 | "is-glob": "^4.0.3", 6517 | "jiti": "^1.17.2", 6518 | "lilconfig": "^2.0.6", 6519 | "micromatch": "^4.0.5", 6520 | "normalize-path": "^3.0.0", 6521 | "object-hash": "^3.0.0", 6522 | "picocolors": "^1.0.0", 6523 | "postcss": "^8.0.9", 6524 | "postcss-import": "^14.1.0", 6525 | "postcss-js": "^4.0.0", 6526 | "postcss-load-config": "^3.1.4", 6527 | "postcss-nested": "6.0.0", 6528 | "postcss-selector-parser": "^6.0.11", 6529 | "postcss-value-parser": "^4.2.0", 6530 | "quick-lru": "^5.1.1", 6531 | "resolve": "^1.22.1", 6532 | "sucrase": "^3.29.0" 6533 | }, 6534 | "dependencies": { 6535 | "glob-parent": { 6536 | "version": "6.0.2", 6537 | "dev": true, 6538 | "requires": { 6539 | "is-glob": "^4.0.3" 6540 | } 6541 | } 6542 | } 6543 | }, 6544 | "test-exclude": { 6545 | "version": "6.0.0", 6546 | "dev": true, 6547 | "requires": { 6548 | "@istanbuljs/schema": "^0.1.2", 6549 | "glob": "^7.1.4", 6550 | "minimatch": "^3.0.4" 6551 | } 6552 | }, 6553 | "thenify": { 6554 | "version": "3.3.1", 6555 | "dev": true, 6556 | "requires": { 6557 | "any-promise": "^1.0.0" 6558 | } 6559 | }, 6560 | "thenify-all": { 6561 | "version": "1.6.0", 6562 | "dev": true, 6563 | "requires": { 6564 | "thenify": ">= 3.1.0 < 4" 6565 | } 6566 | }, 6567 | "tmpl": { 6568 | "version": "1.0.5", 6569 | "dev": true 6570 | }, 6571 | "to-fast-properties": { 6572 | "version": "2.0.0", 6573 | "dev": true 6574 | }, 6575 | "to-regex-range": { 6576 | "version": "5.0.1", 6577 | "dev": true, 6578 | "requires": { 6579 | "is-number": "^7.0.0" 6580 | } 6581 | }, 6582 | "ts-interface-checker": { 6583 | "version": "0.1.13", 6584 | "dev": true 6585 | }, 6586 | "type-detect": { 6587 | "version": "4.0.8", 6588 | "dev": true 6589 | }, 6590 | "type-fest": { 6591 | "version": "0.11.0", 6592 | "dev": true 6593 | }, 6594 | "update-browserslist-db": { 6595 | "version": "1.0.10", 6596 | "dev": true, 6597 | "requires": { 6598 | "escalade": "^3.1.1", 6599 | "picocolors": "^1.0.0" 6600 | } 6601 | }, 6602 | "util-deprecate": { 6603 | "version": "1.0.2", 6604 | "dev": true 6605 | }, 6606 | "v8-to-istanbul": { 6607 | "version": "9.1.0", 6608 | "dev": true, 6609 | "requires": { 6610 | "@jridgewell/trace-mapping": "^0.3.12", 6611 | "@types/istanbul-lib-coverage": "^2.0.1", 6612 | "convert-source-map": "^1.6.0" 6613 | } 6614 | }, 6615 | "walker": { 6616 | "version": "1.0.8", 6617 | "dev": true, 6618 | "requires": { 6619 | "makeerror": "1.0.12" 6620 | } 6621 | }, 6622 | "which": { 6623 | "version": "2.0.2", 6624 | "dev": true, 6625 | "requires": { 6626 | "isexe": "^2.0.0" 6627 | } 6628 | }, 6629 | "wrap-ansi": { 6630 | "version": "7.0.0", 6631 | "dev": true, 6632 | "requires": { 6633 | "ansi-styles": "^4.0.0", 6634 | "string-width": "^4.1.0", 6635 | "strip-ansi": "^6.0.0" 6636 | } 6637 | }, 6638 | "wrappy": { 6639 | "version": "1.0.2", 6640 | "dev": true 6641 | }, 6642 | "write-file-atomic": { 6643 | "version": "4.0.2", 6644 | "dev": true, 6645 | "requires": { 6646 | "imurmurhash": "^0.1.4", 6647 | "signal-exit": "^3.0.7" 6648 | } 6649 | }, 6650 | "y18n": { 6651 | "version": "5.0.8", 6652 | "dev": true 6653 | }, 6654 | "yallist": { 6655 | "version": "3.1.1", 6656 | "dev": true 6657 | }, 6658 | "yaml": { 6659 | "version": "1.10.2", 6660 | "dev": true 6661 | }, 6662 | "yargs": { 6663 | "version": "17.7.1", 6664 | "dev": true, 6665 | "requires": { 6666 | "cliui": "^8.0.1", 6667 | "escalade": "^3.1.1", 6668 | "get-caller-file": "^2.0.5", 6669 | "require-directory": "^2.1.1", 6670 | "string-width": "^4.2.3", 6671 | "y18n": "^5.0.5", 6672 | "yargs-parser": "^21.1.1" 6673 | }, 6674 | "dependencies": { 6675 | "string-width": { 6676 | "version": "4.2.3", 6677 | "dev": true, 6678 | "requires": { 6679 | "emoji-regex": "^8.0.0", 6680 | "is-fullwidth-code-point": "^3.0.0", 6681 | "strip-ansi": "^6.0.1" 6682 | } 6683 | }, 6684 | "strip-ansi": { 6685 | "version": "6.0.1", 6686 | "dev": true, 6687 | "requires": { 6688 | "ansi-regex": "^5.0.1" 6689 | } 6690 | } 6691 | } 6692 | }, 6693 | "yargs-parser": { 6694 | "version": "21.1.1", 6695 | "dev": true 6696 | }, 6697 | "yocto-queue": { 6698 | "version": "0.1.0", 6699 | "dev": true 6700 | } 6701 | } 6702 | } 6703 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tailwindcss-theme-swapper", 3 | "version": "0.12.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "peerDependencies": { 7 | "tailwindcss": ">=3.0.0 || insiders" 8 | }, 9 | "devDependencies": { 10 | "jest": "^29.5.0", 11 | "jest-matcher-css": "^1.1.0", 12 | "postcss": "^8.4.21", 13 | "tailwindcss": "^3.3.1" 14 | }, 15 | "scripts": { 16 | "test": "jest" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const plugin = require('tailwindcss/plugin') 2 | const { getThemeAsCustomProps, resolveThemeConfig } = require('./utils') 3 | 4 | const defaultOptions = { 5 | themes: [], 6 | } 7 | 8 | const themeSwap = (options = defaultOptions) => ({ addBase }) => { 9 | const { themes } = options 10 | 11 | themes.forEach(themeConfig => { 12 | const { theme, mediaQuery, selectors = [] } = themeConfig 13 | 14 | if (selectors.length > 0) { 15 | addBase({ 16 | [selectors.join(', ')]: getThemeAsCustomProps(theme) 17 | }) 18 | } 19 | 20 | if (mediaQuery) { 21 | addBase({ 22 | [mediaQuery]: { 23 | ':root': getThemeAsCustomProps(theme), 24 | } 25 | }) 26 | } 27 | }) 28 | } 29 | 30 | module.exports = plugin.withOptions( 31 | themeSwap, 32 | (options = defaultOptions) => { 33 | const baseTheme = options 34 | .themes 35 | .find(theme => theme.name === 'base') 36 | 37 | return { 38 | theme: { 39 | extend: baseTheme && baseTheme.theme 40 | ? resolveThemeConfig(baseTheme.theme) 41 | : {} 42 | } 43 | } 44 | } 45 | ) 46 | -------------------------------------------------------------------------------- /src/utils.js: -------------------------------------------------------------------------------- 1 | const colorConfigKeys = [ 2 | 'accentColor', 3 | 'backgroundColor', 4 | 'borderColor', 5 | 'caretColor', 6 | 'colors', 7 | 'divideColor', 8 | 'fill', 9 | 'gradientColorStops', 10 | 'placeholderColor', 11 | 'ringColor', 12 | 'ringOffsetColor', 13 | 'stroke', 14 | 'textColor', 15 | ] 16 | 17 | function kebabCase (string) { 18 | return string 19 | .replace(/([a-z])([A-Z])/g, '$1-$2') 20 | .replace(/\s+/g, '-') 21 | .toLowerCase() 22 | } 23 | 24 | function flatten ( 25 | someObject, 26 | transformKey = (keys, value) => keys.join('.'), 27 | transformValue = (keys, value) => value, 28 | ) { 29 | const result = {} 30 | 31 | function flat (object, parentKeys) { 32 | for (const [key, value] of Object.entries(object)) { 33 | const keyPath = [...parentKeys, key] 34 | if (typeof value === 'object' && !Array.isArray(value)) { 35 | flat(value, keyPath) 36 | } else { 37 | result[transformKey(keyPath)] = transformValue(keyPath, value) 38 | } 39 | } 40 | } 41 | 42 | flat(someObject, []) 43 | 44 | return result 45 | } 46 | 47 | function getTailwindKeyName (keys) { 48 | return keys 49 | .filter(key => key.toLowerCase() !== 'default') 50 | .map(kebabCase) 51 | .map(key => key.replace(/[^a-z0-9\-]/gi, '_')) 52 | .join('-') 53 | } 54 | 55 | function toCustomPropertyValue (keys, value) { 56 | if (keys[0] === 'fontSize' && typeof value !== 'string') { 57 | return value[0] 58 | } 59 | 60 | if (Array.isArray(value)) { 61 | return value.join(', ') 62 | } 63 | 64 | return value 65 | } 66 | 67 | function toConfigValue (keys, value) { 68 | if ( 69 | keys[0] === 'fontSize' && 70 | typeof value !== 'string' && 71 | process.env.NODE_ENV !== 'test' 72 | ) { 73 | console.warn(`tailwindcss-theme-swapper: Only using the font size defined at ${keys.join('.')}. Support for this may come if enough people complain about it.`) 74 | } 75 | 76 | if (colorConfigKeys.includes(keys[0])) { 77 | return `color-mix(in srgb, var(--${getTailwindKeyName(keys)}) calc(100% * ), transparent)` 78 | } 79 | 80 | return `var(--${getTailwindKeyName(keys)})` 81 | } 82 | 83 | function getThemeAsCustomProps (themeConfig) { 84 | return flatten( 85 | themeConfig, 86 | keys => `--${getTailwindKeyName(keys)}`, 87 | toCustomPropertyValue 88 | ) 89 | } 90 | 91 | 92 | function resolveTailwindThemeConfig ( 93 | themeConfig, 94 | previousKeys = [] 95 | ) { 96 | const config = {} 97 | 98 | for (const [key, value] of Object.entries(themeConfig)) { 99 | const keyPath = [...previousKeys, key] 100 | if (typeof value === 'object' && !Array.isArray(value)) { 101 | config[key] = resolveTailwindThemeConfig(value, keyPath) 102 | } else { 103 | config[key] = toConfigValue(keyPath, value) 104 | } 105 | } 106 | 107 | return config 108 | } 109 | 110 | module.exports.tailwindConfigValueTransformer = toConfigValue 111 | module.exports.toCustomPropertyValue = toCustomPropertyValue 112 | module.exports.flatten = flatten 113 | module.exports.getTailwindKeyName = getTailwindKeyName 114 | module.exports.getThemeAsCustomProps = getThemeAsCustomProps 115 | module.exports.resolveThemeConfig = resolveTailwindThemeConfig 116 | module.exports.colorConfigKeys = colorConfigKeys 117 | -------------------------------------------------------------------------------- /test/index.test.js: -------------------------------------------------------------------------------- 1 | const postcss = require('postcss') 2 | const tailwindcss = require('tailwindcss') 3 | const cssMatcher = require('jest-matcher-css') 4 | const resolveConfig = require('tailwindcss/resolveConfig') 5 | const tokenPlugin = require('../src') 6 | 7 | expect.extend({ 8 | toMatchCss: cssMatcher, 9 | }) 10 | 11 | const defaultTheme = { 12 | colors: { 13 | hotpink: 'hotpink', 14 | 'with-opacity': 'rgba(255, 0, 0, 0.5)', 15 | primary: { 16 | default: '#f00', 17 | darker: '#400', 18 | }, 19 | }, 20 | spacing: { 21 | 'fart': '69px', 22 | '5.5': '550px', 23 | }, 24 | borderRadius: { 25 | default: '5px', 26 | }, 27 | fontFamily: { 28 | sans: ['Font A', 'Font B', 'Font C'] 29 | }, 30 | fontSize: { 31 | sm: '12px', 32 | complex: ['22px', { lineHeight: '1.2rem' }] 33 | }, 34 | } 35 | 36 | const darkTheme = { 37 | colors: { 38 | primary: { 39 | default: '#fff', 40 | darker: '#aaa', 41 | }, 42 | }, 43 | } 44 | 45 | const themeSwapperOptions = { 46 | themes: [{ 47 | name: 'base', 48 | selectors: [':root', '.light'], 49 | theme: defaultTheme, 50 | }, 51 | { 52 | name: 'dark', 53 | mediaQuery: '@media (prefers-color-scheme: dark)', 54 | theme: darkTheme, 55 | }, 56 | ], 57 | } 58 | 59 | const getPluginCss = (tailwindConfig = {}) => 60 | postcss(tailwindcss({ 61 | corePlugins: false, 62 | ...tailwindConfig, 63 | })) 64 | .process( 65 | `@tailwind base;`, { from: undefined } 66 | ) 67 | .then(({ css }) => css) 68 | 69 | describe('config extending', () => { 70 | const resolvedConfig = resolveConfig({ 71 | plugins: [ 72 | tokenPlugin(themeSwapperOptions) 73 | ], 74 | }) 75 | 76 | test('extend', () => { 77 | expect(resolvedConfig).toMatchObject({ 78 | "theme": { 79 | "colors": { 80 | "with-opacity": "color-mix(in srgb, var(--colors-with-opacity) calc(100% * ), transparent)", 81 | "hotpink": "color-mix(in srgb, var(--colors-hotpink) calc(100% * ), transparent)", 82 | "primary": { 83 | "default": "color-mix(in srgb, var(--colors-primary) calc(100% * ), transparent)", 84 | "darker": "color-mix(in srgb, var(--colors-primary-darker) calc(100% * ), transparent)", 85 | } 86 | }, 87 | "spacing": { 88 | "fart": "var(--spacing-fart)", 89 | }, 90 | "fontSize": { 91 | "sm": "var(--font-size-sm)", 92 | } 93 | }, 94 | }) 95 | }) 96 | }) 97 | 98 | describe('custom css', () => { 99 | test('the props should exist', () => { 100 | const sampleConfig = { plugins: [tokenPlugin(themeSwapperOptions)] } 101 | const sampleConfigOutput = ` 102 | :root, .light { 103 | --colors-hotpink: hotpink; 104 | --colors-with-opacity: rgba(255, 0, 0, 0.5); 105 | --colors-primary: #f00; 106 | --colors-primary-darker: #400; 107 | --spacing-fart: 69px; 108 | --spacing-5_5: 550px; 109 | --border-radius: 5px; 110 | --font-family-sans: Font A, Font B, Font C; 111 | --font-size-sm: 12px; 112 | --font-size-complex: 22px; 113 | } 114 | 115 | @media (prefers-color-scheme: dark) { 116 | :root { 117 | --colors-primary: #fff; 118 | --colors-primary-darker: #aaa; 119 | } 120 | } 121 | ` 122 | return getPluginCss(sampleConfig).then(css => { 123 | expect(css).toMatchCss(sampleConfigOutput) 124 | }) 125 | }) 126 | 127 | test('no options css', () => { 128 | const configWithoutBaseTheme = { 129 | plugins: [ 130 | tokenPlugin() 131 | ] 132 | } 133 | 134 | const outputWithoutBaseTheme = '' 135 | 136 | return getPluginCss(configWithoutBaseTheme).then(css => { 137 | expect(css).toMatchCss(outputWithoutBaseTheme) 138 | }) 139 | }) 140 | }) 141 | -------------------------------------------------------------------------------- /test/utils.test.js: -------------------------------------------------------------------------------- 1 | const { 2 | tailwindConfigValueTransformer, 3 | toCustomPropertyValue, 4 | flatten, 5 | getTailwindKeyName, 6 | getThemeAsCustomProps, 7 | resolveThemeConfig, 8 | } = require('../src/utils') 9 | 10 | describe('getTailwindKeyName', () => { 11 | test('should return array joined', () => { 12 | expect(getTailwindKeyName(['foo', 'bar'])).toBe('foo-bar') 13 | }) 14 | 15 | test('default should be removed from the path', () => { 16 | expect(getTailwindKeyName(['foo', 'default', 'bar'])).toBe('foo-bar') 17 | }) 18 | 19 | test('DEFAULT should be removed from the path', () => { 20 | expect(getTailwindKeyName(['foo', 'DEFAULT', 'bar'])).toBe('foo-bar') 21 | }) 22 | }) 23 | 24 | describe('flatten', () => { 25 | test('should flatten', () => { 26 | const result = flatten({ 27 | foo: { 28 | bar: { 29 | baz: 'whoa', 30 | }, 31 | }, 32 | not: { 33 | deep: true, 34 | }, 35 | shallow: 2, 36 | list: [1, 2], 37 | }) 38 | 39 | expect(result).toEqual({ 40 | 'foo.bar.baz': 'whoa', 41 | 'not.deep': true, 42 | 'shallow': 2, 43 | 'list': [1, 2], 44 | }) 45 | }) 46 | 47 | test('should flatten with callback', () => { 48 | const result = flatten({ 49 | foo: { 50 | bar: { 51 | baz: 1, 52 | }, 53 | }, 54 | }, keys => keys.join('---')) 55 | 56 | expect(result).toEqual({ 57 | 'foo---bar---baz': 1, 58 | }) 59 | }) 60 | 61 | test('should flatten with callback', () => { 62 | const result = flatten({ 63 | borderRadius: { 64 | default: 1, 65 | }, 66 | }, keys => `--${getTailwindKeyName(keys)}`) 67 | 68 | expect(result).toEqual({ 69 | '--border-radius': 1, 70 | }) 71 | }) 72 | }) 73 | 74 | describe('getThemeAsCustomProps', () => { 75 | test('should flatten to a simple object with custom props as the keys', () => { 76 | const result = getThemeAsCustomProps({ 77 | colors: { 78 | red: '#f00', 79 | hot: 'hotpink', 80 | primary: { 81 | default: '#444', 82 | }, 83 | }, 84 | textColor: { test: '#444' }, 85 | backgroundColor: { test: '#444' }, 86 | borderColor: { test: '#444' }, 87 | ringColor: { test: '#444' }, 88 | fontSize: { base: '16px' }, 89 | borderRadius: { default: '5px' }, 90 | spacing: { 91 | 5: '500px', 92 | 5.5: '550px', 93 | }, 94 | fontFamily: { 95 | foo: ['a', 'b', '"C 4"'], 96 | }, 97 | }) 98 | 99 | expect(result).toEqual({ 100 | '--colors-red': '#f00', 101 | '--colors-hot': 'hotpink', 102 | '--colors-primary': '#444', 103 | '--background-color-test': '#444', 104 | '--text-color-test': '#444', 105 | '--border-color-test': '#444', 106 | '--ring-color-test': '#444', 107 | '--font-size-base': '16px', 108 | '--border-radius': '5px', 109 | '--spacing-5': '500px', 110 | '--spacing-5_5': '550px', 111 | '--font-family-foo': 'a, b, "C 4"', 112 | }) 113 | }) 114 | 115 | describe('resolveThemeConfig', () => { 116 | test('should recursively set', () => { 117 | const result = resolveThemeConfig({ 118 | colors: { 119 | red: '#f00', 120 | primary: { 121 | default: '#f00', 122 | darker: '#400', 123 | } 124 | }, 125 | fontSize: { 126 | base: '1rem', 127 | }, 128 | spacing: { 129 | 5: '500px', 130 | 5.5: '550px', 131 | }, 132 | }) 133 | 134 | expect(result).toEqual({ 135 | colors: { 136 | red: "color-mix(in srgb, var(--colors-red) calc(100% * ), transparent)", 137 | primary: { 138 | default: "color-mix(in srgb, var(--colors-primary) calc(100% * ), transparent)", 139 | darker: "color-mix(in srgb, var(--colors-primary-darker) calc(100% * ), transparent)", 140 | }, 141 | }, 142 | fontSize: { 143 | base: 'var(--font-size-base)', 144 | }, 145 | spacing: { 146 | 5: 'var(--spacing-5)', 147 | 5.5: 'var(--spacing-5_5)', 148 | } 149 | }) 150 | }) 151 | }) 152 | 153 | describe('defaultCustomVarTransformer', () => { 154 | test('should return a joined string when array', () => { 155 | expect(toCustomPropertyValue(['fontFamily'], [1, 2, 3])).toEqual('1, 2, 3') 156 | }) 157 | 158 | test('should just return the value when it is not a color', () => { 159 | expect(toCustomPropertyValue(['fontSize'], '16px')).toEqual('16px') 160 | expect(toCustomPropertyValue(['fontSize'], ['16px', '1'])).toEqual('16px') 161 | }) 162 | }) 163 | 164 | describe('tailwindConfigValueTransformer', () => { 165 | test('should return a joined string when an array', () => { 166 | expect(tailwindConfigValueTransformer(['fontFamily', 'sans'], ['font a', 'font b'])).toEqual('var(--font-family-sans)') 167 | }) 168 | 169 | test('should just use the font-size when using a more complex value for fontSize', () => { 170 | expect(tailwindConfigValueTransformer(['fontSize', 'complex'], ['24px', { lineHeight: '1.2' }])).toEqual('var(--font-size-complex)') 171 | expect(tailwindConfigValueTransformer(['fontSize', 'complex'], ['22px', '1.2'])).toEqual('var(--font-size-complex)') 172 | }) 173 | 174 | test('should just return the value when it is not a color', () => { 175 | expect(tailwindConfigValueTransformer(['colors', 'primary'], 'rgb(255, 0, 0)')).toEqual('color-mix(in srgb, var(--colors-primary) calc(100% * ), transparent)') 176 | expect(tailwindConfigValueTransformer(['fontSize'], '16px')).toEqual('var(--font-size)') 177 | }) 178 | }) 179 | }) 180 | --------------------------------------------------------------------------------