Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 17.6.3 to 20.10.6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/capricorn86/happy-dom/releases">happy-dom's releases</a>.</em></p> <blockquote> <h2>v20.10.6</h2> <h3>👷♂️ Patch fixes</h3> <ul> <li>Await NodeJS internal ReadableStream promise during teardown - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/2217">#2217</a></li> </ul> <h2>v20.10.5</h2> <h3>👷♂️ Patch fixes</h3> <ul> <li>Adds cache to query selector parser - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/2142">#2142</a> <ul> <li>The selector parser degraded in performance in v20.6.3 to solve more complex selectors</li> <li>Parsing is still a bit slower, but the cache will hopefully mitigate most of the problem</li> </ul> </li> </ul> <h2>v20.10.4</h2> <h3>👷♂️ Patch fixes</h3> <ul> <li>Coerce null qualifiedName to empty string in createDocument - By <strong><a href="https://github.com/Firer"><code>@Firer</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/2206">#2206</a></li> </ul> <h2>v20.10.3</h2> <h3>👷♂️ Patch fixes</h3> <ul> <li>Fix "~=" attribute selector matching hyphenated substrings in CSS selectors - By <strong><a href="https://github.com/mixelburg"><code>@mixelburg</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/2194">#2194</a></li> </ul> <h2>v20.10.2</h2> <h3>👷♂️ Patch fixes</h3> <ul> <li>Updates external dependencies - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/2163">#2163</a></li> </ul> <h2>v20.10.0</h2> <h3>🎨 Features</h3> <ul> <li>Adds support for setting a canvas adapter for handling the canvas rendering using the browser setting <a href="https://github.com/capricorn86/happy-dom/wiki/IOptionalBrowserSettings">canvasAdapter</a> - By <strong><a href="https://github.com/RAprogramm"><code>@RAprogramm</code></a></strong> and <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/241">#241</a></li> <li>Adds new package <a href="https://github.com/capricorn86/happy-dom/tree/master/packages/%40happy-dom/node-canvas-adapter">@happy-dom/node-canvas-adapter</a> - By <strong><a href="https://github.com/RAprogramm"><code>@RAprogramm</code></a></strong> and <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/241">#241</a> <ul> <li><a href="https://github.com/capricorn86/happy-dom/tree/master/packages/%40happy-dom/node-canvas-adapter">@happy-dom/node-canvas-adapter</a> is a pluggable canvas adapter for Happy DOM using <a href="https://github.com/Automattic/node-canvas">node-canvas</a>.</li> </ul> </li> <li>Adds support for loading image files when enabling the browser setting <a href="https://github.com/capricorn86/happy-dom/wiki/IOptionalBrowserSettings">enableImageFileLoading</a> - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/241">#241</a></li> <li>Adds support for loading image data URLs - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/241">#241</a></li> <li>Adds support for <a href="https://developer.mozilla.org/en-US/docs/Web/API/ImageData">ImageData</a> - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/241">#241</a></li> <li>Adds support for <a href="https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap">ImageBitmap</a> - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/241">#241</a></li> <li>Adds support for <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/createImageBitmap">Window.createImageBitmap()</a> - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/241">#241</a></li> </ul> <h2>v20.9.0</h2> <h3>🎨 Features</h3> <ul> <li>Adds support for event listener properties on Window (e.g. <code>Window.onkeydown</code>) - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/2131">#2131</a></li> </ul> <h2>v20.8.9</h2> <h3>👷♂️ Patch fixes</h3> <ul> <li>Fixes issue where cookies from the current origin was being forwarded to the target origin in fetch requests - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/2117">#2117</a> <ul> <li>A security advisory (<a href="https://github.com/capricorn86/happy-dom/security/advisories/GHSA-w4gp-fjgq-3q4g">GHSA-w4gp-fjgq-3q4g</a>) was reported for this security vulnerability. Big thanks to <a href="https://github.com/r74tech"><code>@r74tech</code></a> for reporting this!</li> </ul> </li> </ul> <h2>v20.8.8</h2> <h3>👷♂️ Patch fixes</h3> <ul> <li>Fixes issue where export names can be interpolated as executable code in ESM - By <strong><a href="https://github.com/capricorn86"><code>@capricorn86</code></a></strong> in task <a href="https://redirect.github.com/capricorn86/happy-dom/issues/2113">#2113</a> <ul> <li>A security advisory (<a href="https://github.com/capricorn86/happy-dom/security/advisories/GHSA-6q6h-j7hj-3r64">GHSA-6q6h-j7hj-3r64</a>) has been reported that shows a security vulnerability where it may be possible to escape the VM context and get access to process level functionality in unsafe environments using CommonJS. Big thanks to <a href="https://github.com/tndud042713"><code>@tndud042713</code></a> for reporting this!</li> </ul> </li> </ul> <h2>v20.8.7</h2> <h3>👷♂️ Patch fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|---|---|---|
| .github | ||
| src | ||
| tests | ||
| .gitignore | ||
| .nvmrc | ||
| biome.json | ||
| knip.json | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite-env.d.ts | ||
| vite.config.ts | ||
| vitest.config.ts | ||
OpenCode Voice Dictation / Голосовая диктовка для OpenCode
Русский
Голосовая диктовка для OpenCode web через Whisper (Groq API). Качество как в Cursor. Работает на ПК и телефоне.
Установка
Установить скрипт — открой ссылку в браузере с Violentmonkey/Tampermonkey и подтверди установку.
Или скачай с Releases и импортируй вручную.
Совместимость
| Платформа | Браузер | Менеджер скриптов | Статус |
|---|---|---|---|
| ПК | Vivaldi | Violentmonkey | ✅ |
| ПК | Chrome | Tampermonkey | ✅ |
| ПК | Firefox | Tampermonkey | ✅ |
| Android | Firefox | Tampermonkey | ✅ |
| Android | Vivaldi | — | ❌ Нет расширений |
| Android | Chrome | — | ❌ Нет расширений |
Настройка
- Получи бесплатный ключ на console.groq.com/keys
- Открой OpenCode web
- Меню Violentmonkey/Tampermonkey → Set Groq API Key → вставь
gsk_...
Использование
- Нажми кнопку микрофона в правом верхнем углу поля ввода
- Говори (виден таймер записи)
- Нажми снова — текст появится в поле ввода
- На ПК: Ctrl+Space — горячая клавиша
Автообновление
Скрипт обновляется сам. При пуше в main CI собирает новую версию и публикует в ветку dist. Пользователи получают обновление автоматически.
Настройки
| Пункт меню | Описание |
|---|---|
| Set Groq API Key | Ключ gsk_... |
| Toggle Auto-Submit | Отправлять после транскрипции |
| Set Whisper Model | whisper-large-v3 или whisper-large-v3-turbo |
| Set Language | ru, en или пусто (авто) |
| Set Whisper Prompt | Контекст для точности |
English
Voice dictation for OpenCode web via Whisper (Groq API). Cursor-quality transcription. Works on desktop and mobile.
Install
Install Script — open this link in a browser with Violentmonkey/Tampermonkey and confirm installation.
Or download from Releases and import manually.
Compatibility
| Platform | Browser | Userscript Manager | Status |
|---|---|---|---|
| Desktop | Vivaldi | Violentmonkey | ✅ |
| Desktop | Chrome | Tampermonkey | ✅ |
| Desktop | Firefox | Tampermonkey | ✅ |
| Android | Firefox | Tampermonkey | ✅ |
| Android | Vivaldi | — | ❌ No extensions |
| Android | Chrome | — | ❌ No extensions |
Setup
- Get a free API key at console.groq.com/keys
- Open OpenCode web
- Violentmonkey/Tampermonkey menu → Set Groq API Key → paste
gsk_...
Usage
- Click the mic button in the top-right corner of the input area
- Speak (recording timer is displayed)
- Click again — transcribed text appears in the input
- Desktop: Ctrl+Space shortcut
Auto-Update
The script updates automatically. When code is pushed to main, CI builds and publishes to the dist branch. Users receive updates automatically.
Settings
| Menu Item | Description |
|---|---|
| Set Groq API Key | API key gsk_... |
| Toggle Auto-Submit | Auto-send after transcription |
| Set Whisper Model | whisper-large-v3 or whisper-large-v3-turbo |
| Set Language | ru, en, or empty (auto-detect) |
| Set Whisper Prompt | Context for accuracy |
License
MIT — see LICENSE