mirror of
https://github.com/ilyhalight/voice-over-translation.git
synced 2026-10-18 23:39:58 +00:00
build: improved DX with autobuild using bun
This commit is contained in:
parent
039ddaef98
commit
2c61a877a1
24 changed files with 541 additions and 381 deletions
22
.github/workflows/build.yml
vendored
22
.github/workflows/build.yml
vendored
|
|
@ -18,18 +18,18 @@ jobs:
|
|||
node-version: [22.x]
|
||||
steps:
|
||||
- name: Checkout 🛎️
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
- name: Setup Node.js ${{ matrix.node-version }} 🛎️
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Install 🔧
|
||||
shell: bash
|
||||
run: npm install
|
||||
- name: Build 🔧
|
||||
run: npm run build:all
|
||||
run: npm run build:gm
|
||||
- name: Upload Artifact 🚀
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: vot-${{ matrix.node-version }}
|
||||
path: dist/vot*.user.js
|
||||
|
|
@ -41,9 +41,9 @@ jobs:
|
|||
node-version: [22.x]
|
||||
steps:
|
||||
- name: Checkout 🛎️
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
- name: Setup Node.js ${{ matrix.node-version }} 🛎️
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Install 🔧
|
||||
|
|
@ -52,7 +52,7 @@ jobs:
|
|||
- name: Build extension 🔧
|
||||
run: npm run build:ext
|
||||
- name: Upload extension artifacts 🚀
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: vot-extension-${{ matrix.node-version }}
|
||||
path: |
|
||||
|
|
@ -63,18 +63,18 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout 🛎️
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
- name: Setup Bun.sh 🛎️
|
||||
uses: oven-sh/setup-bun@v1
|
||||
uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version: latest
|
||||
- name: Install 🔧
|
||||
shell: bash
|
||||
run: bun install
|
||||
- name: Build 🔧
|
||||
run: bun run build:all
|
||||
run: bun run build:gm
|
||||
- name: Upload Artifact 🚀
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: vot-bun
|
||||
path: dist/vot*.user.js
|
||||
|
|
|
|||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -18,13 +18,13 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
path: vot
|
||||
pattern: vot-*
|
||||
merge-multiple: true
|
||||
- name: Create release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v3
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
tag_name: ${{ github.ref }}
|
||||
|
|
|
|||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,4 +1,4 @@
|
|||
arch*.txt
|
||||
.output
|
||||
|
||||
keys/
|
||||
|
||||
|
|
|
|||
58
README-EN.md
58
README-EN.md
|
|
@ -189,37 +189,53 @@ bun install
|
|||
|
||||
3. Build targets:
|
||||
|
||||
3.0. Userscript (regular build):
|
||||
### Automatic Build
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
Automatic builds are available only when using [Bun.sh][bun-link]:
|
||||
|
||||
3.1. Userscript (minified build):
|
||||
```bash
|
||||
bun run autobuild
|
||||
```
|
||||
|
||||
```bash
|
||||
npm run build:min
|
||||
```
|
||||
After the build completes, the `.output` directory will contain build artifacts ready for publishing to the Chrome and Firefox extension stores.
|
||||
|
||||
3.2. Userscript (both variants):
|
||||
The `dist-ext` directory contains non-store builds distributed as `.zip` archives (for Chrome) and `.xpi` archives (for Firefox).
|
||||
|
||||
```bash
|
||||
npm run build:all
|
||||
```
|
||||
The `dist` directory contains the userscript build, which can be installed using [Tampermonkey][tampermonkey-link] or other userscript managers.
|
||||
|
||||
3.3. Native Chrome/Firefox extension packages:
|
||||
### Manual Build
|
||||
|
||||
```bash
|
||||
npm run build:ext
|
||||
```
|
||||
Userscript (standard build):
|
||||
|
||||
3.4. Development userscript build with sourcemaps:
|
||||
```bash
|
||||
npm run build:gm:default
|
||||
```
|
||||
|
||||
```bash
|
||||
npm run build:dev
|
||||
```
|
||||
Userscript (minified build):
|
||||
|
||||
Userscript artifacts are generated in `dist/`, native extension artifacts in `dist-ext/`.
|
||||
```bash
|
||||
npm run build:gm:min
|
||||
```
|
||||
|
||||
Userscript (both builds):
|
||||
|
||||
```bash
|
||||
npm run build:gm
|
||||
```
|
||||
|
||||
Native Chrome/Firefox extensions:
|
||||
|
||||
```bash
|
||||
npm run build:ext
|
||||
```
|
||||
|
||||
Development userscript build with source maps:
|
||||
|
||||
```bash
|
||||
npm run build:dev
|
||||
```
|
||||
|
||||
Userscript build artifacts are placed in `dist/`, while native extension builds are placed in `dist-ext/`.
|
||||
|
||||
## Customization of appearance:
|
||||
|
||||
|
|
|
|||
56
README.md
56
README.md
|
|
@ -189,35 +189,51 @@ bun install
|
|||
|
||||
3. Сборка расширения:
|
||||
|
||||
3.0. Userscript (обычная сборка):
|
||||
### Автоматическая сборка
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
Автоматическую сборку можно выполнить только с помощью [Bun.sh][bun-link]:
|
||||
|
||||
3.1. Userscript (минифицированная сборка):
|
||||
```bash
|
||||
bun run autobuild
|
||||
```
|
||||
|
||||
```bash
|
||||
npm run build:min
|
||||
```
|
||||
После завершения в папке `.output` появятся артефакты сборки подготовленные для публикации в магазинах расширений Chrome и Firefox.
|
||||
|
||||
3.2. Userscript (обе версии подряд):
|
||||
В папке `dist-ext` будет находится non-store сборка для распространения в виде `.zip`-архива (для Chrome) и `.xpi`-архива (для Firefox).
|
||||
|
||||
```bash
|
||||
npm run build:all
|
||||
```
|
||||
В папке `dist` будет находится сборка в виде юзерскрипта для установки через [Tampermonkey][tampermonkey-link] или другие загрузчики юзерскриптов.
|
||||
|
||||
3.3. Нативные расширения Chrome/Firefox:
|
||||
### Ручная сборка
|
||||
|
||||
```bash
|
||||
npm run build:ext
|
||||
```
|
||||
Userscript (обычная сборка):
|
||||
|
||||
3.4. Dev-сборка userscript с sourcemap:
|
||||
```bash
|
||||
npm run build:gm:default
|
||||
```
|
||||
|
||||
```bash
|
||||
npm run build:dev
|
||||
```
|
||||
Userscript (минифицированная сборка):
|
||||
|
||||
```bash
|
||||
npm run build:gm:min
|
||||
```
|
||||
|
||||
Userscript (обе версии):
|
||||
|
||||
```bash
|
||||
npm run build:gm
|
||||
```
|
||||
|
||||
Нативные расширения Chrome/Firefox:
|
||||
|
||||
```bash
|
||||
npm run build:ext
|
||||
```
|
||||
|
||||
Dev-сборка userscript с sourcemap:
|
||||
|
||||
```bash
|
||||
npm run build:dev
|
||||
```
|
||||
|
||||
Артефакты userscript попадают в `dist/`, сборка нативных расширений — в `dist-ext/`.
|
||||
|
||||
|
|
|
|||
105
bun.lock
105
bun.lock
|
|
@ -6,14 +6,15 @@
|
|||
"name": "voice-over-translation",
|
||||
"dependencies": {
|
||||
"@toil/gm-types": "^1.0.5",
|
||||
"@vot.js/core": "^3.0.0",
|
||||
"@vot.js/ext": "^3.0.0",
|
||||
"@vot.js/shared": "^3.0.0",
|
||||
"@vot.js/core": "^3.0.1",
|
||||
"@vot.js/ext": "^3.0.1",
|
||||
"@vot.js/shared": "^3.0.1",
|
||||
"bowser": "^2.14.1",
|
||||
"chaimu": "^1.1.0",
|
||||
"lit-html": "^3.3.3",
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.5.6",
|
||||
"@crxjs/vite-plugin": "^2.7.1",
|
||||
"@toil/translate": "^1.10.0",
|
||||
"@types/bun": "^1.3.14",
|
||||
|
|
@ -27,55 +28,73 @@
|
|||
},
|
||||
},
|
||||
"packages": {
|
||||
"@biomejs/biome": ["@biomejs/biome@2.5.6", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.5.6", "@biomejs/cli-darwin-x64": "2.5.6", "@biomejs/cli-linux-arm64": "2.5.6", "@biomejs/cli-linux-arm64-musl": "2.5.6", "@biomejs/cli-linux-x64": "2.5.6", "@biomejs/cli-linux-x64-musl": "2.5.6", "@biomejs/cli-win32-arm64": "2.5.6", "@biomejs/cli-win32-x64": "2.5.6" }, "bin": { "biome": "bin/biome" } }, "sha512-lxVNjv7UF6KfhMJfL9gaUHbWdJdHbsAj6OSmwSYNdhRuG67NxNQ4Xdvh3TUxsSK9sBzJBQhEJj3AopmmNJ5pSA=="],
|
||||
|
||||
"@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.5.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zMOLZP4oMrjh6m1zcSj1ud2awUPgTuMVbmQhYYWL7J8HwCnbHHBvTm7VBTRuY7epT5bez76IpKYQ11ZAqHFlnw=="],
|
||||
|
||||
"@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.5.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-JAC1VqzvO7Th5ZplU0G2uGfkZbxEe9uDDektPAhF0JLusoz1w+T4okp2bkykI0bbaO2vslKiRfj4gU43JaGreA=="],
|
||||
|
||||
"@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.5.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-6XsYwCFkp5sMxl85ffhgeGpGgs6A7dRYFnkceZ7WVxvycuTnGdD5xa534Z3xfrBQ0JCMK/mujT6ZNPJoghedwg=="],
|
||||
|
||||
"@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.5.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-eUa3jeeYvfMt19LBeh6E5PUZpxnTC4JqNWo+EDjTtQjAr2xLGnWaxACtVU1DQqmHYbvThlJzLX+ZsYgrqh2qVw=="],
|
||||
|
||||
"@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.5.6", "", { "os": "linux", "cpu": "x64" }, "sha512-Pop9VXCFUhFTMfFefZ39S+u2rOPyNp5iHlxbZRwXGACHLy2r0jjiRgJHmaEKJzL3SyxlVeGShXhvvElvWowonA=="],
|
||||
|
||||
"@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.5.6", "", { "os": "linux", "cpu": "x64" }, "sha512-2Vp13QdKysH3HIWLaYLhUUwbK+jbZonJD1K+Lr0d0RO4wH7mkYd43vJixEDm8cUWrowoRz4UUHF1nm9Ae7ym8A=="],
|
||||
|
||||
"@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.5.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-tDGshcm6BdkZOCGnTDX0Y8/U4IfBSlnUU7T56nNDuPEfed+aHg+u8G36NB43fJVl0Os6+QURXIE1yuD7AaEofA=="],
|
||||
|
||||
"@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.5.6", "", { "os": "win32", "cpu": "x64" }, "sha512-WN05KwXnTO/2J45RQPvzZMXf7tZUIofHoR35xIPfCo7pQ2RFidxI8sfb5mGsaTxdMmEOzHzOPRCdA5/fCpc7xQ=="],
|
||||
|
||||
"@bufbuild/protobuf": ["@bufbuild/protobuf@2.2.3", "", {}, "sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg=="],
|
||||
|
||||
"@crxjs/vite-plugin": ["@crxjs/vite-plugin@2.7.1", "", { "dependencies": { "@webcomponents/custom-elements": "^1.5.0", "acorn-walk": "^8.3.5", "convert-source-map": "^2.0.0", "debug": "^4.4.3", "es-module-lexer": "^0.10.0", "fs-extra": "^11.3.5", "jsesc": "^3.0.2", "magic-string": "^0.30.12", "node-html-parser": "^7.1.0", "pathe": "^2.0.1", "picocolors": "^1.1.1", "rollup": "2.80.0", "rxjs": "7.5.7", "tinyglobby": "^0.2.17" }, "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-mn77Lc1ilIvbO7ZqijjNy+AnRgc8srkfHOtV6HrGrYZgRe8YI3aIcSjHJCU5Kq75SejEZGrdAoHdn3gBGeKpEA=="],
|
||||
|
||||
"@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="],
|
||||
"@emnapi/core": ["@emnapi/core@2.0.0-alpha.3", "", { "dependencies": { "@emnapi/wasi-threads": "2.0.1", "tslib": "^2.4.0" } }, "sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g=="],
|
||||
|
||||
"@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="],
|
||||
"@emnapi/runtime": ["@emnapi/runtime@2.0.0-alpha.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-hFPAhMUjJD9BSyCANEISPOogeXC9Zo9ZQl7L6vKnaVsMkCtzznaW/naYypeyl0Gv5rYfWYsZbpixTMpjDJzQeA=="],
|
||||
|
||||
"@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="],
|
||||
"@emnapi/wasi-threads": ["@emnapi/wasi-threads@2.0.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9DsSk+o5NBX0CCJT8s0EROGSGxjR/tKu6aBTaVyq+SjAEQH4XcdcRxPBRzsBLizTTJ49MJjF+jgu3qnO9GLQcQ=="],
|
||||
|
||||
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
|
||||
|
||||
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="],
|
||||
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.2.2", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" } }, "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw=="],
|
||||
|
||||
"@oxc-project/types": ["@oxc-project/types@0.139.0", "", {}, "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw=="],
|
||||
"@oxc-project/types": ["@oxc-project/types@0.142.0", "", {}, "sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ=="],
|
||||
|
||||
"@parcel/watcher": ["@parcel/watcher@2.5.0", "", { "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", "micromatch": "^4.0.5", "node-addon-api": "^7.0.0" }, "optionalDependencies": { "@parcel/watcher-win32-x64": "2.5.0" } }, ""],
|
||||
|
||||
"@parcel/watcher-win32-x64": ["@parcel/watcher-win32-x64@2.5.0", "", { "os": "win32", "cpu": "x64" }, ""],
|
||||
|
||||
"@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.1.5", "", { "os": "android", "cpu": "arm64" }, "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ=="],
|
||||
"@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.2.1", "", { "os": "android", "cpu": "arm64" }, "sha512-02hOeOSryYxVrOIphmLAsqnCJWxwlzFk+pEt/N/i6OgT3lShHO7xGCU5cpgchRDHboAEbSjzgGh+O/u1GswQmA=="],
|
||||
|
||||
"@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.1.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw=="],
|
||||
"@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.2.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-fMsTOnN0OjFm3CyppWPitKnc8UlliVARUULW6cfU6AIqjdtgmSFWSk9vecHzZduv/yMWIHDlRhM1e8Iff9uAfA=="],
|
||||
|
||||
"@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.1.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g=="],
|
||||
"@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.2.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-1wjKdz/XLGKHaTNHjQveQ/B23TKx4ItAqm1JbyVuvNPc4Ze0Fb48s49TAd/2zcplPl8okE/UbTgmlVfwT7eFeQ=="],
|
||||
|
||||
"@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.1.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA=="],
|
||||
"@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.2.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Fa0jHR07E7YBN4vOEsbVf2briYNsuOowfLJaXULZM0ldMlaCaj2LJgLMbMe4iacRyZmvR8efFhgR9wKuGclQUg=="],
|
||||
|
||||
"@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.1.5", "", { "os": "linux", "cpu": "arm" }, "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw=="],
|
||||
"@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.2.1", "", { "os": "linux", "cpu": "arm" }, "sha512-pzkgu1SSHGgRRyRZ4fbmSgmajbVt+epaLP99NDjFft69v/ypfTi6swBMiVdh2EkQ0OSnHE1lZDM7DRGkyAzUpA=="],
|
||||
|
||||
"@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.1.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q=="],
|
||||
"@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.2.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-QI5SEDY8cbiYWHx0VO4vIc3UlS6a32vXHjU8Qy/17adEmZIPuByJg13UEvo9c/UCiUkdcVWY83C+b+JrwnNyUg=="],
|
||||
|
||||
"@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.1.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA=="],
|
||||
"@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.2.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-Sm41FyCeXqmYcERoYOCbGIL5hNfd8w9LQ7Y61Bev48HkcjaJqV/iiVOaiDxjVTRMS+QKrZmD8cfPt4uMVnvM+A=="],
|
||||
|
||||
"@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.1.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg=="],
|
||||
"@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.2.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-2x+WhXTGl9yJYPbltW/BSEPTVz9OIWQyER4N+gJEDWkkn904eRcBzELqh/Hf7K0w/ubGbKNMv0ZC+94QK/IFEg=="],
|
||||
|
||||
"@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.1.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA=="],
|
||||
"@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.2.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-eEjmQpuRQayHPWWnywaWHkFT3ToPbP3RYy42VVd/B9aBGDA+Ol25EIWHxKQST3IiWJjikCWUF7KtbfqwZrzVwQ=="],
|
||||
|
||||
"@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.1.5", "", { "os": "linux", "cpu": "x64" }, "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ=="],
|
||||
"@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.2.1", "", { "os": "linux", "cpu": "x64" }, "sha512-/Orga1fZYkLc/56jBICcHrKchl8Z2UKdDSr3LG9ToWO1lQ6a4Livk9Xz+9WN91zsz5QR3XQz2NNoSDEvP6qadw=="],
|
||||
|
||||
"@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.1.5", "", { "os": "linux", "cpu": "x64" }, "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg=="],
|
||||
"@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.2.1", "", { "os": "linux", "cpu": "x64" }, "sha512-xxBJRL+0q0Kce7orznGWLuylHDY65vuARXZRpX+hPdv+DqK2c3NlCsVA98tlWzWNEE7yPqA/1NQ5nnCrj49Y5A=="],
|
||||
|
||||
"@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.1.5", "", { "os": "none", "cpu": "arm64" }, "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw=="],
|
||||
"@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.2.1", "", { "os": "none", "cpu": "arm64" }, "sha512-M6AdXIXw3s+/8XpKMzdGDEXGS1S7kwUsy+rcTIUIOx5Ge4nXKCtAFHFV9YKkXvGcC5WMoTjAteLzlsQROVI0Yw=="],
|
||||
|
||||
"@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.1.5", "", { "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.1.6" }, "cpu": "none" }, "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA=="],
|
||||
"@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.2.1", "", { "dependencies": { "@emnapi/core": "2.0.0-alpha.3", "@emnapi/runtime": "2.0.0-alpha.3", "@napi-rs/wasm-runtime": "^1.2.0" } }, "sha512-/TX0SoRGojHzSAHpfVBbavRVSazg5U3h3Y3VXfcc0cdugq6kxdqw8LPGFiPr+/7gE/60zRcsOY2Vi9b9eT0jww=="],
|
||||
|
||||
"@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.1.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw=="],
|
||||
"@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.2.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-EvRrivJieyHG+AO9lleZWgq+g0+S7oV2C51yuqlcyU/R9net+sI4Pj0F+lUoP2bEr6TWX3SqFaaS0SzfLxSzkw=="],
|
||||
|
||||
"@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.1.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA=="],
|
||||
"@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.2.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Z4eCmn5QJ/5+azF9knpLWKfVd9aidn0mAe9TpJgvBLId9Ax3t0+JVxBmT25Bv7NBbVW1TZyKjQjQReouMeH5UQ=="],
|
||||
|
||||
"@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="],
|
||||
|
||||
|
|
@ -91,11 +110,11 @@
|
|||
|
||||
"@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, ""],
|
||||
|
||||
"@vot.js/core": ["@vot.js/core@3.0.1", "", { "dependencies": { "@vot.js/shared": "^3.0.1" }, "peerDependencies": { "typescript": "^6.0.0" } }, "sha512-mwNV6MG0VAZU5hgcvjUpphMZvX/bEl2HVI3VtRCneNuQv0FwZ+PmjfaX6ULGjei2/QoYpD1hoabrkE/+1oUEGw=="],
|
||||
"@vot.js/core": ["@vot.js/core@3.0.2", "", { "dependencies": { "@vot.js/shared": "^3.0.2" }, "peerDependencies": { "typescript": "^6.0.0" } }, "sha512-MzvV31J++VTIc+OWv/vXh52cPtKBnfuOfelI7O4kaEHCPtn36XAMqPyaI7CjidugB54kIfD9mBvLnJaBWYhtkA=="],
|
||||
|
||||
"@vot.js/ext": ["@vot.js/ext@3.0.1", "", { "dependencies": { "@vot.js/core": "^3.0.1", "@vot.js/shared": "^3.0.1" }, "peerDependencies": { "typescript": "^6.0.0" } }, "sha512-s44ZyagvldLyTfjhtg1uxQ3j9qPpSfmVuQaDbEOcUPZSthb18RsW0JU0FD3ac0znR6IH/Z5BIwgBirC8TTDVyQ=="],
|
||||
"@vot.js/ext": ["@vot.js/ext@3.0.2", "", { "dependencies": { "@vot.js/core": "^3.0.2", "@vot.js/shared": "^3.0.2" }, "peerDependencies": { "typescript": "^6.0.0" } }, "sha512-8S0s7ABCYSEszOUkVFoxDP07dew26z3XF6LMMdbDxEHwD2IfuKVhPJwa+0dG5dN2rcwb6AJW1lig8cgkl7AkNg=="],
|
||||
|
||||
"@vot.js/shared": ["@vot.js/shared@3.0.1", "", { "dependencies": { "@bufbuild/protobuf": "^2.0.0" }, "peerDependencies": { "typescript": "^6.0.0" } }, "sha512-zuOHMBXJyw3T7whdsv4Vx9ybrQxoDqMRtBsJwrNwoMaKVmIdmTGZCBf5eIwZyJpYvzsldaDbBIG4WsOOb2BteQ=="],
|
||||
"@vot.js/shared": ["@vot.js/shared@3.0.2", "", { "dependencies": { "@bufbuild/protobuf": "^2.0.0" }, "peerDependencies": { "typescript": "^6.0.0" } }, "sha512-FvAM7TDlNyUrGio+uu0FYRO8rkN++3gTtEqKRjG2gqBs5ceeGQYBTr5j83qxjsNp3HcwJp0qJiL867ehW5F46g=="],
|
||||
|
||||
"@webcomponents/custom-elements": ["@webcomponents/custom-elements@1.6.0", "", {}, "sha512-CqTpxOlUCPWRNUPZDxT5v2NnHXA4oox612iUGnmTUGQFhZ1Gkj8kirtl/2wcF6MqX7+PqqicZzOCBKKfIn0dww=="],
|
||||
|
||||
|
|
@ -193,29 +212,29 @@
|
|||
|
||||
"lefthook-windows-x64": ["lefthook-windows-x64@2.1.10", "", { "os": "win32", "cpu": "x64" }, "sha512-c/XH8YZtylG4XaxzqFfXluvq2LXq2W/p54Bnzn3+Z7E5X2Fk3JlFJAibulMbIt2+w8T7UI/r97ok5GqE4kGaeA=="],
|
||||
|
||||
"lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="],
|
||||
"lightningcss": ["lightningcss@1.33.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.33.0", "lightningcss-darwin-arm64": "1.33.0", "lightningcss-darwin-x64": "1.33.0", "lightningcss-freebsd-x64": "1.33.0", "lightningcss-linux-arm-gnueabihf": "1.33.0", "lightningcss-linux-arm64-gnu": "1.33.0", "lightningcss-linux-arm64-musl": "1.33.0", "lightningcss-linux-x64-gnu": "1.33.0", "lightningcss-linux-x64-musl": "1.33.0", "lightningcss-win32-arm64-msvc": "1.33.0", "lightningcss-win32-x64-msvc": "1.33.0" } }, "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA=="],
|
||||
|
||||
"lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="],
|
||||
"lightningcss-android-arm64": ["lightningcss-android-arm64@1.33.0", "", { "os": "android", "cpu": "arm64" }, "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg=="],
|
||||
|
||||
"lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="],
|
||||
"lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.33.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg=="],
|
||||
|
||||
"lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="],
|
||||
"lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.33.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ=="],
|
||||
|
||||
"lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="],
|
||||
"lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.33.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg=="],
|
||||
|
||||
"lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="],
|
||||
"lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.33.0", "", { "os": "linux", "cpu": "arm" }, "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ=="],
|
||||
|
||||
"lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="],
|
||||
"lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg=="],
|
||||
|
||||
"lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="],
|
||||
"lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ=="],
|
||||
|
||||
"lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="],
|
||||
"lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg=="],
|
||||
|
||||
"lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="],
|
||||
"lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw=="],
|
||||
|
||||
"lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="],
|
||||
"lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.33.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA=="],
|
||||
|
||||
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="],
|
||||
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.33.0", "", { "os": "win32", "cpu": "x64" }, "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA=="],
|
||||
|
||||
"lit-html": ["lit-html@3.3.3", "", { "dependencies": { "@types/trusted-types": "^2.0.2" } }, "sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA=="],
|
||||
|
||||
|
|
@ -229,7 +248,7 @@
|
|||
|
||||
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
||||
|
||||
"nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="],
|
||||
"nanoid": ["nanoid@3.3.16", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q=="],
|
||||
|
||||
"node-addon-api": ["node-addon-api@7.1.1", "", {}, ""],
|
||||
|
||||
|
|
@ -251,13 +270,13 @@
|
|||
|
||||
"pidtree": ["pidtree@1.0.0", "", { "bin": { "pidtree": "bin/pidtree.js" } }, "sha512-avfAvjB9Dd0wdj3rjJX//yS+G79OO0KrS5pJHFJENjYGX6N4SMgEDBBI/yFy0lloOYSaC6XQxzpOAMPfSYFV/Q=="],
|
||||
|
||||
"postcss": ["postcss@8.5.19", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ=="],
|
||||
"postcss": ["postcss@8.5.25", "", { "dependencies": { "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw=="],
|
||||
|
||||
"read-package-json-fast": ["read-package-json-fast@6.0.0", "", { "dependencies": { "json-parse-even-better-errors": "^6.0.0", "npm-normalize-package-bin": "^6.0.0" } }, "sha512-PNaGjoCnw9DBA2Kl8D+8po957z778q/HOPuY2u3Bkw/JO3eC8MDx7jn/PgMtSgpcBbs+6UOjDbwReGpXmRvs0g=="],
|
||||
|
||||
"readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="],
|
||||
|
||||
"rolldown": ["rolldown@1.1.5", "", { "dependencies": { "@oxc-project/types": "=0.139.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.1.5", "@rolldown/binding-darwin-arm64": "1.1.5", "@rolldown/binding-darwin-x64": "1.1.5", "@rolldown/binding-freebsd-x64": "1.1.5", "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", "@rolldown/binding-linux-arm64-gnu": "1.1.5", "@rolldown/binding-linux-arm64-musl": "1.1.5", "@rolldown/binding-linux-ppc64-gnu": "1.1.5", "@rolldown/binding-linux-s390x-gnu": "1.1.5", "@rolldown/binding-linux-x64-gnu": "1.1.5", "@rolldown/binding-linux-x64-musl": "1.1.5", "@rolldown/binding-openharmony-arm64": "1.1.5", "@rolldown/binding-wasm32-wasi": "1.1.5", "@rolldown/binding-win32-arm64-msvc": "1.1.5", "@rolldown/binding-win32-x64-msvc": "1.1.5" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA=="],
|
||||
"rolldown": ["rolldown@1.2.1", "", { "dependencies": { "@oxc-project/types": "=0.142.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.2.1", "@rolldown/binding-darwin-arm64": "1.2.1", "@rolldown/binding-darwin-x64": "1.2.1", "@rolldown/binding-freebsd-x64": "1.2.1", "@rolldown/binding-linux-arm-gnueabihf": "1.2.1", "@rolldown/binding-linux-arm64-gnu": "1.2.1", "@rolldown/binding-linux-arm64-musl": "1.2.1", "@rolldown/binding-linux-ppc64-gnu": "1.2.1", "@rolldown/binding-linux-s390x-gnu": "1.2.1", "@rolldown/binding-linux-x64-gnu": "1.2.1", "@rolldown/binding-linux-x64-musl": "1.2.1", "@rolldown/binding-openharmony-arm64": "1.2.1", "@rolldown/binding-wasm32-wasi": "1.2.1", "@rolldown/binding-win32-arm64-msvc": "1.2.1", "@rolldown/binding-win32-x64-msvc": "1.2.1" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-4FKJhg8d3OiyQOA6Q1Q0hoFFpW9/OoX+VsHzpECsdsIZoOArrAK90gl59YK/Z+gnDel45bgJZK03ozH/9bCqEw=="],
|
||||
|
||||
"rollup": ["rollup@2.80.0", "", { "optionalDependencies": { "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ=="],
|
||||
|
||||
|
|
@ -287,12 +306,10 @@
|
|||
|
||||
"universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="],
|
||||
|
||||
"vite": ["vite@8.1.5", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.5", "postcss": "^8.5.17", "rolldown": "~1.1.5", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.3.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw=="],
|
||||
"vite": ["vite@8.2.0", "", { "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.5", "postcss": "^8.5.23", "rolldown": "~1.2.0", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ=="],
|
||||
|
||||
"which": ["which@7.0.0", "", { "dependencies": { "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" } }, "sha512-RancgH2dmbLdHl6LRhEqvklWMgl/Hdnun0Y90KhBOLkMefg8Qa7/Zel8Sm+8HEcP6DEjzsWzpkuBQEZok58isA=="],
|
||||
|
||||
"yaml": ["yaml@2.9.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA=="],
|
||||
|
||||
"zip-a-folder": ["zip-a-folder@6.1.3", "", { "dependencies": { "lzma": "^2.3.2", "tinyglobby": "^0.2.17" }, "bin": { "zip-a-folder": "dist/cli.mjs" } }, "sha512-6A4bKRyxLv9oVZwcBuF8zkV9YOdGD0XCVUgCKWiuK9lBXTQ3WSDYzGsA0ROSFfX2alGfvpf+zYtrfof2DFOGzg=="],
|
||||
|
||||
"cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" } }, ""],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<app appid='dnioaagdjgpcokckfpokpndoblenmfcg'>
|
||||
<updatecheck codebase='https://raw.githubusercontent.com/ilyhalight/voice-over-translation/master/dist-ext/vot-extension-chrome.zip' version='1.11.7' />
|
||||
<updatecheck codebase='https://raw.githubusercontent.com/ilyhalight/voice-over-translation/master/dist-ext/vot-extension-chrome.zip' version='1.11.8' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -3,7 +3,7 @@
|
|||
"vot-ext@firefox": {
|
||||
"updates": [
|
||||
{
|
||||
"version": "1.11.7",
|
||||
"version": "1.11.8",
|
||||
"update_link": "https://raw.githubusercontent.com/ilyhalight/voice-over-translation/master/dist-ext/vot-extension-firefox.xpi"
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Binary file not shown.
113
dist/vot-min.user.js
vendored
113
dist/vot-min.user.js
vendored
File diff suppressed because one or more lines are too long
356
dist/vot.user.js
vendored
356
dist/vot.user.js
vendored
|
|
@ -222,7 +222,6 @@
|
|||
// @connect raw.githubusercontent.com
|
||||
// @connect vimeo.com
|
||||
// @connect toil.cc
|
||||
// @connect deno.dev
|
||||
// @connect onrender.com
|
||||
// @connect workers.dev
|
||||
// @connect eu.cc
|
||||
|
|
@ -285,7 +284,7 @@ var vot = (function(exports) {
|
|||
}
|
||||
return to;
|
||||
};
|
||||
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
||||
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
||||
value: mod,
|
||||
enumerable: true
|
||||
}) : target, mod));
|
||||
|
|
@ -1114,12 +1113,13 @@ var vot = (function(exports) {
|
|||
hostWorker: "vot-worker.toil.cc",
|
||||
mediaProxy: "media-proxy.transly.eu.cc",
|
||||
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 YaBrowser/26.6.0.0 Safari/537.36",
|
||||
componentVersion: "26.6.3.870",
|
||||
componentVersion: "26.6.4.760",
|
||||
chromiumRevision: "760",
|
||||
hmac: "bt8xH3VOlb4mqf0nqAibnDOoiPlXsisf",
|
||||
defaultDuration: 310,
|
||||
minChunkSize: 5295308,
|
||||
loggerLevel: 1,
|
||||
version: "3.0.1"
|
||||
version: "3.0.2"
|
||||
};
|
||||
//#endregion
|
||||
//#region node_modules/@vot.js/shared/dist/types/logger.js
|
||||
|
|
@ -3216,14 +3216,14 @@ var vot = (function(exports) {
|
|||
deviceId: void 0,
|
||||
firstRequest: false,
|
||||
duration: 0,
|
||||
unknown0: 0,
|
||||
unknown0: false,
|
||||
language: "",
|
||||
forceSourceLang: false,
|
||||
unknown1: 0,
|
||||
unknown1: false,
|
||||
translationHelp: [],
|
||||
wasStream: false,
|
||||
responseLanguage: "",
|
||||
unknown2: 0,
|
||||
unknown2: false,
|
||||
unknown3: 0,
|
||||
bypassCache: false,
|
||||
useLivelyVoice: false,
|
||||
|
|
@ -3236,14 +3236,14 @@ var vot = (function(exports) {
|
|||
if (message.deviceId !== void 0) writer.uint32(34).string(message.deviceId);
|
||||
if (message.firstRequest !== false) writer.uint32(40).bool(message.firstRequest);
|
||||
if (message.duration !== 0) writer.uint32(49).double(message.duration);
|
||||
if (message.unknown0 !== 0) writer.uint32(56).int32(message.unknown0);
|
||||
if (message.unknown0 !== false) writer.uint32(56).bool(message.unknown0);
|
||||
if (message.language !== "") writer.uint32(66).string(message.language);
|
||||
if (message.forceSourceLang !== false) writer.uint32(72).bool(message.forceSourceLang);
|
||||
if (message.unknown1 !== 0) writer.uint32(80).int32(message.unknown1);
|
||||
if (message.unknown1 !== false) writer.uint32(80).bool(message.unknown1);
|
||||
for (const v of message.translationHelp) VideoTranslationHelpObject.encode(v, writer.uint32(90).fork()).join();
|
||||
if (message.wasStream !== false) writer.uint32(104).bool(message.wasStream);
|
||||
if (message.responseLanguage !== "") writer.uint32(114).string(message.responseLanguage);
|
||||
if (message.unknown2 !== 0) writer.uint32(120).int32(message.unknown2);
|
||||
if (message.unknown2 !== false) writer.uint32(120).bool(message.unknown2);
|
||||
if (message.unknown3 !== 0) writer.uint32(128).int32(message.unknown3);
|
||||
if (message.bypassCache !== false) writer.uint32(136).bool(message.bypassCache);
|
||||
if (message.useLivelyVoice !== false) writer.uint32(144).bool(message.useLivelyVoice);
|
||||
|
|
@ -3275,7 +3275,7 @@ var vot = (function(exports) {
|
|||
continue;
|
||||
case 7:
|
||||
if (tag !== 56) break;
|
||||
message.unknown0 = reader.int32();
|
||||
message.unknown0 = reader.bool();
|
||||
continue;
|
||||
case 8:
|
||||
if (tag !== 66) break;
|
||||
|
|
@ -3287,7 +3287,7 @@ var vot = (function(exports) {
|
|||
continue;
|
||||
case 10:
|
||||
if (tag !== 80) break;
|
||||
message.unknown1 = reader.int32();
|
||||
message.unknown1 = reader.bool();
|
||||
continue;
|
||||
case 11:
|
||||
if (tag !== 90) break;
|
||||
|
|
@ -3303,7 +3303,7 @@ var vot = (function(exports) {
|
|||
continue;
|
||||
case 15:
|
||||
if (tag !== 120) break;
|
||||
message.unknown2 = reader.int32();
|
||||
message.unknown2 = reader.bool();
|
||||
continue;
|
||||
case 16:
|
||||
if (tag !== 128) break;
|
||||
|
|
@ -3333,14 +3333,14 @@ var vot = (function(exports) {
|
|||
deviceId: isSet(object.deviceId) ? globalThis.String(object.deviceId) : void 0,
|
||||
firstRequest: isSet(object.firstRequest) ? globalThis.Boolean(object.firstRequest) : false,
|
||||
duration: isSet(object.duration) ? globalThis.Number(object.duration) : 0,
|
||||
unknown0: isSet(object.unknown0) ? globalThis.Number(object.unknown0) : 0,
|
||||
unknown0: isSet(object.unknown0) ? globalThis.Boolean(object.unknown0) : false,
|
||||
language: isSet(object.language) ? globalThis.String(object.language) : "",
|
||||
forceSourceLang: isSet(object.forceSourceLang) ? globalThis.Boolean(object.forceSourceLang) : false,
|
||||
unknown1: isSet(object.unknown1) ? globalThis.Number(object.unknown1) : 0,
|
||||
unknown1: isSet(object.unknown1) ? globalThis.Boolean(object.unknown1) : false,
|
||||
translationHelp: globalThis.Array.isArray(object?.translationHelp) ? object.translationHelp.map((e) => VideoTranslationHelpObject.fromJSON(e)) : [],
|
||||
wasStream: isSet(object.wasStream) ? globalThis.Boolean(object.wasStream) : false,
|
||||
responseLanguage: isSet(object.responseLanguage) ? globalThis.String(object.responseLanguage) : "",
|
||||
unknown2: isSet(object.unknown2) ? globalThis.Number(object.unknown2) : 0,
|
||||
unknown2: isSet(object.unknown2) ? globalThis.Boolean(object.unknown2) : false,
|
||||
unknown3: isSet(object.unknown3) ? globalThis.Number(object.unknown3) : 0,
|
||||
bypassCache: isSet(object.bypassCache) ? globalThis.Boolean(object.bypassCache) : false,
|
||||
useLivelyVoice: isSet(object.useLivelyVoice) ? globalThis.Boolean(object.useLivelyVoice) : false,
|
||||
|
|
@ -3353,14 +3353,14 @@ var vot = (function(exports) {
|
|||
if (message.deviceId !== void 0) obj.deviceId = message.deviceId;
|
||||
if (message.firstRequest !== false) obj.firstRequest = message.firstRequest;
|
||||
if (message.duration !== 0) obj.duration = message.duration;
|
||||
if (message.unknown0 !== 0) obj.unknown0 = Math.round(message.unknown0);
|
||||
if (message.unknown0 !== false) obj.unknown0 = message.unknown0;
|
||||
if (message.language !== "") obj.language = message.language;
|
||||
if (message.forceSourceLang !== false) obj.forceSourceLang = message.forceSourceLang;
|
||||
if (message.unknown1 !== 0) obj.unknown1 = Math.round(message.unknown1);
|
||||
if (message.unknown1 !== false) obj.unknown1 = message.unknown1;
|
||||
if (message.translationHelp?.length) obj.translationHelp = message.translationHelp.map((e) => VideoTranslationHelpObject.toJSON(e));
|
||||
if (message.wasStream !== false) obj.wasStream = message.wasStream;
|
||||
if (message.responseLanguage !== "") obj.responseLanguage = message.responseLanguage;
|
||||
if (message.unknown2 !== 0) obj.unknown2 = Math.round(message.unknown2);
|
||||
if (message.unknown2 !== false) obj.unknown2 = message.unknown2;
|
||||
if (message.unknown3 !== 0) obj.unknown3 = Math.round(message.unknown3);
|
||||
if (message.bypassCache !== false) obj.bypassCache = message.bypassCache;
|
||||
if (message.useLivelyVoice !== false) obj.useLivelyVoice = message.useLivelyVoice;
|
||||
|
|
@ -3376,14 +3376,14 @@ var vot = (function(exports) {
|
|||
message.deviceId = object.deviceId ?? void 0;
|
||||
message.firstRequest = object.firstRequest ?? false;
|
||||
message.duration = object.duration ?? 0;
|
||||
message.unknown0 = object.unknown0 ?? 0;
|
||||
message.unknown0 = object.unknown0 ?? false;
|
||||
message.language = object.language ?? "";
|
||||
message.forceSourceLang = object.forceSourceLang ?? false;
|
||||
message.unknown1 = object.unknown1 ?? 0;
|
||||
message.unknown1 = object.unknown1 ?? false;
|
||||
message.translationHelp = object.translationHelp?.map((e) => VideoTranslationHelpObject.fromPartial(e)) || [];
|
||||
message.wasStream = object.wasStream ?? false;
|
||||
message.responseLanguage = object.responseLanguage ?? "";
|
||||
message.unknown2 = object.unknown2 ?? 0;
|
||||
message.unknown2 = object.unknown2 ?? false;
|
||||
message.unknown3 = object.unknown3 ?? 0;
|
||||
message.bypassCache = object.bypassCache ?? false;
|
||||
message.useLivelyVoice = object.useLivelyVoice ?? false;
|
||||
|
|
@ -3402,7 +3402,7 @@ var vot = (function(exports) {
|
|||
language: void 0,
|
||||
message: void 0,
|
||||
isLivelyVoice: false,
|
||||
unknown2: void 0,
|
||||
allowToTranslateVideo: void 0,
|
||||
shouldRetry: void 0,
|
||||
unknown3: void 0
|
||||
};
|
||||
|
|
@ -3418,7 +3418,7 @@ var vot = (function(exports) {
|
|||
if (message.language !== void 0) writer.uint32(66).string(message.language);
|
||||
if (message.message !== void 0) writer.uint32(74).string(message.message);
|
||||
if (message.isLivelyVoice !== false) writer.uint32(80).bool(message.isLivelyVoice);
|
||||
if (message.unknown2 !== void 0) writer.uint32(88).int32(message.unknown2);
|
||||
if (message.allowToTranslateVideo !== void 0) writer.uint32(88).bool(message.allowToTranslateVideo);
|
||||
if (message.shouldRetry !== void 0) writer.uint32(96).int32(message.shouldRetry);
|
||||
if (message.unknown3 !== void 0) writer.uint32(104).int32(message.unknown3);
|
||||
return writer;
|
||||
|
|
@ -3468,7 +3468,7 @@ var vot = (function(exports) {
|
|||
continue;
|
||||
case 11:
|
||||
if (tag !== 88) break;
|
||||
message.unknown2 = reader.int32();
|
||||
message.allowToTranslateVideo = reader.bool();
|
||||
continue;
|
||||
case 12:
|
||||
if (tag !== 96) break;
|
||||
|
|
@ -3495,7 +3495,7 @@ var vot = (function(exports) {
|
|||
language: isSet(object.language) ? globalThis.String(object.language) : void 0,
|
||||
message: isSet(object.message) ? globalThis.String(object.message) : void 0,
|
||||
isLivelyVoice: isSet(object.isLivelyVoice) ? globalThis.Boolean(object.isLivelyVoice) : false,
|
||||
unknown2: isSet(object.unknown2) ? globalThis.Number(object.unknown2) : void 0,
|
||||
allowToTranslateVideo: isSet(object.allowToTranslateVideo) ? globalThis.Boolean(object.allowToTranslateVideo) : void 0,
|
||||
shouldRetry: isSet(object.shouldRetry) ? globalThis.Number(object.shouldRetry) : void 0,
|
||||
unknown3: isSet(object.unknown3) ? globalThis.Number(object.unknown3) : void 0
|
||||
};
|
||||
|
|
@ -3511,7 +3511,7 @@ var vot = (function(exports) {
|
|||
if (message.language !== void 0) obj.language = message.language;
|
||||
if (message.message !== void 0) obj.message = message.message;
|
||||
if (message.isLivelyVoice !== false) obj.isLivelyVoice = message.isLivelyVoice;
|
||||
if (message.unknown2 !== void 0) obj.unknown2 = Math.round(message.unknown2);
|
||||
if (message.allowToTranslateVideo !== void 0) obj.allowToTranslateVideo = message.allowToTranslateVideo;
|
||||
if (message.shouldRetry !== void 0) obj.shouldRetry = Math.round(message.shouldRetry);
|
||||
if (message.unknown3 !== void 0) obj.unknown3 = Math.round(message.unknown3);
|
||||
return obj;
|
||||
|
|
@ -3530,7 +3530,7 @@ var vot = (function(exports) {
|
|||
message.language = object.language ?? void 0;
|
||||
message.message = object.message ?? void 0;
|
||||
message.isLivelyVoice = object.isLivelyVoice ?? false;
|
||||
message.unknown2 = object.unknown2 ?? void 0;
|
||||
message.allowToTranslateVideo = object.allowToTranslateVideo ?? void 0;
|
||||
message.shouldRetry = object.shouldRetry ?? void 0;
|
||||
message.unknown3 = object.unknown3 ?? void 0;
|
||||
return message;
|
||||
|
|
@ -3541,7 +3541,8 @@ var vot = (function(exports) {
|
|||
status: 0,
|
||||
remainingTime: void 0,
|
||||
message: void 0,
|
||||
unknown0: void 0
|
||||
unknown0: void 0,
|
||||
flags: []
|
||||
};
|
||||
}
|
||||
var VideoTranslationCacheItem = {
|
||||
|
|
@ -3550,6 +3551,9 @@ var vot = (function(exports) {
|
|||
if (message.remainingTime !== void 0) writer.uint32(16).int32(message.remainingTime);
|
||||
if (message.message !== void 0) writer.uint32(26).string(message.message);
|
||||
if (message.unknown0 !== void 0) writer.uint32(32).int32(message.unknown0);
|
||||
writer.uint32(42).fork();
|
||||
for (const v of message.flags) writer.int32(v);
|
||||
writer.join();
|
||||
return writer;
|
||||
},
|
||||
decode(input, length) {
|
||||
|
|
@ -3575,6 +3579,16 @@ var vot = (function(exports) {
|
|||
if (tag !== 32) break;
|
||||
message.unknown0 = reader.int32();
|
||||
continue;
|
||||
case 5:
|
||||
if (tag === 40) {
|
||||
message.flags.push(reader.int32());
|
||||
continue;
|
||||
}
|
||||
if (tag === 42) {
|
||||
const end2 = reader.uint32() + reader.pos;
|
||||
while (reader.pos < end2) message.flags.push(reader.int32());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if ((tag & 7) === 4 || tag === 0) break;
|
||||
reader.skip(tag & 7);
|
||||
|
|
@ -3586,7 +3600,8 @@ var vot = (function(exports) {
|
|||
status: isSet(object.status) ? globalThis.Number(object.status) : 0,
|
||||
remainingTime: isSet(object.remainingTime) ? globalThis.Number(object.remainingTime) : void 0,
|
||||
message: isSet(object.message) ? globalThis.String(object.message) : void 0,
|
||||
unknown0: isSet(object.unknown0) ? globalThis.Number(object.unknown0) : void 0
|
||||
unknown0: isSet(object.unknown0) ? globalThis.Number(object.unknown0) : void 0,
|
||||
flags: globalThis.Array.isArray(object?.flags) ? object.flags.map((e) => globalThis.Number(e)) : []
|
||||
};
|
||||
},
|
||||
toJSON(message) {
|
||||
|
|
@ -3595,6 +3610,7 @@ var vot = (function(exports) {
|
|||
if (message.remainingTime !== void 0) obj.remainingTime = Math.round(message.remainingTime);
|
||||
if (message.message !== void 0) obj.message = message.message;
|
||||
if (message.unknown0 !== void 0) obj.unknown0 = Math.round(message.unknown0);
|
||||
if (message.flags?.length) obj.flags = message.flags.map((e) => Math.round(e));
|
||||
return obj;
|
||||
},
|
||||
create(base) {
|
||||
|
|
@ -3606,6 +3622,7 @@ var vot = (function(exports) {
|
|||
message.remainingTime = object.remainingTime ?? void 0;
|
||||
message.message = object.message ?? void 0;
|
||||
message.unknown0 = object.unknown0 ?? void 0;
|
||||
message.flags = object.flags?.map((e) => e) || [];
|
||||
return message;
|
||||
}
|
||||
};
|
||||
|
|
@ -4171,22 +4188,22 @@ var vot = (function(exports) {
|
|||
return {
|
||||
language: "",
|
||||
url: "",
|
||||
unknown0: 0,
|
||||
hasTranslation: false,
|
||||
translatedLanguage: "",
|
||||
translatedUrl: "",
|
||||
unknown1: 0,
|
||||
unknown2: 0
|
||||
unknown1: false,
|
||||
subtitleId: 0
|
||||
};
|
||||
}
|
||||
var SubtitlesObject = {
|
||||
encode(message, writer = new BinaryWriter()) {
|
||||
if (message.language !== "") writer.uint32(10).string(message.language);
|
||||
if (message.url !== "") writer.uint32(18).string(message.url);
|
||||
if (message.unknown0 !== 0) writer.uint32(24).int32(message.unknown0);
|
||||
if (message.hasTranslation !== false) writer.uint32(24).bool(message.hasTranslation);
|
||||
if (message.translatedLanguage !== "") writer.uint32(34).string(message.translatedLanguage);
|
||||
if (message.translatedUrl !== "") writer.uint32(42).string(message.translatedUrl);
|
||||
if (message.unknown1 !== 0) writer.uint32(48).int32(message.unknown1);
|
||||
if (message.unknown2 !== 0) writer.uint32(56).int32(message.unknown2);
|
||||
if (message.unknown1 !== false) writer.uint32(48).bool(message.unknown1);
|
||||
if (message.subtitleId !== 0) writer.uint32(56).uint32(message.subtitleId);
|
||||
return writer;
|
||||
},
|
||||
decode(input, length) {
|
||||
|
|
@ -4206,7 +4223,7 @@ var vot = (function(exports) {
|
|||
continue;
|
||||
case 3:
|
||||
if (tag !== 24) break;
|
||||
message.unknown0 = reader.int32();
|
||||
message.hasTranslation = reader.bool();
|
||||
continue;
|
||||
case 4:
|
||||
if (tag !== 34) break;
|
||||
|
|
@ -4218,11 +4235,11 @@ var vot = (function(exports) {
|
|||
continue;
|
||||
case 6:
|
||||
if (tag !== 48) break;
|
||||
message.unknown1 = reader.int32();
|
||||
message.unknown1 = reader.bool();
|
||||
continue;
|
||||
case 7:
|
||||
if (tag !== 56) break;
|
||||
message.unknown2 = reader.int32();
|
||||
message.subtitleId = reader.uint32();
|
||||
continue;
|
||||
}
|
||||
if ((tag & 7) === 4 || tag === 0) break;
|
||||
|
|
@ -4234,22 +4251,22 @@ var vot = (function(exports) {
|
|||
return {
|
||||
language: isSet(object.language) ? globalThis.String(object.language) : "",
|
||||
url: isSet(object.url) ? globalThis.String(object.url) : "",
|
||||
unknown0: isSet(object.unknown0) ? globalThis.Number(object.unknown0) : 0,
|
||||
hasTranslation: isSet(object.hasTranslation) ? globalThis.Boolean(object.hasTranslation) : false,
|
||||
translatedLanguage: isSet(object.translatedLanguage) ? globalThis.String(object.translatedLanguage) : "",
|
||||
translatedUrl: isSet(object.translatedUrl) ? globalThis.String(object.translatedUrl) : "",
|
||||
unknown1: isSet(object.unknown1) ? globalThis.Number(object.unknown1) : 0,
|
||||
unknown2: isSet(object.unknown2) ? globalThis.Number(object.unknown2) : 0
|
||||
unknown1: isSet(object.unknown1) ? globalThis.Boolean(object.unknown1) : false,
|
||||
subtitleId: isSet(object.subtitleId) ? globalThis.Number(object.subtitleId) : 0
|
||||
};
|
||||
},
|
||||
toJSON(message) {
|
||||
const obj = {};
|
||||
if (message.language !== "") obj.language = message.language;
|
||||
if (message.url !== "") obj.url = message.url;
|
||||
if (message.unknown0 !== 0) obj.unknown0 = Math.round(message.unknown0);
|
||||
if (message.hasTranslation !== false) obj.hasTranslation = message.hasTranslation;
|
||||
if (message.translatedLanguage !== "") obj.translatedLanguage = message.translatedLanguage;
|
||||
if (message.translatedUrl !== "") obj.translatedUrl = message.translatedUrl;
|
||||
if (message.unknown1 !== 0) obj.unknown1 = Math.round(message.unknown1);
|
||||
if (message.unknown2 !== 0) obj.unknown2 = Math.round(message.unknown2);
|
||||
if (message.unknown1 !== false) obj.unknown1 = message.unknown1;
|
||||
if (message.subtitleId !== 0) obj.subtitleId = Math.round(message.subtitleId);
|
||||
return obj;
|
||||
},
|
||||
create(base) {
|
||||
|
|
@ -4259,11 +4276,11 @@ var vot = (function(exports) {
|
|||
const message = createBaseSubtitlesObject();
|
||||
message.language = object.language ?? "";
|
||||
message.url = object.url ?? "";
|
||||
message.unknown0 = object.unknown0 ?? 0;
|
||||
message.hasTranslation = object.hasTranslation ?? false;
|
||||
message.translatedLanguage = object.translatedLanguage ?? "";
|
||||
message.translatedUrl = object.translatedUrl ?? "";
|
||||
message.unknown1 = object.unknown1 ?? 0;
|
||||
message.unknown2 = object.unknown2 ?? 0;
|
||||
message.unknown1 = object.unknown1 ?? false;
|
||||
message.subtitleId = object.subtitleId ?? 0;
|
||||
return message;
|
||||
}
|
||||
};
|
||||
|
|
@ -5985,7 +6002,7 @@ var vot = (function(exports) {
|
|||
}));
|
||||
//#endregion
|
||||
//#region node_modules/@vot.js/shared/dist/secure.js
|
||||
var { componentVersion } = config_default$1;
|
||||
var { componentVersion, chromiumRevision } = config_default$1;
|
||||
async function getCrypto() {
|
||||
if (typeof window !== "undefined" && window.crypto) return window.crypto;
|
||||
return await Promise.resolve().then(() => (init_nodeCrypto(), nodeCrypto_exports));
|
||||
|
|
@ -6039,7 +6056,7 @@ var vot = (function(exports) {
|
|||
}
|
||||
var browserSecHeaders = {
|
||||
"sec-ch-ua": `"Chromium";v="148", "YaBrowser";v="${componentVersion.slice(0, 5)}", "Not?A_Brand";v="99", "Yowser";v="2.5"`,
|
||||
"sec-ch-ua-full-version-list": `"Chromium";v="148.0.7778.870", "YaBrowser";v="${componentVersion}", "Not?A_Brand";v="99.0.0.0", "Yowser";v="2.5"`,
|
||||
"sec-ch-ua-full-version-list": `"Chromium";v="148.0.7778.${chromiumRevision}", "YaBrowser";v="${componentVersion}", "Not?A_Brand";v="99.0.0.0", "Yowser";v="2.5"`,
|
||||
"Sec-Fetch-Mode": "no-cors"
|
||||
};
|
||||
//#endregion
|
||||
|
|
@ -11337,14 +11354,14 @@ var vot = (function(exports) {
|
|||
url,
|
||||
firstRequest,
|
||||
duration,
|
||||
unknown0: 1,
|
||||
unknown0: true,
|
||||
language: requestLang,
|
||||
forceSourceLang,
|
||||
unknown1: 0,
|
||||
unknown1: false,
|
||||
translationHelp: translationHelp ?? [],
|
||||
responseLanguage: responseLang,
|
||||
wasStream,
|
||||
unknown2: 1,
|
||||
unknown2: true,
|
||||
unknown3: 2,
|
||||
bypassCache,
|
||||
useLivelyVoice,
|
||||
|
|
@ -11449,6 +11466,52 @@ var vot = (function(exports) {
|
|||
decodeSessionResponse
|
||||
};
|
||||
//#endregion
|
||||
//#region node_modules/@vot.js/core/dist/client.js
|
||||
var VOTJSError = class extends Error {
|
||||
data;
|
||||
constructor(message, data = void 0) {
|
||||
super(message);
|
||||
this.data = data;
|
||||
this.name = "VOTJSError";
|
||||
}
|
||||
};
|
||||
var VOTClient$1 = class {
|
||||
provider;
|
||||
constructor({ provider, host, fetchFn, fetchOpts, requestLang = "en", responseLang = "ru", apiToken, headers } = {}) {
|
||||
const ProviderClass = provider ?? YandexProvider;
|
||||
this.provider = new ProviderClass({
|
||||
host,
|
||||
fetchFn,
|
||||
fetchOpts,
|
||||
headers,
|
||||
apiToken,
|
||||
requestLang,
|
||||
responseLang
|
||||
});
|
||||
}
|
||||
async translateVideo(opts) {
|
||||
return await this.provider.translateVideo(opts);
|
||||
}
|
||||
async translateStream(opts) {
|
||||
return await this.provider.translateStream(opts);
|
||||
}
|
||||
async getSubtitles(opts) {
|
||||
return await this.provider.getSubtitles(opts);
|
||||
}
|
||||
get requestLang() {
|
||||
return this.provider.requestLang;
|
||||
}
|
||||
set requestLang(lang) {
|
||||
this.provider.requestLang = lang;
|
||||
}
|
||||
get responseLang() {
|
||||
return this.provider.responseLang;
|
||||
}
|
||||
set responseLang(lang) {
|
||||
this.provider.responseLang = lang;
|
||||
}
|
||||
};
|
||||
//#endregion
|
||||
//#region node_modules/@vot.js/core/dist/types/yandex.js
|
||||
var VideoTranslationStatus;
|
||||
(function(VideoTranslationStatus) {
|
||||
|
|
@ -11471,6 +11534,10 @@ var vot = (function(exports) {
|
|||
AudioDownloadType["WEB_API_SLOW"] = "web_api_slow";
|
||||
AudioDownloadType["WEB_API_STEAL_SIG_AND_N"] = "web_api_steal_sig_and_n";
|
||||
AudioDownloadType["WEB_API_COMBINED"] = "web_api_get_all_generating_urls_data_from_iframe,web_api_steal_sig_and_n";
|
||||
AudioDownloadType["WEB_ABR"] = "web_abr";
|
||||
AudioDownloadType["WEB_SABR"] = "web_sabr";
|
||||
AudioDownloadType["WEB_MSE_PROXY"] = "web_mse_proxy";
|
||||
AudioDownloadType["EMPTY_PLUG"] = "empty_plug";
|
||||
})(AudioDownloadType || (AudioDownloadType = {}));
|
||||
//#endregion
|
||||
//#region node_modules/@vot.js/core/dist/providers/yandex.js
|
||||
|
|
@ -11698,49 +11765,60 @@ var vot = (function(exports) {
|
|||
}
|
||||
};
|
||||
//#endregion
|
||||
//#region node_modules/@vot.js/core/dist/client.js
|
||||
var VOTJSError = class extends Error {
|
||||
data;
|
||||
constructor(message, data = void 0) {
|
||||
super(message);
|
||||
this.data = data;
|
||||
this.name = "VOTJSError";
|
||||
//#region node_modules/@vot.js/core/dist/providers/votworker.js
|
||||
var VOTWorkerProvider = class extends YandexProvider {
|
||||
constructor(opts = {}) {
|
||||
opts.host = opts.host ?? config_default$1.hostWorker;
|
||||
super(opts);
|
||||
}
|
||||
};
|
||||
var VOTClient$1 = class {
|
||||
provider;
|
||||
constructor({ provider, host, fetchFn, fetchOpts, requestLang = "en", responseLang = "ru", apiToken, headers } = {}) {
|
||||
const ProviderClass = provider ?? YandexProvider;
|
||||
this.provider = new ProviderClass({
|
||||
host,
|
||||
fetchFn,
|
||||
fetchOpts,
|
||||
headers,
|
||||
apiToken,
|
||||
requestLang,
|
||||
responseLang
|
||||
});
|
||||
async request(path, body, headers = {}, method = "POST") {
|
||||
const options = this.getOpts(JSON.stringify({
|
||||
headers: {
|
||||
...this.headers,
|
||||
...headers
|
||||
},
|
||||
body: Array.from(body)
|
||||
}), { "Content-Type": "application/json" }, method);
|
||||
try {
|
||||
const res = await this.fetch(`${this.schema}://${this.host}${path}`, options);
|
||||
const data = await res.arrayBuffer();
|
||||
return {
|
||||
success: res.status === 200,
|
||||
data
|
||||
};
|
||||
} catch (err) {
|
||||
return {
|
||||
success: false,
|
||||
data: err?.message
|
||||
};
|
||||
}
|
||||
}
|
||||
async translateVideo(opts) {
|
||||
return await this.provider.translateVideo(opts);
|
||||
}
|
||||
async translateStream(opts) {
|
||||
return await this.provider.translateStream(opts);
|
||||
}
|
||||
async getSubtitles(opts) {
|
||||
return await this.provider.getSubtitles(opts);
|
||||
}
|
||||
get requestLang() {
|
||||
return this.provider.requestLang;
|
||||
}
|
||||
set requestLang(lang) {
|
||||
this.provider.requestLang = lang;
|
||||
}
|
||||
get responseLang() {
|
||||
return this.provider.responseLang;
|
||||
}
|
||||
set responseLang(lang) {
|
||||
this.provider.responseLang = lang;
|
||||
async requestJSON(path, body = null, headers = {}, method = "POST") {
|
||||
const options = this.getOpts(JSON.stringify({
|
||||
headers: {
|
||||
...this.headers,
|
||||
"Content-Type": "application/json",
|
||||
Accept: "application/json",
|
||||
...headers
|
||||
},
|
||||
body
|
||||
}), {
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json"
|
||||
}, method);
|
||||
try {
|
||||
const res = await this.fetch(`${this.schema}://${this.host}${path}`, options);
|
||||
const data = await res.json();
|
||||
return {
|
||||
success: res.status === 200,
|
||||
data
|
||||
};
|
||||
} catch (err) {
|
||||
return {
|
||||
success: false,
|
||||
data: err?.message
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
//#endregion
|
||||
|
|
@ -11759,20 +11837,20 @@ var vot = (function(exports) {
|
|||
}
|
||||
};
|
||||
//#endregion
|
||||
//#region ../../chaimu/dist/config.js
|
||||
//#region node_modules/chaimu/dist/config.js
|
||||
var config_default = {
|
||||
version: "1.1.0",
|
||||
debug: false,
|
||||
fetchFn: fetch.bind(window)
|
||||
};
|
||||
//#endregion
|
||||
//#region ../../chaimu/dist/debug.js
|
||||
//#region node_modules/chaimu/dist/debug.js
|
||||
var debug_default = { log: (...text) => {
|
||||
if (!config_default.debug) return;
|
||||
return console.log(`%c✦ chaimu.js v${config_default.version} ✦`, "background: #000; color: #fff; padding: 0 8px", ...text);
|
||||
} };
|
||||
//#endregion
|
||||
//#region ../../chaimu/dist/player.js
|
||||
//#region node_modules/chaimu/dist/player.js
|
||||
var videoLipSyncEvents = [
|
||||
"playing",
|
||||
"ratechange",
|
||||
|
|
@ -12319,7 +12397,7 @@ var vot = (function(exports) {
|
|||
}
|
||||
};
|
||||
//#endregion
|
||||
//#region ../../chaimu/dist/client.js
|
||||
//#region node_modules/chaimu/dist/client.js
|
||||
var Chaimu = class {
|
||||
_debug = false;
|
||||
audioContext;
|
||||
|
|
@ -12401,7 +12479,7 @@ var vot = (function(exports) {
|
|||
};
|
||||
//#endregion
|
||||
//#region src/core/cacheManager.ts
|
||||
var YANDEX_TTL_MS = 7200 * 1e3;
|
||||
var YANDEX_TTL_MS = 72e5;
|
||||
var VOT_SESSION_STORAGE_KEY = "VOTSession";
|
||||
function getCurrentUnixTimestampSeconds() {
|
||||
return Math.floor(Date.now() / 1e3);
|
||||
|
|
@ -13332,9 +13410,7 @@ var vot = (function(exports) {
|
|||
case "downloadedPartialAudio":
|
||||
this.onDownloadedPartialAudio.addListener(listener);
|
||||
break;
|
||||
case "downloadAudioError":
|
||||
this.onDownloadAudioError.addListener(listener);
|
||||
break;
|
||||
case "downloadAudioError": this.onDownloadAudioError.addListener(listener);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
|
@ -13346,9 +13422,7 @@ var vot = (function(exports) {
|
|||
case "downloadedPartialAudio":
|
||||
this.onDownloadedPartialAudio.removeListener(listener);
|
||||
break;
|
||||
case "downloadAudioError":
|
||||
this.onDownloadAudioError.removeListener(listener);
|
||||
break;
|
||||
case "downloadAudioError": this.onDownloadAudioError.removeListener(listener);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
|
@ -17644,11 +17718,7 @@ var vot = (function(exports) {
|
|||
case "bottom-left":
|
||||
anchorX = elementWidth / 2;
|
||||
break;
|
||||
case "bottom-right":
|
||||
anchorX = anchorBox.w - elementWidth / 2;
|
||||
break;
|
||||
case "bottom-center":
|
||||
case "custom": break;
|
||||
case "bottom-right": anchorX = anchorBox.w - elementWidth / 2;
|
||||
}
|
||||
return clampAnchorWithinBox({
|
||||
anchorX,
|
||||
|
|
@ -19869,9 +19939,8 @@ var vot = (function(exports) {
|
|||
updateAdaptiveVerticalAlign() {
|
||||
const viewportHeight = globalThis.visualViewport?.height ?? globalThis.innerHeight;
|
||||
if (!viewportHeight || viewportHeight <= 0) return;
|
||||
const marginPx = 16;
|
||||
const centerMaxPx = Math.max(160, Math.round(viewportHeight * .75));
|
||||
const topMaxPx = Math.max(160, Math.round(viewportHeight - marginPx * 2));
|
||||
const topMaxPx = Math.max(160, Math.round(viewportHeight - 32));
|
||||
const contentHeightPx = this.contentWrapper.scrollHeight;
|
||||
const currentlyTop = this.box.dataset.verticalAlign === "top";
|
||||
const enterTopThresholdPx = centerMaxPx - 8;
|
||||
|
|
@ -20690,8 +20759,8 @@ var vot = (function(exports) {
|
|||
if (!this.isOpen) return;
|
||||
const rootRect = this.layoutRoot.getBoundingClientRect();
|
||||
const gap = 8;
|
||||
const maxRootWidth = Math.max(160, rootRect.width - gap * 2);
|
||||
const maxRootHeight = Math.max(96, rootRect.height - gap * 2);
|
||||
const maxRootWidth = Math.max(160, rootRect.width - 16);
|
||||
const maxRootHeight = Math.max(96, rootRect.height - 16);
|
||||
this.container.style.setProperty("--vot-voice-popover-max-width", `${Math.min(310, maxRootWidth)}px`);
|
||||
this.container.style.setProperty("--vot-voice-popover-max-height", `${maxRootHeight}px`);
|
||||
const buttonContainer = anchor.closest("[data-direction]") ?? anchor;
|
||||
|
|
@ -26596,63 +26665,6 @@ var vot = (function(exports) {
|
|||
return { nextVideo };
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/@vot.js/core/dist/providers/votworker.js
|
||||
var VOTWorkerProvider = class extends YandexProvider {
|
||||
constructor(opts = {}) {
|
||||
opts.host = opts.host ?? config_default$1.hostWorker;
|
||||
super(opts);
|
||||
}
|
||||
async request(path, body, headers = {}, method = "POST") {
|
||||
const options = this.getOpts(JSON.stringify({
|
||||
headers: {
|
||||
...this.headers,
|
||||
...headers
|
||||
},
|
||||
body: Array.from(body)
|
||||
}), { "Content-Type": "application/json" }, method);
|
||||
try {
|
||||
const res = await this.fetch(`${this.schema}://${this.host}${path}`, options);
|
||||
const data = await res.arrayBuffer();
|
||||
return {
|
||||
success: res.status === 200,
|
||||
data
|
||||
};
|
||||
} catch (err) {
|
||||
return {
|
||||
success: false,
|
||||
data: err?.message
|
||||
};
|
||||
}
|
||||
}
|
||||
async requestJSON(path, body = null, headers = {}, method = "POST") {
|
||||
const options = this.getOpts(JSON.stringify({
|
||||
headers: {
|
||||
...this.headers,
|
||||
"Content-Type": "application/json",
|
||||
Accept: "application/json",
|
||||
...headers
|
||||
},
|
||||
body
|
||||
}), {
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json"
|
||||
}, method);
|
||||
try {
|
||||
const res = await this.fetch(`${this.schema}://${this.host}${path}`, options);
|
||||
const data = await res.json();
|
||||
return {
|
||||
success: res.status === 200,
|
||||
data
|
||||
};
|
||||
} catch (err) {
|
||||
return {
|
||||
success: false,
|
||||
data: err?.message
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
//#endregion
|
||||
//#region src/VideoHandler.ts
|
||||
var RESOLVED_VOID_PROMISE = Promise.resolve();
|
||||
var TRANSLATION_LOADING_MESSAGES = /* @__PURE__ */ new Set([
|
||||
|
|
@ -27617,8 +27629,6 @@ var vot = (function(exports) {
|
|||
*/
|
||||
releaseExtraEvents = releaseExtraEvents;
|
||||
};
|
||||
//#endregion
|
||||
//#region src/index.ts
|
||||
var videoObserver = new VideoObserver(createIntervalIdleChecker());
|
||||
var videosWrappers = /* @__PURE__ */ new WeakMap();
|
||||
var servicesCache = null;
|
||||
|
|
|
|||
19
package.json
19
package.json
|
|
@ -15,6 +15,7 @@
|
|||
"voice-over-translation"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.5.6",
|
||||
"@crxjs/vite-plugin": "^2.7.1",
|
||||
"@toil/translate": "^1.10.0",
|
||||
"@types/bun": "^1.3.14",
|
||||
|
|
@ -22,7 +23,7 @@
|
|||
"npm-run-all2": "^9.0.3",
|
||||
"sass": "^1.102.0",
|
||||
"typescript": "^6.0.3",
|
||||
"vite": "^8.1.5",
|
||||
"vite": "^8.2.0",
|
||||
"zip-a-folder": "^6.1.3"
|
||||
},
|
||||
"scripts": {
|
||||
|
|
@ -30,9 +31,9 @@
|
|||
"test:unit": "bun test",
|
||||
"test:unit:watch": "bun test --watch",
|
||||
"test:ui": "vite build --config vite/vite.test-ui.config.ts",
|
||||
"build": "vite build --config vite/vite.config.ts",
|
||||
"build:min": "vite build --mode minify --config vite/vite.config.ts",
|
||||
"build:all": "run-p build build:min",
|
||||
"build:gm:default": "vite build --config vite/vite.config.ts",
|
||||
"build:gm:min": "vite build --mode minify --config vite/vite.config.ts",
|
||||
"build:gm": "run-p build:gm:default build:gm:min",
|
||||
"build:ext": "run-p build:chrome build:firefox",
|
||||
"build:chrome": "vite build --config vite/vite.extension.crxjs.config.ts",
|
||||
"build:firefox": "vite build --config vite/vite.extension.config.ts",
|
||||
|
|
@ -40,15 +41,17 @@
|
|||
"dev": "vite build --watch --mode development --config vite/vite.config.ts",
|
||||
"format": "bunx @biomejs/biome check --write --unsafe ./src ./vite ./scripts",
|
||||
"lint": "bunx @biomejs/biome lint ./src ./vite ./scripts",
|
||||
"check": "bunx tsc --noEmit",
|
||||
"check": "bunx tsc --noEmit && bunx tsc -p src/tsconfig.json --noEmit",
|
||||
"gen:wiki": "bun run ./scripts/wiki-gen/index.js",
|
||||
"autobuild": "bun run ./scripts/autobuild.ts",
|
||||
"zip:source": "bun ./scripts/zip/get-source.ts",
|
||||
"localize": "bunx \"@toil/localize-tui\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@toil/gm-types": "^1.0.5",
|
||||
"@vot.js/ext": "^3.0.1",
|
||||
"@vot.js/core": "^3.0.1",
|
||||
"@vot.js/shared": "^3.0.1",
|
||||
"@vot.js/ext": "^3.0.2",
|
||||
"@vot.js/core": "^3.0.2",
|
||||
"@vot.js/shared": "^3.0.2",
|
||||
"bowser": "^2.14.1",
|
||||
"chaimu": "^1.1.0",
|
||||
"lit-html": "^3.3.3"
|
||||
|
|
|
|||
47
scripts/autobuild.ts
Normal file
47
scripts/autobuild.ts
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
import { $ } from "bun";
|
||||
|
||||
import headers from "../src/headers.json";
|
||||
|
||||
const EXTENSION_NAME = "vot-extension";
|
||||
|
||||
const FIREFOX_EXTENSION_NAME = `${EXTENSION_NAME}-firefox`;
|
||||
const CHROME_EXTENSION_NAME = `${EXTENSION_NAME}-chrome`;
|
||||
|
||||
const OUTPUT_EXTENSION_FIREFOX_NAME = `${EXTENSION_NAME}-${headers.version}-firefox`;
|
||||
const OUTPUT_EXTENSION_CHROME_NAME = `${EXTENSION_NAME}-${headers.version}-chrome`;
|
||||
|
||||
async function main() {
|
||||
console.log("Starting autobuild...");
|
||||
console.log("Clearing output directory...");
|
||||
await $`rm -rf .output`.quiet(false);
|
||||
await $`mkdir -p .output`.quiet(false);
|
||||
|
||||
console.log("Building extension source zip...");
|
||||
await $`bun zip:source`.quiet(false);
|
||||
console.log("Building extension as an userscript...");
|
||||
await $`bun build:gm`.quiet(false);
|
||||
|
||||
console.log("Building extension in store mode...");
|
||||
await $`IS_STORE_BUILD=true bun build:ext`.quiet(false);
|
||||
|
||||
console.log("Copying store build to output directory...");
|
||||
await $`cp dist-ext/${FIREFOX_EXTENSION_NAME}.xpi .output/${OUTPUT_EXTENSION_FIREFOX_NAME}-store.xpi`.quiet(
|
||||
false,
|
||||
);
|
||||
await $`cp dist-ext/${CHROME_EXTENSION_NAME}.zip .output/${OUTPUT_EXTENSION_CHROME_NAME}-store.zip`.quiet(
|
||||
false,
|
||||
);
|
||||
|
||||
console.log("Building extension in non-store mode...");
|
||||
await $`IS_STORE_BUILD=false bun build:ext`.quiet(false);
|
||||
console.log("Copying non-store firefox build to output directory...");
|
||||
await $`cp dist-ext/${FIREFOX_EXTENSION_NAME}.xpi .output/${OUTPUT_EXTENSION_FIREFOX_NAME}.xpi`.quiet(
|
||||
false,
|
||||
);
|
||||
|
||||
await $`bunx @biomejs/biome check --write --unsafe dist-ext/${FIREFOX_EXTENSION_NAME}-updates.json`.quiet(
|
||||
false,
|
||||
);
|
||||
}
|
||||
|
||||
await main();
|
||||
59
scripts/zip/get-source.ts
Normal file
59
scripts/zip/get-source.ts
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import headers from "../../src/headers.json";
|
||||
|
||||
import { zipDir } from "./utils";
|
||||
|
||||
const ROOT_PATH = path.join(__dirname, "..", "..");
|
||||
const DIST_EXT_PATH = path.join(ROOT_PATH, ".output");
|
||||
const OUTPUT_FILENAME = `vot-extension-${headers.version}-firefox-source.zip`;
|
||||
const OUTPUT_PATH = path.join(DIST_EXT_PATH, OUTPUT_FILENAME);
|
||||
|
||||
const SOURCE_PATHS = [
|
||||
"src",
|
||||
"vite",
|
||||
"scripts",
|
||||
"README.md",
|
||||
"README-EN.md",
|
||||
"tsconfig.json",
|
||||
"biome.json",
|
||||
"bun.lock",
|
||||
"package.json",
|
||||
].map((p) => path.join(ROOT_PATH, p));
|
||||
|
||||
async function main() {
|
||||
console.log(`Zipping source code as ${OUTPUT_FILENAME}...`);
|
||||
if (await fs.exists(OUTPUT_PATH)) {
|
||||
console.log("Removing existing zip file...");
|
||||
await fs.rm(OUTPUT_PATH);
|
||||
}
|
||||
|
||||
if (!(await fs.exists(DIST_EXT_PATH))) {
|
||||
console.log("Creating output directory...");
|
||||
await fs.mkdir(DIST_EXT_PATH, { recursive: true });
|
||||
}
|
||||
|
||||
const tmpdir = await fs.mkdtemp(path.join(DIST_EXT_PATH, "tmp-"));
|
||||
try {
|
||||
for (const sourcePath of SOURCE_PATHS) {
|
||||
const destPath = path.join(tmpdir, path.relative(ROOT_PATH, sourcePath));
|
||||
await fs.mkdir(path.dirname(destPath), { recursive: true });
|
||||
await fs.cp(sourcePath, destPath, { recursive: true });
|
||||
}
|
||||
await zipDir(tmpdir, OUTPUT_PATH);
|
||||
console.log(`Source code zipped successfully: ${OUTPUT_PATH}`);
|
||||
} catch {
|
||||
console.error("Error occurred while zipping source code");
|
||||
} finally {
|
||||
console.log("Cleaning up temporary files...");
|
||||
await fs.rm(tmpdir, { recursive: true, force: true });
|
||||
console.log("Temporary files cleaned up");
|
||||
}
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
if (import.meta.main) {
|
||||
await main();
|
||||
}
|
||||
|
||||
export { main as getSourceZip };
|
||||
16
scripts/zip/utils.ts
Normal file
16
scripts/zip/utils.ts
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
|
||||
import { COMPRESSION_LEVEL, zip } from "zip-a-folder";
|
||||
|
||||
export async function zipDir(
|
||||
sourceDirPath: string,
|
||||
outZipPath: string,
|
||||
): Promise<void> {
|
||||
await fs.rm(outZipPath, { force: true });
|
||||
await fs.mkdir(path.dirname(outZipPath), { recursive: true });
|
||||
await zip(sourceDirPath, outZipPath, {
|
||||
compression: COMPRESSION_LEVEL.high,
|
||||
zlib: { level: 9 },
|
||||
});
|
||||
}
|
||||
7
src/tsconfig.json
Normal file
7
src/tsconfig.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["@toil/gm-types/v3", "@toil/gm-types/v4", "vite/client"]
|
||||
},
|
||||
"include": ["./**/*.ts", "./**/*.tsx", "./**/*.d.ts"]
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"types": ["@toil/gm-types/v3", "@toil/gm-types/v4"],
|
||||
"types": ["bun"],
|
||||
"target": "ES2024",
|
||||
"module": "ESNext",
|
||||
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
||||
|
|
@ -11,5 +11,5 @@
|
|||
"skipLibCheck": true,
|
||||
"resolveJsonModule": true
|
||||
},
|
||||
"include": ["src/**/*.ts", "src/**/*.d.ts"]
|
||||
"include": ["scripts/**/*.ts", "vite/**/*.ts"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import { COMPRESSION_LEVEL, zip } from "zip-a-folder";
|
||||
import { zipDir } from "../../../scripts/zip/utils";
|
||||
import type { BuildConfig } from "../env";
|
||||
import { distExtDir } from "../paths";
|
||||
|
||||
|
|
@ -8,18 +8,6 @@ const GITHUB_DIST_EXT_RAW_BASE =
|
|||
"https://raw.githubusercontent.com/ilyhalight/voice-over-translation/master/dist-ext";
|
||||
const CHROME_CRX_RAW_URL = `${GITHUB_DIST_EXT_RAW_BASE}/vot-extension-chrome.zip`;
|
||||
|
||||
async function zipDir(
|
||||
sourceDirPath: string,
|
||||
outZipPath: string,
|
||||
): Promise<void> {
|
||||
await fs.rm(outZipPath, { force: true });
|
||||
await fs.mkdir(path.dirname(outZipPath), { recursive: true });
|
||||
await zip(sourceDirPath, outZipPath, {
|
||||
compression: COMPRESSION_LEVEL.high,
|
||||
zlib: { level: 9 },
|
||||
});
|
||||
}
|
||||
|
||||
export async function writeChromeUpdatesManifest({
|
||||
version,
|
||||
extensionId,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import { type UserConfig, build as viteBuild } from "vite";
|
||||
import { COMPRESSION_LEVEL, zip } from "zip-a-folder";
|
||||
import { type InlineConfig, type UserConfig, build as viteBuild } from "vite";
|
||||
import { zipDir } from "../../../scripts/zip/utils";
|
||||
import { type BuildConfig, type BuildEnvMeta, buildDefine } from "../env";
|
||||
import {
|
||||
distExtDir,
|
||||
|
|
@ -148,7 +148,7 @@ export async function getFirefoxBuildEnv(
|
|||
function createExtensionEntryConfig(
|
||||
entry: ExtensionEntry,
|
||||
define: UserConfig["define"],
|
||||
): UserConfig {
|
||||
): InlineConfig {
|
||||
const baseConfig = createBaseViteConfig({
|
||||
cacheName: "firefox-extension-bundles",
|
||||
});
|
||||
|
|
@ -421,18 +421,6 @@ async function writeFirefoxUpdatesManifest({
|
|||
return updatesManifestPath;
|
||||
}
|
||||
|
||||
async function zipDir(
|
||||
sourceDirPath: string,
|
||||
outZipPath: string,
|
||||
): Promise<void> {
|
||||
await fs.rm(outZipPath, { force: true });
|
||||
await fs.mkdir(path.dirname(outZipPath), { recursive: true });
|
||||
await zip(sourceDirPath, outZipPath, {
|
||||
compression: COMPRESSION_LEVEL.high,
|
||||
zlib: { level: 9 },
|
||||
});
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
// Firefox verification
|
||||
// ----------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -53,5 +53,4 @@ export function createViteConfig(
|
|||
};
|
||||
}
|
||||
|
||||
export type { ViteDefine } from "./define";
|
||||
export { defineConstants } from "./define";
|
||||
export { defineConstants, type ViteDefine } from "./define";
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import path from "node:path";
|
||||
import { defineConfig } from "vite";
|
||||
import { defineConfig, type UserConfig } from "vite";
|
||||
import { buildDefine } from "./lib/env";
|
||||
import { distDir, singleFileBuildOptions, srcDir } from "./lib/paths";
|
||||
import {
|
||||
|
|
@ -99,5 +99,5 @@ export default defineConfig(async ({ command, mode }) => {
|
|||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
} satisfies UserConfig;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,10 +1,5 @@
|
|||
import { defineConfig, type Plugin } from "vite";
|
||||
import {
|
||||
type BuildConfig,
|
||||
buildDefine,
|
||||
getBuildConfig,
|
||||
isStoreBuild,
|
||||
} from "./lib/env";
|
||||
import { type BuildConfig, buildDefine, getBuildConfig } from "./lib/env";
|
||||
import {
|
||||
buildExtensionBundles,
|
||||
cleanupExtensionTmpDir,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import path from "node:path";
|
||||
import { crx } from "@crxjs/vite-plugin";
|
||||
import { defineConfig, type Plugin } from "vite";
|
||||
import { defineConfig, type Plugin, type UserConfig } from "vite";
|
||||
import { type BuildConfig, buildDefine, getBuildConfig } from "./lib/env";
|
||||
import {
|
||||
finalizeChromeBuild,
|
||||
|
|
@ -57,5 +57,5 @@ export default defineConfig(async ({ mode }) => {
|
|||
sourcemap: false,
|
||||
minify: "oxc",
|
||||
},
|
||||
};
|
||||
} satisfies UserConfig;
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue