Releases: monkeytypegame/monkeytype
v24.37.0
Thank you to all the contributors who made this release possible!
Features
- language: add javascript react language (@bdsqqq) (#5873) (604fc208e)
- settings: allow partial presets (@amarnathsama, @Miodec, @fehmer) (#5813) (8a6c81669)
- themes: add suisei theme (@moonbamijam) (#5820) (14277538c)
Improvements
- language: add common javascript words, symbols and functions (@bdsqqq) (#5869) (dd93fdbf0)
- dont save results shorter than 1 second (89016d390)
Fixes
- quote search: search service not building in code_javascript quotes (@NadAlaba) (#5876) (f9bd7d778)
- lower accuracy requirement for accounts that have opted out of the leaderboards (3478c21aa)
- multi-line words causing issues in ui scrolling and tape mode (@NadAlaba, @Miodec) (#5857) (618d53ebf)
- unable to update profile with missing values (@fehmer) (#5859) (9c083f239)
- result filters defaults invalid (@fehmer) (#5860) (6de9ad6e1)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- feat(dev): add deepclone util function (@Miodec) (#5882) (70842599a)
- impr: use ts-rest for webhook endpoints (@fehmer, @Miodec) (#5871) (4f75a00cb)
- impr: move configuration checks to contracts (@fehmer) (#5851) (b315836de)
- impr(dev): add hotfix script (f6a27b2d1)
- impr: move permission checks to contracts (@fehmer, @Miodec) (#5848) (c7b3e2c91)
- fix: unnecessary assertion (e655aa741)
- fix: unresolved ts type (38d8ac721)
- fix(server): get personal bests request mode2 should be optional (d5fb24fb1)
- refactor: move file (fa3ae6668)
- refactor: enable no-unsafe-assignment rule (@Miodec) (#5874) (955eeae2a)
- refactor: remove leftover code from ts-rest migration (@fehmer) (#5875) (e19b3e3e8)
- refactor: use css for heatmap colors (@fehmer) (#5879) (98acf7561)
- refactor: enable no-unsafe-argument rule (@Miodec) (#5872) (93d6fff89)
- refactor: rework rate limiting (@fehmer) (#5845) (b06b9f73e)
- chore(deps): bump express from 4.19.2 to 4.20.0 in /backend (#5867) (c6daef0e9)
v24.36.0
Thank you to all the contributors who made this release possible!
Features
- layout: add the scythe layout (@forusu) (#5854) (5f695b422)
- funbox: add instant messaging (@fehmer) (#5850) (77c1e8e29)
Improvements
- settings: add hints to tag buttons on mouseover (@fehmer) (#5849) (8e0a6c341)
- quote: add quotes in various languages (#5832) (02490213d)
Fixes
- caret: getting last letter top in long multiline words (@NadAlaba) (#5856) (cbaefbf21)
- zen mode: issues when changing tape mode and other caret issues (@NadAlaba) (#5824) (661c13881)
- cookie modal not being shown for new users (8ddb23ac4)
- words flashing when line jumping in some modes (cc00295a5)
- presets: auto-switch theme checkbox values not loaded correctly (@amarnathsama) (#5826) (253efb734)
- release script: not updating root
package.json
version + not supporting some shells (@NadAlaba) (#5825) (faf522f21) - language: duplicate word (13eab0713)
- language: typos in english medical (8a6d0a649)
- funbox: earthquake and simon says not working correctly (@fehmer) (#5823) (8bef02f73)
- sever: wrong rate limiter being used for result post (6e43e1c4d)
- caps lock state sometimes being out of sync (a6232beea)
- sign up: false positive typo warning when using hotmail.com (d957e7afe)
- funbox: choo choo not working (abdd66a27)
- remove 2 misspelled words from english_450k (@pasanflo) (#5809) (a53d60207)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr: use tsrest for user endpoints (@fehmer) (#5815) (259894ab9)
- impr: use tsrest for quotes endpoints (@fehmer) (#5802) (1804ebcd8)
- impr(PR labels): automatically label PRs "waiting for review/update" (@sanidhyas3s) (#5830) (1ba4be38d)
- impr: use tsrest for dev endpoints (@fehmer) (#5800) (30d440a70)
- impr: use tsrest for configurations endpoint (@fehmer) (#5796) (e2d574444)
- impr: use ts-rest for results endpoint (@fehmer) (#5758) (e03a25fb9)
- fix: server not logging exceptions (73f379ae8)
- style(mini result chart modal): fix incorrect height (0d5ff3eb7)
- style: fix some themes not working well with the new header menu (14c121b9f)
- refactor: determine active word based on logical value, not DOM class (@NadAlaba) (#5834) (55496996d)
- refactor: await addWord if the test is out of words (7b4a789f2)
- refactor: update based on logical value, not DOM class (c3274f0f0)
- refactor: rename some functions and variables for easier understanding (9eb927b2f)
- refactor: remove ResultOmittableDefaultPropertiesSchema (@fehmer) (#5827) (65ef5eaba)
- refactor: updateURL function for improved maintainability (@anthonypz) (#5817) (8863fb70d)
- refactor: move mini result chart to the new modal system (59a18680a)
- chore(PR labeler): fix workflow having read access only, when triggered from forks (@NadAlaba) (#5842) (6a24dbb98)
- chore(server): warn if object hash check is disabled (38e0d5088)
v24.34.0
Thank you to all the contributors who made this release possible!
Improvements
- move account settings to a separate page (@Miodec) (#5798) (47e52f0b1)
This change also creates a hover menu in the header which includes the new account settings. Sign out has also been moved to that menu. - language: add common Java classes and words (#5803) (03a08f402)
- account page: automatically enable results if both results and accuracy are disabled to avoid confusion (e3a40b46b)
Fixes
- hints: hide hints in blind mode and update position on some config changes (@NadAlaba) (#5754) (9e057dce8)
- tape mode sometimes showing two cut off lines ([#for real this time](https://github.com/monkeytypegame/monkeytype/issues/for real this time)) (46fa97008)
- tape mode sometimes showing two cut off lines (6657c02d7)
- account verification notice duplicating (210d1aed9)
- config: some settings sometimes being reset on refresh (cd3b95b38)
- legacy values in config not getting migrated (@fehmer) (#5790) (4386999cc)
- result filters getting reset on page load (@fehmer) (#5788) (fa9e877cc)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- style: increase margin (f25536a21)
- style: update email not verified warning styling (2e22677df)
- refactor(account button): dont access snapshot directly, accept parameters instead (3221968e5)
- refactor(sign in out button): move dom modifying code to the element file (aaadad081)
- refactor: move all account button related code to one file (8b4b24f0b)
- ci: skip semantic pr title for dependabot (@fehmer) (#5786) (ffb04f2af)
- chore(deps-dev): bump vite-plugin-checker from 0.6.4 to 0.7.2 (#5808) (32d9fa49e)
- chore(deps-dev): bump @typescript-eslint/parser from 8.0.1 to 8.2.0 (#5807) (758ebd920)
- chore(deps-dev): bump @types/object-hash from 2.2.1 to 3.0.6 (#5805) (7cd44812e)
- chore(deps): bump rate-limiter-flexible from 2.3.7 to 5.0.3 (#5806) (f625eabf7)
- chore(deps-dev): bump @commitlint/config-conventional (#5804) (4e735177d)
- chore: make sure MongoDbMock is using the same configuration (@fehmer) (#5792) (b48854bc9)
- chore: add todo (7ffb7ead0)
- chore: bump swagger-stats to 0.99.7 (4f9ddd1a4)
- chore: bump chartjs-plugin-annotation to 2.2.1 (a0dcfbb6f)
- chore(deps): bump chartjs-adapter-date-fns from 2.0.0 to 3.0.0 (#5782) (a5bbf9856)
- chore(deps-dev): bump conventional-changelog from 4.0.0 to 6.0.0 (#5783) (6684e7b9e)
- chore(deps): bump prom-client from 14.0.1 to 15.1.3 (#5785) (dca7a84c8)
- chore(deps): bump dotenv from 10.0.0 to 16.4.5 (#5784) (8af766efb)
- chore: log zod issues, not zod error (b162e3ada)
- chore: hide merch banner for now (b50701ee2)
- chore(release package): catch github release api error, notify user (101beef87)
- optimize permissions middleware (@fehmer) (#5801) (4466acd6b)
- ci: add ability to run ci on draft pull requests (@Miodec) (#5791) (945db7d20)
v24.33.0
Thank you to all the contributors who made this release possible!
Features
- layout: add the romak layout (@rafaelromao) (#5741) (ff8464eef)
Improvements
- commandline: preview error sound on hover (@Bretis2019) (#5769) (38a852980)
- update filipino word list (@Killer8Hyper) (#5768) (2ae398cda)
- deep copy constant objects when retrieving them (692d3f592)
- update filipino word list (@Killer8Hyper) (#5761) (6d000aec6)
- notify user that captcha api failed to respond instead of throwing a server error (316bbd33a)
- quote: add quotes in various languages (@neinja007) (#5767) (d5b243cf5)
Fixes
- language: add one thousandth word to english 1k (@avick-saha) (#5757) (474ef2e53)
- save custom text modal: save button not being enabled (@brenob6) (#5759) (d7a40c8d5)
- server: incorrect apekeys permission check (77c9cc423)
- caret: not working in zen mode (002ef8f6b)
- documentation link in settings (@fehmer) (#5755) (a9caf2442)
- don't send authentication if user is not authenticated (#@fehmer (5747 (0d7e3cf91)
- caret: jumping in word tape mode and RTL position issues (@NadAlaba) (#5726) (657d305ab)
- quote: update or remove quotes reported by users (e1a2020b0)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr(ls with schema): verify schema after migration (13457cf6c)
- impr(server): log unknown validation errors (@fehmer) (#5777) (6458b248d)
- impr: add req.method to dev slowdown log (19cef8b4a)
- impr: add local storage with schema class to improve type safety (@Miodec) (#5763) (55e183e7b)
- impr: use tsrest for leaderboard endpoints (@fehmer) (#5717) (c6e8f413f)
- impr: use tsrest for public endpoints (@fehmer) (#5716) (c50535cd0)
- impr: use authentication state instead of the dom (6c9148624)
- impr: export cf purge script (c2d08096e)
- impr: use tsrest for psa endpoints (@fehmer) (#5712) (f6ec00650)
- impr: use tsrest for admin endpoint (@fehmer) (#5713) (460f803bc)
- fix: default result filters not passing schema (38aa79a35)
- fix(dev): mark dev tasks as persistent (12cd29c12)
- fix: remove tailing slashes from new endpoint urls (@fehmer) (#5745) (2d24fc323)
- fix: sh scripts sometimes not finding .env file (d57e318cf)
- fix: incorrect paths (cdfcc9e66)
- fix(ci): errors when running on push (749f2af10)
- style: only apply error underline when moving to the next word (24e94479d)
- style: sliiiightly increase the horizontal word margin (142b51cc2)
- style(settings page): fix pace caret buttons text overflow (41638dd14)
- refactor: use single client for whole contract on frontend (@fehmer) (#5752) (cfea8eef1)
- refactor: implement recordClientVersion as middleware (@fehmer) (#5750) (02505750a)
- refactor: getLocalPb returns pb object instead of just wpm (f32846de3)
- refactor: move psa check to after auth was initialised (90e3ad495)
- refactor: move release code to a package (@Miodec) (#5743) (1eebf748b)
- refactor: change hideExtraLetters from being html based to css based (a558a59a5)
- ci: fix backend vitest.config (@fehmer) (#5780) (6fdfb5849)
- ci: skip semantic pr title for dependabot (@fehmer) (#5776) (f92c1023b)
- ci: fix prettier failing on removed files (@fehmer) (#5742) (b484d1545)
- ci: skip full checkout on pre-ci on pull requests (@fehmer) (#5738) (6c18504c8)
- ci: skip cache download on prime-cache job (@fehmer) (#5737) (ffacc0a5f)
- chore(deps-dev): bump @types/string-similarity from 4.0.0 to 4.0.2 (#5772) (704679931)
- chore(deps): bump axios from 1.6.4 to 1.7.4 in /frontend (@dependabot) (#5779) (5694dacbd)
- chore: set dependabot to use pn...
v24.32.0
Thank you to all the contributors who made this release possible!
Features
- last signed out result modal (7306cf8a9)
Now, instead of always saving the last result when loggin in, a popup will be shown where you can view the last result. Then you can decide if you want to save it or discard it. - funbox: add hexadecimal (@asasine) (#5724) (b26cb887e)
- languages: add portuguese 320k and 550k (@jeffersonjpr) (#5698) (c79115684)
Improvements
- pace caret: add tags pb mode (@NadAlaba) (#5715) (738574ed3)
- settings: replace sound volume with a slider (@amarnathsama) (#5702) (8c7ece372)
- remove ñ from lazy mode replacements (8527b33b0)
- quote: add quotes in various languages (@266-750Balloons) (#5705) (a3661ec89)
Fixes
- thai ligature rendering (6e9e1e721)
- pb crown: incorrect class names causing ineligible warning or pending state to not show (7b7b1c86e)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr: add "student" to education email regex (ddebf5745)
- impr: add email typo to the list (de79d469c)
- fix: csp preventing new documentation unable to display logo (@fehmer) (#5719) (4a55db528)
- refactor: move pb crown aria-label text update to a function (cbd6725ad)
- ci: run time improvements (@Miodec) (#5730) (3568818b4)
- chore: remove unused code (f0441e2b6)
- chore: missing min string length causing firebase to throw errors (fb45f05c3)
- chore: fix lint warnings (98108dead)
v24.31.3
Thank you to all the contributors who made this release possible!
Fixes
- frontend api adapter: use abortcontroller.abort when abortsignal.timeout is not available (@Miodec) (#5714) (fe50fe165)
- caret: incorrect placement in tape mode: word (b22e0a407)
- not being able to make requests on very old browsers (@fehmer) (#5711) (482de2946)
- caret: incorrect placement in tape mode (981f9668c)
- config: keymap size not persisting (9858d93dc)
- funbox: sometimes generating unrealistic ip addresses (@rizwanmustafa) (#5682) (7a4db1ef9)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr: use tsrest for ape-keys endpoint (@fehmer) (#5706) (8a09acd8d)
- impr(server): store some logs forever (@Miodec) (#5708) (a6912d20a)
- impr(ci): verify pr titles include author name (@rizwanmustafa) (#5707) (c6550eb8d)
- impr(relase script): add no-verify to git commands (a4b0dc049)
- build(contracts): fix output paths for windows (@NadAlaba) (#5700) (feaff239f)
- build(backend): activate inspector to allow attaching debugger (@NadAlaba) (#5704) (8bc47960e)
- chore: fix dirname not defined in nodejs modules (9972e9d39)
- chore(eslint): add 2 rules (3917cc435)
- chore(deps): remove release-it (aa5166876)
v24.31.2
This release is mostly a test of the new release script.
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
v24.31.1
Thank you to all the contributors who made this release possible!
Features
- add keymap size (@butterflycup, @fehmer, @Miodec) (#5659) (c906bfbe2)
- layout: add xenia_alt and hyperroll (@PTLux1517) (#5662) (e8ddd7785)
- practice: add option to practice missed biwords (@sanidhyas3s) (#5637) (da555e6ba)
Improvements
- account page: add icons to titles (b4fc3da2a)
- edit result tags: display unkown tags so that they can be removed from results (395bfae3a)
- quote: add quotes in various languages (@Dagio2406) (#5665) (033d43d87, 29c78e8d5)
Fixes
- repeated tests that use pipe delimiter would not load correctly (f86d6fcf1)
- quotes: grammatical errors in spanish quotes (Dagio2406) (#5673) (dd4a21edb)
- caret: blind mode not stopping caret in tape mode word (936aac677)
- tooltips: remaining visible after clicking buttons with a mouse (6f14d0ea0)
- tape mode: scrolling sometimes glitching out and not being smooth (cdb926e12)
- blind mode not working in highlight mode off (47ef6575a)
- quote: update or remove quotes reported by users (f594244e3)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr: school email detection regex (20c2fbc11)
- impr: use tsrest for presets endpoints (@fehmer) (#5675) (6c6e1529a)
- impr: use tsrest/zod for config endpoints (@fehmer) (#5649) (7f9f704dc)
- fix: missing env definition (751763cc8)
- style(cookie modal): fix incorrect text colors (e55cd7bcb)
- style: fix custom background filters media query (d96832c92)
- ci: build fe/be if packages changed (@fehmer) (#5674) (df8d79978)
- ci: move pretty check to one job, stop the rest of the ci from running when prettier errors (#5670) (6554f0b2a)
- ci: add prettier check in the assets job (#5668) (daa930bcd)
- test: updateAltGrState (@Marcosatc147) (#5656) (aa74c5eaa)
- chore: release v24.31.1 (7e32c78c1)
- chore(deps): bump firebase version (594db598d)
- chore: switch from npm to pnpm (#5690) (2720c0766)
- chore(lint): enable no unsafe return (47438fa8d)
- chore: upgrade node to 20.16.0 (#5688) (1110248f7)
- chore: add more eslint rules (#5687) (fe7a67d0f)
- chore: remove config from shared-types (@fehmer) (#5681) (6b9f4a0f1)
- chore: bump throttle-debounce to 5.0.2 (#5684) (1164f4a11)
- chore(deps): bump stemmer from 2.0.0 to 2.0.1 (#5679) (3b29ad4b1)
- chore(deps-dev): bump @types/bcrypt from 5.0.0 to 5.0.2 (#5677) (ccc483226)
- chore(deps-dev): bump @release-it/conventional-changelog (#5676) (80847dc6d)
- chore: npm i (6463abd2f)
- chore: remove hard npm version requirement (471e844c6)
- chore: release v24.31.0 (cb65adc8c)
- chore: ignore unresolved import errors for internal packages (f92e63975)
v24.31.0
Thank you to all the contributors who made this release possible!
Features
- layout: add xenia_alt and hyperroll (@PTLux1517) (#5662) (e8ddd7785)
- practice: add option to practice missed biwords (@sanidhyas3s) (#5637) (da555e6ba)
Fixes
- tape mode: scrolling sometimes glitching out and not being smooth (cdb926e12)
- blind mode not working in highlight mode off (47ef6575a)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr: use tsrest/zod for config endpoints (@fehmer) (#5649) (7f9f704dc)
- fix: missing env definition (751763cc8)
- style: fix custom background filters media query (d96832c92)
- ci: move pretty check to one job, stop the rest of the ci from running when prettier errors (#5670) (6554f0b2a)
- ci: add prettier check in the assets job (#5668) (daa930bcd)
- test: updateAltGrState (@Marcosatc147) (#5656) (aa74c5eaa)
- chore: ignore unresolved import errors for internal packages (f92e63975)
v24.30.0
Thank you to all the contributors who made this release possible!
Features
- languages: add portuguese 320k (@jeffersonjpr) (#5648) (962b1a79e)
Improvements
- languages: serbian 10k lists (@Fooftilly) (#5652) (bdaca701c)
- authentication: add error message when sign in popup was blocked by the browser (a1a94db1a)
- replace ṅ with n in lazy mode (@fehmer) (#5638) (c96185e90)
- languages: Add useful Vim motions and sort JSON (#5618) (62305cc02)
Fixes
- tape mode: not scrolling for extra letters (c1afd1336)
- reenable login inputs if loading user data fails (13a15c94d)
- incorrect portuguese group array (c24bf0fa8)
- util: hexToRgb function (brenob6) (#5643) (c0f7e2572)
- word generator: custom mode with time limit generating the wrong amount of starting words (ee49c79d6)
- caret: block width going down to 0 when typing with blind mode on (8d9875f4e)
- blind mode: tape mode still scrolling when making mistakes (799902949)
- quote: update or remove quotes reported by users (3b768e0d7)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr(dev): add quick login button to frontend dev modal (230517625)
- impr(dev): disable ads in dev (c6d1ea09c)
- impr: disable sw caching for version file (f96b8efda)
- impr: use tsrest/zod for type-safety on both ends (@fehmer) (#5479) (4c9e949f1)
- docs: move files to docs folder (#5654) (1d8930cb0)
- docs: update contributing advanced (@fehmer) (#5646) (2a28bee7c)
- docs: update example code (#5633) (e7afa1263)
- refactor: run prettier (#5636) (a2b4cee02)
- refactor: restructure project to a true monorepo (#5626) (3e88ac2f1)
- perf(ci): cache dependencies (#5653) (ac0e24e38)
- ci: optimize prime-cache checkout (@fehmer) (#5657) (ed4b07206)
- ci: configure dependabot (@fehmer) (#5642) (c856cf12f)
- ci: update ci-failure-comment workflow (@fehmer) (#5632) (29627fd0d)
-
- dev: missing outputs prop causing cached build to not output files (c1bd66a82)
- dev: vite preview not working (93b2e0036)
- build(frontend): check ts on build (5c58270bd)
- build: split vite config (c832f7eb3)
- chore: notify user the config coming from the database is in the wrong format (f4bfe2717)
- chore: update hotfix script (906c15cfa)
- chore: output version to version.json (0b3e3d9a3)
- chore: update backend out dir (642a2b22a)
- chore(deps): bump express from 4.17.3 to 4.19.2 in /backend (#5650) (d717ae005)
- chore: update master pre-push script (4034880d0)
- chore: add supporter (2eb9b7aa2)
- chore: start application in dev mode using docker (@fehmer) (#5647) (40514cd24)
- chore: regen package lock (9889bfa54)
- chore(dev): update vscode workspace file (ff2ac031b)
- chore(dev): prevent terminal screen from being cleared in watch mode (cac4c7b23)
- chore(dev): prevent terminal screen from being cleared by vite (be304906e)
- chore(dev): fix tsconfig path (5f7565a69)
- chore(dev): use --force param for dev turbo dev (93f6a9c0f)
- chore: update file extension (eaa766fc7)
- chore: bump ua-parser (8de977a45)
- chore: add full check command (b9f9a0174)
- chore: regenerate package lock (93767fecf)
- chore(deps-dev): bump vite from 5.1.2 to 5.1.7 in /frontend (#5639) (b5444d827)
- chore(deps-dev): bump postcss from 8.4.27 to 8.4.31 in /frontend (#5640) (26c60c683)
- chore: increase inconsistent test duration window (deeea0fb7)