├── .github └── workflows │ └── code-check.yml ├── .gitignore ├── README.md ├── biome.json ├── package.json ├── pnpm-lock.yaml ├── src ├── commands │ ├── add.ts │ └── init.ts ├── index.ts └── utils │ ├── get-config-info.ts │ ├── get-package-info.ts │ ├── get-svg.ts │ ├── get-svgs-list.ts │ ├── handle-error.ts │ └── logger.ts ├── tsconfig.json └── tsup.config.ts /.github/workflows/code-check.yml: -------------------------------------------------------------------------------- 1 | name: Code check and Publish 2 | 3 | on: 4 | pull_request: 5 | branches: ["*"] 6 | push: 7 | branches: ["main"] 8 | 9 | jobs: 10 | quality: 11 | runs-on: ubuntu-latest 12 | name: Quality Check 13 | steps: 14 | - name: Checkout 15 | uses: actions/checkout@v4 16 | 17 | - name: Setup Biome 18 | uses: biomejs/setup-biome@v1 19 | with: 20 | version: 1.4.1 21 | 22 | - name: Run Biome 23 | run: biome ci . 24 | 25 | publish: 26 | needs: quality 27 | runs-on: ubuntu-latest 28 | name: Publish 29 | steps: 30 | - name: Checkout code 31 | uses: actions/checkout@v4 32 | with: 33 | fetch-depth: 0 34 | 35 | - name: Install Node.js 36 | uses: actions/setup-node@v4 37 | with: 38 | node-version: 20 39 | registry-url: "https://registry.npmjs.org" 40 | 41 | - name: Install pnpm 42 | uses: pnpm/action-setup@v3 43 | id: pnpm-install 44 | with: 45 | version: 9.0.6 46 | run_install: false 47 | 48 | - name: Get pnpm store directory 49 | id: pnpm-cache 50 | run: | 51 | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT 52 | 53 | - name: Setup pnpm cache 54 | uses: actions/cache@v4 55 | with: 56 | path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} 57 | key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} 58 | restore-keys: | 59 | ${{ runner.os }}-pnpm-store- 60 | 61 | - name: Install dependencies 62 | run: pnpm install 63 | 64 | - name: publish package 65 | run: pnpm pub:release 66 | env: 67 | NODE_AUTH_TOKEN: ${{secrets.SVGL_AUTH_TOKEN}} 68 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | test 4 | public 5 | .env -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # svgls cli 2 | 3 | #### A CLI for easily adding SVG icons to your project. 🧩 4 | 5 |
6 | 7 | 8 | a cli for easily adding SVG icons to your project. 9 | 10 | 11 |
12 | 13 | ## Usage 14 | 15 | ### Initialize Config 16 | 17 | > This is optional command. It's only needed if you want to set a default workspace path. 18 | 19 | Use the `init` command to initialize a config file for a new project: 20 | 21 | ```bash 22 | npx svgls init 23 | ``` 24 | 25 | This will prompt you to enter the path you want to use for your workspace and save it in a `svgls.json` file. 26 | 27 | You can edit this file manually later if you want to change the path. 28 | 29 | ### Add SVGs 30 | 31 | Use the `add` command to interactively add SVGs to your project: 32 | 33 | ```bash 34 | npx svgls add 35 | ``` 36 | 37 | This launches an interactive mode where you can: 38 | 39 | - Use arrow keys to navigate the SVG list 40 | - Press spacebar to select/deselect SVGs 41 | - Press enter to confirm selection 42 | 43 | 44 | You can also pass a space-separated list of SVG names on the command line: 45 | 46 | ### Example 47 | 48 | ```bash 49 | npx svgls add aws dub github 50 | ``` 51 | 52 | ## Credits 53 | 54 | SVG icons from [pheralb's](https://twitter.com/pheralb_) open-source SVG repository. 55 | 56 | Visit https://svgl.vercel.app to browse and download SVGs manually. 57 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.4.1/schema.json", 3 | "organizeImports": { 4 | "enabled": true 5 | }, 6 | "overrides": [ 7 | { 8 | "ignore": ["node_modules", "dist"] 9 | } 10 | ], 11 | "linter": { 12 | "enabled": true, 13 | "rules": { 14 | "recommended": true, 15 | "nursery": { 16 | "recommended": true, 17 | "noUnusedImports": "warn", 18 | "useAwait": "warn" 19 | } 20 | } 21 | }, 22 | "formatter": { 23 | "indentWidth": 2, 24 | "indentStyle": "space" 25 | }, 26 | "javascript": { 27 | "formatter": { 28 | "semicolons": "asNeeded", 29 | "trailingComma": "none", 30 | "bracketSpacing": true 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svgls", 3 | "version": "0.0.13", 4 | "description": "a beautiful library with svg logos.", 5 | "publishConfig": { 6 | "access": "public" 7 | }, 8 | "type": "module", 9 | "exports": "./dist/index.js", 10 | "bin": "./dist/index.js", 11 | "license": "MIT", 12 | "author": { 13 | "name": "sujjeee", 14 | "url": "https://twitter.com/sujjeeee" 15 | }, 16 | "homepage": "https://svgl.app", 17 | "bugs": { 18 | "url": "https://github.com/sujjeee/svgls/issues" 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "https://github.com/sujjeee/svgls.git" 23 | }, 24 | "files": [ 25 | "dist" 26 | ], 27 | "keywords": [ 28 | "svgs", 29 | "logos", 30 | "svgl", 31 | "svgls", 32 | "svgs collections", 33 | "svgs library", 34 | "sujjeee" 35 | ], 36 | "scripts": { 37 | "dev": "tsup --watch", 38 | "build": "tsup", 39 | "typecheck": "tsc --noEmit", 40 | "clean": "rimraf dist", 41 | "reset": "rimraf dist && rimraf public", 42 | "clean:public": "rimraf public", 43 | "start": "node dist/index.js ", 44 | "lint": "biome lint .", 45 | "lint:fix": "biome lint --apply-unsafe .", 46 | "format": "biome format .", 47 | "format:fix": "biome format --write .", 48 | "code-check": "biome check .", 49 | "code-check:fix": "biome check --apply-unsafe .", 50 | "biome:ci": "biome ci .", 51 | "pub:release": "pnpm build && pnpm publish --access public" 52 | }, 53 | "dependencies": { 54 | "chalk": "^5.3.0", 55 | "commander": "^11.1.0", 56 | "fs-extra": "^11.2.0", 57 | "node-fetch": "^3.3.2", 58 | "ora": "^7.0.1", 59 | "package-json": "^8.1.1", 60 | "prompts": "^2.4.2", 61 | "rimraf": "^5.0.10", 62 | "zod": "^3.23.8" 63 | }, 64 | "devDependencies": { 65 | "@biomejs/biome": "1.4.1", 66 | "@types/fs-extra": "^11.0.4", 67 | "@types/node": "^20.16.1", 68 | "@types/prompts": "^2.4.9", 69 | "ts-node": "^10.9.2", 70 | "tsup": "^8.2.4", 71 | "type-fest": "^4.25.0", 72 | "typescript": "^5.5.4" 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | chalk: 12 | specifier: ^5.3.0 13 | version: 5.3.0 14 | commander: 15 | specifier: ^11.1.0 16 | version: 11.1.0 17 | fs-extra: 18 | specifier: ^11.2.0 19 | version: 11.2.0 20 | node-fetch: 21 | specifier: ^3.3.2 22 | version: 3.3.2 23 | ora: 24 | specifier: ^7.0.1 25 | version: 7.0.1 26 | package-json: 27 | specifier: ^8.1.1 28 | version: 8.1.1 29 | prompts: 30 | specifier: ^2.4.2 31 | version: 2.4.2 32 | rimraf: 33 | specifier: ^5.0.10 34 | version: 5.0.10 35 | zod: 36 | specifier: ^3.23.8 37 | version: 3.23.8 38 | devDependencies: 39 | '@biomejs/biome': 40 | specifier: 1.4.1 41 | version: 1.4.1 42 | '@types/fs-extra': 43 | specifier: ^11.0.4 44 | version: 11.0.4 45 | '@types/node': 46 | specifier: ^20.16.1 47 | version: 20.16.1 48 | '@types/prompts': 49 | specifier: ^2.4.9 50 | version: 2.4.9 51 | ts-node: 52 | specifier: ^10.9.2 53 | version: 10.9.2(@types/node@20.16.1)(typescript@5.5.4) 54 | tsup: 55 | specifier: ^8.2.4 56 | version: 8.2.4(typescript@5.5.4) 57 | type-fest: 58 | specifier: ^4.25.0 59 | version: 4.25.0 60 | typescript: 61 | specifier: ^5.5.4 62 | version: 5.5.4 63 | 64 | packages: 65 | 66 | '@biomejs/biome@1.4.1': 67 | resolution: {integrity: sha512-JccVAwPbhi37pdxbAGmaOBjUTKEwEjWAhl7rKkVVuXHo4MLASXJ5HR8BTgrImi4/7rTBsGz1tgVD1Kwv1CHGRg==} 68 | engines: {node: '>=14.*'} 69 | hasBin: true 70 | 71 | '@biomejs/cli-darwin-arm64@1.4.1': 72 | resolution: {integrity: sha512-PZWy2Idndqux38p6AXSDQM2ldRAWi32bvb7bMbTN0ALzpWYMYnxd71ornatumSSJYoNhKmxzDLq+jct7nZJ79w==} 73 | engines: {node: '>=14.*'} 74 | cpu: [arm64] 75 | os: [darwin] 76 | 77 | '@biomejs/cli-darwin-x64@1.4.1': 78 | resolution: {integrity: sha512-soj3BWhnsM1M2JlzR09cibUzG1owJqetwj/Oo7yg0foijo9lNH9XWXZfJBYDKgW/6Fomn+CC2EcUS+hisQzt9g==} 79 | engines: {node: '>=14.*'} 80 | cpu: [x64] 81 | os: [darwin] 82 | 83 | '@biomejs/cli-linux-arm64@1.4.1': 84 | resolution: {integrity: sha512-YIZqfJUg4F+fPsBTXxgD7EU2E5OAYbmYSl/snf4PevwfQCWE/omOFZv+NnIQmjYj9I7ParDgcJvanoA3/kO0JQ==} 85 | engines: {node: '>=14.*'} 86 | cpu: [arm64] 87 | os: [linux] 88 | 89 | '@biomejs/cli-linux-x64@1.4.1': 90 | resolution: {integrity: sha512-9YOZw3qBd/KUj63A6Hn2zZgzGb2nbESM0qNmeMXgmqinVKM//uc4OgY5TuKITuGjMSvcVxxd4dX1IzYjV9qvNQ==} 91 | engines: {node: '>=14.*'} 92 | cpu: [x64] 93 | os: [linux] 94 | 95 | '@biomejs/cli-win32-arm64@1.4.1': 96 | resolution: {integrity: sha512-nWQbvkNKxYn/kCQ0yVF8kCaS3VzaGvtFSmItXiMknU4521LDjJ7tNWH12Gol+pIslrCbd4E1LhJa0a3ThRsBVg==} 97 | engines: {node: '>=14.*'} 98 | cpu: [arm64] 99 | os: [win32] 100 | 101 | '@biomejs/cli-win32-x64@1.4.1': 102 | resolution: {integrity: sha512-88fR2CQxQ4YLs2BUDuywWYQpUKgU3A3sTezANFc/4LGKQFFLV2yX+F7QAdZVkMHfA+RD9Xg178HomM/6mnTNPA==} 103 | engines: {node: '>=14.*'} 104 | cpu: [x64] 105 | os: [win32] 106 | 107 | '@cspotcode/source-map-support@0.8.1': 108 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 109 | engines: {node: '>=12'} 110 | 111 | '@esbuild/aix-ppc64@0.23.1': 112 | resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} 113 | engines: {node: '>=18'} 114 | cpu: [ppc64] 115 | os: [aix] 116 | 117 | '@esbuild/android-arm64@0.23.1': 118 | resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} 119 | engines: {node: '>=18'} 120 | cpu: [arm64] 121 | os: [android] 122 | 123 | '@esbuild/android-arm@0.23.1': 124 | resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} 125 | engines: {node: '>=18'} 126 | cpu: [arm] 127 | os: [android] 128 | 129 | '@esbuild/android-x64@0.23.1': 130 | resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} 131 | engines: {node: '>=18'} 132 | cpu: [x64] 133 | os: [android] 134 | 135 | '@esbuild/darwin-arm64@0.23.1': 136 | resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} 137 | engines: {node: '>=18'} 138 | cpu: [arm64] 139 | os: [darwin] 140 | 141 | '@esbuild/darwin-x64@0.23.1': 142 | resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} 143 | engines: {node: '>=18'} 144 | cpu: [x64] 145 | os: [darwin] 146 | 147 | '@esbuild/freebsd-arm64@0.23.1': 148 | resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} 149 | engines: {node: '>=18'} 150 | cpu: [arm64] 151 | os: [freebsd] 152 | 153 | '@esbuild/freebsd-x64@0.23.1': 154 | resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} 155 | engines: {node: '>=18'} 156 | cpu: [x64] 157 | os: [freebsd] 158 | 159 | '@esbuild/linux-arm64@0.23.1': 160 | resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} 161 | engines: {node: '>=18'} 162 | cpu: [arm64] 163 | os: [linux] 164 | 165 | '@esbuild/linux-arm@0.23.1': 166 | resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} 167 | engines: {node: '>=18'} 168 | cpu: [arm] 169 | os: [linux] 170 | 171 | '@esbuild/linux-ia32@0.23.1': 172 | resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} 173 | engines: {node: '>=18'} 174 | cpu: [ia32] 175 | os: [linux] 176 | 177 | '@esbuild/linux-loong64@0.23.1': 178 | resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} 179 | engines: {node: '>=18'} 180 | cpu: [loong64] 181 | os: [linux] 182 | 183 | '@esbuild/linux-mips64el@0.23.1': 184 | resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} 185 | engines: {node: '>=18'} 186 | cpu: [mips64el] 187 | os: [linux] 188 | 189 | '@esbuild/linux-ppc64@0.23.1': 190 | resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} 191 | engines: {node: '>=18'} 192 | cpu: [ppc64] 193 | os: [linux] 194 | 195 | '@esbuild/linux-riscv64@0.23.1': 196 | resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} 197 | engines: {node: '>=18'} 198 | cpu: [riscv64] 199 | os: [linux] 200 | 201 | '@esbuild/linux-s390x@0.23.1': 202 | resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} 203 | engines: {node: '>=18'} 204 | cpu: [s390x] 205 | os: [linux] 206 | 207 | '@esbuild/linux-x64@0.23.1': 208 | resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} 209 | engines: {node: '>=18'} 210 | cpu: [x64] 211 | os: [linux] 212 | 213 | '@esbuild/netbsd-x64@0.23.1': 214 | resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} 215 | engines: {node: '>=18'} 216 | cpu: [x64] 217 | os: [netbsd] 218 | 219 | '@esbuild/openbsd-arm64@0.23.1': 220 | resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} 221 | engines: {node: '>=18'} 222 | cpu: [arm64] 223 | os: [openbsd] 224 | 225 | '@esbuild/openbsd-x64@0.23.1': 226 | resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} 227 | engines: {node: '>=18'} 228 | cpu: [x64] 229 | os: [openbsd] 230 | 231 | '@esbuild/sunos-x64@0.23.1': 232 | resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} 233 | engines: {node: '>=18'} 234 | cpu: [x64] 235 | os: [sunos] 236 | 237 | '@esbuild/win32-arm64@0.23.1': 238 | resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} 239 | engines: {node: '>=18'} 240 | cpu: [arm64] 241 | os: [win32] 242 | 243 | '@esbuild/win32-ia32@0.23.1': 244 | resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} 245 | engines: {node: '>=18'} 246 | cpu: [ia32] 247 | os: [win32] 248 | 249 | '@esbuild/win32-x64@0.23.1': 250 | resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} 251 | engines: {node: '>=18'} 252 | cpu: [x64] 253 | os: [win32] 254 | 255 | '@isaacs/cliui@8.0.2': 256 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 257 | engines: {node: '>=12'} 258 | 259 | '@jridgewell/gen-mapping@0.3.5': 260 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 261 | engines: {node: '>=6.0.0'} 262 | 263 | '@jridgewell/resolve-uri@3.1.2': 264 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 265 | engines: {node: '>=6.0.0'} 266 | 267 | '@jridgewell/set-array@1.2.1': 268 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 269 | engines: {node: '>=6.0.0'} 270 | 271 | '@jridgewell/sourcemap-codec@1.5.0': 272 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 273 | 274 | '@jridgewell/trace-mapping@0.3.25': 275 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 276 | 277 | '@jridgewell/trace-mapping@0.3.9': 278 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 279 | 280 | '@nodelib/fs.scandir@2.1.5': 281 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 282 | engines: {node: '>= 8'} 283 | 284 | '@nodelib/fs.stat@2.0.5': 285 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 286 | engines: {node: '>= 8'} 287 | 288 | '@nodelib/fs.walk@1.2.8': 289 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 290 | engines: {node: '>= 8'} 291 | 292 | '@pkgjs/parseargs@0.11.0': 293 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 294 | engines: {node: '>=14'} 295 | 296 | '@pnpm/config.env-replace@1.1.0': 297 | resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} 298 | engines: {node: '>=12.22.0'} 299 | 300 | '@pnpm/network.ca-file@1.0.2': 301 | resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} 302 | engines: {node: '>=12.22.0'} 303 | 304 | '@pnpm/npm-conf@2.3.1': 305 | resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} 306 | engines: {node: '>=12'} 307 | 308 | '@rollup/rollup-android-arm-eabi@4.21.0': 309 | resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} 310 | cpu: [arm] 311 | os: [android] 312 | 313 | '@rollup/rollup-android-arm64@4.21.0': 314 | resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==} 315 | cpu: [arm64] 316 | os: [android] 317 | 318 | '@rollup/rollup-darwin-arm64@4.21.0': 319 | resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==} 320 | cpu: [arm64] 321 | os: [darwin] 322 | 323 | '@rollup/rollup-darwin-x64@4.21.0': 324 | resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==} 325 | cpu: [x64] 326 | os: [darwin] 327 | 328 | '@rollup/rollup-linux-arm-gnueabihf@4.21.0': 329 | resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==} 330 | cpu: [arm] 331 | os: [linux] 332 | 333 | '@rollup/rollup-linux-arm-musleabihf@4.21.0': 334 | resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==} 335 | cpu: [arm] 336 | os: [linux] 337 | 338 | '@rollup/rollup-linux-arm64-gnu@4.21.0': 339 | resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==} 340 | cpu: [arm64] 341 | os: [linux] 342 | 343 | '@rollup/rollup-linux-arm64-musl@4.21.0': 344 | resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==} 345 | cpu: [arm64] 346 | os: [linux] 347 | 348 | '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': 349 | resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==} 350 | cpu: [ppc64] 351 | os: [linux] 352 | 353 | '@rollup/rollup-linux-riscv64-gnu@4.21.0': 354 | resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==} 355 | cpu: [riscv64] 356 | os: [linux] 357 | 358 | '@rollup/rollup-linux-s390x-gnu@4.21.0': 359 | resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==} 360 | cpu: [s390x] 361 | os: [linux] 362 | 363 | '@rollup/rollup-linux-x64-gnu@4.21.0': 364 | resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==} 365 | cpu: [x64] 366 | os: [linux] 367 | 368 | '@rollup/rollup-linux-x64-musl@4.21.0': 369 | resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==} 370 | cpu: [x64] 371 | os: [linux] 372 | 373 | '@rollup/rollup-win32-arm64-msvc@4.21.0': 374 | resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==} 375 | cpu: [arm64] 376 | os: [win32] 377 | 378 | '@rollup/rollup-win32-ia32-msvc@4.21.0': 379 | resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==} 380 | cpu: [ia32] 381 | os: [win32] 382 | 383 | '@rollup/rollup-win32-x64-msvc@4.21.0': 384 | resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==} 385 | cpu: [x64] 386 | os: [win32] 387 | 388 | '@sindresorhus/is@5.6.0': 389 | resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} 390 | engines: {node: '>=14.16'} 391 | 392 | '@szmarczak/http-timer@5.0.1': 393 | resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} 394 | engines: {node: '>=14.16'} 395 | 396 | '@tsconfig/node10@1.0.11': 397 | resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} 398 | 399 | '@tsconfig/node12@1.0.11': 400 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 401 | 402 | '@tsconfig/node14@1.0.3': 403 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 404 | 405 | '@tsconfig/node16@1.0.4': 406 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 407 | 408 | '@types/estree@1.0.5': 409 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 410 | 411 | '@types/fs-extra@11.0.4': 412 | resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} 413 | 414 | '@types/http-cache-semantics@4.0.4': 415 | resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} 416 | 417 | '@types/jsonfile@6.1.4': 418 | resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} 419 | 420 | '@types/node@20.16.1': 421 | resolution: {integrity: sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==} 422 | 423 | '@types/prompts@2.4.9': 424 | resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} 425 | 426 | acorn-walk@8.3.3: 427 | resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} 428 | engines: {node: '>=0.4.0'} 429 | 430 | acorn@8.12.1: 431 | resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} 432 | engines: {node: '>=0.4.0'} 433 | hasBin: true 434 | 435 | ansi-regex@5.0.1: 436 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 437 | engines: {node: '>=8'} 438 | 439 | ansi-regex@6.0.1: 440 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 441 | engines: {node: '>=12'} 442 | 443 | ansi-styles@4.3.0: 444 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 445 | engines: {node: '>=8'} 446 | 447 | ansi-styles@6.2.1: 448 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 449 | engines: {node: '>=12'} 450 | 451 | any-promise@1.3.0: 452 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 453 | 454 | anymatch@3.1.3: 455 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 456 | engines: {node: '>= 8'} 457 | 458 | arg@4.1.3: 459 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 460 | 461 | array-union@2.1.0: 462 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 463 | engines: {node: '>=8'} 464 | 465 | balanced-match@1.0.2: 466 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 467 | 468 | base64-js@1.5.1: 469 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 470 | 471 | binary-extensions@2.3.0: 472 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 473 | engines: {node: '>=8'} 474 | 475 | bl@5.1.0: 476 | resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} 477 | 478 | brace-expansion@2.0.1: 479 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 480 | 481 | braces@3.0.3: 482 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 483 | engines: {node: '>=8'} 484 | 485 | buffer@6.0.3: 486 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 487 | 488 | bundle-require@5.0.0: 489 | resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} 490 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 491 | peerDependencies: 492 | esbuild: '>=0.18' 493 | 494 | cac@6.7.14: 495 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 496 | engines: {node: '>=8'} 497 | 498 | cacheable-lookup@7.0.0: 499 | resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} 500 | engines: {node: '>=14.16'} 501 | 502 | cacheable-request@10.2.14: 503 | resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} 504 | engines: {node: '>=14.16'} 505 | 506 | chalk@5.3.0: 507 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 508 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 509 | 510 | chokidar@3.6.0: 511 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 512 | engines: {node: '>= 8.10.0'} 513 | 514 | cli-cursor@4.0.0: 515 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} 516 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 517 | 518 | cli-spinners@2.9.2: 519 | resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} 520 | engines: {node: '>=6'} 521 | 522 | color-convert@2.0.1: 523 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 524 | engines: {node: '>=7.0.0'} 525 | 526 | color-name@1.1.4: 527 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 528 | 529 | commander@11.1.0: 530 | resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} 531 | engines: {node: '>=16'} 532 | 533 | commander@4.1.1: 534 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 535 | engines: {node: '>= 6'} 536 | 537 | config-chain@1.1.13: 538 | resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} 539 | 540 | consola@3.2.3: 541 | resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} 542 | engines: {node: ^14.18.0 || >=16.10.0} 543 | 544 | create-require@1.1.1: 545 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 546 | 547 | cross-spawn@7.0.3: 548 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 549 | engines: {node: '>= 8'} 550 | 551 | data-uri-to-buffer@4.0.1: 552 | resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} 553 | engines: {node: '>= 12'} 554 | 555 | debug@4.3.6: 556 | resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} 557 | engines: {node: '>=6.0'} 558 | peerDependencies: 559 | supports-color: '*' 560 | peerDependenciesMeta: 561 | supports-color: 562 | optional: true 563 | 564 | decompress-response@6.0.0: 565 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} 566 | engines: {node: '>=10'} 567 | 568 | deep-extend@0.6.0: 569 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 570 | engines: {node: '>=4.0.0'} 571 | 572 | defer-to-connect@2.0.1: 573 | resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} 574 | engines: {node: '>=10'} 575 | 576 | diff@4.0.2: 577 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 578 | engines: {node: '>=0.3.1'} 579 | 580 | dir-glob@3.0.1: 581 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 582 | engines: {node: '>=8'} 583 | 584 | eastasianwidth@0.2.0: 585 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 586 | 587 | emoji-regex@10.3.0: 588 | resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} 589 | 590 | emoji-regex@8.0.0: 591 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 592 | 593 | emoji-regex@9.2.2: 594 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 595 | 596 | esbuild@0.23.1: 597 | resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} 598 | engines: {node: '>=18'} 599 | hasBin: true 600 | 601 | execa@5.1.1: 602 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 603 | engines: {node: '>=10'} 604 | 605 | fast-glob@3.3.2: 606 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 607 | engines: {node: '>=8.6.0'} 608 | 609 | fastq@1.17.1: 610 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 611 | 612 | fetch-blob@3.2.0: 613 | resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} 614 | engines: {node: ^12.20 || >= 14.13} 615 | 616 | fill-range@7.1.1: 617 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 618 | engines: {node: '>=8'} 619 | 620 | foreground-child@3.3.0: 621 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 622 | engines: {node: '>=14'} 623 | 624 | form-data-encoder@2.1.4: 625 | resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} 626 | engines: {node: '>= 14.17'} 627 | 628 | formdata-polyfill@4.0.10: 629 | resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} 630 | engines: {node: '>=12.20.0'} 631 | 632 | fs-extra@11.2.0: 633 | resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} 634 | engines: {node: '>=14.14'} 635 | 636 | fsevents@2.3.3: 637 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 638 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 639 | os: [darwin] 640 | 641 | get-stream@6.0.1: 642 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 643 | engines: {node: '>=10'} 644 | 645 | glob-parent@5.1.2: 646 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 647 | engines: {node: '>= 6'} 648 | 649 | glob@10.4.5: 650 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 651 | hasBin: true 652 | 653 | globby@11.1.0: 654 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 655 | engines: {node: '>=10'} 656 | 657 | got@12.6.1: 658 | resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} 659 | engines: {node: '>=14.16'} 660 | 661 | graceful-fs@4.2.10: 662 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 663 | 664 | graceful-fs@4.2.11: 665 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 666 | 667 | http-cache-semantics@4.1.1: 668 | resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} 669 | 670 | http2-wrapper@2.2.1: 671 | resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} 672 | engines: {node: '>=10.19.0'} 673 | 674 | human-signals@2.1.0: 675 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 676 | engines: {node: '>=10.17.0'} 677 | 678 | ieee754@1.2.1: 679 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 680 | 681 | ignore@5.3.2: 682 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 683 | engines: {node: '>= 4'} 684 | 685 | inherits@2.0.4: 686 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 687 | 688 | ini@1.3.8: 689 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 690 | 691 | is-binary-path@2.1.0: 692 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 693 | engines: {node: '>=8'} 694 | 695 | is-extglob@2.1.1: 696 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 697 | engines: {node: '>=0.10.0'} 698 | 699 | is-fullwidth-code-point@3.0.0: 700 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 701 | engines: {node: '>=8'} 702 | 703 | is-glob@4.0.3: 704 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 705 | engines: {node: '>=0.10.0'} 706 | 707 | is-interactive@2.0.0: 708 | resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} 709 | engines: {node: '>=12'} 710 | 711 | is-number@7.0.0: 712 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 713 | engines: {node: '>=0.12.0'} 714 | 715 | is-stream@2.0.1: 716 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 717 | engines: {node: '>=8'} 718 | 719 | is-unicode-supported@1.3.0: 720 | resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} 721 | engines: {node: '>=12'} 722 | 723 | isexe@2.0.0: 724 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 725 | 726 | jackspeak@3.4.3: 727 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 728 | 729 | joycon@3.1.1: 730 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 731 | engines: {node: '>=10'} 732 | 733 | json-buffer@3.0.1: 734 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 735 | 736 | jsonfile@6.1.0: 737 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 738 | 739 | keyv@4.5.4: 740 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 741 | 742 | kleur@3.0.3: 743 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 744 | engines: {node: '>=6'} 745 | 746 | lilconfig@3.1.2: 747 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} 748 | engines: {node: '>=14'} 749 | 750 | lines-and-columns@1.2.4: 751 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 752 | 753 | load-tsconfig@0.2.5: 754 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 755 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 756 | 757 | lodash.sortby@4.7.0: 758 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 759 | 760 | log-symbols@5.1.0: 761 | resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} 762 | engines: {node: '>=12'} 763 | 764 | lowercase-keys@3.0.0: 765 | resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} 766 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 767 | 768 | lru-cache@10.4.3: 769 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 770 | 771 | make-error@1.3.6: 772 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 773 | 774 | merge-stream@2.0.0: 775 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 776 | 777 | merge2@1.4.1: 778 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 779 | engines: {node: '>= 8'} 780 | 781 | micromatch@4.0.7: 782 | resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} 783 | engines: {node: '>=8.6'} 784 | 785 | mimic-fn@2.1.0: 786 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 787 | engines: {node: '>=6'} 788 | 789 | mimic-response@3.1.0: 790 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 791 | engines: {node: '>=10'} 792 | 793 | mimic-response@4.0.0: 794 | resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} 795 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 796 | 797 | minimatch@9.0.5: 798 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 799 | engines: {node: '>=16 || 14 >=14.17'} 800 | 801 | minimist@1.2.8: 802 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 803 | 804 | minipass@7.1.2: 805 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 806 | engines: {node: '>=16 || 14 >=14.17'} 807 | 808 | ms@2.1.2: 809 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 810 | 811 | mz@2.7.0: 812 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 813 | 814 | node-domexception@1.0.0: 815 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} 816 | engines: {node: '>=10.5.0'} 817 | 818 | node-fetch@3.3.2: 819 | resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} 820 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 821 | 822 | normalize-path@3.0.0: 823 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 824 | engines: {node: '>=0.10.0'} 825 | 826 | normalize-url@8.0.1: 827 | resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} 828 | engines: {node: '>=14.16'} 829 | 830 | npm-run-path@4.0.1: 831 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 832 | engines: {node: '>=8'} 833 | 834 | object-assign@4.1.1: 835 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 836 | engines: {node: '>=0.10.0'} 837 | 838 | onetime@5.1.2: 839 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 840 | engines: {node: '>=6'} 841 | 842 | ora@7.0.1: 843 | resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} 844 | engines: {node: '>=16'} 845 | 846 | p-cancelable@3.0.0: 847 | resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} 848 | engines: {node: '>=12.20'} 849 | 850 | package-json-from-dist@1.0.0: 851 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} 852 | 853 | package-json@8.1.1: 854 | resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} 855 | engines: {node: '>=14.16'} 856 | 857 | path-key@3.1.1: 858 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 859 | engines: {node: '>=8'} 860 | 861 | path-scurry@1.11.1: 862 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 863 | engines: {node: '>=16 || 14 >=14.18'} 864 | 865 | path-type@4.0.0: 866 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 867 | engines: {node: '>=8'} 868 | 869 | picocolors@1.0.1: 870 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 871 | 872 | picomatch@2.3.1: 873 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 874 | engines: {node: '>=8.6'} 875 | 876 | pirates@4.0.6: 877 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 878 | engines: {node: '>= 6'} 879 | 880 | postcss-load-config@6.0.1: 881 | resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} 882 | engines: {node: '>= 18'} 883 | peerDependencies: 884 | jiti: '>=1.21.0' 885 | postcss: '>=8.0.9' 886 | tsx: ^4.8.1 887 | yaml: ^2.4.2 888 | peerDependenciesMeta: 889 | jiti: 890 | optional: true 891 | postcss: 892 | optional: true 893 | tsx: 894 | optional: true 895 | yaml: 896 | optional: true 897 | 898 | prompts@2.4.2: 899 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 900 | engines: {node: '>= 6'} 901 | 902 | proto-list@1.2.4: 903 | resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} 904 | 905 | punycode@2.3.1: 906 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 907 | engines: {node: '>=6'} 908 | 909 | queue-microtask@1.2.3: 910 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 911 | 912 | quick-lru@5.1.1: 913 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 914 | engines: {node: '>=10'} 915 | 916 | rc@1.2.8: 917 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 918 | hasBin: true 919 | 920 | readable-stream@3.6.2: 921 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 922 | engines: {node: '>= 6'} 923 | 924 | readdirp@3.6.0: 925 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 926 | engines: {node: '>=8.10.0'} 927 | 928 | registry-auth-token@5.0.2: 929 | resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} 930 | engines: {node: '>=14'} 931 | 932 | registry-url@6.0.1: 933 | resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} 934 | engines: {node: '>=12'} 935 | 936 | resolve-alpn@1.2.1: 937 | resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} 938 | 939 | resolve-from@5.0.0: 940 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 941 | engines: {node: '>=8'} 942 | 943 | responselike@3.0.0: 944 | resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} 945 | engines: {node: '>=14.16'} 946 | 947 | restore-cursor@4.0.0: 948 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} 949 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 950 | 951 | reusify@1.0.4: 952 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 953 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 954 | 955 | rimraf@5.0.10: 956 | resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} 957 | hasBin: true 958 | 959 | rollup@4.21.0: 960 | resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} 961 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 962 | hasBin: true 963 | 964 | run-parallel@1.2.0: 965 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 966 | 967 | safe-buffer@5.2.1: 968 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 969 | 970 | semver@7.6.3: 971 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 972 | engines: {node: '>=10'} 973 | hasBin: true 974 | 975 | shebang-command@2.0.0: 976 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 977 | engines: {node: '>=8'} 978 | 979 | shebang-regex@3.0.0: 980 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 981 | engines: {node: '>=8'} 982 | 983 | signal-exit@3.0.7: 984 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 985 | 986 | signal-exit@4.1.0: 987 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 988 | engines: {node: '>=14'} 989 | 990 | sisteransi@1.0.5: 991 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 992 | 993 | slash@3.0.0: 994 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 995 | engines: {node: '>=8'} 996 | 997 | source-map@0.8.0-beta.0: 998 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 999 | engines: {node: '>= 8'} 1000 | 1001 | stdin-discarder@0.1.0: 1002 | resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} 1003 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1004 | 1005 | string-width@4.2.3: 1006 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1007 | engines: {node: '>=8'} 1008 | 1009 | string-width@5.1.2: 1010 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1011 | engines: {node: '>=12'} 1012 | 1013 | string-width@6.1.0: 1014 | resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} 1015 | engines: {node: '>=16'} 1016 | 1017 | string_decoder@1.3.0: 1018 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1019 | 1020 | strip-ansi@6.0.1: 1021 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1022 | engines: {node: '>=8'} 1023 | 1024 | strip-ansi@7.1.0: 1025 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1026 | engines: {node: '>=12'} 1027 | 1028 | strip-final-newline@2.0.0: 1029 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1030 | engines: {node: '>=6'} 1031 | 1032 | strip-json-comments@2.0.1: 1033 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 1034 | engines: {node: '>=0.10.0'} 1035 | 1036 | sucrase@3.35.0: 1037 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1038 | engines: {node: '>=16 || 14 >=14.17'} 1039 | hasBin: true 1040 | 1041 | thenify-all@1.6.0: 1042 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1043 | engines: {node: '>=0.8'} 1044 | 1045 | thenify@3.3.1: 1046 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1047 | 1048 | to-regex-range@5.0.1: 1049 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1050 | engines: {node: '>=8.0'} 1051 | 1052 | tr46@1.0.1: 1053 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 1054 | 1055 | tree-kill@1.2.2: 1056 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 1057 | hasBin: true 1058 | 1059 | ts-interface-checker@0.1.13: 1060 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1061 | 1062 | ts-node@10.9.2: 1063 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} 1064 | hasBin: true 1065 | peerDependencies: 1066 | '@swc/core': '>=1.2.50' 1067 | '@swc/wasm': '>=1.2.50' 1068 | '@types/node': '*' 1069 | typescript: '>=2.7' 1070 | peerDependenciesMeta: 1071 | '@swc/core': 1072 | optional: true 1073 | '@swc/wasm': 1074 | optional: true 1075 | 1076 | tsup@8.2.4: 1077 | resolution: {integrity: sha512-akpCPePnBnC/CXgRrcy72ZSntgIEUa1jN0oJbbvpALWKNOz1B7aM+UVDWGRGIO/T/PZugAESWDJUAb5FD48o8Q==} 1078 | engines: {node: '>=18'} 1079 | hasBin: true 1080 | peerDependencies: 1081 | '@microsoft/api-extractor': ^7.36.0 1082 | '@swc/core': ^1 1083 | postcss: ^8.4.12 1084 | typescript: '>=4.5.0' 1085 | peerDependenciesMeta: 1086 | '@microsoft/api-extractor': 1087 | optional: true 1088 | '@swc/core': 1089 | optional: true 1090 | postcss: 1091 | optional: true 1092 | typescript: 1093 | optional: true 1094 | 1095 | type-fest@4.25.0: 1096 | resolution: {integrity: sha512-bRkIGlXsnGBRBQRAY56UXBm//9qH4bmJfFvq83gSz41N282df+fjy8ofcEgc1sM8geNt5cl6mC2g9Fht1cs8Aw==} 1097 | engines: {node: '>=16'} 1098 | 1099 | typescript@5.5.4: 1100 | resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} 1101 | engines: {node: '>=14.17'} 1102 | hasBin: true 1103 | 1104 | undici-types@6.19.8: 1105 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 1106 | 1107 | universalify@2.0.1: 1108 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 1109 | engines: {node: '>= 10.0.0'} 1110 | 1111 | util-deprecate@1.0.2: 1112 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1113 | 1114 | v8-compile-cache-lib@3.0.1: 1115 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 1116 | 1117 | web-streams-polyfill@3.3.3: 1118 | resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} 1119 | engines: {node: '>= 8'} 1120 | 1121 | webidl-conversions@4.0.2: 1122 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 1123 | 1124 | whatwg-url@7.1.0: 1125 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 1126 | 1127 | which@2.0.2: 1128 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1129 | engines: {node: '>= 8'} 1130 | hasBin: true 1131 | 1132 | wrap-ansi@7.0.0: 1133 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1134 | engines: {node: '>=10'} 1135 | 1136 | wrap-ansi@8.1.0: 1137 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1138 | engines: {node: '>=12'} 1139 | 1140 | yn@3.1.1: 1141 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 1142 | engines: {node: '>=6'} 1143 | 1144 | zod@3.23.8: 1145 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 1146 | 1147 | snapshots: 1148 | 1149 | '@biomejs/biome@1.4.1': 1150 | optionalDependencies: 1151 | '@biomejs/cli-darwin-arm64': 1.4.1 1152 | '@biomejs/cli-darwin-x64': 1.4.1 1153 | '@biomejs/cli-linux-arm64': 1.4.1 1154 | '@biomejs/cli-linux-x64': 1.4.1 1155 | '@biomejs/cli-win32-arm64': 1.4.1 1156 | '@biomejs/cli-win32-x64': 1.4.1 1157 | 1158 | '@biomejs/cli-darwin-arm64@1.4.1': 1159 | optional: true 1160 | 1161 | '@biomejs/cli-darwin-x64@1.4.1': 1162 | optional: true 1163 | 1164 | '@biomejs/cli-linux-arm64@1.4.1': 1165 | optional: true 1166 | 1167 | '@biomejs/cli-linux-x64@1.4.1': 1168 | optional: true 1169 | 1170 | '@biomejs/cli-win32-arm64@1.4.1': 1171 | optional: true 1172 | 1173 | '@biomejs/cli-win32-x64@1.4.1': 1174 | optional: true 1175 | 1176 | '@cspotcode/source-map-support@0.8.1': 1177 | dependencies: 1178 | '@jridgewell/trace-mapping': 0.3.9 1179 | 1180 | '@esbuild/aix-ppc64@0.23.1': 1181 | optional: true 1182 | 1183 | '@esbuild/android-arm64@0.23.1': 1184 | optional: true 1185 | 1186 | '@esbuild/android-arm@0.23.1': 1187 | optional: true 1188 | 1189 | '@esbuild/android-x64@0.23.1': 1190 | optional: true 1191 | 1192 | '@esbuild/darwin-arm64@0.23.1': 1193 | optional: true 1194 | 1195 | '@esbuild/darwin-x64@0.23.1': 1196 | optional: true 1197 | 1198 | '@esbuild/freebsd-arm64@0.23.1': 1199 | optional: true 1200 | 1201 | '@esbuild/freebsd-x64@0.23.1': 1202 | optional: true 1203 | 1204 | '@esbuild/linux-arm64@0.23.1': 1205 | optional: true 1206 | 1207 | '@esbuild/linux-arm@0.23.1': 1208 | optional: true 1209 | 1210 | '@esbuild/linux-ia32@0.23.1': 1211 | optional: true 1212 | 1213 | '@esbuild/linux-loong64@0.23.1': 1214 | optional: true 1215 | 1216 | '@esbuild/linux-mips64el@0.23.1': 1217 | optional: true 1218 | 1219 | '@esbuild/linux-ppc64@0.23.1': 1220 | optional: true 1221 | 1222 | '@esbuild/linux-riscv64@0.23.1': 1223 | optional: true 1224 | 1225 | '@esbuild/linux-s390x@0.23.1': 1226 | optional: true 1227 | 1228 | '@esbuild/linux-x64@0.23.1': 1229 | optional: true 1230 | 1231 | '@esbuild/netbsd-x64@0.23.1': 1232 | optional: true 1233 | 1234 | '@esbuild/openbsd-arm64@0.23.1': 1235 | optional: true 1236 | 1237 | '@esbuild/openbsd-x64@0.23.1': 1238 | optional: true 1239 | 1240 | '@esbuild/sunos-x64@0.23.1': 1241 | optional: true 1242 | 1243 | '@esbuild/win32-arm64@0.23.1': 1244 | optional: true 1245 | 1246 | '@esbuild/win32-ia32@0.23.1': 1247 | optional: true 1248 | 1249 | '@esbuild/win32-x64@0.23.1': 1250 | optional: true 1251 | 1252 | '@isaacs/cliui@8.0.2': 1253 | dependencies: 1254 | string-width: 5.1.2 1255 | string-width-cjs: string-width@4.2.3 1256 | strip-ansi: 7.1.0 1257 | strip-ansi-cjs: strip-ansi@6.0.1 1258 | wrap-ansi: 8.1.0 1259 | wrap-ansi-cjs: wrap-ansi@7.0.0 1260 | 1261 | '@jridgewell/gen-mapping@0.3.5': 1262 | dependencies: 1263 | '@jridgewell/set-array': 1.2.1 1264 | '@jridgewell/sourcemap-codec': 1.5.0 1265 | '@jridgewell/trace-mapping': 0.3.25 1266 | 1267 | '@jridgewell/resolve-uri@3.1.2': {} 1268 | 1269 | '@jridgewell/set-array@1.2.1': {} 1270 | 1271 | '@jridgewell/sourcemap-codec@1.5.0': {} 1272 | 1273 | '@jridgewell/trace-mapping@0.3.25': 1274 | dependencies: 1275 | '@jridgewell/resolve-uri': 3.1.2 1276 | '@jridgewell/sourcemap-codec': 1.5.0 1277 | 1278 | '@jridgewell/trace-mapping@0.3.9': 1279 | dependencies: 1280 | '@jridgewell/resolve-uri': 3.1.2 1281 | '@jridgewell/sourcemap-codec': 1.5.0 1282 | 1283 | '@nodelib/fs.scandir@2.1.5': 1284 | dependencies: 1285 | '@nodelib/fs.stat': 2.0.5 1286 | run-parallel: 1.2.0 1287 | 1288 | '@nodelib/fs.stat@2.0.5': {} 1289 | 1290 | '@nodelib/fs.walk@1.2.8': 1291 | dependencies: 1292 | '@nodelib/fs.scandir': 2.1.5 1293 | fastq: 1.17.1 1294 | 1295 | '@pkgjs/parseargs@0.11.0': 1296 | optional: true 1297 | 1298 | '@pnpm/config.env-replace@1.1.0': {} 1299 | 1300 | '@pnpm/network.ca-file@1.0.2': 1301 | dependencies: 1302 | graceful-fs: 4.2.10 1303 | 1304 | '@pnpm/npm-conf@2.3.1': 1305 | dependencies: 1306 | '@pnpm/config.env-replace': 1.1.0 1307 | '@pnpm/network.ca-file': 1.0.2 1308 | config-chain: 1.1.13 1309 | 1310 | '@rollup/rollup-android-arm-eabi@4.21.0': 1311 | optional: true 1312 | 1313 | '@rollup/rollup-android-arm64@4.21.0': 1314 | optional: true 1315 | 1316 | '@rollup/rollup-darwin-arm64@4.21.0': 1317 | optional: true 1318 | 1319 | '@rollup/rollup-darwin-x64@4.21.0': 1320 | optional: true 1321 | 1322 | '@rollup/rollup-linux-arm-gnueabihf@4.21.0': 1323 | optional: true 1324 | 1325 | '@rollup/rollup-linux-arm-musleabihf@4.21.0': 1326 | optional: true 1327 | 1328 | '@rollup/rollup-linux-arm64-gnu@4.21.0': 1329 | optional: true 1330 | 1331 | '@rollup/rollup-linux-arm64-musl@4.21.0': 1332 | optional: true 1333 | 1334 | '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': 1335 | optional: true 1336 | 1337 | '@rollup/rollup-linux-riscv64-gnu@4.21.0': 1338 | optional: true 1339 | 1340 | '@rollup/rollup-linux-s390x-gnu@4.21.0': 1341 | optional: true 1342 | 1343 | '@rollup/rollup-linux-x64-gnu@4.21.0': 1344 | optional: true 1345 | 1346 | '@rollup/rollup-linux-x64-musl@4.21.0': 1347 | optional: true 1348 | 1349 | '@rollup/rollup-win32-arm64-msvc@4.21.0': 1350 | optional: true 1351 | 1352 | '@rollup/rollup-win32-ia32-msvc@4.21.0': 1353 | optional: true 1354 | 1355 | '@rollup/rollup-win32-x64-msvc@4.21.0': 1356 | optional: true 1357 | 1358 | '@sindresorhus/is@5.6.0': {} 1359 | 1360 | '@szmarczak/http-timer@5.0.1': 1361 | dependencies: 1362 | defer-to-connect: 2.0.1 1363 | 1364 | '@tsconfig/node10@1.0.11': {} 1365 | 1366 | '@tsconfig/node12@1.0.11': {} 1367 | 1368 | '@tsconfig/node14@1.0.3': {} 1369 | 1370 | '@tsconfig/node16@1.0.4': {} 1371 | 1372 | '@types/estree@1.0.5': {} 1373 | 1374 | '@types/fs-extra@11.0.4': 1375 | dependencies: 1376 | '@types/jsonfile': 6.1.4 1377 | '@types/node': 20.16.1 1378 | 1379 | '@types/http-cache-semantics@4.0.4': {} 1380 | 1381 | '@types/jsonfile@6.1.4': 1382 | dependencies: 1383 | '@types/node': 20.16.1 1384 | 1385 | '@types/node@20.16.1': 1386 | dependencies: 1387 | undici-types: 6.19.8 1388 | 1389 | '@types/prompts@2.4.9': 1390 | dependencies: 1391 | '@types/node': 20.16.1 1392 | kleur: 3.0.3 1393 | 1394 | acorn-walk@8.3.3: 1395 | dependencies: 1396 | acorn: 8.12.1 1397 | 1398 | acorn@8.12.1: {} 1399 | 1400 | ansi-regex@5.0.1: {} 1401 | 1402 | ansi-regex@6.0.1: {} 1403 | 1404 | ansi-styles@4.3.0: 1405 | dependencies: 1406 | color-convert: 2.0.1 1407 | 1408 | ansi-styles@6.2.1: {} 1409 | 1410 | any-promise@1.3.0: {} 1411 | 1412 | anymatch@3.1.3: 1413 | dependencies: 1414 | normalize-path: 3.0.0 1415 | picomatch: 2.3.1 1416 | 1417 | arg@4.1.3: {} 1418 | 1419 | array-union@2.1.0: {} 1420 | 1421 | balanced-match@1.0.2: {} 1422 | 1423 | base64-js@1.5.1: {} 1424 | 1425 | binary-extensions@2.3.0: {} 1426 | 1427 | bl@5.1.0: 1428 | dependencies: 1429 | buffer: 6.0.3 1430 | inherits: 2.0.4 1431 | readable-stream: 3.6.2 1432 | 1433 | brace-expansion@2.0.1: 1434 | dependencies: 1435 | balanced-match: 1.0.2 1436 | 1437 | braces@3.0.3: 1438 | dependencies: 1439 | fill-range: 7.1.1 1440 | 1441 | buffer@6.0.3: 1442 | dependencies: 1443 | base64-js: 1.5.1 1444 | ieee754: 1.2.1 1445 | 1446 | bundle-require@5.0.0(esbuild@0.23.1): 1447 | dependencies: 1448 | esbuild: 0.23.1 1449 | load-tsconfig: 0.2.5 1450 | 1451 | cac@6.7.14: {} 1452 | 1453 | cacheable-lookup@7.0.0: {} 1454 | 1455 | cacheable-request@10.2.14: 1456 | dependencies: 1457 | '@types/http-cache-semantics': 4.0.4 1458 | get-stream: 6.0.1 1459 | http-cache-semantics: 4.1.1 1460 | keyv: 4.5.4 1461 | mimic-response: 4.0.0 1462 | normalize-url: 8.0.1 1463 | responselike: 3.0.0 1464 | 1465 | chalk@5.3.0: {} 1466 | 1467 | chokidar@3.6.0: 1468 | dependencies: 1469 | anymatch: 3.1.3 1470 | braces: 3.0.3 1471 | glob-parent: 5.1.2 1472 | is-binary-path: 2.1.0 1473 | is-glob: 4.0.3 1474 | normalize-path: 3.0.0 1475 | readdirp: 3.6.0 1476 | optionalDependencies: 1477 | fsevents: 2.3.3 1478 | 1479 | cli-cursor@4.0.0: 1480 | dependencies: 1481 | restore-cursor: 4.0.0 1482 | 1483 | cli-spinners@2.9.2: {} 1484 | 1485 | color-convert@2.0.1: 1486 | dependencies: 1487 | color-name: 1.1.4 1488 | 1489 | color-name@1.1.4: {} 1490 | 1491 | commander@11.1.0: {} 1492 | 1493 | commander@4.1.1: {} 1494 | 1495 | config-chain@1.1.13: 1496 | dependencies: 1497 | ini: 1.3.8 1498 | proto-list: 1.2.4 1499 | 1500 | consola@3.2.3: {} 1501 | 1502 | create-require@1.1.1: {} 1503 | 1504 | cross-spawn@7.0.3: 1505 | dependencies: 1506 | path-key: 3.1.1 1507 | shebang-command: 2.0.0 1508 | which: 2.0.2 1509 | 1510 | data-uri-to-buffer@4.0.1: {} 1511 | 1512 | debug@4.3.6: 1513 | dependencies: 1514 | ms: 2.1.2 1515 | 1516 | decompress-response@6.0.0: 1517 | dependencies: 1518 | mimic-response: 3.1.0 1519 | 1520 | deep-extend@0.6.0: {} 1521 | 1522 | defer-to-connect@2.0.1: {} 1523 | 1524 | diff@4.0.2: {} 1525 | 1526 | dir-glob@3.0.1: 1527 | dependencies: 1528 | path-type: 4.0.0 1529 | 1530 | eastasianwidth@0.2.0: {} 1531 | 1532 | emoji-regex@10.3.0: {} 1533 | 1534 | emoji-regex@8.0.0: {} 1535 | 1536 | emoji-regex@9.2.2: {} 1537 | 1538 | esbuild@0.23.1: 1539 | optionalDependencies: 1540 | '@esbuild/aix-ppc64': 0.23.1 1541 | '@esbuild/android-arm': 0.23.1 1542 | '@esbuild/android-arm64': 0.23.1 1543 | '@esbuild/android-x64': 0.23.1 1544 | '@esbuild/darwin-arm64': 0.23.1 1545 | '@esbuild/darwin-x64': 0.23.1 1546 | '@esbuild/freebsd-arm64': 0.23.1 1547 | '@esbuild/freebsd-x64': 0.23.1 1548 | '@esbuild/linux-arm': 0.23.1 1549 | '@esbuild/linux-arm64': 0.23.1 1550 | '@esbuild/linux-ia32': 0.23.1 1551 | '@esbuild/linux-loong64': 0.23.1 1552 | '@esbuild/linux-mips64el': 0.23.1 1553 | '@esbuild/linux-ppc64': 0.23.1 1554 | '@esbuild/linux-riscv64': 0.23.1 1555 | '@esbuild/linux-s390x': 0.23.1 1556 | '@esbuild/linux-x64': 0.23.1 1557 | '@esbuild/netbsd-x64': 0.23.1 1558 | '@esbuild/openbsd-arm64': 0.23.1 1559 | '@esbuild/openbsd-x64': 0.23.1 1560 | '@esbuild/sunos-x64': 0.23.1 1561 | '@esbuild/win32-arm64': 0.23.1 1562 | '@esbuild/win32-ia32': 0.23.1 1563 | '@esbuild/win32-x64': 0.23.1 1564 | 1565 | execa@5.1.1: 1566 | dependencies: 1567 | cross-spawn: 7.0.3 1568 | get-stream: 6.0.1 1569 | human-signals: 2.1.0 1570 | is-stream: 2.0.1 1571 | merge-stream: 2.0.0 1572 | npm-run-path: 4.0.1 1573 | onetime: 5.1.2 1574 | signal-exit: 3.0.7 1575 | strip-final-newline: 2.0.0 1576 | 1577 | fast-glob@3.3.2: 1578 | dependencies: 1579 | '@nodelib/fs.stat': 2.0.5 1580 | '@nodelib/fs.walk': 1.2.8 1581 | glob-parent: 5.1.2 1582 | merge2: 1.4.1 1583 | micromatch: 4.0.7 1584 | 1585 | fastq@1.17.1: 1586 | dependencies: 1587 | reusify: 1.0.4 1588 | 1589 | fetch-blob@3.2.0: 1590 | dependencies: 1591 | node-domexception: 1.0.0 1592 | web-streams-polyfill: 3.3.3 1593 | 1594 | fill-range@7.1.1: 1595 | dependencies: 1596 | to-regex-range: 5.0.1 1597 | 1598 | foreground-child@3.3.0: 1599 | dependencies: 1600 | cross-spawn: 7.0.3 1601 | signal-exit: 4.1.0 1602 | 1603 | form-data-encoder@2.1.4: {} 1604 | 1605 | formdata-polyfill@4.0.10: 1606 | dependencies: 1607 | fetch-blob: 3.2.0 1608 | 1609 | fs-extra@11.2.0: 1610 | dependencies: 1611 | graceful-fs: 4.2.11 1612 | jsonfile: 6.1.0 1613 | universalify: 2.0.1 1614 | 1615 | fsevents@2.3.3: 1616 | optional: true 1617 | 1618 | get-stream@6.0.1: {} 1619 | 1620 | glob-parent@5.1.2: 1621 | dependencies: 1622 | is-glob: 4.0.3 1623 | 1624 | glob@10.4.5: 1625 | dependencies: 1626 | foreground-child: 3.3.0 1627 | jackspeak: 3.4.3 1628 | minimatch: 9.0.5 1629 | minipass: 7.1.2 1630 | package-json-from-dist: 1.0.0 1631 | path-scurry: 1.11.1 1632 | 1633 | globby@11.1.0: 1634 | dependencies: 1635 | array-union: 2.1.0 1636 | dir-glob: 3.0.1 1637 | fast-glob: 3.3.2 1638 | ignore: 5.3.2 1639 | merge2: 1.4.1 1640 | slash: 3.0.0 1641 | 1642 | got@12.6.1: 1643 | dependencies: 1644 | '@sindresorhus/is': 5.6.0 1645 | '@szmarczak/http-timer': 5.0.1 1646 | cacheable-lookup: 7.0.0 1647 | cacheable-request: 10.2.14 1648 | decompress-response: 6.0.0 1649 | form-data-encoder: 2.1.4 1650 | get-stream: 6.0.1 1651 | http2-wrapper: 2.2.1 1652 | lowercase-keys: 3.0.0 1653 | p-cancelable: 3.0.0 1654 | responselike: 3.0.0 1655 | 1656 | graceful-fs@4.2.10: {} 1657 | 1658 | graceful-fs@4.2.11: {} 1659 | 1660 | http-cache-semantics@4.1.1: {} 1661 | 1662 | http2-wrapper@2.2.1: 1663 | dependencies: 1664 | quick-lru: 5.1.1 1665 | resolve-alpn: 1.2.1 1666 | 1667 | human-signals@2.1.0: {} 1668 | 1669 | ieee754@1.2.1: {} 1670 | 1671 | ignore@5.3.2: {} 1672 | 1673 | inherits@2.0.4: {} 1674 | 1675 | ini@1.3.8: {} 1676 | 1677 | is-binary-path@2.1.0: 1678 | dependencies: 1679 | binary-extensions: 2.3.0 1680 | 1681 | is-extglob@2.1.1: {} 1682 | 1683 | is-fullwidth-code-point@3.0.0: {} 1684 | 1685 | is-glob@4.0.3: 1686 | dependencies: 1687 | is-extglob: 2.1.1 1688 | 1689 | is-interactive@2.0.0: {} 1690 | 1691 | is-number@7.0.0: {} 1692 | 1693 | is-stream@2.0.1: {} 1694 | 1695 | is-unicode-supported@1.3.0: {} 1696 | 1697 | isexe@2.0.0: {} 1698 | 1699 | jackspeak@3.4.3: 1700 | dependencies: 1701 | '@isaacs/cliui': 8.0.2 1702 | optionalDependencies: 1703 | '@pkgjs/parseargs': 0.11.0 1704 | 1705 | joycon@3.1.1: {} 1706 | 1707 | json-buffer@3.0.1: {} 1708 | 1709 | jsonfile@6.1.0: 1710 | dependencies: 1711 | universalify: 2.0.1 1712 | optionalDependencies: 1713 | graceful-fs: 4.2.11 1714 | 1715 | keyv@4.5.4: 1716 | dependencies: 1717 | json-buffer: 3.0.1 1718 | 1719 | kleur@3.0.3: {} 1720 | 1721 | lilconfig@3.1.2: {} 1722 | 1723 | lines-and-columns@1.2.4: {} 1724 | 1725 | load-tsconfig@0.2.5: {} 1726 | 1727 | lodash.sortby@4.7.0: {} 1728 | 1729 | log-symbols@5.1.0: 1730 | dependencies: 1731 | chalk: 5.3.0 1732 | is-unicode-supported: 1.3.0 1733 | 1734 | lowercase-keys@3.0.0: {} 1735 | 1736 | lru-cache@10.4.3: {} 1737 | 1738 | make-error@1.3.6: {} 1739 | 1740 | merge-stream@2.0.0: {} 1741 | 1742 | merge2@1.4.1: {} 1743 | 1744 | micromatch@4.0.7: 1745 | dependencies: 1746 | braces: 3.0.3 1747 | picomatch: 2.3.1 1748 | 1749 | mimic-fn@2.1.0: {} 1750 | 1751 | mimic-response@3.1.0: {} 1752 | 1753 | mimic-response@4.0.0: {} 1754 | 1755 | minimatch@9.0.5: 1756 | dependencies: 1757 | brace-expansion: 2.0.1 1758 | 1759 | minimist@1.2.8: {} 1760 | 1761 | minipass@7.1.2: {} 1762 | 1763 | ms@2.1.2: {} 1764 | 1765 | mz@2.7.0: 1766 | dependencies: 1767 | any-promise: 1.3.0 1768 | object-assign: 4.1.1 1769 | thenify-all: 1.6.0 1770 | 1771 | node-domexception@1.0.0: {} 1772 | 1773 | node-fetch@3.3.2: 1774 | dependencies: 1775 | data-uri-to-buffer: 4.0.1 1776 | fetch-blob: 3.2.0 1777 | formdata-polyfill: 4.0.10 1778 | 1779 | normalize-path@3.0.0: {} 1780 | 1781 | normalize-url@8.0.1: {} 1782 | 1783 | npm-run-path@4.0.1: 1784 | dependencies: 1785 | path-key: 3.1.1 1786 | 1787 | object-assign@4.1.1: {} 1788 | 1789 | onetime@5.1.2: 1790 | dependencies: 1791 | mimic-fn: 2.1.0 1792 | 1793 | ora@7.0.1: 1794 | dependencies: 1795 | chalk: 5.3.0 1796 | cli-cursor: 4.0.0 1797 | cli-spinners: 2.9.2 1798 | is-interactive: 2.0.0 1799 | is-unicode-supported: 1.3.0 1800 | log-symbols: 5.1.0 1801 | stdin-discarder: 0.1.0 1802 | string-width: 6.1.0 1803 | strip-ansi: 7.1.0 1804 | 1805 | p-cancelable@3.0.0: {} 1806 | 1807 | package-json-from-dist@1.0.0: {} 1808 | 1809 | package-json@8.1.1: 1810 | dependencies: 1811 | got: 12.6.1 1812 | registry-auth-token: 5.0.2 1813 | registry-url: 6.0.1 1814 | semver: 7.6.3 1815 | 1816 | path-key@3.1.1: {} 1817 | 1818 | path-scurry@1.11.1: 1819 | dependencies: 1820 | lru-cache: 10.4.3 1821 | minipass: 7.1.2 1822 | 1823 | path-type@4.0.0: {} 1824 | 1825 | picocolors@1.0.1: {} 1826 | 1827 | picomatch@2.3.1: {} 1828 | 1829 | pirates@4.0.6: {} 1830 | 1831 | postcss-load-config@6.0.1: 1832 | dependencies: 1833 | lilconfig: 3.1.2 1834 | 1835 | prompts@2.4.2: 1836 | dependencies: 1837 | kleur: 3.0.3 1838 | sisteransi: 1.0.5 1839 | 1840 | proto-list@1.2.4: {} 1841 | 1842 | punycode@2.3.1: {} 1843 | 1844 | queue-microtask@1.2.3: {} 1845 | 1846 | quick-lru@5.1.1: {} 1847 | 1848 | rc@1.2.8: 1849 | dependencies: 1850 | deep-extend: 0.6.0 1851 | ini: 1.3.8 1852 | minimist: 1.2.8 1853 | strip-json-comments: 2.0.1 1854 | 1855 | readable-stream@3.6.2: 1856 | dependencies: 1857 | inherits: 2.0.4 1858 | string_decoder: 1.3.0 1859 | util-deprecate: 1.0.2 1860 | 1861 | readdirp@3.6.0: 1862 | dependencies: 1863 | picomatch: 2.3.1 1864 | 1865 | registry-auth-token@5.0.2: 1866 | dependencies: 1867 | '@pnpm/npm-conf': 2.3.1 1868 | 1869 | registry-url@6.0.1: 1870 | dependencies: 1871 | rc: 1.2.8 1872 | 1873 | resolve-alpn@1.2.1: {} 1874 | 1875 | resolve-from@5.0.0: {} 1876 | 1877 | responselike@3.0.0: 1878 | dependencies: 1879 | lowercase-keys: 3.0.0 1880 | 1881 | restore-cursor@4.0.0: 1882 | dependencies: 1883 | onetime: 5.1.2 1884 | signal-exit: 3.0.7 1885 | 1886 | reusify@1.0.4: {} 1887 | 1888 | rimraf@5.0.10: 1889 | dependencies: 1890 | glob: 10.4.5 1891 | 1892 | rollup@4.21.0: 1893 | dependencies: 1894 | '@types/estree': 1.0.5 1895 | optionalDependencies: 1896 | '@rollup/rollup-android-arm-eabi': 4.21.0 1897 | '@rollup/rollup-android-arm64': 4.21.0 1898 | '@rollup/rollup-darwin-arm64': 4.21.0 1899 | '@rollup/rollup-darwin-x64': 4.21.0 1900 | '@rollup/rollup-linux-arm-gnueabihf': 4.21.0 1901 | '@rollup/rollup-linux-arm-musleabihf': 4.21.0 1902 | '@rollup/rollup-linux-arm64-gnu': 4.21.0 1903 | '@rollup/rollup-linux-arm64-musl': 4.21.0 1904 | '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0 1905 | '@rollup/rollup-linux-riscv64-gnu': 4.21.0 1906 | '@rollup/rollup-linux-s390x-gnu': 4.21.0 1907 | '@rollup/rollup-linux-x64-gnu': 4.21.0 1908 | '@rollup/rollup-linux-x64-musl': 4.21.0 1909 | '@rollup/rollup-win32-arm64-msvc': 4.21.0 1910 | '@rollup/rollup-win32-ia32-msvc': 4.21.0 1911 | '@rollup/rollup-win32-x64-msvc': 4.21.0 1912 | fsevents: 2.3.3 1913 | 1914 | run-parallel@1.2.0: 1915 | dependencies: 1916 | queue-microtask: 1.2.3 1917 | 1918 | safe-buffer@5.2.1: {} 1919 | 1920 | semver@7.6.3: {} 1921 | 1922 | shebang-command@2.0.0: 1923 | dependencies: 1924 | shebang-regex: 3.0.0 1925 | 1926 | shebang-regex@3.0.0: {} 1927 | 1928 | signal-exit@3.0.7: {} 1929 | 1930 | signal-exit@4.1.0: {} 1931 | 1932 | sisteransi@1.0.5: {} 1933 | 1934 | slash@3.0.0: {} 1935 | 1936 | source-map@0.8.0-beta.0: 1937 | dependencies: 1938 | whatwg-url: 7.1.0 1939 | 1940 | stdin-discarder@0.1.0: 1941 | dependencies: 1942 | bl: 5.1.0 1943 | 1944 | string-width@4.2.3: 1945 | dependencies: 1946 | emoji-regex: 8.0.0 1947 | is-fullwidth-code-point: 3.0.0 1948 | strip-ansi: 6.0.1 1949 | 1950 | string-width@5.1.2: 1951 | dependencies: 1952 | eastasianwidth: 0.2.0 1953 | emoji-regex: 9.2.2 1954 | strip-ansi: 7.1.0 1955 | 1956 | string-width@6.1.0: 1957 | dependencies: 1958 | eastasianwidth: 0.2.0 1959 | emoji-regex: 10.3.0 1960 | strip-ansi: 7.1.0 1961 | 1962 | string_decoder@1.3.0: 1963 | dependencies: 1964 | safe-buffer: 5.2.1 1965 | 1966 | strip-ansi@6.0.1: 1967 | dependencies: 1968 | ansi-regex: 5.0.1 1969 | 1970 | strip-ansi@7.1.0: 1971 | dependencies: 1972 | ansi-regex: 6.0.1 1973 | 1974 | strip-final-newline@2.0.0: {} 1975 | 1976 | strip-json-comments@2.0.1: {} 1977 | 1978 | sucrase@3.35.0: 1979 | dependencies: 1980 | '@jridgewell/gen-mapping': 0.3.5 1981 | commander: 4.1.1 1982 | glob: 10.4.5 1983 | lines-and-columns: 1.2.4 1984 | mz: 2.7.0 1985 | pirates: 4.0.6 1986 | ts-interface-checker: 0.1.13 1987 | 1988 | thenify-all@1.6.0: 1989 | dependencies: 1990 | thenify: 3.3.1 1991 | 1992 | thenify@3.3.1: 1993 | dependencies: 1994 | any-promise: 1.3.0 1995 | 1996 | to-regex-range@5.0.1: 1997 | dependencies: 1998 | is-number: 7.0.0 1999 | 2000 | tr46@1.0.1: 2001 | dependencies: 2002 | punycode: 2.3.1 2003 | 2004 | tree-kill@1.2.2: {} 2005 | 2006 | ts-interface-checker@0.1.13: {} 2007 | 2008 | ts-node@10.9.2(@types/node@20.16.1)(typescript@5.5.4): 2009 | dependencies: 2010 | '@cspotcode/source-map-support': 0.8.1 2011 | '@tsconfig/node10': 1.0.11 2012 | '@tsconfig/node12': 1.0.11 2013 | '@tsconfig/node14': 1.0.3 2014 | '@tsconfig/node16': 1.0.4 2015 | '@types/node': 20.16.1 2016 | acorn: 8.12.1 2017 | acorn-walk: 8.3.3 2018 | arg: 4.1.3 2019 | create-require: 1.1.1 2020 | diff: 4.0.2 2021 | make-error: 1.3.6 2022 | typescript: 5.5.4 2023 | v8-compile-cache-lib: 3.0.1 2024 | yn: 3.1.1 2025 | 2026 | tsup@8.2.4(typescript@5.5.4): 2027 | dependencies: 2028 | bundle-require: 5.0.0(esbuild@0.23.1) 2029 | cac: 6.7.14 2030 | chokidar: 3.6.0 2031 | consola: 3.2.3 2032 | debug: 4.3.6 2033 | esbuild: 0.23.1 2034 | execa: 5.1.1 2035 | globby: 11.1.0 2036 | joycon: 3.1.1 2037 | picocolors: 1.0.1 2038 | postcss-load-config: 6.0.1 2039 | resolve-from: 5.0.0 2040 | rollup: 4.21.0 2041 | source-map: 0.8.0-beta.0 2042 | sucrase: 3.35.0 2043 | tree-kill: 1.2.2 2044 | optionalDependencies: 2045 | typescript: 5.5.4 2046 | transitivePeerDependencies: 2047 | - jiti 2048 | - supports-color 2049 | - tsx 2050 | - yaml 2051 | 2052 | type-fest@4.25.0: {} 2053 | 2054 | typescript@5.5.4: {} 2055 | 2056 | undici-types@6.19.8: {} 2057 | 2058 | universalify@2.0.1: {} 2059 | 2060 | util-deprecate@1.0.2: {} 2061 | 2062 | v8-compile-cache-lib@3.0.1: {} 2063 | 2064 | web-streams-polyfill@3.3.3: {} 2065 | 2066 | webidl-conversions@4.0.2: {} 2067 | 2068 | whatwg-url@7.1.0: 2069 | dependencies: 2070 | lodash.sortby: 4.7.0 2071 | tr46: 1.0.1 2072 | webidl-conversions: 4.0.2 2073 | 2074 | which@2.0.2: 2075 | dependencies: 2076 | isexe: 2.0.0 2077 | 2078 | wrap-ansi@7.0.0: 2079 | dependencies: 2080 | ansi-styles: 4.3.0 2081 | string-width: 4.2.3 2082 | strip-ansi: 6.0.1 2083 | 2084 | wrap-ansi@8.1.0: 2085 | dependencies: 2086 | ansi-styles: 6.2.1 2087 | string-width: 5.1.2 2088 | strip-ansi: 7.1.0 2089 | 2090 | yn@3.1.1: {} 2091 | 2092 | zod@3.23.8: {} 2093 | -------------------------------------------------------------------------------- /src/commands/add.ts: -------------------------------------------------------------------------------- 1 | import { existsSync, promises as fs } from "fs" 2 | import path from "path" 3 | import { getConfigInfo } from "@/src/utils/get-config-info" 4 | import { filterSvgs, getSVGNameFromUrl, getSvg } from "@/src/utils/get-svg" 5 | import { getSvgsList } from "@/src/utils/get-svgs-list" 6 | import { handleError } from "@/src/utils/handle-error" 7 | import { logger } from "@/src/utils/logger" 8 | import { Command } from "commander" 9 | import { default as create } from "fs-extra" 10 | import ora from "ora" 11 | import prompts from "prompts" 12 | import { z } from "zod" 13 | 14 | const addOptionsSchema = z.object({ 15 | svgs: z.array(z.string()).optional(), 16 | cwd: z.string(), 17 | all: z.boolean(), 18 | path: z.string().optional(), 19 | theme: z.enum(["light", "dark", "both"]).optional() 20 | }) 21 | 22 | export const add = new Command() 23 | .name("add") 24 | .description("add a svg to your project") 25 | .argument("[svgs...]", "the svg to add") 26 | .option( 27 | "-c, --cwd ", 28 | "the working directory. defaults to the current directory.", 29 | process.cwd() 30 | ) 31 | .option("-a, --all", "add all available svg", false) 32 | .option("-p, --path ", "the path to add the svg to") 33 | .option("-t, --theme ", "select svg theme") 34 | .action(async (svgs, opts) => { 35 | try { 36 | const options = addOptionsSchema.parse({ svgs, ...opts }) 37 | 38 | const cwd = path.resolve(options.cwd) 39 | 40 | if (!existsSync(cwd)) { 41 | logger.error(`The path ${cwd} does not exist. Please try again.`) 42 | process.exit(1) 43 | } 44 | 45 | const availableSvgs = await getSvgsList() 46 | 47 | let selectedSvgs = options.all 48 | ? availableSvgs.map((svgs) => svgs.route) 49 | : options.svgs 50 | ?.map((svgName) => { 51 | const svg = availableSvgs.find( 52 | (item) => item.title.toLowerCase() === svgName.toLowerCase() 53 | ) 54 | return svg ? svg.route : null 55 | }) 56 | .filter((route) => route !== null) 57 | 58 | if (!options.svgs?.length && !options.all) { 59 | const { svgs } = await prompts({ 60 | type: "multiselect", 61 | name: "svgs", 62 | message: "Which svgs would you like to add?", 63 | hint: "Space to select. A to toggle all. Enter to submit.", 64 | instructions: false, 65 | choices: availableSvgs.map((svgs) => ({ 66 | title: svgs.title, 67 | value: svgs.route, 68 | selected: options.all ? true : options.svgs?.includes(svgs.title) 69 | })) 70 | }) 71 | 72 | selectedSvgs = svgs 73 | } 74 | 75 | const workSpacePath = getConfigInfo() 76 | 77 | if (!selectedSvgs?.length) { 78 | logger.warn("No svgs selected. Exiting.") 79 | process.exit(0) 80 | } 81 | 82 | const filteredSvgs = filterSvgs({ 83 | select: options.theme || workSpacePath?.theme || "both", 84 | selectedSvgs 85 | }) 86 | 87 | const spinner = ora("Fetching SVGs...").start() 88 | const payload = await getSvg(filteredSvgs) 89 | 90 | for (const item of payload) { 91 | const targetDir = options.path 92 | ? path.resolve(cwd, options.path) 93 | : workSpacePath?.path 94 | ? workSpacePath.path 95 | : "public/svg" 96 | 97 | if (!targetDir) { 98 | continue 99 | } 100 | 101 | if (!existsSync(targetDir)) { 102 | await fs.mkdir(targetDir, { recursive: true }) 103 | } 104 | 105 | if (!item.svg) { 106 | spinner.stop() 107 | logger.warn( 108 | `SVG for ${getSVGNameFromUrl(item.path)} is not available.` 109 | ) 110 | } else { 111 | const filePath = path.resolve(targetDir, getSVGNameFromUrl(item.path)) 112 | 113 | create.writeFileSync(filePath, item.svg) 114 | spinner.text = `Adding ${item.path}...` 115 | } 116 | } 117 | 118 | spinner.succeed("Done.") 119 | } catch (error) { 120 | handleError(error) 121 | } 122 | }) 123 | -------------------------------------------------------------------------------- /src/commands/init.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import { promises as fs } from "fs" 4 | import path from "path" 5 | import { handleError } from "@/src/utils/handle-error" 6 | import { logger } from "@/src/utils/logger" 7 | import chalk from "chalk" 8 | import { Command } from "commander" 9 | import ora from "ora" 10 | import prompts from "prompts" 11 | 12 | export interface ConfigType { 13 | path: string 14 | theme: "light" | "dark" | "both" 15 | } 16 | 17 | export const init = new Command() 18 | .name("init") 19 | .description("initialize svgl config file") 20 | .option( 21 | "-c, --cwd ", 22 | "the working directory. defaults to the current directory.", 23 | process.cwd() 24 | ) 25 | .action(async () => { 26 | try { 27 | await promptForConfig() 28 | logger.info("") 29 | logger.info(`${chalk.green("Success!")} Configuration completed.`) 30 | logger.info("") 31 | } catch (error) { 32 | handleError(error) 33 | } 34 | }) 35 | 36 | export async function promptForConfig() { 37 | const highlight = (text: string) => chalk.cyan(text) 38 | 39 | const options = await prompts([ 40 | { 41 | type: "text", 42 | name: "path", 43 | message: `Where you want to add ${highlight("svgs")}?`, 44 | initial: "public/svgs" 45 | }, 46 | { 47 | type: "select", 48 | name: "theme", 49 | message: "Select the SVG theme:", 50 | choices: [ 51 | { title: "Light", value: "light" }, 52 | { title: "Dark", value: "dark" }, 53 | { title: "Both (default)", value: "both" } 54 | ], 55 | initial: 2 56 | } 57 | ]) 58 | 59 | const config = { 60 | path: options.path, 61 | theme: options.theme 62 | } 63 | 64 | const spinner = ora("Configuring...").start() 65 | const targetPath = path.resolve("svgls.json") 66 | await fs.writeFile(targetPath, JSON.stringify(config, null, 2), "utf8") 67 | spinner.succeed("Configuration completed") 68 | } 69 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import { add } from "@/src/commands/add" 4 | import { init } from "@/src/commands/init" 5 | import { getPackageInfo } from "@/src/utils/get-package-info" 6 | import { Command } from "commander" 7 | 8 | process.on("SIGINT", () => process.exit(0)) 9 | process.on("SIGTERM", () => process.exit(0)) 10 | 11 | async function main() { 12 | const packageInfo = await getPackageInfo() 13 | 14 | const program = new Command() 15 | .name("svgls") 16 | .description("a beautiful library with svg logos.") 17 | .version( 18 | packageInfo.version || "1.0.0", 19 | "-v, --version", 20 | "display the version number" 21 | ) 22 | 23 | program.addCommand(init).addCommand(add) 24 | 25 | program.parse() 26 | } 27 | 28 | main() 29 | -------------------------------------------------------------------------------- /src/utils/get-config-info.ts: -------------------------------------------------------------------------------- 1 | import path from "path" 2 | import { ConfigType } from "@/src/commands/init" 3 | import fs from "fs-extra" 4 | 5 | export function getConfigInfo() { 6 | const configInfoPath = path.join("svgls.json") 7 | 8 | if (!fs.existsSync(configInfoPath)) { 9 | return null 10 | } 11 | 12 | return fs.readJSONSync(configInfoPath) as ConfigType 13 | } 14 | -------------------------------------------------------------------------------- /src/utils/get-package-info.ts: -------------------------------------------------------------------------------- 1 | import packageJson from "package-json" 2 | import type { PackageJson } from "type-fest" 3 | 4 | export async function getPackageInfo() { 5 | const packageInfo = await packageJson("svgls") 6 | return packageInfo as PackageJson 7 | } 8 | -------------------------------------------------------------------------------- /src/utils/get-svg.ts: -------------------------------------------------------------------------------- 1 | import { SvglAPIResponse } from "@/src/utils/get-svgs-list" 2 | 3 | export async function getSvg(paths: string[]) { 4 | try { 5 | const results = await Promise.all( 6 | paths.map(async (path) => { 7 | const response = await fetch(path) 8 | 9 | if (!response.ok) { 10 | return { path, svg: null } 11 | } 12 | 13 | const svg = await response.text() 14 | return { path, svg } 15 | }) 16 | ) 17 | 18 | return results 19 | } catch (error) { 20 | throw new Error( 21 | "Failed to fetch svg from github. Please visit https://svgl.vercel.app to download svgs manually." 22 | ) 23 | } 24 | } 25 | 26 | interface FilterSvgsProps { 27 | selectedSvgs: SvglAPIResponse["route"][] 28 | select: "light" | "dark" | "both" 29 | } 30 | 31 | export function filterSvgs({ 32 | selectedSvgs, 33 | select 34 | }: FilterSvgsProps): string[] { 35 | return selectedSvgs.flatMap((svg) => { 36 | if (typeof svg === "object" && svg.light && svg.dark) { 37 | if (select === "light") { 38 | return [svg.light] 39 | } 40 | if (select === "dark") { 41 | return [svg.dark] 42 | } 43 | return [svg.light, svg.dark] 44 | } 45 | if (typeof svg === "string") { 46 | return [svg] 47 | } 48 | return [] 49 | }) 50 | } 51 | 52 | export function getSVGNameFromUrl(url: string) { 53 | const baseUrl = "https://svgl.app/library/" 54 | 55 | if (url.startsWith(baseUrl)) { 56 | return url.substring(baseUrl.length) 57 | } 58 | 59 | throw new Error(`Invalid URL: ${url}`) 60 | } 61 | -------------------------------------------------------------------------------- /src/utils/get-svgs-list.ts: -------------------------------------------------------------------------------- 1 | import fetch from "node-fetch" 2 | 3 | export interface SvglAPIResponse { 4 | id: number 5 | title: string 6 | category: string 7 | route: 8 | | { 9 | light: string 10 | dark: string 11 | } 12 | | string 13 | wordmark?: { 14 | light: string 15 | dark: string 16 | } 17 | url: string 18 | } 19 | 20 | export async function getSvgsList() { 21 | const response = await fetch("https://api.svgl.app") 22 | const svgs = (await response.json()) as SvglAPIResponse[] 23 | 24 | return svgs 25 | } 26 | -------------------------------------------------------------------------------- /src/utils/handle-error.ts: -------------------------------------------------------------------------------- 1 | import { logger } from "@/src/utils/logger" 2 | 3 | export function handleError(error: unknown) { 4 | if (typeof error === "string") { 5 | logger.error(error) 6 | process.exit(1) 7 | } 8 | 9 | if (error instanceof Error) { 10 | logger.error(error.message) 11 | process.exit(1) 12 | } 13 | 14 | logger.error("Something went wrong. Please try again.") 15 | process.exit(1) 16 | } 17 | -------------------------------------------------------------------------------- /src/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import chalk from "chalk" 2 | 3 | export const logger = { 4 | error(...args: unknown[]) { 5 | console.log(chalk.red(...args)) 6 | }, 7 | warn(...args: unknown[]) { 8 | console.log(chalk.yellow(...args)) 9 | }, 10 | info(...args: unknown[]) { 11 | console.log(chalk.cyan(...args)) 12 | }, 13 | success(...args: unknown[]) { 14 | console.log(chalk.green(...args)) 15 | }, 16 | break() { 17 | console.log("") 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "display": "Default", 4 | "compilerOptions": { 5 | "composite": false, 6 | "declaration": true, 7 | "declarationMap": true, 8 | "esModuleInterop": true, 9 | "forceConsistentCasingInFileNames": true, 10 | "inlineSources": false, 11 | "isolatedModules": true, 12 | "moduleResolution": "node", 13 | "noUnusedLocals": false, 14 | "noUnusedParameters": false, 15 | "preserveWatchOutput": true, 16 | "skipLibCheck": true, 17 | "strict": true, 18 | "outDir": "dist", 19 | "baseUrl": ".", 20 | "paths": { 21 | "@/*": ["./*"] 22 | } 23 | }, 24 | "include": ["src/**/*.ts"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "tsup" 2 | 3 | export default defineConfig({ 4 | clean: true, 5 | dts: true, 6 | entry: ["src/index.ts"], 7 | format: ["esm"], 8 | sourcemap: true, 9 | minify: true, 10 | target: "esnext", 11 | outDir: "dist" 12 | }) 13 | --------------------------------------------------------------------------------