Commit graph

11781 commits

Author SHA1 Message Date
Miodec
c666d13c96 impr: parse response from discord api with zod
!nuf
2025-04-29 13:53:02 +02:00
Miodec
e8c0fc08d0 chore: temporairly allow null discordIds 2025-04-29 13:51:53 +02:00
Miodec
f0f27f0733 chore: upgrade octokit/rest 2025-04-29 12:53:49 +02:00
Miodec
ae653be9aa chore: release v25.18.0 2025-04-29 12:51:07 +02:00
Christian Fehmer
c253d2fd18
refactor: make customLayoutfluid an array (@fehmer) (#6494)
merge after #6487
2025-04-29 12:46:24 +02:00
Christian Fehmer
212b8d38cb
refactor: make funbox settings an array (@fehmer) (#6487)
change funbox from "hash separated values" to array.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-29 11:31:44 +02:00
Christian Fehmer
b36bc9f39e
refactor: move layout names to contracts (@fehmer) (#6495) 2025-04-28 11:29:52 +02:00
Miodec
ab9cef010e chore: swap monkeyerror for error to not expose actual error message to the frontend 2025-04-26 21:53:16 +02:00
Jack
e06f7f41cf
refactor: add trycatch util (@miodec) (#6492)
Adds trycatch util to cleanup try catch code.
2025-04-26 21:24:39 +02:00
Miodec
a59f99a533 refactor: protect against null, remove nullish coalescing 2025-04-26 18:56:58 +02:00
Miodec
f60dd0ac3c chore: remove false positive 2025-04-24 16:39:30 +02:00
Seif Soliman
86383cf9ef
refactor(backend): improve redis and json.parse type safety with zod (@byseif21, @miodec) (#6481)
### Description

refactored backend files to enhance type safety and reliability using
Zod validation and Redis instead of JSON.parse , I tried to avoid the
files that isn't necessary tho so I hope I don't miss any or included
unnecessary ones!! didn't fully test only verified code compilation and
partial tests without Redis!!.


Should Close #5881 
Related to #6207

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-24 16:25:43 +02:00
Miodec
d863e8d70e fix(keymap): dynamic legends not working correctly 2025-04-24 13:28:09 +02:00
Miodec
a424f96480 chore: upgrade oxlint 2025-04-23 18:54:33 +02:00
Christian Fehmer
ac1d6f0847
feat(funbox): add ASL (@fehmer) (#6485) 2025-04-23 18:45:52 +02:00
Miodec
d3f3a834e3 refactor: remove unnecessary json parse 2025-04-23 18:43:38 +02:00
Christian Fehmer
0c4352ee5f
refactor: improve funbox-validation, add tests (@fehmer) (#6478) 2025-04-23 15:32:54 +02:00
robi-wan
d651f28256
feat(layout): add OPY (@robi-wan) (#6453)
### Description

Add OPY layout

https://github.com/voidyourwarranty2/opy-layout
> OPY is a keyboard layout in the tradition of NEO2, AdNW and KOY
> for a split ortholinear keyboard with shift and space on thumb keys,
> optimized for mixed English and German usage [..]

I tweaked the rows so that it looks good in the matrix and split matrix
keyboard styles. The author did not define a row1 so I took the freedom
to include one which resembles row1 from the qwertz layout.

### 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 or a theme?
- [ ] If is a language, did you edit `_list.json`, `_groups.json` and
add `languages.json`?
  - [ ] If is a theme, did you add the theme.css?
- Also please add a screenshot of the theme, it would be extra awesome
if you do so!
- [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.

---------

Co-authored-by: Christian Fehmer <cfe@sexy-developer.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-23 15:30:46 +02:00
Christian Fehmer
74d54ac06c
fix: compatibility check for funboxes when switching test modes (@fehmer) (#6471) 2025-04-19 17:02:53 +02:00
cdd
ff10baca5e
feat(theme): add sunset theme (@catdogdonkey) (#6467)
### Description

Just added a new theme (I tried my best to not make this similar to any
themes, but if it is similar to one, please tell me!)

#### Screenshots

![sunset
home](https://github.com/user-attachments/assets/dc02a1b8-047e-4097-a9a4-d42998116fdb)

![sunset
test](https://github.com/user-attachments/assets/ffc61f2b-43bd-4ef3-953a-0495a22721b7)

![sunset
settings](https://github.com/user-attachments/assets/bf74a5ee-346e-4f14-9ec9-d3ea4d293c03)

![sunset
values](https://github.com/user-attachments/assets/cf87d0d7-b954-4862-b5ec-8d14ffea5d5f)


### Checks

- [ ] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [x] Adding a language or a theme?
- [ ] If is a language, did you edit `_list.json`, `_groups.json` and
add `languages.json`?
  - [x] If is a theme, did you add the theme.css?
- Also please add a screenshot of the theme, it would be extra awesome
if you do so!
- [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.



<!-- 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.-->
2025-04-19 13:43:31 +02:00
Christian Fehmer
e0d1ee4cf7
fix(settings): fix dropdown not rendered correctly (@fehmer) (#6468)
Dropdowns for layoutfluid and polyglot were not rendered correctly after
logout/login
2025-04-19 13:33:48 +02:00
Christian Fehmer
a9c2f52dde
docs: order oxlint badge correctly (@fehmer) (#6470) 2025-04-19 13:33:09 +02:00
Christian Fehmer
c5d0f985e9
impr: use rainbow effect on rgb badges for reduced-motion (@fehmer) (#6466) 2025-04-18 22:10:07 +02:00
Miodec
a910ddab47 chore: move word gen error definition to utils to fix circular dependency 2025-04-18 21:52:45 +02:00
Miodec
0bd49db8e5 impr(funbox): notify user if polyglot languages are not valid 2025-04-18 21:49:16 +02:00
Miodec
2835a02bbb impr: add type safety to the config event observable
!nuf
2025-04-18 20:31:48 +02:00
Christian Fehmer
4d570d32b0
fix: fix content-type check in fetchJson (@fehmer) (#6465) 2025-04-18 18:00:28 +02:00
Miodec
2a4fe187d6 chore: release v25.16.1 2025-04-18 16:52:58 +02:00
Christian Fehmer
da671337c5
feat(funbox): add polyglot (@fehmer) (#6454)
Add polyglot funbox which let you practice on multiple languages at once
in a single test.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-18 16:48:35 +02:00
Haz
a8ce609f0d
feat(language): add xhosa_3k (@aitchz) (#6464)
### Description

Add xhosa_3k

### Checks

- [x] Adding a language or a theme?
- [x] If is a language, did you edit `_list.json`, `_groups.json` and
add `languages.json`?
- [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.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-17 16:13:10 +02:00
megalodon2710
bf002c02ec
feat(funbox): add layout mirror (@megalodon2710) (#6463)
### Description

Added layout mirror item in the funbox with functionality.

Tweaked how active funbox items are detected in the commandline (names
included in other names no long appear as active if the item they're
included in is active).

### 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 or a theme?
- [ ] If is a language, did you edit `_list.json`, `_groups.json` and
add `languages.json`?
  - [ ] If is a theme, did you add the theme.css?
- Also please add a screenshot of the theme, it would be extra awesome
if you do so!
- [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.

<!-- 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.-->

Closes #5573

<!-- 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! :) -->

---------

Co-authored-by: jeffrey <jeffrey.tiger@telecom-paris.fr>
Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-17 16:10:19 +02:00
Sameer Singh
6acaeb41f1
feat(theme): add Vesper theme (@SameerJS6) (#6443)
### Description
Adds Vesper theme. Based on Vesper for VSCode theme from [Rauno
Freiberg](https://github.com/raunofreiberg/vesper)

<!-- Please describe the change(s) made in your PR -->

### Checks

- [ ] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [x] Adding a language or a theme?
- [ ] If is a language, did you edit `_list.json`, `_groups.json` and
add `languages.json`?
  - [x] If is a theme, did you add the theme.css?
- Also please add a screenshot of the theme, it would be extra awesome
if you do so!
- [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.

<!-- 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.-->

## Preview

### Main Page:

![vesper-monkey-type](https://github.com/user-attachments/assets/4d1f7ac0-b139-42e9-b588-e3e9edeae809)

### Settings Page:
![vesper monkey type
settings](https://github.com/user-attachments/assets/274a7551-5555-483e-85c3-efd47797edac)

### Toasts:
#### Error Toast:


![image](https://github.com/user-attachments/assets/8cdc4d20-08b7-4c82-94aa-a3ee55fd779e)

#### Info Toast:


![image](https://github.com/user-attachments/assets/0b40e90d-cd23-4248-b39a-ad3340e46d32)

#### Success Toast:


![image](https://github.com/user-attachments/assets/405d010f-e790-4a32-97d2-2a051b85ec0e)


<!-- 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-04-17 14:48:04 +02:00
Christian Fehmer
644c59cd9b
fix(theme): inconsistent/unreadable styling on settings page when using phantom theme (@fehmer) (#6446)
1. Some buttons have the color animation set like funboxes on the
settings page while others have not:

![image](https://github.com/user-attachments/assets/6c4f1ecc-6a94-4e0f-9643-6dde901f8506)

2. On the active theme button the effects overlap making it unreadable:

![image](https://github.com/user-attachments/assets/d2784c9c-34c2-40c6-8e30-5d47a39ff5f4)

3. On the footer color effect was applied to the `textButton` (like
github, discord links) but not `button` (like contract and support).
This applies to all animated themes.
2025-04-17 14:31:56 +02:00
Haz
fd75dd8ac8
impr(quotes): add urdu quotes (@aitchz) (#6441)
### Description

Add five Urdu Quotes
### 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.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-17 14:31:32 +02:00
Christian Fehmer
312813c1ba
fix(settings): Update layoutfluid on config change (@fehmer) (#6462)
When changing the layoutfluid settings via cmdline the settings page did
not update.
This also happens on prod so it is not directly related to the change
#6445
2025-04-17 14:20:53 +02:00
Christian Fehmer
55e7de7425
docs: add layouts (@fehmer) (#6461) 2025-04-17 14:20:14 +02:00
Miodec
8bec7da619 chore: bump vite and vite plugins versions 2025-04-16 21:42:30 +02:00
Nad Alaba
2d33e1da41
chore: throw error when response in fetchJson() is not json (@NadAlaba) (#6459)
because vite dev server does not throw a 404 when fetching a non
existing json document, but responds with an html document and a 200
status code
2025-04-16 21:31:56 +02:00
Miodec
bf0ce6607d fix: lint issues
!nuf
2025-04-16 19:39:07 +02:00
Miodec
0b05b3c2fd refactor: enable ban-ts-comment rule 2025-04-16 19:15:30 +02:00
Miodec
158226629d refactor: enable eqeqeq rule 2025-04-16 18:54:15 +02:00
Miodec
3207a20829 refactor: reduce indentation by extracting code to a function 2025-04-16 18:45:55 +02:00
Miodec
33857d400a impr(frontend): reduce json minification logs on build
!nuf
2025-04-16 17:20:01 +02:00
Jack
cac8835c77
chore: add oxlint (@miodec) (#6455)
Use oxlint for general linting to provide much quicker feedback. Keep
eslint for type-aware rules. Fully switch to oxlint once it supports
type-aware.
2025-04-16 17:18:50 +02:00
Christian Fehmer
92d97c1fee
impr: optimize getFirstDayOfWeek (@fehmer) (#6457)
!nuf
2025-04-16 17:18:03 +02:00
Christian Fehmer
e1c8e4a226
impr(settings): use dropdown for custom layoutfluid (@fehmer) (#6445) 2025-04-16 16:55:38 +02:00
Christian Fehmer
4abcc8c5cd
impr: split keymap layouts into seperate files (@fehmer) (#6452)
!nuf
2025-04-16 15:06:53 +02:00
Miodec
2391bc5204 fix(test config): punctuation and numbers disappearing when selected language doesnt have any quotes
closes #6451
2025-04-16 12:53:16 +02:00
Miodec
9a4ac30957 fix(tape mode): indicate typos: below being cut off 2025-04-14 13:39:10 +02:00
Miodec
0750f26a99 chore: release v25.16.0 2025-04-14 13:06:53 +02:00