Commit graph

134 commits

Author SHA1 Message Date
Miodec
9891dac323 chore(release script): remove validate-json step if only running in the backend 2025-06-16 12:13:36 +02:00
Miodec
4c05dd8326 chore: bump oxlint version 2025-06-14 14:43:05 +02:00
Miodec
04fbd81c10 chore: bump oxlint version 2025-05-29 13:23:13 +02:00
Miodec
5695245c86 chore: release v25.22.0 2025-05-27 17:17:48 +02:00
Christian Fehmer
47de0c8a40
refactor: cleanup schema and types for CustomText (@fehmer) (#6605) 2025-05-27 16:30:49 +02:00
siilyg
1826948886
feat(layout): add Tarmak layouts (@siily-g) (#6574)
### Description

The tarmak layout(s) is a set of transition layouts for qwerty user
switching to colemak, it changes only about 3-4 keys for every stage.

[More about tarmak](https://dreymar.colemak.org/tarmak-intro.html)

### 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/contracts/src/schemas/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/contracts/src/schemas/themes.ts`
  - [ ] Add theme to `frontend/src/ts/constants/themes.ts`
  - [ ] Add theme css file to `frontend/static/themes` 
- [x] Adding a layout?
- [x] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
  - [x] Add layout to `packages/contracts/src/schemas/layouts.ts`
  - [x] Add layout json file to `frontend/static/layouts` 
  
- [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-05-26 16:03:25 +02:00
Nginearing
e28aa97285
feat(language): add viossa (@nginearing) (#6571)
### Description

This adds Viosssa as a language to Monkeytype. 
Viossa is a constructed language and has even been added to Minecraft
Java Edition, and has also been assigned an ISO-639-3 Code by the
ConLang Code Registry (https://www.kreativekorp.com/clcr/)

### Checks

- [X] Adding a language
  - [X] Added language to `packages/contracts/src/schemas/languages.ts`
- [X] Added language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [X] Added language json file to `frontend/static/languages` 
  
- [X] Checked if there are any open issues are related to this PR.
- [X] PR title follows Conventional Commits standard.
- [X] Included GitHub username prefixed with @ inside parentheses at the
end of the PR title.
2025-05-26 15:44:57 +02:00
Miodec
fc2d85a9e5 chore: disable rule 2025-05-17 13:32:26 +02:00
Jack
ea90e0a99e
refactor: dont allow nullable numbers (@miodec) (#6564)
Enables strict boolean expressions rule for nullable numbers
2025-05-16 16:04:19 +02:00
Christian Fehmer
f1f4d17932
impr(profile): validate inputs for twitter, github and website (@fehmer) (#6544)
fixes #6543
2025-05-12 14:02:28 +02:00
Miodec
8370de1fa4 impr: add function to clearstreakhouroffset
!nuf
2025-05-12 13:52:37 +02:00
JN03
69d9b3814f
feat(language): add Thai 1K, 5K, 10K, 50K, and 60K (@jnx03) (#6498) 2025-05-07 15:30:26 +02:00
Christian Fehmer
eb092cea1c
refactor: move languages to contracts (@fehmer) (#6497) 2025-05-07 14:02:27 +02:00
Christian Fehmer
5ab7bfb438
refactor: move themes list to typescript (@fehmer) (#6489)
Co-authored-by: fehmer <3728838+fehmer@users.noreply.github.com>
2025-05-05 13:30:09 +02:00
Jack
b257a52f41
impr: add fallback and migrate to parsejsonwithschema (@miodec) (#6518)
!nuf
2025-05-03 12:14:35 +02:00
Miodec
faffc78abc chore: only add sentry plugin when building from release package 2025-04-30 14:13:51 +02:00
Miodec
5d4f449000 chore: dont use turbo cache in release script 2025-04-30 09:17:45 +02:00
Miodec
c8e964d0f6 refactor: add hotfix mode to release package 2025-04-30 08:25:04 +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
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
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
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
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
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
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
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
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
f6d9b7c3ef
impr: lazy load chartData on results (@fehmer) (#6428)
Optimize results endpoint by removing heavy or unused data. 

We load the whole result chart data for up to 1000 results each time,
but it is very unlikely the user will view the charts for all old
results. By removing the size in my tests went down from 1152kb to
276kb.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-08 13:46:40 +02:00
Miodec
b9916b8b8d chore: trim branch string 2025-03-26 18:19:36 +01:00
Christian Fehmer
cef3ff57c7
impr(result page): clicking on daily leaderboard rank opens the leaderboards page the user is on (@fehmer) (#6380)
Co-authored-by: Miodec <jack@monkeytype.com>
2025-03-18 13:18:12 +01:00
Christian Fehmer
9e3f795380
fix: protect against stored xss in custom background url (@fehmer) (#6355)
!nuf

closes #6354
2025-03-12 16:52:57 +01:00
Nad Alaba
195b9d8402
chore(workflows): update deprecated action and remove duplicate workflow message (@NadAlaba) (#6344)
### Description

1. remove duplicate correct examples in semantic-pr-title error message,
and make the examples more diverse (show how to credit multiple
contributors).

![patternMessage](https://github.com/user-attachments/assets/cb6afe48-ed67-4894-ab4a-76894dd50e3b)

2. make the scope (quotes, languages, ...) consistently plural across
the repo docs (A subjective change I know, but in the changelog, the
scope looks better when it is plural i.e. **quotes:** add various
quotes).
3. update deprecated action `upload-artifact` from v3 to v4, because it
was making the `ci-failure-comment` workflow fail.
> Error: This request has been automatically failed because it uses a
deprecated version of `actions/upload-artifact: v3`. Learn more:
https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/
4. use the same official action to download and upload artifacts across
the repo's workflows.
5. add 'waiting for update' and remove 'waiting for review' labels when
the Monkey CI workflow fails.
6. fix actions' major version only, to allow minor updates and patches.
2025-03-12 16:35:58 +01:00
Nad Alaba
932d0e166e
build: fix openapi spec path for docs & stats endpoints on dev (@NadAlaba) (#6343)
### Description

1. fix openapi specification path so that /docs endpoint would work on
dev.

> Error: ENOENT: no such file or directory, stat
'backend/src/static/api/public.html' Stack: Error: ENOENT: no such file
or directory

2. fix openapi specification path so that API Operation would work on
/stats endpoint on dev.

> Cannot read openApi specification from
backend/src/api/routes/../../static/api/openapi.json. Swagger stats will
not fully work.

![stats](https://github.com/user-attachments/assets/82f3e8b4-814c-4ede-ba67-8da53dacad87)

3. remove unneeded `files` & `ts-node` options from `tsconfig.json` in
various places.

> File 'backend/src/types/types.d.ts' not found.
  The file is in the program because:
    Part of 'files' list in tsconfig.json

4. add the missing `pnpm test` script to the funbox package.
2025-03-12 16:20:46 +01:00
Miodec
420d049a59 impr(server): better leaderboard request validation schema
stop mongo from trying to handle pointless queries

!nuf
2025-03-12 13:13:56 +01:00
Christian Fehmer
9e13f2452a
chore: add branch check in release script (@fehmer) (#6338) 2025-03-06 01:31:33 +01:00
Christian Fehmer
f80dde4c89
chore(self hosting): run selfhosted backend in prod mode (@fehmer) (#6326)
Co-authored-by: Miodec <jack@monkeytype.com>
2025-03-03 17:43:08 +01:00
Christian Fehmer
2b2d1a153e
build: use tsup instead of esbuild for packages (@fehmer) (#6309) 2025-03-03 13:48:50 +01:00
Christian Fehmer
8a41ccee97
fix: past leaderboard not fetching the users rank (@fehmer) (#6289)
Show the users ranking for the last day on the daily and for the last
week on the weekly leaderboard correctly.

- Fix request query schema for the [daily
rank](https://api.monkeytype.com/docs/internal#tag/leaderboards/operation/leaderboards.getDailyRank)
having pagination
- Fix request query schema for the [weekly
rank](https://api.monkeytype.com/docs/internal#tag/leaderboards/operation/leaderboards.getWeeklyXpRank)
missing the `weeksBefore` parameter
- Fix frontend to include the `daysBefore` or `weeksBefore` parameter on
`rank` calls

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-02-21 16:52:20 +01:00
Miodec
7b80bf80a9 chore: forward the exit code returned by the ssh command
also fix logging on error
2025-02-20 12:12:15 +01:00
Christian Fehmer
09eb1a2b0e
refactor: use validation on email update modal (@fehmer) (#6272) 2025-02-19 16:27:20 +01:00
Jack
01dee3fe15 feat: leaderboards remake, weekly xp leaderboards (@miodec) (#6250) 2025-02-12 16:34:03 +01:00
Christian Fehmer
e7685c5861
impr: add X-Compatibility-Check header to all responses (@fehmer) (#6262)
!nuf
2025-02-12 14:37:53 +01:00