move revoke tokens function from delete user to its own funciton (together with removing from cache)
remove authutil calls from dal and move them to the controller layer
make sure to revoke tokens on email change
* wip
* wip frontend
* cleanup
* wip
* refactoring
* wip
* first working version
* wip
* update calendar with new result
* add migration script
* dates are hard
* fix naming inconsistencies
* requested changes on migration
* timezones
* update date-fns, use date-fns/utc
* resolve cyclic dependency by extracting test activity calender into new file
* cleanup
* fix increment
* fix
* tests
* test coverage
* test migration
* migration more logging
* migration add unique index on uid if missing
* update legend styling
* 53 columns
* wip
* move dropdown and legend to the top
add dropdown border
yeet hotpink
invisible filler boxes
remove year from month format
* responsive update
* lowercase months
* handle current year, fix tests
* handle year change
* make days square again
* handle newly created users correctly
* move css
* add wrapper for easier styling
rework some font sizes/widths
reorder styles
* media queries
* align
* rework styling once more
* dont commit debug
* add days full to fill the space a bit
* show partial months
* hover on 0 tests
* start dynamic calendar on sunday
* no activity
* hover
* remove label on fillers
* remove label on fillers
* fix months, update tests for months
* adjust tests to new requirements
* cleanup
* fix migration
* impr(commandline): add "add/remove quote to favorites" commands
closes#5368
* chore: remove daily lb which is no longer in the backend
* fix: dropdown element flashing for couple frames on page load
* feat(language): add japanese romaji 1k (nthngnssmnnglss)
* fix: optional chaining
!nuf
* fix(words generator): infinite custom text tests not working correctly
* chore: missing languages in list and group files
* fix(language): remove duplicates
!nuf
* add readline sync to confirm
* gh action complaints
* unnecessary check
* premium only
* add years to drop down only if premium
* Update setup-tests.ts
* test fix
* cleanup
---------
Co-authored-by: Miodec <jack@monkeytype.com>
* impr: add selfhosting using docker only
* add recaptcha config and docs
* add documentation on the backend-configuration.json file, remove ---redacted--- from example config
---------
Co-authored-by: Jack <jack@monkeytype.com>
* feat: indicate premium users
* frontend
* Test multiple userFlags, remove later
* cleanup
* fix flag alignment on profile and leaderboards
* fix name auto scaling
* update screenshot watermark
* update header text
* use userFlags for lbOptOut
* use flex end
* removeo unused code, increase margin
---------
Co-authored-by: Miodec <jack@monkeytype.com>
* move user to shared definitions
this includes whatever user can have on it, tags, presets and so on
* profiles, mail and others
* fix logic
* yeet
* same as master for now
* tsc fixes
* remove comment
* fix tests
* chore: omit ips
* fix(language): remove some unnecessarily capitalised words in german 1k
* fix(typing): first space sometimes soft locking the website
* perf: speed up settings page loading
* fix: use selected typing speed unit on personal best popup (fehmer) (#5070)
* fix: Use selected typing speed unit on personal best popup
* refactor
* refactor
* test coverage
* use Format in more places
* Make config mockable
* dependency injection
* wip
* fix
* test
* touch
* fix(language): typos in russian_10k.json (kae) (#5082)
* Update russian_10k.json
- fixed typos
- removed duplicates
* - fixed extra typos
* remove duplicates
* fix(language): typos in russian_10k.json
* feat: add copy missed words to result screen (fehmer) (#5086)
* feat: Add copy missed words to result screen
* remove margin
* update icons
---------
Co-authored-by: Miodec <jack@monkeytype.com>
* impr(funbox): add 46 group languages to wikipedia funbox (RealCyGuy) (#5078)
* impr: provide all-time LB results during LB update (fehmer) (#5074)
Try to provide LB results during the LB update. There is a very small time-frame where
already running queries might fail during the update. For now we keep the 503 error in this
cases and monitor how often this happens on production.
* impr(funbox): add ` (grave accent, 96) and ~ (tilde, 126) to specials (#5073)
* impr: add testWords and wordsHistory to copy result stats (#5085)
* feat: add testWords and wordsHistory to copy result stats
* fix
* add fe ts dep
---------
Co-authored-by: Christian Fehmer <fehmer@users.noreply.github.com>
Co-authored-by: Andrey Kuznetsov <akuznetsov@outlook.com>
Co-authored-by: Cyrus Yip <cyruscmyip1@gmail.com>
Co-authored-by: fitzsim <fitzsim@fitzsim.org>
Try to provide LB results during the LB update. There is a very small time-frame where
already running queries might fail during the update. For now we keep the 503 error in this
cases and monitor how often this happens on production.