diff --git a/package.json b/package.json index 7595476..ba07dbf 100644 --- a/package.json +++ b/package.json @@ -41,20 +41,20 @@ "test": "vitest" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.1", - "@typescript-eslint/parser": "^5.59.1", - "@vitest/coverage-c8": "^0.30.1", - "esbuild": "^0.17.18", - "eslint": "^8.39.0", + "@types/node": "20.11.24", + "@typescript-eslint/eslint-plugin": "^7.1.0", + "@typescript-eslint/parser": "^7.1.0", + "esbuild": "^0.20.1", + "eslint": "^8.57.0", "gzip-size": "^7.0.0", - "husky": "^8.0.3", - "lint-staged": "^13.2.2", - "prettier": "^2.8.8", - "pretty-bytes": "^6.1.0", - "typescript": "^5.0.4", - "vite": "^4.3.3", - "vite-plugin-dts": "^2.3.0", - "vitest": "^0.30.1" + "husky": "^9.0.11", + "lint-staged": "^15.2.2", + "prettier": "^3.2.5", + "pretty-bytes": "^6.1.1", + "typescript": "^5.3.3", + "vite": "^5.1.4", + "vite-plugin-dts": "^3.7.3", + "vitest": "^1.3.1" }, "prettier": { "singleQuote": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 008a58d..cc11284 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,100 +1,129 @@ -lockfileVersion: '6.0' +lockfileVersion: '7.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false devDependencies: + '@types/node': + specifier: 20.11.24 + version: 20.11.24 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.1 - version: 5.59.1(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4) + specifier: ^7.1.0 + version: 7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^5.59.1 - version: 5.59.1(eslint@8.39.0)(typescript@5.0.4) - '@vitest/coverage-c8': - specifier: ^0.30.1 - version: 0.30.1(vitest@0.30.1) + specifier: ^7.1.0 + version: 7.1.0(eslint@8.57.0)(typescript@5.3.3) esbuild: - specifier: ^0.17.18 - version: 0.17.18 + specifier: ^0.20.1 + version: 0.20.1 eslint: - specifier: ^8.39.0 - version: 8.39.0 + specifier: ^8.57.0 + version: 8.57.0 gzip-size: specifier: ^7.0.0 version: 7.0.0 husky: - specifier: ^8.0.3 - version: 8.0.3 + specifier: ^9.0.11 + version: 9.0.11 lint-staged: - specifier: ^13.2.2 - version: 13.2.2 + specifier: ^15.2.2 + version: 15.2.2 prettier: - specifier: ^2.8.8 - version: 2.8.8 + specifier: ^3.2.5 + version: 3.2.5 pretty-bytes: - specifier: ^6.1.0 - version: 6.1.0 + specifier: ^6.1.1 + version: 6.1.1 typescript: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.3.3 + version: 5.3.3 vite: - specifier: ^4.3.3 - version: 4.3.3(@types/node@18.11.18) + specifier: ^5.1.4 + version: 5.1.4(@types/node@20.11.24) vite-plugin-dts: - specifier: ^2.3.0 - version: 2.3.0(vite@4.3.3) + specifier: ^3.7.3 + version: 3.7.3(@types/node@20.11.24)(typescript@5.3.3)(vite@5.1.4(@types/node@20.11.24)) vitest: - specifier: ^0.30.1 - version: 0.30.1 + specifier: ^1.3.1 + version: 1.3.1(@types/node@20.11.24) packages: - /@babel/helper-string-parser@7.21.5: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: + { + integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, + } + engines: { node: '>=0.10.0' } + dev: true + + /@babel/helper-string-parser@7.23.4: resolution: { - integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==, + integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==, } engines: { node: '>=6.9.0' } dev: true - /@babel/helper-validator-identifier@7.19.1: + /@babel/helper-validator-identifier@7.22.20: resolution: { - integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, + integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, } engines: { node: '>=6.9.0' } dev: true - /@babel/parser@7.21.5: + /@babel/parser@7.23.9: resolution: { - integrity: sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==, + integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==, } engines: { node: '>=6.0.0' } hasBin: true dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.23.9 dev: true - /@babel/types@7.21.5: + /@babel/types@7.23.9: resolution: { - integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==, + integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==, } engines: { node: '>=6.9.0' } dependencies: - '@babel/helper-string-parser': 7.21.5 - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true - /@bcoe/v8-coverage@0.2.3: + /@esbuild/aix-ppc64@0.19.12: + resolution: + { + integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/aix-ppc64@0.20.1: resolution: { - integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==, + integrity: sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==, } + engines: { node: '>=12' } + cpu: [ppc64] + os: [aix] + requiresBuild: true dev: true + optional: true - /@esbuild/android-arm64@0.17.18: + /@esbuild/android-arm64@0.19.12: resolution: { - integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==, + integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==, } engines: { node: '>=12' } cpu: [arm64] @@ -103,10 +132,22 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.18: + /@esbuild/android-arm64@0.20.1: resolution: { - integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==, + integrity: sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: + { + integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==, } engines: { node: '>=12' } cpu: [arm] @@ -115,10 +156,22 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.17.18: + /@esbuild/android-arm@0.20.1: resolution: { - integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==, + integrity: sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: + { + integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==, } engines: { node: '>=12' } cpu: [x64] @@ -127,10 +180,22 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.17.18: + /@esbuild/android-x64@0.20.1: resolution: { - integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==, + integrity: sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: + { + integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==, } engines: { node: '>=12' } cpu: [arm64] @@ -139,10 +204,34 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.17.18: + /@esbuild/darwin-arm64@0.20.1: + resolution: + { + integrity: sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: + { + integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.20.1: resolution: { - integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==, + integrity: sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==, } engines: { node: '>=12' } cpu: [x64] @@ -151,10 +240,10 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.17.18: + /@esbuild/freebsd-arm64@0.19.12: resolution: { - integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==, + integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==, } engines: { node: '>=12' } cpu: [arm64] @@ -163,10 +252,22 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.17.18: + /@esbuild/freebsd-arm64@0.20.1: resolution: { - integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==, + integrity: sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: + { + integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==, } engines: { node: '>=12' } cpu: [x64] @@ -175,10 +276,34 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.17.18: + /@esbuild/freebsd-x64@0.20.1: + resolution: + { + integrity: sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: + { + integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.20.1: resolution: { - integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==, + integrity: sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==, } engines: { node: '>=12' } cpu: [arm64] @@ -187,10 +312,22 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.17.18: + /@esbuild/linux-arm@0.19.12: + resolution: + { + integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.20.1: resolution: { - integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==, + integrity: sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==, } engines: { node: '>=12' } cpu: [arm] @@ -199,10 +336,10 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.17.18: + /@esbuild/linux-ia32@0.19.12: resolution: { - integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==, + integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==, } engines: { node: '>=12' } cpu: [ia32] @@ -211,10 +348,22 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.18: + /@esbuild/linux-ia32@0.20.1: resolution: { - integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==, + integrity: sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: + { + integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==, } engines: { node: '>=12' } cpu: [loong64] @@ -223,10 +372,34 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.17.18: + /@esbuild/linux-loong64@0.20.1: + resolution: + { + integrity: sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==, + } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.12: + resolution: + { + integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==, + } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.20.1: resolution: { - integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==, + integrity: sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==, } engines: { node: '>=12' } cpu: [mips64el] @@ -235,10 +408,10 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.17.18: + /@esbuild/linux-ppc64@0.19.12: resolution: { - integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==, + integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==, } engines: { node: '>=12' } cpu: [ppc64] @@ -247,10 +420,22 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.17.18: + /@esbuild/linux-ppc64@0.20.1: resolution: { - integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==, + integrity: sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: + { + integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==, } engines: { node: '>=12' } cpu: [riscv64] @@ -259,10 +444,34 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.17.18: + /@esbuild/linux-riscv64@0.20.1: + resolution: + { + integrity: sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==, + } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: + { + integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==, + } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.20.1: resolution: { - integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==, + integrity: sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==, } engines: { node: '>=12' } cpu: [s390x] @@ -271,10 +480,10 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.17.18: + /@esbuild/linux-x64@0.19.12: resolution: { - integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==, + integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==, } engines: { node: '>=12' } cpu: [x64] @@ -283,10 +492,34 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.17.18: + /@esbuild/linux-x64@0.20.1: + resolution: + { + integrity: sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.12: + resolution: + { + integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.20.1: resolution: { - integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==, + integrity: sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==, } engines: { node: '>=12' } cpu: [x64] @@ -295,10 +528,22 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.17.18: + /@esbuild/openbsd-x64@0.19.12: + resolution: + { + integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.20.1: resolution: { - integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==, + integrity: sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==, } engines: { node: '>=12' } cpu: [x64] @@ -307,10 +552,22 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.17.18: + /@esbuild/sunos-x64@0.19.12: + resolution: + { + integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.20.1: resolution: { - integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==, + integrity: sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==, } engines: { node: '>=12' } cpu: [x64] @@ -319,10 +576,10 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.17.18: + /@esbuild/win32-arm64@0.19.12: resolution: { - integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==, + integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==, } engines: { node: '>=12' } cpu: [arm64] @@ -331,10 +588,22 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.17.18: + /@esbuild/win32-arm64@0.20.1: resolution: { - integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==, + integrity: sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.12: + resolution: + { + integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==, } engines: { node: '>=12' } cpu: [ia32] @@ -343,10 +612,22 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.17.18: + /@esbuild/win32-ia32@0.20.1: resolution: { - integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==, + integrity: sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.12: + resolution: + { + integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==, } engines: { node: '>=12' } cpu: [x64] @@ -355,7 +636,19 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): + /@esbuild/win32-x64@0.20.1: + resolution: + { + integrity: sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: { integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, @@ -364,30 +657,30 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.39.0 - eslint-visitor-keys: 3.4.0 + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.5.0: + /@eslint-community/regexpp@4.10.0: resolution: { - integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==, + integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, } engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } dev: true - /@eslint/eslintrc@2.0.2: + /@eslint/eslintrc@2.1.4: resolution: { - integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==, + integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.5.1 - globals: 13.20.0 - ignore: 5.2.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -396,22 +689,22 @@ packages: - supports-color dev: true - /@eslint/js@8.39.0: + /@eslint/js@8.57.0: resolution: { - integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==, + integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true - /@humanwhocodes/config-array@0.11.8: + /@humanwhocodes/config-array@0.11.14: resolution: { - integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==, + integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, } engines: { node: '>=10.10.0' } dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -426,78 +719,62 @@ packages: engines: { node: '>=12.22' } dev: true - /@humanwhocodes/object-schema@1.2.1: + /@humanwhocodes/object-schema@2.0.2: resolution: { - integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, + integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==, } dev: true - /@istanbuljs/schema@0.1.3: + /@jest/schemas@29.6.3: resolution: { - integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, - } - engines: { node: '>=8' } - dev: true - - /@jridgewell/resolve-uri@3.1.0: - resolution: - { - integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, - } - engines: { node: '>=6.0.0' } - dev: true - - /@jridgewell/sourcemap-codec@1.4.14: - resolution: - { - integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, + integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + dependencies: + '@sinclair/typebox': 0.27.8 dev: true - /@jridgewell/trace-mapping@0.3.17: + /@jridgewell/sourcemap-codec@1.4.15: resolution: { - integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, } - dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@microsoft/api-extractor-model@7.26.6: + /@microsoft/api-extractor-model@7.28.3(@types/node@20.11.24): resolution: { - integrity: sha512-vacINIUTAwtN6W2fMbO/JORR8sVfq+DxS++ewSeqy0AM9a55IgMXC04p31IB3vShaFnozcjHLxTOD/eWom0dXA==, + integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==, } dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.57.0 + '@rushstack/node-core-library': 3.62.0(@types/node@20.11.24) transitivePeerDependencies: - '@types/node' dev: true - /@microsoft/api-extractor@7.34.6: + /@microsoft/api-extractor@7.39.0(@types/node@20.11.24): resolution: { - integrity: sha512-TBbJZjUSt4vWjBchnkfmHwmQlwhMfavXIGbuSzN3QJV5n1oqKY+RtkYMEmLtW01OAJ6QsWFVx4tLHHsh608YQw==, + integrity: sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==, } hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.26.6 + '@microsoft/api-extractor-model': 7.28.3(@types/node@20.11.24) '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.57.0 - '@rushstack/rig-package': 0.3.18 - '@rushstack/ts-command-line': 4.13.2 + '@rushstack/node-core-library': 3.62.0(@types/node@20.11.24) + '@rushstack/rig-package': 0.5.1 + '@rushstack/ts-command-line': 4.17.1 colors: 1.2.5 lodash: 4.17.21 - resolve: 1.22.1 - semver: 7.3.8 + resolve: 1.22.8 + semver: 7.5.4 source-map: 0.6.1 - typescript: 4.8.4 + typescript: 5.3.3 transitivePeerDependencies: - '@types/node' dev: true @@ -532,46 +809,189 @@ packages: run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat@2.0.5: + /@nodelib/fs.stat@2.0.5: + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: '>= 8' } + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: '>= 8' } + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@rollup/pluginutils@5.1.0: + resolution: + { + integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==, + } + engines: { node: '>=14.0.0' } + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.12.0: + resolution: + { + integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==, + } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.12.0: + resolution: + { + integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==, + } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.12.0: + resolution: + { + integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==, + } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.12.0: + resolution: + { + integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==, + } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.12.0: + resolution: + { + integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==, + } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.12.0: + resolution: + { + integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==, + } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.12.0: + resolution: + { + integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==, + } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.12.0: + resolution: + { + integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==, + } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.12.0: + resolution: + { + integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.12.0: + resolution: + { + integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.12.0: resolution: { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==, } - engines: { node: '>= 8' } + cpu: [arm64] + os: [win32] + requiresBuild: true dev: true + optional: true - /@nodelib/fs.walk@1.2.8: + /@rollup/rollup-win32-ia32-msvc@4.12.0: resolution: { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==, } - engines: { node: '>= 8' } - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + cpu: [ia32] + os: [win32] + requiresBuild: true dev: true + optional: true - /@rollup/pluginutils@5.0.2: + /@rollup/rollup-win32-x64-msvc@4.12.0: resolution: { - integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==, + integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==, } - engines: { node: '>=14.0.0' } - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.0 - estree-walker: 2.0.2 - picomatch: 2.3.1 + cpu: [x64] + os: [win32] + requiresBuild: true dev: true + optional: true - /@rushstack/node-core-library@3.57.0: + /@rushstack/node-core-library@3.62.0(@types/node@20.11.24): resolution: { - integrity: sha512-uR5I9vLJuknliZXDDqW7nBtiKSO0fYOnvNEUNPQ84rmFYbvDWQGTDx7MREMVGXhfEN5J50xzAtGTPC9xdbia6g==, + integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==, } peerDependencies: '@types/node': '*' @@ -579,47 +999,43 @@ packages: '@types/node': optional: true dependencies: + '@types/node': 20.11.24 colors: 1.2.5 fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.1 - semver: 7.3.8 + resolve: 1.22.8 + semver: 7.5.4 z-schema: 5.0.5 dev: true - /@rushstack/rig-package@0.3.18: + /@rushstack/rig-package@0.5.1: resolution: { - integrity: sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ==, + integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==, } dependencies: - resolve: 1.22.1 + resolve: 1.22.8 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line@4.13.2: + /@rushstack/ts-command-line@4.17.1: resolution: { - integrity: sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag==, + integrity: sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==, } dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 colors: 1.2.5 - string-argv: 0.3.1 + string-argv: 0.3.2 dev: true - /@ts-morph/common@0.19.0: + /@sinclair/typebox@0.27.8: resolution: { - integrity: sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==, + integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, } - dependencies: - fast-glob: 3.2.12 - minimatch: 7.4.6 - mkdirp: 2.1.6 - path-browserify: 1.0.1 dev: true /@types/argparse@1.0.38: @@ -629,316 +1045,360 @@ packages: } dev: true - /@types/chai-subset@1.3.3: - resolution: - { - integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==, - } - dependencies: - '@types/chai': 4.3.4 - dev: true - - /@types/chai@4.3.4: - resolution: - { - integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==, - } - dev: true - - /@types/estree@1.0.0: - resolution: - { - integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==, - } - dev: true - - /@types/istanbul-lib-coverage@2.0.4: + /@types/estree@1.0.5: resolution: { - integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==, + integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, } dev: true - /@types/json-schema@7.0.11: + /@types/json-schema@7.0.15: resolution: { - integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, } dev: true - /@types/node@18.11.18: + /@types/node@20.11.24: resolution: { - integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==, + integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==, } + dependencies: + undici-types: 5.26.5 dev: true - /@types/semver@7.3.13: + /@types/semver@7.5.8: resolution: { - integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, + integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==, } dev: true - /@typescript-eslint/eslint-plugin@5.59.1(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3): resolution: { - integrity: sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==, + integrity: sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.0 - '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/scope-manager': 5.59.1 - '@typescript-eslint/type-utils': 5.59.1(eslint@8.39.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.1.0 + '@typescript-eslint/type-utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.0 debug: 4.3.4 - eslint: 8.39.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.59.1(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3): resolution: { - integrity: sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==, + integrity: sha512-V1EknKUubZ1gWFjiOZhDSNToOjs63/9O0puCgGS8aDOgpZY326fzFu15QAUjwaXzRZjf/qdsdBrckYdv9YxB8w==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.1 - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/typescript-estree': 5.59.1(typescript@5.0.4) + '@typescript-eslint/scope-manager': 7.1.0 + '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.0 debug: 4.3.4 - eslint: 8.39.0 - typescript: 5.0.4 + eslint: 8.57.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.1: + /@typescript-eslint/scope-manager@7.1.0: resolution: { - integrity: sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==, + integrity: sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/visitor-keys': 5.59.1 + '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/visitor-keys': 7.1.0 dev: true - /@typescript-eslint/type-utils@5.59.1(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): resolution: { - integrity: sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==, + integrity: sha512-UZIhv8G+5b5skkcuhgvxYWHjk7FW7/JP5lPASMEUoliAPwIH/rxoUSQPia2cuOj9AmDZmwUl1usKm85t5VUMew==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - eslint: '*' + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.1(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.39.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + eslint: 8.57.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.59.1: + /@typescript-eslint/types@7.1.0: resolution: { - integrity: sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==, + integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } dev: true - /@typescript-eslint/typescript-estree@5.59.1(typescript@5.0.4): + /@typescript-eslint/typescript-estree@7.1.0(typescript@5.3.3): resolution: { - integrity: sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==, + integrity: sha512-k7MyrbD6E463CBbSpcOnwa8oXRdHzH1WiVzOipK3L5KSML92ZKgUBrTlehdi7PEIMT8k0bQixHUGXggPAlKnOQ==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/visitor-keys': 5.59.1 + '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/visitor-keys': 7.1.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.59.1(eslint@8.39.0)(typescript@5.0.4): + /@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): resolution: { - integrity: sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==, + integrity: sha512-WUFba6PZC5OCGEmbweGpnNJytJiLG7ZvDBJJoUcX4qZYf1mGZ97mO2Mps6O2efxJcJdRNpqweCistDbZMwIVHw==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.59.1 - '@typescript-eslint/types': 5.59.1 - '@typescript-eslint/typescript-estree': 5.59.1(typescript@5.0.4) - eslint: 8.39.0 - eslint-scope: 5.1.1 - semver: 7.3.8 + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.1.0 + '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) + eslint: 8.57.0 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.59.1: + /@typescript-eslint/visitor-keys@7.1.0: resolution: { - integrity: sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==, + integrity: sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - '@typescript-eslint/types': 5.59.1 - eslint-visitor-keys: 3.4.0 + '@typescript-eslint/types': 7.1.0 + eslint-visitor-keys: 3.4.3 dev: true - /@vitest/coverage-c8@0.30.1(vitest@0.30.1): + /@ungap/structured-clone@1.2.0: resolution: { - integrity: sha512-/Wa3dtSuckpdngAmiCwowaEXXgJkqPrtfvrs9HTB9QoEfNbZWPu4E4cjEn4lJZb4qcGf4fxFtUA2f9DnDNAzBA==, + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, + } + dev: true + + /@vitest/expect@1.3.1: + resolution: + { + integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==, } - peerDependencies: - vitest: '>=0.30.0 <1' dependencies: - c8: 7.13.0 - picocolors: 1.0.0 - std-env: 3.3.2 - vitest: 0.30.1 + '@vitest/spy': 1.3.1 + '@vitest/utils': 1.3.1 + chai: 4.4.1 dev: true - /@vitest/expect@0.30.1: + /@vitest/runner@1.3.1: resolution: { - integrity: sha512-c3kbEtN8XXJSeN81iDGq29bUzSjQhjES2WR3aColsS4lPGbivwLtas4DNUe0jD9gg/FYGIteqOenfU95EFituw==, + integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==, } dependencies: - '@vitest/spy': 0.30.1 - '@vitest/utils': 0.30.1 - chai: 4.3.7 + '@vitest/utils': 1.3.1 + p-limit: 5.0.0 + pathe: 1.1.2 dev: true - /@vitest/runner@0.30.1: + /@vitest/snapshot@1.3.1: resolution: { - integrity: sha512-W62kT/8i0TF1UBCNMRtRMOBWJKRnNyv9RrjIgdUryEe0wNpGZvvwPDLuzYdxvgSckzjp54DSpv1xUbv4BQ0qVA==, + integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==, } dependencies: - '@vitest/utils': 0.30.1 - concordance: 5.0.4 - p-limit: 4.0.0 - pathe: 1.1.0 + magic-string: 0.30.7 + pathe: 1.1.2 + pretty-format: 29.7.0 dev: true - /@vitest/snapshot@0.30.1: + /@vitest/spy@1.3.1: resolution: { - integrity: sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==, + integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==, } dependencies: - magic-string: 0.30.0 - pathe: 1.1.0 - pretty-format: 27.5.1 + tinyspy: 2.2.1 dev: true - /@vitest/spy@0.30.1: + /@vitest/utils@1.3.1: resolution: { - integrity: sha512-YfJeIf37GvTZe04ZKxzJfnNNuNSmTEGnla2OdL60C8od16f3zOfv9q9K0nNii0NfjDJRt/CVN/POuY5/zTS+BA==, + integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==, } dependencies: - tinyspy: 2.1.0 + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 dev: true - /@vitest/utils@0.30.1: + /@volar/language-core@1.11.1: resolution: { - integrity: sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==, + integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==, } dependencies: - concordance: 5.0.4 - loupe: 2.3.6 - pretty-format: 27.5.1 + '@volar/source-map': 1.11.1 dev: true - /acorn-jsx@5.3.2(acorn@8.8.2): + /@volar/source-map@1.11.1: resolution: { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==, + } + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.11.1: + resolution: + { + integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==, + } + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + dev: true + + /@vue/compiler-core@3.4.19: + resolution: + { + integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==, + } + dependencies: + '@babel/parser': 7.23.9 + '@vue/shared': 3.4.19 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom@3.4.19: + resolution: + { + integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==, + } + dependencies: + '@vue/compiler-core': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/language-core@1.8.27(typescript@5.3.3): + resolution: + { + integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==, } peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - acorn: 8.8.2 + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.3.3 + vue-template-compiler: 2.7.16 dev: true - /acorn-walk@8.2.0: + /@vue/shared@3.4.19: resolution: { - integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, + integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==, } - engines: { node: '>=0.4.0' } dev: true - /acorn@8.8.2: + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn-walk@8.3.2: resolution: { - integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, + integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==, } engines: { node: '>=0.4.0' } - hasBin: true dev: true - /aggregate-error@3.1.0: + /acorn@8.11.3: resolution: { - integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, + integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, } - engines: { node: '>=8' } - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 + engines: { node: '>=0.4.0' } + hasBin: true dev: true /ajv@6.12.6: @@ -953,14 +1413,14 @@ packages: uri-js: 4.4.1 dev: true - /ansi-escapes@4.3.2: + /ansi-escapes@6.2.0: resolution: { - integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, + integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==, } - engines: { node: '>=8' } + engines: { node: '>=14.16' } dependencies: - type-fest: 0.21.3 + type-fest: 3.13.1 dev: true /ansi-regex@5.0.1: @@ -1036,14 +1496,6 @@ packages: } dev: true - /astral-regex@2.0.0: - resolution: - { - integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, - } - engines: { node: '>=8' } - dev: true - /balanced-match@1.0.2: resolution: { @@ -1051,13 +1503,6 @@ packages: } dev: true - /blueimp-md5@2.19.0: - resolution: - { - integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==, - } - dev: true - /brace-expansion@1.1.11: resolution: { @@ -1087,28 +1532,6 @@ packages: fill-range: 7.0.1 dev: true - /c8@7.13.0: - resolution: - { - integrity: sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==, - } - engines: { node: '>=10.12.0' } - hasBin: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@istanbuljs/schema': 0.1.3 - find-up: 5.0.0 - foreground-child: 2.0.0 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.5 - rimraf: 3.0.2 - test-exclude: 6.0.0 - v8-to-istanbul: 9.0.1 - yargs: 16.2.0 - yargs-parser: 20.2.9 - dev: true - /cac@6.7.14: resolution: { @@ -1125,18 +1548,18 @@ packages: engines: { node: '>=6' } dev: true - /chai@4.3.7: + /chai@4.4.1: resolution: { - integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==, + integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==, } engines: { node: '>=4' } dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 - loupe: 2.3.6 + get-func-name: 2.0.2 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -1152,77 +1575,42 @@ packages: supports-color: 7.2.0 dev: true - /chalk@5.2.0: + /chalk@5.3.0: resolution: { - integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==, + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, } engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } dev: true - /check-error@1.0.2: - resolution: - { - integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==, - } - dev: true - - /clean-stack@2.2.0: - resolution: - { - integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, - } - engines: { node: '>=6' } - dev: true - - /cli-cursor@3.1.0: - resolution: - { - integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, - } - engines: { node: '>=8' } - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-truncate@2.1.0: + /check-error@1.0.3: resolution: { - integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==, + integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==, } - engines: { node: '>=8' } dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 + get-func-name: 2.0.2 dev: true - /cli-truncate@3.1.0: + /cli-cursor@4.0.0: resolution: { - integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, + integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, } engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 + restore-cursor: 4.0.0 dev: true - /cliui@7.0.4: + /cli-truncate@4.0.0: resolution: { - integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, + integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==, } + engines: { node: '>=18' } dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - - /code-block-writer@12.0.0: - resolution: - { - integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==, - } + slice-ansi: 5.0.0 + string-width: 7.1.0 dev: true /color-convert@2.0.1: @@ -1242,10 +1630,10 @@ packages: } dev: true - /colorette@2.0.19: + /colorette@2.0.20: resolution: { - integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==, + integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, } dev: true @@ -1257,12 +1645,12 @@ packages: engines: { node: '>=0.1.90' } dev: true - /commander@10.0.1: + /commander@11.1.0: resolution: { - integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==, + integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, } - engines: { node: '>=14' } + engines: { node: '>=16' } dev: true /commander@9.5.0: @@ -1275,34 +1663,17 @@ packages: dev: true optional: true - /concat-map@0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - } - dev: true - - /concordance@5.0.4: + /computeds@0.0.1: resolution: { - integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==, + integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==, } - engines: { node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14' } - dependencies: - date-time: 3.1.0 - esutils: 2.0.3 - fast-diff: 1.2.0 - js-string-escape: 1.0.1 - lodash: 4.17.21 - md5-hex: 3.0.1 - semver: 7.3.8 - well-known-symbols: 2.0.0 dev: true - /convert-source-map@1.9.0: + /concat-map@0.0.1: resolution: { - integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, } dev: true @@ -1318,14 +1689,11 @@ packages: which: 2.0.2 dev: true - /date-time@3.1.0: + /de-indent@1.0.2: resolution: { - integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==, + integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, } - engines: { node: '>=6' } - dependencies: - time-zone: 1.0.0 dev: true /debug@4.3.4: @@ -1360,6 +1728,14 @@ packages: } dev: true + /diff-sequences@29.6.3: + resolution: + { + integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + dev: true + /dir-glob@3.0.1: resolution: { @@ -1387,66 +1763,87 @@ packages: } dev: true - /eastasianwidth@0.2.0: - resolution: - { - integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, - } - dev: true - - /emoji-regex@8.0.0: + /emoji-regex@10.3.0: resolution: { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==, } dev: true - /emoji-regex@9.2.2: + /entities@4.5.0: resolution: { - integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, } + engines: { node: '>=0.12' } dev: true - /esbuild@0.17.18: + /esbuild@0.19.12: resolution: { - integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==, + integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==, } engines: { node: '>=12' } hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.18 - '@esbuild/android-arm64': 0.17.18 - '@esbuild/android-x64': 0.17.18 - '@esbuild/darwin-arm64': 0.17.18 - '@esbuild/darwin-x64': 0.17.18 - '@esbuild/freebsd-arm64': 0.17.18 - '@esbuild/freebsd-x64': 0.17.18 - '@esbuild/linux-arm': 0.17.18 - '@esbuild/linux-arm64': 0.17.18 - '@esbuild/linux-ia32': 0.17.18 - '@esbuild/linux-loong64': 0.17.18 - '@esbuild/linux-mips64el': 0.17.18 - '@esbuild/linux-ppc64': 0.17.18 - '@esbuild/linux-riscv64': 0.17.18 - '@esbuild/linux-s390x': 0.17.18 - '@esbuild/linux-x64': 0.17.18 - '@esbuild/netbsd-x64': 0.17.18 - '@esbuild/openbsd-x64': 0.17.18 - '@esbuild/sunos-x64': 0.17.18 - '@esbuild/win32-arm64': 0.17.18 - '@esbuild/win32-ia32': 0.17.18 - '@esbuild/win32-x64': 0.17.18 - dev: true - - /escalade@3.1.1: - resolution: - { - integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: true + + /esbuild@0.20.1: + resolution: + { + integrity: sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==, } - engines: { node: '>=6' } + engines: { node: '>=12' } + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.1 + '@esbuild/android-arm': 0.20.1 + '@esbuild/android-arm64': 0.20.1 + '@esbuild/android-x64': 0.20.1 + '@esbuild/darwin-arm64': 0.20.1 + '@esbuild/darwin-x64': 0.20.1 + '@esbuild/freebsd-arm64': 0.20.1 + '@esbuild/freebsd-x64': 0.20.1 + '@esbuild/linux-arm': 0.20.1 + '@esbuild/linux-arm64': 0.20.1 + '@esbuild/linux-ia32': 0.20.1 + '@esbuild/linux-loong64': 0.20.1 + '@esbuild/linux-mips64el': 0.20.1 + '@esbuild/linux-ppc64': 0.20.1 + '@esbuild/linux-riscv64': 0.20.1 + '@esbuild/linux-s390x': 0.20.1 + '@esbuild/linux-x64': 0.20.1 + '@esbuild/netbsd-x64': 0.20.1 + '@esbuild/openbsd-x64': 0.20.1 + '@esbuild/sunos-x64': 0.20.1 + '@esbuild/win32-arm64': 0.20.1 + '@esbuild/win32-ia32': 0.20.1 + '@esbuild/win32-x64': 0.20.1 dev: true /escape-string-regexp@4.0.0: @@ -1457,21 +1854,10 @@ packages: engines: { node: '>=10' } dev: true - /eslint-scope@5.1.1: - resolution: - { - integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, - } - engines: { node: '>=8.0.0' } - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-scope@7.2.0: + /eslint-scope@7.2.2: resolution: { - integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==, + integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: @@ -1479,76 +1865,74 @@ packages: estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.0: + /eslint-visitor-keys@3.4.3: resolution: { - integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==, + integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true - /eslint@8.39.0: + /eslint@8.57.0: resolution: { - integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==, + integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) - '@eslint-community/regexpp': 4.5.0 - '@eslint/eslintrc': 2.0.2 - '@eslint/js': 8.39.0 - '@humanwhocodes/config-array': 0.11.8 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.0 - espree: 9.5.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-sdsl: 4.3.0 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 + optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: true - /espree@9.5.1: + /espree@9.6.1: resolution: { - integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==, + integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.0 + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 dev: true /esquery@1.5.0: @@ -1571,27 +1955,28 @@ packages: estraverse: 5.3.0 dev: true - /estraverse@4.3.0: + /estraverse@5.3.0: resolution: { - integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, } engines: { node: '>=4.0' } dev: true - /estraverse@5.3.0: + /estree-walker@2.0.2: resolution: { - integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, } - engines: { node: '>=4.0' } dev: true - /estree-walker@2.0.2: + /estree-walker@3.0.3: resolution: { - integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, } + dependencies: + '@types/estree': 1.0.5 dev: true /esutils@2.0.3: @@ -1602,21 +1987,28 @@ packages: engines: { node: '>=0.10.0' } dev: true - /execa@7.1.1: + /eventemitter3@5.0.1: + resolution: + { + integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, + } + dev: true + + /execa@8.0.1: resolution: { - integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==, + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, } - engines: { node: ^14.18.0 || ^16.14.0 || >=18.0.0 } + engines: { node: '>=16.17' } dependencies: cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 + get-stream: 8.0.1 + human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.3.0 onetime: 6.0.0 - signal-exit: 3.0.7 + signal-exit: 4.1.0 strip-final-newline: 3.0.0 dev: true @@ -1627,17 +2019,10 @@ packages: } dev: true - /fast-diff@1.2.0: - resolution: - { - integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==, - } - dev: true - - /fast-glob@3.2.12: + /fast-glob@3.3.2: resolution: { - integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, } engines: { node: '>=8.6.0' } dependencies: @@ -1662,10 +2047,10 @@ packages: } dev: true - /fastq@1.15.0: + /fastq@1.17.1: resolution: { - integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, + integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, } dependencies: reusify: 1.0.4 @@ -1678,7 +2063,7 @@ packages: } engines: { node: ^10.12.0 || >=12.0.0 } dependencies: - flat-cache: 3.0.4 + flat-cache: 3.2.0 dev: true /fill-range@7.0.1: @@ -1702,47 +2087,25 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.0.4: + /flat-cache@3.2.0: resolution: { - integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, + integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, } engines: { node: ^10.12.0 || >=12.0.0 } dependencies: - flatted: 3.2.7 + flatted: 3.3.1 + keyv: 4.5.4 rimraf: 3.0.2 dev: true - /flatted@3.2.7: + /flatted@3.3.1: resolution: { - integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, + integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, } dev: true - /foreground-child@2.0.0: - resolution: - { - integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==, - } - engines: { node: '>=8.0.0' } - dependencies: - cross-spawn: 7.0.3 - signal-exit: 3.0.7 - dev: true - - /fs-extra@10.1.0: - resolution: - { - integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, - } - engines: { node: '>=12' } - dependencies: - graceful-fs: 4.2.10 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - /fs-extra@7.0.1: resolution: { @@ -1750,7 +2113,7 @@ packages: } engines: { node: '>=6 <7 || >=8' } dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 dev: true @@ -1762,10 +2125,10 @@ packages: } dev: true - /fsevents@2.3.2: + /fsevents@2.3.3: resolution: { - integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, } engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] @@ -1773,34 +2136,34 @@ packages: dev: true optional: true - /function-bind@1.1.1: + /function-bind@1.1.2: resolution: { - integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, } dev: true - /get-caller-file@2.0.5: + /get-east-asian-width@1.2.0: resolution: { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==, } - engines: { node: 6.* || 8.* || >= 10.* } + engines: { node: '>=18' } dev: true - /get-func-name@2.0.0: + /get-func-name@2.0.2: resolution: { - integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, + integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==, } dev: true - /get-stream@6.0.1: + /get-stream@8.0.1: resolution: { - integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, } - engines: { node: '>=10' } + engines: { node: '>=16' } dev: true /glob-parent@5.1.2: @@ -1837,10 +2200,10 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals@13.20.0: + /globals@13.24.0: resolution: { - integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==, + integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, } engines: { node: '>=8' } dependencies: @@ -1856,23 +2219,23 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 dev: true - /graceful-fs@4.2.10: + /graceful-fs@4.2.11: resolution: { - integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, } dev: true - /grapheme-splitter@1.0.4: + /graphemer@1.4.0: resolution: { - integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, + integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, } dev: true @@ -1894,44 +2257,45 @@ packages: engines: { node: '>=8' } dev: true - /has@1.0.3: + /hasown@2.0.1: resolution: { - integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, + integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==, } - engines: { node: '>= 0.4.0' } + engines: { node: '>= 0.4' } dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 dev: true - /html-escaper@2.0.2: + /he@1.2.0: resolution: { - integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, + integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, } + hasBin: true dev: true - /human-signals@4.3.1: + /human-signals@5.0.0: resolution: { - integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, } - engines: { node: '>=14.18.0' } + engines: { node: '>=16.17.0' } dev: true - /husky@8.0.3: + /husky@9.0.11: resolution: { - integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, + integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==, } - engines: { node: '>=14' } + engines: { node: '>=18' } hasBin: true dev: true - /ignore@5.2.4: + /ignore@5.3.1: resolution: { - integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, + integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==, } engines: { node: '>= 4' } dev: true @@ -1963,14 +2327,6 @@ packages: engines: { node: '>=0.8.19' } dev: true - /indent-string@4.0.0: - resolution: - { - integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, - } - engines: { node: '>=8' } - dev: true - /inflight@1.0.6: resolution: { @@ -1988,13 +2344,13 @@ packages: } dev: true - /is-core-module@2.11.0: + /is-core-module@2.13.1: resolution: { - integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, } dependencies: - has: 1.0.3 + hasown: 2.0.1 dev: true /is-extglob@2.1.1: @@ -2005,20 +2361,22 @@ packages: engines: { node: '>=0.10.0' } dev: true - /is-fullwidth-code-point@3.0.0: + /is-fullwidth-code-point@4.0.0: resolution: { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, } - engines: { node: '>=8' } + engines: { node: '>=12' } dev: true - /is-fullwidth-code-point@4.0.0: + /is-fullwidth-code-point@5.0.0: resolution: { - integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, + integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==, } - engines: { node: '>=12' } + engines: { node: '>=18' } + dependencies: + get-east-asian-width: 1.2.0 dev: true /is-glob@4.0.3: @@ -2062,37 +2420,6 @@ packages: } dev: true - /istanbul-lib-coverage@3.2.0: - resolution: - { - integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==, - } - engines: { node: '>=8' } - dev: true - - /istanbul-lib-report@3.0.0: - resolution: - { - integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==, - } - engines: { node: '>=8' } - dependencies: - istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 - supports-color: 7.2.0 - dev: true - - /istanbul-reports@3.1.5: - resolution: - { - integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==, - } - engines: { node: '>=8' } - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 - dev: true - /jju@1.4.0: resolution: { @@ -2100,19 +2427,11 @@ packages: } dev: true - /js-sdsl@4.3.0: - resolution: - { - integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==, - } - dev: true - - /js-string-escape@1.0.1: + /js-tokens@8.0.3: resolution: { - integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==, + integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==, } - engines: { node: '>= 0.8' } dev: true /js-yaml@4.1.0: @@ -2125,6 +2444,13 @@ packages: argparse: 2.0.1 dev: true + /json-buffer@3.0.1: + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } + dev: true + /json-schema-traverse@0.4.1: resolution: { @@ -2139,10 +2465,10 @@ packages: } dev: true - /jsonc-parser@3.2.0: + /jsonc-parser@3.2.1: resolution: { - integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, + integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==, } dev: true @@ -2152,24 +2478,22 @@ packages: integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, } optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 dev: true - /jsonfile@6.1.0: + /keyv@4.5.4: resolution: { - integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, } dependencies: - universalify: 2.0.0 - optionalDependencies: - graceful-fs: 4.2.10 + json-buffer: 3.0.1 dev: true - /kolorist@1.7.0: + /kolorist@1.8.0: resolution: { - integrity: sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==, + integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, } dev: true @@ -2184,68 +2508,60 @@ packages: type-check: 0.4.0 dev: true - /lilconfig@2.1.0: + /lilconfig@3.0.0: resolution: { - integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==, } - engines: { node: '>=10' } + engines: { node: '>=14' } dev: true - /lint-staged@13.2.2: + /lint-staged@15.2.2: resolution: { - integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==, + integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==, } - engines: { node: ^14.13.1 || >=16.0.0 } + engines: { node: '>=18.12.0' } hasBin: true dependencies: - chalk: 5.2.0 - cli-truncate: 3.1.0 - commander: 10.0.1 + chalk: 5.3.0 + commander: 11.1.0 debug: 4.3.4 - execa: 7.1.1 - lilconfig: 2.1.0 - listr2: 5.0.7 + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.1 micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 pidtree: 0.6.0 - string-argv: 0.3.1 - yaml: 2.2.2 + string-argv: 0.3.2 + yaml: 2.3.4 transitivePeerDependencies: - - enquirer - supports-color dev: true - /listr2@5.0.7: + /listr2@8.0.1: resolution: { - integrity: sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==, + integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==, } - engines: { node: ^14.13.1 || >=16.0.0 } - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true + engines: { node: '>=18.0.0' } dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.19 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.3.0 - rxjs: 7.8.0 - through: 2.3.8 - wrap-ansi: 7.0.0 + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.3.1 + wrap-ansi: 9.0.0 dev: true - /local-pkg@0.4.3: + /local-pkg@0.5.0: resolution: { - integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==, + integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==, } engines: { node: '>=14' } + dependencies: + mlly: 1.6.1 + pkg-types: 1.0.3 dev: true /locate-path@6.0.0: @@ -2286,26 +2602,27 @@ packages: } dev: true - /log-update@4.0.0: + /log-update@6.0.0: resolution: { - integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==, + integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==, } - engines: { node: '>=10' } + engines: { node: '>=18' } dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 + ansi-escapes: 6.2.0 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 dev: true - /loupe@2.3.6: + /loupe@2.3.7: resolution: { - integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==, + integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==, } dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 dev: true /lru-cache@6.0.0: @@ -2318,44 +2635,14 @@ packages: yallist: 4.0.0 dev: true - /magic-string@0.29.0: - resolution: - { - integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==, - } - engines: { node: '>=12' } - dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true - - /magic-string@0.30.0: + /magic-string@0.30.7: resolution: { - integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==, + integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==, } engines: { node: '>=12' } dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true - - /make-dir@3.1.0: - resolution: - { - integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, - } - engines: { node: '>=8' } - dependencies: - semver: 6.3.0 - dev: true - - /md5-hex@3.0.1: - resolution: - { - integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==, - } - engines: { node: '>=8' } - dependencies: - blueimp-md5: 2.19.0 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /merge-stream@2.0.0: @@ -2409,35 +2696,26 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@7.4.6: + /minimatch@9.0.3: resolution: { - integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==, + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, } - engines: { node: '>=10' } + engines: { node: '>=16 || 14 >=14.17' } dependencies: brace-expansion: 2.0.1 dev: true - /mkdirp@2.1.6: - resolution: - { - integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==, - } - engines: { node: '>=10' } - hasBin: true - dev: true - - /mlly@1.2.0: + /mlly@1.6.1: resolution: { - integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==, + integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==, } dependencies: - acorn: 8.8.2 - pathe: 1.1.0 - pkg-types: 1.0.2 - ufo: 1.1.1 + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.4.0 dev: true /ms@2.1.2: @@ -2447,20 +2725,20 @@ packages: } dev: true - /nanoid@3.3.6: + /muggle-string@0.3.1: resolution: { - integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==, + integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==, } - engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } - hasBin: true dev: true - /natural-compare-lite@1.4.0: + /nanoid@3.3.7: resolution: { - integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, + integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true dev: true /natural-compare@1.4.0: @@ -2470,31 +2748,16 @@ packages: } dev: true - /normalize-path@3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, - } - engines: { node: '>=0.10.0' } - dev: true - - /npm-run-path@5.1.0: + /npm-run-path@5.3.0: resolution: { - integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, + integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, } engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dependencies: path-key: 4.0.0 dev: true - /object-inspect@1.12.3: - resolution: - { - integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, - } - dev: true - /once@1.4.0: resolution: { @@ -2524,19 +2787,19 @@ packages: mimic-fn: 4.0.0 dev: true - /optionator@0.9.1: + /optionator@0.9.3: resolution: { - integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, + integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, } engines: { node: '>= 0.8.0' } dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true /p-limit@3.1.0: @@ -2549,12 +2812,12 @@ packages: yocto-queue: 0.1.0 dev: true - /p-limit@4.0.0: + /p-limit@5.0.0: resolution: { - integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, + integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + engines: { node: '>=18' } dependencies: yocto-queue: 1.0.0 dev: true @@ -2569,16 +2832,6 @@ packages: p-limit: 3.1.0 dev: true - /p-map@4.0.0: - resolution: - { - integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, - } - engines: { node: '>=10' } - dependencies: - aggregate-error: 3.1.0 - dev: true - /parent-module@1.0.1: resolution: { @@ -2643,10 +2896,10 @@ packages: engines: { node: '>=8' } dev: true - /pathe@1.1.0: + /pathe@1.1.2: resolution: { - integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==, + integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, } dev: true @@ -2681,25 +2934,25 @@ packages: hasBin: true dev: true - /pkg-types@1.0.2: + /pkg-types@1.0.3: resolution: { - integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==, + integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, } dependencies: - jsonc-parser: 3.2.0 - mlly: 1.2.0 - pathe: 1.1.0 + jsonc-parser: 3.2.1 + mlly: 1.6.1 + pathe: 1.1.2 dev: true - /postcss@8.4.23: + /postcss@8.4.35: resolution: { - integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==, + integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==, } engines: { node: ^10 || ^12 || >=14 } dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true @@ -2712,39 +2965,39 @@ packages: engines: { node: '>= 0.8.0' } dev: true - /prettier@2.8.8: + /prettier@3.2.5: resolution: { - integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, + integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==, } - engines: { node: '>=10.13.0' } + engines: { node: '>=14' } hasBin: true dev: true - /pretty-bytes@6.1.0: + /pretty-bytes@6.1.1: resolution: { - integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==, + integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==, } engines: { node: ^14.13.1 || >=16.0.0 } dev: true - /pretty-format@27.5.1: + /pretty-format@29.7.0: resolution: { - integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, + integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, } - engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - ansi-regex: 5.0.1 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 17.0.2 + react-is: 18.2.0 dev: true - /punycode@2.3.0: + /punycode@2.3.1: resolution: { - integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, } engines: { node: '>=6' } dev: true @@ -2756,19 +3009,11 @@ packages: } dev: true - /react-is@17.0.2: - resolution: - { - integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, - } - dev: true - - /require-directory@2.1.1: + /react-is@18.2.0: resolution: { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, } - engines: { node: '>=0.10.0' } dev: true /resolve-from@4.0.0: @@ -2785,28 +3030,28 @@ packages: integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==, } dependencies: - is-core-module: 2.11.0 + is-core-module: 2.13.1 path-parse: 1.0.7 dev: true - /resolve@1.22.1: + /resolve@1.22.8: resolution: { - integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, } hasBin: true dependencies: - is-core-module: 2.11.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor@3.1.0: + /restore-cursor@4.0.0: resolution: { - integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, + integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, } - engines: { node: '>=8' } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dependencies: onetime: 5.1.2 signal-exit: 3.0.7 @@ -2820,10 +3065,10 @@ packages: engines: { iojs: '>=1.0.0', node: '>=0.10.0' } dev: true - /rfdc@1.3.0: + /rfdc@1.3.1: resolution: { - integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, + integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==, } dev: true @@ -2837,15 +3082,30 @@ packages: glob: 7.2.3 dev: true - /rollup@3.21.1: + /rollup@4.12.0: resolution: { - integrity: sha512-GpUgqWCw56OSiBKf7lcAITstYiBV1/EKaKYPl9r8HgAxc6/qYAVw1PaHWnvHWFziRaf4HsVCDLq/IGtBi1K/Zw==, + integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==, } - engines: { node: '>=14.18.0', npm: '>=8.0.0' } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: - fsevents: 2.3.2 + '@rollup/rollup-android-arm-eabi': 4.12.0 + '@rollup/rollup-android-arm64': 4.12.0 + '@rollup/rollup-darwin-arm64': 4.12.0 + '@rollup/rollup-darwin-x64': 4.12.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 + '@rollup/rollup-linux-arm64-gnu': 4.12.0 + '@rollup/rollup-linux-arm64-musl': 4.12.0 + '@rollup/rollup-linux-riscv64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-musl': 4.12.0 + '@rollup/rollup-win32-arm64-msvc': 4.12.0 + '@rollup/rollup-win32-ia32-msvc': 4.12.0 + '@rollup/rollup-win32-x64-msvc': 4.12.0 + fsevents: 2.3.3 dev: true /run-parallel@1.2.0: @@ -2857,27 +3117,21 @@ packages: queue-microtask: 1.2.3 dev: true - /rxjs@7.8.0: - resolution: - { - integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==, - } - dependencies: - tslib: 2.5.0 - dev: true - - /semver@6.3.0: + /semver@7.5.4: resolution: { - integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, + integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, } + engines: { node: '>=10' } hasBin: true + dependencies: + lru-cache: 6.0.0 dev: true - /semver@7.3.8: + /semver@7.6.0: resolution: { - integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==, + integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==, } engines: { node: '>=10' } hasBin: true @@ -2917,47 +3171,42 @@ packages: } dev: true - /slash@3.0.0: + /signal-exit@4.1.0: resolution: { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, } - engines: { node: '>=8' } + engines: { node: '>=14' } dev: true - /slice-ansi@3.0.0: + /slash@3.0.0: resolution: { - integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, } engines: { node: '>=8' } - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 dev: true - /slice-ansi@4.0.0: + /slice-ansi@5.0.0: resolution: { - integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, + integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, } - engines: { node: '>=10' } + engines: { node: '>=12' } dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 dev: true - /slice-ansi@5.0.0: + /slice-ansi@7.1.0: resolution: { - integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, + integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==, } - engines: { node: '>=12' } + engines: { node: '>=18' } dependencies: ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 + is-fullwidth-code-point: 5.0.0 dev: true /source-map-js@1.0.2: @@ -2990,43 +3239,31 @@ packages: } dev: true - /std-env@3.3.2: + /std-env@3.7.0: resolution: { - integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==, + integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==, } dev: true - /string-argv@0.3.1: + /string-argv@0.3.2: resolution: { - integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==, + integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, } engines: { node: '>=0.6.19' } dev: true - /string-width@4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, - } - engines: { node: '>=8' } - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string-width@5.1.2: + /string-width@7.1.0: resolution: { - integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==, } - engines: { node: '>=12' } + engines: { node: '>=18' } dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 dev: true /strip-ansi@6.0.1: @@ -3039,10 +3276,10 @@ packages: ansi-regex: 5.0.1 dev: true - /strip-ansi@7.0.1: + /strip-ansi@7.1.0: resolution: { - integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==, + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, } engines: { node: '>=12' } dependencies: @@ -3065,13 +3302,13 @@ packages: engines: { node: '>=8' } dev: true - /strip-literal@1.0.1: + /strip-literal@2.0.0: resolution: { - integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==, + integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==, } dependencies: - acorn: 8.8.2 + js-tokens: 8.0.3 dev: true /supports-color@7.2.0: @@ -3092,18 +3329,6 @@ packages: engines: { node: '>= 0.4' } dev: true - /test-exclude@6.0.0: - resolution: - { - integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, - } - engines: { node: '>=8' } - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - dev: true - /text-table@0.2.0: resolution: { @@ -3111,40 +3336,25 @@ packages: } dev: true - /through@2.3.8: - resolution: - { - integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, - } - dev: true - - /time-zone@1.0.0: - resolution: - { - integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==, - } - engines: { node: '>=4' } - dev: true - - /tinybench@2.4.0: + /tinybench@2.6.0: resolution: { - integrity: sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==, + integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==, } dev: true - /tinypool@0.4.0: + /tinypool@0.8.2: resolution: { - integrity: sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==, + integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==, } engines: { node: '>=14.0.0' } dev: true - /tinyspy@2.1.0: + /tinyspy@2.2.1: resolution: { - integrity: sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==, + integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==, } engines: { node: '>=14.0.0' } dev: true @@ -3167,41 +3377,16 @@ packages: is-number: 7.0.0 dev: true - /ts-morph@18.0.0: - resolution: - { - integrity: sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==, - } - dependencies: - '@ts-morph/common': 0.19.0 - code-block-writer: 12.0.0 - dev: true - - /tslib@1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, - } - dev: true - - /tslib@2.5.0: - resolution: - { - integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, - } - dev: true - - /tsutils@3.21.0(typescript@5.0.4): + /ts-api-utils@1.2.1(typescript@5.3.3): resolution: { - integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, + integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==, } - engines: { node: '>= 6' } + engines: { node: '>=16' } peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + typescript: '>=4.2.0' dependencies: - tslib: 1.14.1 - typescript: 5.0.4 + typescript: 5.3.3 dev: true /type-check@0.4.0: @@ -3230,36 +3415,34 @@ packages: engines: { node: '>=10' } dev: true - /type-fest@0.21.3: + /type-fest@3.13.1: resolution: { - integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, + integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==, } - engines: { node: '>=10' } + engines: { node: '>=14.16' } dev: true - /typescript@4.8.4: + /typescript@5.3.3: resolution: { - integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==, + integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==, } - engines: { node: '>=4.2.0' } + engines: { node: '>=14.17' } hasBin: true dev: true - /typescript@5.0.4: + /ufo@1.4.0: resolution: { - integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==, + integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==, } - engines: { node: '>=12.20' } - hasBin: true dev: true - /ufo@1.1.1: + /undici-types@5.26.5: resolution: { - integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==, + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, } dev: true @@ -3271,60 +3454,40 @@ packages: engines: { node: '>= 4.0.0' } dev: true - /universalify@2.0.0: - resolution: - { - integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, - } - engines: { node: '>= 10.0.0' } - dev: true - /uri-js@4.4.1: resolution: { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, } dependencies: - punycode: 2.3.0 - dev: true - - /v8-to-istanbul@9.0.1: - resolution: - { - integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==, - } - engines: { node: '>=10.12.0' } - dependencies: - '@jridgewell/trace-mapping': 0.3.17 - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.9.0 + punycode: 2.3.1 dev: true - /validator@13.9.0: + /validator@13.11.0: resolution: { - integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==, + integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==, } engines: { node: '>= 0.10' } dev: true - /vite-node@0.30.1(@types/node@18.11.18): + /vite-node@1.3.1(@types/node@20.11.24): resolution: { - integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==, + integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==, } - engines: { node: '>=v14.18.0' } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.2.0 - pathe: 1.1.0 + pathe: 1.1.2 picocolors: 1.0.0 - vite: 4.3.3(@types/node@18.11.18) + vite: 5.1.4(@types/node@20.11.24) transitivePeerDependencies: - '@types/node' - less + - lightningcss - sass - stylus - sugarss @@ -3332,42 +3495,44 @@ packages: - terser dev: true - /vite-plugin-dts@2.3.0(vite@4.3.3): + /vite-plugin-dts@3.7.3(@types/node@20.11.24)(typescript@5.3.3)(vite@5.1.4(@types/node@20.11.24)): resolution: { - integrity: sha512-WbJgGtsStgQhdm3EosYmIdTGbag5YQpZ3HXWUAPCDyoXI5qN6EY0V7NXq0lAmnv9hVQsvh0htbYcg0Or5Db9JQ==, + integrity: sha512-26eTlBYdpjRLWCsTJebM8vkCieE+p9gP3raf+ecDnzzK5E3FG6VE1wcy55OkRpfWWVlVvKkYFe6uvRHYWx7Nog==, } engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: - vite: '>=2.9.0' + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true dependencies: - '@babel/parser': 7.21.5 - '@microsoft/api-extractor': 7.34.6 - '@rollup/pluginutils': 5.0.2 - '@rushstack/node-core-library': 3.57.0 + '@microsoft/api-extractor': 7.39.0(@types/node@20.11.24) + '@rollup/pluginutils': 5.1.0 + '@vue/language-core': 1.8.27(typescript@5.3.3) debug: 4.3.4 - fast-glob: 3.2.12 - fs-extra: 10.1.0 - kolorist: 1.7.0 - magic-string: 0.29.0 - ts-morph: 18.0.0 - vite: 4.3.3(@types/node@18.11.18) + kolorist: 1.8.0 + typescript: 5.3.3 + vite: 5.1.4(@types/node@20.11.24) + vue-tsc: 1.8.27(typescript@5.3.3) transitivePeerDependencies: - '@types/node' - rollup - supports-color dev: true - /vite@4.3.3(@types/node@18.11.18): + /vite@5.1.4(@types/node@20.11.24): resolution: { - integrity: sha512-MwFlLBO4udZXd+VBcezo3u8mC77YQk+ik+fbc0GZWGgzfbPP+8Kf0fldhARqvSYmtIWoAJ5BXPClUbMTlqFxrA==, + integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==, } - engines: { node: ^14.18.0 || >=16.0.0 } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -3377,6 +3542,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -3386,33 +3553,33 @@ packages: terser: optional: true dependencies: - '@types/node': 18.11.18 - esbuild: 0.17.18 - postcss: 8.4.23 - rollup: 3.21.1 + '@types/node': 20.11.24 + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.12.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /vitest@0.30.1: + /vitest@1.3.1(@types/node@20.11.24): resolution: { - integrity: sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==, + integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==, } - engines: { node: '>=v14.18.0' } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.3.1 + '@vitest/ui': 1.3.1 happy-dom: '*' jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/node': + optional: true '@vitest/browser': optional: true '@vitest/ui': @@ -3421,41 +3588,31 @@ packages: optional: true jsdom: optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true dependencies: - '@types/chai': 4.3.4 - '@types/chai-subset': 1.3.3 - '@types/node': 18.11.18 - '@vitest/expect': 0.30.1 - '@vitest/runner': 0.30.1 - '@vitest/snapshot': 0.30.1 - '@vitest/spy': 0.30.1 - '@vitest/utils': 0.30.1 - acorn: 8.8.2 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.7 - concordance: 5.0.4 + '@types/node': 20.11.24 + '@vitest/expect': 1.3.1 + '@vitest/runner': 1.3.1 + '@vitest/snapshot': 1.3.1 + '@vitest/spy': 1.3.1 + '@vitest/utils': 1.3.1 + acorn-walk: 8.3.2 + chai: 4.4.1 debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.0 - pathe: 1.1.0 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.7 + pathe: 1.1.2 picocolors: 1.0.0 - source-map: 0.6.1 - std-env: 3.3.2 - strip-literal: 1.0.1 - tinybench: 2.4.0 - tinypool: 0.4.0 - vite: 4.3.3(@types/node@18.11.18) - vite-node: 0.30.1(@types/node@18.11.18) + std-env: 3.7.0 + strip-literal: 2.0.0 + tinybench: 2.6.0 + tinypool: 0.8.2 + vite: 5.1.4(@types/node@20.11.24) + vite-node: 1.3.1(@types/node@20.11.24) why-is-node-running: 2.2.2 transitivePeerDependencies: - less + - lightningcss - sass - stylus - sugarss @@ -3463,12 +3620,29 @@ packages: - terser dev: true - /well-known-symbols@2.0.0: + /vue-template-compiler@2.7.16: resolution: { - integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==, + integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==, } - engines: { node: '>=6' } + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.8.27(typescript@5.3.3): + resolution: + { + integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==, + } + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.3.3) + semver: 7.6.0 + typescript: 5.3.3 dev: true /which@2.0.2: @@ -3494,36 +3668,16 @@ packages: stackback: 0.0.2 dev: true - /word-wrap@1.2.3: - resolution: - { - integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, - } - engines: { node: '>=0.10.0' } - dev: true - - /wrap-ansi@6.2.0: + /wrap-ansi@9.0.0: resolution: { - integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==, } - engines: { node: '>=8' } - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrap-ansi@7.0.0: - resolution: - { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, - } - engines: { node: '>=10' } + engines: { node: '>=18' } dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 + ansi-styles: 6.2.1 + string-width: 7.1.0 + strip-ansi: 7.1.0 dev: true /wrappy@1.0.2: @@ -3533,14 +3687,6 @@ packages: } dev: true - /y18n@5.0.8: - resolution: - { - integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, - } - engines: { node: '>=10' } - dev: true - /yallist@4.0.0: resolution: { @@ -3548,38 +3694,14 @@ packages: } dev: true - /yaml@2.2.2: + /yaml@2.3.4: resolution: { - integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==, + integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==, } engines: { node: '>= 14' } dev: true - /yargs-parser@20.2.9: - resolution: - { - integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, - } - engines: { node: '>=10' } - dev: true - - /yargs@16.2.0: - resolution: - { - integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, - } - engines: { node: '>=10' } - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true - /yocto-queue@0.1.0: resolution: { @@ -3606,7 +3728,7 @@ packages: dependencies: lodash.get: 4.4.2 lodash.isequal: 4.5.0 - validator: 13.9.0 + validator: 13.11.0 optionalDependencies: commander: 9.5.0 dev: true diff --git a/scripts/esbuild.js b/scripts/esbuild.js index cceb303..23bdd8a 100644 --- a/scripts/esbuild.js +++ b/scripts/esbuild.js @@ -24,19 +24,19 @@ const content = JSON.stringify( gzipped, }, null, - 2 + 2, ); const old = JSON.parse(await readFile(join('size.json'), 'utf8')); await writeFile(join('size.json'), content, 'utf8'); console.log( `Package size: ${old.minified.pretty} => ${minified.pretty}: ${prettyBytes( - minified.raw - old.minified.raw - )}` + minified.raw - old.minified.raw, + )}`, ); console.log( `Minzipped size: ${old.gzipped.pretty} => ${gzipped.pretty}: ${prettyBytes( - gzipped.raw - old.gzipped.raw - )}` + gzipped.raw - old.gzipped.raw, + )}`, ); function sizeInfo(bytesSize) { diff --git a/size.json b/size.json index e336816..f79d8ed 100644 --- a/size.json +++ b/size.json @@ -1,10 +1,10 @@ { "minified": { - "pretty": "1.76 kB", - "raw": 1760 + "pretty": "2.87 kB", + "raw": 2869 }, "gzipped": { - "pretty": "777 B", - "raw": 777 + "pretty": "996 B", + "raw": 996 } } \ No newline at end of file diff --git a/src/expirer.ts b/src/expirer.ts index 16cd3b1..979ba74 100644 --- a/src/expirer.ts +++ b/src/expirer.ts @@ -1,54 +1,107 @@ -import { Entry, LRUCacheOptions } from './types'; -export type Expirer = ReturnType>; -export const Expirer = ( - cache: Map>, - options: LRUCacheOptions -) => { - let size = 0; - let head: Entry | null = null; - let tail: Entry | null = null; - const remove = (entry: Entry) => { - if (entry.timeout) clearTimeout(entry.timeout); - if (!entry.prev && !entry.next) return entry; - if (entry.prev) entry.prev.next = entry.next; - if (entry.next) entry.next.prev = entry.prev; - if (tail === entry) tail = entry.next ?? entry.prev; - if (head === entry) head = entry.next; - entry.prev = null; - entry.next = null; - size -= entry.size; - return entry; - }; - const registry = new FinalizationRegistry( - (key: string) => cache.has(key) && cache.delete(remove(cache.get(key)).key) +import type { LRUCacheOptions } from './types'; + +export class Expirer { + size = 0; + head: Entry | null = null; + tail: Entry | null = null; + registry: FinalizationRegistry = new FinalizationRegistry( + (key: string) => + this.cache.has(key) && + this.cache.delete(this.remove(this.cache.get(key)).key), ); - const expireEntry = (entry: Entry) => { - registry.register(entry.value, entry.key); - if (!(entry.value instanceof WeakRef)) - entry.value = new WeakRef(entry.value); - remove(entry); - }; - const prune = () => { - if (size <= (options.size ?? 1000)) return; - expireEntry(tail); - }; - return { - add: (entry: Entry) => { - registry.register(entry.value, `entry: ${entry.key}`); - if (entry.value instanceof WeakRef) entry.value = entry.value.deref(); - if (head) { - entry.next = head; - head.prev = entry; - } - head = entry; - if (!tail) tail = entry; - size += entry.size; - if (entry.timeout) clearTimeout(entry.timeout); - if (options.maxAge) - entry.timeout = setTimeout(expireEntry, options.maxAge, entry); - prune(); - return entry; - }, - remove, - }; -}; + + constructor( + public cache: Map>, + public options: LRUCacheOptions, + ) {} + add(entry: Entry) { + this.registry.register(entry.value, `entry: ${entry.key}`); + this.head = entry.strengthen().setNext(this.head?.setPrev(entry)); + if (!this.tail) this.tail = entry; + this.size += entry.size; + entry.clearTimeout(); + if (this.options.maxAge) + entry.timeout = setTimeout( + this.expireEntry.bind(this), + this.options.maxAge, + entry, + ); + this.prune(); + return entry; + } + remove(entry: Entry) { + entry.clearTimeout(); + if (entry.disconnected) return entry; + if (this.tail === entry) this.tail = entry.next ?? entry.prev; + if (this.head === entry) this.head = entry.next; + this.size -= entry.size; + return entry.remove(); + } + reset(entry: Entry) { + return this.add(this.remove(entry)); + } + prune() { + if (this.size <= (this.options.size ?? 1000)) return; + this.expireEntry(this.tail); + } + expireEntry(entry: Entry) { + this.registry.register(entry.value, entry.key); + entry.weaken(); + this.remove(entry); + return this; + } +} + +export class Entry { + next: Entry | null; + prev: Entry | null; + timeout: number | NodeJS.Timeout | null = null; + constructor( + public value: T | WeakRef, + public key: string, + public size: number, + ) {} + setNext(next: Entry | null) { + this.next = next; + return this; + } + setPrev(prev: Entry | null) { + this.prev = prev; + return this; + } + remove() { + if (this.timeout) clearTimeout(this.timeout); + this.prev?.setNext(this.next); + this.next?.setPrev(this.prev); + return this.disconnect(); + } + clearTimeout() { + clearTimeout(this.timeout); + } + disconnect() { + this.prev = null; + this.next = null; + return this; + } + get disconnected() { + return !this.prev && !this.next; + } + weaken() { + if (!isWeak(this.value)) this.value = new WeakRef(this.value); + return this; + } + strengthen() { + if (isWeak(this.value)) this.value = this.value.deref(); + return this; + } + peek() { + return isWeak(this.value) ? this.value.deref() : this.value; + } + get finalized() { + return !this.value || (isWeak(this.value) && !this.value.deref()); + } +} + +export const isWeak = ( + value: T | WeakRef, +): value is WeakRef => value instanceof WeakRef; diff --git a/src/index.test.ts b/src/index.test.ts index d77ee14..df0fa2a 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -2,24 +2,24 @@ import { WeakLRUCache } from '.'; describe('Map API', () => { it('can set', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); expect(cache.set('foo', { foo: 'bar' })).toBe(cache); expect(cache.has('foo')).toBe(true); }); it('can get', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); expect(cache.get('foo')).toBeUndefined(); cache.set('foo', { foo: 'bar' }); expect(cache.get('foo')).toEqual({ foo: 'bar' }); }); it('can check if has', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); expect(cache.has('foo')).toBe(false); cache.set('foo', { foo: 'bar' }); expect(cache.has('foo')).toBe(true); }); it('can delete', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); cache.set('foo', { foo: 'bar' }); expect(cache.has('foo')).toBe(true); expect(cache.delete('foo')).toBe(true); @@ -27,42 +27,42 @@ describe('Map API', () => { expect(cache.delete('foo')).toBe(false); }); it('can clear', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); cache.set('foo', { foo: 'bar' }); expect(cache.has('foo')).toBe(true); cache.clear(); expect(cache.has('foo')).toBe(false); }); it('can return keys', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); cache.set('foo', { foo: 'bar' }); expect([...cache.keys()]).toEqual(['foo']); }); it('can return values', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); cache.set('foo', { foo: 'bar' }); expect([...cache.values()]).toEqual([{ foo: 'bar' }]); }); it('can return entries', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); cache.set('foo', { foo: 'bar' }); expect([...cache.entries()]).toEqual([['foo', { foo: 'bar' }]]); }); it('can directly iterate', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); cache.set('foo', { foo: 'bar' }); const entries: [string, { foo: string }][] = []; for (const entry of cache) entries.push(entry); expect(entries).toEqual([['foo', { foo: 'bar' }]]); }); it('can return size', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); expect(cache.size).toBe(0); cache.set('foo', { foo: 'bar' }); expect(cache.size).toBe(1); }); it('can loop over forEach', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); cache.set('foo', { foo: 'bar' }); const entries: [string, { foo: string }][] = []; cache.forEach((value, key) => entries.push([key, value])); @@ -75,43 +75,43 @@ describe('Weak LRU Cache', () => { vi.useFakeTimers(); }); it('caches object', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); const obj = { foo: 'bar' }; cache.set('obj', obj); expect(cache.get('obj')).toBe(obj); }); it('returns undefined for non-existent keys', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); expect(cache.get('obj')).toBeUndefined(); }); it('peeks objects', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); const obj = { foo: 'bar' }; expect(cache.peek('obj')).toBeUndefined(); cache.set('obj', obj); expect(cache.peek('obj')).toBe(obj); }); it('caches 1000 objects', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); for (let i = 0; i < 1000; i++) cache.set(`obj${i}`, { foo: 'bar' }); expect(cache.peek('obj0')).toBeDefined(); expect(cache.peek('obj999')).toBeDefined(); }); it('caches 2000 objects', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); for (let i = 0; i < 2000; i++) cache.set(`obj${i}`, { foo: 'bar' }); expect(cache.peek('obj0')).toBeDefined(); expect(cache.peek('obj999')).toBeDefined(); expect(cache.peek('obj1999')).toBeDefined(); }); it('weakly references old entries', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); for (let i = 0; i < 2000; i++) cache.set(`obj${i}`, { foo: 'bar' }); expect(cache.peek('obj0')).toBeDefined(); expect(cache.peekReference('obj0') instanceof WeakRef).toBe(true); }); it('can reset values', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); const obj = { foo: 'bar' }; cache.set('obj', obj); expect(cache.get('obj')).toBe(obj); @@ -119,7 +119,7 @@ describe('Weak LRU Cache', () => { expect(cache.get('obj')).not.toBe(obj); }); it('can delete values', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); const obj = { foo: 'bar' }; cache.set('obj', obj); expect(cache.get('obj')).toBe(obj); @@ -128,40 +128,40 @@ describe('Weak LRU Cache', () => { expect(cache.delete('obj')).toBe(false); }); it('can tell if it has a value', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); expect(cache.has('obj')).toBe(false); const obj = { foo: 'bar' }; cache.set('obj', obj); expect(cache.has('obj')).toBe(true); }); it('handles reusing expired cache items', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); const obj = { foo: 'bar' }; cache.set('obj', obj); for (let i = 0; i < 1000; i++) cache.set(`obj${i}`, { foo: 'bar' }); expect(cache.get('obj')).toBe(obj); }); it('handles repositioning first and last items', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); for (let i = 0; i < 3; i++) cache.set(`obj${i}`, { foo: 'bar' }); expect(cache.delete('obj2')).toBe(true); expect(cache.delete('obj0')).toBe(true); }); it('handles weakrefs', () => { - const cache = WeakLRUCache<{ foo: string }>(); + const cache = new WeakLRUCache<{ foo: string }>(); const obj = { foo: 'bar' }; cache.set('obj', new WeakRef(obj) as unknown as { foo: string }); expect(cache.get('obj')).toBe(obj); expect(cache.peekReference('obj') instanceof WeakRef).toBe(false); }); it('accepts size option', () => { - const cache = WeakLRUCache<{ foo: string }>({ size: 2 }); + const cache = new WeakLRUCache<{ foo: string }>({ size: 2 }); for (let i = 0; i < 3; i++) cache.set(`obj${i}`, { foo: 'bar' }); expect(cache.peekReference('obj0') instanceof WeakRef).toBe(true); }); it('accepts size processor', () => { const sizeCallback = vi.fn().mockImplementation(() => 4); - const cache = WeakLRUCache<{ foo: string }>({ + const cache = new WeakLRUCache<{ foo: string }>({ size: 2, getSize: sizeCallback, }); @@ -174,7 +174,7 @@ describe('Weak LRU Cache', () => { expect(cache.peekReference('obj') instanceof WeakRef).toBe(true); }); it('accepts maxAge option', async () => { - const cache = WeakLRUCache<{ foo: string }>({ maxAge: 1 }); + const cache = new WeakLRUCache<{ foo: string }>({ maxAge: 1 }); cache.set('obj', { foo: 'bar' }); expect(cache.peekReference('obj') instanceof WeakRef).toBeFalsy(); await vi.advanceTimersByTimeAsync(2_000); diff --git a/src/index.ts b/src/index.ts index 9deb32f..44ef966 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,114 +1,105 @@ -import { Expirer } from './expirer'; -import { Entry, LRUCacheOptions } from './types'; +import { Expirer, Entry } from './expirer'; +import type { LRUCacheOptions } from './types'; -export type WeakLRUCache = { - set: (key: string, value: T) => WeakLRUCache; - get: (key: string) => T; - peek: (key: string) => T; - peekReference: (key: string) => T | WeakRef; - has: (key: string) => boolean; - delete: (key: string) => boolean; - clear: () => void; - keys: () => IterableIterator; - values: () => IterableIterator; - entries: () => IterableIterator<[string, T]>; - [Symbol.iterator]: () => IterableIterator<[string, T]>; - size: number; - forEach: ( - cb: (value: T, key: string, cache: WeakLRUCache) => void - ) => void; -}; +export class WeakLRUCache implements Map { + [Symbol.toStringTag]: 'WeakLRUCache'; + public cache: Map> = new Map(); + public expirer: Expirer; + constructor(public options: LRUCacheOptions = {}) { + this.expirer = new Expirer(this.cache, this.options); + } + set(key: string, value: T): this { + const entry = this.cache.get(key) ?? new Entry(value, key, 1); + entry.value = value; + entry.size = this.options.getSize?.(value) ?? 1; + this.cache.set(key, entry); + this.expirer.reset(entry); + return this; + } + get(key: string): T { + const entry = this.cache.get(key); + if (!entry) return undefined; + if (!entry.strengthen().value) + return this.cache.delete(this.expirer.remove(entry).key), undefined; + return this.expirer.reset(entry).value as T; + } + peek(key: string): T { + const entry = this.cache.get(key); + if (!entry) return undefined; + if (entry.finalized) + return this.cache.delete(this.expirer.remove(entry).key), undefined; + return entry.peek(); + } + peekReference(key: string): T | WeakRef { + return this.cache.get(key)?.value; + } + has(key: string): boolean { + return this.cache.has(key); + } + delete(key: string): boolean { + return this.cache.has(key) + ? this.cache.delete(this.expirer.remove(this.cache.get(key)).key) + : false; + } + clear(): void { + this.cache.forEach(this.expirer.remove); + this.cache.clear(); + } + keys(): IterableIterator { + return iterateCache(this.cache, this.expirer, IteratorMode.KEYS); + } + values(): IterableIterator { + return iterateCache(this.cache, this.expirer, IteratorMode.VALUES); + } + entries(): IterableIterator<[string, T]> { + return iterateCache(this.cache, this.expirer); + } + [Symbol.iterator](): IterableIterator<[string, T]> { + return iterateCache(this.cache, this.expirer); + } + get size() { + return this.cache.size; + } + forEach(cb: (value: T, key: string, cache: this) => void) { + for (const [key, value] of iterateCache(this.cache, this.expirer)) + cb(value, key, this); + } +} -export const WeakLRUCache = ( - options: LRUCacheOptions = {} -): WeakLRUCache => { - const cache = new Map>(); - const expirer = Expirer(cache, options); - const weakLRUCache: WeakLRUCache = { - set: (key: string, value: T): WeakLRUCache => { - const entry = cache.get(key) ?? { - key, - value, - next: null, - prev: null, - size: 1, - }; - entry.value = value; - entry.size = options.getSize?.(value) ?? 1; - cache.set(key, entry); - expirer.add(expirer.remove(entry)).value as T; - return weakLRUCache; - }, - get: (key: string): T => { - const entry = cache.get(key); - if (!entry) return undefined; - if (entry.value instanceof WeakRef) entry.value = entry.value.deref(); - if (!entry.value) - return cache.delete(expirer.remove(entry).key), undefined; - return expirer.add(expirer.remove(entry)).value as T; - }, - peek: (key: string): T => { - const entry = cache.get(key); - if (!entry) return undefined; - if ( - !entry.value || - (entry.value instanceof WeakRef && !entry.value.deref()) - ) - return cache.delete(expirer.remove(entry).key), undefined; - if (entry.value instanceof WeakRef) return entry.value.deref(); - return entry.value; - }, - peekReference: (key: string): T | WeakRef => cache.get(key)?.value, - has: (key: string): boolean => cache.has(key), - delete: (key: string): boolean => - cache.has(key) ? cache.delete(expirer.remove(cache.get(key)).key) : false, - clear: (): void => (cache.forEach(expirer.remove), cache.clear()), - keys: (): IterableIterator => iterateCache(cache, expirer, 0), - values: (): IterableIterator => iterateCache(cache, expirer, 1), - entries: (): IterableIterator<[string, T]> => iterateCache(cache, expirer), - [Symbol.iterator]: (): IterableIterator<[string, T]> => - iterateCache(cache, expirer), - get size() { - return cache.size; - }, - forEach: (cb) => { - for (const [key, value] of iterateCache(cache, expirer)) - cb(value, key, weakLRUCache); - }, - }; - return weakLRUCache; -}; +enum IteratorMode { + ENTRIES = 0, + KEYS = 1, + VALUES = 2, +} function iterateCache( cache: Map>, expirer: Expirer, - mode: 0 + mode: IteratorMode.KEYS, ): IterableIterator; function iterateCache( cache: Map>, expirer: Expirer, - mode: 1 + mode: IteratorMode.VALUES, ): IterableIterator; function iterateCache( cache: Map>, expirer: Expirer, - mode?: 2 + mode?: IteratorMode.ENTRIES, ): IterableIterator<[string, T]>; function* iterateCache( cache: Map>, expirer: Expirer, - mode: 0 | 1 | 2 = 2 + mode: IteratorMode = IteratorMode.ENTRIES, ): IterableIterator<[string, T] | string | T> { for (const [key, entry] of cache.entries()) { - const value = - entry.value instanceof WeakRef ? entry.value.deref() : entry.value; - if (!value) { + if (entry.finalized) { cache.delete(expirer.remove(entry).key); continue; } - if (mode === 0) yield key; - else if (mode === 1) yield value; - else yield [key, value]; + if (mode === IteratorMode.KEYS) yield key; + else if (mode === IteratorMode.VALUES) yield entry.peek(); + else yield [key, entry.peek()]; } } diff --git a/vite.config.ts b/vite.config.ts index 63123f2..262ef1a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,5 @@ /// -import { resolve } from 'node:path'; + import { defineConfig } from 'vite'; import dts from 'vite-plugin-dts'; @@ -8,9 +8,9 @@ export default defineConfig({ build: { target: 'esnext', lib: { - entry: resolve(__dirname, 'src/index.ts'), + entry: './src/index.ts', fileName: 'index', - formats: ['es', 'cjs'], + formats: ['es'], }, minify: false, },