diff --git a/package.json b/package.json index a8db449..dc17a3a 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "url": "https://github.com/webdeveric/utils/issues" }, "homepage": "https://github.com/webdeveric/utils/#readme", - "packageManager": "pnpm@9.15.4+sha512.b2dc20e2fc72b3e18848459b37359a32064663e5627a51e4c74b2c29dd8e8e0491483c3abb40789cfd578bf362fb6ba8261b05f0387d76792ed6e23ea3b1b6a0", + "packageManager": "pnpm@10.2.0+sha512.0d27364e0139c6aadeed65ada153135e0ca96c8da42123bd50047f961339dc7a758fc2e944b428f52be570d1bd3372455c1c65fa2e7aa0bfbf931190f9552001", "scripts": { "clean": "rimraf ./dist/", "prebuild": "pnpm clean", @@ -85,13 +85,13 @@ }, "prettier": "@webdeveric/prettier-config", "devDependencies": { - "@commitlint/config-conventional": "^19.6.0", + "@commitlint/config-conventional": "^19.7.1", "@commitlint/types": "^19.5.0", - "@types/node": "^22.12.0", - "@vitest/coverage-v8": "^3.0.4", + "@types/node": "^22.13.1", + "@vitest/coverage-v8": "^3.0.5", "@webdeveric/eslint-config-ts": "^0.11.0", "@webdeveric/prettier-config": "^0.3.0", - "commitlint": "^19.6.1", + "commitlint": "^19.7.1", "commitlint-plugin-cspell": "^0.1.1", "conventional-changelog-conventionalcommits": "^8.0.0", "cspell": "^8.17.3", @@ -107,6 +107,6 @@ "semantic-release": "^24.2.1", "typescript": "^5.7.3", "validate-package-exports": "^0.8.0", - "vitest": "^3.0.4" + "vitest": "^3.0.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 882be45..cf8f2be 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,17 +9,17 @@ importers: .: devDependencies: '@commitlint/config-conventional': - specifier: ^19.6.0 - version: 19.6.0 + specifier: ^19.7.1 + version: 19.7.1 '@commitlint/types': specifier: ^19.5.0 version: 19.5.0 '@types/node': - specifier: ^22.12.0 - version: 22.12.0 + specifier: ^22.13.1 + version: 22.13.1 '@vitest/coverage-v8': - specifier: ^3.0.4 - version: 3.0.4(vitest@3.0.4(@types/node@22.12.0)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0)) + specifier: ^3.0.5 + version: 3.0.5(vitest@3.0.5(@types/node@22.13.1)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0)) '@webdeveric/eslint-config-ts': specifier: ^0.11.0 version: 0.11.0(eslint@8.57.1)(typescript@5.7.3) @@ -27,11 +27,11 @@ importers: specifier: ^0.3.0 version: 0.3.0(prettier@3.4.2) commitlint: - specifier: ^19.6.1 - version: 19.6.1(@types/node@22.12.0)(typescript@5.7.3) + specifier: ^19.7.1 + version: 19.7.1(@types/node@22.13.1)(typescript@5.7.3) commitlint-plugin-cspell: specifier: ^0.1.1 - version: 0.1.1(@commitlint/lint@19.6.0) + version: 0.1.1(@commitlint/lint@19.7.1) conventional-changelog-conventionalcommits: specifier: ^8.0.0 version: 8.0.0 @@ -75,8 +75,8 @@ importers: specifier: ^0.8.0 version: 0.8.0 vitest: - specifier: ^3.0.4 - version: 3.0.4(@types/node@22.12.0)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0) + specifier: ^3.0.5 + version: 3.0.5(@types/node@22.13.1)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0) packages: @@ -116,13 +116,13 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@commitlint/cli@19.6.1': - resolution: {integrity: sha512-8hcyA6ZoHwWXC76BoC8qVOSr8xHy00LZhZpauiD0iO0VYbVhMnED0da85lTfIULxl7Lj4c6vZgF0Wu/ed1+jlQ==} + '@commitlint/cli@19.7.1': + resolution: {integrity: sha512-iObGjR1tE/PfDtDTEfd+tnRkB3/HJzpQqRTyofS2MPPkDn1mp3DBC8SoPDayokfAy+xKhF8+bwRCJO25Nea0YQ==} engines: {node: '>=v18'} hasBin: true - '@commitlint/config-conventional@19.6.0': - resolution: {integrity: sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ==} + '@commitlint/config-conventional@19.7.1': + resolution: {integrity: sha512-fsEIF8zgiI/FIWSnykdQNj/0JE4av08MudLTyYHm4FlLWemKoQvPNUYU2M/3tktWcCEyq7aOkDDgtjrmgWFbvg==} engines: {node: '>=v18'} '@commitlint/config-validator@19.5.0': @@ -141,12 +141,12 @@ packages: resolution: {integrity: sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==} engines: {node: '>=v18'} - '@commitlint/is-ignored@19.6.0': - resolution: {integrity: sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==} + '@commitlint/is-ignored@19.7.1': + resolution: {integrity: sha512-3IaOc6HVg2hAoGleRK3r9vL9zZ3XY0rf1RsUf6jdQLuaD46ZHnXBiOPTyQ004C4IvYjSWqJwlh0/u2P73aIE3g==} engines: {node: '>=v18'} - '@commitlint/lint@19.6.0': - resolution: {integrity: sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==} + '@commitlint/lint@19.7.1': + resolution: {integrity: sha512-LhcPfVjcOcOZA7LEuBBeO00o3MeZa+tWrX9Xyl1r9PMd5FWsEoZI9IgnGqTKZ0lZt5pO3ZlstgnRyY1CJJc9Xg==} engines: {node: '>=v18'} '@commitlint/load@19.6.1': @@ -712,8 +712,8 @@ packages: resolution: {integrity: sha512-3pPbese0fbCiFJ/7/X1GBgxAKYFE8sxBddA7GtuRmOgNseH4YbGsXJ807Ig3AEwNITjDUISHglvy89cyDJnAwA==} engines: {node: ^18.17.0 || >=20.5.0} - '@npmcli/redact@3.0.0': - resolution: {integrity: sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==} + '@npmcli/redact@3.1.1': + resolution: {integrity: sha512-3Hc2KGIkrvJWJqTbvueXzBeZlmvoOxc2jyX00yzr3+sNFquJg0N8hH4SAPLPVrkWIRQICVpVgjrss971awXVnA==} engines: {node: ^18.17.0 || >=20.5.0} '@npmcli/run-script@9.0.2': @@ -732,8 +732,8 @@ packages: resolution: {integrity: sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==} engines: {node: '>= 18'} - '@octokit/graphql@8.1.2': - resolution: {integrity: sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==} + '@octokit/graphql@8.2.0': + resolution: {integrity: sha512-gejfDywEml/45SqbWTWrhfwvLBrcGYhOn50sPOjIeVvH6i7D16/9xcFA8dAJNp2HMcd+g4vru41g4E2RBiZvfQ==} engines: {node: '>= 18'} '@octokit/openapi-types@23.0.1': @@ -765,8 +765,8 @@ packages: resolution: {integrity: sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw==} engines: {node: '>= 18'} - '@octokit/types@13.7.0': - resolution: {integrity: sha512-BXfRP+3P3IN6fd4uF3SniaHKOO4UXWBfkdR3vA8mIvaoO/wLjGN5qivUtW0QRitBHHMcfC41SLhNVYIZZE+wkA==} + '@octokit/types@13.8.0': + resolution: {integrity: sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -784,98 +784,98 @@ packages: resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@rollup/rollup-android-arm-eabi@4.32.1': - resolution: {integrity: sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==} + '@rollup/rollup-android-arm-eabi@4.34.4': + resolution: {integrity: sha512-gGi5adZWvjtJU7Axs//CWaQbQd/vGy8KGcnEaCWiyCqxWYDxwIlAHFuSe6Guoxtd0SRvSfVTDMPd5H+4KE2kKA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.32.1': - resolution: {integrity: sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==} + '@rollup/rollup-android-arm64@4.34.4': + resolution: {integrity: sha512-1aRlh1gqtF7vNPMnlf1vJKk72Yshw5zknR/ZAVh7zycRAGF2XBMVDAHmFQz/Zws5k++nux3LOq/Ejj1WrDR6xg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.32.1': - resolution: {integrity: sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==} + '@rollup/rollup-darwin-arm64@4.34.4': + resolution: {integrity: sha512-drHl+4qhFj+PV/jrQ78p9ch6A0MfNVZScl/nBps5a7u01aGf/GuBRrHnRegA9bP222CBDfjYbFdjkIJ/FurvSQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.32.1': - resolution: {integrity: sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==} + '@rollup/rollup-darwin-x64@4.34.4': + resolution: {integrity: sha512-hQqq/8QALU6t1+fbNmm6dwYsa0PDD4L5r3TpHx9dNl+aSEMnIksHZkSO3AVH+hBMvZhpumIGrTFj8XCOGuIXjw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.32.1': - resolution: {integrity: sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==} + '@rollup/rollup-freebsd-arm64@4.34.4': + resolution: {integrity: sha512-/L0LixBmbefkec1JTeAQJP0ETzGjFtNml2gpQXA8rpLo7Md+iXQzo9kwEgzyat5Q+OG/C//2B9Fx52UxsOXbzw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.32.1': - resolution: {integrity: sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==} + '@rollup/rollup-freebsd-x64@4.34.4': + resolution: {integrity: sha512-6Rk3PLRK+b8L/M6m/x6Mfj60LhAUcLJ34oPaxufA+CfqkUrDoUPQYFdRrhqyOvtOKXLJZJwxlOLbQjNYQcRQfw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.32.1': - resolution: {integrity: sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==} + '@rollup/rollup-linux-arm-gnueabihf@4.34.4': + resolution: {integrity: sha512-kmT3x0IPRuXY/tNoABp2nDvI9EvdiS2JZsd4I9yOcLCCViKsP0gB38mVHOhluzx+SSVnM1KNn9k6osyXZhLoCA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.32.1': - resolution: {integrity: sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==} + '@rollup/rollup-linux-arm-musleabihf@4.34.4': + resolution: {integrity: sha512-3iSA9tx+4PZcJH/Wnwsvx/BY4qHpit/u2YoZoXugWVfc36/4mRkgGEoRbRV7nzNBSCOgbWMeuQ27IQWgJ7tRzw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.32.1': - resolution: {integrity: sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==} + '@rollup/rollup-linux-arm64-gnu@4.34.4': + resolution: {integrity: sha512-7CwSJW+sEhM9sESEk+pEREF2JL0BmyCro8UyTq0Kyh0nu1v0QPNY3yfLPFKChzVoUmaKj8zbdgBxUhBRR+xGxg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.32.1': - resolution: {integrity: sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==} + '@rollup/rollup-linux-arm64-musl@4.34.4': + resolution: {integrity: sha512-GZdafB41/4s12j8Ss2izofjeFXRAAM7sHCb+S4JsI9vaONX/zQ8cXd87B9MRU/igGAJkKvmFmJJBeeT9jJ5Cbw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.32.1': - resolution: {integrity: sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==} + '@rollup/rollup-linux-loongarch64-gnu@4.34.4': + resolution: {integrity: sha512-uuphLuw1X6ur11675c2twC6YxbzyLSpWggvdawTUamlsoUv81aAXRMPBC1uvQllnBGls0Qt5Siw8reSIBnbdqQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.32.1': - resolution: {integrity: sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==} + '@rollup/rollup-linux-powerpc64le-gnu@4.34.4': + resolution: {integrity: sha512-KvLEw1os2gSmD6k6QPCQMm2T9P2GYvsMZMRpMz78QpSoEevHbV/KOUbI/46/JRalhtSAYZBYLAnT9YE4i/l4vg==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.32.1': - resolution: {integrity: sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==} + '@rollup/rollup-linux-riscv64-gnu@4.34.4': + resolution: {integrity: sha512-wcpCLHGM9yv+3Dql/CI4zrY2mpQ4WFergD3c9cpRowltEh5I84pRT/EuHZsG0In4eBPPYthXnuR++HrFkeqwkA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.32.1': - resolution: {integrity: sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==} + '@rollup/rollup-linux-s390x-gnu@4.34.4': + resolution: {integrity: sha512-nLbfQp2lbJYU8obhRQusXKbuiqm4jSJteLwfjnunDT5ugBKdxqw1X9KWwk8xp1OMC6P5d0WbzxzhWoznuVK6XA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.32.1': - resolution: {integrity: sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==} + '@rollup/rollup-linux-x64-gnu@4.34.4': + resolution: {integrity: sha512-JGejzEfVzqc/XNiCKZj14eb6s5w8DdWlnQ5tWUbs99kkdvfq9btxxVX97AaxiUX7xJTKFA0LwoS0KU8C2faZRg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.32.1': - resolution: {integrity: sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==} + '@rollup/rollup-linux-x64-musl@4.34.4': + resolution: {integrity: sha512-/iFIbhzeyZZy49ozAWJ1ZR2KW6ZdYUbQXLT4O5n1cRZRoTpwExnHLjlurDXXPKEGxiAg0ujaR9JDYKljpr2fDg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.32.1': - resolution: {integrity: sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==} + '@rollup/rollup-win32-arm64-msvc@4.34.4': + resolution: {integrity: sha512-qORc3UzoD5UUTneiP2Afg5n5Ti1GAW9Gp5vHPxzvAFFA3FBaum9WqGvYXGf+c7beFdOKNos31/41PRMUwh1tpA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.32.1': - resolution: {integrity: sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==} + '@rollup/rollup-win32-ia32-msvc@4.34.4': + resolution: {integrity: sha512-5g7E2PHNK2uvoD5bASBD9aelm44nf1w4I5FEI7MPHLWcCSrR8JragXZWgKPXk5i2FU3JFfa6CGZLw2RrGBHs2Q==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.32.1': - resolution: {integrity: sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==} + '@rollup/rollup-win32-x64-msvc@4.34.4': + resolution: {integrity: sha512-p0scwGkR4kZ242xLPBuhSckrJ734frz6v9xZzD+kHVYRAkSUmdSLCIJRfql6H5//aF8Q10K+i7q8DiPfZp0b7A==} cpu: [x64] os: [win32] @@ -913,28 +913,28 @@ packages: peerDependencies: semantic-release: '>=20.1.0' - '@sigstore/bundle@3.0.0': - resolution: {integrity: sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==} + '@sigstore/bundle@3.1.0': + resolution: {integrity: sha512-Mm1E3/CmDDCz3nDhFKTuYdB47EdRFRQMOE/EAbiG1MJW77/w1b3P7Qx7JSrVJs8PfwOLOVcKQCHErIwCTyPbag==} engines: {node: ^18.17.0 || >=20.5.0} '@sigstore/core@2.0.0': resolution: {integrity: sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==} engines: {node: ^18.17.0 || >=20.5.0} - '@sigstore/protobuf-specs@0.3.3': - resolution: {integrity: sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==} + '@sigstore/protobuf-specs@0.4.0': + resolution: {integrity: sha512-o09cLSIq9EKyRXwryWDOJagkml9XgQCoCSRjHOnHLnvsivaW7Qznzz6yjfV7PHJHhIvyp8OH7OX8w0Dc5bQK7A==} engines: {node: ^18.17.0 || >=20.5.0} - '@sigstore/sign@3.0.0': - resolution: {integrity: sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==} + '@sigstore/sign@3.1.0': + resolution: {integrity: sha512-knzjmaOHOov1Ur7N/z4B1oPqZ0QX5geUfhrVaqVlu+hl0EAoL4o+l0MSULINcD5GCWe3Z0+YJO8ues6vFlW0Yw==} engines: {node: ^18.17.0 || >=20.5.0} - '@sigstore/tuf@3.0.0': - resolution: {integrity: sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==} + '@sigstore/tuf@3.1.0': + resolution: {integrity: sha512-suVMQEA+sKdOz5hwP9qNcEjX6B45R+hFFr4LAWzbRc5O+U2IInwvay/bpG5a4s+qR35P/JK/PiKiRGjfuLy1IA==} engines: {node: ^18.17.0 || >=20.5.0} - '@sigstore/verify@2.0.0': - resolution: {integrity: sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==} + '@sigstore/verify@2.1.0': + resolution: {integrity: sha512-kAAM06ca4CzhvjIZdONAL9+MLppW3K48wOFy1TbuaWFW/OMfl8JuTgW0Bm02JB1WJGT/ET2eqav0KTEKmxqkIA==} engines: {node: ^18.17.0 || >=20.5.0} '@sindresorhus/is@4.6.0': @@ -966,8 +966,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.12.0': - resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} + '@types/node@22.13.1': + resolution: {integrity: sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1036,20 +1036,20 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@vitest/coverage-v8@3.0.4': - resolution: {integrity: sha512-f0twgRCHgbs24Dp8cLWagzcObXMcuKtAwgxjJV/nnysPAJJk1JiKu/W0gIehZLmkljhJXU/E0/dmuQzsA/4jhA==} + '@vitest/coverage-v8@3.0.5': + resolution: {integrity: sha512-zOOWIsj5fHh3jjGwQg+P+J1FW3s4jBu1Zqga0qW60yutsBtqEqNEJKWYh7cYn1yGD+1bdPsPdC/eL4eVK56xMg==} peerDependencies: - '@vitest/browser': 3.0.4 - vitest: 3.0.4 + '@vitest/browser': 3.0.5 + vitest: 3.0.5 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@3.0.4': - resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==} + '@vitest/expect@3.0.5': + resolution: {integrity: sha512-nNIOqupgZ4v5jWuQx2DSlHLEs7Q4Oh/7AYwNyE+k0UQzG7tSmjPXShUikn1mpNGzYEN2jJbTvLejwShMitovBA==} - '@vitest/mocker@3.0.4': - resolution: {integrity: sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==} + '@vitest/mocker@3.0.5': + resolution: {integrity: sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 || ^6.0.0 @@ -1059,20 +1059,20 @@ packages: vite: optional: true - '@vitest/pretty-format@3.0.4': - resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==} + '@vitest/pretty-format@3.0.5': + resolution: {integrity: sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA==} - '@vitest/runner@3.0.4': - resolution: {integrity: sha512-dKHzTQ7n9sExAcWH/0sh1elVgwc7OJ2lMOBrAm73J7AH6Pf9T12Zh3lNE1TETZaqrWFXtLlx3NVrLRb5hCK+iw==} + '@vitest/runner@3.0.5': + resolution: {integrity: sha512-BAiZFityFexZQi2yN4OX3OkJC6scwRo8EhRB0Z5HIGGgd2q+Nq29LgHU/+ovCtd0fOfXj5ZI6pwdlUmC5bpi8A==} - '@vitest/snapshot@3.0.4': - resolution: {integrity: sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==} + '@vitest/snapshot@3.0.5': + resolution: {integrity: sha512-GJPZYcd7v8QNUJ7vRvLDmRwl+a1fGg4T/54lZXe+UOGy47F9yUfE18hRCtXL5aHN/AONu29NGzIXSVFh9K0feA==} - '@vitest/spy@3.0.4': - resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==} + '@vitest/spy@3.0.5': + resolution: {integrity: sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg==} - '@vitest/utils@3.0.4': - resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==} + '@vitest/utils@3.0.5': + resolution: {integrity: sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg==} '@webdeveric/eslint-config-ts@0.11.0': resolution: {integrity: sha512-QClsqZWRhESB1CT3uZl2As2INzNq/VD3bQRwhL9sUmxHcXfhcnGXFBwt+4UseDIni5u9RXtVfGaR0kUj+3tbpg==} @@ -1360,8 +1360,8 @@ packages: peerDependencies: '@commitlint/lint': '>=7.6.0' - commitlint@19.6.1: - resolution: {integrity: sha512-tU4or+Y2fDXepCZ44o8guEB9uwrRp4if4VupGH1CR+bsVS2zX6Gia4dndA7UPx8cWWw1tvRRJu5keA7RqfXf3w==} + commitlint@19.7.1: + resolution: {integrity: sha512-iNWqXl/A1WN8qd9JehqUpzbOxczNBE1nzBiYE33TkHeTptq7Cvg5U4j8PpvO92Nxganv6o/20IO3omP5N5M7/A==} engines: {node: '>=v18'} hasBin: true @@ -1596,8 +1596,8 @@ packages: encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - enhanced-resolve@5.18.0: - resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} entities@4.5.0: @@ -1813,8 +1813,8 @@ packages: fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fastq@1.18.0: - resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} + fastq@1.19.0: + resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} fdir@6.4.3: resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} @@ -2131,8 +2131,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} import-from-esm@2.0.0: @@ -2199,8 +2199,8 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-boolean-object@1.2.1: - resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} is-bun-module@1.3.0: @@ -2321,8 +2321,8 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.1.0: - resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} is-weakset@2.0.4: @@ -2724,8 +2724,8 @@ packages: resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} engines: {node: ^18.17.0 || >=20.5.0} - npm-package-arg@12.0.1: - resolution: {integrity: sha512-aDxjFfPV3Liw0WOBWlyZLMBqtbgbg03rmGvHDJa2Ttv7tIz+1oB5qWec4psCDFZcZi9b5XdGkPdQiJxOPzvQRQ==} + npm-package-arg@12.0.2: + resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} engines: {node: ^18.17.0 || >=20.5.0} npm-packlist@10.0.0: @@ -2833,8 +2833,8 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} object-keys@1.1.1: @@ -3207,8 +3207,8 @@ packages: engines: {node: 20 || >=22} hasBin: true - rollup@4.32.1: - resolution: {integrity: sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==} + rollup@4.34.4: + resolution: {integrity: sha512-spF66xoyD7rz3o08sHP7wogp1gZ6itSq22SGa/IZTcUDXDlOyrShwMwkVSB+BUxFRZZCUYqdb3KWDEOMVQZxuw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3257,8 +3257,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} hasBin: true @@ -3309,8 +3309,8 @@ packages: resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} engines: {node: '>=6'} - sigstore@3.0.0: - resolution: {integrity: sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==} + sigstore@3.1.0: + resolution: {integrity: sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==} engines: {node: ^18.17.0 || >=20.5.0} skin-tone@2.0.0: @@ -3465,8 +3465,8 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-hyperlinks@3.1.0: - resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} + supports-hyperlinks@3.2.0: + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} engines: {node: '>=14.18'} supports-preserve-symlinks-flag@1.0.0: @@ -3546,11 +3546,11 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.75: - resolution: {integrity: sha512-AOvV5YYIAFFBfransBzSTyztkc3IMfz5Eq3YluaRiEu55nn43Fzaufx70UqEKYr8BoLCach4q8g/bg6e5+/aFw==} + tldts-core@6.1.76: + resolution: {integrity: sha512-uzhJ02RaMzgQR3yPoeE65DrcHI6LoM4saUqXOt/b5hmb3+mc4YWpdSeAQqVqRUlQ14q8ZuLRWyBR1ictK1dzzg==} - tldts@6.1.75: - resolution: {integrity: sha512-+lFzEXhpl7JXgWYaXcB6DqTYXbUArvrWAE/5ioq/X3CdWLbDjpPP4XTrQBmEJ91y3xbe4Fkw7Lxv4P3GWeJaNg==} + tldts@6.1.76: + resolution: {integrity: sha512-6U2ti64/nppsDxQs9hw8ephA3nO6nSQvVVfxwRw8wLQPFtLI1cFI1a1eP22g+LUP+1TA2pKKjUTwWB+K2coqmQ==} hasBin: true to-regex-range@5.0.1: @@ -3692,13 +3692,13 @@ packages: engines: {node: '>=20.17.0'} hasBin: true - vite-node@3.0.4: - resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==} + vite-node@3.0.5: + resolution: {integrity: sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite@6.0.11: - resolution: {integrity: sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==} + vite@6.1.0: + resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -3737,16 +3737,16 @@ packages: yaml: optional: true - vitest@3.0.4: - resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==} + vitest@3.0.5: + resolution: {integrity: sha512-4dof+HvqONw9bvsYxtkfUp2uHsTN9bV2CZIi1pWgoFpL1Lld8LA1ka9q/ONSsoScAKG7NVGf2stJTI7XRkXb2Q==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.0.4 - '@vitest/ui': 3.0.4 + '@vitest/browser': 3.0.5 + '@vitest/ui': 3.0.5 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -3768,8 +3768,8 @@ packages: vscode-languageserver-textdocument@1.0.12: resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} w3c-xmlserializer@5.0.0: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} @@ -3961,11 +3961,11 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@19.6.1(@types/node@22.12.0)(typescript@5.7.3)': + '@commitlint/cli@19.7.1(@types/node@22.13.1)(typescript@5.7.3)': dependencies: '@commitlint/format': 19.5.0 - '@commitlint/lint': 19.6.0 - '@commitlint/load': 19.6.1(@types/node@22.12.0)(typescript@5.7.3) + '@commitlint/lint': 19.7.1 + '@commitlint/load': 19.6.1(@types/node@22.13.1)(typescript@5.7.3) '@commitlint/read': 19.5.0 '@commitlint/types': 19.5.0 tinyexec: 0.3.2 @@ -3974,7 +3974,7 @@ snapshots: - '@types/node' - typescript - '@commitlint/config-conventional@19.6.0': + '@commitlint/config-conventional@19.7.1': dependencies: '@commitlint/types': 19.5.0 conventional-changelog-conventionalcommits: 7.0.2 @@ -4000,19 +4000,19 @@ snapshots: '@commitlint/types': 19.5.0 chalk: 5.4.1 - '@commitlint/is-ignored@19.6.0': + '@commitlint/is-ignored@19.7.1': dependencies: '@commitlint/types': 19.5.0 - semver: 7.6.3 + semver: 7.7.1 - '@commitlint/lint@19.6.0': + '@commitlint/lint@19.7.1': dependencies: - '@commitlint/is-ignored': 19.6.0 + '@commitlint/is-ignored': 19.7.1 '@commitlint/parse': 19.5.0 '@commitlint/rules': 19.6.0 '@commitlint/types': 19.5.0 - '@commitlint/load@19.6.1(@types/node@22.12.0)(typescript@5.7.3)': + '@commitlint/load@19.6.1(@types/node@22.13.1)(typescript@5.7.3)': dependencies: '@commitlint/config-validator': 19.5.0 '@commitlint/execute-rule': 19.5.0 @@ -4020,7 +4020,7 @@ snapshots: '@commitlint/types': 19.5.0 chalk: 5.4.1 cosmiconfig: 9.0.0(typescript@5.7.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@22.12.0)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@22.13.1)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -4391,7 +4391,7 @@ snapshots: espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 @@ -4456,7 +4456,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.18.0 + fastq: 1.19.0 '@nolyfill/is-core-module@1.0.39': {} @@ -4481,7 +4481,7 @@ snapshots: '@npmcli/node-gyp': 4.0.0 '@npmcli/package-json': 6.1.1 '@npmcli/query': 4.0.0 - '@npmcli/redact': 3.0.0 + '@npmcli/redact': 3.1.1 '@npmcli/run-script': 9.0.2 bin-links: 5.0.0 cacache: 19.0.1 @@ -4493,7 +4493,7 @@ snapshots: minimatch: 9.0.5 nopt: 8.1.0 npm-install-checks: 7.1.1 - npm-package-arg: 12.0.1 + npm-package-arg: 12.0.2 npm-pick-manifest: 10.0.0 npm-registry-fetch: 18.0.2 pacote: 19.0.1 @@ -4503,7 +4503,7 @@ snapshots: promise-all-reject-late: 1.0.1 promise-call-limit: 3.0.2 read-package-json-fast: 4.0.0 - semver: 7.6.3 + semver: 7.7.1 ssri: 12.0.0 treeverse: 3.0.0 walk-up-path: 3.0.1 @@ -4513,7 +4513,7 @@ snapshots: '@npmcli/fs@4.0.0': dependencies: - semver: 7.6.3 + semver: 7.7.1 '@npmcli/git@6.0.1': dependencies: @@ -4524,7 +4524,7 @@ snapshots: proc-log: 5.0.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.6.3 + semver: 7.7.1 which: 5.0.0 transitivePeerDependencies: - bluebird @@ -4549,7 +4549,7 @@ snapshots: json-parse-even-better-errors: 4.0.0 pacote: 20.0.0 proc-log: 5.0.0 - semver: 7.6.3 + semver: 7.7.1 transitivePeerDependencies: - bluebird - supports-color @@ -4565,7 +4565,7 @@ snapshots: hosted-git-info: 8.0.2 json-parse-even-better-errors: 4.0.0 proc-log: 5.0.0 - semver: 7.6.3 + semver: 7.7.1 validate-npm-package-license: 3.0.4 transitivePeerDependencies: - bluebird @@ -4578,7 +4578,7 @@ snapshots: dependencies: postcss-selector-parser: 6.1.2 - '@npmcli/redact@3.0.0': {} + '@npmcli/redact@3.1.1': {} '@npmcli/run-script@9.0.2': dependencies: @@ -4597,22 +4597,22 @@ snapshots: '@octokit/core@6.1.3': dependencies: '@octokit/auth-token': 5.1.2 - '@octokit/graphql': 8.1.2 + '@octokit/graphql': 8.2.0 '@octokit/request': 9.2.0 '@octokit/request-error': 6.1.6 - '@octokit/types': 13.7.0 + '@octokit/types': 13.8.0 before-after-hook: 3.0.2 universal-user-agent: 7.0.2 '@octokit/endpoint@10.1.2': dependencies: - '@octokit/types': 13.7.0 + '@octokit/types': 13.8.0 universal-user-agent: 7.0.2 - '@octokit/graphql@8.1.2': + '@octokit/graphql@8.2.0': dependencies: '@octokit/request': 9.2.0 - '@octokit/types': 13.7.0 + '@octokit/types': 13.8.0 universal-user-agent: 7.0.2 '@octokit/openapi-types@23.0.1': {} @@ -4620,34 +4620,34 @@ snapshots: '@octokit/plugin-paginate-rest@11.4.0(@octokit/core@6.1.3)': dependencies: '@octokit/core': 6.1.3 - '@octokit/types': 13.7.0 + '@octokit/types': 13.8.0 '@octokit/plugin-retry@7.1.3(@octokit/core@6.1.3)': dependencies: '@octokit/core': 6.1.3 '@octokit/request-error': 6.1.6 - '@octokit/types': 13.7.0 + '@octokit/types': 13.8.0 bottleneck: 2.19.5 '@octokit/plugin-throttling@9.4.0(@octokit/core@6.1.3)': dependencies: '@octokit/core': 6.1.3 - '@octokit/types': 13.7.0 + '@octokit/types': 13.8.0 bottleneck: 2.19.5 '@octokit/request-error@6.1.6': dependencies: - '@octokit/types': 13.7.0 + '@octokit/types': 13.8.0 '@octokit/request@9.2.0': dependencies: '@octokit/endpoint': 10.1.2 '@octokit/request-error': 6.1.6 - '@octokit/types': 13.7.0 + '@octokit/types': 13.8.0 fast-content-type-parse: 2.0.1 universal-user-agent: 7.0.2 - '@octokit/types@13.7.0': + '@octokit/types@13.8.0': dependencies: '@octokit/openapi-types': 23.0.1 @@ -4666,61 +4666,61 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@rollup/rollup-android-arm-eabi@4.32.1': + '@rollup/rollup-android-arm-eabi@4.34.4': optional: true - '@rollup/rollup-android-arm64@4.32.1': + '@rollup/rollup-android-arm64@4.34.4': optional: true - '@rollup/rollup-darwin-arm64@4.32.1': + '@rollup/rollup-darwin-arm64@4.34.4': optional: true - '@rollup/rollup-darwin-x64@4.32.1': + '@rollup/rollup-darwin-x64@4.34.4': optional: true - '@rollup/rollup-freebsd-arm64@4.32.1': + '@rollup/rollup-freebsd-arm64@4.34.4': optional: true - '@rollup/rollup-freebsd-x64@4.32.1': + '@rollup/rollup-freebsd-x64@4.34.4': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.32.1': + '@rollup/rollup-linux-arm-gnueabihf@4.34.4': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.32.1': + '@rollup/rollup-linux-arm-musleabihf@4.34.4': optional: true - '@rollup/rollup-linux-arm64-gnu@4.32.1': + '@rollup/rollup-linux-arm64-gnu@4.34.4': optional: true - '@rollup/rollup-linux-arm64-musl@4.32.1': + '@rollup/rollup-linux-arm64-musl@4.34.4': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.32.1': + '@rollup/rollup-linux-loongarch64-gnu@4.34.4': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.32.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.34.4': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.32.1': + '@rollup/rollup-linux-riscv64-gnu@4.34.4': optional: true - '@rollup/rollup-linux-s390x-gnu@4.32.1': + '@rollup/rollup-linux-s390x-gnu@4.34.4': optional: true - '@rollup/rollup-linux-x64-gnu@4.32.1': + '@rollup/rollup-linux-x64-gnu@4.34.4': optional: true - '@rollup/rollup-linux-x64-musl@4.32.1': + '@rollup/rollup-linux-x64-musl@4.34.4': optional: true - '@rollup/rollup-win32-arm64-msvc@4.32.1': + '@rollup/rollup-win32-arm64-msvc@4.34.4': optional: true - '@rollup/rollup-win32-ia32-msvc@4.32.1': + '@rollup/rollup-win32-ia32-msvc@4.34.4': optional: true - '@rollup/rollup-win32-x64-msvc@4.32.1': + '@rollup/rollup-win32-x64-msvc@4.34.4': optional: true '@rtsao/scc@1.1.0': {} @@ -4779,7 +4779,7 @@ snapshots: read-pkg: 9.0.1 registry-auth-token: 5.0.3 semantic-release: 24.2.1(typescript@5.7.3) - semver: 7.6.3 + semver: 7.7.1 tempy: 3.1.0 '@semantic-release/release-notes-generator@14.0.3(semantic-release@24.2.1(typescript@5.7.3))': @@ -4798,37 +4798,37 @@ snapshots: transitivePeerDependencies: - supports-color - '@sigstore/bundle@3.0.0': + '@sigstore/bundle@3.1.0': dependencies: - '@sigstore/protobuf-specs': 0.3.3 + '@sigstore/protobuf-specs': 0.4.0 '@sigstore/core@2.0.0': {} - '@sigstore/protobuf-specs@0.3.3': {} + '@sigstore/protobuf-specs@0.4.0': {} - '@sigstore/sign@3.0.0': + '@sigstore/sign@3.1.0': dependencies: - '@sigstore/bundle': 3.0.0 + '@sigstore/bundle': 3.1.0 '@sigstore/core': 2.0.0 - '@sigstore/protobuf-specs': 0.3.3 + '@sigstore/protobuf-specs': 0.4.0 make-fetch-happen: 14.0.3 proc-log: 5.0.0 promise-retry: 2.0.1 transitivePeerDependencies: - supports-color - '@sigstore/tuf@3.0.0': + '@sigstore/tuf@3.1.0': dependencies: - '@sigstore/protobuf-specs': 0.3.3 + '@sigstore/protobuf-specs': 0.4.0 tuf-js: 3.0.1 transitivePeerDependencies: - supports-color - '@sigstore/verify@2.0.0': + '@sigstore/verify@2.1.0': dependencies: - '@sigstore/bundle': 3.0.0 + '@sigstore/bundle': 3.1.0 '@sigstore/core': 2.0.0 - '@sigstore/protobuf-specs': 0.3.3 + '@sigstore/protobuf-specs': 0.4.0 '@sindresorhus/is@4.6.0': {} @@ -4845,13 +4845,13 @@ snapshots: '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.1 '@types/estree@1.0.6': {} '@types/json5@0.0.29': {} - '@types/node@22.12.0': + '@types/node@22.13.1': dependencies: undici-types: 6.20.0 @@ -4917,7 +4917,7 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 + semver: 7.7.1 ts-api-utils: 1.4.3(typescript@5.7.3) optionalDependencies: typescript: 5.7.3 @@ -4942,7 +4942,7 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitest/coverage-v8@3.0.4(vitest@3.0.4(@types/node@22.12.0)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0))': + '@vitest/coverage-v8@3.0.5(vitest@3.0.5(@types/node@22.13.1)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -4956,47 +4956,47 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.4(@types/node@22.12.0)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0) + vitest: 3.0.5(@types/node@22.13.1)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/expect@3.0.4': + '@vitest/expect@3.0.5': dependencies: - '@vitest/spy': 3.0.4 - '@vitest/utils': 3.0.4 + '@vitest/spy': 3.0.5 + '@vitest/utils': 3.0.5 chai: 5.1.2 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.4(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(yaml@2.7.0))': + '@vitest/mocker@3.0.5(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(yaml@2.7.0))': dependencies: - '@vitest/spy': 3.0.4 + '@vitest/spy': 3.0.5 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(yaml@2.7.0) + vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(yaml@2.7.0) - '@vitest/pretty-format@3.0.4': + '@vitest/pretty-format@3.0.5': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.0.4': + '@vitest/runner@3.0.5': dependencies: - '@vitest/utils': 3.0.4 + '@vitest/utils': 3.0.5 pathe: 2.0.2 - '@vitest/snapshot@3.0.4': + '@vitest/snapshot@3.0.5': dependencies: - '@vitest/pretty-format': 3.0.4 + '@vitest/pretty-format': 3.0.5 magic-string: 0.30.17 pathe: 2.0.2 - '@vitest/spy@3.0.4': + '@vitest/spy@3.0.5': dependencies: tinyspy: 3.0.2 - '@vitest/utils@3.0.4': + '@vitest/utils@3.0.5': dependencies: - '@vitest/pretty-format': 3.0.4 + '@vitest/pretty-format': 3.0.5 loupe: 3.1.3 tinyrainbow: 2.0.0 @@ -5312,15 +5312,15 @@ snapshots: has-own-prop: 2.0.0 repeat-string: 1.6.1 - commitlint-plugin-cspell@0.1.1(@commitlint/lint@19.6.0): + commitlint-plugin-cspell@0.1.1(@commitlint/lint@19.7.1): dependencies: - '@commitlint/lint': 19.6.0 + '@commitlint/lint': 19.7.1 '@commitlint/types': 19.5.0 cspell-lib: 8.17.3 - commitlint@19.6.1(@types/node@22.12.0)(typescript@5.7.3): + commitlint@19.7.1(@types/node@22.13.1)(typescript@5.7.3): dependencies: - '@commitlint/cli': 19.6.1(@types/node@22.12.0)(typescript@5.7.3) + '@commitlint/cli': 19.7.1(@types/node@22.13.1)(typescript@5.7.3) '@commitlint/types': 19.5.0 transitivePeerDependencies: - '@types/node' @@ -5362,7 +5362,7 @@ snapshots: conventional-commits-filter: 5.0.0 handlebars: 4.7.8 meow: 13.2.0 - semver: 7.6.3 + semver: 7.7.1 conventional-commits-filter@5.0.0: {} @@ -5381,9 +5381,9 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig-typescript-loader@6.1.0(@types/node@22.12.0)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3): + cosmiconfig-typescript-loader@6.1.0(@types/node@22.13.1)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3): dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.1 cosmiconfig: 9.0.0(typescript@5.7.3) jiti: 2.4.2 typescript: 5.7.3 @@ -5391,7 +5391,7 @@ snapshots: cosmiconfig@9.0.0(typescript@5.7.3): dependencies: env-paths: 2.2.1 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: @@ -5463,10 +5463,10 @@ snapshots: env-paths: 3.0.0 fast-equals: 5.2.2 gensequence: 7.0.0 - import-fresh: 3.3.0 + import-fresh: 3.3.1 resolve-from: 5.0.0 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 xdg-basedir: 5.1.0 cspell-trie-lib@8.17.3: @@ -5493,7 +5493,7 @@ snapshots: fast-json-stable-stringify: 2.1.0 file-entry-cache: 9.1.0 get-stdin: 9.0.0 - semver: 7.6.3 + semver: 7.7.1 tinyglobby: 0.2.10 cssesc@3.0.0: {} @@ -5599,7 +5599,7 @@ snapshots: iconv-lite: 0.6.3 optional: true - enhanced-resolve@5.18.0: + enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -5656,9 +5656,9 @@ snapshots: is-shared-array-buffer: 1.0.4 is-string: 1.1.1 is-typed-array: 1.1.15 - is-weakref: 1.1.0 + is-weakref: 1.1.1 math-intrinsics: 1.1.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 object-keys: 1.1.1 object.assign: 4.1.7 own-keys: 1.0.1 @@ -5756,7 +5756,7 @@ snapshots: dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 - enhanced-resolve: 5.18.0 + enhanced-resolve: 5.18.1 eslint: 8.57.1 fast-glob: 3.3.3 get-tsconfig: 4.10.0 @@ -5935,7 +5935,7 @@ snapshots: fast-uri@3.0.6: {} - fastq@1.18.0: + fastq@1.19.0: dependencies: reusify: 1.0.4 @@ -6273,7 +6273,7 @@ snapshots: ignore@5.3.2: {} - import-fresh@3.3.0: + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -6342,14 +6342,14 @@ snapshots: dependencies: has-bigints: 1.1.0 - is-boolean-object@1.2.1: + is-boolean-object@1.2.2: dependencies: call-bound: 1.0.3 has-tostringtag: 1.0.2 is-bun-module@1.3.0: dependencies: - semver: 7.6.3 + semver: 7.7.1 is-callable@1.2.7: {} @@ -6450,7 +6450,7 @@ snapshots: is-weakmap@2.0.2: {} - is-weakref@1.1.0: + is-weakref@1.1.1: dependencies: call-bound: 1.0.3 @@ -6689,7 +6689,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.3 + semver: 7.7.1 make-fetch-happen@14.0.3: dependencies: @@ -6716,7 +6716,7 @@ snapshots: cli-table3: 0.6.5 marked: 12.0.2 node-emoji: 2.2.0 - supports-hyperlinks: 3.1.0 + supports-hyperlinks: 3.2.0 marked@12.0.2: {} @@ -6841,7 +6841,7 @@ snapshots: make-fetch-happen: 14.0.3 nopt: 8.1.0 proc-log: 5.0.0 - semver: 7.6.3 + semver: 7.7.1 tar: 7.4.3 which: 5.0.0 transitivePeerDependencies: @@ -6854,7 +6854,7 @@ snapshots: normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.6.3 + semver: 7.7.1 validate-npm-package-license: 3.0.4 normalize-url@8.0.1: {} @@ -6865,15 +6865,15 @@ snapshots: npm-install-checks@7.1.1: dependencies: - semver: 7.6.3 + semver: 7.7.1 npm-normalize-package-bin@4.0.0: {} - npm-package-arg@12.0.1: + npm-package-arg@12.0.2: dependencies: hosted-git-info: 8.0.2 proc-log: 5.0.0 - semver: 7.6.3 + semver: 7.7.1 validate-npm-package-name: 6.0.0 npm-packlist@10.0.0: @@ -6888,18 +6888,18 @@ snapshots: dependencies: npm-install-checks: 7.1.1 npm-normalize-package-bin: 4.0.0 - npm-package-arg: 12.0.1 - semver: 7.6.3 + npm-package-arg: 12.0.2 + semver: 7.7.1 npm-registry-fetch@18.0.2: dependencies: - '@npmcli/redact': 3.0.0 + '@npmcli/redact': 3.1.1 jsonparse: 1.3.1 make-fetch-happen: 14.0.3 minipass: 7.1.2 minipass-fetch: 4.0.0 minizlib: 3.0.1 - npm-package-arg: 12.0.1 + npm-package-arg: 12.0.2 proc-log: 5.0.0 transitivePeerDependencies: - supports-color @@ -6919,7 +6919,7 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.3: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} @@ -7029,13 +7029,13 @@ snapshots: cacache: 19.0.1 fs-minipass: 3.0.3 minipass: 7.1.2 - npm-package-arg: 12.0.1 + npm-package-arg: 12.0.2 npm-packlist: 9.0.0 npm-pick-manifest: 10.0.0 npm-registry-fetch: 18.0.2 proc-log: 5.0.0 promise-retry: 2.0.1 - sigstore: 3.0.0 + sigstore: 3.1.0 ssri: 12.0.0 tar: 6.2.1 transitivePeerDependencies: @@ -7052,13 +7052,13 @@ snapshots: cacache: 19.0.1 fs-minipass: 3.0.3 minipass: 7.1.2 - npm-package-arg: 12.0.1 + npm-package-arg: 12.0.2 npm-packlist: 9.0.0 npm-pick-manifest: 10.0.0 npm-registry-fetch: 18.0.2 proc-log: 5.0.0 promise-retry: 2.0.1 - sigstore: 3.0.0 + sigstore: 3.1.0 ssri: 12.0.0 tar: 6.2.1 transitivePeerDependencies: @@ -7306,29 +7306,29 @@ snapshots: glob: 11.0.1 package-json-from-dist: 1.0.1 - rollup@4.32.1: + rollup@4.34.4: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.32.1 - '@rollup/rollup-android-arm64': 4.32.1 - '@rollup/rollup-darwin-arm64': 4.32.1 - '@rollup/rollup-darwin-x64': 4.32.1 - '@rollup/rollup-freebsd-arm64': 4.32.1 - '@rollup/rollup-freebsd-x64': 4.32.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.32.1 - '@rollup/rollup-linux-arm-musleabihf': 4.32.1 - '@rollup/rollup-linux-arm64-gnu': 4.32.1 - '@rollup/rollup-linux-arm64-musl': 4.32.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.32.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.32.1 - '@rollup/rollup-linux-riscv64-gnu': 4.32.1 - '@rollup/rollup-linux-s390x-gnu': 4.32.1 - '@rollup/rollup-linux-x64-gnu': 4.32.1 - '@rollup/rollup-linux-x64-musl': 4.32.1 - '@rollup/rollup-win32-arm64-msvc': 4.32.1 - '@rollup/rollup-win32-ia32-msvc': 4.32.1 - '@rollup/rollup-win32-x64-msvc': 4.32.1 + '@rollup/rollup-android-arm-eabi': 4.34.4 + '@rollup/rollup-android-arm64': 4.34.4 + '@rollup/rollup-darwin-arm64': 4.34.4 + '@rollup/rollup-darwin-x64': 4.34.4 + '@rollup/rollup-freebsd-arm64': 4.34.4 + '@rollup/rollup-freebsd-x64': 4.34.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.4 + '@rollup/rollup-linux-arm-musleabihf': 4.34.4 + '@rollup/rollup-linux-arm64-gnu': 4.34.4 + '@rollup/rollup-linux-arm64-musl': 4.34.4 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.4 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.4 + '@rollup/rollup-linux-riscv64-gnu': 4.34.4 + '@rollup/rollup-linux-s390x-gnu': 4.34.4 + '@rollup/rollup-linux-x64-gnu': 4.34.4 + '@rollup/rollup-linux-x64-musl': 4.34.4 + '@rollup/rollup-win32-arm64-msvc': 4.34.4 + '@rollup/rollup-win32-ia32-msvc': 4.34.4 + '@rollup/rollup-win32-x64-msvc': 4.34.4 fsevents: 2.3.3 rrweb-cssom@0.8.0: {} @@ -7391,7 +7391,7 @@ snapshots: p-reduce: 3.0.0 read-package-up: 11.0.0 resolve-from: 5.0.0 - semver: 7.6.3 + semver: 7.7.1 semver-diff: 4.0.0 signale: 1.4.0 yargs: 17.7.2 @@ -7401,13 +7401,13 @@ snapshots: semver-diff@4.0.0: dependencies: - semver: 7.6.3 + semver: 7.7.1 semver-regex@4.0.5: {} semver@6.3.1: {} - semver@7.6.3: {} + semver@7.7.1: {} set-function-length@1.2.2: dependencies: @@ -7440,27 +7440,27 @@ snapshots: side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map@1.0.1: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map: 1.0.1 side-channel@1.1.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -7475,14 +7475,14 @@ snapshots: figures: 2.0.0 pkg-conf: 2.1.0 - sigstore@3.0.0: + sigstore@3.1.0: dependencies: - '@sigstore/bundle': 3.0.0 + '@sigstore/bundle': 3.1.0 '@sigstore/core': 2.0.0 - '@sigstore/protobuf-specs': 0.3.3 - '@sigstore/sign': 3.0.0 - '@sigstore/tuf': 3.0.0 - '@sigstore/verify': 2.0.0 + '@sigstore/protobuf-specs': 0.4.0 + '@sigstore/sign': 3.1.0 + '@sigstore/tuf': 3.1.0 + '@sigstore/verify': 2.1.0 transitivePeerDependencies: - supports-color @@ -7640,7 +7640,7 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@3.1.0: + supports-hyperlinks@3.2.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 @@ -7722,11 +7722,11 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.75: {} + tldts-core@6.1.76: {} - tldts@6.1.75: + tldts@6.1.76: dependencies: - tldts-core: 6.1.75 + tldts-core: 6.1.76 to-regex-range@5.0.1: dependencies: @@ -7734,7 +7734,7 @@ snapshots: tough-cookie@5.1.0: dependencies: - tldts: 6.1.75 + tldts: 6.1.76 tr46@5.0.0: dependencies: @@ -7868,13 +7868,13 @@ snapshots: - bluebird - supports-color - vite-node@3.0.4(@types/node@22.12.0)(jiti@2.4.2)(yaml@2.7.0): + vite-node@3.0.5(@types/node@22.13.1)(jiti@2.4.2)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.2 - vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(yaml@2.7.0) + vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -7889,26 +7889,26 @@ snapshots: - tsx - yaml - vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(yaml@2.7.0): + vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.5.1 - rollup: 4.32.1 + rollup: 4.34.4 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.1 fsevents: 2.3.3 jiti: 2.4.2 yaml: 2.7.0 - vitest@3.0.4(@types/node@22.12.0)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0): + vitest@3.0.5(@types/node@22.13.1)(jiti@2.4.2)(jsdom@26.0.0)(yaml@2.7.0): dependencies: - '@vitest/expect': 3.0.4 - '@vitest/mocker': 3.0.4(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(yaml@2.7.0)) - '@vitest/pretty-format': 3.0.4 - '@vitest/runner': 3.0.4 - '@vitest/snapshot': 3.0.4 - '@vitest/spy': 3.0.4 - '@vitest/utils': 3.0.4 + '@vitest/expect': 3.0.5 + '@vitest/mocker': 3.0.5(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(yaml@2.7.0)) + '@vitest/pretty-format': 3.0.5 + '@vitest/runner': 3.0.5 + '@vitest/snapshot': 3.0.5 + '@vitest/spy': 3.0.5 + '@vitest/utils': 3.0.5 chai: 5.1.2 debug: 4.4.0 expect-type: 1.1.0 @@ -7919,11 +7919,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(yaml@2.7.0) - vite-node: 3.0.4(@types/node@22.12.0)(jiti@2.4.2)(yaml@2.7.0) + vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(yaml@2.7.0) + vite-node: 3.0.5(@types/node@22.13.1)(jiti@2.4.2)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.1 jsdom: 26.0.0 transitivePeerDependencies: - jiti @@ -7941,7 +7941,7 @@ snapshots: vscode-languageserver-textdocument@1.0.12: {} - vscode-uri@3.0.8: {} + vscode-uri@3.1.0: {} w3c-xmlserializer@5.0.0: dependencies: @@ -7965,7 +7965,7 @@ snapshots: which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 - is-boolean-object: 1.2.1 + is-boolean-object: 1.2.2 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 @@ -7980,7 +7980,7 @@ snapshots: is-finalizationregistry: 1.1.1 is-generator-function: 1.1.0 is-regex: 1.2.1 - is-weakref: 1.1.0 + is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 diff --git a/src/assertion/assertIsInt32.ts b/src/assertion/assertIsInt32.ts new file mode 100644 index 0000000..2f42f1a --- /dev/null +++ b/src/assertion/assertIsInt32.ts @@ -0,0 +1,11 @@ +import { isInt32 } from '../predicate/isInt32.js'; + +import { getError } from './getError.js'; + +import type { Int32 } from '../types/numbers.js'; + +export function assertIsInt32(input: unknown, error: string | Error = 'input is not an Int32'): asserts input is Int32 { + if (!isInt32(input)) { + throw getError(error); + } +} diff --git a/src/assertion/index.ts b/src/assertion/index.ts index 1c53f33..531fddc 100644 --- a/src/assertion/index.ts +++ b/src/assertion/index.ts @@ -7,6 +7,7 @@ export * from './assertIsBooleanArray.js'; export * from './assertIsDigitsString.js'; export * from './assertIsFiniteNumber.js'; export * from './assertIsFunction.js'; +export * from './assertIsInt32.js'; export * from './assertIsInteger.js'; export * from './assertIsIntString.js'; export * from './assertIsIterable.js'; diff --git a/src/index.ts b/src/index.ts index 86f7e6c..4f290af 100644 --- a/src/index.ts +++ b/src/index.ts @@ -36,6 +36,7 @@ export * from './inRange.js'; export * from './isEmpty.js'; export * from './iterateForever.js'; export * from './joinStrings.js'; +export * from './jsonParse.js'; export * from './looksLikeURL.js'; export * from './normalize.js'; export * from './parseNumber.js'; diff --git a/src/jsonParse.ts b/src/jsonParse.ts new file mode 100644 index 0000000..d3a0cc4 --- /dev/null +++ b/src/jsonParse.ts @@ -0,0 +1,17 @@ +import type { TypeAssertionFn } from './types/functions.js'; + +export type JsonReviver = Parameters[1]; + +export function jsonParse(input: string): unknown; + +export function jsonParse(input: string, reviver?: JsonReviver): unknown; + +export function jsonParse(input: string, reviver: JsonReviver | undefined, assertionFn: TypeAssertionFn): T; + +export function jsonParse(input: string, reviver?: JsonReviver, assertionFn?: TypeAssertionFn): unknown { + const data: unknown = JSON.parse(input, reviver); + + assertionFn?.(data); + + return data; +} diff --git a/src/predicate/index.ts b/src/predicate/index.ts index 4ab154c..d95cb4e 100644 --- a/src/predicate/index.ts +++ b/src/predicate/index.ts @@ -9,6 +9,7 @@ export * from './isBooleanArray.js'; export * from './isDigitsString.js'; export * from './isFiniteNumber.js'; export * from './isFunction.js'; +export * from './isInt32.js'; export * from './isInteger.js'; export * from './isIntString.js'; export * from './isISODateString.js'; diff --git a/src/predicate/isInt32.ts b/src/predicate/isInt32.ts new file mode 100644 index 0000000..67aff07 --- /dev/null +++ b/src/predicate/isInt32.ts @@ -0,0 +1,8 @@ +import type { Int32 } from '../types/numbers.js'; + +export function isInt32(input: unknown): input is Int32 { + const int32Min = -2_147_483_648; + const int32Max = 2_147_483_647; + + return typeof input === 'number' && Number.isInteger(input) && input >= int32Min && input <= int32Max; +} diff --git a/src/types/branded.ts b/src/types/branded.ts index 9df1e7f..7d649c1 100644 --- a/src/types/branded.ts +++ b/src/types/branded.ts @@ -1,7 +1,17 @@ +import type { Primitive } from './common.js'; + declare const brand: unique symbol; -type Brand = { +export type Brand = { [brand]: Id; }; export type Branded = Type & Brand; + +export type Unbranded = Type extends Branded ? Omit : Type; + +export type RemoveBranding = Type extends Primitive + ? Unbranded + : { + [Property in keyof Type]: Type extends Primitive ? Unbranded : RemoveBranding; + }; diff --git a/src/types/index.ts b/src/types/index.ts index 72d85a3..e5a218f 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -3,6 +3,7 @@ export * from './branded.js'; export * from './common.js'; export * from './date-time.js'; export * from './functions.js'; +export * from './numbers.js'; export * from './objects.js'; export * from './records.js'; export * from './strings.js'; diff --git a/src/types/numbers.ts b/src/types/numbers.ts new file mode 100644 index 0000000..65bb36c --- /dev/null +++ b/src/types/numbers.ts @@ -0,0 +1,3 @@ +import type { Branded } from './branded.js'; + +export type Int32 = Branded; diff --git a/test/assertion/assertIsInt32.test.ts b/test/assertion/assertIsInt32.test.ts new file mode 100644 index 0000000..e153dbd --- /dev/null +++ b/test/assertion/assertIsInt32.test.ts @@ -0,0 +1,20 @@ +import { describe, it, expect } from 'vitest'; + +import { assertIsInt32 } from '../../src/assertion/assertIsInt32.js'; + +describe('assertIsInt32()', () => { + it.each([null, undefined, 'not a number', Number.NaN, Infinity, Math.PI, Number.MAX_SAFE_INTEGER])( + 'Throws when input is invalid: %s', + (input) => { + expect(() => { + assertIsInt32(input); + }).toThrowError(); + }, + ); + + it.each([-1, 0, 1, -2_147_483_648, 2_147_483_647])('Does not throw when input is valid: %s', (input) => { + expect(() => { + assertIsInt32(input); + }).not.toThrowError(); + }); +}); diff --git a/test/jsonParse.test.ts b/test/jsonParse.test.ts new file mode 100644 index 0000000..661f955 --- /dev/null +++ b/test/jsonParse.test.ts @@ -0,0 +1,32 @@ +import { describe, expect, it } from 'vitest'; + +import { assertIsObject } from '../src/assertion/assertIsObject.js'; +import { jsonParse } from '../src/jsonParse.js'; + +describe('jsonParse()', () => { + it('Parses a JSON string', () => { + const unknownData = jsonParse('{"name":"test"}'); + + expect(unknownData).toEqual({ + name: 'test', + }); + }); + + it('Can use a reviver function', () => { + const unknownData = jsonParse('{"name":"test"}', (key, value) => { + return key === 'name' ? String(value).toUpperCase() : value; + }); + + expect(unknownData).toEqual({ + name: 'TEST', + }); + }); + + it('Can use a type assertion function', () => { + expect(jsonParse('{"name":"test"}', undefined, assertIsObject)).toEqual({ + name: 'test', + }); + + expect(() => jsonParse('[]', undefined, assertIsObject)).toThrowError(); + }); +}); diff --git a/test/predicate/isInt32.test.ts b/test/predicate/isInt32.test.ts new file mode 100644 index 0000000..3af105b --- /dev/null +++ b/test/predicate/isInt32.test.ts @@ -0,0 +1,21 @@ +import { describe, it, expect } from 'vitest'; + +import { isInt32 } from '../../src/predicate/isInt32.js'; + +describe('isInt32()', () => { + it('Returns true for valid input', () => { + expect(isInt32(1234)).toBeTruthy(); + }); + + it('Returns false for invalid input', () => { + expect(isInt32(null)).toBeFalsy(); + expect(isInt32(undefined)).toBeFalsy(); + expect(isInt32(Number.MAX_SAFE_INTEGER)).toBeFalsy(); + }); + + it('Can be used with Array.filter()', () => { + expect([-1, 0, null, 2, undefined, 4, Number.MAX_SAFE_INTEGER, Number.POSITIVE_INFINITY].filter(isInt32)).toEqual([ + -1, 0, 2, 4, + ]); + }); +});