├── .github └── FUNDING.yml ├── .gitignore ├── LICENSE.md ├── README.md ├── dist └── index.js ├── index.html ├── jest.config.ts ├── package.json ├── pnpm-lock.yaml ├── src ├── cli.ts └── index.ts ├── tests └── index.test.ts ├── ui.css └── ui.js /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [mathiscode] 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # MIT License 2 | 3 | Copyright (c) 2025 Jay Mathis 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # @mathiscode/password-leak 4 | 5 | [![Live Demo](https://img.shields.io/badge/live-demo-blue?style=for-the-badge)](https://password-leak.vercel.app) 6 | 7 | [![Version](https://img.shields.io/npm/v/@mathiscode/password-leak.svg?color=blue)](https://www.npmjs.com/package/@mathiscode/password-leak) 8 | [![Downloads](https://img.shields.io/npm/dm/@mathiscode/password-leak.svg?color=blue)](https://www.npmjs.com/package/@mathiscode/password-leak) 9 | [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-blue.svg)](https://github.com/mathiscode/password-leak/compare) 10 | [![GitHub license](https://img.shields.io/github/license/mathiscode/password-leak.svg?color=blue)](https://github.com/mathiscode/password-leak/blob/master/LICENSE.md) 11 | [![Known Vulnerabilities](https://snyk.io/test/github/mathiscode/password-leak/badge.svg?targetFile=package.json)](https://snyk.io/test/github/mathiscode/password-leak?targetFile=package.json) 12 | 13 | --- 14 | 15 | - [Introduction](#introduction) 16 | - [How is this safe?](#how-is-this-safe) 17 | - [Installation](#installation) 18 | - [Usage in Browser](#usage-in-browser) 19 | - [Usage in Node.js](#usage-in-nodejs) 20 | - [With import/await](#with-importawait) 21 | - [With require/sync](#with-requiresync) 22 | - [Usage in Command Line](#usage-in-command-line) 23 | - [Development](#development) 24 | 25 | --- 26 | 27 | ## Introduction 28 | 29 | `password-leak` is a JavaScript module that can be used to determine if a password is compromised by checking with the [Have I Been Pwned API](https://haveibeenpwned.com/API/). 30 | 31 | ## How is this safe? 32 | 33 | Your passwords are **NEVER** transmitted to any other system. This library makes use of the [Have I Been Pwned API](https://haveibeenpwned.com/API/), which implements a [k-Anonymity Model](https://en.wikipedia.org/wiki/K-anonymity) so your password can be checked without ever having to give it to any other party. 34 | 35 | ## Installation 36 | 37 | `npm install @mathiscode/password-leak@latest` 38 | 39 | ## Usage in Browser 40 | 41 | ```html 42 | 43 | 44 | 50 | ``` 51 | 52 | ## Usage in Node.js 53 | 54 | ### With import/await 55 | 56 | ```js 57 | import { isPasswordLeaked, checkPasswordStrength } from '@mathiscode/password-leak' 58 | 59 | const isLeaked = await isPasswordLeaked('myPassword') 60 | const strength = await checkPasswordStrength('myPassword') 61 | console.log('Is leaked?', isLeaked) 62 | console.log('Strength', strength) 63 | ``` 64 | 65 | ### With require/sync 66 | 67 | ```js 68 | const { checkPasswordStrength, isPasswordLeakedSync } = require('@mathiscode/password-leak') 69 | 70 | isPasswordLeakedSync('myPassword', (error, isLeaked) => { 71 | if (error) throw new Error(error) 72 | console.log('Is leaked?', isLeaked) 73 | }) 74 | 75 | const strength = checkPasswordStrength('myPassword') 76 | console.log('Strength', strength) 77 | ``` 78 | 79 | ## Usage in Command Line 80 | 81 | Install globally: 82 | 83 | ```sh 84 | npm install -g @mathiscode/password-leak 85 | ``` 86 | 87 | You can also use it without installing via npx: 88 | 89 | ```sh 90 | npx @mathiscode/password-leak myPassword 91 | ``` 92 | 93 | You can then use it in two ways: 94 | 95 | 1. Interactive mode: 96 | 97 | ```sh 98 | password-leak 99 | ``` 100 | 101 | 2. Direct mode: 102 | 103 | ```sh 104 | password-leak myPassword 105 | ``` 106 | 107 | The command will: 108 | 109 | - Print whether the password has been compromised and its strength 110 | - Exit with status code 0 if the password is safe 111 | - Exit with status code 1 if the password is compromised or an error occurs 112 | 113 | ## Development 114 | 115 | ```sh 116 | # Clone the repository 117 | git clone https://github.com/mathiscode/password-leak.git 118 | cd password-leak 119 | 120 | # Use pnpm to install dependencies 121 | pnpm install 122 | 123 | # Build the project 124 | pnpm run build 125 | 126 | # Run the tests 127 | pnpm run test 128 | 129 | # Start the UI 130 | pnpm run ui # demo at https://password-leak.vercel.app 131 | ``` 132 | -------------------------------------------------------------------------------- /dist/index.js: -------------------------------------------------------------------------------- 1 | (()=>{function g(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var l=[{id:0,value:"Too weak",minDiversity:0,minLength:0},{id:1,value:"Weak",minDiversity:2,minLength:8},{id:2,value:"Medium",minDiversity:4,minLength:10},{id:3,value:"Strong",minDiversity:4,minLength:12}];var d=(e,s=l,n)=>{s[0].minDiversity=0,s[0].minLength=0;let i=e??"",a=[{key:"lowercase",regex:"[a-z]"},{key:"uppercase",regex:"[A-Z]"},{key:"number",regex:"[0-9]"},{key:"symbol",regex:n?`[${g(n)}]`:"[^a-zA-Z0-9]"}],t={};t.contains=a.filter(r=>new RegExp(`${r.regex}`).test(i)).map(r=>r.key),t.length=i.length;let o=s.filter(r=>t.contains.length>=r.minDiversity).filter(r=>t.length>=r.minLength).sort((r,h)=>h.id-r.id).map(r=>({id:r.id,value:r.value}));return Object.assign(t,o[0]),t};var c=globalThis.crypto,v=p;globalThis.isPasswordLeaked=p;globalThis.checkPassword=u;globalThis.checkPasswordStrength=f;async function u(e){return{strength:d(e),isLeaked:await p(e)}}function f(e){return d(e)}async function p(e){if(typeof e!="string")throw new Error("Password must be a string");let s=await c.subtle.digest("SHA-1",new TextEncoder().encode(e)),n=Array.from(new Uint8Array(s)).map(o=>o.toString(16).padStart(2,"0")).join(""),i=n.substring(0,5).toUpperCase();return(await(await fetch(`https://api.pwnedpasswords.com/range/${i}`)).text()).includes(n.substring(5).toUpperCase())}function S(e,s){if(typeof e!="string"){s(new Error("Password must be a string"),!1);return}c.subtle.digest("SHA-1",new TextEncoder().encode(e)).catch(n=>s(n,!1)).then(n=>{let i=Array.from(new Uint8Array(n)).map(t=>t.toString(16).padStart(2,"0")).join(""),a=i.substring(0,5).toUpperCase();fetch(`https://api.pwnedpasswords.com/range/${a}`).then(t=>t.text()).then(t=>s(null,t.includes(i.substring(5).toUpperCase()))).catch(t=>s(t,!1))})}})(); 2 | //# sourceMappingURL=index.js.map 3 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Fast Secure Password Checker - Data Breach and Strength Information 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

Password Checker

15 |

Check if your password has been exposed in data breaches as well as its strength

16 | 17 |
18 | 22 | 25 |
26 | 27 | 31 | 32 |
33 |
34 |
35 |
36 |
37 |
38 | 39 |
40 |
41 |

