├── pnpm-workspace.yaml ├── packages └── _example-package │ ├── src │ ├── index.ts │ └── tests │ │ └── index.test.ts │ ├── tsconfig.json │ └── package.json ├── apps └── _example-app │ ├── src │ ├── index.ts │ └── tests │ │ └── index.test.ts │ ├── tsconfig.json │ └── package.json ├── .gitignore ├── .github └── workflows │ └── ci.yml ├── package.json ├── turbo.json └── pnpm-lock.yaml /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "packages/*" 3 | - "apps/*" 4 | -------------------------------------------------------------------------------- /packages/_example-package/src/index.ts: -------------------------------------------------------------------------------- 1 | export const example = "example"; 2 | -------------------------------------------------------------------------------- /apps/_example-app/src/index.ts: -------------------------------------------------------------------------------- 1 | import { example } from "example-package"; 2 | 3 | console.log(example); 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .turbo 4 | *.tsbuildinfo 5 | *.local.* 6 | *.local 7 | .env 8 | .twoslash-lint -------------------------------------------------------------------------------- /apps/_example-app/src/tests/index.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, it } from "vitest"; 2 | 3 | it("Should work", () => { 4 | expect(true).toBe(true); 5 | }); 6 | -------------------------------------------------------------------------------- /apps/_example-app/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@total-typescript/tsconfig/tsc/no-dom/library-monorepo", 3 | "compilerOptions": { 4 | "outDir": "dist", 5 | "rootDir": "src", 6 | }, 7 | } -------------------------------------------------------------------------------- /packages/_example-package/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@total-typescript/tsconfig/tsc/no-dom/library-monorepo", 3 | "compilerOptions": { 4 | "outDir": "dist", 5 | "rootDir": "src", 6 | }, 7 | } -------------------------------------------------------------------------------- /packages/_example-package/src/tests/index.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, it } from "vitest"; 2 | import { example } from "../index.js"; 3 | 4 | it("Should work", () => { 5 | expect(example).toBe("example"); 6 | }); 7 | -------------------------------------------------------------------------------- /packages/_example-package/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example-package", 3 | "version": "0.0.2", 4 | "private": true, 5 | "type": "module", 6 | "files": [ 7 | "./dist/*" 8 | ], 9 | "scripts": { 10 | "build": "tsc", 11 | "test": "vitest run" 12 | }, 13 | "exports": { 14 | ".": "./dist/index.js" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /apps/_example-app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example-app", 3 | "version": "0.0.2", 4 | "private": true, 5 | "type": "module", 6 | "files": [ 7 | "./dist/*" 8 | ], 9 | "scripts": { 10 | "dev": "node --enable-source-maps --watch ./dist/index.js", 11 | "build": "tsc", 12 | "test": "vitest run" 13 | }, 14 | "exports": { 15 | ".": "./dist/index.js" 16 | }, 17 | "dependencies": { 18 | "example-package": "workspace:*" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI Checks 2 | on: push 3 | 4 | jobs: 5 | ci: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v4 9 | - uses: pnpm/action-setup@v4 10 | - uses: actions/setup-node@v4 11 | with: 12 | node-version: 20.x 13 | cache: "pnpm" 14 | 15 | - run: pnpm install --no-frozen-lockfile 16 | - run: pnpm run ci 17 | env: 18 | EXTERNAL_DRIVE_ROOT: "/example-root" 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "total-typescript-monorepo", 3 | "version": "1.0.0", 4 | "type": "module", 5 | "packageManager": "pnpm@9.5.0", 6 | "description": "", 7 | "engines": { 8 | "node": ">=20" 9 | }, 10 | "private": true, 11 | "scripts": { 12 | "dev": "turbo watch build lint test", 13 | "ci": "turbo build test lint" 14 | }, 15 | "keywords": [], 16 | "author": "Matt Pocock", 17 | "license": "ISC", 18 | "dependencies": { 19 | "@total-typescript/tsconfig": "^1.0.3", 20 | "@types/node": "^20.12.10", 21 | "prettier": "^3.2.5", 22 | "turbo": "^2.0.1", 23 | "typescript": "^5.5.2", 24 | "vitest": "^2.0.0" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://turbo.build/schema.json", 3 | "tasks": { 4 | "setup": { 5 | "dependsOn": ["build"], 6 | "cache": false 7 | }, 8 | "dev": { 9 | "dependsOn": ["^build"], 10 | "cache": false, 11 | "persistent": true 12 | }, 13 | "lint": { 14 | "dependsOn": ["^build"], 15 | "cache": true 16 | }, 17 | "test": { 18 | "dependsOn": ["^build"], 19 | "cache": true 20 | }, 21 | "build": { 22 | "dependsOn": ["^build"], 23 | "outputs": ["dist", "*.tsbuildinfo", ".next", "build"], 24 | "cache": true 25 | }, 26 | "start": { 27 | "dependsOn": ["build"], 28 | "cache": false, 29 | "persistent": true 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@total-typescript/tsconfig': 12 | specifier: ^1.0.3 13 | version: 1.0.4 14 | '@types/node': 15 | specifier: ^20.12.10 16 | version: 20.14.11 17 | prettier: 18 | specifier: ^3.2.5 19 | version: 3.3.3 20 | turbo: 21 | specifier: ^2.0.1 22 | version: 2.0.7 23 | typescript: 24 | specifier: ^5.5.2 25 | version: 5.5.3 26 | vitest: 27 | specifier: ^2.0.0 28 | version: 2.0.3(@types/node@20.14.11) 29 | 30 | apps/_example-app: 31 | dependencies: 32 | example-package: 33 | specifier: workspace:* 34 | version: link:../../packages/_example-package 35 | 36 | packages/_example-package: {} 37 | 38 | packages: 39 | 40 | /@ampproject/remapping@2.3.0: 41 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 42 | engines: {node: '>=6.0.0'} 43 | dependencies: 44 | '@jridgewell/gen-mapping': 0.3.5 45 | '@jridgewell/trace-mapping': 0.3.25 46 | dev: false 47 | 48 | /@esbuild/aix-ppc64@0.21.5: 49 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 50 | engines: {node: '>=12'} 51 | cpu: [ppc64] 52 | os: [aix] 53 | requiresBuild: true 54 | dev: false 55 | optional: true 56 | 57 | /@esbuild/android-arm64@0.21.5: 58 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 59 | engines: {node: '>=12'} 60 | cpu: [arm64] 61 | os: [android] 62 | requiresBuild: true 63 | dev: false 64 | optional: true 65 | 66 | /@esbuild/android-arm@0.21.5: 67 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 68 | engines: {node: '>=12'} 69 | cpu: [arm] 70 | os: [android] 71 | requiresBuild: true 72 | dev: false 73 | optional: true 74 | 75 | /@esbuild/android-x64@0.21.5: 76 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 77 | engines: {node: '>=12'} 78 | cpu: [x64] 79 | os: [android] 80 | requiresBuild: true 81 | dev: false 82 | optional: true 83 | 84 | /@esbuild/darwin-arm64@0.21.5: 85 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 86 | engines: {node: '>=12'} 87 | cpu: [arm64] 88 | os: [darwin] 89 | requiresBuild: true 90 | dev: false 91 | optional: true 92 | 93 | /@esbuild/darwin-x64@0.21.5: 94 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 95 | engines: {node: '>=12'} 96 | cpu: [x64] 97 | os: [darwin] 98 | requiresBuild: true 99 | dev: false 100 | optional: true 101 | 102 | /@esbuild/freebsd-arm64@0.21.5: 103 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 104 | engines: {node: '>=12'} 105 | cpu: [arm64] 106 | os: [freebsd] 107 | requiresBuild: true 108 | dev: false 109 | optional: true 110 | 111 | /@esbuild/freebsd-x64@0.21.5: 112 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 113 | engines: {node: '>=12'} 114 | cpu: [x64] 115 | os: [freebsd] 116 | requiresBuild: true 117 | dev: false 118 | optional: true 119 | 120 | /@esbuild/linux-arm64@0.21.5: 121 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 122 | engines: {node: '>=12'} 123 | cpu: [arm64] 124 | os: [linux] 125 | requiresBuild: true 126 | dev: false 127 | optional: true 128 | 129 | /@esbuild/linux-arm@0.21.5: 130 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 131 | engines: {node: '>=12'} 132 | cpu: [arm] 133 | os: [linux] 134 | requiresBuild: true 135 | dev: false 136 | optional: true 137 | 138 | /@esbuild/linux-ia32@0.21.5: 139 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 140 | engines: {node: '>=12'} 141 | cpu: [ia32] 142 | os: [linux] 143 | requiresBuild: true 144 | dev: false 145 | optional: true 146 | 147 | /@esbuild/linux-loong64@0.21.5: 148 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 149 | engines: {node: '>=12'} 150 | cpu: [loong64] 151 | os: [linux] 152 | requiresBuild: true 153 | dev: false 154 | optional: true 155 | 156 | /@esbuild/linux-mips64el@0.21.5: 157 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 158 | engines: {node: '>=12'} 159 | cpu: [mips64el] 160 | os: [linux] 161 | requiresBuild: true 162 | dev: false 163 | optional: true 164 | 165 | /@esbuild/linux-ppc64@0.21.5: 166 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 167 | engines: {node: '>=12'} 168 | cpu: [ppc64] 169 | os: [linux] 170 | requiresBuild: true 171 | dev: false 172 | optional: true 173 | 174 | /@esbuild/linux-riscv64@0.21.5: 175 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 176 | engines: {node: '>=12'} 177 | cpu: [riscv64] 178 | os: [linux] 179 | requiresBuild: true 180 | dev: false 181 | optional: true 182 | 183 | /@esbuild/linux-s390x@0.21.5: 184 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 185 | engines: {node: '>=12'} 186 | cpu: [s390x] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: false 190 | optional: true 191 | 192 | /@esbuild/linux-x64@0.21.5: 193 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 194 | engines: {node: '>=12'} 195 | cpu: [x64] 196 | os: [linux] 197 | requiresBuild: true 198 | dev: false 199 | optional: true 200 | 201 | /@esbuild/netbsd-x64@0.21.5: 202 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 203 | engines: {node: '>=12'} 204 | cpu: [x64] 205 | os: [netbsd] 206 | requiresBuild: true 207 | dev: false 208 | optional: true 209 | 210 | /@esbuild/openbsd-x64@0.21.5: 211 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 212 | engines: {node: '>=12'} 213 | cpu: [x64] 214 | os: [openbsd] 215 | requiresBuild: true 216 | dev: false 217 | optional: true 218 | 219 | /@esbuild/sunos-x64@0.21.5: 220 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 221 | engines: {node: '>=12'} 222 | cpu: [x64] 223 | os: [sunos] 224 | requiresBuild: true 225 | dev: false 226 | optional: true 227 | 228 | /@esbuild/win32-arm64@0.21.5: 229 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 230 | engines: {node: '>=12'} 231 | cpu: [arm64] 232 | os: [win32] 233 | requiresBuild: true 234 | dev: false 235 | optional: true 236 | 237 | /@esbuild/win32-ia32@0.21.5: 238 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 239 | engines: {node: '>=12'} 240 | cpu: [ia32] 241 | os: [win32] 242 | requiresBuild: true 243 | dev: false 244 | optional: true 245 | 246 | /@esbuild/win32-x64@0.21.5: 247 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 248 | engines: {node: '>=12'} 249 | cpu: [x64] 250 | os: [win32] 251 | requiresBuild: true 252 | dev: false 253 | optional: true 254 | 255 | /@jridgewell/gen-mapping@0.3.5: 256 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 257 | engines: {node: '>=6.0.0'} 258 | dependencies: 259 | '@jridgewell/set-array': 1.2.1 260 | '@jridgewell/sourcemap-codec': 1.5.0 261 | '@jridgewell/trace-mapping': 0.3.25 262 | dev: false 263 | 264 | /@jridgewell/resolve-uri@3.1.2: 265 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 266 | engines: {node: '>=6.0.0'} 267 | dev: false 268 | 269 | /@jridgewell/set-array@1.2.1: 270 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 271 | engines: {node: '>=6.0.0'} 272 | dev: false 273 | 274 | /@jridgewell/sourcemap-codec@1.5.0: 275 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 276 | dev: false 277 | 278 | /@jridgewell/trace-mapping@0.3.25: 279 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 280 | dependencies: 281 | '@jridgewell/resolve-uri': 3.1.2 282 | '@jridgewell/sourcemap-codec': 1.5.0 283 | dev: false 284 | 285 | /@rollup/rollup-android-arm-eabi@4.18.1: 286 | resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} 287 | cpu: [arm] 288 | os: [android] 289 | requiresBuild: true 290 | dev: false 291 | optional: true 292 | 293 | /@rollup/rollup-android-arm64@4.18.1: 294 | resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} 295 | cpu: [arm64] 296 | os: [android] 297 | requiresBuild: true 298 | dev: false 299 | optional: true 300 | 301 | /@rollup/rollup-darwin-arm64@4.18.1: 302 | resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} 303 | cpu: [arm64] 304 | os: [darwin] 305 | requiresBuild: true 306 | dev: false 307 | optional: true 308 | 309 | /@rollup/rollup-darwin-x64@4.18.1: 310 | resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} 311 | cpu: [x64] 312 | os: [darwin] 313 | requiresBuild: true 314 | dev: false 315 | optional: true 316 | 317 | /@rollup/rollup-linux-arm-gnueabihf@4.18.1: 318 | resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} 319 | cpu: [arm] 320 | os: [linux] 321 | requiresBuild: true 322 | dev: false 323 | optional: true 324 | 325 | /@rollup/rollup-linux-arm-musleabihf@4.18.1: 326 | resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} 327 | cpu: [arm] 328 | os: [linux] 329 | requiresBuild: true 330 | dev: false 331 | optional: true 332 | 333 | /@rollup/rollup-linux-arm64-gnu@4.18.1: 334 | resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} 335 | cpu: [arm64] 336 | os: [linux] 337 | requiresBuild: true 338 | dev: false 339 | optional: true 340 | 341 | /@rollup/rollup-linux-arm64-musl@4.18.1: 342 | resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} 343 | cpu: [arm64] 344 | os: [linux] 345 | requiresBuild: true 346 | dev: false 347 | optional: true 348 | 349 | /@rollup/rollup-linux-powerpc64le-gnu@4.18.1: 350 | resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} 351 | cpu: [ppc64] 352 | os: [linux] 353 | requiresBuild: true 354 | dev: false 355 | optional: true 356 | 357 | /@rollup/rollup-linux-riscv64-gnu@4.18.1: 358 | resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} 359 | cpu: [riscv64] 360 | os: [linux] 361 | requiresBuild: true 362 | dev: false 363 | optional: true 364 | 365 | /@rollup/rollup-linux-s390x-gnu@4.18.1: 366 | resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} 367 | cpu: [s390x] 368 | os: [linux] 369 | requiresBuild: true 370 | dev: false 371 | optional: true 372 | 373 | /@rollup/rollup-linux-x64-gnu@4.18.1: 374 | resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} 375 | cpu: [x64] 376 | os: [linux] 377 | requiresBuild: true 378 | dev: false 379 | optional: true 380 | 381 | /@rollup/rollup-linux-x64-musl@4.18.1: 382 | resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} 383 | cpu: [x64] 384 | os: [linux] 385 | requiresBuild: true 386 | dev: false 387 | optional: true 388 | 389 | /@rollup/rollup-win32-arm64-msvc@4.18.1: 390 | resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} 391 | cpu: [arm64] 392 | os: [win32] 393 | requiresBuild: true 394 | dev: false 395 | optional: true 396 | 397 | /@rollup/rollup-win32-ia32-msvc@4.18.1: 398 | resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} 399 | cpu: [ia32] 400 | os: [win32] 401 | requiresBuild: true 402 | dev: false 403 | optional: true 404 | 405 | /@rollup/rollup-win32-x64-msvc@4.18.1: 406 | resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} 407 | cpu: [x64] 408 | os: [win32] 409 | requiresBuild: true 410 | dev: false 411 | optional: true 412 | 413 | /@total-typescript/tsconfig@1.0.4: 414 | resolution: {integrity: sha512-fO4ctMPGz1kOFOQ4RCPBRBfMy3gDn+pegUfrGyUFRMv/Rd0ZM3/SHH3hFCYG4u6bPLG8OlmOGcBLDexvyr3A5w==} 415 | dev: false 416 | 417 | /@types/estree@1.0.5: 418 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 419 | dev: false 420 | 421 | /@types/node@20.14.11: 422 | resolution: {integrity: sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==} 423 | dependencies: 424 | undici-types: 5.26.5 425 | dev: false 426 | 427 | /@vitest/expect@2.0.3: 428 | resolution: {integrity: sha512-X6AepoOYePM0lDNUPsGXTxgXZAl3EXd0GYe/MZyVE4HzkUqyUVC6S3PrY5mClDJ6/7/7vALLMV3+xD/Ko60Hqg==} 429 | dependencies: 430 | '@vitest/spy': 2.0.3 431 | '@vitest/utils': 2.0.3 432 | chai: 5.1.1 433 | tinyrainbow: 1.2.0 434 | dev: false 435 | 436 | /@vitest/pretty-format@2.0.3: 437 | resolution: {integrity: sha512-URM4GLsB2xD37nnTyvf6kfObFafxmycCL8un3OC9gaCs5cti2u+5rJdIflZ2fUJUen4NbvF6jCufwViAFLvz1g==} 438 | dependencies: 439 | tinyrainbow: 1.2.0 440 | dev: false 441 | 442 | /@vitest/runner@2.0.3: 443 | resolution: {integrity: sha512-EmSP4mcjYhAcuBWwqgpjR3FYVeiA4ROzRunqKltWjBfLNs1tnMLtF+qtgd5ClTwkDP6/DGlKJTNa6WxNK0bNYQ==} 444 | dependencies: 445 | '@vitest/utils': 2.0.3 446 | pathe: 1.1.2 447 | dev: false 448 | 449 | /@vitest/snapshot@2.0.3: 450 | resolution: {integrity: sha512-6OyA6v65Oe3tTzoSuRPcU6kh9m+mPL1vQ2jDlPdn9IQoUxl8rXhBnfICNOC+vwxWY684Vt5UPgtcA2aPFBb6wg==} 451 | dependencies: 452 | '@vitest/pretty-format': 2.0.3 453 | magic-string: 0.30.10 454 | pathe: 1.1.2 455 | dev: false 456 | 457 | /@vitest/spy@2.0.3: 458 | resolution: {integrity: sha512-sfqyAw/ypOXlaj4S+w8689qKM1OyPOqnonqOc9T91DsoHbfN5mU7FdifWWv3MtQFf0lEUstEwR9L/q/M390C+A==} 459 | dependencies: 460 | tinyspy: 3.0.0 461 | dev: false 462 | 463 | /@vitest/utils@2.0.3: 464 | resolution: {integrity: sha512-c/UdELMuHitQbbc/EVctlBaxoYAwQPQdSNwv7z/vHyBKy2edYZaFgptE27BRueZB7eW8po+cllotMNTDpL3HWg==} 465 | dependencies: 466 | '@vitest/pretty-format': 2.0.3 467 | estree-walker: 3.0.3 468 | loupe: 3.1.1 469 | tinyrainbow: 1.2.0 470 | dev: false 471 | 472 | /assertion-error@2.0.1: 473 | resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 474 | engines: {node: '>=12'} 475 | dev: false 476 | 477 | /cac@6.7.14: 478 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 479 | engines: {node: '>=8'} 480 | dev: false 481 | 482 | /chai@5.1.1: 483 | resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} 484 | engines: {node: '>=12'} 485 | dependencies: 486 | assertion-error: 2.0.1 487 | check-error: 2.1.1 488 | deep-eql: 5.0.2 489 | loupe: 3.1.1 490 | pathval: 2.0.0 491 | dev: false 492 | 493 | /check-error@2.1.1: 494 | resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} 495 | engines: {node: '>= 16'} 496 | dev: false 497 | 498 | /cross-spawn@7.0.3: 499 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 500 | engines: {node: '>= 8'} 501 | dependencies: 502 | path-key: 3.1.1 503 | shebang-command: 2.0.0 504 | which: 2.0.2 505 | dev: false 506 | 507 | /debug@4.3.5: 508 | resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} 509 | engines: {node: '>=6.0'} 510 | peerDependencies: 511 | supports-color: '*' 512 | peerDependenciesMeta: 513 | supports-color: 514 | optional: true 515 | dependencies: 516 | ms: 2.1.2 517 | dev: false 518 | 519 | /deep-eql@5.0.2: 520 | resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} 521 | engines: {node: '>=6'} 522 | dev: false 523 | 524 | /esbuild@0.21.5: 525 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 526 | engines: {node: '>=12'} 527 | hasBin: true 528 | requiresBuild: true 529 | optionalDependencies: 530 | '@esbuild/aix-ppc64': 0.21.5 531 | '@esbuild/android-arm': 0.21.5 532 | '@esbuild/android-arm64': 0.21.5 533 | '@esbuild/android-x64': 0.21.5 534 | '@esbuild/darwin-arm64': 0.21.5 535 | '@esbuild/darwin-x64': 0.21.5 536 | '@esbuild/freebsd-arm64': 0.21.5 537 | '@esbuild/freebsd-x64': 0.21.5 538 | '@esbuild/linux-arm': 0.21.5 539 | '@esbuild/linux-arm64': 0.21.5 540 | '@esbuild/linux-ia32': 0.21.5 541 | '@esbuild/linux-loong64': 0.21.5 542 | '@esbuild/linux-mips64el': 0.21.5 543 | '@esbuild/linux-ppc64': 0.21.5 544 | '@esbuild/linux-riscv64': 0.21.5 545 | '@esbuild/linux-s390x': 0.21.5 546 | '@esbuild/linux-x64': 0.21.5 547 | '@esbuild/netbsd-x64': 0.21.5 548 | '@esbuild/openbsd-x64': 0.21.5 549 | '@esbuild/sunos-x64': 0.21.5 550 | '@esbuild/win32-arm64': 0.21.5 551 | '@esbuild/win32-ia32': 0.21.5 552 | '@esbuild/win32-x64': 0.21.5 553 | dev: false 554 | 555 | /estree-walker@3.0.3: 556 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 557 | dependencies: 558 | '@types/estree': 1.0.5 559 | dev: false 560 | 561 | /execa@8.0.1: 562 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 563 | engines: {node: '>=16.17'} 564 | dependencies: 565 | cross-spawn: 7.0.3 566 | get-stream: 8.0.1 567 | human-signals: 5.0.0 568 | is-stream: 3.0.0 569 | merge-stream: 2.0.0 570 | npm-run-path: 5.3.0 571 | onetime: 6.0.0 572 | signal-exit: 4.1.0 573 | strip-final-newline: 3.0.0 574 | dev: false 575 | 576 | /fsevents@2.3.3: 577 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 578 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 579 | os: [darwin] 580 | requiresBuild: true 581 | dev: false 582 | optional: true 583 | 584 | /get-func-name@2.0.2: 585 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 586 | dev: false 587 | 588 | /get-stream@8.0.1: 589 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 590 | engines: {node: '>=16'} 591 | dev: false 592 | 593 | /human-signals@5.0.0: 594 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 595 | engines: {node: '>=16.17.0'} 596 | dev: false 597 | 598 | /is-stream@3.0.0: 599 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 600 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 601 | dev: false 602 | 603 | /isexe@2.0.0: 604 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 605 | dev: false 606 | 607 | /loupe@3.1.1: 608 | resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} 609 | dependencies: 610 | get-func-name: 2.0.2 611 | dev: false 612 | 613 | /magic-string@0.30.10: 614 | resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} 615 | dependencies: 616 | '@jridgewell/sourcemap-codec': 1.5.0 617 | dev: false 618 | 619 | /merge-stream@2.0.0: 620 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 621 | dev: false 622 | 623 | /mimic-fn@4.0.0: 624 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 625 | engines: {node: '>=12'} 626 | dev: false 627 | 628 | /ms@2.1.2: 629 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 630 | dev: false 631 | 632 | /nanoid@3.3.7: 633 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 634 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 635 | hasBin: true 636 | dev: false 637 | 638 | /npm-run-path@5.3.0: 639 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 640 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 641 | dependencies: 642 | path-key: 4.0.0 643 | dev: false 644 | 645 | /onetime@6.0.0: 646 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 647 | engines: {node: '>=12'} 648 | dependencies: 649 | mimic-fn: 4.0.0 650 | dev: false 651 | 652 | /path-key@3.1.1: 653 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 654 | engines: {node: '>=8'} 655 | dev: false 656 | 657 | /path-key@4.0.0: 658 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 659 | engines: {node: '>=12'} 660 | dev: false 661 | 662 | /pathe@1.1.2: 663 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 664 | dev: false 665 | 666 | /pathval@2.0.0: 667 | resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} 668 | engines: {node: '>= 14.16'} 669 | dev: false 670 | 671 | /picocolors@1.0.1: 672 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 673 | dev: false 674 | 675 | /postcss@8.4.39: 676 | resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} 677 | engines: {node: ^10 || ^12 || >=14} 678 | dependencies: 679 | nanoid: 3.3.7 680 | picocolors: 1.0.1 681 | source-map-js: 1.2.0 682 | dev: false 683 | 684 | /prettier@3.3.3: 685 | resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} 686 | engines: {node: '>=14'} 687 | hasBin: true 688 | dev: false 689 | 690 | /rollup@4.18.1: 691 | resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==} 692 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 693 | hasBin: true 694 | dependencies: 695 | '@types/estree': 1.0.5 696 | optionalDependencies: 697 | '@rollup/rollup-android-arm-eabi': 4.18.1 698 | '@rollup/rollup-android-arm64': 4.18.1 699 | '@rollup/rollup-darwin-arm64': 4.18.1 700 | '@rollup/rollup-darwin-x64': 4.18.1 701 | '@rollup/rollup-linux-arm-gnueabihf': 4.18.1 702 | '@rollup/rollup-linux-arm-musleabihf': 4.18.1 703 | '@rollup/rollup-linux-arm64-gnu': 4.18.1 704 | '@rollup/rollup-linux-arm64-musl': 4.18.1 705 | '@rollup/rollup-linux-powerpc64le-gnu': 4.18.1 706 | '@rollup/rollup-linux-riscv64-gnu': 4.18.1 707 | '@rollup/rollup-linux-s390x-gnu': 4.18.1 708 | '@rollup/rollup-linux-x64-gnu': 4.18.1 709 | '@rollup/rollup-linux-x64-musl': 4.18.1 710 | '@rollup/rollup-win32-arm64-msvc': 4.18.1 711 | '@rollup/rollup-win32-ia32-msvc': 4.18.1 712 | '@rollup/rollup-win32-x64-msvc': 4.18.1 713 | fsevents: 2.3.3 714 | dev: false 715 | 716 | /shebang-command@2.0.0: 717 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 718 | engines: {node: '>=8'} 719 | dependencies: 720 | shebang-regex: 3.0.0 721 | dev: false 722 | 723 | /shebang-regex@3.0.0: 724 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 725 | engines: {node: '>=8'} 726 | dev: false 727 | 728 | /siginfo@2.0.0: 729 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 730 | dev: false 731 | 732 | /signal-exit@4.1.0: 733 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 734 | engines: {node: '>=14'} 735 | dev: false 736 | 737 | /source-map-js@1.2.0: 738 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 739 | engines: {node: '>=0.10.0'} 740 | dev: false 741 | 742 | /stackback@0.0.2: 743 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 744 | dev: false 745 | 746 | /std-env@3.7.0: 747 | resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} 748 | dev: false 749 | 750 | /strip-final-newline@3.0.0: 751 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 752 | engines: {node: '>=12'} 753 | dev: false 754 | 755 | /tinybench@2.8.0: 756 | resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} 757 | dev: false 758 | 759 | /tinypool@1.0.0: 760 | resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} 761 | engines: {node: ^18.0.0 || >=20.0.0} 762 | dev: false 763 | 764 | /tinyrainbow@1.2.0: 765 | resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} 766 | engines: {node: '>=14.0.0'} 767 | dev: false 768 | 769 | /tinyspy@3.0.0: 770 | resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} 771 | engines: {node: '>=14.0.0'} 772 | dev: false 773 | 774 | /turbo-darwin-64@2.0.7: 775 | resolution: {integrity: sha512-J1RBvQGqKeUwLJrZbfrm4tHshagdMeGAwd7rpLpfUrw0PNmGfcBazJf6dIGXG59/GHzJmS0/eAZ8qDchfVbIFA==} 776 | cpu: [x64] 777 | os: [darwin] 778 | requiresBuild: true 779 | dev: false 780 | optional: true 781 | 782 | /turbo-darwin-arm64@2.0.7: 783 | resolution: {integrity: sha512-h1JK8uuEjoHx1SvvTZiottj+4kDmiv+hivnLUzNwO75qKblMsd38IsFB0J2sMRz7JacFlf+3ry8SItznBW67Xw==} 784 | cpu: [arm64] 785 | os: [darwin] 786 | requiresBuild: true 787 | dev: false 788 | optional: true 789 | 790 | /turbo-linux-64@2.0.7: 791 | resolution: {integrity: sha512-dsr7GFeHAYVMnXWDDjhpsAQetejU4OlkNBRA5hfmnIcl2sSyOYa3EvoeJ6j5z5vTNIJ9VO4I1h0jK3lTjEoonA==} 792 | cpu: [x64] 793 | os: [linux] 794 | requiresBuild: true 795 | dev: false 796 | optional: true 797 | 798 | /turbo-linux-arm64@2.0.7: 799 | resolution: {integrity: sha512-bJbwXvyX1XPzY1jHgkqggls/L4yFyHVK8GGACF3kcg6x7lYV2SXkUYRyOC3WqzW7euqa9Zw/32jrIPP4Qy31Vw==} 800 | cpu: [arm64] 801 | os: [linux] 802 | requiresBuild: true 803 | dev: false 804 | optional: true 805 | 806 | /turbo-windows-64@2.0.7: 807 | resolution: {integrity: sha512-aBH+5A7IN957MqXMrw8xN0CWtH/fPFL+xTlloO6074Eaa8WfnctSAnaSujm6f4xF2T8lFx+ZprBvnO9oKvLQQQ==} 808 | cpu: [x64] 809 | os: [win32] 810 | requiresBuild: true 811 | dev: false 812 | optional: true 813 | 814 | /turbo-windows-arm64@2.0.7: 815 | resolution: {integrity: sha512-ButUCpO5nTi+jyTSIY2mQ9dVz+mCGxJ6sHyn0xGlNoJWdisKXb0BtWCLAjM26gg/yp9Kt1MBowMQyYVruPV0Qw==} 816 | cpu: [arm64] 817 | os: [win32] 818 | requiresBuild: true 819 | dev: false 820 | optional: true 821 | 822 | /turbo@2.0.7: 823 | resolution: {integrity: sha512-76iNWZpmKAKjj+yL0Wtcu2LpDIM5Nz7JS3fHOZPYS0AKuC2boJ24276VAiK4PKwbpBB//TYKDpSLuQ6cfR49pg==} 824 | hasBin: true 825 | optionalDependencies: 826 | turbo-darwin-64: 2.0.7 827 | turbo-darwin-arm64: 2.0.7 828 | turbo-linux-64: 2.0.7 829 | turbo-linux-arm64: 2.0.7 830 | turbo-windows-64: 2.0.7 831 | turbo-windows-arm64: 2.0.7 832 | dev: false 833 | 834 | /typescript@5.5.3: 835 | resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} 836 | engines: {node: '>=14.17'} 837 | hasBin: true 838 | dev: false 839 | 840 | /undici-types@5.26.5: 841 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 842 | dev: false 843 | 844 | /vite-node@2.0.3(@types/node@20.14.11): 845 | resolution: {integrity: sha512-14jzwMx7XTcMB+9BhGQyoEAmSl0eOr3nrnn+Z12WNERtOvLN+d2scbRUvyni05rT3997Bg+rZb47NyP4IQPKXg==} 846 | engines: {node: ^18.0.0 || >=20.0.0} 847 | hasBin: true 848 | dependencies: 849 | cac: 6.7.14 850 | debug: 4.3.5 851 | pathe: 1.1.2 852 | tinyrainbow: 1.2.0 853 | vite: 5.3.4(@types/node@20.14.11) 854 | transitivePeerDependencies: 855 | - '@types/node' 856 | - less 857 | - lightningcss 858 | - sass 859 | - stylus 860 | - sugarss 861 | - supports-color 862 | - terser 863 | dev: false 864 | 865 | /vite@5.3.4(@types/node@20.14.11): 866 | resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} 867 | engines: {node: ^18.0.0 || >=20.0.0} 868 | hasBin: true 869 | peerDependencies: 870 | '@types/node': ^18.0.0 || >=20.0.0 871 | less: '*' 872 | lightningcss: ^1.21.0 873 | sass: '*' 874 | stylus: '*' 875 | sugarss: '*' 876 | terser: ^5.4.0 877 | peerDependenciesMeta: 878 | '@types/node': 879 | optional: true 880 | less: 881 | optional: true 882 | lightningcss: 883 | optional: true 884 | sass: 885 | optional: true 886 | stylus: 887 | optional: true 888 | sugarss: 889 | optional: true 890 | terser: 891 | optional: true 892 | dependencies: 893 | '@types/node': 20.14.11 894 | esbuild: 0.21.5 895 | postcss: 8.4.39 896 | rollup: 4.18.1 897 | optionalDependencies: 898 | fsevents: 2.3.3 899 | dev: false 900 | 901 | /vitest@2.0.3(@types/node@20.14.11): 902 | resolution: {integrity: sha512-o3HRvU93q6qZK4rI2JrhKyZMMuxg/JRt30E6qeQs6ueaiz5hr1cPj+Sk2kATgQzMMqsa2DiNI0TIK++1ULx8Jw==} 903 | engines: {node: ^18.0.0 || >=20.0.0} 904 | hasBin: true 905 | peerDependencies: 906 | '@edge-runtime/vm': '*' 907 | '@types/node': ^18.0.0 || >=20.0.0 908 | '@vitest/browser': 2.0.3 909 | '@vitest/ui': 2.0.3 910 | happy-dom: '*' 911 | jsdom: '*' 912 | peerDependenciesMeta: 913 | '@edge-runtime/vm': 914 | optional: true 915 | '@types/node': 916 | optional: true 917 | '@vitest/browser': 918 | optional: true 919 | '@vitest/ui': 920 | optional: true 921 | happy-dom: 922 | optional: true 923 | jsdom: 924 | optional: true 925 | dependencies: 926 | '@ampproject/remapping': 2.3.0 927 | '@types/node': 20.14.11 928 | '@vitest/expect': 2.0.3 929 | '@vitest/pretty-format': 2.0.3 930 | '@vitest/runner': 2.0.3 931 | '@vitest/snapshot': 2.0.3 932 | '@vitest/spy': 2.0.3 933 | '@vitest/utils': 2.0.3 934 | chai: 5.1.1 935 | debug: 4.3.5 936 | execa: 8.0.1 937 | magic-string: 0.30.10 938 | pathe: 1.1.2 939 | std-env: 3.7.0 940 | tinybench: 2.8.0 941 | tinypool: 1.0.0 942 | tinyrainbow: 1.2.0 943 | vite: 5.3.4(@types/node@20.14.11) 944 | vite-node: 2.0.3(@types/node@20.14.11) 945 | why-is-node-running: 2.3.0 946 | transitivePeerDependencies: 947 | - less 948 | - lightningcss 949 | - sass 950 | - stylus 951 | - sugarss 952 | - supports-color 953 | - terser 954 | dev: false 955 | 956 | /which@2.0.2: 957 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 958 | engines: {node: '>= 8'} 959 | hasBin: true 960 | dependencies: 961 | isexe: 2.0.0 962 | dev: false 963 | 964 | /why-is-node-running@2.3.0: 965 | resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 966 | engines: {node: '>=8'} 967 | hasBin: true 968 | dependencies: 969 | siginfo: 2.0.0 970 | stackback: 0.0.2 971 | dev: false 972 | --------------------------------------------------------------------------------