Commit graph

913 commits

Author SHA1 Message Date
Miodec 948f667b2a fixed incorrect validation message being shown 2022-12-11 22:39:55 +01:00
Miodec bf93ea753a removing errorId when not a server error 2022-12-11 01:00:33 +01:00
Miodec f697ec00fe logging errorid 2022-12-10 23:40:02 +01:00
Miodec 5005b9aad6 if the user is not found: check if it exists in auth, if it does, recreate it in db 2022-12-10 23:38:41 +01:00
Bruce Berrios bdd6ce0ffa
Housekeeping (#3816)
* housekeeping

* bad commit

* fix bad
2022-12-08 14:46:17 +01:00
bvoo 4e9ab796ad
Add timestamp filter for results (#3815)
* Add timestamp filter for results

* moved validation, changed mongo filter to gte.

* conditionally include time in mongo query, strict schema.

* changed min to monkeytype birth date

* added result options, check for nil.

* update description

* timestamp constant

* rename timestamp to onOrAfterTimestamp, make opts optional

* declaration and description modifications

* one last time

* move result ops

* one last one for real
2022-12-07 22:11:22 -05:00
Miodec cb8237a0c0 longer bio 2022-12-07 17:54:15 +01:00
Miodec b458a6dd9d false positives 2022-12-07 17:54:09 +01:00
Snyk bot 829a68b3e7
fix: backend/package.json & backend/package-lock.json to reduce vulnerabilities (#3814)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-GOT-2932019
- https://snyk.io/vuln/SNYK-JS-QS-3153490
2022-12-07 15:52:48 +01:00
Bruce Berrios c1dfc53e58
Refactor queues (#3783) Bruception 2022-11-30 19:39:16 +01:00
egorguslyan 618c9ec931
Ip (#3784) egorguslyan
* Finishing logic

* Numbers + layoutfluid

* One interface

* Filter results

* tts error on undefined

Extencions like NoScript can partly block scripts on the page.
If speech synthesis is not loaded, notification shows up
without freezing the page

* Improved randomcase

* Prevent dublicates in command line

* Change filter logic

* Prettier

* Convert numbers

* num

* Quote and zen modes

* withWords

* Misc

* Expand funboxes list for pb saving

* Move list to backend

* Move to constants

* Async withWords, checkFunbox tweak

* Prettier

* Forbid nonexistent funboxes

* Disable speech if language is ignored

TtS's init() uses setLanguage()

* canGetPb

* Less circular imports

* Ligatures typo

* Simon says blocks word highlight

* blockWordHighlight backend

* Changed imports

* usesLayout

* JSON schema

* IP funbox

* Split

* Display notification instead of reseting

* canGetPB

* One getWordHtml

* Dividing properties

* No sync

* blockedModes

* forcedConfig

* Infinitness parameter, list sync

* applyConfig, memory

Remove extra applyConfig somewhere;
Memory in quotes and custom modes

* I lost this code after merging

* Remove arrowKeys

* isFunboxCompatible

* Fix logic

* sync canGetPb

* remove FunboxObjectType

* baloons

* moved cangetpb function to pb utils

* updated the pb check to be easier to understand

* Refactor isFunboxCompatible

* Check modes conflicts

* Strict highlightMode type

* Only one allowed or blocked highlight mode

* More checks

* Undefined only, not false

* Prettier

* Highlight modes

* added intersect helper function

* reworked forced config
 - storing allowed modes as an array, not string
 - first value will be used if config is outside of the allowed values
 - instead of checking if highlight mode is allowed, checking if the whole config is available
- removed the "Finite" forced config and replaced it with "noInfiniteDuration" property
- config event listener now checks every config change, not just highlight mode. this will ensure any future forced configs will work straight out of the box

* ManualRestart in commandline

* fixed funbox commands not correctly showing which funbox is active

* Upd list

* Merge

* canGetPB for ip

* Reduce list

* split funbox into smaller files
moved funbox files into its own folder

* missing none command

* added function to convert camel case to space separated words

* changed config validation to be blocking the change rather than reacting to the change

* reduced code duplication

* allowing sub color flash

* moved keymap key higlighting and flashing into an observable event

* moved tts into a observable event

* passing funbox into config validation funcitons

* replaced getActive with get

* only keeping functions structure in the list, moved the actual function bodies to funbox.ts
done to remove a circular dependency
still need to finish the rest of the funboxes

* removed empty function definitions (typing issues)

* removed unnecessary type

* unnecessary check

* moved mode checking to config validation

* longer notification

* checking funboxes before changing mode

* moved more functions

* fixed incorrect type

* checking funboxes when setting punctuation and numbers

* Rest of funboxes

* fixed funbox commands showing tags text and icon

* checking if funbox can be set with the current config

* better error message

* validating with setting time and words
importing from a new file

* added a function to capitalise the first letter of a string

* using function from a new file
new parameters

* moved test length check to a function in a different file

* moved some funbox validation into its own file

* only  showing notifications if the setWordCount returned true

* moved funbox validation to its own file

* setting manual restart when trying to set funbox to nonoe

* moving this validation to before activating the funbox

* returning forcedConfigs along side if current value is allowed
moved infinite check to checkFunboxForcedConfigs

* removed function, replaced by funox validation

* removing duplicates

* throwing if no intersection

* wrong type

* always allowing setting funbox
sometimes it might be possible to update the config

* checking forced configs first, and updating config if possible
only setting funbox to none when couldnt update config

* basic difficulty levels

* xp funbox bonus

* Delete old file

* Difficulty level

* removed console logs

* renamed import, renamed type

* lowercase b for consistency across the codebase

* renamed variable for readability

* renamed for clarity

* converted metadata to object

* changed from beforesubgroup on the command to before list on the subgroup

* using code suggested by bruce

* renamed type

* removed console log

* merch banner fix

* important animation

* updating the icon of "none" funbox command

* removed unnecessary import

* lowercase b

* updated description

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2022-11-30 19:25:57 +01:00
egorguslyan 588d14a2b3
Multiple funboxes (#3578) egorguslyan
* input-controller

* result

* Finishing logic

* Numbers + layoutfluid

* One interface

* Filter results

* tts error on undefined

Extencions like NoScript can partly block scripts on the page.
If speech synthesis is not loaded, notification shows up
without freezing the page

* Improved randomcase

* Prevent dublicates in command line

* Change filter logic

* Prettier

* Convert numbers

* num

* Quote and zen modes

* withWords

* Misc

* Expand funboxes list for pb saving

* Move list to backend

* Move to constants

* Async withWords, checkFunbox tweak

* Prettier

* Forbid nonexistent funboxes

* Disable speech if language is ignored

TtS's init() uses setLanguage()

* canGetPb

* Less circular imports

* Ligatures typo

* Simon says blocks word highlight

* blockWordHighlight backend

* Changed imports

* usesLayout

* JSON schema

* Display notification instead of reseting

* canGetPB

* One getWordHtml

* Dividing properties

* No sync

* blockedModes

* forcedConfig

* Infinitness parameter, list sync

* applyConfig, memory

Remove extra applyConfig somewhere;
Memory in quotes and custom modes

* I lost this code after merging

* Remove arrowKeys

* isFunboxCompatible

* Fix logic

* sync canGetPb

* remove FunboxObjectType

* baloons

* moved cangetpb function to pb utils

* updated the pb check to be easier to understand

* Refactor isFunboxCompatible

* Check modes conflicts

* Strict highlightMode type

* Only one allowed or blocked highlight mode

* More checks

* Undefined only, not false

* Prettier

* Highlight modes

* added intersect helper function

* reworked forced config
 - storing allowed modes as an array, not string
 - first value will be used if config is outside of the allowed values
 - instead of checking if highlight mode is allowed, checking if the whole config is available
- removed the "Finite" forced config and replaced it with "noInfiniteDuration" property
- config event listener now checks every config change, not just highlight mode. this will ensure any future forced configs will work straight out of the box

* ManualRestart in commandline

* fixed funbox commands not correctly showing which funbox is active

* Upd list

* Reduce list

* split funbox into smaller files
moved funbox files into its own folder

* missing none command

* added function to convert camel case to space separated words

* changed config validation to be blocking the change rather than reacting to the change

* reduced code duplication

* allowing sub color flash

* moved keymap key higlighting and flashing into an observable event

* moved tts into a observable event

* passing funbox into config validation funcitons

* replaced getActive with get

* only keeping functions structure in the list, moved the actual function bodies to funbox.ts
done to remove a circular dependency
still need to finish the rest of the funboxes

* removed empty function definitions (typing issues)

* removed unnecessary type

* unnecessary check

* moved mode checking to config validation

* longer notification

* checking funboxes before changing mode

* moved more functions

* fixed incorrect type

* checking funboxes when setting punctuation and numbers

* Rest of funboxes

* fixed funbox commands showing tags text and icon

* checking if funbox can be set with the current config

* better error message

* validating with setting time and words
importing from a new file

* added a function to capitalise the first letter of a string

* using function from a new file
new parameters

* moved test length check to a function in a different file

* moved some funbox validation into its own file

* only  showing notifications if the setWordCount returned true

* moved funbox validation to its own file

* setting manual restart when trying to set funbox to nonoe

* moving this validation to before activating the funbox

* returning forcedConfigs along side if current value is allowed
moved infinite check to checkFunboxForcedConfigs

* removed function, replaced by funox validation

* removing duplicates

* throwing if no intersection

* wrong type

* always allowing setting funbox
sometimes it might be possible to update the config

* checking forced configs first, and updating config if possible
only setting funbox to none when couldnt update config

* basic difficulty levels

* xp funbox bonus

* removed console logs

* renamed import, renamed type

* lowercase b for consistency across the codebase

* renamed variable for readability

* renamed for clarity

* converted metadata to object

* changed from beforesubgroup on the command to before list on the subgroup

* using code suggested by bruce

* renamed type

* removed console log

* merch banner fix

* important animation

* updating the icon of "none" funbox command

* removed unnecessary import

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2022-11-30 16:57:48 +01:00
Bruce Berrios 83cfd272a2
Fix weekly leaderboard timestamp logic (#3780) 2022-11-29 11:33:58 +01:00
Miodec dcfc5702b4 changed to monkeytype 2022-11-29 01:04:00 +01:00
Bruce Berrios a4022f43a8
Refactor ape rate limiter (#3778) Bruception 2022-11-28 17:13:00 +01:00
Bruce Berrios 87b89e0d57
Add weekly xp leaderboards backend (#3511) Bruception
* Add weekly seasons

* Fix test

* Add week timestamp tests

* Add unit tests

* Fix weeks before calculation

* Update user.spec.ts

* Remove minXp maxXp reward config

* Record total time typed + last activity timestamp

* Season -> Weekly XP Leaderboard

* prettier

* Add config hints

* Update leaderboard.ts

* monkeytype

Co-authored-by: Miodec <jack@monkeytype.com>
2022-11-28 14:10:02 +01:00
Miodec 7f78018475 updated regex 2022-11-18 23:54:49 +01:00
Miodec 25883e3bc9 removed regex 2022-11-18 23:54:49 +01:00
Miodec 32bdcbbec0 removed regex 2022-11-16 00:14:55 +01:00
Miodec 6458029d0a removed regex check 2022-11-15 23:58:39 +01:00
Miodec 0192b025df verifying language with regex 2022-11-15 16:51:22 +01:00
Miodec f76849f921 better request validation 2022-11-15 16:40:19 +01:00
Miodec 17d9733bba upgraded packages
cors
firebase-admin
simple-git
2022-11-15 12:44:24 +01:00
Miodec f72c3a6702 added a state token to make sure we only link to the user that started the oauth2 flow 2022-11-09 15:44:31 +01:00
Miodec 682216588d better erorr message when username contains profanity 2022-11-08 12:54:23 +01:00
Miodec 0f589b0e5b allowing .-_ in github and twitter names
closes #3729
2022-11-08 12:45:48 +01:00
Miodec 310db63597 only allowing alphanumerics 2022-11-07 17:51:15 +01:00
Miodec cf411245e6 removed some profanities 2022-11-04 14:27:47 +01:00
Miodec 95b91f1d70 not recording uids for now 2022-10-29 14:31:36 +02:00
Miodec 508c289c92 added a function which applies a custom rate limiter when using ape key
opened results endpoint to ape keys (1 req per hour)
updated docs to mention new open endpoint
2022-10-28 18:42:44 +02:00
Miodec b00e5d893e logging busiest uids 2022-10-28 14:39:33 +02:00
Miodec a6a7454d2e deleting ape keys, presets, config on user delete
also removing from leaderboards
closes #3684
2022-10-26 19:02:37 +02:00
Miodec b1d53f1f99 fixed incorrect schema 2022-10-19 00:34:47 +02:00
Brian Evans cffa7514ea
Save speed stats in leaderboard update (#3652) mrbrianevans
* Save speed stats in leaderboard update

Saves a histogram data structure of speeds for buckets rounded to the nearest 10.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* API endpoint to get public speed stats

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add APE class for public stats (WIP)

I created an APE class for accessing public stats. Also stubbed getting and showing the public speed stats on the about page. Haven't implemented the histogram yet though.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Draw histogram for global speed stats

On about page

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Update histogram colors on theme change

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Fixed out-of-order data in speed histogram

 Data was not sorted correctly, which resulted in an incorrect histogram being drawn.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Public speed stats PR fixes

Small fixes based on PR feedback:
 - changed _req to req
 - removed unnecessary client version header

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add endpoint for typing stats

New endpoint to retrieve the public typing stats such as global count of tests completed.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Renamed public-stats to public

Except in cases where it would cause an identifier named `public` as this is forbidden in strict mode.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add stats section to about page

In this commit:
 - add a section above about called stats
 - display typing stats in three columns
 - underneath show the histogram of speeds on english time 60
 - make chart responsive

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add unit test for Public DAL

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* updated styling

* only requesting data once per session

* going one column on narrow screens

* added option to specify number of decimal poitns

* just showing million instead of abbreviating
updated structure
updated styling

Signed-off-by: Brian Evans <ebrian101@gmail.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2022-10-18 15:45:45 +02:00
Miodec f0dca0cf13 filling default values 2022-10-17 13:32:52 +02:00
Miodec b13448ae7c turns out foreach stops exceptions from propagating 2022-10-17 13:30:14 +02:00
Miodec 437614b20c strict undefined check instead of a nullish check 2022-10-17 13:18:30 +02:00
Miodec be8b6f082e throwing instead of defaulting 2022-10-17 13:16:23 +02:00
Miodec e31b708082 default values, added throw in case of missing data 2022-10-17 13:03:58 +02:00
Miodec d44e4f7a12 allowing undefined funbox through (same as none) 2022-10-17 13:03:32 +02:00
Miodec 7a678a2cdf updating tag pbs on result tag update
part of #3663
2022-10-17 12:23:34 +02:00
Bruce Berrios a3b3387f01
Purge from dailies (#3635) Bruception
* Purge from dailies

* Fix

* Migrate logic to lua script

* added test to pass coverage

* typo

* also purging user from daily lbs on personal bests clear

Co-authored-by: Miodec <jack@monkeytype.com>
2022-10-10 18:29:29 +02:00
Miodec ea9cb797df descriptive error 2022-10-10 17:18:52 +02:00
Miodec 60d4116e6a added uid to profile data 2022-10-10 00:14:32 +02:00
Miodec f0b80ff967 end range seems to be non inclusive 2022-10-05 12:11:21 +02:00
Miodec ebeafd9880 added all time lb positions to profiles 2022-09-29 13:08:10 +02:00
Miodec e96366e9d3 logging streak lost 2022-09-28 20:45:46 +02:00
Miodec a273372990 fixed a bug where losing a streak would not save max streak length correclty 2022-09-28 20:43:13 +02:00
Miodec 40addbf97f added daily pace caret mode
closes #3564
2022-09-28 13:07:07 +02:00
Miodec e16634dad4 deleting user if captcha fails 2022-09-28 12:19:53 +02:00
Miodec 8fca782f30 not using cache if requiring fresh token 2022-09-28 00:17:42 +02:00
Miodec a9f1580aab fixed duplicate imports 2022-09-27 15:49:32 +02:00
Miodec 9182d353fe upped cache to 50mb 2022-09-27 00:52:50 +02:00
Bruce Berrios 0283cba792
Replace profile URI to use username (#3598) Bruception
* Replace Profile URL to use username

* Remove Auth import

* using replace state to fix back button not working

Co-authored-by: Miodec <jack@monkeytype.com>
2022-09-26 10:51:52 +02:00
Bruce Berrios e6a8747d41
yyyriyriy ppp[i6riy (#3603) Bruception
* Add new synth click sounds

* Use key codes instead

* Fix Sound preview

* Check for caps lock

* Add new quote - imperial march
2022-09-26 10:41:31 +02:00
Miodec 4f146ae5a8 fixed backwards logic 2022-09-25 18:17:10 +02:00
Miodec e9503a24c2 fixed bad expiration date calc 2022-09-25 18:09:19 +02:00
Miodec 75f89fadd4 reverted size test
added else to avoid double counting
2022-09-25 15:41:01 +02:00
Miodec 92bbd1b081 testing without size calculation 2022-09-25 15:16:48 +02:00
Miodec a54eb3a3bb added LRU cache to avoid asking firebase to decode the tokens
added prometheus metrics for the token cache
2022-09-25 14:48:24 +02:00
Miodec 61626aa44d moved country middleware to auth to get access to base url and route path 2022-09-23 20:28:03 +02:00
Miodec c29ac5ff44 reverted to baseurl and route path 2022-09-23 20:27:28 +02:00
Miodec e0b9a63ec5 using req.url instead 2022-09-23 20:15:33 +02:00
Miodec 1f1ba6bcfd optional chaining 2022-09-23 20:05:49 +02:00
Miodec 0fff40f912 added country log test 2022-09-23 20:03:01 +02:00
Jack 409f0a83e4
Get profile by name (#3585)
* handling query param
getting user by name if query param is present

* added function to get user by name

* split profile function to get user by uid or name

* added  function to check if get parameter exists in url

* updating the profile based on the url parameter

* using query param in url

* using get param

* renamed param name
adding search param to pathname in the deafult parameter value

* renamed param

* renamed param
added query validation

* extracted repeated query to a function

* missing await

* fixed typo
fixed validation

* using em for dynamic font sizes

* using em for dynamic font sizes

* added line height

* using em

* using em

* using page profile search instead

* updated the way data is passed into the page

* profile search page

* setting line height

* removed vertical align

* moved navigate to an event to avoid circular deps

* fixed route controller not being included

* removed unnecessary test

* showing 404 error

* improved query checking

* renamed query param

* fixed test

* note

* yeet

* cleaner type definition
2022-09-22 17:45:57 +02:00
Miodec 6fd6cdf55b added captcha requirement to create new user 2022-09-22 12:56:38 +02:00
Miodec 4db07975ff ignoring domain 2022-09-20 15:58:43 +02:00
Miodec 5e7d2aad61 added eslint rule to force async markings 2022-09-20 14:25:51 +02:00
Miodec 526f391ffc added configuration to disable user sign up 2022-09-19 00:21:23 +02:00
Miodec 9e2d84da72 stricter rate limits 2022-09-19 00:15:57 +02:00
Miodec 918f09d522 updated log 2022-09-19 00:12:34 +02:00
Miodec e731c9c0cc blocking domain 2022-09-19 00:01:57 +02:00
Miodec 8a78e2b462 added bailed out test too short validation 2022-09-17 22:18:50 +02:00
Miodec 0fca1073bb fixed exact wpm match showing as new pb
closes #3539
2022-09-15 12:55:26 +02:00
Miodec 48a1c765eb missing type 2022-09-12 13:01:35 +02:00
Miodec ddea63d371 added more detailed incomplete test tracking
altering incomplete xp gained based on accuracy of those tests
2022-09-12 12:57:24 +02:00
Bruce Berrios 7339ec7ce0
Clear rewards (#3528) 2022-09-10 18:30:36 +02:00
Miodec 8dabb39d70 missing rounding 2022-09-09 11:03:31 +02:00
Bruce Berrios c894a862e4
Add xp reward overrides (#3525) Bruception, Miodec
* Add xp reward overrides

* edge case

* switched to defined brackets instead of just min and max

* foreach

* moved type to its own interface

* updated spec

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-09-08 22:38:28 +02:00
Miodec e9c6534c39 fixed failing test 2022-09-07 13:53:34 +02:00
Miodec 5bf0c9a951 moved streak logic from controller to dal
closes #3515
2022-09-07 13:15:37 +02:00
Miodec 9e7e0fc6ff checking if inventory is undefined 2022-09-06 17:02:35 +02:00
Miodec fada34500d fixed users being unable to claim their rewards 2022-09-06 16:57:54 +02:00
Miodec 1c82d85662 not sending awards if maxXpReward is 0 2022-09-05 15:16:50 +02:00
Miodec ee5c07d10a displaying longest streak on profile 2022-09-05 15:12:24 +02:00
Miodec 949e49cfa2 added maxstreak 2022-09-05 15:05:12 +02:00
Miodec 85dc20e8cd Merge branch 'newnav' 2022-09-05 13:55:09 +02:00
Miodec d461255be1 Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-09-05 12:17:59 +02:00
typermonkeyuser b08c194c3d
Implement streaks (#3385) typermonkeyuser, bruception, miodec
* Implement streaks

* Improve code

* Update package.json

* Store streak on the user

* Pretty-fix

* Ensure that streak is up to date

* Fix issue in streak calculation

* Revert prettier changes

* Update polish.json

* Update db.ts

* Remove initial calculation

* Write mandatory test

* using strict equality

* moved functions to the utils file

* importing utils

* adding streak to breakdown,
rounding and parsing streak modifier

* renamed variable

* renamed fields

* using correct field name

* added streaks to configuration

* showing streak during xp breakdown

* incrementing streak earlier
checking configuration before applying modifier

* returning streak to the client

* setting local streak with the number returned from the backedn

* only reading streak when updating profile instead of updating

* sending streak information in profile

* only showing streak if greater than 0

* setting to empty if no streak

* renamed config property

* updated streak calculation

* refactored isYesterday

* refactored streak update

* only displaying if streak larger than 1

* merged configuration properties into 1

* added configuration for max streak bonus

* added isToday check back (derp)

* reverted streaks back to multiplier approach

* using better maprange functin

* removed import

* moved test to dal spec

* clamping

* removed imports

* fixed test

* increased coverage

* removed angry console log

* typo

* using date now instead of dates

* mocking date now
awaiting expect

* not using date

Co-authored-by: Anonymous <110769200+fasttyperdog@users.noreply.github.com>
Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com>
Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-09-05 12:13:55 +02:00
Miodec de251d0741 checking if xp is nan 2022-09-05 02:19:21 +02:00
Bruce Berrios 20a5cac5e6
Reward daily leaderboards and refactor mail API (#3508) Bruception
* Reward daily leaderboards and refactor mail API

* Reorder

* Change mail template
2022-09-04 23:58:46 +02:00
Miodec 2a7b6a874c updated message 2022-09-04 20:18:27 +02:00
Miodec 93ab0c6116 not using template 2022-09-04 20:16:01 +02:00
Miodec 86371ae432 only sending inbox data if inbox is enabled 2022-09-04 20:06:05 +02:00
Miodec 283c2773c5 Merge branch 'master' into newnav 2022-09-04 20:04:08 +02:00
Miodec 18f9785e04 sending to inbox if user got banned 2022-09-04 20:03:27 +02:00
Miodec 002d007f1f returning if user got banned 2022-09-04 20:03:09 +02:00
Miodec 2f21bff1a2 fixed corrected everything bonus being applied too often 2022-09-04 18:22:24 +02:00
Miodec 2081f29f32 omiting selected field 2022-09-03 14:38:34 +02:00
Miodec f61691d4fe sending max mail in response 2022-09-02 00:03:15 +02:00
Miodec de895a1cd2 converted font size to use an input field allowing any font size 2022-08-30 22:34:27 +02:00
Bruce Berrios 4b49900d57
Add inbox (#3458) Bruception
* Add basic inbox

* Changes

* Remove export

* Move condition

* Use for each
2022-08-30 15:19:26 +02:00
Miodec e43a30b39d building breakdown object on the server 2022-08-29 01:33:18 +02:00
Bruce Berrios 0dfa3ef773
Urgent (#3457) 2022-08-27 20:39:02 +02:00
Bruce Berrios 87a0da839a
Add endpoint for getting server config (#3431) Bruception
* Add endpoint for getting server config

* Fix route stack

* Add comment
2022-08-23 12:24:37 +02:00
Miodec 453e88599f removed another one 2022-08-22 16:16:58 +02:00
Miodec 4c4f20313f removed word from profanities 2022-08-22 16:16:40 +02:00
Miodec 6f41db5575 30 instead of 7 days 2022-08-22 14:27:36 +02:00
Bruce Berrios 5a0e8ae72e
Housekeeping (#3374) 2022-08-08 16:16:07 +02:00
Bruce Berrios 43a384c0e0
Fix/refactor xp (#3373) bruception
* Fix/refactor xp

* Prettier fixes

* Prettier
2022-08-06 16:57:01 +02:00
Miodec cf15878713 calculating daily bonus based on the total user xp, up to 1000 2022-08-05 15:40:35 +02:00
Miodec 115d32ab26 disabled daily bonus for now 2022-08-05 15:19:12 +02:00
Miodec 18c7d7db18 fixed server always reporting daily bonus 2022-08-05 15:13:07 +02:00
Miodec 2ee84972ee catching error 2022-08-05 00:56:17 +02:00
Miodec a32821c02e added min values in result schema 2022-08-05 00:33:11 +02:00
Miodec fdcc1337ae added daily bonus 2022-08-05 00:27:06 +02:00
Miodec 84443d8f8b allowing custom 2022-08-04 18:30:36 +02:00
Miodec 3b4229ffc1 Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-08-04 17:41:11 +02:00
Miodec cc6234f2b9 using long 2022-08-03 23:17:50 +02:00
YummyOreo 9cbcdf9062
resets the xp when reseting account (#3359) YummyOreo
* resets the xp when reseting account

* adds test for reseting user
2022-08-03 16:28:46 +02:00
Miodec fb4c47792c removed custom onresponsefinish function 2022-08-02 20:31:41 +02:00
Miodec da4aac9a15 adjusted punctuation and numbers modifiers 2022-08-02 00:49:03 +02:00
Miodec e48fdc2a89 added xp and levels 2022-08-02 00:21:09 +02:00
Jan Golebiowski 3a73954b45
Added config for displaying the keymaps top row (#3353)
* added config for displaying the keymaps top row

* fixed keysplit for top row

* prettier

* lined up top row properly

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-07-31 12:47:31 +02:00
Aayush Paurana 725a074bd8
making profile endpoint accessible with ape keys and adding the relev… (#3317)
* making profile endpoint accessible with ape keys and adding the relevant documentation #3256

* withApeRateLimiter middleware added #3265

* fixed documentation errors #3256

* fixed documentation errors #3256
2022-07-20 11:22:27 +02:00
Miodec b9973f1277 ads 2022-07-12 13:01:26 +02:00
Bruce Berrios af70bc5971
Bump coverage (#3314) 2022-07-06 21:01:58 +02:00
YummyOreo e794bbd68d
Adds a reset account button to the settings page (#3206) YummyOreo
* adds reset button

* moves it up above the delete button

* i am blind

* i cant move stuff

* adds reset for the profile

* Adds reseting for ape keys, and presets, also adds more resets in the user settings

* Delets all ape keys not just one

* Prevents conflicts for delete endpoints

* changes from reset to deleteAll in ape keys

* Refactors the code to use Promise.all

* adds reloading

* unit tests ape key deletion

* fixes some bugs

* Fixes type o

* More typeo fixes

* Returns nothing for reset user

* Simplifies code

* changes from reset to deleteAll for all but users

* Checks db not the memory

* fixes typo

* fixes the tests

* fixes

* fixes bugs and refactors some code

* adds requireFreshToken to the authentication

* migrates all reseting to the user endpoint

* removes the delete all for ape unit test

* to lazy to make commit message

* parallelize the calls to the db (I think)

* also resetting config

* also resetting discordid and avatar

* using unset

* updated wording

* level 1 message

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-07-06 12:59:40 +02:00
smunky 695bccedee
remove quickTab and swapEscAndTab from config-schema (#3311) 2022-07-06 11:22:35 +02:00
Bruce Berrios 0dd2539bf7
Add minor optimization (#3294) 2022-07-03 15:57:09 +02:00
Miodec 6e6ba3bf9d Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-07-02 19:04:03 +02:00
Miodec 5dac8020c2 importing performance 2022-07-02 19:03:12 +02:00
Bruce Berrios 616e26b5c5
Add version commit hash (#3286)
* Add version commit hash

* Add frontend client hash

* Remove export
2022-07-02 18:49:13 +02:00
Miodec 162beea1b8 removed log 2022-07-02 18:19:45 +02:00
Miodec d14a582cb8 sending different path to prometheus 2022-07-02 17:39:48 +02:00
Miodec 9acd68e99f optional chain 2022-07-02 14:34:01 +02:00
Bruce Berrios da61bfb83c
Refactor auth (#3291) 2022-07-02 14:23:51 +02:00
Miodec b3ef10ddc2 typo 2022-07-02 13:55:26 +02:00
Miodec 7b8a66779c removing get form path for measuing 2022-07-02 13:54:45 +02:00
Miodec 3f98c4b801 recording time to auth in prometheus 2022-07-02 13:43:40 +02:00
Miodec 211ab8ab8e removed try it out button from docs 2022-07-01 11:57:07 +02:00
Jack db3b6755b8
Rewriting middleware tests (#3266)
* aoaoaooao

* different attempts

* figured out the test

* added another test

* redefining next before each function, checking next call count

* removed eslint ignore
2022-06-30 16:31:06 +02:00
Miodec b813dd5aa0 running tests sequentially 2022-06-30 01:33:23 +02:00
Miodec 8ec307c837 added authentication tests 2022-06-30 01:15:06 +02:00
Miodec 8d17f699df removed log 2022-06-30 00:59:14 +02:00
Miodec 4b423a5484 removed condition (iat is guaranteed to be there) 2022-06-30 00:12:23 +02:00
Miodec 2aa251fc46 moved logic to another function 2022-06-30 00:11:09 +02:00
Miodec 9085b5af9d added fresh token requirement 2022-06-30 00:03:58 +02:00
Bruce Berrios 9da5e441be
Add new rate limiting flow (#3230) Bruception
* Add new rate limiting flow

* Oops

* Fix nit

* Fix some bugs

* Split key generation functions

* Remove 429

* Change message for root limiter

* Flag 429 and add config

* Add status code config

* Check enabled flag

* Add custom status for ape keys

* Bump coverage

* swapped conditions around
whats the point of checking if the status code is in the array if the whole thing is turned off anyway

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-06-28 13:45:57 +02:00