42 |
43 |
44 | 45 | 61 |
62 | 63 | -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | transform: { 3 | '^.+\\.tsx?$': 'esbuild-jest' 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@mathiscode/password-leak", 3 | "version": "2.0.7", 4 | "description": "A library to check for compromised passwords", 5 | "homepage": "https://github.com/mathiscode/password-leak", 6 | "license": "MIT", 7 | "type": "module", 8 | "author": { 9 | "name": "Jay Mathis", 10 | "email": "code@mathis.network", 11 | "url": "https://github.com/mathiscode" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/mathiscode/password-leak.git" 16 | }, 17 | "bugs": { 18 | "url": "https://github.com/mathiscode/password-leak/issues" 19 | }, 20 | "bin": { 21 | "password-leak": "./dist/cli.cjs" 22 | }, 23 | "exports": { 24 | ".": { 25 | "default": "./dist/index.js", 26 | "import": "./dist/index.js", 27 | "require": "./dist/index.cjs" 28 | } 29 | }, 30 | "files": [ 31 | "dist" 32 | ], 33 | "scripts": { 34 | "build": "npm run build:lib && npm run build:cli && npm run copy:ui", 35 | "build:cli": "esbuild src/cli.ts --bundle --minify --sourcemap --platform=node --outfile=dist/cli.cjs", 36 | "build:lib": "npm run build:lib:esm && npm run build:lib:cjs", 37 | "build:lib:esm": "esbuild src/index.ts --bundle --minify --sourcemap --outfile=dist/index.js", 38 | "build:lib:cjs": "esbuild src/index.ts --bundle --minify --sourcemap --platform=node --outfile=dist/index.cjs", 39 | "build:watch": "esbuild src/index.ts --bundle --minify --sourcemap --outfile=dist/index.js --watch", 40 | "copy:ui": "cp index.html ui.* dist/", 41 | "test": "jest", 42 | "ui": "serve -l 1984 ." 43 | }, 44 | "keywords": [ 45 | "password", 46 | "leak", 47 | "breach", 48 | "security", 49 | "haveibeenpwned" 50 | ], 51 | "publishConfig": { 52 | "access": "public" 53 | }, 54 | "devDependencies": { 55 | "@types/jest": "^29.5.14", 56 | "@types/node": "^22.13.0", 57 | "check-password-strength": "^3.0.0", 58 | "esbuild": "^0.25.0", 59 | "esbuild-jest": "^0.5.0", 60 | "jest": "^29.7.0", 61 | "serve": "^14.2.4", 62 | "ts-node": "^10.9.2" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@types/jest': 12 | specifier: ^29.5.14 13 | version: 29.5.14 14 | '@types/node': 15 | specifier: ^22.13.0 16 | version: 22.13.0 17 | check-password-strength: 18 | specifier: ^3.0.0 19 | version: 3.0.0 20 | esbuild: 21 | specifier: ^0.25.0 22 | version: 0.25.0 23 | esbuild-jest: 24 | specifier: ^0.5.0 25 | version: 0.5.0(esbuild@0.25.0) 26 | jest: 27 | specifier: ^29.7.0 28 | version: 29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)) 29 | serve: 30 | specifier: ^14.2.4 31 | version: 14.2.4 32 | ts-node: 33 | specifier: ^10.9.2 34 | version: 10.9.2(@types/node@22.13.0)(typescript@5.7.3) 35 | 36 | packages: 37 | 38 | '@ampproject/remapping@2.3.0': 39 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 40 | engines: {node: '>=6.0.0'} 41 | 42 | '@babel/code-frame@7.26.2': 43 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 44 | engines: {node: '>=6.9.0'} 45 | 46 | '@babel/compat-data@7.26.5': 47 | resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} 48 | engines: {node: '>=6.9.0'} 49 | 50 | '@babel/core@7.26.7': 51 | resolution: {integrity: sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==} 52 | engines: {node: '>=6.9.0'} 53 | 54 | '@babel/generator@7.26.5': 55 | resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} 56 | engines: {node: '>=6.9.0'} 57 | 58 | '@babel/helper-compilation-targets@7.26.5': 59 | resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} 60 | engines: {node: '>=6.9.0'} 61 | 62 | '@babel/helper-module-imports@7.25.9': 63 | resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} 64 | engines: {node: '>=6.9.0'} 65 | 66 | '@babel/helper-module-transforms@7.26.0': 67 | resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} 68 | engines: {node: '>=6.9.0'} 69 | peerDependencies: 70 | '@babel/core': ^7.0.0 71 | 72 | '@babel/helper-plugin-utils@7.26.5': 73 | resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} 74 | engines: {node: '>=6.9.0'} 75 | 76 | '@babel/helper-string-parser@7.25.9': 77 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 78 | engines: {node: '>=6.9.0'} 79 | 80 | '@babel/helper-validator-identifier@7.25.9': 81 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 82 | engines: {node: '>=6.9.0'} 83 | 84 | '@babel/helper-validator-option@7.25.9': 85 | resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} 86 | engines: {node: '>=6.9.0'} 87 | 88 | '@babel/helpers@7.26.7': 89 | resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} 90 | engines: {node: '>=6.9.0'} 91 | 92 | '@babel/parser@7.26.7': 93 | resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==} 94 | engines: {node: '>=6.0.0'} 95 | hasBin: true 96 | 97 | '@babel/plugin-syntax-async-generators@7.8.4': 98 | resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} 99 | peerDependencies: 100 | '@babel/core': ^7.0.0-0 101 | 102 | '@babel/plugin-syntax-bigint@7.8.3': 103 | resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} 104 | peerDependencies: 105 | '@babel/core': ^7.0.0-0 106 | 107 | '@babel/plugin-syntax-class-properties@7.12.13': 108 | resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} 109 | peerDependencies: 110 | '@babel/core': ^7.0.0-0 111 | 112 | '@babel/plugin-syntax-class-static-block@7.14.5': 113 | resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} 114 | engines: {node: '>=6.9.0'} 115 | peerDependencies: 116 | '@babel/core': ^7.0.0-0 117 | 118 | '@babel/plugin-syntax-import-attributes@7.26.0': 119 | resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} 120 | engines: {node: '>=6.9.0'} 121 | peerDependencies: 122 | '@babel/core': ^7.0.0-0 123 | 124 | '@babel/plugin-syntax-import-meta@7.10.4': 125 | resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} 126 | peerDependencies: 127 | '@babel/core': ^7.0.0-0 128 | 129 | '@babel/plugin-syntax-json-strings@7.8.3': 130 | resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} 131 | peerDependencies: 132 | '@babel/core': ^7.0.0-0 133 | 134 | '@babel/plugin-syntax-jsx@7.25.9': 135 | resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} 136 | engines: {node: '>=6.9.0'} 137 | peerDependencies: 138 | '@babel/core': ^7.0.0-0 139 | 140 | '@babel/plugin-syntax-logical-assignment-operators@7.10.4': 141 | resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} 142 | peerDependencies: 143 | '@babel/core': ^7.0.0-0 144 | 145 | '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': 146 | resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} 147 | peerDependencies: 148 | '@babel/core': ^7.0.0-0 149 | 150 | '@babel/plugin-syntax-numeric-separator@7.10.4': 151 | resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} 152 | peerDependencies: 153 | '@babel/core': ^7.0.0-0 154 | 155 | '@babel/plugin-syntax-object-rest-spread@7.8.3': 156 | resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} 157 | peerDependencies: 158 | '@babel/core': ^7.0.0-0 159 | 160 | '@babel/plugin-syntax-optional-catch-binding@7.8.3': 161 | resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} 162 | peerDependencies: 163 | '@babel/core': ^7.0.0-0 164 | 165 | '@babel/plugin-syntax-optional-chaining@7.8.3': 166 | resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} 167 | peerDependencies: 168 | '@babel/core': ^7.0.0-0 169 | 170 | '@babel/plugin-syntax-private-property-in-object@7.14.5': 171 | resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} 172 | engines: {node: '>=6.9.0'} 173 | peerDependencies: 174 | '@babel/core': ^7.0.0-0 175 | 176 | '@babel/plugin-syntax-top-level-await@7.14.5': 177 | resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} 178 | engines: {node: '>=6.9.0'} 179 | peerDependencies: 180 | '@babel/core': ^7.0.0-0 181 | 182 | '@babel/plugin-syntax-typescript@7.25.9': 183 | resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} 184 | engines: {node: '>=6.9.0'} 185 | peerDependencies: 186 | '@babel/core': ^7.0.0-0 187 | 188 | '@babel/plugin-transform-modules-commonjs@7.26.3': 189 | resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} 190 | engines: {node: '>=6.9.0'} 191 | peerDependencies: 192 | '@babel/core': ^7.0.0-0 193 | 194 | '@babel/template@7.25.9': 195 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} 196 | engines: {node: '>=6.9.0'} 197 | 198 | '@babel/traverse@7.26.7': 199 | resolution: {integrity: sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==} 200 | engines: {node: '>=6.9.0'} 201 | 202 | '@babel/types@7.26.7': 203 | resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==} 204 | engines: {node: '>=6.9.0'} 205 | 206 | '@bcoe/v8-coverage@0.2.3': 207 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 208 | 209 | '@cnakazawa/watch@1.0.4': 210 | resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} 211 | engines: {node: '>=0.1.95'} 212 | hasBin: true 213 | 214 | '@cspotcode/source-map-support@0.8.1': 215 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 216 | engines: {node: '>=12'} 217 | 218 | '@esbuild/aix-ppc64@0.25.0': 219 | resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} 220 | engines: {node: '>=18'} 221 | cpu: [ppc64] 222 | os: [aix] 223 | 224 | '@esbuild/android-arm64@0.25.0': 225 | resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} 226 | engines: {node: '>=18'} 227 | cpu: [arm64] 228 | os: [android] 229 | 230 | '@esbuild/android-arm@0.25.0': 231 | resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} 232 | engines: {node: '>=18'} 233 | cpu: [arm] 234 | os: [android] 235 | 236 | '@esbuild/android-x64@0.25.0': 237 | resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} 238 | engines: {node: '>=18'} 239 | cpu: [x64] 240 | os: [android] 241 | 242 | '@esbuild/darwin-arm64@0.25.0': 243 | resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} 244 | engines: {node: '>=18'} 245 | cpu: [arm64] 246 | os: [darwin] 247 | 248 | '@esbuild/darwin-x64@0.25.0': 249 | resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} 250 | engines: {node: '>=18'} 251 | cpu: [x64] 252 | os: [darwin] 253 | 254 | '@esbuild/freebsd-arm64@0.25.0': 255 | resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} 256 | engines: {node: '>=18'} 257 | cpu: [arm64] 258 | os: [freebsd] 259 | 260 | '@esbuild/freebsd-x64@0.25.0': 261 | resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} 262 | engines: {node: '>=18'} 263 | cpu: [x64] 264 | os: [freebsd] 265 | 266 | '@esbuild/linux-arm64@0.25.0': 267 | resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} 268 | engines: {node: '>=18'} 269 | cpu: [arm64] 270 | os: [linux] 271 | 272 | '@esbuild/linux-arm@0.25.0': 273 | resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} 274 | engines: {node: '>=18'} 275 | cpu: [arm] 276 | os: [linux] 277 | 278 | '@esbuild/linux-ia32@0.25.0': 279 | resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} 280 | engines: {node: '>=18'} 281 | cpu: [ia32] 282 | os: [linux] 283 | 284 | '@esbuild/linux-loong64@0.25.0': 285 | resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} 286 | engines: {node: '>=18'} 287 | cpu: [loong64] 288 | os: [linux] 289 | 290 | '@esbuild/linux-mips64el@0.25.0': 291 | resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} 292 | engines: {node: '>=18'} 293 | cpu: [mips64el] 294 | os: [linux] 295 | 296 | '@esbuild/linux-ppc64@0.25.0': 297 | resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} 298 | engines: {node: '>=18'} 299 | cpu: [ppc64] 300 | os: [linux] 301 | 302 | '@esbuild/linux-riscv64@0.25.0': 303 | resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} 304 | engines: {node: '>=18'} 305 | cpu: [riscv64] 306 | os: [linux] 307 | 308 | '@esbuild/linux-s390x@0.25.0': 309 | resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} 310 | engines: {node: '>=18'} 311 | cpu: [s390x] 312 | os: [linux] 313 | 314 | '@esbuild/linux-x64@0.25.0': 315 | resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} 316 | engines: {node: '>=18'} 317 | cpu: [x64] 318 | os: [linux] 319 | 320 | '@esbuild/netbsd-arm64@0.25.0': 321 | resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} 322 | engines: {node: '>=18'} 323 | cpu: [arm64] 324 | os: [netbsd] 325 | 326 | '@esbuild/netbsd-x64@0.25.0': 327 | resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} 328 | engines: {node: '>=18'} 329 | cpu: [x64] 330 | os: [netbsd] 331 | 332 | '@esbuild/openbsd-arm64@0.25.0': 333 | resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} 334 | engines: {node: '>=18'} 335 | cpu: [arm64] 336 | os: [openbsd] 337 | 338 | '@esbuild/openbsd-x64@0.25.0': 339 | resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} 340 | engines: {node: '>=18'} 341 | cpu: [x64] 342 | os: [openbsd] 343 | 344 | '@esbuild/sunos-x64@0.25.0': 345 | resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} 346 | engines: {node: '>=18'} 347 | cpu: [x64] 348 | os: [sunos] 349 | 350 | '@esbuild/win32-arm64@0.25.0': 351 | resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} 352 | engines: {node: '>=18'} 353 | cpu: [arm64] 354 | os: [win32] 355 | 356 | '@esbuild/win32-ia32@0.25.0': 357 | resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} 358 | engines: {node: '>=18'} 359 | cpu: [ia32] 360 | os: [win32] 361 | 362 | '@esbuild/win32-x64@0.25.0': 363 | resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} 364 | engines: {node: '>=18'} 365 | cpu: [x64] 366 | os: [win32] 367 | 368 | '@istanbuljs/load-nyc-config@1.1.0': 369 | resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} 370 | engines: {node: '>=8'} 371 | 372 | '@istanbuljs/schema@0.1.3': 373 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 374 | engines: {node: '>=8'} 375 | 376 | '@jest/console@29.7.0': 377 | resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} 378 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 379 | 380 | '@jest/core@29.7.0': 381 | resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} 382 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 383 | peerDependencies: 384 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 385 | peerDependenciesMeta: 386 | node-notifier: 387 | optional: true 388 | 389 | '@jest/environment@29.7.0': 390 | resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} 391 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 392 | 393 | '@jest/expect-utils@29.7.0': 394 | resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} 395 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 396 | 397 | '@jest/expect@29.7.0': 398 | resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} 399 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 400 | 401 | '@jest/fake-timers@29.7.0': 402 | resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} 403 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 404 | 405 | '@jest/globals@29.7.0': 406 | resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} 407 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 408 | 409 | '@jest/reporters@29.7.0': 410 | resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} 411 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 412 | peerDependencies: 413 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 414 | peerDependenciesMeta: 415 | node-notifier: 416 | optional: true 417 | 418 | '@jest/schemas@29.6.3': 419 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 420 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 421 | 422 | '@jest/source-map@29.6.3': 423 | resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} 424 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 425 | 426 | '@jest/test-result@29.7.0': 427 | resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} 428 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 429 | 430 | '@jest/test-sequencer@29.7.0': 431 | resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} 432 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 433 | 434 | '@jest/transform@26.6.2': 435 | resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} 436 | engines: {node: '>= 10.14.2'} 437 | 438 | '@jest/transform@29.7.0': 439 | resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} 440 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 441 | 442 | '@jest/types@26.6.2': 443 | resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} 444 | engines: {node: '>= 10.14.2'} 445 | 446 | '@jest/types@29.6.3': 447 | resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} 448 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 449 | 450 | '@jridgewell/gen-mapping@0.3.8': 451 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 452 | engines: {node: '>=6.0.0'} 453 | 454 | '@jridgewell/resolve-uri@3.1.2': 455 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 456 | engines: {node: '>=6.0.0'} 457 | 458 | '@jridgewell/set-array@1.2.1': 459 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 460 | engines: {node: '>=6.0.0'} 461 | 462 | '@jridgewell/sourcemap-codec@1.5.0': 463 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 464 | 465 | '@jridgewell/trace-mapping@0.3.25': 466 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 467 | 468 | '@jridgewell/trace-mapping@0.3.9': 469 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 470 | 471 | '@sinclair/typebox@0.27.8': 472 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 473 | 474 | '@sinonjs/commons@3.0.1': 475 | resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} 476 | 477 | '@sinonjs/fake-timers@10.3.0': 478 | resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} 479 | 480 | '@tsconfig/node10@1.0.11': 481 | resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} 482 | 483 | '@tsconfig/node12@1.0.11': 484 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 485 | 486 | '@tsconfig/node14@1.0.3': 487 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 488 | 489 | '@tsconfig/node16@1.0.4': 490 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 491 | 492 | '@types/babel__core@7.20.5': 493 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 494 | 495 | '@types/babel__generator@7.6.8': 496 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 497 | 498 | '@types/babel__template@7.4.4': 499 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 500 | 501 | '@types/babel__traverse@7.20.6': 502 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} 503 | 504 | '@types/graceful-fs@4.1.9': 505 | resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} 506 | 507 | '@types/istanbul-lib-coverage@2.0.6': 508 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} 509 | 510 | '@types/istanbul-lib-report@3.0.3': 511 | resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} 512 | 513 | '@types/istanbul-reports@3.0.4': 514 | resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} 515 | 516 | '@types/jest@29.5.14': 517 | resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} 518 | 519 | '@types/node@22.13.0': 520 | resolution: {integrity: sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==} 521 | 522 | '@types/stack-utils@2.0.3': 523 | resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} 524 | 525 | '@types/yargs-parser@21.0.3': 526 | resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} 527 | 528 | '@types/yargs@15.0.19': 529 | resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} 530 | 531 | '@types/yargs@17.0.33': 532 | resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} 533 | 534 | '@zeit/schemas@2.36.0': 535 | resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==} 536 | 537 | accepts@1.3.8: 538 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 539 | engines: {node: '>= 0.6'} 540 | 541 | acorn-walk@8.3.4: 542 | resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} 543 | engines: {node: '>=0.4.0'} 544 | 545 | acorn@8.14.0: 546 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 547 | engines: {node: '>=0.4.0'} 548 | hasBin: true 549 | 550 | ajv@8.12.0: 551 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} 552 | 553 | ansi-align@3.0.1: 554 | resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 555 | 556 | ansi-escapes@4.3.2: 557 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 558 | engines: {node: '>=8'} 559 | 560 | ansi-regex@5.0.1: 561 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 562 | engines: {node: '>=8'} 563 | 564 | ansi-regex@6.1.0: 565 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 566 | engines: {node: '>=12'} 567 | 568 | ansi-styles@4.3.0: 569 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 570 | engines: {node: '>=8'} 571 | 572 | ansi-styles@5.2.0: 573 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 574 | engines: {node: '>=10'} 575 | 576 | ansi-styles@6.2.1: 577 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 578 | engines: {node: '>=12'} 579 | 580 | anymatch@2.0.0: 581 | resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} 582 | 583 | anymatch@3.1.3: 584 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 585 | engines: {node: '>= 8'} 586 | 587 | arch@2.2.0: 588 | resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} 589 | 590 | arg@4.1.3: 591 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 592 | 593 | arg@5.0.2: 594 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 595 | 596 | argparse@1.0.10: 597 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 598 | 599 | arr-diff@4.0.0: 600 | resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} 601 | engines: {node: '>=0.10.0'} 602 | 603 | arr-flatten@1.1.0: 604 | resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} 605 | engines: {node: '>=0.10.0'} 606 | 607 | arr-union@3.1.0: 608 | resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} 609 | engines: {node: '>=0.10.0'} 610 | 611 | array-unique@0.3.2: 612 | resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} 613 | engines: {node: '>=0.10.0'} 614 | 615 | assign-symbols@1.0.0: 616 | resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} 617 | engines: {node: '>=0.10.0'} 618 | 619 | atob@2.1.2: 620 | resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} 621 | engines: {node: '>= 4.5.0'} 622 | hasBin: true 623 | 624 | babel-jest@26.6.3: 625 | resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} 626 | engines: {node: '>= 10.14.2'} 627 | peerDependencies: 628 | '@babel/core': ^7.0.0 629 | 630 | babel-jest@29.7.0: 631 | resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} 632 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 633 | peerDependencies: 634 | '@babel/core': ^7.8.0 635 | 636 | babel-plugin-istanbul@6.1.1: 637 | resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} 638 | engines: {node: '>=8'} 639 | 640 | babel-plugin-jest-hoist@26.6.2: 641 | resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} 642 | engines: {node: '>= 10.14.2'} 643 | 644 | babel-plugin-jest-hoist@29.6.3: 645 | resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} 646 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 647 | 648 | babel-preset-current-node-syntax@1.1.0: 649 | resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} 650 | peerDependencies: 651 | '@babel/core': ^7.0.0 652 | 653 | babel-preset-jest@26.6.2: 654 | resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} 655 | engines: {node: '>= 10.14.2'} 656 | peerDependencies: 657 | '@babel/core': ^7.0.0 658 | 659 | babel-preset-jest@29.6.3: 660 | resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} 661 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 662 | peerDependencies: 663 | '@babel/core': ^7.0.0 664 | 665 | balanced-match@1.0.2: 666 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 667 | 668 | base@0.11.2: 669 | resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} 670 | engines: {node: '>=0.10.0'} 671 | 672 | boxen@7.0.0: 673 | resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} 674 | engines: {node: '>=14.16'} 675 | 676 | brace-expansion@1.1.11: 677 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 678 | 679 | braces@2.3.2: 680 | resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} 681 | engines: {node: '>=0.10.0'} 682 | 683 | braces@3.0.3: 684 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 685 | engines: {node: '>=8'} 686 | 687 | browserslist@4.24.4: 688 | resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} 689 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 690 | hasBin: true 691 | 692 | bser@2.1.1: 693 | resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} 694 | 695 | buffer-from@1.1.2: 696 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 697 | 698 | bytes@3.0.0: 699 | resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} 700 | engines: {node: '>= 0.8'} 701 | 702 | cache-base@1.0.1: 703 | resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} 704 | engines: {node: '>=0.10.0'} 705 | 706 | callsites@3.1.0: 707 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 708 | engines: {node: '>=6'} 709 | 710 | camelcase@5.3.1: 711 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 712 | engines: {node: '>=6'} 713 | 714 | camelcase@6.3.0: 715 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 716 | engines: {node: '>=10'} 717 | 718 | camelcase@7.0.1: 719 | resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} 720 | engines: {node: '>=14.16'} 721 | 722 | caniuse-lite@1.0.30001696: 723 | resolution: {integrity: sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==} 724 | 725 | capture-exit@2.0.0: 726 | resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} 727 | engines: {node: 6.* || 8.* || >= 10.*} 728 | 729 | chalk-template@0.4.0: 730 | resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} 731 | engines: {node: '>=12'} 732 | 733 | chalk@4.1.2: 734 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 735 | engines: {node: '>=10'} 736 | 737 | chalk@5.0.1: 738 | resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} 739 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 740 | 741 | char-regex@1.0.2: 742 | resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} 743 | engines: {node: '>=10'} 744 | 745 | check-password-strength@3.0.0: 746 | resolution: {integrity: sha512-XIBvWpb7/RI2DO05tMixE4WbFFvEC7ls/jr1VSrWgXvlCmdiH2fsdkixG0cNGs1uIXwoSqJ75T3s9H/TlJV6Cw==} 747 | 748 | ci-info@2.0.0: 749 | resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} 750 | 751 | ci-info@3.9.0: 752 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 753 | engines: {node: '>=8'} 754 | 755 | cjs-module-lexer@1.4.3: 756 | resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} 757 | 758 | class-utils@0.3.6: 759 | resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} 760 | engines: {node: '>=0.10.0'} 761 | 762 | cli-boxes@3.0.0: 763 | resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 764 | engines: {node: '>=10'} 765 | 766 | clipboardy@3.0.0: 767 | resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} 768 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 769 | 770 | cliui@8.0.1: 771 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 772 | engines: {node: '>=12'} 773 | 774 | co@4.6.0: 775 | resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} 776 | engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} 777 | 778 | collect-v8-coverage@1.0.2: 779 | resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} 780 | 781 | collection-visit@1.0.0: 782 | resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} 783 | engines: {node: '>=0.10.0'} 784 | 785 | color-convert@2.0.1: 786 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 787 | engines: {node: '>=7.0.0'} 788 | 789 | color-name@1.1.4: 790 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 791 | 792 | component-emitter@1.3.1: 793 | resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} 794 | 795 | compressible@2.0.18: 796 | resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} 797 | engines: {node: '>= 0.6'} 798 | 799 | compression@1.7.4: 800 | resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} 801 | engines: {node: '>= 0.8.0'} 802 | 803 | concat-map@0.0.1: 804 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 805 | 806 | content-disposition@0.5.2: 807 | resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} 808 | engines: {node: '>= 0.6'} 809 | 810 | convert-source-map@1.9.0: 811 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 812 | 813 | convert-source-map@2.0.0: 814 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 815 | 816 | copy-descriptor@0.1.1: 817 | resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} 818 | engines: {node: '>=0.10.0'} 819 | 820 | create-jest@29.7.0: 821 | resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} 822 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 823 | hasBin: true 824 | 825 | create-require@1.1.1: 826 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 827 | 828 | cross-spawn@6.0.6: 829 | resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} 830 | engines: {node: '>=4.8'} 831 | 832 | cross-spawn@7.0.6: 833 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 834 | engines: {node: '>= 8'} 835 | 836 | debug@2.6.9: 837 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 838 | peerDependencies: 839 | supports-color: '*' 840 | peerDependenciesMeta: 841 | supports-color: 842 | optional: true 843 | 844 | debug@4.4.0: 845 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 846 | engines: {node: '>=6.0'} 847 | peerDependencies: 848 | supports-color: '*' 849 | peerDependenciesMeta: 850 | supports-color: 851 | optional: true 852 | 853 | decode-uri-component@0.2.2: 854 | resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} 855 | engines: {node: '>=0.10'} 856 | 857 | dedent@1.5.3: 858 | resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} 859 | peerDependencies: 860 | babel-plugin-macros: ^3.1.0 861 | peerDependenciesMeta: 862 | babel-plugin-macros: 863 | optional: true 864 | 865 | deep-extend@0.6.0: 866 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 867 | engines: {node: '>=4.0.0'} 868 | 869 | deepmerge@4.3.1: 870 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 871 | engines: {node: '>=0.10.0'} 872 | 873 | define-property@0.2.5: 874 | resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} 875 | engines: {node: '>=0.10.0'} 876 | 877 | define-property@1.0.0: 878 | resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} 879 | engines: {node: '>=0.10.0'} 880 | 881 | define-property@2.0.2: 882 | resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} 883 | engines: {node: '>=0.10.0'} 884 | 885 | detect-newline@3.1.0: 886 | resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} 887 | engines: {node: '>=8'} 888 | 889 | diff-sequences@29.6.3: 890 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 891 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 892 | 893 | diff@4.0.2: 894 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 895 | engines: {node: '>=0.3.1'} 896 | 897 | eastasianwidth@0.2.0: 898 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 899 | 900 | electron-to-chromium@1.5.90: 901 | resolution: {integrity: sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==} 902 | 903 | emittery@0.13.1: 904 | resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} 905 | engines: {node: '>=12'} 906 | 907 | emoji-regex@8.0.0: 908 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 909 | 910 | emoji-regex@9.2.2: 911 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 912 | 913 | end-of-stream@1.4.4: 914 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 915 | 916 | error-ex@1.3.2: 917 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 918 | 919 | esbuild-jest@0.5.0: 920 | resolution: {integrity: sha512-AMZZCdEpXfNVOIDvURlqYyHwC8qC1/BFjgsrOiSL1eyiIArVtHL8YAC83Shhn16cYYoAWEW17yZn0W/RJKJKHQ==} 921 | peerDependencies: 922 | esbuild: '>=0.8.50' 923 | 924 | esbuild@0.25.0: 925 | resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} 926 | engines: {node: '>=18'} 927 | hasBin: true 928 | 929 | escalade@3.2.0: 930 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 931 | engines: {node: '>=6'} 932 | 933 | escape-string-regexp@2.0.0: 934 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} 935 | engines: {node: '>=8'} 936 | 937 | escape-string-regexp@5.0.0: 938 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 939 | engines: {node: '>=12'} 940 | 941 | esprima@4.0.1: 942 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 943 | engines: {node: '>=4'} 944 | hasBin: true 945 | 946 | exec-sh@0.3.6: 947 | resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} 948 | 949 | execa@1.0.0: 950 | resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} 951 | engines: {node: '>=6'} 952 | 953 | execa@5.1.1: 954 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 955 | engines: {node: '>=10'} 956 | 957 | exit@0.1.2: 958 | resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} 959 | engines: {node: '>= 0.8.0'} 960 | 961 | expand-brackets@2.1.4: 962 | resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} 963 | engines: {node: '>=0.10.0'} 964 | 965 | expect@29.7.0: 966 | resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} 967 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 968 | 969 | extend-shallow@2.0.1: 970 | resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} 971 | engines: {node: '>=0.10.0'} 972 | 973 | extend-shallow@3.0.2: 974 | resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} 975 | engines: {node: '>=0.10.0'} 976 | 977 | extglob@2.0.4: 978 | resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} 979 | engines: {node: '>=0.10.0'} 980 | 981 | fast-deep-equal@3.1.3: 982 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 983 | 984 | fast-json-stable-stringify@2.1.0: 985 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 986 | 987 | fb-watchman@2.0.2: 988 | resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} 989 | 990 | fill-range@4.0.0: 991 | resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} 992 | engines: {node: '>=0.10.0'} 993 | 994 | fill-range@7.1.1: 995 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 996 | engines: {node: '>=8'} 997 | 998 | find-up@4.1.0: 999 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1000 | engines: {node: '>=8'} 1001 | 1002 | for-in@1.0.2: 1003 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} 1004 | engines: {node: '>=0.10.0'} 1005 | 1006 | fragment-cache@0.2.1: 1007 | resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} 1008 | engines: {node: '>=0.10.0'} 1009 | 1010 | fs.realpath@1.0.0: 1011 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1012 | 1013 | fsevents@2.3.3: 1014 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1015 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1016 | os: [darwin] 1017 | 1018 | function-bind@1.1.2: 1019 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1020 | 1021 | gensync@1.0.0-beta.2: 1022 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1023 | engines: {node: '>=6.9.0'} 1024 | 1025 | get-caller-file@2.0.5: 1026 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1027 | engines: {node: 6.* || 8.* || >= 10.*} 1028 | 1029 | get-package-type@0.1.0: 1030 | resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} 1031 | engines: {node: '>=8.0.0'} 1032 | 1033 | get-stream@4.1.0: 1034 | resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} 1035 | engines: {node: '>=6'} 1036 | 1037 | get-stream@6.0.1: 1038 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1039 | engines: {node: '>=10'} 1040 | 1041 | get-value@2.0.6: 1042 | resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} 1043 | engines: {node: '>=0.10.0'} 1044 | 1045 | glob@7.2.3: 1046 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1047 | deprecated: Glob versions prior to v9 are no longer supported 1048 | 1049 | globals@11.12.0: 1050 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1051 | engines: {node: '>=4'} 1052 | 1053 | graceful-fs@4.2.11: 1054 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1055 | 1056 | has-flag@4.0.0: 1057 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1058 | engines: {node: '>=8'} 1059 | 1060 | has-value@0.3.1: 1061 | resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} 1062 | engines: {node: '>=0.10.0'} 1063 | 1064 | has-value@1.0.0: 1065 | resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} 1066 | engines: {node: '>=0.10.0'} 1067 | 1068 | has-values@0.1.4: 1069 | resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} 1070 | engines: {node: '>=0.10.0'} 1071 | 1072 | has-values@1.0.0: 1073 | resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} 1074 | engines: {node: '>=0.10.0'} 1075 | 1076 | hasown@2.0.2: 1077 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1078 | engines: {node: '>= 0.4'} 1079 | 1080 | html-escaper@2.0.2: 1081 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 1082 | 1083 | human-signals@2.1.0: 1084 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1085 | engines: {node: '>=10.17.0'} 1086 | 1087 | import-local@3.2.0: 1088 | resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} 1089 | engines: {node: '>=8'} 1090 | hasBin: true 1091 | 1092 | imurmurhash@0.1.4: 1093 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1094 | engines: {node: '>=0.8.19'} 1095 | 1096 | inflight@1.0.6: 1097 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1098 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1099 | 1100 | inherits@2.0.4: 1101 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1102 | 1103 | ini@1.3.8: 1104 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1105 | 1106 | is-accessor-descriptor@1.0.1: 1107 | resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} 1108 | engines: {node: '>= 0.10'} 1109 | 1110 | is-arrayish@0.2.1: 1111 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1112 | 1113 | is-buffer@1.1.6: 1114 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} 1115 | 1116 | is-ci@2.0.0: 1117 | resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} 1118 | hasBin: true 1119 | 1120 | is-core-module@2.16.1: 1121 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1122 | engines: {node: '>= 0.4'} 1123 | 1124 | is-data-descriptor@1.0.1: 1125 | resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} 1126 | engines: {node: '>= 0.4'} 1127 | 1128 | is-descriptor@0.1.7: 1129 | resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} 1130 | engines: {node: '>= 0.4'} 1131 | 1132 | is-descriptor@1.0.3: 1133 | resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} 1134 | engines: {node: '>= 0.4'} 1135 | 1136 | is-docker@2.2.1: 1137 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 1138 | engines: {node: '>=8'} 1139 | hasBin: true 1140 | 1141 | is-extendable@0.1.1: 1142 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 1143 | engines: {node: '>=0.10.0'} 1144 | 1145 | is-extendable@1.0.1: 1146 | resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} 1147 | engines: {node: '>=0.10.0'} 1148 | 1149 | is-fullwidth-code-point@3.0.0: 1150 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1151 | engines: {node: '>=8'} 1152 | 1153 | is-generator-fn@2.1.0: 1154 | resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} 1155 | engines: {node: '>=6'} 1156 | 1157 | is-number@3.0.0: 1158 | resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} 1159 | engines: {node: '>=0.10.0'} 1160 | 1161 | is-number@7.0.0: 1162 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1163 | engines: {node: '>=0.12.0'} 1164 | 1165 | is-plain-object@2.0.4: 1166 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 1167 | engines: {node: '>=0.10.0'} 1168 | 1169 | is-port-reachable@4.0.0: 1170 | resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==} 1171 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1172 | 1173 | is-stream@1.1.0: 1174 | resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} 1175 | engines: {node: '>=0.10.0'} 1176 | 1177 | is-stream@2.0.1: 1178 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1179 | engines: {node: '>=8'} 1180 | 1181 | is-typedarray@1.0.0: 1182 | resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} 1183 | 1184 | is-windows@1.0.2: 1185 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 1186 | engines: {node: '>=0.10.0'} 1187 | 1188 | is-wsl@2.2.0: 1189 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 1190 | engines: {node: '>=8'} 1191 | 1192 | isarray@1.0.0: 1193 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 1194 | 1195 | isexe@2.0.0: 1196 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1197 | 1198 | isobject@2.1.0: 1199 | resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} 1200 | engines: {node: '>=0.10.0'} 1201 | 1202 | isobject@3.0.1: 1203 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} 1204 | engines: {node: '>=0.10.0'} 1205 | 1206 | istanbul-lib-coverage@3.2.2: 1207 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} 1208 | engines: {node: '>=8'} 1209 | 1210 | istanbul-lib-instrument@5.2.1: 1211 | resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} 1212 | engines: {node: '>=8'} 1213 | 1214 | istanbul-lib-instrument@6.0.3: 1215 | resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} 1216 | engines: {node: '>=10'} 1217 | 1218 | istanbul-lib-report@3.0.1: 1219 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} 1220 | engines: {node: '>=10'} 1221 | 1222 | istanbul-lib-source-maps@4.0.1: 1223 | resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} 1224 | engines: {node: '>=10'} 1225 | 1226 | istanbul-reports@3.1.7: 1227 | resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} 1228 | engines: {node: '>=8'} 1229 | 1230 | jest-changed-files@29.7.0: 1231 | resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} 1232 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1233 | 1234 | jest-circus@29.7.0: 1235 | resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} 1236 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1237 | 1238 | jest-cli@29.7.0: 1239 | resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} 1240 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1241 | hasBin: true 1242 | peerDependencies: 1243 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 1244 | peerDependenciesMeta: 1245 | node-notifier: 1246 | optional: true 1247 | 1248 | jest-config@29.7.0: 1249 | resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} 1250 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1251 | peerDependencies: 1252 | '@types/node': '*' 1253 | ts-node: '>=9.0.0' 1254 | peerDependenciesMeta: 1255 | '@types/node': 1256 | optional: true 1257 | ts-node: 1258 | optional: true 1259 | 1260 | jest-diff@29.7.0: 1261 | resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} 1262 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1263 | 1264 | jest-docblock@29.7.0: 1265 | resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} 1266 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1267 | 1268 | jest-each@29.7.0: 1269 | resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} 1270 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1271 | 1272 | jest-environment-node@29.7.0: 1273 | resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} 1274 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1275 | 1276 | jest-get-type@29.6.3: 1277 | resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} 1278 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1279 | 1280 | jest-haste-map@26.6.2: 1281 | resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} 1282 | engines: {node: '>= 10.14.2'} 1283 | 1284 | jest-haste-map@29.7.0: 1285 | resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} 1286 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1287 | 1288 | jest-leak-detector@29.7.0: 1289 | resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} 1290 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1291 | 1292 | jest-matcher-utils@29.7.0: 1293 | resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} 1294 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1295 | 1296 | jest-message-util@29.7.0: 1297 | resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} 1298 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1299 | 1300 | jest-mock@29.7.0: 1301 | resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} 1302 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1303 | 1304 | jest-pnp-resolver@1.2.3: 1305 | resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} 1306 | engines: {node: '>=6'} 1307 | peerDependencies: 1308 | jest-resolve: '*' 1309 | peerDependenciesMeta: 1310 | jest-resolve: 1311 | optional: true 1312 | 1313 | jest-regex-util@26.0.0: 1314 | resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} 1315 | engines: {node: '>= 10.14.2'} 1316 | 1317 | jest-regex-util@29.6.3: 1318 | resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} 1319 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1320 | 1321 | jest-resolve-dependencies@29.7.0: 1322 | resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} 1323 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1324 | 1325 | jest-resolve@29.7.0: 1326 | resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} 1327 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1328 | 1329 | jest-runner@29.7.0: 1330 | resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} 1331 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1332 | 1333 | jest-runtime@29.7.0: 1334 | resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} 1335 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1336 | 1337 | jest-serializer@26.6.2: 1338 | resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} 1339 | engines: {node: '>= 10.14.2'} 1340 | 1341 | jest-snapshot@29.7.0: 1342 | resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} 1343 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1344 | 1345 | jest-util@26.6.2: 1346 | resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} 1347 | engines: {node: '>= 10.14.2'} 1348 | 1349 | jest-util@29.7.0: 1350 | resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} 1351 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1352 | 1353 | jest-validate@29.7.0: 1354 | resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} 1355 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1356 | 1357 | jest-watcher@29.7.0: 1358 | resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} 1359 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1360 | 1361 | jest-worker@26.6.2: 1362 | resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} 1363 | engines: {node: '>= 10.13.0'} 1364 | 1365 | jest-worker@29.7.0: 1366 | resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} 1367 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1368 | 1369 | jest@29.7.0: 1370 | resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} 1371 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1372 | hasBin: true 1373 | peerDependencies: 1374 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 1375 | peerDependenciesMeta: 1376 | node-notifier: 1377 | optional: true 1378 | 1379 | js-tokens@4.0.0: 1380 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1381 | 1382 | js-yaml@3.14.1: 1383 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1384 | hasBin: true 1385 | 1386 | jsesc@3.1.0: 1387 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1388 | engines: {node: '>=6'} 1389 | hasBin: true 1390 | 1391 | json-parse-even-better-errors@2.3.1: 1392 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1393 | 1394 | json-schema-traverse@1.0.0: 1395 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1396 | 1397 | json5@2.2.3: 1398 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1399 | engines: {node: '>=6'} 1400 | hasBin: true 1401 | 1402 | kind-of@3.2.2: 1403 | resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} 1404 | engines: {node: '>=0.10.0'} 1405 | 1406 | kind-of@4.0.0: 1407 | resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} 1408 | engines: {node: '>=0.10.0'} 1409 | 1410 | kind-of@6.0.3: 1411 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1412 | engines: {node: '>=0.10.0'} 1413 | 1414 | kleur@3.0.3: 1415 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 1416 | engines: {node: '>=6'} 1417 | 1418 | leven@3.1.0: 1419 | resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} 1420 | engines: {node: '>=6'} 1421 | 1422 | lines-and-columns@1.2.4: 1423 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1424 | 1425 | locate-path@5.0.0: 1426 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1427 | engines: {node: '>=8'} 1428 | 1429 | lru-cache@5.1.1: 1430 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1431 | 1432 | make-dir@4.0.0: 1433 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} 1434 | engines: {node: '>=10'} 1435 | 1436 | make-error@1.3.6: 1437 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1438 | 1439 | makeerror@1.0.12: 1440 | resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} 1441 | 1442 | map-cache@0.2.2: 1443 | resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} 1444 | engines: {node: '>=0.10.0'} 1445 | 1446 | map-visit@1.0.0: 1447 | resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} 1448 | engines: {node: '>=0.10.0'} 1449 | 1450 | merge-stream@2.0.0: 1451 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1452 | 1453 | micromatch@3.1.10: 1454 | resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} 1455 | engines: {node: '>=0.10.0'} 1456 | 1457 | micromatch@4.0.8: 1458 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1459 | engines: {node: '>=8.6'} 1460 | 1461 | mime-db@1.33.0: 1462 | resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} 1463 | engines: {node: '>= 0.6'} 1464 | 1465 | mime-db@1.52.0: 1466 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1467 | engines: {node: '>= 0.6'} 1468 | 1469 | mime-db@1.53.0: 1470 | resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} 1471 | engines: {node: '>= 0.6'} 1472 | 1473 | mime-types@2.1.18: 1474 | resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} 1475 | engines: {node: '>= 0.6'} 1476 | 1477 | mime-types@2.1.35: 1478 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1479 | engines: {node: '>= 0.6'} 1480 | 1481 | mimic-fn@2.1.0: 1482 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1483 | engines: {node: '>=6'} 1484 | 1485 | minimatch@3.1.2: 1486 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1487 | 1488 | minimist@1.2.8: 1489 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1490 | 1491 | mixin-deep@1.3.2: 1492 | resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} 1493 | engines: {node: '>=0.10.0'} 1494 | 1495 | ms@2.0.0: 1496 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1497 | 1498 | ms@2.1.3: 1499 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1500 | 1501 | nanomatch@1.2.13: 1502 | resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} 1503 | engines: {node: '>=0.10.0'} 1504 | 1505 | natural-compare@1.4.0: 1506 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1507 | 1508 | negotiator@0.6.3: 1509 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 1510 | engines: {node: '>= 0.6'} 1511 | 1512 | nice-try@1.0.5: 1513 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 1514 | 1515 | node-int64@0.4.0: 1516 | resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} 1517 | 1518 | node-releases@2.0.19: 1519 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 1520 | 1521 | normalize-path@2.1.1: 1522 | resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} 1523 | engines: {node: '>=0.10.0'} 1524 | 1525 | normalize-path@3.0.0: 1526 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1527 | engines: {node: '>=0.10.0'} 1528 | 1529 | npm-run-path@2.0.2: 1530 | resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} 1531 | engines: {node: '>=4'} 1532 | 1533 | npm-run-path@4.0.1: 1534 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1535 | engines: {node: '>=8'} 1536 | 1537 | object-copy@0.1.0: 1538 | resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} 1539 | engines: {node: '>=0.10.0'} 1540 | 1541 | object-visit@1.0.1: 1542 | resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} 1543 | engines: {node: '>=0.10.0'} 1544 | 1545 | object.pick@1.3.0: 1546 | resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} 1547 | engines: {node: '>=0.10.0'} 1548 | 1549 | on-headers@1.0.2: 1550 | resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} 1551 | engines: {node: '>= 0.8'} 1552 | 1553 | once@1.4.0: 1554 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1555 | 1556 | onetime@5.1.2: 1557 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1558 | engines: {node: '>=6'} 1559 | 1560 | p-finally@1.0.0: 1561 | resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} 1562 | engines: {node: '>=4'} 1563 | 1564 | p-limit@2.3.0: 1565 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1566 | engines: {node: '>=6'} 1567 | 1568 | p-limit@3.1.0: 1569 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1570 | engines: {node: '>=10'} 1571 | 1572 | p-locate@4.1.0: 1573 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1574 | engines: {node: '>=8'} 1575 | 1576 | p-try@2.2.0: 1577 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1578 | engines: {node: '>=6'} 1579 | 1580 | parse-json@5.2.0: 1581 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1582 | engines: {node: '>=8'} 1583 | 1584 | pascalcase@0.1.1: 1585 | resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} 1586 | engines: {node: '>=0.10.0'} 1587 | 1588 | path-exists@4.0.0: 1589 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1590 | engines: {node: '>=8'} 1591 | 1592 | path-is-absolute@1.0.1: 1593 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1594 | engines: {node: '>=0.10.0'} 1595 | 1596 | path-is-inside@1.0.2: 1597 | resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} 1598 | 1599 | path-key@2.0.1: 1600 | resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} 1601 | engines: {node: '>=4'} 1602 | 1603 | path-key@3.1.1: 1604 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1605 | engines: {node: '>=8'} 1606 | 1607 | path-parse@1.0.7: 1608 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1609 | 1610 | path-to-regexp@3.3.0: 1611 | resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} 1612 | 1613 | picocolors@1.1.1: 1614 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1615 | 1616 | picomatch@2.3.1: 1617 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1618 | engines: {node: '>=8.6'} 1619 | 1620 | pirates@4.0.6: 1621 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1622 | engines: {node: '>= 6'} 1623 | 1624 | pkg-dir@4.2.0: 1625 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 1626 | engines: {node: '>=8'} 1627 | 1628 | posix-character-classes@0.1.1: 1629 | resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} 1630 | engines: {node: '>=0.10.0'} 1631 | 1632 | pretty-format@29.7.0: 1633 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 1634 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1635 | 1636 | prompts@2.4.2: 1637 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 1638 | engines: {node: '>= 6'} 1639 | 1640 | pump@3.0.2: 1641 | resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} 1642 | 1643 | punycode@2.3.1: 1644 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1645 | engines: {node: '>=6'} 1646 | 1647 | pure-rand@6.1.0: 1648 | resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} 1649 | 1650 | range-parser@1.2.0: 1651 | resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} 1652 | engines: {node: '>= 0.6'} 1653 | 1654 | rc@1.2.8: 1655 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 1656 | hasBin: true 1657 | 1658 | react-is@18.3.1: 1659 | resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} 1660 | 1661 | regex-not@1.0.2: 1662 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} 1663 | engines: {node: '>=0.10.0'} 1664 | 1665 | registry-auth-token@3.3.2: 1666 | resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} 1667 | 1668 | registry-url@3.1.0: 1669 | resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} 1670 | engines: {node: '>=0.10.0'} 1671 | 1672 | remove-trailing-separator@1.1.0: 1673 | resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} 1674 | 1675 | repeat-element@1.1.4: 1676 | resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} 1677 | engines: {node: '>=0.10.0'} 1678 | 1679 | repeat-string@1.6.1: 1680 | resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} 1681 | engines: {node: '>=0.10'} 1682 | 1683 | require-directory@2.1.1: 1684 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1685 | engines: {node: '>=0.10.0'} 1686 | 1687 | require-from-string@2.0.2: 1688 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1689 | engines: {node: '>=0.10.0'} 1690 | 1691 | resolve-cwd@3.0.0: 1692 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} 1693 | engines: {node: '>=8'} 1694 | 1695 | resolve-from@5.0.0: 1696 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1697 | engines: {node: '>=8'} 1698 | 1699 | resolve-url@0.2.1: 1700 | resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} 1701 | deprecated: https://github.com/lydell/resolve-url#deprecated 1702 | 1703 | resolve.exports@2.0.3: 1704 | resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} 1705 | engines: {node: '>=10'} 1706 | 1707 | resolve@1.22.10: 1708 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1709 | engines: {node: '>= 0.4'} 1710 | hasBin: true 1711 | 1712 | ret@0.1.15: 1713 | resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} 1714 | engines: {node: '>=0.12'} 1715 | 1716 | rsvp@4.8.5: 1717 | resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} 1718 | engines: {node: 6.* || >= 7.*} 1719 | 1720 | safe-buffer@5.1.2: 1721 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1722 | 1723 | safe-buffer@5.2.1: 1724 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1725 | 1726 | safe-regex@1.1.0: 1727 | resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} 1728 | 1729 | sane@4.1.0: 1730 | resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} 1731 | engines: {node: 6.* || 8.* || >= 10.*} 1732 | deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added 1733 | hasBin: true 1734 | 1735 | semver@5.7.2: 1736 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 1737 | hasBin: true 1738 | 1739 | semver@6.3.1: 1740 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1741 | hasBin: true 1742 | 1743 | semver@7.7.0: 1744 | resolution: {integrity: sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==} 1745 | engines: {node: '>=10'} 1746 | hasBin: true 1747 | 1748 | serve-handler@6.1.6: 1749 | resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} 1750 | 1751 | serve@14.2.4: 1752 | resolution: {integrity: sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==} 1753 | engines: {node: '>= 14'} 1754 | hasBin: true 1755 | 1756 | set-value@2.0.1: 1757 | resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} 1758 | engines: {node: '>=0.10.0'} 1759 | 1760 | shebang-command@1.2.0: 1761 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 1762 | engines: {node: '>=0.10.0'} 1763 | 1764 | shebang-command@2.0.0: 1765 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1766 | engines: {node: '>=8'} 1767 | 1768 | shebang-regex@1.0.0: 1769 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 1770 | engines: {node: '>=0.10.0'} 1771 | 1772 | shebang-regex@3.0.0: 1773 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1774 | engines: {node: '>=8'} 1775 | 1776 | signal-exit@3.0.7: 1777 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1778 | 1779 | sisteransi@1.0.5: 1780 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 1781 | 1782 | slash@3.0.0: 1783 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1784 | engines: {node: '>=8'} 1785 | 1786 | snapdragon-node@2.1.1: 1787 | resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} 1788 | engines: {node: '>=0.10.0'} 1789 | 1790 | snapdragon-util@3.0.1: 1791 | resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} 1792 | engines: {node: '>=0.10.0'} 1793 | 1794 | snapdragon@0.8.2: 1795 | resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} 1796 | engines: {node: '>=0.10.0'} 1797 | 1798 | source-map-resolve@0.5.3: 1799 | resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} 1800 | deprecated: See https://github.com/lydell/source-map-resolve#deprecated 1801 | 1802 | source-map-support@0.5.13: 1803 | resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} 1804 | 1805 | source-map-url@0.4.1: 1806 | resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} 1807 | deprecated: See https://github.com/lydell/source-map-url#deprecated 1808 | 1809 | source-map@0.5.7: 1810 | resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} 1811 | engines: {node: '>=0.10.0'} 1812 | 1813 | source-map@0.6.1: 1814 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1815 | engines: {node: '>=0.10.0'} 1816 | 1817 | split-string@3.1.0: 1818 | resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} 1819 | engines: {node: '>=0.10.0'} 1820 | 1821 | sprintf-js@1.0.3: 1822 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1823 | 1824 | stack-utils@2.0.6: 1825 | resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} 1826 | engines: {node: '>=10'} 1827 | 1828 | static-extend@0.1.2: 1829 | resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} 1830 | engines: {node: '>=0.10.0'} 1831 | 1832 | string-length@4.0.2: 1833 | resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} 1834 | engines: {node: '>=10'} 1835 | 1836 | string-width@4.2.3: 1837 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1838 | engines: {node: '>=8'} 1839 | 1840 | string-width@5.1.2: 1841 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1842 | engines: {node: '>=12'} 1843 | 1844 | strip-ansi@6.0.1: 1845 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1846 | engines: {node: '>=8'} 1847 | 1848 | strip-ansi@7.1.0: 1849 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1850 | engines: {node: '>=12'} 1851 | 1852 | strip-bom@4.0.0: 1853 | resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} 1854 | engines: {node: '>=8'} 1855 | 1856 | strip-eof@1.0.0: 1857 | resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} 1858 | engines: {node: '>=0.10.0'} 1859 | 1860 | strip-final-newline@2.0.0: 1861 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1862 | engines: {node: '>=6'} 1863 | 1864 | strip-json-comments@2.0.1: 1865 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 1866 | engines: {node: '>=0.10.0'} 1867 | 1868 | strip-json-comments@3.1.1: 1869 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1870 | engines: {node: '>=8'} 1871 | 1872 | supports-color@7.2.0: 1873 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1874 | engines: {node: '>=8'} 1875 | 1876 | supports-color@8.1.1: 1877 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1878 | engines: {node: '>=10'} 1879 | 1880 | supports-preserve-symlinks-flag@1.0.0: 1881 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1882 | engines: {node: '>= 0.4'} 1883 | 1884 | test-exclude@6.0.0: 1885 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} 1886 | engines: {node: '>=8'} 1887 | 1888 | tmpl@1.0.5: 1889 | resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} 1890 | 1891 | to-object-path@0.3.0: 1892 | resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} 1893 | engines: {node: '>=0.10.0'} 1894 | 1895 | to-regex-range@2.1.1: 1896 | resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} 1897 | engines: {node: '>=0.10.0'} 1898 | 1899 | to-regex-range@5.0.1: 1900 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1901 | engines: {node: '>=8.0'} 1902 | 1903 | to-regex@3.0.2: 1904 | resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} 1905 | engines: {node: '>=0.10.0'} 1906 | 1907 | ts-node@10.9.2: 1908 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} 1909 | hasBin: true 1910 | peerDependencies: 1911 | '@swc/core': '>=1.2.50' 1912 | '@swc/wasm': '>=1.2.50' 1913 | '@types/node': '*' 1914 | typescript: '>=2.7' 1915 | peerDependenciesMeta: 1916 | '@swc/core': 1917 | optional: true 1918 | '@swc/wasm': 1919 | optional: true 1920 | 1921 | type-detect@4.0.8: 1922 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 1923 | engines: {node: '>=4'} 1924 | 1925 | type-fest@0.21.3: 1926 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 1927 | engines: {node: '>=10'} 1928 | 1929 | type-fest@2.19.0: 1930 | resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} 1931 | engines: {node: '>=12.20'} 1932 | 1933 | typedarray-to-buffer@3.1.5: 1934 | resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} 1935 | 1936 | typescript@5.7.3: 1937 | resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 1938 | engines: {node: '>=14.17'} 1939 | hasBin: true 1940 | 1941 | undici-types@6.20.0: 1942 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1943 | 1944 | union-value@1.0.1: 1945 | resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} 1946 | engines: {node: '>=0.10.0'} 1947 | 1948 | unset-value@1.0.0: 1949 | resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} 1950 | engines: {node: '>=0.10.0'} 1951 | 1952 | update-browserslist-db@1.1.2: 1953 | resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} 1954 | hasBin: true 1955 | peerDependencies: 1956 | browserslist: '>= 4.21.0' 1957 | 1958 | update-check@1.5.4: 1959 | resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} 1960 | 1961 | uri-js@4.4.1: 1962 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1963 | 1964 | urix@0.1.0: 1965 | resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} 1966 | deprecated: Please see https://github.com/lydell/urix#deprecated 1967 | 1968 | use@3.1.1: 1969 | resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} 1970 | engines: {node: '>=0.10.0'} 1971 | 1972 | v8-compile-cache-lib@3.0.1: 1973 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 1974 | 1975 | v8-to-istanbul@9.3.0: 1976 | resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} 1977 | engines: {node: '>=10.12.0'} 1978 | 1979 | vary@1.1.2: 1980 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1981 | engines: {node: '>= 0.8'} 1982 | 1983 | walker@1.0.8: 1984 | resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} 1985 | 1986 | which@1.3.1: 1987 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 1988 | hasBin: true 1989 | 1990 | which@2.0.2: 1991 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1992 | engines: {node: '>= 8'} 1993 | hasBin: true 1994 | 1995 | widest-line@4.0.1: 1996 | resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} 1997 | engines: {node: '>=12'} 1998 | 1999 | wrap-ansi@7.0.0: 2000 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2001 | engines: {node: '>=10'} 2002 | 2003 | wrap-ansi@8.1.0: 2004 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2005 | engines: {node: '>=12'} 2006 | 2007 | wrappy@1.0.2: 2008 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2009 | 2010 | write-file-atomic@3.0.3: 2011 | resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} 2012 | 2013 | write-file-atomic@4.0.2: 2014 | resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} 2015 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} 2016 | 2017 | y18n@5.0.8: 2018 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2019 | engines: {node: '>=10'} 2020 | 2021 | yallist@3.1.1: 2022 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2023 | 2024 | yargs-parser@21.1.1: 2025 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 2026 | engines: {node: '>=12'} 2027 | 2028 | yargs@17.7.2: 2029 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 2030 | engines: {node: '>=12'} 2031 | 2032 | yn@3.1.1: 2033 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 2034 | engines: {node: '>=6'} 2035 | 2036 | yocto-queue@0.1.0: 2037 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2038 | engines: {node: '>=10'} 2039 | 2040 | snapshots: 2041 | 2042 | '@ampproject/remapping@2.3.0': 2043 | dependencies: 2044 | '@jridgewell/gen-mapping': 0.3.8 2045 | '@jridgewell/trace-mapping': 0.3.25 2046 | 2047 | '@babel/code-frame@7.26.2': 2048 | dependencies: 2049 | '@babel/helper-validator-identifier': 7.25.9 2050 | js-tokens: 4.0.0 2051 | picocolors: 1.1.1 2052 | 2053 | '@babel/compat-data@7.26.5': {} 2054 | 2055 | '@babel/core@7.26.7': 2056 | dependencies: 2057 | '@ampproject/remapping': 2.3.0 2058 | '@babel/code-frame': 7.26.2 2059 | '@babel/generator': 7.26.5 2060 | '@babel/helper-compilation-targets': 7.26.5 2061 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) 2062 | '@babel/helpers': 7.26.7 2063 | '@babel/parser': 7.26.7 2064 | '@babel/template': 7.25.9 2065 | '@babel/traverse': 7.26.7 2066 | '@babel/types': 7.26.7 2067 | convert-source-map: 2.0.0 2068 | debug: 4.4.0 2069 | gensync: 1.0.0-beta.2 2070 | json5: 2.2.3 2071 | semver: 6.3.1 2072 | transitivePeerDependencies: 2073 | - supports-color 2074 | 2075 | '@babel/generator@7.26.5': 2076 | dependencies: 2077 | '@babel/parser': 7.26.7 2078 | '@babel/types': 7.26.7 2079 | '@jridgewell/gen-mapping': 0.3.8 2080 | '@jridgewell/trace-mapping': 0.3.25 2081 | jsesc: 3.1.0 2082 | 2083 | '@babel/helper-compilation-targets@7.26.5': 2084 | dependencies: 2085 | '@babel/compat-data': 7.26.5 2086 | '@babel/helper-validator-option': 7.25.9 2087 | browserslist: 4.24.4 2088 | lru-cache: 5.1.1 2089 | semver: 6.3.1 2090 | 2091 | '@babel/helper-module-imports@7.25.9': 2092 | dependencies: 2093 | '@babel/traverse': 7.26.7 2094 | '@babel/types': 7.26.7 2095 | transitivePeerDependencies: 2096 | - supports-color 2097 | 2098 | '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.7)': 2099 | dependencies: 2100 | '@babel/core': 7.26.7 2101 | '@babel/helper-module-imports': 7.25.9 2102 | '@babel/helper-validator-identifier': 7.25.9 2103 | '@babel/traverse': 7.26.7 2104 | transitivePeerDependencies: 2105 | - supports-color 2106 | 2107 | '@babel/helper-plugin-utils@7.26.5': {} 2108 | 2109 | '@babel/helper-string-parser@7.25.9': {} 2110 | 2111 | '@babel/helper-validator-identifier@7.25.9': {} 2112 | 2113 | '@babel/helper-validator-option@7.25.9': {} 2114 | 2115 | '@babel/helpers@7.26.7': 2116 | dependencies: 2117 | '@babel/template': 7.25.9 2118 | '@babel/types': 7.26.7 2119 | 2120 | '@babel/parser@7.26.7': 2121 | dependencies: 2122 | '@babel/types': 7.26.7 2123 | 2124 | '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.7)': 2125 | dependencies: 2126 | '@babel/core': 7.26.7 2127 | '@babel/helper-plugin-utils': 7.26.5 2128 | 2129 | '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.7)': 2130 | dependencies: 2131 | '@babel/core': 7.26.7 2132 | '@babel/helper-plugin-utils': 7.26.5 2133 | 2134 | '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.7)': 2135 | dependencies: 2136 | '@babel/core': 7.26.7 2137 | '@babel/helper-plugin-utils': 7.26.5 2138 | 2139 | '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.7)': 2140 | dependencies: 2141 | '@babel/core': 7.26.7 2142 | '@babel/helper-plugin-utils': 7.26.5 2143 | 2144 | '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.7)': 2145 | dependencies: 2146 | '@babel/core': 7.26.7 2147 | '@babel/helper-plugin-utils': 7.26.5 2148 | 2149 | '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.7)': 2150 | dependencies: 2151 | '@babel/core': 7.26.7 2152 | '@babel/helper-plugin-utils': 7.26.5 2153 | 2154 | '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.7)': 2155 | dependencies: 2156 | '@babel/core': 7.26.7 2157 | '@babel/helper-plugin-utils': 7.26.5 2158 | 2159 | '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.7)': 2160 | dependencies: 2161 | '@babel/core': 7.26.7 2162 | '@babel/helper-plugin-utils': 7.26.5 2163 | 2164 | '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.7)': 2165 | dependencies: 2166 | '@babel/core': 7.26.7 2167 | '@babel/helper-plugin-utils': 7.26.5 2168 | 2169 | '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.7)': 2170 | dependencies: 2171 | '@babel/core': 7.26.7 2172 | '@babel/helper-plugin-utils': 7.26.5 2173 | 2174 | '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.7)': 2175 | dependencies: 2176 | '@babel/core': 7.26.7 2177 | '@babel/helper-plugin-utils': 7.26.5 2178 | 2179 | '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.7)': 2180 | dependencies: 2181 | '@babel/core': 7.26.7 2182 | '@babel/helper-plugin-utils': 7.26.5 2183 | 2184 | '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.7)': 2185 | dependencies: 2186 | '@babel/core': 7.26.7 2187 | '@babel/helper-plugin-utils': 7.26.5 2188 | 2189 | '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.7)': 2190 | dependencies: 2191 | '@babel/core': 7.26.7 2192 | '@babel/helper-plugin-utils': 7.26.5 2193 | 2194 | '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.7)': 2195 | dependencies: 2196 | '@babel/core': 7.26.7 2197 | '@babel/helper-plugin-utils': 7.26.5 2198 | 2199 | '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.7)': 2200 | dependencies: 2201 | '@babel/core': 7.26.7 2202 | '@babel/helper-plugin-utils': 7.26.5 2203 | 2204 | '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.7)': 2205 | dependencies: 2206 | '@babel/core': 7.26.7 2207 | '@babel/helper-plugin-utils': 7.26.5 2208 | 2209 | '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.7)': 2210 | dependencies: 2211 | '@babel/core': 7.26.7 2212 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) 2213 | '@babel/helper-plugin-utils': 7.26.5 2214 | transitivePeerDependencies: 2215 | - supports-color 2216 | 2217 | '@babel/template@7.25.9': 2218 | dependencies: 2219 | '@babel/code-frame': 7.26.2 2220 | '@babel/parser': 7.26.7 2221 | '@babel/types': 7.26.7 2222 | 2223 | '@babel/traverse@7.26.7': 2224 | dependencies: 2225 | '@babel/code-frame': 7.26.2 2226 | '@babel/generator': 7.26.5 2227 | '@babel/parser': 7.26.7 2228 | '@babel/template': 7.25.9 2229 | '@babel/types': 7.26.7 2230 | debug: 4.4.0 2231 | globals: 11.12.0 2232 | transitivePeerDependencies: 2233 | - supports-color 2234 | 2235 | '@babel/types@7.26.7': 2236 | dependencies: 2237 | '@babel/helper-string-parser': 7.25.9 2238 | '@babel/helper-validator-identifier': 7.25.9 2239 | 2240 | '@bcoe/v8-coverage@0.2.3': {} 2241 | 2242 | '@cnakazawa/watch@1.0.4': 2243 | dependencies: 2244 | exec-sh: 0.3.6 2245 | minimist: 1.2.8 2246 | 2247 | '@cspotcode/source-map-support@0.8.1': 2248 | dependencies: 2249 | '@jridgewell/trace-mapping': 0.3.9 2250 | 2251 | '@esbuild/aix-ppc64@0.25.0': 2252 | optional: true 2253 | 2254 | '@esbuild/android-arm64@0.25.0': 2255 | optional: true 2256 | 2257 | '@esbuild/android-arm@0.25.0': 2258 | optional: true 2259 | 2260 | '@esbuild/android-x64@0.25.0': 2261 | optional: true 2262 | 2263 | '@esbuild/darwin-arm64@0.25.0': 2264 | optional: true 2265 | 2266 | '@esbuild/darwin-x64@0.25.0': 2267 | optional: true 2268 | 2269 | '@esbuild/freebsd-arm64@0.25.0': 2270 | optional: true 2271 | 2272 | '@esbuild/freebsd-x64@0.25.0': 2273 | optional: true 2274 | 2275 | '@esbuild/linux-arm64@0.25.0': 2276 | optional: true 2277 | 2278 | '@esbuild/linux-arm@0.25.0': 2279 | optional: true 2280 | 2281 | '@esbuild/linux-ia32@0.25.0': 2282 | optional: true 2283 | 2284 | '@esbuild/linux-loong64@0.25.0': 2285 | optional: true 2286 | 2287 | '@esbuild/linux-mips64el@0.25.0': 2288 | optional: true 2289 | 2290 | '@esbuild/linux-ppc64@0.25.0': 2291 | optional: true 2292 | 2293 | '@esbuild/linux-riscv64@0.25.0': 2294 | optional: true 2295 | 2296 | '@esbuild/linux-s390x@0.25.0': 2297 | optional: true 2298 | 2299 | '@esbuild/linux-x64@0.25.0': 2300 | optional: true 2301 | 2302 | '@esbuild/netbsd-arm64@0.25.0': 2303 | optional: true 2304 | 2305 | '@esbuild/netbsd-x64@0.25.0': 2306 | optional: true 2307 | 2308 | '@esbuild/openbsd-arm64@0.25.0': 2309 | optional: true 2310 | 2311 | '@esbuild/openbsd-x64@0.25.0': 2312 | optional: true 2313 | 2314 | '@esbuild/sunos-x64@0.25.0': 2315 | optional: true 2316 | 2317 | '@esbuild/win32-arm64@0.25.0': 2318 | optional: true 2319 | 2320 | '@esbuild/win32-ia32@0.25.0': 2321 | optional: true 2322 | 2323 | '@esbuild/win32-x64@0.25.0': 2324 | optional: true 2325 | 2326 | '@istanbuljs/load-nyc-config@1.1.0': 2327 | dependencies: 2328 | camelcase: 5.3.1 2329 | find-up: 4.1.0 2330 | get-package-type: 0.1.0 2331 | js-yaml: 3.14.1 2332 | resolve-from: 5.0.0 2333 | 2334 | '@istanbuljs/schema@0.1.3': {} 2335 | 2336 | '@jest/console@29.7.0': 2337 | dependencies: 2338 | '@jest/types': 29.6.3 2339 | '@types/node': 22.13.0 2340 | chalk: 4.1.2 2341 | jest-message-util: 29.7.0 2342 | jest-util: 29.7.0 2343 | slash: 3.0.0 2344 | 2345 | '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3))': 2346 | dependencies: 2347 | '@jest/console': 29.7.0 2348 | '@jest/reporters': 29.7.0 2349 | '@jest/test-result': 29.7.0 2350 | '@jest/transform': 29.7.0 2351 | '@jest/types': 29.6.3 2352 | '@types/node': 22.13.0 2353 | ansi-escapes: 4.3.2 2354 | chalk: 4.1.2 2355 | ci-info: 3.9.0 2356 | exit: 0.1.2 2357 | graceful-fs: 4.2.11 2358 | jest-changed-files: 29.7.0 2359 | jest-config: 29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)) 2360 | jest-haste-map: 29.7.0 2361 | jest-message-util: 29.7.0 2362 | jest-regex-util: 29.6.3 2363 | jest-resolve: 29.7.0 2364 | jest-resolve-dependencies: 29.7.0 2365 | jest-runner: 29.7.0 2366 | jest-runtime: 29.7.0 2367 | jest-snapshot: 29.7.0 2368 | jest-util: 29.7.0 2369 | jest-validate: 29.7.0 2370 | jest-watcher: 29.7.0 2371 | micromatch: 4.0.8 2372 | pretty-format: 29.7.0 2373 | slash: 3.0.0 2374 | strip-ansi: 6.0.1 2375 | transitivePeerDependencies: 2376 | - babel-plugin-macros 2377 | - supports-color 2378 | - ts-node 2379 | 2380 | '@jest/environment@29.7.0': 2381 | dependencies: 2382 | '@jest/fake-timers': 29.7.0 2383 | '@jest/types': 29.6.3 2384 | '@types/node': 22.13.0 2385 | jest-mock: 29.7.0 2386 | 2387 | '@jest/expect-utils@29.7.0': 2388 | dependencies: 2389 | jest-get-type: 29.6.3 2390 | 2391 | '@jest/expect@29.7.0': 2392 | dependencies: 2393 | expect: 29.7.0 2394 | jest-snapshot: 29.7.0 2395 | transitivePeerDependencies: 2396 | - supports-color 2397 | 2398 | '@jest/fake-timers@29.7.0': 2399 | dependencies: 2400 | '@jest/types': 29.6.3 2401 | '@sinonjs/fake-timers': 10.3.0 2402 | '@types/node': 22.13.0 2403 | jest-message-util: 29.7.0 2404 | jest-mock: 29.7.0 2405 | jest-util: 29.7.0 2406 | 2407 | '@jest/globals@29.7.0': 2408 | dependencies: 2409 | '@jest/environment': 29.7.0 2410 | '@jest/expect': 29.7.0 2411 | '@jest/types': 29.6.3 2412 | jest-mock: 29.7.0 2413 | transitivePeerDependencies: 2414 | - supports-color 2415 | 2416 | '@jest/reporters@29.7.0': 2417 | dependencies: 2418 | '@bcoe/v8-coverage': 0.2.3 2419 | '@jest/console': 29.7.0 2420 | '@jest/test-result': 29.7.0 2421 | '@jest/transform': 29.7.0 2422 | '@jest/types': 29.6.3 2423 | '@jridgewell/trace-mapping': 0.3.25 2424 | '@types/node': 22.13.0 2425 | chalk: 4.1.2 2426 | collect-v8-coverage: 1.0.2 2427 | exit: 0.1.2 2428 | glob: 7.2.3 2429 | graceful-fs: 4.2.11 2430 | istanbul-lib-coverage: 3.2.2 2431 | istanbul-lib-instrument: 6.0.3 2432 | istanbul-lib-report: 3.0.1 2433 | istanbul-lib-source-maps: 4.0.1 2434 | istanbul-reports: 3.1.7 2435 | jest-message-util: 29.7.0 2436 | jest-util: 29.7.0 2437 | jest-worker: 29.7.0 2438 | slash: 3.0.0 2439 | string-length: 4.0.2 2440 | strip-ansi: 6.0.1 2441 | v8-to-istanbul: 9.3.0 2442 | transitivePeerDependencies: 2443 | - supports-color 2444 | 2445 | '@jest/schemas@29.6.3': 2446 | dependencies: 2447 | '@sinclair/typebox': 0.27.8 2448 | 2449 | '@jest/source-map@29.6.3': 2450 | dependencies: 2451 | '@jridgewell/trace-mapping': 0.3.25 2452 | callsites: 3.1.0 2453 | graceful-fs: 4.2.11 2454 | 2455 | '@jest/test-result@29.7.0': 2456 | dependencies: 2457 | '@jest/console': 29.7.0 2458 | '@jest/types': 29.6.3 2459 | '@types/istanbul-lib-coverage': 2.0.6 2460 | collect-v8-coverage: 1.0.2 2461 | 2462 | '@jest/test-sequencer@29.7.0': 2463 | dependencies: 2464 | '@jest/test-result': 29.7.0 2465 | graceful-fs: 4.2.11 2466 | jest-haste-map: 29.7.0 2467 | slash: 3.0.0 2468 | 2469 | '@jest/transform@26.6.2': 2470 | dependencies: 2471 | '@babel/core': 7.26.7 2472 | '@jest/types': 26.6.2 2473 | babel-plugin-istanbul: 6.1.1 2474 | chalk: 4.1.2 2475 | convert-source-map: 1.9.0 2476 | fast-json-stable-stringify: 2.1.0 2477 | graceful-fs: 4.2.11 2478 | jest-haste-map: 26.6.2 2479 | jest-regex-util: 26.0.0 2480 | jest-util: 26.6.2 2481 | micromatch: 4.0.8 2482 | pirates: 4.0.6 2483 | slash: 3.0.0 2484 | source-map: 0.6.1 2485 | write-file-atomic: 3.0.3 2486 | transitivePeerDependencies: 2487 | - supports-color 2488 | 2489 | '@jest/transform@29.7.0': 2490 | dependencies: 2491 | '@babel/core': 7.26.7 2492 | '@jest/types': 29.6.3 2493 | '@jridgewell/trace-mapping': 0.3.25 2494 | babel-plugin-istanbul: 6.1.1 2495 | chalk: 4.1.2 2496 | convert-source-map: 2.0.0 2497 | fast-json-stable-stringify: 2.1.0 2498 | graceful-fs: 4.2.11 2499 | jest-haste-map: 29.7.0 2500 | jest-regex-util: 29.6.3 2501 | jest-util: 29.7.0 2502 | micromatch: 4.0.8 2503 | pirates: 4.0.6 2504 | slash: 3.0.0 2505 | write-file-atomic: 4.0.2 2506 | transitivePeerDependencies: 2507 | - supports-color 2508 | 2509 | '@jest/types@26.6.2': 2510 | dependencies: 2511 | '@types/istanbul-lib-coverage': 2.0.6 2512 | '@types/istanbul-reports': 3.0.4 2513 | '@types/node': 22.13.0 2514 | '@types/yargs': 15.0.19 2515 | chalk: 4.1.2 2516 | 2517 | '@jest/types@29.6.3': 2518 | dependencies: 2519 | '@jest/schemas': 29.6.3 2520 | '@types/istanbul-lib-coverage': 2.0.6 2521 | '@types/istanbul-reports': 3.0.4 2522 | '@types/node': 22.13.0 2523 | '@types/yargs': 17.0.33 2524 | chalk: 4.1.2 2525 | 2526 | '@jridgewell/gen-mapping@0.3.8': 2527 | dependencies: 2528 | '@jridgewell/set-array': 1.2.1 2529 | '@jridgewell/sourcemap-codec': 1.5.0 2530 | '@jridgewell/trace-mapping': 0.3.25 2531 | 2532 | '@jridgewell/resolve-uri@3.1.2': {} 2533 | 2534 | '@jridgewell/set-array@1.2.1': {} 2535 | 2536 | '@jridgewell/sourcemap-codec@1.5.0': {} 2537 | 2538 | '@jridgewell/trace-mapping@0.3.25': 2539 | dependencies: 2540 | '@jridgewell/resolve-uri': 3.1.2 2541 | '@jridgewell/sourcemap-codec': 1.5.0 2542 | 2543 | '@jridgewell/trace-mapping@0.3.9': 2544 | dependencies: 2545 | '@jridgewell/resolve-uri': 3.1.2 2546 | '@jridgewell/sourcemap-codec': 1.5.0 2547 | 2548 | '@sinclair/typebox@0.27.8': {} 2549 | 2550 | '@sinonjs/commons@3.0.1': 2551 | dependencies: 2552 | type-detect: 4.0.8 2553 | 2554 | '@sinonjs/fake-timers@10.3.0': 2555 | dependencies: 2556 | '@sinonjs/commons': 3.0.1 2557 | 2558 | '@tsconfig/node10@1.0.11': {} 2559 | 2560 | '@tsconfig/node12@1.0.11': {} 2561 | 2562 | '@tsconfig/node14@1.0.3': {} 2563 | 2564 | '@tsconfig/node16@1.0.4': {} 2565 | 2566 | '@types/babel__core@7.20.5': 2567 | dependencies: 2568 | '@babel/parser': 7.26.7 2569 | '@babel/types': 7.26.7 2570 | '@types/babel__generator': 7.6.8 2571 | '@types/babel__template': 7.4.4 2572 | '@types/babel__traverse': 7.20.6 2573 | 2574 | '@types/babel__generator@7.6.8': 2575 | dependencies: 2576 | '@babel/types': 7.26.7 2577 | 2578 | '@types/babel__template@7.4.4': 2579 | dependencies: 2580 | '@babel/parser': 7.26.7 2581 | '@babel/types': 7.26.7 2582 | 2583 | '@types/babel__traverse@7.20.6': 2584 | dependencies: 2585 | '@babel/types': 7.26.7 2586 | 2587 | '@types/graceful-fs@4.1.9': 2588 | dependencies: 2589 | '@types/node': 22.13.0 2590 | 2591 | '@types/istanbul-lib-coverage@2.0.6': {} 2592 | 2593 | '@types/istanbul-lib-report@3.0.3': 2594 | dependencies: 2595 | '@types/istanbul-lib-coverage': 2.0.6 2596 | 2597 | '@types/istanbul-reports@3.0.4': 2598 | dependencies: 2599 | '@types/istanbul-lib-report': 3.0.3 2600 | 2601 | '@types/jest@29.5.14': 2602 | dependencies: 2603 | expect: 29.7.0 2604 | pretty-format: 29.7.0 2605 | 2606 | '@types/node@22.13.0': 2607 | dependencies: 2608 | undici-types: 6.20.0 2609 | 2610 | '@types/stack-utils@2.0.3': {} 2611 | 2612 | '@types/yargs-parser@21.0.3': {} 2613 | 2614 | '@types/yargs@15.0.19': 2615 | dependencies: 2616 | '@types/yargs-parser': 21.0.3 2617 | 2618 | '@types/yargs@17.0.33': 2619 | dependencies: 2620 | '@types/yargs-parser': 21.0.3 2621 | 2622 | '@zeit/schemas@2.36.0': {} 2623 | 2624 | accepts@1.3.8: 2625 | dependencies: 2626 | mime-types: 2.1.35 2627 | negotiator: 0.6.3 2628 | 2629 | acorn-walk@8.3.4: 2630 | dependencies: 2631 | acorn: 8.14.0 2632 | 2633 | acorn@8.14.0: {} 2634 | 2635 | ajv@8.12.0: 2636 | dependencies: 2637 | fast-deep-equal: 3.1.3 2638 | json-schema-traverse: 1.0.0 2639 | require-from-string: 2.0.2 2640 | uri-js: 4.4.1 2641 | 2642 | ansi-align@3.0.1: 2643 | dependencies: 2644 | string-width: 4.2.3 2645 | 2646 | ansi-escapes@4.3.2: 2647 | dependencies: 2648 | type-fest: 0.21.3 2649 | 2650 | ansi-regex@5.0.1: {} 2651 | 2652 | ansi-regex@6.1.0: {} 2653 | 2654 | ansi-styles@4.3.0: 2655 | dependencies: 2656 | color-convert: 2.0.1 2657 | 2658 | ansi-styles@5.2.0: {} 2659 | 2660 | ansi-styles@6.2.1: {} 2661 | 2662 | anymatch@2.0.0: 2663 | dependencies: 2664 | micromatch: 3.1.10 2665 | normalize-path: 2.1.1 2666 | transitivePeerDependencies: 2667 | - supports-color 2668 | 2669 | anymatch@3.1.3: 2670 | dependencies: 2671 | normalize-path: 3.0.0 2672 | picomatch: 2.3.1 2673 | 2674 | arch@2.2.0: {} 2675 | 2676 | arg@4.1.3: {} 2677 | 2678 | arg@5.0.2: {} 2679 | 2680 | argparse@1.0.10: 2681 | dependencies: 2682 | sprintf-js: 1.0.3 2683 | 2684 | arr-diff@4.0.0: {} 2685 | 2686 | arr-flatten@1.1.0: {} 2687 | 2688 | arr-union@3.1.0: {} 2689 | 2690 | array-unique@0.3.2: {} 2691 | 2692 | assign-symbols@1.0.0: {} 2693 | 2694 | atob@2.1.2: {} 2695 | 2696 | babel-jest@26.6.3(@babel/core@7.26.7): 2697 | dependencies: 2698 | '@babel/core': 7.26.7 2699 | '@jest/transform': 26.6.2 2700 | '@jest/types': 26.6.2 2701 | '@types/babel__core': 7.20.5 2702 | babel-plugin-istanbul: 6.1.1 2703 | babel-preset-jest: 26.6.2(@babel/core@7.26.7) 2704 | chalk: 4.1.2 2705 | graceful-fs: 4.2.11 2706 | slash: 3.0.0 2707 | transitivePeerDependencies: 2708 | - supports-color 2709 | 2710 | babel-jest@29.7.0(@babel/core@7.26.7): 2711 | dependencies: 2712 | '@babel/core': 7.26.7 2713 | '@jest/transform': 29.7.0 2714 | '@types/babel__core': 7.20.5 2715 | babel-plugin-istanbul: 6.1.1 2716 | babel-preset-jest: 29.6.3(@babel/core@7.26.7) 2717 | chalk: 4.1.2 2718 | graceful-fs: 4.2.11 2719 | slash: 3.0.0 2720 | transitivePeerDependencies: 2721 | - supports-color 2722 | 2723 | babel-plugin-istanbul@6.1.1: 2724 | dependencies: 2725 | '@babel/helper-plugin-utils': 7.26.5 2726 | '@istanbuljs/load-nyc-config': 1.1.0 2727 | '@istanbuljs/schema': 0.1.3 2728 | istanbul-lib-instrument: 5.2.1 2729 | test-exclude: 6.0.0 2730 | transitivePeerDependencies: 2731 | - supports-color 2732 | 2733 | babel-plugin-jest-hoist@26.6.2: 2734 | dependencies: 2735 | '@babel/template': 7.25.9 2736 | '@babel/types': 7.26.7 2737 | '@types/babel__core': 7.20.5 2738 | '@types/babel__traverse': 7.20.6 2739 | 2740 | babel-plugin-jest-hoist@29.6.3: 2741 | dependencies: 2742 | '@babel/template': 7.25.9 2743 | '@babel/types': 7.26.7 2744 | '@types/babel__core': 7.20.5 2745 | '@types/babel__traverse': 7.20.6 2746 | 2747 | babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.7): 2748 | dependencies: 2749 | '@babel/core': 7.26.7 2750 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.7) 2751 | '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.7) 2752 | '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.7) 2753 | '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.7) 2754 | '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.7) 2755 | '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.7) 2756 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.7) 2757 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.7) 2758 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.7) 2759 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.7) 2760 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.7) 2761 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.7) 2762 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.7) 2763 | '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.7) 2764 | '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.7) 2765 | 2766 | babel-preset-jest@26.6.2(@babel/core@7.26.7): 2767 | dependencies: 2768 | '@babel/core': 7.26.7 2769 | babel-plugin-jest-hoist: 26.6.2 2770 | babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.7) 2771 | 2772 | babel-preset-jest@29.6.3(@babel/core@7.26.7): 2773 | dependencies: 2774 | '@babel/core': 7.26.7 2775 | babel-plugin-jest-hoist: 29.6.3 2776 | babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.7) 2777 | 2778 | balanced-match@1.0.2: {} 2779 | 2780 | base@0.11.2: 2781 | dependencies: 2782 | cache-base: 1.0.1 2783 | class-utils: 0.3.6 2784 | component-emitter: 1.3.1 2785 | define-property: 1.0.0 2786 | isobject: 3.0.1 2787 | mixin-deep: 1.3.2 2788 | pascalcase: 0.1.1 2789 | 2790 | boxen@7.0.0: 2791 | dependencies: 2792 | ansi-align: 3.0.1 2793 | camelcase: 7.0.1 2794 | chalk: 5.0.1 2795 | cli-boxes: 3.0.0 2796 | string-width: 5.1.2 2797 | type-fest: 2.19.0 2798 | widest-line: 4.0.1 2799 | wrap-ansi: 8.1.0 2800 | 2801 | brace-expansion@1.1.11: 2802 | dependencies: 2803 | balanced-match: 1.0.2 2804 | concat-map: 0.0.1 2805 | 2806 | braces@2.3.2: 2807 | dependencies: 2808 | arr-flatten: 1.1.0 2809 | array-unique: 0.3.2 2810 | extend-shallow: 2.0.1 2811 | fill-range: 4.0.0 2812 | isobject: 3.0.1 2813 | repeat-element: 1.1.4 2814 | snapdragon: 0.8.2 2815 | snapdragon-node: 2.1.1 2816 | split-string: 3.1.0 2817 | to-regex: 3.0.2 2818 | transitivePeerDependencies: 2819 | - supports-color 2820 | 2821 | braces@3.0.3: 2822 | dependencies: 2823 | fill-range: 7.1.1 2824 | 2825 | browserslist@4.24.4: 2826 | dependencies: 2827 | caniuse-lite: 1.0.30001696 2828 | electron-to-chromium: 1.5.90 2829 | node-releases: 2.0.19 2830 | update-browserslist-db: 1.1.2(browserslist@4.24.4) 2831 | 2832 | bser@2.1.1: 2833 | dependencies: 2834 | node-int64: 0.4.0 2835 | 2836 | buffer-from@1.1.2: {} 2837 | 2838 | bytes@3.0.0: {} 2839 | 2840 | cache-base@1.0.1: 2841 | dependencies: 2842 | collection-visit: 1.0.0 2843 | component-emitter: 1.3.1 2844 | get-value: 2.0.6 2845 | has-value: 1.0.0 2846 | isobject: 3.0.1 2847 | set-value: 2.0.1 2848 | to-object-path: 0.3.0 2849 | union-value: 1.0.1 2850 | unset-value: 1.0.0 2851 | 2852 | callsites@3.1.0: {} 2853 | 2854 | camelcase@5.3.1: {} 2855 | 2856 | camelcase@6.3.0: {} 2857 | 2858 | camelcase@7.0.1: {} 2859 | 2860 | caniuse-lite@1.0.30001696: {} 2861 | 2862 | capture-exit@2.0.0: 2863 | dependencies: 2864 | rsvp: 4.8.5 2865 | 2866 | chalk-template@0.4.0: 2867 | dependencies: 2868 | chalk: 4.1.2 2869 | 2870 | chalk@4.1.2: 2871 | dependencies: 2872 | ansi-styles: 4.3.0 2873 | supports-color: 7.2.0 2874 | 2875 | chalk@5.0.1: {} 2876 | 2877 | char-regex@1.0.2: {} 2878 | 2879 | check-password-strength@3.0.0: 2880 | dependencies: 2881 | escape-string-regexp: 5.0.0 2882 | 2883 | ci-info@2.0.0: {} 2884 | 2885 | ci-info@3.9.0: {} 2886 | 2887 | cjs-module-lexer@1.4.3: {} 2888 | 2889 | class-utils@0.3.6: 2890 | dependencies: 2891 | arr-union: 3.1.0 2892 | define-property: 0.2.5 2893 | isobject: 3.0.1 2894 | static-extend: 0.1.2 2895 | 2896 | cli-boxes@3.0.0: {} 2897 | 2898 | clipboardy@3.0.0: 2899 | dependencies: 2900 | arch: 2.2.0 2901 | execa: 5.1.1 2902 | is-wsl: 2.2.0 2903 | 2904 | cliui@8.0.1: 2905 | dependencies: 2906 | string-width: 4.2.3 2907 | strip-ansi: 6.0.1 2908 | wrap-ansi: 7.0.0 2909 | 2910 | co@4.6.0: {} 2911 | 2912 | collect-v8-coverage@1.0.2: {} 2913 | 2914 | collection-visit@1.0.0: 2915 | dependencies: 2916 | map-visit: 1.0.0 2917 | object-visit: 1.0.1 2918 | 2919 | color-convert@2.0.1: 2920 | dependencies: 2921 | color-name: 1.1.4 2922 | 2923 | color-name@1.1.4: {} 2924 | 2925 | component-emitter@1.3.1: {} 2926 | 2927 | compressible@2.0.18: 2928 | dependencies: 2929 | mime-db: 1.53.0 2930 | 2931 | compression@1.7.4: 2932 | dependencies: 2933 | accepts: 1.3.8 2934 | bytes: 3.0.0 2935 | compressible: 2.0.18 2936 | debug: 2.6.9 2937 | on-headers: 1.0.2 2938 | safe-buffer: 5.1.2 2939 | vary: 1.1.2 2940 | transitivePeerDependencies: 2941 | - supports-color 2942 | 2943 | concat-map@0.0.1: {} 2944 | 2945 | content-disposition@0.5.2: {} 2946 | 2947 | convert-source-map@1.9.0: {} 2948 | 2949 | convert-source-map@2.0.0: {} 2950 | 2951 | copy-descriptor@0.1.1: {} 2952 | 2953 | create-jest@29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)): 2954 | dependencies: 2955 | '@jest/types': 29.6.3 2956 | chalk: 4.1.2 2957 | exit: 0.1.2 2958 | graceful-fs: 4.2.11 2959 | jest-config: 29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)) 2960 | jest-util: 29.7.0 2961 | prompts: 2.4.2 2962 | transitivePeerDependencies: 2963 | - '@types/node' 2964 | - babel-plugin-macros 2965 | - supports-color 2966 | - ts-node 2967 | 2968 | create-require@1.1.1: {} 2969 | 2970 | cross-spawn@6.0.6: 2971 | dependencies: 2972 | nice-try: 1.0.5 2973 | path-key: 2.0.1 2974 | semver: 5.7.2 2975 | shebang-command: 1.2.0 2976 | which: 1.3.1 2977 | 2978 | cross-spawn@7.0.6: 2979 | dependencies: 2980 | path-key: 3.1.1 2981 | shebang-command: 2.0.0 2982 | which: 2.0.2 2983 | 2984 | debug@2.6.9: 2985 | dependencies: 2986 | ms: 2.0.0 2987 | 2988 | debug@4.4.0: 2989 | dependencies: 2990 | ms: 2.1.3 2991 | 2992 | decode-uri-component@0.2.2: {} 2993 | 2994 | dedent@1.5.3: {} 2995 | 2996 | deep-extend@0.6.0: {} 2997 | 2998 | deepmerge@4.3.1: {} 2999 | 3000 | define-property@0.2.5: 3001 | dependencies: 3002 | is-descriptor: 0.1.7 3003 | 3004 | define-property@1.0.0: 3005 | dependencies: 3006 | is-descriptor: 1.0.3 3007 | 3008 | define-property@2.0.2: 3009 | dependencies: 3010 | is-descriptor: 1.0.3 3011 | isobject: 3.0.1 3012 | 3013 | detect-newline@3.1.0: {} 3014 | 3015 | diff-sequences@29.6.3: {} 3016 | 3017 | diff@4.0.2: {} 3018 | 3019 | eastasianwidth@0.2.0: {} 3020 | 3021 | electron-to-chromium@1.5.90: {} 3022 | 3023 | emittery@0.13.1: {} 3024 | 3025 | emoji-regex@8.0.0: {} 3026 | 3027 | emoji-regex@9.2.2: {} 3028 | 3029 | end-of-stream@1.4.4: 3030 | dependencies: 3031 | once: 1.4.0 3032 | 3033 | error-ex@1.3.2: 3034 | dependencies: 3035 | is-arrayish: 0.2.1 3036 | 3037 | esbuild-jest@0.5.0(esbuild@0.25.0): 3038 | dependencies: 3039 | '@babel/core': 7.26.7 3040 | '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.7) 3041 | babel-jest: 26.6.3(@babel/core@7.26.7) 3042 | esbuild: 0.25.0 3043 | transitivePeerDependencies: 3044 | - supports-color 3045 | 3046 | esbuild@0.25.0: 3047 | optionalDependencies: 3048 | '@esbuild/aix-ppc64': 0.25.0 3049 | '@esbuild/android-arm': 0.25.0 3050 | '@esbuild/android-arm64': 0.25.0 3051 | '@esbuild/android-x64': 0.25.0 3052 | '@esbuild/darwin-arm64': 0.25.0 3053 | '@esbuild/darwin-x64': 0.25.0 3054 | '@esbuild/freebsd-arm64': 0.25.0 3055 | '@esbuild/freebsd-x64': 0.25.0 3056 | '@esbuild/linux-arm': 0.25.0 3057 | '@esbuild/linux-arm64': 0.25.0 3058 | '@esbuild/linux-ia32': 0.25.0 3059 | '@esbuild/linux-loong64': 0.25.0 3060 | '@esbuild/linux-mips64el': 0.25.0 3061 | '@esbuild/linux-ppc64': 0.25.0 3062 | '@esbuild/linux-riscv64': 0.25.0 3063 | '@esbuild/linux-s390x': 0.25.0 3064 | '@esbuild/linux-x64': 0.25.0 3065 | '@esbuild/netbsd-arm64': 0.25.0 3066 | '@esbuild/netbsd-x64': 0.25.0 3067 | '@esbuild/openbsd-arm64': 0.25.0 3068 | '@esbuild/openbsd-x64': 0.25.0 3069 | '@esbuild/sunos-x64': 0.25.0 3070 | '@esbuild/win32-arm64': 0.25.0 3071 | '@esbuild/win32-ia32': 0.25.0 3072 | '@esbuild/win32-x64': 0.25.0 3073 | 3074 | escalade@3.2.0: {} 3075 | 3076 | escape-string-regexp@2.0.0: {} 3077 | 3078 | escape-string-regexp@5.0.0: {} 3079 | 3080 | esprima@4.0.1: {} 3081 | 3082 | exec-sh@0.3.6: {} 3083 | 3084 | execa@1.0.0: 3085 | dependencies: 3086 | cross-spawn: 6.0.6 3087 | get-stream: 4.1.0 3088 | is-stream: 1.1.0 3089 | npm-run-path: 2.0.2 3090 | p-finally: 1.0.0 3091 | signal-exit: 3.0.7 3092 | strip-eof: 1.0.0 3093 | 3094 | execa@5.1.1: 3095 | dependencies: 3096 | cross-spawn: 7.0.6 3097 | get-stream: 6.0.1 3098 | human-signals: 2.1.0 3099 | is-stream: 2.0.1 3100 | merge-stream: 2.0.0 3101 | npm-run-path: 4.0.1 3102 | onetime: 5.1.2 3103 | signal-exit: 3.0.7 3104 | strip-final-newline: 2.0.0 3105 | 3106 | exit@0.1.2: {} 3107 | 3108 | expand-brackets@2.1.4: 3109 | dependencies: 3110 | debug: 2.6.9 3111 | define-property: 0.2.5 3112 | extend-shallow: 2.0.1 3113 | posix-character-classes: 0.1.1 3114 | regex-not: 1.0.2 3115 | snapdragon: 0.8.2 3116 | to-regex: 3.0.2 3117 | transitivePeerDependencies: 3118 | - supports-color 3119 | 3120 | expect@29.7.0: 3121 | dependencies: 3122 | '@jest/expect-utils': 29.7.0 3123 | jest-get-type: 29.6.3 3124 | jest-matcher-utils: 29.7.0 3125 | jest-message-util: 29.7.0 3126 | jest-util: 29.7.0 3127 | 3128 | extend-shallow@2.0.1: 3129 | dependencies: 3130 | is-extendable: 0.1.1 3131 | 3132 | extend-shallow@3.0.2: 3133 | dependencies: 3134 | assign-symbols: 1.0.0 3135 | is-extendable: 1.0.1 3136 | 3137 | extglob@2.0.4: 3138 | dependencies: 3139 | array-unique: 0.3.2 3140 | define-property: 1.0.0 3141 | expand-brackets: 2.1.4 3142 | extend-shallow: 2.0.1 3143 | fragment-cache: 0.2.1 3144 | regex-not: 1.0.2 3145 | snapdragon: 0.8.2 3146 | to-regex: 3.0.2 3147 | transitivePeerDependencies: 3148 | - supports-color 3149 | 3150 | fast-deep-equal@3.1.3: {} 3151 | 3152 | fast-json-stable-stringify@2.1.0: {} 3153 | 3154 | fb-watchman@2.0.2: 3155 | dependencies: 3156 | bser: 2.1.1 3157 | 3158 | fill-range@4.0.0: 3159 | dependencies: 3160 | extend-shallow: 2.0.1 3161 | is-number: 3.0.0 3162 | repeat-string: 1.6.1 3163 | to-regex-range: 2.1.1 3164 | 3165 | fill-range@7.1.1: 3166 | dependencies: 3167 | to-regex-range: 5.0.1 3168 | 3169 | find-up@4.1.0: 3170 | dependencies: 3171 | locate-path: 5.0.0 3172 | path-exists: 4.0.0 3173 | 3174 | for-in@1.0.2: {} 3175 | 3176 | fragment-cache@0.2.1: 3177 | dependencies: 3178 | map-cache: 0.2.2 3179 | 3180 | fs.realpath@1.0.0: {} 3181 | 3182 | fsevents@2.3.3: 3183 | optional: true 3184 | 3185 | function-bind@1.1.2: {} 3186 | 3187 | gensync@1.0.0-beta.2: {} 3188 | 3189 | get-caller-file@2.0.5: {} 3190 | 3191 | get-package-type@0.1.0: {} 3192 | 3193 | get-stream@4.1.0: 3194 | dependencies: 3195 | pump: 3.0.2 3196 | 3197 | get-stream@6.0.1: {} 3198 | 3199 | get-value@2.0.6: {} 3200 | 3201 | glob@7.2.3: 3202 | dependencies: 3203 | fs.realpath: 1.0.0 3204 | inflight: 1.0.6 3205 | inherits: 2.0.4 3206 | minimatch: 3.1.2 3207 | once: 1.4.0 3208 | path-is-absolute: 1.0.1 3209 | 3210 | globals@11.12.0: {} 3211 | 3212 | graceful-fs@4.2.11: {} 3213 | 3214 | has-flag@4.0.0: {} 3215 | 3216 | has-value@0.3.1: 3217 | dependencies: 3218 | get-value: 2.0.6 3219 | has-values: 0.1.4 3220 | isobject: 2.1.0 3221 | 3222 | has-value@1.0.0: 3223 | dependencies: 3224 | get-value: 2.0.6 3225 | has-values: 1.0.0 3226 | isobject: 3.0.1 3227 | 3228 | has-values@0.1.4: {} 3229 | 3230 | has-values@1.0.0: 3231 | dependencies: 3232 | is-number: 3.0.0 3233 | kind-of: 4.0.0 3234 | 3235 | hasown@2.0.2: 3236 | dependencies: 3237 | function-bind: 1.1.2 3238 | 3239 | html-escaper@2.0.2: {} 3240 | 3241 | human-signals@2.1.0: {} 3242 | 3243 | import-local@3.2.0: 3244 | dependencies: 3245 | pkg-dir: 4.2.0 3246 | resolve-cwd: 3.0.0 3247 | 3248 | imurmurhash@0.1.4: {} 3249 | 3250 | inflight@1.0.6: 3251 | dependencies: 3252 | once: 1.4.0 3253 | wrappy: 1.0.2 3254 | 3255 | inherits@2.0.4: {} 3256 | 3257 | ini@1.3.8: {} 3258 | 3259 | is-accessor-descriptor@1.0.1: 3260 | dependencies: 3261 | hasown: 2.0.2 3262 | 3263 | is-arrayish@0.2.1: {} 3264 | 3265 | is-buffer@1.1.6: {} 3266 | 3267 | is-ci@2.0.0: 3268 | dependencies: 3269 | ci-info: 2.0.0 3270 | 3271 | is-core-module@2.16.1: 3272 | dependencies: 3273 | hasown: 2.0.2 3274 | 3275 | is-data-descriptor@1.0.1: 3276 | dependencies: 3277 | hasown: 2.0.2 3278 | 3279 | is-descriptor@0.1.7: 3280 | dependencies: 3281 | is-accessor-descriptor: 1.0.1 3282 | is-data-descriptor: 1.0.1 3283 | 3284 | is-descriptor@1.0.3: 3285 | dependencies: 3286 | is-accessor-descriptor: 1.0.1 3287 | is-data-descriptor: 1.0.1 3288 | 3289 | is-docker@2.2.1: {} 3290 | 3291 | is-extendable@0.1.1: {} 3292 | 3293 | is-extendable@1.0.1: 3294 | dependencies: 3295 | is-plain-object: 2.0.4 3296 | 3297 | is-fullwidth-code-point@3.0.0: {} 3298 | 3299 | is-generator-fn@2.1.0: {} 3300 | 3301 | is-number@3.0.0: 3302 | dependencies: 3303 | kind-of: 3.2.2 3304 | 3305 | is-number@7.0.0: {} 3306 | 3307 | is-plain-object@2.0.4: 3308 | dependencies: 3309 | isobject: 3.0.1 3310 | 3311 | is-port-reachable@4.0.0: {} 3312 | 3313 | is-stream@1.1.0: {} 3314 | 3315 | is-stream@2.0.1: {} 3316 | 3317 | is-typedarray@1.0.0: {} 3318 | 3319 | is-windows@1.0.2: {} 3320 | 3321 | is-wsl@2.2.0: 3322 | dependencies: 3323 | is-docker: 2.2.1 3324 | 3325 | isarray@1.0.0: {} 3326 | 3327 | isexe@2.0.0: {} 3328 | 3329 | isobject@2.1.0: 3330 | dependencies: 3331 | isarray: 1.0.0 3332 | 3333 | isobject@3.0.1: {} 3334 | 3335 | istanbul-lib-coverage@3.2.2: {} 3336 | 3337 | istanbul-lib-instrument@5.2.1: 3338 | dependencies: 3339 | '@babel/core': 7.26.7 3340 | '@babel/parser': 7.26.7 3341 | '@istanbuljs/schema': 0.1.3 3342 | istanbul-lib-coverage: 3.2.2 3343 | semver: 6.3.1 3344 | transitivePeerDependencies: 3345 | - supports-color 3346 | 3347 | istanbul-lib-instrument@6.0.3: 3348 | dependencies: 3349 | '@babel/core': 7.26.7 3350 | '@babel/parser': 7.26.7 3351 | '@istanbuljs/schema': 0.1.3 3352 | istanbul-lib-coverage: 3.2.2 3353 | semver: 7.7.0 3354 | transitivePeerDependencies: 3355 | - supports-color 3356 | 3357 | istanbul-lib-report@3.0.1: 3358 | dependencies: 3359 | istanbul-lib-coverage: 3.2.2 3360 | make-dir: 4.0.0 3361 | supports-color: 7.2.0 3362 | 3363 | istanbul-lib-source-maps@4.0.1: 3364 | dependencies: 3365 | debug: 4.4.0 3366 | istanbul-lib-coverage: 3.2.2 3367 | source-map: 0.6.1 3368 | transitivePeerDependencies: 3369 | - supports-color 3370 | 3371 | istanbul-reports@3.1.7: 3372 | dependencies: 3373 | html-escaper: 2.0.2 3374 | istanbul-lib-report: 3.0.1 3375 | 3376 | jest-changed-files@29.7.0: 3377 | dependencies: 3378 | execa: 5.1.1 3379 | jest-util: 29.7.0 3380 | p-limit: 3.1.0 3381 | 3382 | jest-circus@29.7.0: 3383 | dependencies: 3384 | '@jest/environment': 29.7.0 3385 | '@jest/expect': 29.7.0 3386 | '@jest/test-result': 29.7.0 3387 | '@jest/types': 29.6.3 3388 | '@types/node': 22.13.0 3389 | chalk: 4.1.2 3390 | co: 4.6.0 3391 | dedent: 1.5.3 3392 | is-generator-fn: 2.1.0 3393 | jest-each: 29.7.0 3394 | jest-matcher-utils: 29.7.0 3395 | jest-message-util: 29.7.0 3396 | jest-runtime: 29.7.0 3397 | jest-snapshot: 29.7.0 3398 | jest-util: 29.7.0 3399 | p-limit: 3.1.0 3400 | pretty-format: 29.7.0 3401 | pure-rand: 6.1.0 3402 | slash: 3.0.0 3403 | stack-utils: 2.0.6 3404 | transitivePeerDependencies: 3405 | - babel-plugin-macros 3406 | - supports-color 3407 | 3408 | jest-cli@29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)): 3409 | dependencies: 3410 | '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)) 3411 | '@jest/test-result': 29.7.0 3412 | '@jest/types': 29.6.3 3413 | chalk: 4.1.2 3414 | create-jest: 29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)) 3415 | exit: 0.1.2 3416 | import-local: 3.2.0 3417 | jest-config: 29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)) 3418 | jest-util: 29.7.0 3419 | jest-validate: 29.7.0 3420 | yargs: 17.7.2 3421 | transitivePeerDependencies: 3422 | - '@types/node' 3423 | - babel-plugin-macros 3424 | - supports-color 3425 | - ts-node 3426 | 3427 | jest-config@29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)): 3428 | dependencies: 3429 | '@babel/core': 7.26.7 3430 | '@jest/test-sequencer': 29.7.0 3431 | '@jest/types': 29.6.3 3432 | babel-jest: 29.7.0(@babel/core@7.26.7) 3433 | chalk: 4.1.2 3434 | ci-info: 3.9.0 3435 | deepmerge: 4.3.1 3436 | glob: 7.2.3 3437 | graceful-fs: 4.2.11 3438 | jest-circus: 29.7.0 3439 | jest-environment-node: 29.7.0 3440 | jest-get-type: 29.6.3 3441 | jest-regex-util: 29.6.3 3442 | jest-resolve: 29.7.0 3443 | jest-runner: 29.7.0 3444 | jest-util: 29.7.0 3445 | jest-validate: 29.7.0 3446 | micromatch: 4.0.8 3447 | parse-json: 5.2.0 3448 | pretty-format: 29.7.0 3449 | slash: 3.0.0 3450 | strip-json-comments: 3.1.1 3451 | optionalDependencies: 3452 | '@types/node': 22.13.0 3453 | ts-node: 10.9.2(@types/node@22.13.0)(typescript@5.7.3) 3454 | transitivePeerDependencies: 3455 | - babel-plugin-macros 3456 | - supports-color 3457 | 3458 | jest-diff@29.7.0: 3459 | dependencies: 3460 | chalk: 4.1.2 3461 | diff-sequences: 29.6.3 3462 | jest-get-type: 29.6.3 3463 | pretty-format: 29.7.0 3464 | 3465 | jest-docblock@29.7.0: 3466 | dependencies: 3467 | detect-newline: 3.1.0 3468 | 3469 | jest-each@29.7.0: 3470 | dependencies: 3471 | '@jest/types': 29.6.3 3472 | chalk: 4.1.2 3473 | jest-get-type: 29.6.3 3474 | jest-util: 29.7.0 3475 | pretty-format: 29.7.0 3476 | 3477 | jest-environment-node@29.7.0: 3478 | dependencies: 3479 | '@jest/environment': 29.7.0 3480 | '@jest/fake-timers': 29.7.0 3481 | '@jest/types': 29.6.3 3482 | '@types/node': 22.13.0 3483 | jest-mock: 29.7.0 3484 | jest-util: 29.7.0 3485 | 3486 | jest-get-type@29.6.3: {} 3487 | 3488 | jest-haste-map@26.6.2: 3489 | dependencies: 3490 | '@jest/types': 26.6.2 3491 | '@types/graceful-fs': 4.1.9 3492 | '@types/node': 22.13.0 3493 | anymatch: 3.1.3 3494 | fb-watchman: 2.0.2 3495 | graceful-fs: 4.2.11 3496 | jest-regex-util: 26.0.0 3497 | jest-serializer: 26.6.2 3498 | jest-util: 26.6.2 3499 | jest-worker: 26.6.2 3500 | micromatch: 4.0.8 3501 | sane: 4.1.0 3502 | walker: 1.0.8 3503 | optionalDependencies: 3504 | fsevents: 2.3.3 3505 | transitivePeerDependencies: 3506 | - supports-color 3507 | 3508 | jest-haste-map@29.7.0: 3509 | dependencies: 3510 | '@jest/types': 29.6.3 3511 | '@types/graceful-fs': 4.1.9 3512 | '@types/node': 22.13.0 3513 | anymatch: 3.1.3 3514 | fb-watchman: 2.0.2 3515 | graceful-fs: 4.2.11 3516 | jest-regex-util: 29.6.3 3517 | jest-util: 29.7.0 3518 | jest-worker: 29.7.0 3519 | micromatch: 4.0.8 3520 | walker: 1.0.8 3521 | optionalDependencies: 3522 | fsevents: 2.3.3 3523 | 3524 | jest-leak-detector@29.7.0: 3525 | dependencies: 3526 | jest-get-type: 29.6.3 3527 | pretty-format: 29.7.0 3528 | 3529 | jest-matcher-utils@29.7.0: 3530 | dependencies: 3531 | chalk: 4.1.2 3532 | jest-diff: 29.7.0 3533 | jest-get-type: 29.6.3 3534 | pretty-format: 29.7.0 3535 | 3536 | jest-message-util@29.7.0: 3537 | dependencies: 3538 | '@babel/code-frame': 7.26.2 3539 | '@jest/types': 29.6.3 3540 | '@types/stack-utils': 2.0.3 3541 | chalk: 4.1.2 3542 | graceful-fs: 4.2.11 3543 | micromatch: 4.0.8 3544 | pretty-format: 29.7.0 3545 | slash: 3.0.0 3546 | stack-utils: 2.0.6 3547 | 3548 | jest-mock@29.7.0: 3549 | dependencies: 3550 | '@jest/types': 29.6.3 3551 | '@types/node': 22.13.0 3552 | jest-util: 29.7.0 3553 | 3554 | jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): 3555 | optionalDependencies: 3556 | jest-resolve: 29.7.0 3557 | 3558 | jest-regex-util@26.0.0: {} 3559 | 3560 | jest-regex-util@29.6.3: {} 3561 | 3562 | jest-resolve-dependencies@29.7.0: 3563 | dependencies: 3564 | jest-regex-util: 29.6.3 3565 | jest-snapshot: 29.7.0 3566 | transitivePeerDependencies: 3567 | - supports-color 3568 | 3569 | jest-resolve@29.7.0: 3570 | dependencies: 3571 | chalk: 4.1.2 3572 | graceful-fs: 4.2.11 3573 | jest-haste-map: 29.7.0 3574 | jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) 3575 | jest-util: 29.7.0 3576 | jest-validate: 29.7.0 3577 | resolve: 1.22.10 3578 | resolve.exports: 2.0.3 3579 | slash: 3.0.0 3580 | 3581 | jest-runner@29.7.0: 3582 | dependencies: 3583 | '@jest/console': 29.7.0 3584 | '@jest/environment': 29.7.0 3585 | '@jest/test-result': 29.7.0 3586 | '@jest/transform': 29.7.0 3587 | '@jest/types': 29.6.3 3588 | '@types/node': 22.13.0 3589 | chalk: 4.1.2 3590 | emittery: 0.13.1 3591 | graceful-fs: 4.2.11 3592 | jest-docblock: 29.7.0 3593 | jest-environment-node: 29.7.0 3594 | jest-haste-map: 29.7.0 3595 | jest-leak-detector: 29.7.0 3596 | jest-message-util: 29.7.0 3597 | jest-resolve: 29.7.0 3598 | jest-runtime: 29.7.0 3599 | jest-util: 29.7.0 3600 | jest-watcher: 29.7.0 3601 | jest-worker: 29.7.0 3602 | p-limit: 3.1.0 3603 | source-map-support: 0.5.13 3604 | transitivePeerDependencies: 3605 | - supports-color 3606 | 3607 | jest-runtime@29.7.0: 3608 | dependencies: 3609 | '@jest/environment': 29.7.0 3610 | '@jest/fake-timers': 29.7.0 3611 | '@jest/globals': 29.7.0 3612 | '@jest/source-map': 29.6.3 3613 | '@jest/test-result': 29.7.0 3614 | '@jest/transform': 29.7.0 3615 | '@jest/types': 29.6.3 3616 | '@types/node': 22.13.0 3617 | chalk: 4.1.2 3618 | cjs-module-lexer: 1.4.3 3619 | collect-v8-coverage: 1.0.2 3620 | glob: 7.2.3 3621 | graceful-fs: 4.2.11 3622 | jest-haste-map: 29.7.0 3623 | jest-message-util: 29.7.0 3624 | jest-mock: 29.7.0 3625 | jest-regex-util: 29.6.3 3626 | jest-resolve: 29.7.0 3627 | jest-snapshot: 29.7.0 3628 | jest-util: 29.7.0 3629 | slash: 3.0.0 3630 | strip-bom: 4.0.0 3631 | transitivePeerDependencies: 3632 | - supports-color 3633 | 3634 | jest-serializer@26.6.2: 3635 | dependencies: 3636 | '@types/node': 22.13.0 3637 | graceful-fs: 4.2.11 3638 | 3639 | jest-snapshot@29.7.0: 3640 | dependencies: 3641 | '@babel/core': 7.26.7 3642 | '@babel/generator': 7.26.5 3643 | '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.7) 3644 | '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.7) 3645 | '@babel/types': 7.26.7 3646 | '@jest/expect-utils': 29.7.0 3647 | '@jest/transform': 29.7.0 3648 | '@jest/types': 29.6.3 3649 | babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.7) 3650 | chalk: 4.1.2 3651 | expect: 29.7.0 3652 | graceful-fs: 4.2.11 3653 | jest-diff: 29.7.0 3654 | jest-get-type: 29.6.3 3655 | jest-matcher-utils: 29.7.0 3656 | jest-message-util: 29.7.0 3657 | jest-util: 29.7.0 3658 | natural-compare: 1.4.0 3659 | pretty-format: 29.7.0 3660 | semver: 7.7.0 3661 | transitivePeerDependencies: 3662 | - supports-color 3663 | 3664 | jest-util@26.6.2: 3665 | dependencies: 3666 | '@jest/types': 26.6.2 3667 | '@types/node': 22.13.0 3668 | chalk: 4.1.2 3669 | graceful-fs: 4.2.11 3670 | is-ci: 2.0.0 3671 | micromatch: 4.0.8 3672 | 3673 | jest-util@29.7.0: 3674 | dependencies: 3675 | '@jest/types': 29.6.3 3676 | '@types/node': 22.13.0 3677 | chalk: 4.1.2 3678 | ci-info: 3.9.0 3679 | graceful-fs: 4.2.11 3680 | picomatch: 2.3.1 3681 | 3682 | jest-validate@29.7.0: 3683 | dependencies: 3684 | '@jest/types': 29.6.3 3685 | camelcase: 6.3.0 3686 | chalk: 4.1.2 3687 | jest-get-type: 29.6.3 3688 | leven: 3.1.0 3689 | pretty-format: 29.7.0 3690 | 3691 | jest-watcher@29.7.0: 3692 | dependencies: 3693 | '@jest/test-result': 29.7.0 3694 | '@jest/types': 29.6.3 3695 | '@types/node': 22.13.0 3696 | ansi-escapes: 4.3.2 3697 | chalk: 4.1.2 3698 | emittery: 0.13.1 3699 | jest-util: 29.7.0 3700 | string-length: 4.0.2 3701 | 3702 | jest-worker@26.6.2: 3703 | dependencies: 3704 | '@types/node': 22.13.0 3705 | merge-stream: 2.0.0 3706 | supports-color: 7.2.0 3707 | 3708 | jest-worker@29.7.0: 3709 | dependencies: 3710 | '@types/node': 22.13.0 3711 | jest-util: 29.7.0 3712 | merge-stream: 2.0.0 3713 | supports-color: 8.1.1 3714 | 3715 | jest@29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)): 3716 | dependencies: 3717 | '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)) 3718 | '@jest/types': 29.6.3 3719 | import-local: 3.2.0 3720 | jest-cli: 29.7.0(@types/node@22.13.0)(ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3)) 3721 | transitivePeerDependencies: 3722 | - '@types/node' 3723 | - babel-plugin-macros 3724 | - supports-color 3725 | - ts-node 3726 | 3727 | js-tokens@4.0.0: {} 3728 | 3729 | js-yaml@3.14.1: 3730 | dependencies: 3731 | argparse: 1.0.10 3732 | esprima: 4.0.1 3733 | 3734 | jsesc@3.1.0: {} 3735 | 3736 | json-parse-even-better-errors@2.3.1: {} 3737 | 3738 | json-schema-traverse@1.0.0: {} 3739 | 3740 | json5@2.2.3: {} 3741 | 3742 | kind-of@3.2.2: 3743 | dependencies: 3744 | is-buffer: 1.1.6 3745 | 3746 | kind-of@4.0.0: 3747 | dependencies: 3748 | is-buffer: 1.1.6 3749 | 3750 | kind-of@6.0.3: {} 3751 | 3752 | kleur@3.0.3: {} 3753 | 3754 | leven@3.1.0: {} 3755 | 3756 | lines-and-columns@1.2.4: {} 3757 | 3758 | locate-path@5.0.0: 3759 | dependencies: 3760 | p-locate: 4.1.0 3761 | 3762 | lru-cache@5.1.1: 3763 | dependencies: 3764 | yallist: 3.1.1 3765 | 3766 | make-dir@4.0.0: 3767 | dependencies: 3768 | semver: 7.7.0 3769 | 3770 | make-error@1.3.6: {} 3771 | 3772 | makeerror@1.0.12: 3773 | dependencies: 3774 | tmpl: 1.0.5 3775 | 3776 | map-cache@0.2.2: {} 3777 | 3778 | map-visit@1.0.0: 3779 | dependencies: 3780 | object-visit: 1.0.1 3781 | 3782 | merge-stream@2.0.0: {} 3783 | 3784 | micromatch@3.1.10: 3785 | dependencies: 3786 | arr-diff: 4.0.0 3787 | array-unique: 0.3.2 3788 | braces: 2.3.2 3789 | define-property: 2.0.2 3790 | extend-shallow: 3.0.2 3791 | extglob: 2.0.4 3792 | fragment-cache: 0.2.1 3793 | kind-of: 6.0.3 3794 | nanomatch: 1.2.13 3795 | object.pick: 1.3.0 3796 | regex-not: 1.0.2 3797 | snapdragon: 0.8.2 3798 | to-regex: 3.0.2 3799 | transitivePeerDependencies: 3800 | - supports-color 3801 | 3802 | micromatch@4.0.8: 3803 | dependencies: 3804 | braces: 3.0.3 3805 | picomatch: 2.3.1 3806 | 3807 | mime-db@1.33.0: {} 3808 | 3809 | mime-db@1.52.0: {} 3810 | 3811 | mime-db@1.53.0: {} 3812 | 3813 | mime-types@2.1.18: 3814 | dependencies: 3815 | mime-db: 1.33.0 3816 | 3817 | mime-types@2.1.35: 3818 | dependencies: 3819 | mime-db: 1.52.0 3820 | 3821 | mimic-fn@2.1.0: {} 3822 | 3823 | minimatch@3.1.2: 3824 | dependencies: 3825 | brace-expansion: 1.1.11 3826 | 3827 | minimist@1.2.8: {} 3828 | 3829 | mixin-deep@1.3.2: 3830 | dependencies: 3831 | for-in: 1.0.2 3832 | is-extendable: 1.0.1 3833 | 3834 | ms@2.0.0: {} 3835 | 3836 | ms@2.1.3: {} 3837 | 3838 | nanomatch@1.2.13: 3839 | dependencies: 3840 | arr-diff: 4.0.0 3841 | array-unique: 0.3.2 3842 | define-property: 2.0.2 3843 | extend-shallow: 3.0.2 3844 | fragment-cache: 0.2.1 3845 | is-windows: 1.0.2 3846 | kind-of: 6.0.3 3847 | object.pick: 1.3.0 3848 | regex-not: 1.0.2 3849 | snapdragon: 0.8.2 3850 | to-regex: 3.0.2 3851 | transitivePeerDependencies: 3852 | - supports-color 3853 | 3854 | natural-compare@1.4.0: {} 3855 | 3856 | negotiator@0.6.3: {} 3857 | 3858 | nice-try@1.0.5: {} 3859 | 3860 | node-int64@0.4.0: {} 3861 | 3862 | node-releases@2.0.19: {} 3863 | 3864 | normalize-path@2.1.1: 3865 | dependencies: 3866 | remove-trailing-separator: 1.1.0 3867 | 3868 | normalize-path@3.0.0: {} 3869 | 3870 | npm-run-path@2.0.2: 3871 | dependencies: 3872 | path-key: 2.0.1 3873 | 3874 | npm-run-path@4.0.1: 3875 | dependencies: 3876 | path-key: 3.1.1 3877 | 3878 | object-copy@0.1.0: 3879 | dependencies: 3880 | copy-descriptor: 0.1.1 3881 | define-property: 0.2.5 3882 | kind-of: 3.2.2 3883 | 3884 | object-visit@1.0.1: 3885 | dependencies: 3886 | isobject: 3.0.1 3887 | 3888 | object.pick@1.3.0: 3889 | dependencies: 3890 | isobject: 3.0.1 3891 | 3892 | on-headers@1.0.2: {} 3893 | 3894 | once@1.4.0: 3895 | dependencies: 3896 | wrappy: 1.0.2 3897 | 3898 | onetime@5.1.2: 3899 | dependencies: 3900 | mimic-fn: 2.1.0 3901 | 3902 | p-finally@1.0.0: {} 3903 | 3904 | p-limit@2.3.0: 3905 | dependencies: 3906 | p-try: 2.2.0 3907 | 3908 | p-limit@3.1.0: 3909 | dependencies: 3910 | yocto-queue: 0.1.0 3911 | 3912 | p-locate@4.1.0: 3913 | dependencies: 3914 | p-limit: 2.3.0 3915 | 3916 | p-try@2.2.0: {} 3917 | 3918 | parse-json@5.2.0: 3919 | dependencies: 3920 | '@babel/code-frame': 7.26.2 3921 | error-ex: 1.3.2 3922 | json-parse-even-better-errors: 2.3.1 3923 | lines-and-columns: 1.2.4 3924 | 3925 | pascalcase@0.1.1: {} 3926 | 3927 | path-exists@4.0.0: {} 3928 | 3929 | path-is-absolute@1.0.1: {} 3930 | 3931 | path-is-inside@1.0.2: {} 3932 | 3933 | path-key@2.0.1: {} 3934 | 3935 | path-key@3.1.1: {} 3936 | 3937 | path-parse@1.0.7: {} 3938 | 3939 | path-to-regexp@3.3.0: {} 3940 | 3941 | picocolors@1.1.1: {} 3942 | 3943 | picomatch@2.3.1: {} 3944 | 3945 | pirates@4.0.6: {} 3946 | 3947 | pkg-dir@4.2.0: 3948 | dependencies: 3949 | find-up: 4.1.0 3950 | 3951 | posix-character-classes@0.1.1: {} 3952 | 3953 | pretty-format@29.7.0: 3954 | dependencies: 3955 | '@jest/schemas': 29.6.3 3956 | ansi-styles: 5.2.0 3957 | react-is: 18.3.1 3958 | 3959 | prompts@2.4.2: 3960 | dependencies: 3961 | kleur: 3.0.3 3962 | sisteransi: 1.0.5 3963 | 3964 | pump@3.0.2: 3965 | dependencies: 3966 | end-of-stream: 1.4.4 3967 | once: 1.4.0 3968 | 3969 | punycode@2.3.1: {} 3970 | 3971 | pure-rand@6.1.0: {} 3972 | 3973 | range-parser@1.2.0: {} 3974 | 3975 | rc@1.2.8: 3976 | dependencies: 3977 | deep-extend: 0.6.0 3978 | ini: 1.3.8 3979 | minimist: 1.2.8 3980 | strip-json-comments: 2.0.1 3981 | 3982 | react-is@18.3.1: {} 3983 | 3984 | regex-not@1.0.2: 3985 | dependencies: 3986 | extend-shallow: 3.0.2 3987 | safe-regex: 1.1.0 3988 | 3989 | registry-auth-token@3.3.2: 3990 | dependencies: 3991 | rc: 1.2.8 3992 | safe-buffer: 5.2.1 3993 | 3994 | registry-url@3.1.0: 3995 | dependencies: 3996 | rc: 1.2.8 3997 | 3998 | remove-trailing-separator@1.1.0: {} 3999 | 4000 | repeat-element@1.1.4: {} 4001 | 4002 | repeat-string@1.6.1: {} 4003 | 4004 | require-directory@2.1.1: {} 4005 | 4006 | require-from-string@2.0.2: {} 4007 | 4008 | resolve-cwd@3.0.0: 4009 | dependencies: 4010 | resolve-from: 5.0.0 4011 | 4012 | resolve-from@5.0.0: {} 4013 | 4014 | resolve-url@0.2.1: {} 4015 | 4016 | resolve.exports@2.0.3: {} 4017 | 4018 | resolve@1.22.10: 4019 | dependencies: 4020 | is-core-module: 2.16.1 4021 | path-parse: 1.0.7 4022 | supports-preserve-symlinks-flag: 1.0.0 4023 | 4024 | ret@0.1.15: {} 4025 | 4026 | rsvp@4.8.5: {} 4027 | 4028 | safe-buffer@5.1.2: {} 4029 | 4030 | safe-buffer@5.2.1: {} 4031 | 4032 | safe-regex@1.1.0: 4033 | dependencies: 4034 | ret: 0.1.15 4035 | 4036 | sane@4.1.0: 4037 | dependencies: 4038 | '@cnakazawa/watch': 1.0.4 4039 | anymatch: 2.0.0 4040 | capture-exit: 2.0.0 4041 | exec-sh: 0.3.6 4042 | execa: 1.0.0 4043 | fb-watchman: 2.0.2 4044 | micromatch: 3.1.10 4045 | minimist: 1.2.8 4046 | walker: 1.0.8 4047 | transitivePeerDependencies: 4048 | - supports-color 4049 | 4050 | semver@5.7.2: {} 4051 | 4052 | semver@6.3.1: {} 4053 | 4054 | semver@7.7.0: {} 4055 | 4056 | serve-handler@6.1.6: 4057 | dependencies: 4058 | bytes: 3.0.0 4059 | content-disposition: 0.5.2 4060 | mime-types: 2.1.18 4061 | minimatch: 3.1.2 4062 | path-is-inside: 1.0.2 4063 | path-to-regexp: 3.3.0 4064 | range-parser: 1.2.0 4065 | 4066 | serve@14.2.4: 4067 | dependencies: 4068 | '@zeit/schemas': 2.36.0 4069 | ajv: 8.12.0 4070 | arg: 5.0.2 4071 | boxen: 7.0.0 4072 | chalk: 5.0.1 4073 | chalk-template: 0.4.0 4074 | clipboardy: 3.0.0 4075 | compression: 1.7.4 4076 | is-port-reachable: 4.0.0 4077 | serve-handler: 6.1.6 4078 | update-check: 1.5.4 4079 | transitivePeerDependencies: 4080 | - supports-color 4081 | 4082 | set-value@2.0.1: 4083 | dependencies: 4084 | extend-shallow: 2.0.1 4085 | is-extendable: 0.1.1 4086 | is-plain-object: 2.0.4 4087 | split-string: 3.1.0 4088 | 4089 | shebang-command@1.2.0: 4090 | dependencies: 4091 | shebang-regex: 1.0.0 4092 | 4093 | shebang-command@2.0.0: 4094 | dependencies: 4095 | shebang-regex: 3.0.0 4096 | 4097 | shebang-regex@1.0.0: {} 4098 | 4099 | shebang-regex@3.0.0: {} 4100 | 4101 | signal-exit@3.0.7: {} 4102 | 4103 | sisteransi@1.0.5: {} 4104 | 4105 | slash@3.0.0: {} 4106 | 4107 | snapdragon-node@2.1.1: 4108 | dependencies: 4109 | define-property: 1.0.0 4110 | isobject: 3.0.1 4111 | snapdragon-util: 3.0.1 4112 | 4113 | snapdragon-util@3.0.1: 4114 | dependencies: 4115 | kind-of: 3.2.2 4116 | 4117 | snapdragon@0.8.2: 4118 | dependencies: 4119 | base: 0.11.2 4120 | debug: 2.6.9 4121 | define-property: 0.2.5 4122 | extend-shallow: 2.0.1 4123 | map-cache: 0.2.2 4124 | source-map: 0.5.7 4125 | source-map-resolve: 0.5.3 4126 | use: 3.1.1 4127 | transitivePeerDependencies: 4128 | - supports-color 4129 | 4130 | source-map-resolve@0.5.3: 4131 | dependencies: 4132 | atob: 2.1.2 4133 | decode-uri-component: 0.2.2 4134 | resolve-url: 0.2.1 4135 | source-map-url: 0.4.1 4136 | urix: 0.1.0 4137 | 4138 | source-map-support@0.5.13: 4139 | dependencies: 4140 | buffer-from: 1.1.2 4141 | source-map: 0.6.1 4142 | 4143 | source-map-url@0.4.1: {} 4144 | 4145 | source-map@0.5.7: {} 4146 | 4147 | source-map@0.6.1: {} 4148 | 4149 | split-string@3.1.0: 4150 | dependencies: 4151 | extend-shallow: 3.0.2 4152 | 4153 | sprintf-js@1.0.3: {} 4154 | 4155 | stack-utils@2.0.6: 4156 | dependencies: 4157 | escape-string-regexp: 2.0.0 4158 | 4159 | static-extend@0.1.2: 4160 | dependencies: 4161 | define-property: 0.2.5 4162 | object-copy: 0.1.0 4163 | 4164 | string-length@4.0.2: 4165 | dependencies: 4166 | char-regex: 1.0.2 4167 | strip-ansi: 6.0.1 4168 | 4169 | string-width@4.2.3: 4170 | dependencies: 4171 | emoji-regex: 8.0.0 4172 | is-fullwidth-code-point: 3.0.0 4173 | strip-ansi: 6.0.1 4174 | 4175 | string-width@5.1.2: 4176 | dependencies: 4177 | eastasianwidth: 0.2.0 4178 | emoji-regex: 9.2.2 4179 | strip-ansi: 7.1.0 4180 | 4181 | strip-ansi@6.0.1: 4182 | dependencies: 4183 | ansi-regex: 5.0.1 4184 | 4185 | strip-ansi@7.1.0: 4186 | dependencies: 4187 | ansi-regex: 6.1.0 4188 | 4189 | strip-bom@4.0.0: {} 4190 | 4191 | strip-eof@1.0.0: {} 4192 | 4193 | strip-final-newline@2.0.0: {} 4194 | 4195 | strip-json-comments@2.0.1: {} 4196 | 4197 | strip-json-comments@3.1.1: {} 4198 | 4199 | supports-color@7.2.0: 4200 | dependencies: 4201 | has-flag: 4.0.0 4202 | 4203 | supports-color@8.1.1: 4204 | dependencies: 4205 | has-flag: 4.0.0 4206 | 4207 | supports-preserve-symlinks-flag@1.0.0: {} 4208 | 4209 | test-exclude@6.0.0: 4210 | dependencies: 4211 | '@istanbuljs/schema': 0.1.3 4212 | glob: 7.2.3 4213 | minimatch: 3.1.2 4214 | 4215 | tmpl@1.0.5: {} 4216 | 4217 | to-object-path@0.3.0: 4218 | dependencies: 4219 | kind-of: 3.2.2 4220 | 4221 | to-regex-range@2.1.1: 4222 | dependencies: 4223 | is-number: 3.0.0 4224 | repeat-string: 1.6.1 4225 | 4226 | to-regex-range@5.0.1: 4227 | dependencies: 4228 | is-number: 7.0.0 4229 | 4230 | to-regex@3.0.2: 4231 | dependencies: 4232 | define-property: 2.0.2 4233 | extend-shallow: 3.0.2 4234 | regex-not: 1.0.2 4235 | safe-regex: 1.1.0 4236 | 4237 | ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3): 4238 | dependencies: 4239 | '@cspotcode/source-map-support': 0.8.1 4240 | '@tsconfig/node10': 1.0.11 4241 | '@tsconfig/node12': 1.0.11 4242 | '@tsconfig/node14': 1.0.3 4243 | '@tsconfig/node16': 1.0.4 4244 | '@types/node': 22.13.0 4245 | acorn: 8.14.0 4246 | acorn-walk: 8.3.4 4247 | arg: 4.1.3 4248 | create-require: 1.1.1 4249 | diff: 4.0.2 4250 | make-error: 1.3.6 4251 | typescript: 5.7.3 4252 | v8-compile-cache-lib: 3.0.1 4253 | yn: 3.1.1 4254 | 4255 | type-detect@4.0.8: {} 4256 | 4257 | type-fest@0.21.3: {} 4258 | 4259 | type-fest@2.19.0: {} 4260 | 4261 | typedarray-to-buffer@3.1.5: 4262 | dependencies: 4263 | is-typedarray: 1.0.0 4264 | 4265 | typescript@5.7.3: {} 4266 | 4267 | undici-types@6.20.0: {} 4268 | 4269 | union-value@1.0.1: 4270 | dependencies: 4271 | arr-union: 3.1.0 4272 | get-value: 2.0.6 4273 | is-extendable: 0.1.1 4274 | set-value: 2.0.1 4275 | 4276 | unset-value@1.0.0: 4277 | dependencies: 4278 | has-value: 0.3.1 4279 | isobject: 3.0.1 4280 | 4281 | update-browserslist-db@1.1.2(browserslist@4.24.4): 4282 | dependencies: 4283 | browserslist: 4.24.4 4284 | escalade: 3.2.0 4285 | picocolors: 1.1.1 4286 | 4287 | update-check@1.5.4: 4288 | dependencies: 4289 | registry-auth-token: 3.3.2 4290 | registry-url: 3.1.0 4291 | 4292 | uri-js@4.4.1: 4293 | dependencies: 4294 | punycode: 2.3.1 4295 | 4296 | urix@0.1.0: {} 4297 | 4298 | use@3.1.1: {} 4299 | 4300 | v8-compile-cache-lib@3.0.1: {} 4301 | 4302 | v8-to-istanbul@9.3.0: 4303 | dependencies: 4304 | '@jridgewell/trace-mapping': 0.3.25 4305 | '@types/istanbul-lib-coverage': 2.0.6 4306 | convert-source-map: 2.0.0 4307 | 4308 | vary@1.1.2: {} 4309 | 4310 | walker@1.0.8: 4311 | dependencies: 4312 | makeerror: 1.0.12 4313 | 4314 | which@1.3.1: 4315 | dependencies: 4316 | isexe: 2.0.0 4317 | 4318 | which@2.0.2: 4319 | dependencies: 4320 | isexe: 2.0.0 4321 | 4322 | widest-line@4.0.1: 4323 | dependencies: 4324 | string-width: 5.1.2 4325 | 4326 | wrap-ansi@7.0.0: 4327 | dependencies: 4328 | ansi-styles: 4.3.0 4329 | string-width: 4.2.3 4330 | strip-ansi: 6.0.1 4331 | 4332 | wrap-ansi@8.1.0: 4333 | dependencies: 4334 | ansi-styles: 6.2.1 4335 | string-width: 5.1.2 4336 | strip-ansi: 7.1.0 4337 | 4338 | wrappy@1.0.2: {} 4339 | 4340 | write-file-atomic@3.0.3: 4341 | dependencies: 4342 | imurmurhash: 0.1.4 4343 | is-typedarray: 1.0.0 4344 | signal-exit: 3.0.7 4345 | typedarray-to-buffer: 3.1.5 4346 | 4347 | write-file-atomic@4.0.2: 4348 | dependencies: 4349 | imurmurhash: 0.1.4 4350 | signal-exit: 3.0.7 4351 | 4352 | y18n@5.0.8: {} 4353 | 4354 | yallist@3.1.1: {} 4355 | 4356 | yargs-parser@21.1.1: {} 4357 | 4358 | yargs@17.7.2: 4359 | dependencies: 4360 | cliui: 8.0.1 4361 | escalade: 3.2.0 4362 | get-caller-file: 2.0.5 4363 | require-directory: 2.1.1 4364 | string-width: 4.2.3 4365 | y18n: 5.0.8 4366 | yargs-parser: 21.1.1 4367 | 4368 | yn@3.1.1: {} 4369 | 4370 | yocto-queue@0.1.0: {} 4371 | -------------------------------------------------------------------------------- /src/cli.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import readline from 'node:readline' 4 | import { stdin as input, stdout as output } from 'node:process' 5 | import { checkPassword } from './index' 6 | 7 | const args = process.argv.slice(2) 8 | 9 | async function promptPassword(): Promise { 10 | const rl = readline.createInterface({ input, output }) 11 | 12 | return new Promise(resolve => { 13 | rl.question('Enter password to check: ', (answer) => { 14 | rl.close() 15 | resolve(answer) 16 | }) 17 | }) 18 | } 19 | 20 | async function main() { 21 | try { 22 | const password = args[0] || await promptPassword() 23 | const result = await checkPassword(password) 24 | console.log(`Password ${result.isLeaked ? 'has' : 'has not'} been compromised`) 25 | console.log('Password strength:', JSON.stringify(result.strength, null, 2)) 26 | process.exit(result.isLeaked ? 1 : 0) 27 | } catch (error) { 28 | console.error('Error:', error.message) 29 | process.exit(1) 30 | } 31 | } 32 | 33 | main() 34 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { passwordStrength } from 'check-password-strength' 2 | 3 | const crypto = globalThis.crypto 4 | 5 | export default isPasswordLeaked 6 | globalThis.isPasswordLeaked = isPasswordLeaked 7 | globalThis.checkPassword = checkPassword 8 | globalThis.checkPasswordStrength = checkPasswordStrength 9 | 10 | export async function checkPassword(password: string) { 11 | return { 12 | strength: passwordStrength(password), 13 | isLeaked: await isPasswordLeaked(password) 14 | } 15 | } 16 | 17 | export function checkPasswordStrength(password: string) { 18 | return passwordStrength(password) 19 | } 20 | 21 | export async function isPasswordLeaked(password: string) { 22 | if (typeof password !== 'string') throw new Error('Password must be a string') 23 | 24 | const hashedPassword = await crypto.subtle.digest('SHA-1', new TextEncoder().encode(password)) 25 | const hashedPasswordString = Array.from(new Uint8Array(hashedPassword)).map(b => b.toString(16).padStart(2, '0')).join('') 26 | const firstFive = hashedPasswordString.substring(0, 5).toUpperCase() 27 | const response = await fetch(`https://api.pwnedpasswords.com/range/${firstFive}`) 28 | const data = await response.text() 29 | 30 | return data.includes(hashedPasswordString.substring(5).toUpperCase()) 31 | } 32 | 33 | export function isPasswordLeakedSync(password: string, callback: (error: Error | null, isLeaked: boolean) => void) { 34 | if (typeof password !== 'string') { 35 | callback(new Error('Password must be a string'), false) 36 | return 37 | } 38 | 39 | crypto.subtle.digest('SHA-1', new TextEncoder().encode(password)) 40 | .catch(error => callback(error, false)) 41 | .then(hashedPassword => { 42 | const hashedPasswordString = Array.from(new Uint8Array(hashedPassword as ArrayBuffer)).map(b => b.toString(16).padStart(2, '0')).join('') 43 | const firstFive = hashedPasswordString.substring(0, 5).toUpperCase() 44 | fetch(`https://api.pwnedpasswords.com/range/${firstFive}`) 45 | .then(response => response.text()) 46 | .then(data => callback(null, data.includes(hashedPasswordString.substring(5).toUpperCase()))) 47 | .catch(error => callback(error, false)) 48 | }) 49 | } 50 | -------------------------------------------------------------------------------- /tests/index.test.ts: -------------------------------------------------------------------------------- 1 | import { checkPassword, checkPasswordStrength, isPasswordLeaked, isPasswordLeakedSync } from '../src' 2 | 3 | describe('isPasswordLeaked', () => { 4 | test('Leaked password detected', async () => { 5 | expect(await isPasswordLeaked('password')).toBe(true) 6 | const syncCallback = jest.fn((error, isLeaked) => { 7 | expect(error).toBeNull() 8 | expect(isLeaked).toBe(true) 9 | }) 10 | 11 | isPasswordLeakedSync('password', syncCallback) 12 | }) 13 | 14 | test('Non-leaked password not detected', async () => { 15 | expect(await isPasswordLeaked(Math.random().toString(36))).toBe(false) 16 | const syncCallback = jest.fn((error, isLeaked) => { 17 | expect(error).toBeNull() 18 | expect(isLeaked).toBe(false) 19 | }) 20 | 21 | isPasswordLeakedSync(Math.random().toString(36), syncCallback) 22 | }) 23 | 24 | test('Non-string input throws an error', async () => { 25 | await expect(isPasswordLeaked(123 as any)).rejects.toThrow() 26 | const syncCallback = jest.fn((error, isLeaked) => { 27 | expect(error).toBeInstanceOf(Error) 28 | expect(isLeaked).toBe(false) 29 | }) 30 | 31 | isPasswordLeakedSync(123 as any, syncCallback) 32 | }) 33 | }) 34 | 35 | describe('checkPassword', () => { 36 | test('Returns strength and isLeaked', async () => { 37 | const result = await checkPassword(Math.random().toString(36)) 38 | expect(result.strength.id).toBeGreaterThan(0) 39 | expect(result.isLeaked).toBe(false) 40 | }) 41 | }) 42 | 43 | describe('checkPasswordStrength', () => { 44 | test('Returns strength', () => { 45 | const strength = checkPasswordStrength(Math.random().toString(36)) 46 | expect(strength.id).toBeGreaterThan(0) 47 | }) 48 | }) 49 | -------------------------------------------------------------------------------- /ui.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --primary-color: #6366f1; 3 | --danger-color: #ef4444; 4 | --success-color: #22c55e; 5 | --background-color: #f8fafc; 6 | --card-background: #ffffff; 7 | --text-color: #1e293b; 8 | } 9 | 10 | * { 11 | margin: 0; 12 | padding: 0; 13 | box-sizing: border-box; 14 | } 15 | 16 | body { 17 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; 18 | background-color: var(--background-color); 19 | color: var(--text-color); 20 | line-height: 1.5; 21 | min-height: 100vh; 22 | display: flex; 23 | align-items: center; 24 | justify-content: center; 25 | } 26 | 27 | .container { 28 | padding: 1.5rem; 29 | width: 100%; 30 | max-width: 480px; 31 | } 32 | 33 | .card { 34 | background: var(--card-background); 35 | padding: 2rem; 36 | border-radius: 1rem; 37 | box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); 38 | } 39 | 40 | h1 { 41 | font-size: 1.875rem; 42 | font-weight: 700; 43 | margin-bottom: 0.5rem; 44 | color: var(--text-color); 45 | } 46 | 47 | .description { 48 | color: #64748b; 49 | margin-bottom: 1.5rem; 50 | } 51 | 52 | .input-group { 53 | position: relative; 54 | margin-bottom: 1.5rem; 55 | } 56 | 57 | input { 58 | width: 100%; 59 | padding: 0.75rem 1rem; 60 | padding-right: 3rem; 61 | border: 2px solid #e2e8f0; 62 | border-radius: 0.5rem; 63 | font-size: 1rem; 64 | transition: all 0.2s; 65 | } 66 | 67 | input:focus { 68 | outline: none; 69 | border-color: var(--primary-color); 70 | box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1); 71 | } 72 | 73 | .visibility-toggle { 74 | position: absolute; 75 | right: 0.75rem; 76 | top: 50%; 77 | transform: translateY(-50%); 78 | background: none; 79 | border: none; 80 | cursor: pointer; 81 | padding: 0.25rem; 82 | } 83 | 84 | .check-button { 85 | width: 100%; 86 | padding: 0.75rem 1.5rem; 87 | background-color: var(--primary-color); 88 | color: white; 89 | border: none; 90 | border-radius: 0.5rem; 91 | font-size: 1rem; 92 | font-weight: 500; 93 | cursor: pointer; 94 | transition: all 0.2s; 95 | position: relative; 96 | } 97 | 98 | .check-button:hover { 99 | background-color: #4f46e5; 100 | } 101 | 102 | .check-button:disabled { 103 | opacity: 0.7; 104 | cursor: not-allowed; 105 | } 106 | 107 | .spinner { 108 | display: none; 109 | width: 1.25rem; 110 | height: 1.25rem; 111 | border: 2px solid #ffffff; 112 | border-top-color: transparent; 113 | border-radius: 50%; 114 | position: absolute; 115 | right: 1rem; 116 | top: 50%; 117 | transform: translateY(-50%); 118 | animation: spin 1s linear infinite; 119 | } 120 | 121 | @keyframes spin { 122 | to { transform: translateY(-50%) rotate(360deg); } 123 | } 124 | 125 | .result { 126 | margin-top: 1.5rem; 127 | padding: 1rem; 128 | border-radius: 0.5rem; 129 | display: none; 130 | align-items: center; 131 | gap: 0.75rem; 132 | text-align: left; 133 | } 134 | 135 | .result.danger { 136 | background-color: #fef2f2; 137 | border: 1px solid #fee2e2; 138 | color: var(--danger-color); 139 | display: flex; 140 | } 141 | 142 | .result.success { 143 | background-color: #f0fdf4; 144 | border: 1px solid #dcfce7; 145 | color: var(--success-color); 146 | display: flex; 147 | } 148 | 149 | .result-icon { 150 | font-size: 1.5rem; 151 | } 152 | 153 | .result-text { 154 | font-size: 0.875rem; 155 | font-weight: 500; 156 | } 157 | 158 | @keyframes fadeIn { 159 | from { opacity: 0; transform: translateY(-10px); } 160 | to { opacity: 1; transform: translateY(0); } 161 | } 162 | 163 | .result.animate { 164 | animation: fadeIn 0.3s ease-out; 165 | } 166 | 167 | .password-strength-bar { 168 | width: 100%; 169 | height: 1rem; 170 | margin-top: 1.5rem; 171 | background: #eee; 172 | border-radius: 4px; 173 | overflow: hidden; 174 | } 175 | 176 | .password-strength-bar-fill { 177 | height: 100%; 178 | width: 0%; 179 | border-radius: 4px; 180 | transition: all 0.3s ease; 181 | } 182 | 183 | .password-strength-bar-fill.weak { 184 | width: 25%; 185 | background: #ef4444; 186 | } 187 | 188 | .password-strength-bar-fill.fair { 189 | width: 50%; 190 | background: #f97316; 191 | } 192 | 193 | .password-strength-bar-fill.good { 194 | width: 75%; 195 | background: #f97316; 196 | } 197 | 198 | .password-strength-bar-fill.strong { 199 | width: 100%; 200 | background: #22c55e; 201 | } 202 | 203 | footer { 204 | margin-top: 2rem; 205 | text-align: center; 206 | color: #666; 207 | font-size: 0.9rem; 208 | display: flex; 209 | flex-direction: column; 210 | gap: 0.5rem; 211 | align-items: center; 212 | } 213 | 214 | footer a { 215 | font-weight: 700; 216 | color: #666; 217 | transition: color 0.2s ease; 218 | } 219 | 220 | footer a:hover { 221 | color: #333; 222 | } 223 | 224 | .github-link { 225 | display: flex; 226 | align-items: center; 227 | gap: 0.5rem; 228 | padding: 0.5rem 1rem; 229 | border-radius: 6px; 230 | background: #f5f5f5; 231 | transition: background 0.2s ease; 232 | } 233 | 234 | .github-link:hover { 235 | background: #eee; 236 | } 237 | 238 | .github-icon { 239 | color: #333; 240 | } 241 | 242 | .npm-link { 243 | display: flex; 244 | align-items: center; 245 | gap: 0.5rem; 246 | padding: 0.5rem 1rem; 247 | border-radius: 6px; 248 | background: #f5f5f5; 249 | transition: background 0.2s ease; 250 | } 251 | 252 | .npm-link:hover { 253 | background: #eee; 254 | } 255 | 256 | .npm-icon { 257 | color: #333; 258 | } 259 | 260 | .info-link { 261 | font-size: 0.85rem; 262 | text-decoration: underline; 263 | opacity: 0.8; 264 | } 265 | 266 | .info-link:hover { 267 | opacity: 1; 268 | } 269 | 270 | #confetti { 271 | pointer-events: none 272 | } 273 | 274 | .warning-overlay { 275 | position: fixed; 276 | top: 0; 277 | left: 0; 278 | right: 0; 279 | bottom: 0; 280 | pointer-events: none; 281 | z-index: 1000; 282 | animation: pulse 1s ease-in-out infinite; 283 | background: rgba(255, 0, 0, 0.1); 284 | } 285 | 286 | .warning-light { 287 | position: absolute; 288 | width: 100px; 289 | height: 100px; 290 | border-radius: 50%; 291 | background: radial-gradient(circle, rgba(255,0,0,0.8) 0%, rgba(255,0,0,0) 70%); 292 | animation: rotate 2s linear infinite; 293 | } 294 | 295 | .warning-light:nth-child(1) { 296 | top: 0; 297 | left: 0; 298 | animation-delay: 0s; 299 | } 300 | 301 | .warning-light:nth-child(2) { 302 | top: 0; 303 | right: 0; 304 | animation-delay: 0.5s; 305 | } 306 | 307 | .warning-light:nth-child(3) { 308 | bottom: 0; 309 | left: 0; 310 | animation-delay: 1s; 311 | } 312 | 313 | .warning-light:nth-child(4) { 314 | bottom: 0; 315 | right: 0; 316 | animation-delay: 1.5s; 317 | } 318 | 319 | @keyframes pulse { 320 | 0% { background: rgba(255, 0, 0, 0.1); } 321 | 50% { background: rgba(255, 0, 0, 0.2); } 322 | 100% { background: rgba(255, 0, 0, 0.1); } 323 | } 324 | 325 | @keyframes rotate { 326 | 0% { transform: scale(0.8); opacity: 0.8; } 327 | 50% { transform: scale(1.2); opacity: 0.5; } 328 | 100% { transform: scale(0.8); opacity: 0.8; } 329 | } 330 | 331 | .warning-overlay.fade-out { 332 | animation: fadeOut 0.5s forwards; 333 | } 334 | 335 | @keyframes fadeOut { 336 | from { opacity: 1; } 337 | to { opacity: 0; } 338 | } 339 | 340 | .result.danger { 341 | animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both; 342 | } 343 | 344 | @keyframes shake { 345 | 10%, 90% { transform: translate3d(-1px, 0, 0); } 346 | 20%, 80% { transform: translate3d(2px, 0, 0); } 347 | 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } 348 | 40%, 60% { transform: translate3d(4px, 0, 0); } 349 | } -------------------------------------------------------------------------------- /ui.js: -------------------------------------------------------------------------------- 1 | const passwordInput = document.getElementById('passwordInput') 2 | const checkButton = document.getElementById('checkButton') 3 | const resultDiv = document.getElementById('result') 4 | const visibilityToggle = document.querySelector('.visibility-toggle') 5 | 6 | function setLoading(loading) { 7 | checkButton.disabled = loading 8 | checkButton.querySelector('.spinner').style.display = loading ? 'block' : 'none' 9 | checkButton.querySelector('.button-text').style.opacity = loading ? '0' : '1' 10 | } 11 | 12 | function showResult(result, password) { 13 | const { isLeaked, strength } = result 14 | resultDiv.className = 'result animate ' + (isLeaked ? 'danger' : 'success') 15 | resultDiv.style.display = 'flex' 16 | 17 | const icon = resultDiv.querySelector('.result-icon') 18 | const text = resultDiv.querySelector('.result-text') 19 | 20 | if (isLeaked) { 21 | icon.textContent = '⚠️' 22 | text.textContent = 'This password has been found in data breaches. Please choose a different password.' 23 | createWarningEffect() 24 | } else { 25 | icon.textContent = '✅' 26 | text.textContent = 'Good news! This password hasn\'t been found in any known data breaches.' 27 | confetti() 28 | } 29 | 30 | const strengthMeter = document.querySelector('.password-strength-bar-fill') 31 | const strengthText = document.querySelector('.password-strength-text') 32 | 33 | let strengthClass 34 | let strengthLabel 35 | 36 | switch (strength.id) { 37 | case 0: 38 | strengthClass = 'weak' 39 | strengthLabel = 'Your password is too weak' 40 | break 41 | case 1: 42 | strengthClass = 'fair' 43 | strengthLabel = 'Your password is weak' 44 | break 45 | case 2: 46 | strengthClass = 'good' 47 | strengthLabel = 'Your password is decent' 48 | break 49 | case 3: 50 | strengthClass = 'strong' 51 | strengthLabel = 'Your password is strong' 52 | break 53 | default: 54 | strengthClass = 'weak' 55 | strengthLabel = 'Your password is too weak' 56 | } 57 | 58 | strengthMeter.className = 'password-strength-bar-fill ' + strengthClass 59 | strengthText.textContent = strengthLabel 60 | } 61 | 62 | function createWarningEffect() { 63 | const existingOverlay = document.querySelector('.warning-overlay') 64 | if (existingOverlay) existingOverlay.remove() 65 | 66 | const overlay = document.createElement('div') 67 | overlay.className = 'warning-overlay' 68 | 69 | for (let i = 0; i < 4; i++) { 70 | const light = document.createElement('div') 71 | light.className = 'warning-light' 72 | overlay.appendChild(light) 73 | } 74 | 75 | document.body.appendChild(overlay) 76 | 77 | setTimeout(() => { 78 | overlay.classList.add('fade-out') 79 | setTimeout(() => overlay.remove(), 500) 80 | }, 3000) 81 | } 82 | 83 | async function checkPassword() { 84 | const password = passwordInput.value.trim() 85 | 86 | if (!password) { 87 | passwordInput.focus() 88 | return 89 | } 90 | 91 | setLoading(true) 92 | resultDiv.style.display = 'none' 93 | 94 | try { 95 | if (location.hostname === 'localhost') await import('./dist/index.js') 96 | else await import('./index.js') 97 | showResult(await window.checkPassword(password), password) 98 | } catch (error) { 99 | console.error('Error checking password:', error) 100 | resultDiv.className = 'result animate danger' 101 | resultDiv.querySelector('.result-icon').textContent = '❌' 102 | resultDiv.querySelector('.result-text').textContent = 'An error occurred. Please try again.' 103 | } finally { 104 | setLoading(false) 105 | } 106 | } 107 | 108 | checkButton.addEventListener('click', checkPassword) 109 | passwordInput.addEventListener('keypress', (event) => event.key === 'Enter' && checkPassword()) 110 | 111 | visibilityToggle.addEventListener('click', () => { 112 | const type = passwordInput.type === 'password' ? 'text' : 'password' 113 | passwordInput.type = type 114 | visibilityToggle.querySelector('.icon').textContent = type === 'password' ? '👁️' : '👁️‍🗨️' 115 | }) 116 | 117 | passwordInput.addEventListener('input', () => resultDiv.style.display = 'none') 118 | --------------------------------------------------------------------------------