udpate readme and bmp deps

This commit is contained in:
2026-02-15 23:51:34 -08:00
parent 2622949ac7
commit faf82fa3ed
4 changed files with 224 additions and 183 deletions

2
.gitignore vendored
View File

@@ -31,3 +31,5 @@ docs/.vitepress/cache/
docs/.vitepress/dist/
test/*
.worktrees/
.codex/*
.agents/*

View File

@@ -121,12 +121,22 @@ Detailed guides live in [`docs/`](docs/README.md):
This project includes the following third-party components:
- **[Yomitan](https://github.com/yomidevs/yomitan)** — GPL-3.0
- **[texthooker-ui](https://github.com/Renji-XD/texthooker-ui)** — MIT
- **[Yomitan](https://github.com/yomidevs/yomitan)** - Pop-up dictionary
- **[texthooker-ui](https://github.com/ksyasuda/texthooker-ui/tree/subminer)** - Texthooker Page
- **[yomitan-jlpt-vocab](https://github.com/stephenmk/yomitan-jlpt-vocab)** - JLPT Yomitan Dictionary
- **[Jiten Frequency Dictionary](https://jiten.moe/)** - Frequency Dictionary
### Acknowledgments
This project was inspired by **[GameSentenceMiner](https://github.com/bpwhelan/GameSentenceMiner)**'s subtitle overlay and Yomitan integration
- **[GameSentenceMiner](https://github.com/bpwhelan/GameSentenceMiner)** — Inspiration for the subtitle overlay and Yomitan integration
- **[Jimaku.cc](https://jimaku.cc)** — Japanese subtitle provider
This project cherry-picks features from the following MPV scripts, ported to TypeScript:
- **[mpvacious](https://github.com/Ajatt-Tools/mpvacious)** — Sentence mining, screenshotting, and card updating logic
- **[Anacreon-Script (animecards)](https://github.com/friedrich-de/Anacreon-Script)** — Copy/paste to card update flow
- **[autosubsync-mpv](https://github.com/joaquintorres/autosubsync-mpv)** — Subtitle synchronization
## License

View File

@@ -53,13 +53,13 @@
"ws": "^8.19.0"
},
"devDependencies": {
"@types/node": "^25.2.2",
"@types/node": "^25.2.3",
"@types/ws": "^8.18.1",
"electron": "^37.10.3",
"esbuild": "^0.25.0",
"electron-builder": "^26.7.0",
"esbuild": "^0.25.0",
"typescript": "^5.9.3",
"vitepress": "^1.6.3"
"vitepress": "^1.6.4"
},
"build": {
"appId": "com.sudacode.SubMiner",

383
pnpm-lock.yaml generated
View File

@@ -25,8 +25,8 @@ importers:
version: 8.19.0
devDependencies:
'@types/node':
specifier: ^25.2.2
version: 25.2.2
specifier: ^25.2.3
version: 25.2.3
'@types/ws':
specifier: ^8.18.1
version: 8.18.1
@@ -43,16 +43,16 @@ importers:
specifier: ^5.9.3
version: 5.9.3
vitepress:
specifier: ^1.6.3
version: 1.6.4(@algolia/client-search@5.48.0)(@types/node@25.2.2)(axios@1.13.5)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.3)
specifier: ^1.6.4
version: 1.6.4(@algolia/client-search@5.48.1)(@types/node@25.2.3)(axios@1.13.5)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.3)
packages:
7zip-bin@5.2.0:
resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==}
'@algolia/abtesting@1.14.0':
resolution: {integrity: sha512-cZfj+1Z1dgrk3YPtNQNt0H9Rr67P8b4M79JjUKGS0d7/EbFbGxGgSu6zby5f22KXo3LT0LZa4O2c6VVbupJuDg==}
'@algolia/abtesting@1.14.1':
resolution: {integrity: sha512-Dkj0BgPiLAaim9sbQ97UKDFHJE/880wgStAM18U++NaJ/2Cws34J5731ovJifr6E3Pv4T2CqvMXf8qLCC417Ew==}
engines: {node: '>= 14.0.0'}
'@algolia/autocomplete-core@1.17.7':
@@ -75,56 +75,56 @@ packages:
'@algolia/client-search': '>= 4.9.1 < 6'
algoliasearch: '>= 4.9.1 < 6'
'@algolia/client-abtesting@5.48.0':
resolution: {integrity: sha512-n17WSJ7vazmM6yDkWBAjY12J8ERkW9toOqNgQ1GEZu/Kc4dJDJod1iy+QP5T/UlR3WICgZDi/7a/VX5TY5LAPQ==}
'@algolia/client-abtesting@5.48.1':
resolution: {integrity: sha512-LV5qCJdj+/m9I+Aj91o+glYszrzd7CX6NgKaYdTOj4+tUYfbS62pwYgUfZprYNayhkQpVFcrW8x8ZlIHpS23Vw==}
engines: {node: '>= 14.0.0'}
'@algolia/client-analytics@5.48.0':
resolution: {integrity: sha512-v5bMZMEqW9U2l40/tTAaRyn4AKrYLio7KcRuHmLaJtxuJAhvZiE7Y62XIsF070juz4MN3eyvfQmI+y5+OVbZuA==}
'@algolia/client-analytics@5.48.1':
resolution: {integrity: sha512-/AVoMqHhPm14CcHq7mwB+bUJbfCv+jrxlNvRjXAuO+TQa+V37N8k1b0ijaRBPdmSjULMd8KtJbQyUyabXOu6Kg==}
engines: {node: '>= 14.0.0'}
'@algolia/client-common@5.48.0':
resolution: {integrity: sha512-7H3DgRyi7UByScc0wz7EMrhgNl7fKPDjKX9OcWixLwCj7yrRXDSIzwunykuYUUO7V7HD4s319e15FlJ9CQIIFQ==}
'@algolia/client-common@5.48.1':
resolution: {integrity: sha512-VXO+qu2Ep6ota28ktvBm3sG53wUHS2n7bgLWmce5jTskdlCD0/JrV4tnBm1l7qpla1CeoQb8D7ShFhad+UoSOw==}
engines: {node: '>= 14.0.0'}
'@algolia/client-insights@5.48.0':
resolution: {integrity: sha512-tXmkB6qrIGAXrtRYHQNpfW0ekru/qymV02bjT0w5QGaGw0W91yT+53WB6dTtRRsIrgS30Al6efBvyaEosjZ5uw==}
'@algolia/client-insights@5.48.1':
resolution: {integrity: sha512-zl+Qyb0nLg+Y5YvKp1Ij+u9OaPaKg2/EPzTwKNiVyOHnQJlFxmXyUZL1EInczAZsEY8hVpPCLtNfhMhfxluXKQ==}
engines: {node: '>= 14.0.0'}
'@algolia/client-personalization@5.48.0':
resolution: {integrity: sha512-4tXEsrdtcBZbDF73u14Kb3otN+xUdTVGop1tBjict+Rc/FhsJQVIwJIcTrOJqmvhtBfc56Bu65FiVOnpAZCxcw==}
'@algolia/client-personalization@5.48.1':
resolution: {integrity: sha512-r89Qf9Oo9mKWQXumRu/1LtvVJAmEDpn8mHZMc485pRfQUMAwSSrsnaw1tQ3sszqzEgAr1c7rw6fjBI+zrAXTOw==}
engines: {node: '>= 14.0.0'}
'@algolia/client-query-suggestions@5.48.0':
resolution: {integrity: sha512-unzSUwWFpsDrO8935RhMAlyK0Ttua/5XveVIwzfjs5w+GVBsHgIkbOe8VbBJccMU/z1LCwvu1AY3kffuSLAR5Q==}
'@algolia/client-query-suggestions@5.48.1':
resolution: {integrity: sha512-TPKNPKfghKG/bMSc7mQYD9HxHRUkBZA4q1PEmHgICaSeHQscGqL4wBrKkhfPlDV1uYBKW02pbFMUhsOt7p4ZpA==}
engines: {node: '>= 14.0.0'}
'@algolia/client-search@5.48.0':
resolution: {integrity: sha512-RB9bKgYTVUiOcEb5bOcZ169jiiVW811dCsJoLT19DcbbFmU4QaK0ghSTssij35QBQ3SCOitXOUrHcGgNVwS7sQ==}
'@algolia/client-search@5.48.1':
resolution: {integrity: sha512-4Fu7dnzQyQmMFknYwTiN/HxPbH4DyxvQ1m+IxpPp5oslOgz8m6PG5qhiGbqJzH4HiT1I58ecDiCAC716UyVA8Q==}
engines: {node: '>= 14.0.0'}
'@algolia/ingestion@1.48.0':
resolution: {integrity: sha512-rhoSoPu+TDzDpvpk3cY/pYgbeWXr23DxnAIH/AkN0dUC+GCnVIeNSQkLaJ+CL4NZ51cjLIjksrzb4KC5Xu+ktw==}
'@algolia/ingestion@1.48.1':
resolution: {integrity: sha512-/RFq3TqtXDUUawwic/A9xylA2P3LDMO8dNhphHAUOU51b1ZLHrmZ6YYJm3df1APz7xLY1aht6okCQf+/vmrV9w==}
engines: {node: '>= 14.0.0'}
'@algolia/monitoring@1.48.0':
resolution: {integrity: sha512-aSe6jKvWt+8VdjOaq2ERtsXp9+qMXNJ3mTyTc1VMhNfgPl7ArOhRMRSQ8QBnY8ZL4yV5Xpezb7lAg8pdGrrulg==}
'@algolia/monitoring@1.48.1':
resolution: {integrity: sha512-Of0jTeAZRyRhC7XzDSjJef0aBkgRcvRAaw0ooYRlOw57APii7lZdq+layuNdeL72BRq1snaJhoMMwkmLIpJScw==}
engines: {node: '>= 14.0.0'}
'@algolia/recommend@5.48.0':
resolution: {integrity: sha512-p9tfI1bimAaZrdiVExL/dDyGUZ8gyiSHsktP1ZWGzt5hXpM3nhv4tSjyHtXjEKtA0UvsaHKwSfFE8aAAm1eIQA==}
'@algolia/recommend@5.48.1':
resolution: {integrity: sha512-bE7JcpFXzxF5zHwj/vkl2eiCBvyR1zQ7aoUdO+GDXxGp0DGw7nI0p8Xj6u8VmRQ+RDuPcICFQcCwRIJT5tDJFw==}
engines: {node: '>= 14.0.0'}
'@algolia/requester-browser-xhr@5.48.0':
resolution: {integrity: sha512-XshyfpsQB7BLnHseMinp3fVHOGlTv6uEHOzNK/3XrEF9mjxoZAcdVfY1OCXObfwRWX5qXZOq8FnrndFd44iVsQ==}
'@algolia/requester-browser-xhr@5.48.1':
resolution: {integrity: sha512-MK3wZ2koLDnvH/AmqIF1EKbJlhRS5j74OZGkLpxI4rYvNi9Jn/C7vb5DytBnQ4KUWts7QsmbdwHkxY5txQHXVw==}
engines: {node: '>= 14.0.0'}
'@algolia/requester-fetch@5.48.0':
resolution: {integrity: sha512-Q4XNSVQU89bKNAPuvzSYqTH9AcbOOiIo6AeYMQTxgSJ2+uvT78CLPMG89RIIloYuAtSfE07s40OLV50++l1Bbw==}
'@algolia/requester-fetch@5.48.1':
resolution: {integrity: sha512-2oDT43Y5HWRSIQMPQI4tA/W+TN/N2tjggZCUsqQV440kxzzoPGsvv9QP1GhQ4CoDa+yn6ygUsGp6Dr+a9sPPSg==}
engines: {node: '>= 14.0.0'}
'@algolia/requester-node-http@5.48.0':
resolution: {integrity: sha512-ZgxV2+5qt3NLeUYBTsi6PLyHcENQWC0iFppFZekHSEDA2wcLdTUjnaJzimTEULHIvJuLRCkUs4JABdhuJktEag==}
'@algolia/requester-node-http@5.48.1':
resolution: {integrity: sha512-xcaCqbhupVWhuBP1nwbk1XNvwrGljozutEiLx06mvqDf3o8cHyEgQSHS4fKJM+UAggaWVnnFW+Nne5aQ8SUJXg==}
engines: {node: '>= 14.0.0'}
'@antfu/install-pkg@1.1.0':
@@ -534,18 +534,14 @@ packages:
'@iconify/utils@3.1.0':
resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==}
'@isaacs/balanced-match@4.0.1':
resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
engines: {node: 20 || >=22}
'@isaacs/brace-expansion@5.0.1':
resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==}
engines: {node: 20 || >=22}
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
'@isaacs/cliui@9.0.0':
resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==}
engines: {node: '>=18'}
'@isaacs/fs-minipass@4.0.1':
resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
engines: {node: '>=18.0.0'}
@@ -610,66 +606,79 @@ packages:
resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==}
cpu: [arm]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-arm-musleabihf@4.57.1':
resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==}
cpu: [arm]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-arm64-gnu@4.57.1':
resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-arm64-musl@4.57.1':
resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-loong64-gnu@4.57.1':
resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==}
cpu: [loong64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-loong64-musl@4.57.1':
resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==}
cpu: [loong64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-ppc64-gnu@4.57.1':
resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-ppc64-musl@4.57.1':
resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==}
cpu: [ppc64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-riscv64-gnu@4.57.1':
resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-riscv64-musl@4.57.1':
resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==}
cpu: [riscv64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-s390x-gnu@4.57.1':
resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-x64-gnu@4.57.1':
resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-x64-musl@4.57.1':
resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==}
cpu: [x64]
os: [linux]
libc: [musl]
'@rollup/rollup-openbsd-x64@4.57.1':
resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==}
@@ -865,11 +874,11 @@ packages:
'@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
'@types/node@22.19.10':
resolution: {integrity: sha512-tF5VOugLS/EuDlTBijk0MqABfP8UxgYazTLo3uIn3b4yJgg26QRbVYJYsDtHrjdDUIRfP70+VfhTTc+CE1yskw==}
'@types/node@22.19.11':
resolution: {integrity: sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==}
'@types/node@25.2.2':
resolution: {integrity: sha512-BkmoP5/FhRYek5izySdkOneRyXYN35I860MFAGupTdebyE66uZaR+bXLHq8k4DirE5DwQi3NuhvRU1jqTVwUrQ==}
'@types/node@25.2.3':
resolution: {integrity: sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==}
'@types/plist@3.0.5':
resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==}
@@ -1018,8 +1027,8 @@ packages:
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
algoliasearch@5.48.0:
resolution: {integrity: sha512-aD8EQC6KEman6/S79FtPdQmB7D4af/etcRL/KwiKFKgAE62iU8c5PeEQvpvIcBPurC3O/4Lj78nOl7ZcoazqSw==}
algoliasearch@5.48.1:
resolution: {integrity: sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg==}
engines: {node: '>= 14.0.0'}
ansi-regex@5.0.1:
@@ -1079,6 +1088,10 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
balanced-match@4.0.2:
resolution: {integrity: sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==}
engines: {node: 20 || >=22}
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -1098,6 +1111,10 @@ packages:
brace-expansion@2.0.2:
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
brace-expansion@5.0.2:
resolution: {integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==}
engines: {node: 20 || >=22}
buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
@@ -1830,13 +1847,17 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
isexe@3.1.4:
resolution: {integrity: sha512-jCErc4h4RnTPjFq53G4whhjAMbUAqinGrCrTT4dmMNyi4zTthK+wphqbRLJtL4BN/Mq7Zzltr0m/b1X0m7PGFQ==}
engines: {node: '>=20'}
isexe@3.1.5:
resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==}
engines: {node: '>=18'}
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jackspeak@4.2.3:
resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==}
engines: {node: 20 || >=22}
jake@10.9.4:
resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==}
engines: {node: '>=10'}
@@ -1989,8 +2010,8 @@ packages:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
minimatch@10.1.2:
resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==}
minimatch@10.2.0:
resolution: {integrity: sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==}
engines: {node: 20 || >=22}
minimatch@3.1.2:
@@ -2424,8 +2445,8 @@ packages:
tabbable@6.4.0:
resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==}
tar@7.5.7:
resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==}
tar@7.5.9:
resolution: {integrity: sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==}
engines: {node: '>=18'}
deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
@@ -2680,117 +2701,117 @@ snapshots:
7zip-bin@5.2.0: {}
'@algolia/abtesting@1.14.0':
'@algolia/abtesting@1.14.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)(search-insights@2.17.3)':
'@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)(search-insights@2.17.3)':
dependencies:
'@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)(search-insights@2.17.3)
'@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)
'@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)(search-insights@2.17.3)
'@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
- search-insights
'@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)(search-insights@2.17.3)':
'@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)(search-insights@2.17.3)':
dependencies:
'@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)
'@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)
search-insights: 2.17.3
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
'@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)':
'@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)':
dependencies:
'@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)
'@algolia/client-search': 5.48.0
algoliasearch: 5.48.0
'@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)
'@algolia/client-search': 5.48.1
algoliasearch: 5.48.1
'@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)':
'@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)':
dependencies:
'@algolia/client-search': 5.48.0
algoliasearch: 5.48.0
'@algolia/client-search': 5.48.1
algoliasearch: 5.48.1
'@algolia/client-abtesting@5.48.0':
'@algolia/client-abtesting@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/client-analytics@5.48.0':
'@algolia/client-analytics@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/client-common@5.48.0': {}
'@algolia/client-common@5.48.1': {}
'@algolia/client-insights@5.48.0':
'@algolia/client-insights@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/client-personalization@5.48.0':
'@algolia/client-personalization@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/client-query-suggestions@5.48.0':
'@algolia/client-query-suggestions@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/client-search@5.48.0':
'@algolia/client-search@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/ingestion@1.48.0':
'@algolia/ingestion@1.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/monitoring@1.48.0':
'@algolia/monitoring@1.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/recommend@5.48.0':
'@algolia/recommend@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
'@algolia/requester-browser-xhr@5.48.0':
'@algolia/requester-browser-xhr@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-fetch@5.48.0':
'@algolia/requester-fetch@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/client-common': 5.48.1
'@algolia/requester-node-http@5.48.0':
'@algolia/requester-node-http@5.48.1':
dependencies:
'@algolia/client-common': 5.48.0
'@algolia/client-common': 5.48.1
'@antfu/install-pkg@1.1.0':
dependencies:
@@ -2840,9 +2861,9 @@ snapshots:
'@docsearch/css@3.8.2': {}
'@docsearch/js@3.8.2(@algolia/client-search@5.48.0)(search-insights@2.17.3)':
'@docsearch/js@3.8.2(@algolia/client-search@5.48.1)(search-insights@2.17.3)':
dependencies:
'@docsearch/react': 3.8.2(@algolia/client-search@5.48.0)(search-insights@2.17.3)
'@docsearch/react': 3.8.2(@algolia/client-search@5.48.1)(search-insights@2.17.3)
preact: 10.28.3
transitivePeerDependencies:
- '@algolia/client-search'
@@ -2851,12 +2872,12 @@ snapshots:
- react-dom
- search-insights
'@docsearch/react@3.8.2(@algolia/client-search@5.48.0)(search-insights@2.17.3)':
'@docsearch/react@3.8.2(@algolia/client-search@5.48.1)(search-insights@2.17.3)':
dependencies:
'@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)(search-insights@2.17.3)
'@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.48.0)(algoliasearch@5.48.0)
'@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)(search-insights@2.17.3)
'@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.48.1)(algoliasearch@5.48.1)
'@docsearch/css': 3.8.2
algoliasearch: 5.48.0
algoliasearch: 5.48.1
optionalDependencies:
search-insights: 2.17.3
transitivePeerDependencies:
@@ -2934,7 +2955,7 @@ snapshots:
ora: 5.4.1
read-binary-file-arch: 1.0.6
semver: 7.7.4
tar: 7.5.7
tar: 7.5.9
yargs: 17.7.2
transitivePeerDependencies:
- supports-color
@@ -3118,12 +3139,6 @@ snapshots:
'@iconify/types': 2.0.0
mlly: 1.8.0
'@isaacs/balanced-match@4.0.1': {}
'@isaacs/brace-expansion@5.0.1':
dependencies:
'@isaacs/balanced-match': 4.0.1
'@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2
@@ -3133,6 +3148,8 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
'@isaacs/cliui@9.0.0': {}
'@isaacs/fs-minipass@4.0.1':
dependencies:
minipass: 7.1.2
@@ -3298,7 +3315,7 @@ snapshots:
dependencies:
'@types/http-cache-semantics': 4.2.0
'@types/keyv': 3.1.4
'@types/node': 25.2.2
'@types/node': 25.2.3
'@types/responselike': 1.0.3
'@types/d3-array@3.2.2': {}
@@ -3426,7 +3443,7 @@ snapshots:
'@types/fs-extra@9.0.13':
dependencies:
'@types/node': 25.2.2
'@types/node': 25.2.3
'@types/geojson@7946.0.16': {}
@@ -3438,7 +3455,7 @@ snapshots:
'@types/keyv@3.1.4':
dependencies:
'@types/node': 25.2.2
'@types/node': 25.2.3
'@types/linkify-it@5.0.0': {}
@@ -3455,23 +3472,23 @@ snapshots:
'@types/ms@2.1.0': {}
'@types/node@22.19.10':
'@types/node@22.19.11':
dependencies:
undici-types: 6.21.0
'@types/node@25.2.2':
'@types/node@25.2.3':
dependencies:
undici-types: 7.16.0
'@types/plist@3.0.5':
dependencies:
'@types/node': 25.2.2
'@types/node': 25.2.3
xmlbuilder: 15.1.1
optional: true
'@types/responselike@1.0.3':
dependencies:
'@types/node': 25.2.2
'@types/node': 25.2.3
'@types/trusted-types@2.0.7':
optional: true
@@ -3485,18 +3502,18 @@ snapshots:
'@types/ws@8.18.1':
dependencies:
'@types/node': 25.2.2
'@types/node': 25.2.3
'@types/yauzl@2.10.3':
dependencies:
'@types/node': 25.2.2
'@types/node': 25.2.3
optional: true
'@ungap/structured-clone@1.3.0': {}
'@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@25.2.2))(vue@3.5.28(typescript@5.9.3))':
'@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@25.2.3))(vue@3.5.28(typescript@5.9.3))':
dependencies:
vite: 5.4.21(@types/node@25.2.2)
vite: 5.4.21(@types/node@25.2.3)
vue: 3.5.28(typescript@5.9.3)
'@vue/compiler-core@3.5.28':
@@ -3618,22 +3635,22 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
algoliasearch@5.48.0:
algoliasearch@5.48.1:
dependencies:
'@algolia/abtesting': 1.14.0
'@algolia/client-abtesting': 5.48.0
'@algolia/client-analytics': 5.48.0
'@algolia/client-common': 5.48.0
'@algolia/client-insights': 5.48.0
'@algolia/client-personalization': 5.48.0
'@algolia/client-query-suggestions': 5.48.0
'@algolia/client-search': 5.48.0
'@algolia/ingestion': 1.48.0
'@algolia/monitoring': 1.48.0
'@algolia/recommend': 5.48.0
'@algolia/requester-browser-xhr': 5.48.0
'@algolia/requester-fetch': 5.48.0
'@algolia/requester-node-http': 5.48.0
'@algolia/abtesting': 1.14.1
'@algolia/client-abtesting': 5.48.1
'@algolia/client-analytics': 5.48.1
'@algolia/client-common': 5.48.1
'@algolia/client-insights': 5.48.1
'@algolia/client-personalization': 5.48.1
'@algolia/client-query-suggestions': 5.48.1
'@algolia/client-search': 5.48.1
'@algolia/ingestion': 1.48.1
'@algolia/monitoring': 1.48.1
'@algolia/recommend': 5.48.1
'@algolia/requester-browser-xhr': 5.48.1
'@algolia/requester-fetch': 5.48.1
'@algolia/requester-node-http': 5.48.1
ansi-regex@5.0.1: {}
@@ -3678,12 +3695,12 @@ snapshots:
js-yaml: 4.1.1
json5: 2.2.3
lazy-val: 1.0.5
minimatch: 10.1.2
minimatch: 10.2.0
plist: 3.1.0
proper-lockfile: 4.1.2
resedit: 1.7.2
semver: 7.7.4
tar: 7.5.7
tar: 7.5.9
temp-file: 3.4.0
tiny-async-pool: 1.3.0
which: 5.0.0
@@ -3716,6 +3733,10 @@ snapshots:
balanced-match@1.0.2: {}
balanced-match@4.0.2:
dependencies:
jackspeak: 4.2.3
base64-js@1.5.1: {}
birpc@2.9.0: {}
@@ -3738,6 +3759,10 @@ snapshots:
dependencies:
balanced-match: 1.0.2
brace-expansion@5.0.2:
dependencies:
balanced-match: 4.0.2
buffer-crc32@0.2.13: {}
buffer-from@1.1.2: {}
@@ -3787,7 +3812,7 @@ snapshots:
minipass-pipeline: 1.2.4
p-map: 7.0.4
ssri: 12.0.0
tar: 7.5.7
tar: 7.5.9
unique-filename: 4.0.0
cacheable-lookup@5.0.4: {}
@@ -4258,7 +4283,7 @@ snapshots:
electron@37.10.3:
dependencies:
'@electron/get': 2.0.3
'@types/node': 22.19.10
'@types/node': 22.19.11
extract-zip: 2.0.1
transitivePeerDependencies:
- supports-color
@@ -4638,7 +4663,7 @@ snapshots:
isexe@2.0.0: {}
isexe@3.1.4: {}
isexe@3.1.5: {}
jackspeak@3.4.3:
dependencies:
@@ -4646,6 +4671,10 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
jackspeak@4.2.3:
dependencies:
'@isaacs/cliui': 9.0.0
jake@10.9.4:
dependencies:
async: 3.2.6
@@ -4819,9 +4848,9 @@ snapshots:
mimic-response@3.1.0: {}
minimatch@10.1.2:
minimatch@10.2.0:
dependencies:
'@isaacs/brace-expansion': 5.0.1
brace-expansion: 5.0.2
minimatch@3.1.2:
dependencies:
@@ -4912,7 +4941,7 @@ snapshots:
nopt: 8.1.0
proc-log: 5.0.0
semver: 7.7.4
tar: 7.5.7
tar: 7.5.9
tinyglobby: 0.2.15
which: 5.0.0
transitivePeerDependencies:
@@ -5289,7 +5318,7 @@ snapshots:
tabbable@6.4.0: {}
tar@7.5.7:
tar@7.5.9:
dependencies:
'@isaacs/fs-minipass': 4.0.1
chownr: 3.0.0
@@ -5405,25 +5434,25 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
vite@5.4.21(@types/node@25.2.2):
vite@5.4.21(@types/node@25.2.3):
dependencies:
esbuild: 0.21.5
postcss: 8.5.6
rollup: 4.57.1
optionalDependencies:
'@types/node': 25.2.2
'@types/node': 25.2.3
fsevents: 2.3.3
vitepress@1.6.4(@algolia/client-search@5.48.0)(@types/node@25.2.2)(axios@1.13.5)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.3):
vitepress@1.6.4(@algolia/client-search@5.48.1)(@types/node@25.2.3)(axios@1.13.5)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.3):
dependencies:
'@docsearch/css': 3.8.2
'@docsearch/js': 3.8.2(@algolia/client-search@5.48.0)(search-insights@2.17.3)
'@docsearch/js': 3.8.2(@algolia/client-search@5.48.1)(search-insights@2.17.3)
'@iconify-json/simple-icons': 1.2.70
'@shikijs/core': 2.5.0
'@shikijs/transformers': 2.5.0
'@shikijs/types': 2.5.0
'@types/markdown-it': 14.1.2
'@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@25.2.2))(vue@3.5.28(typescript@5.9.3))
'@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@25.2.3))(vue@3.5.28(typescript@5.9.3))
'@vue/devtools-api': 7.7.9
'@vue/shared': 3.5.28
'@vueuse/core': 12.8.2(typescript@5.9.3)
@@ -5432,7 +5461,7 @@ snapshots:
mark.js: 8.11.1
minisearch: 7.2.0
shiki: 2.5.0
vite: 5.4.21(@types/node@25.2.2)
vite: 5.4.21(@types/node@25.2.3)
vue: 3.5.28(typescript@5.9.3)
optionalDependencies:
postcss: 8.5.6
@@ -5500,7 +5529,7 @@ snapshots:
which@5.0.0:
dependencies:
isexe: 3.1.4
isexe: 3.1.5
wrap-ansi@7.0.0:
dependencies: