Commit graph

12422 commits

Author SHA1 Message Date
Jack
b5a03e0040
chore(linting): enable prefer-nullish-coalescing (@miodec) (#7209) 2025-12-09 20:37:04 +01:00
Miodec
0c1a8a7899 fix: safari broken input 2025-12-09 19:25:36 +01:00
Miodec
fb9f339157 chore: better debug css 2025-12-09 19:25:10 +01:00
Miodec
713e6b2f8e fix: ctrl backspace not working in firefox 2025-12-09 16:40:18 +01:00
Christian Fehmer
b92121f180
fix(theme): fix dark note theme converting typed words to dots multiple times (@fehmer) (#7198) 2025-12-07 19:37:17 +01:00
Christian Fehmer
8cce5bfc7e
build: combine vite config into a single file (@fehmer) (#7190)
- **build: replace dotenv with vite env variables (@fehmer)**
- **build: combine vite config into a single file (@fehmer)**

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-12-05 19:45:12 +01:00
Miodec
b746ef844e chore: remember to call onComplete 2025-12-05 19:17:40 +01:00
Miodec
943c1deb9b fix(tape mode): rare issue where previous line would be shifted on line jump 2025-12-05 19:05:32 +01:00
Miodec
12f5c5ecd0 chore: protect against word letter self overflow 2025-12-05 15:44:06 +01:00
Miodec
e90e35e710 fix(tape mode): tab and newline characters breaking caret alignment 2025-12-05 15:14:35 +01:00
Miodec
f99c843e8b fix(tape mode): some words sometimes being removed on test restart 2025-12-05 15:11:03 +01:00
Miodec
132bdc309a fix: use the right env in env-config plugin 2025-12-04 20:50:20 +01:00
Miodec
2f9195ee56 fix: rare issue where previous test mistakes would show in a new test 2025-12-04 19:00:03 +01:00
Miodec
088ca5dc0d fix: show all lines causing timed tests to not scroll 2025-12-04 18:50:42 +01:00
Miodec
d6d062a771 fix: stored xss in quote approve modal 2025-12-04 18:06:50 +01:00
Miodec
37d1c5a25f chore: release v25.49.0 2025-12-04 17:25:57 +01:00
Jack
b9924ff493
perf: defer UI updates away from input logic (@miodec) (#7162)
Together with #7119, input handling is 3x faster. Achieved by:
- deferring all UI updates to when the browser is ready and debouncing
ui calls.
 - using vanilla js where needed
 - caching dom elements
 - disabling expensive checks if the timer is slow
 - switching to a timer that uses RAF instead of setTimeout
 - moving some code around

This should make the site smother on slower devices and fix lag spikes
causing weird test data.
2025-12-04 17:23:15 +01:00
Miodec
741ab7cb05 refactor: cache often used elements 2025-12-04 17:16:11 +01:00
Ashiq Renju
6475b42131
fix(friends): change "max streak" tooltip to "longest streak" (@ashiqr-dev) (#7165)
### Description

Changed friends tooltip message from "max streak" to "longest streak".
Please close the PR if this was intentional wording.

### Checks

- [ ] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [ ] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
  - [ ] Add language to `packages/schemas/src/languages.ts`
- [ ] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [ ] Add language json file to `frontend/static/languages` 
- [ ] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
  - [ ] Add theme to `packages/schemas/src/themes.ts`
  - [ ] Add theme to `frontend/src/ts/constants/themes.ts`
  - [ ] Add theme css file to `frontend/static/themes`
- [ ] Add some screenshot of the theme, especially with different test
settings (colorful, flip colors) to your pull request
- [ ] Adding a layout?
- [ ] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
  - [ ] Add layout to `packages/schemas/src/layouts.ts`
  - [ ] Add layout json file to `frontend/static/layouts` 
- [ ] Adding a font?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/FONTS.md)
  - [ ] Add font file  to `frontend/static/webfonts`
  - [ ] Add font to `packages/schemas/src/fonts.ts`
  - [ ] Add font to `frontend/src/ts/constants/fonts.ts`
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.

Closes #7127

Co-authored-by: Ashiq Renju <ashiqrdev@gmail.com>
2025-12-04 14:58:31 +01:00
Christian Fehmer
445be88754
ci: allow dependabot node version (@fehmer) (#7184) 2025-12-03 16:52:38 +01:00
dependabot[bot]
6cfb880908
build(deps): bump express from 5.1.0 to 5.2.0 in /backend (#7175)
Bumps [express](https://github.com/expressjs/express) from 5.1.0 to
5.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/expressjs/express/releases">express's
releases</a>.</em></p>
<blockquote>
<h2>v5.2.0</h2>
<h2>Important: Security</h2>
<ul>
<li>Security fix for <a
href="https://www.cve.org/CVERecord?id=CVE-2024-51999">CVE-2024-51999</a>
(<a
href="https://github.com/expressjs/express/security/advisories/GHSA-pj86-cfqh-vqx6">GHSA-pj86-cfqh-vqx6</a>)</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>build(deps): bump github/codeql-action from 3.28.11 to 3.28.13 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6429">expressjs/express#6429</a></li>
<li>Refactor: simplify <code>acceptsLanguages</code> implementation
using spread operator by <a
href="https://github.com/Ayoub-Mabrouk"><code>@​Ayoub-Mabrouk</code></a>
in <a
href="https://redirect.github.com/expressjs/express/pull/6137">expressjs/express#6137</a></li>
<li>increased code coverage of utils.js file by <a
href="https://github.com/ashish3011"><code>@​ashish3011</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6386">expressjs/express#6386</a></li>
<li>chore: remove duplicate word by <a
href="https://github.com/dufucun"><code>@​dufucun</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6456">expressjs/express#6456</a></li>
<li>build(deps): bump github/codeql-action from 3.28.13 to 3.28.16 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6498">expressjs/express#6498</a></li>
<li>build(deps): bump actions/setup-node from 4.3.0 to 4.4.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6497">expressjs/express#6497</a></li>
<li>build(deps): bump actions/download-artifact from 4.2.1 to 4.3.0 by
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6496">expressjs/express#6496</a></li>
<li>ci: add node.js 24 to test matrix by <a
href="https://github.com/Phillip9587"><code>@​Phillip9587</code></a> in
<a
href="https://redirect.github.com/expressjs/express/pull/6504">expressjs/express#6504</a></li>
<li>ci: update codeql config by <a
href="https://github.com/Phillip9587"><code>@​Phillip9587</code></a> in
<a
href="https://redirect.github.com/expressjs/express/pull/6488">expressjs/express#6488</a></li>
<li>chore: wider range for query test skip by <a
href="https://github.com/jonchurch"><code>@​jonchurch</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6512">expressjs/express#6512</a></li>
<li>chore: fix typos in test by <a
href="https://github.com/noritaka1166"><code>@​noritaka1166</code></a>
in <a
href="https://redirect.github.com/expressjs/express/pull/6535">expressjs/express#6535</a></li>
<li>ci: disable credential persistence for checkout actions by <a
href="https://github.com/mertssmnoglu"><code>@​mertssmnoglu</code></a>
in <a
href="https://redirect.github.com/expressjs/express/pull/6522">expressjs/express#6522</a></li>
<li>ci: allow manual triggering of workflow by <a
href="https://github.com/shivarm"><code>@​shivarm</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6515">expressjs/express#6515</a></li>
<li>test: add coverage for app.listen() variants by <a
href="https://github.com/kgarg1"><code>@​kgarg1</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6476">expressjs/express#6476</a></li>
<li>docs: move documentation and charters to the discussions and .github
… by <a
href="https://github.com/bjohansebas"><code>@​bjohansebas</code></a> in
<a
href="https://redirect.github.com/expressjs/express/pull/6427">expressjs/express#6427</a></li>
<li>build(deps): bump github/codeql-action from 3.28.16 to 3.28.18 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6549">expressjs/express#6549</a></li>
<li>build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6548">expressjs/express#6548</a></li>
<li>chore: enforce explicit <code>Buffer</code> import and add lint rule
by <a href="https://github.com/shivarm"><code>@​shivarm</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6525">expressjs/express#6525</a></li>
<li>chore: use node protocol for querystring by <a
href="https://github.com/shivarm"><code>@​shivarm</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6520">expressjs/express#6520</a></li>
<li>chore: fix typo by <a
href="https://github.com/mountdisk"><code>@​mountdisk</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6609">expressjs/express#6609</a></li>
<li>build(deps): bump github/codeql-action from 3.28.18 to 3.29.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6618">expressjs/express#6618</a></li>
<li>add deprecation warnings for redirect arguments undefined by <a
href="https://github.com/bjohansebas"><code>@​bjohansebas</code></a> in
<a
href="https://redirect.github.com/expressjs/express/pull/6405">expressjs/express#6405</a></li>
<li>ci: run CI when the markdown changes by <a
href="https://github.com/bjohansebas"><code>@​bjohansebas</code></a> in
<a
href="https://redirect.github.com/expressjs/express/pull/6632">expressjs/express#6632</a></li>
<li>doc: fix CONTRIBUTING link by <a
href="https://github.com/jonchurch"><code>@​jonchurch</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6653">expressjs/express#6653</a></li>
<li>doc: update contributing guidelines and code of conduct links by <a
href="https://github.com/ShubhamOulkar"><code>@​ShubhamOulkar</code></a>
in <a
href="https://redirect.github.com/expressjs/express/pull/6601">expressjs/express#6601</a></li>
<li>build(deps-dev): bump morgan from 1.10.0 to 1.10.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6679">expressjs/express#6679</a></li>
<li>build(deps-dev): bump cookie-session from 2.1.0 to 2.1.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6678">expressjs/express#6678</a></li>
<li>lint: add --fix flag to automatic fix linting issue by <a
href="https://github.com/shivarm"><code>@​shivarm</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6644">expressjs/express#6644</a></li>
<li>chore: ignore yarn.lock file and update example by <a
href="https://github.com/shivarm"><code>@​shivarm</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6588">expressjs/express#6588</a></li>
<li>lib: use req.socket over deprecated req.connection by <a
href="https://github.com/bjohansebas"><code>@​bjohansebas</code></a> in
<a
href="https://redirect.github.com/expressjs/express/pull/6705">expressjs/express#6705</a></li>
<li>doc: update express app example by <a
href="https://github.com/shivarm"><code>@​shivarm</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6718">expressjs/express#6718</a></li>
<li>build(deps): bump github/codeql-action from 3.29.2 to 3.29.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6675">expressjs/express#6675</a></li>
<li>Remove history.md from being packaged on publish by <a
href="https://github.com/sheplu"><code>@​sheplu</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6780">expressjs/express#6780</a></li>
<li>build(deps): bump actions/checkout from 4.2.2 to 5.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6797">expressjs/express#6797</a></li>
<li>build(deps): bump github/codeql-action from 3.29.7 to 3.30.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6796">expressjs/express#6796</a></li>
<li>build(deps): bump ossf/scorecard-action from 2.4.2 to 2.4.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6795">expressjs/express#6795</a></li>
<li>build(deps): bump actions/setup-node from 4.4.0 to 5.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6794">expressjs/express#6794</a></li>
<li>build(deps): bump actions/download-artifact from 4.3.0 to 5.0.0 by
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6793">expressjs/express#6793</a></li>
<li>ci: add node.js 25 to test matrix by <a
href="https://github.com/Phillip9587"><code>@​Phillip9587</code></a> in
<a
href="https://redirect.github.com/expressjs/express/pull/6843">expressjs/express#6843</a></li>
<li>build(deps): bump actions/download-artifact from 5.0.0 to 6.0.0 by
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6871">expressjs/express#6871</a></li>
<li>build(deps): bump actions/setup-node from 5.0.0 to 6.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6870">expressjs/express#6870</a></li>
<li>build(deps): bump github/codeql-action from 3.30.5 to 4.31.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6869">expressjs/express#6869</a></li>
<li>build(deps): bump actions/upload-artifact from 4.6.2 to 5.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/expressjs/express/pull/6868">expressjs/express#6868</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/expressjs/express/blob/master/History.md">express's
changelog</a>.</em></p>
<blockquote>
<h1>5.2.0 / 2025-12-01</h1>
<ul>
<li>Security fix for <a
href="https://www.cve.org/CVERecord?id=CVE-2024-51999">CVE-2024-51999</a>
(<a
href="https://github.com/expressjs/express/security/advisories/GHSA-pj86-cfqh-vqx6">GHSA-pj86-cfqh-vqx6</a>)</li>
<li>deps: <code>body-parser@^2.2.1</code></li>
<li>A deprecation warning was added when using <code>res.redirect</code>
with undefined arguments, Express now emits a warning to help detect
calls that pass undefined as the status or URL and make them easier to
fix.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4007ad103b"><code>4007ad1</code></a>
Release: 5.2.0 (<a
href="https://redirect.github.com/expressjs/express/issues/6920">#6920</a>)</li>
<li><a
href="2f64f68c37"><code>2f64f68</code></a>
sec: security patch for CVE-2024-51999</li>
<li><a
href="ed0ba3f1dc"><code>ed0ba3f</code></a>
build(deps): bump actions/checkout from 5.0.0 to 6.0.0 (<a
href="https://redirect.github.com/expressjs/express/issues/6928">#6928</a>)</li>
<li><a
href="8eace4603c"><code>8eace46</code></a>
build(deps): bump github/codeql-action from 4.31.2 to 4.31.6 (<a
href="https://redirect.github.com/expressjs/express/issues/6929">#6929</a>)</li>
<li><a
href="30bae81027"><code>30bae81</code></a>
build(deps): bump coverallsapp/github-action from 2.3.6 to 2.3.7 (<a
href="https://redirect.github.com/expressjs/express/issues/6930">#6930</a>)</li>
<li><a
href="758d4355d4"><code>758d435</code></a>
deps: body-parser@^2.2.1 (<a
href="https://redirect.github.com/expressjs/express/issues/6922">#6922</a>)</li>
<li><a
href="77bcd5274a"><code>77bcd52</code></a>
docs: update emeritus triagers (<a
href="https://redirect.github.com/expressjs/express/issues/6890">#6890</a>)</li>
<li><a
href="f33caf1f89"><code>f33caf1</code></a>
Nominate to <a
href="https://github.com/efekrskl"><code>@​efekrskl</code></a> for
triage team (<a
href="https://redirect.github.com/expressjs/express/issues/6888">#6888</a>)</li>
<li><a
href="54af593b73"><code>54af593</code></a>
refactor: use cached slice in app.listen (<a
href="https://redirect.github.com/expressjs/express/issues/6897">#6897</a>)</li>
<li><a
href="2551a7d8af"><code>2551a7d</code></a>
docs: switch badges from badgen.net to shields.io (<a
href="https://redirect.github.com/expressjs/express/issues/6900">#6900</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/expressjs/express/compare/v5.1.0...v5.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=express&package-manager=npm_and_yarn&previous-version=5.1.0&new-version=5.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/monkeytypegame/monkeytype/network/alerts).

</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2025-12-03 16:47:36 +01:00
Leonabcd123
54e660da6b
impr(quote search modal): add custom length filter (@Leonabcd123) (#7109)
### Description

Added a new filter option in the quotes search page that allows the user
to search for quotes by a minimum and a maximum length.

Implementing #1323

---------

Co-authored-by: Jack <jack@monkeytype.com>
2025-12-03 16:42:18 +01:00
dependabot[bot]
71c0f43d96
build(deps): bump nodemailer from 7.0.7 to 7.0.11 in /backend (#7176)
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 7.0.7
to 7.0.11.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nodemailer/nodemailer/releases">nodemailer's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.11</h2>
<h2><a
href="https://github.com/nodemailer/nodemailer/compare/v7.0.10...v7.0.11">7.0.11</a>
(2025-11-26)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>prevent stack overflow DoS in addressparser with deeply nested
groups (<a
href="b61b9c0cfd">b61b9c0</a>)</li>
</ul>
<h2>v7.0.10</h2>
<h2><a
href="https://github.com/nodemailer/nodemailer/compare/v7.0.9...v7.0.10">7.0.10</a>
(2025-10-23)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Increase data URI size limit from 100KB to 50MB and preserve content
type (<a
href="28dbf3fe12">28dbf3f</a>)</li>
</ul>
<h2>v7.0.9</h2>
<h2><a
href="https://github.com/nodemailer/nodemailer/compare/v7.0.8...v7.0.9">7.0.9</a>
(2025-10-07)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>release:</strong> Trying to fix release proecess by
upgrading Node version in runner (<a
href="579fce4683">579fce4</a>)</li>
</ul>
<h2>v7.0.8</h2>
<h2><a
href="https://github.com/nodemailer/nodemailer/compare/v7.0.7...v7.0.8">7.0.8</a>
(2025-10-07)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>addressparser:</strong> flatten nested groups per RFC 5322
(<a
href="8f8a77c67f">8f8a77c</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md">nodemailer's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/nodemailer/nodemailer/compare/v7.0.10...v7.0.11">7.0.11</a>
(2025-11-26)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>prevent stack overflow DoS in addressparser with deeply nested
groups (<a
href="b61b9c0cfd">b61b9c0</a>)</li>
</ul>
<h2><a
href="https://github.com/nodemailer/nodemailer/compare/v7.0.9...v7.0.10">7.0.10</a>
(2025-10-23)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Increase data URI size limit from 100KB to 50MB and preserve content
type (<a
href="28dbf3fe12">28dbf3f</a>)</li>
</ul>
<h2><a
href="https://github.com/nodemailer/nodemailer/compare/v7.0.8...v7.0.9">7.0.9</a>
(2025-10-07)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>release:</strong> Trying to fix release proecess by
upgrading Node version in runner (<a
href="579fce4683">579fce4</a>)</li>
</ul>
<h2><a
href="https://github.com/nodemailer/nodemailer/compare/v7.0.7...v7.0.8">7.0.8</a>
(2025-10-07)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>addressparser:</strong> flatten nested groups per RFC 5322
(<a
href="8f8a77c67f">8f8a77c</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3d17dbec49"><code>3d17dbe</code></a>
chore(master): release 7.0.11 (<a
href="https://redirect.github.com/nodemailer/nodemailer/issues/1783">#1783</a>)</li>
<li><a
href="15879f8bd5"><code>15879f8</code></a>
Bumped dev dependencies</li>
<li><a
href="b61b9c0cfd"><code>b61b9c0</code></a>
fix: prevent stack overflow DoS in addressparser with deeply nested
groups</li>
<li><a
href="4175e4baf9"><code>4175e4b</code></a>
chore(master): release 7.0.10 (<a
href="https://redirect.github.com/nodemailer/nodemailer/issues/1776">#1776</a>)</li>
<li><a
href="d882ccfe8d"><code>d882ccf</code></a>
Merge branch 'master' of github.com:nodemailer/nodemailer</li>
<li><a
href="1d7e4f786b"><code>1d7e4f7</code></a>
Bumped deps</li>
<li><a
href="10bd871656"><code>10bd871</code></a>
chore: correct typo in variable name (<a
href="https://redirect.github.com/nodemailer/nodemailer/issues/1773">#1773</a>)</li>
<li><a
href="28dbf3fe12"><code>28dbf3f</code></a>
fix: Increase data URI size limit from 100KB to 50MB and preserve
content type</li>
<li><a
href="92ae1c49e3"><code>92ae1c4</code></a>
chore(master): release 7.0.9 (<a
href="https://redirect.github.com/nodemailer/nodemailer/issues/1769">#1769</a>)</li>
<li><a
href="c675d9e7e5"><code>c675d9e</code></a>
Merge branch 'master' of github.com:nodemailer/nodemailer</li>
<li>Additional commits viewable in <a
href="https://github.com/nodemailer/nodemailer/compare/v7.0.7...v7.0.11">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a>
Actions), a new releaser for nodemailer since your current version.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nodemailer&package-manager=npm_and_yarn&previous-version=7.0.7&new-version=7.0.11)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/monkeytypegame/monkeytype/network/alerts).

</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2025-12-03 16:35:59 +01:00
Jack
883d21fac6
chore: rename pretty to format (@miodec) (#7183)
In preparation for switching to oxfmt
2025-12-03 11:26:53 +01:00
Miodec
2fcc86dddf chore: make sure to use production env when building for production 2025-12-02 23:33:51 +01:00
Miodec
b64db65e59 fix: weird input behavior on some android keyboards 2025-12-02 20:42:51 +01:00
Miodec
ad8e4f65b5 chore: add disable slow timer button to dev options 2025-12-02 15:54:48 +01:00
Miodec
ad3b7b37d1 fix: backspacing causing desync on some platforms 2025-12-02 10:26:46 +01:00
Miodec
8c035c1687 chore: remove duplicated debug log 2025-12-02 10:00:28 +01:00
Miodec
a9e0db4f88 chore: update timer style schema
also update config and commandline metadata
2025-11-28 21:55:38 +01:00
Miodec
be73085b2a chore: animate also accepts strings 2025-11-28 21:43:15 +01:00
Miodec
62ef8564a6 chore: add guards to composition 2025-11-28 21:43:15 +01:00
Miodec
34e971bc42 chore: add guards to before delete 2025-11-28 21:43:15 +01:00
Leonabcd123
2886c72833
impr(words-filter): add 'exact match only' checkbox (@Leonabcd123) (#7126)
### Description

Added a checkbox in the words filter modal that allows the user to make
all characters not in the include list be excluded.

Implements #5970

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-11-27 20:36:38 +01:00
Leonabcd123
f6df272466
impr(input-history): Change style for incomplete last word in input history (@Leonabcd123) (#7117)
### Description

Added a new style named "incomplete" that mirrors the error style, but
uses yellow for the color. Words are marked in this style when they
don't match the correct word exactly, but share the same prefix.

Implements #6690

---------

Co-authored-by: Jack <jack@monkeytype.com>
2025-11-27 20:30:34 +01:00
Miodec
3b01090e5a chore: remove oxc prettier plugin
too many issues
2025-11-27 19:26:10 +01:00
Miodec
2cef523c37 fix(ci): use install instead of add
!nuf
2025-11-27 15:49:05 +01:00
Miodec
94b3bb135d fix(ci): use -D for prettier install
!nuf
2025-11-27 15:45:01 +01:00
Miodec
4b34854d3c fix(ci): pretty check using wrong version, missing plugin
!nuf
2025-11-27 15:31:08 +01:00
Miodec
066192c288 chore: use oxc plugin for prettier 2025-11-27 12:48:53 +01:00
Miodec
5f305735de chore: upgrade to prettier 3.7 2025-11-27 12:48:53 +01:00
Gian Peña
d18408700b
impr(timer/progress style): add flashing timer style (@gianpena) (#7139)
### Description

This copies the existing `text` timerstyle except on timed modes, where
it will only show the remaining progress (seconds) on every 15th second
(shows on 1:00, 45, 30, 15 and 0).

The motivation for this addition was that I wanted a middle ground
between the `text` timerstyle (in my opinion just a _little_ too
distracting) and no live progress indicator at all (I lose track of how
much time remains in the test), and I believe this achieves that middle
ground.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-11-27 11:50:16 +01:00
Jack
f910c8a567
chore: prettier upgrade (@miodec) (#7159) 2025-11-27 00:20:09 +01:00
Miodec
12f206eeca fix: ts issues (how did this get past ci?) 2025-11-27 00:05:41 +01:00
sapbotgit
a875aa6ede
impr(quotes): Add quotes from eChat source code (@sapbotgit) (#7154)
### Description

Different snippets of code from my old, dead project.

### Checks

- [X] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [ ] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
  - [ ] Add language to `packages/schemas/src/languages.ts`
- [ ] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [ ] Add language json file to `frontend/static/languages` 
- [ ] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
  - [ ] Add theme to `packages/schemas/src/themes.ts`
  - [ ] Add theme to `frontend/src/ts/constants/themes.ts`
  - [ ] Add theme css file to `frontend/static/themes`
- [ ] Add some screenshot of the theme, especially with different test
settings (colorful, flip colors) to your pull request
- [ ] Adding a layout?
- [ ] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
  - [ ] Add layout to `packages/schemas/src/layouts.ts`
  - [ ] Add layout json file to `frontend/static/layouts` 
- [ ] Adding a font?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/FONTS.md)
  - [ ] Add font file  to `frontend/static/webfonts`
  - [ ] Add font to `packages/schemas/src/fonts.ts`
  - [ ] Add font to `frontend/src/ts/constants/fonts.ts`
- [ ] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [ ] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [ ] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.

<!-- label(optional scope): pull request title (@your_github_username)
-->

<!-- I know I know they seem boring but please do them, they help us and
you will find out it also helps you.-->

<!-- the issue(s) your PR resolves if any (delete if that is not the
case) -->
<!-- please also reference any issues and or PRs related to your pull
request -->
<!-- Also remove it if you are not following any issues. -->

<!-- pro tip: you can mention an issue, PR, or discussion on GitHub by
referencing its hash number e.g:
[#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) -->

<!-- pro tip: you can press . (dot or period) in the code tab of any
GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) -->
2025-11-26 23:33:32 +01:00
NeraShi
c2691b334e
impr(quotes): add Russian quotes (@NeraShi) (#7152)
### Description

Some quotes from my favourite literature.

### Translations
id_1151: Almost five years! There were probably moments today when the
living Daisy did not quite match the Daisy of his dreams - and it was
not her fault, but the immense life force of the image he had created.
This image was better than her, better than anything in the world. He
shaped it with the genuine passion of an artist, constantly adding
details, decorating every bright feather that came into his hand. No
tangible, real charm can compare to what a person can accumulate in the
depths of their imagination.
id_1152: Gatsby believed in the green light, the gleam of an incredible
future happiness that recedes each year. Even if it eluded him today,
tomorrow we will run faster, reach further... And one fine morning... So
we try to swim forward, struggling against the current, and it keeps
pushing our little boats back into the past.
id_1153: They say emotional wounds heal - a thoughtless analogy to
bodily injuries, but in life it is not so. Such a wound may shrink,
partially close, but it is always an open wound, even if no larger than
a pinprick. The trace of suffered pain can perhaps be compared to the
loss of a finger or sight in one eye. You come to terms with the injury,
remembering it maybe only once a year - but when it suddenly comes to
mind, there is no help for it.
id_1154: Youth is like a plate piled high with sweets. Sentimental
people claim they would like to return to the simple, pure state in
which they existed before tasting the sweets. This is incorrect. They
would like to experience those pleasurable sensations again.
id_1155: Self-sacrifice, like a high elective office or inherited power,
for some people at some times is a luxury, yet it brings not guarantee
but responsibility, not calm but desperate risk. By its own inertia, it
can push one to ruin — an emotional wave causes it, and the person is
left alone forever on a bare rock of hopelessness.
id_1156: There is so much within me that I want to express. But it is
all so immense. I cannot find the words, I cannot convey what is inside.
Sometimes it feels as if the whole world, all of life, everything in
existence resides within me and demands: be our voice. I feel, oh, I
don’t know how to explain... I feel its vastness, and when I begin to
speak, it comes out as childish babble. How difficult it is to convey
feeling, sensation in words, on paper or aloud, so that the reader or
listener feels the same as you. It is a great task.
id_1157: Facing life in all its forms, whirling in its changing vortex,
Martin learned one rule: when playing an unfamiliar game, give the first
move to another. This rule saved him thousands of times, honing his
observation. He knew how to scrutinize the unknown and wait until a
weakness or vulnerable point revealed itself. Just as in a boxing match,
you test the opponent to find a weakness. And once found, - long
experience taught him - use it fully.
id_1158: Wherever he went, he was liked by everyone, because whether in
work or in play, he remained true to himself, always ready and able to
fight for his rights and demand respect. But he never put down roots.
Those around him were pleased, but he himself was never fully content.
There was no peace in him; he was constantly drawn and beckoned,
wandering through life, not knowing what he sought or where the call
came from, until he discovered books, creativity, and love.
id_1159: The dream of love was more important to him than the dream of
knowledge. The world seemed wondrous not because it consisted of
molecules and atoms obeying some mysterious laws - it seemed wondrous
because Ruth lived in it. She was a miracle, one that had never appeared
to him even in dreams.
id_1160: In the mouths of these people, the books he had read came
alive. They spoke passionately, fervently. Thought burned them, as
alcohol or anger might burn others. Philosophy was no longer dry printed
lines from legendary demigods like Kant or Spencer. Philosophy had come
alive, embodied in these two, filled with boiling crimson blood,
transforming their faces.

### Checks

- [x] Adding quotes?
- [x] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
2025-11-26 23:31:24 +01:00
Christian Fehmer
71b5d22159
refactor: Use class for validateWithIndicator (@fehmer) (#7151)
In preparation for the ElementWithUtils refactoring
2025-11-26 23:29:57 +01:00
Christian Fehmer
227a522024
refactor: use modern api for toggle fullscreen (@fehmer) (#7150) 2025-11-26 23:28:39 +01:00
Christian Fehmer
aafabeb78d
fix(friends): proper display of pending requests on small screens (@fehmer) (#7148) 2025-11-26 23:27:30 +01:00
GreenvillSSnick
14895f64a5
chore: add more words to hinglish language(hinglish.json) (@GreenvillSSnick) (#7138)
### Description

I added some new words to /frontend/static/languages/hinglish.json

Translations:

barre: outside
durghatana: accident
oopar: above
sabse: most
sveekaar: accept

### Checks

- [ ] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [ ] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
  - [] Add language to `packages/schemas/src/languages.ts`
- [ ] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [ ] Add language json file to `frontend/static/languages` 
- [ ] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
  - [ ] Add theme to `packages/schemas/src/themes.ts`
  - [ ] Add theme to `frontend/src/ts/constants/themes.ts`
  - [ ] Add theme css file to `frontend/static/themes`
- [ ] Add some screenshot of the theme, especially with different test
settings (colorful, flip colors) to your pull request
- [ ] Adding a layout?
- [ ] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
  - [ ] Add layout to `packages/schemas/src/layouts.ts`
  - [ ] Add layout json file to `frontend/static/layouts` 
- [ ] Adding a font?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/FONTS.md)
  - [ ] Add font file  to `frontend/static/webfonts`
  - [ ] Add font to `packages/schemas/src/fonts.ts`
  - [ ] Add font to `frontend/src/ts/constants/fonts.ts`
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
2025-11-26 23:16:46 +01:00