Commit graph

769 commits

Author SHA1 Message Date
Miodec 9dae088202 added result, language and funbox counters 2022-03-12 16:11:00 +01:00
Jack 4c396717ef
Added a custom auth counter to prometheus metrics (#2690)
* added basic auth and prom client dependencies

* incrementing auth counter

* added custom prometheus metric

* turns out there is no need for basic auth

* updated name

* exact

* exact
2022-03-12 15:20:18 +01:00
Miodec 6a237dfd64 sending 404 early to avoid logging all the query params 2022-03-11 23:30:03 +01:00
Miodec fa634e0426 stopping rank command from running if leaderboard is updating 2022-03-11 15:20:43 +01:00
Jack 5bccc789aa
added curly rule, fixed all errors (#2677) 2022-03-10 21:56:45 +01:00
Jack 9e41df2158
Leaderboard update flag (#2676)
* blocking leaderboard get requests if lb is updating

* locking lb while its updating

* brackets
2022-03-10 21:34:20 +01:00
Bruce Berrios 6b12ba3900
Include error id (#2671) 2022-03-10 21:30:16 +01:00
Miodec 1cfe1e79eb more incorrect paths aaaaaaaaa 2022-03-10 15:31:52 +01:00
Miodec 123acaecec path 2022-03-10 15:28:58 +01:00
Miodec bc9209e15e storing path in const 2022-03-10 15:26:01 +01:00
Miodec b54cf2b03f incorrect path 2022-03-10 15:24:30 +01:00
Miodec 71a8936bfb fixed incorrect path 2022-03-10 15:20:05 +01:00
Bruce Berrios 95a8a32008
Add user permissions for ape keys (#2665)
* Add user permissions for ape keys

* Optional

* Rename
2022-03-09 20:41:50 +01:00
Jack 34e730c6fc
Custom themes storage (#2660)
* Fixed typo

* Created method for adding theme in the UserDAO:

* Created function for checking if custom theme object is valid

* Exported the isThemeValid function

* Added controller for adding customTheme

* Created route for adding custom theme

* Created rateLimit for adding customTheme

* Fixed typo

* Fixed incorrect color length

* Added method for removing, getting and editing custom themes on the backend

* Moved validations from controllers to routes and some aesthetic changes in the user dao

* Started working on frontend and some minor changes in the backend

- Commandline support for custom themes
- Allow user to shift to their custom theme using Shift-click
- Updated the backend to be compatible with some changes
- Create a new custom theme for users with old system to prevent their custom theme loss

* Fixed custom theme type in ape and now new custom theme is created if user clicks the custom tab and doesn't already have one

* Fixed ape type issue

* Format html file

* Fixed wrong tab being active

* Created new custom theme edit section

* Fixed bug where user theme would have impact on icons with custom theme

* Update customThemes API

* Updated the custom theme sharing option to work with multiple custom themes

* Started working on the UI for custom theme buttons

* Added DOM event for clicking custom theme buttons

* Updated the updateActiveButton to work with multiple custom themes

* Removed favorite button for themes and fixed bug where double theme buttons were being added

* Fixed bug where preset theme buttons were not appearing if user has applied custom theme on website load and refreshed

* Moved DOM event for sharing custom theme to more appropriate place

* Integrated the save custom theme button with the changes

* Fixed bug with custom theme tab buttons and theme buttons

* Fixed commented div

* Replaced 'sds' with a meaningful message for custom theme buttons

* Integrated the delete button for deleting custom themes and fixed bug where id of newly added custom theme was not set properly

* Integrated the add button and name field for custom themes editing

* Added addCustomThemeWrapper element

I added it before but seems like vscode and other editors can't handle large files

* Removed some debug statements

* Removed some more debug statements

* Used parial types for custom theme. Thanks Bruce

* Removed unnecssary try catch blocks. Thanks Bruce

* Rephrased custom theme API messages

* Set new theme fields explicitly to prevent validtion failures and rephrased API message

* Replaced let with const

* Replaced let with const for _id

* Replaced let with const and used nullish coalescing

* Improved code quality in User DAO

* Strict equality in user DAO

* Moved validation scheme to a variables at the top of file

* Fixed bugs with strict equality checks

* Renamed themeId to themeID for consistency

* Made customThemes a required type in db to remove unnecessary undefined checks

* Uncommented GET API endpoint

* Prevent colorId being updated on custom theme name chnage

* Removed debug log

* Added loader on api calls

* Commenced shift from customThemeIndex to customThemeId

* Added required to themeColors schema

* Temp fix for validation fail for customThemeId

* Changed default value of customThemeId back to ''

* Temp fix for validation fail for customThemeId

* Fixed minor bug

* Fixed bug where account-controller would pass undefined to ThemeController.set

* Created methods in db.ts for adding, deleting and editing custom themes. Created new interface for raw custom themes and renamed ape methods

* Removed repeating code in account-controller

* Removed repeating code in theme-picker

* Removed setThemes in config

* Fixed minor bug

* Removed repeating code in user DAO

* Made custom themes available to registered users only

* Fixed minor bug

* Removed debug log and updated custom theme commands before showing list

* Added popup for confirming custom theme deletion

* Added custom option for random theme

* Minor improvement

* Workaround for local config firing before firebase initalization

* Removed debug log and created workaround for migration

* Added legacy customTheme config field

* Replaced workaround

* Changed put to patch

* Changed put to patch

* Added customTheme field back

* Integrated customTheme into to feature

* Added notifications for users when they access custom theme cmd option without being logged in

* Removed debug logs and comments

* Replaced literals with constant. Thanks Bruception

* Fixed wrong querySelector parameters and reset custom theme colors after deleting a custom theme

* added notification on save

* duplicating object instead of referencing

* Added return type on function

* Fixed wrong notification code

* spreading default config instead of referencing

* added index, psas, configs, presets

* camel_case

* added ape keys, leaderboards, results, quotes

* Modified setCustomTheme

* Modified setCustomThemeId

* Added tip for random themes settings

* Modified setCustomThemeId

* Now load custom theme before account loading

* Added custom theme compatibility for non-logged in users to theme-controller

* Now update tabs and buttons on custom theme config value change and modified boolean checks to use customTheme instead of customThemeId

* Fixed bug

* Refactoring in theme-controller.ts

* Enable custom theme support in commandline for logged out users

* More refactoring in theme-controller.ts

* Added custom theme compatibility for logged out users

* Removed double events in settings.ts and now turn on custom theme upon applying

* Fixed bug and recursive call

* Fixed bug

* Fixed random theme custom option

* Fix jquery wrong syntax

* Readded notification upon custom theme edit

* One notification upon error only

* Change notification type

* New custom themes now have default colors

* Notification on custom theme edit for non-logged in users

* Refresh buttons upon settings load

* missing gitignore

* updated message

* updated message

* setting config to unchanged when logging in to avoid issues with applying db config

* reverted some over complicated code, excessive auth checks

* removed customthemeid from config

* not setting custom theme id

* removed all customthemeid references

* removed commented code

* removed name field

* added edit button

* unused file

* removed popup

* removed add button, removed text

* removed duplicate code

* added simple popup checkbox support

* whitespace

* added custom theme popups

* removed warning when no custom themes were found

* removed add button click handler

* added function to save custom theme

* saving current theme not default

* removed custom theme id from default config

* not creating new theme by default, just applying

* reacting to customThemeColors save

* unnecessary function call

* removed unused code

* small refactor

* spacing

* unnecessary code

* turned off warnings for non null asertion

* showing theme name when randomising customs

* Revert "turned off warnings for non null asertion"

This reverts commit 433e1dc767.

* optional with default instead

* fixed custom theme colors always loaded on page load

* fixed custom theme buttons not showing up

* fixed various loading issues

* fixed custom theme edit styles

* showing custom in footer, removed unused code

* savaing custom theme colors
fixed typos

* changing theme

* updated custom theme buttons styling

* scaling custom theme buttons on hover

* not updating settings on theme event

* fixed quote id

* only showing custom themes when logged in

* updating save button text depending on auth state

* fixed double notification when trying to save too many custom themes

* fixed custom theme saving when signed out

* removed user check from db

* fixed exception when signed out user tried to open the custom themes command line

* ignoring file when compiling

* typo

* avoiding href errors

* setting href to an existing file
this fixes firefox custom themes not working

* better hex color regex

* spacing

* renamed function

* typo

* destructuring request

* removed unused function

* removed unused code

* removed unused code

* type fix

* removed non capturing group

* saving colors to config before saving custom theme

* encoding in base64

* added handler that can load themes in the old and new format from the url

Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com>
Co-authored-by: Rizwan Mustafa <69350358+rizwanmustafa@users.noreply.github.com>
2022-03-09 19:48:22 +01:00
Bruce Berrios 7fa2827a60
Final touches/tuning for ApeKeys (#2663)
* Final touches/tuning to ApeKeys

* Add rate limiting note

* Add malformed status
2022-03-09 19:40:35 +01:00
Bruce Berrios 2dba957adc
Add public api docs (#2656) by bruce
* Add public documentation

* typo

* added hard limit on the leaderboards

* ignoring worker when compiling

* added leaderboard routes

* leaderboards accept apekeys

* Fix docs

* Fix

* Specify parse base

* Add ape rate limiter

* added documentation link

* updated message

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-09 13:02:37 +01:00
Bruce Berrios 79a6cb86ed
Migrate presets to TS (#2662) by bruce 2022-03-09 12:51:20 +01:00
Bruce Berrios 9dfb352a40
Update ape keys data model (#2655) by bruce
* Update ape keys data model

* Add use count

* Add safer check
2022-03-08 00:41:04 +01:00
Bruce Berrios 61ebf2cc39
Add error handling for bad requests (#2654) by bruce
* Add error handling for bad requests

* Fix status code

* Update

* Tidy status codes
2022-03-07 22:16:42 +01:00
Bruce Berrios f4bfb938b2
Consolidate personal bests endpoints (#2653) 2022-03-07 11:25:12 -05:00
Bruce Berrios 3240abc22e
Enable strict null checks in backend (#2639)
* Enable strict null checks in backend

* Fix

* Use non-null assertion

* Add none
2022-03-07 11:10:07 -05:00
Miodec 0ff1d347a6 fixed ignore 2022-03-07 14:39:09 +01:00
Miodec 44c75552ad renamed 2022-03-07 14:37:53 +01:00
Miodec 88d1529706 added worker to ignore 2022-03-07 14:36:55 +01:00
Miodec 8af10af599 added enpoints for getting personal bests 2022-03-06 18:33:36 +01:00
Miodec 83c1e8adf5 added rate limiting for ape key endpoints 2022-03-06 18:33:20 +01:00
Miodec 08d7ded235 changed error code 2022-03-06 18:13:58 +01:00
Miodec 16a982e71e added decoded token types 2022-03-06 17:16:33 +01:00
Bruce Berrios 5ae8ff0759
Remove quote languages check (#2645) 2022-03-06 13:33:53 +01:00
Bruce Berrios 7d19f54828
Add last used on logic (#2643)
* Add last used on logic

* Remove lodash
2022-03-05 21:25:30 -05:00
Bruce Berrios 6645c2d4bd
Fix (#2641) 2022-03-06 02:09:06 +01:00
Bruce Berrios 5aa6fd7621
Remove mongo types (#2637) 2022-03-04 19:20:40 -06:00
Bruce Berrios f479e87c16
Remove artifact (#2636) 2022-03-04 19:10:46 -06:00
Bruce Berrios 1df8388e2d
Migrate utils pb to ts (#2631)
* Migrate utils pb to ts

* Fix

* Move to separate function
2022-03-04 23:24:10 +01:00
Bruce Berrios 3566992e45
Migrate some DAO to ts (#2633)
* Migrate some DAO to ts

* Oops

* Added constant name
2022-03-04 22:50:15 +01:00
Bruce Berrios 2f6a1eb586
Add summaries for api (#2630)
* Add summaries for api

* Add security definitions

* Add description
2022-03-04 11:50:45 -05:00
Bruce Berrios 7ef0c424d6
Migrate some utils to TS (#2625)
* Migrate some utils to TS

* Add argument type

* Fix logic

* Refactor math functions

* Rename function
2022-03-04 16:25:24 +01:00
Miodec b473606309 fixed responses 2022-03-04 16:03:28 +01:00
Miodec 9b34728629 using swagger spec 2022-03-04 15:57:52 +01:00
Miodec 615f284983 added ape keys, leaderboards, results, quotes 2022-03-04 15:49:31 +01:00
Miodec 8809f5957a added index, psas, configs, presets 2022-03-04 15:49:25 +01:00
Miodec c27caa68af missing message 2022-03-04 00:36:40 +01:00
Miodec d4b7ab90ca converted to ts 2022-03-04 00:29:06 +01:00
Miodec 5b0f170b10 converted to ts 2022-03-04 00:20:29 +01:00
Miodec 6370f6a624 moved is test too short check to validation 2022-03-04 00:10:49 +01:00
Miodec 9962edd020 added result types 2022-03-04 00:10:35 +01:00
Miodec 9de4019b80 reducing nesting 2022-03-04 00:09:31 +01:00
Miodec 16bb753601 reduced user db calls 2022-03-03 23:25:30 +01:00
Miodec 6752b6086a optimising promises, reduced await use 2022-03-03 23:24:19 +01:00
Bruce Berrios 374a2089c3
Rename handlers to utils (#2620) 2022-03-03 16:31:57 -05:00
Bruce Berrios 0429c560ee
Migrate users controller (#2618)
* Migrate users controller + other things

* Undo import rename

* Fix return type

* Change status code

* Fix spacing
2022-03-03 14:50:06 -05:00
Miodec 2d4df4edf3 using collation for name checking 2022-03-03 20:41:03 +01:00
Miodec 042d9dd9a2 actually fixed name check 2022-03-03 19:24:09 +01:00
Miodec 6f235a2479 fixed name checking regex 2022-03-03 19:06:23 +01:00
Miodec 70d0639fc7 added regex escaping function 2022-03-03 19:06:06 +01:00
Jack 226de70e36
Added monkey status codes (#2613)
* test code

* added some monkey status codes

* adding status message to response

* added more codes

* using all new codes
2022-03-02 02:14:32 +01:00
Bruce Berrios d792844473
Add ape key authentication (#2610)
* Add ape key authentication

* Move ape key config to server config

* Remove full stops

* Fix
2022-03-01 17:43:22 -05:00
Bruce Berrios 3017f8808d
Fix errors (#2609) 2022-03-01 17:21:06 +01:00
Bruce Berrios 2f70d1ab8a
Add ApeKeys CRUD (#2606)
* Add ApeKeys CRUD

* Fix

* Omit ape key data

* Encode id + key
2022-03-01 11:11:01 -05:00
Miodec 5adb03a360 updated result schema once more 2022-03-01 00:33:32 +01:00
Miodec 55f60d0788 updated result custom text schema 2022-03-01 00:30:27 +01:00
Miodec c448769401 temporary/initial solution to seeing response message in swagger stats 2022-02-28 22:58:28 +01:00
Miodec 258fd433b5 added user routes
part of #2605
2022-02-28 21:17:37 +01:00
Miodec 97d87554e4 increased apdex threshold 2022-02-28 20:24:06 +01:00
Miodec 6d58497422 added temporary route to notify users of outdated website 2022-02-28 20:14:20 +01:00
Jack c91dd52f88
Partial config save (#2604)
* saving key by key instead to support partial config

* using new savefullconfig funciton

* moved default config to its own file

* using full config update function

* merging potentially partial config from the db with default config

* added partial saving
moved default config to another file

* refactored with lodash

* removed unnecessary json parse

* changed parameter types
2022-02-28 19:53:55 +01:00
Miodec 2c05a1ccc1 added basic swagger spec
part of #2605
2022-02-28 19:53:07 +01:00
Bruce Berrios 999e8636e1
Remove pii (#2602)
* Remove JWT tokens and ip addresses from records

* Use save exact

* Fix

* Fix

* Rename

* Downgrade status code

* Check if dev

* Make server stats still accessible in maintenance

Co-authored-by: Jack <jack@monkeytype.com>
2022-02-28 15:13:59 +01:00
Miodec 053ca05d00 removed duplicate validation 2022-02-28 12:44:46 +01:00
Bruce Berrios 182d0b6b22
Add ape keys routing and configuration (#2599)
* Add ape keys routing and configuration

* Fix

* Add 404 route
2022-02-28 12:37:05 +01:00
Miodec d958b2b48a we good 2022-02-28 00:49:11 +01:00
Miodec b0c2e3e024 added prom client 2022-02-28 00:39:44 +01:00
Miodec e3840d63c9 PICNIC 2022-02-28 00:21:35 +01:00
Miodec 962eeeec45 back to testing 2022-02-28 00:14:07 +01:00
Miodec c71c8a3054 PICNIC 2022-02-28 00:10:46 +01:00
Miodec c3b517cf10 added stats package 2022-02-28 00:06:12 +01:00
Bruce Berrios bbc8c837df
Move quote moderation logic to quotes (#2590)
* Move quote moderation logic to quotes

* Add note

* Fix issue
2022-02-27 18:37:51 +01:00
Ferotiq 34ac755630
Add dynamic keymap legend style (#2592) by Ferotiq
* Add dynamic keymap legend style

* Speed

* make it work with all layouts

* Fix bug

* Update layout-emulator.js

* Update layout-emulator.js

* mac fix

* we didn't need layout state

* make quote show up

* remove some

* Rename

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-02-27 01:11:52 +01:00
Miodec 0390fa8319 converted to ts 2022-02-26 22:59:22 +01:00
Miodec 160f2b830f converted to ts 2022-02-26 22:54:16 +01:00
Bruce Berrios 6b1e9efe73
Fix quote ratings (#2586) by Bruception
* Fix quote ratings

* Reorder logic

* Update message

* Fix consistency
2022-02-25 19:22:44 +01:00
Bruce Berrios 4daf76e7d9
Migrate config client to ts (#2588) by Bruception 2022-02-25 19:20:38 +01:00
Bruce Berrios 8b23cdd7dc
Migrate some controller files (#2584)
* Migrate some controller files

* Rename variable
2022-02-24 13:14:33 +01:00
Bruce Berrios 7a1596d562
Migrate routes (#2582) 2022-02-23 22:44:49 -06:00
Bruce Berrios 8c5b88ef5d
Migrate files to ts (#2581) 2022-02-23 22:17:17 -06:00
Ferotiq 8620b45ea7
fix some backend errors (#2580) 2022-02-23 21:54:38 -06:00
Bruce Berrios 8dbf0966d1
Upgrade mongo library to 4.x.x (#2576) 2022-02-23 14:23:54 -05:00
Miodec efea8afab2 logging database name 2022-02-23 18:40:14 +01:00
Bruce Berrios 1ba7a76b86
Migrate middlewares to TypeScript (#2574)
* Migrate middlewares

* Update workflow

* Fix ignore

* Fix

* Fix

* Remove babel loader from root dependencies

* Remove mongoDb
2022-02-23 10:03:38 -05:00
Miodec c71baadc9b commented out worker file to avoid it producing errors and warnings 2022-02-23 13:24:53 +01:00
Miodec f00bc98db8 moved database down message to the top of the if stack 2022-02-23 13:07:18 +01:00
Miodec ad250d7f5c Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-02-22 23:39:25 +01:00
Miodec 80f822c76a removed unnecessary types 2022-02-22 23:39:21 +01:00
Bruce Berrios 61f16584c9
Action anti cheat step (#2570)
* Add anti-cheat check

* Add anti-cheat step

* Test

* Revert

* .

* Fix
2022-02-22 23:02:37 +01:00
Miodec 91657fd53f reenabled helmet 2022-02-22 23:00:27 +01:00
Miodec e18da7da87 added log message
using implemented checking function
2022-02-22 22:58:00 +01:00
Miodec 8c3c6d004d added anticheat stub 2022-02-22 22:50:47 +01:00
Miodec 96323f2af5 new anticheat import 2022-02-22 22:41:01 +01:00
Miodec 9b7b0e257e disabled helmet middleware 2022-02-22 21:03:50 +01:00
Bruce Berrios f9d6f52c15
Api overhaul (#2555) by Bruception
* Feat:Update response structure (#2427)

* Fix:response and error structure

* update:response message

* update:response class

* update

* Update response message

Co-authored-by: Mustafiz Kaifee Mumtaz <mustafiz.mumtaz@freecharge.com>

* Add MonkeyToken foundation (#2487) by Bruception

* Api changes (#2492)

* API changes

* Remove unused import

* Add Ape client (#2513)

* Add all endpoints (#2514)

* Merged backend typescript into api overhaul (#2515)

* Install typescript and add backend tsconfig

Cannot yet build due to a number of compilation errors in JS code

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

* Fix typescript compilation errors

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

* Migrated backend to ES modules

Switched to import export syntax

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

* Add typescript declaration for anticheat

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

* Rename top level files to .ts

Fix service account json file typing

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

* Add dev build scripts for backend typescript

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

* Removed empty lines and switched to using db

Cleaned up imports by removing needless empty lines and migrated to the new db.js instead of mongodb.js.

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

* Fixed backend commonjs syntax to ES module syntax

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

* Add build to backend start script

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

* Migrate some endpoints to Ape

* Strict equals

* Remove artifact

* ape -> Ape

* Ape migration p2 (#2522)

* Migrate leaderboard endpoints to ape

* Fixed comment

* Init backend types

* Fail

* Return

* Migrate Quotes to Ape (#2528)

* Migrate quotes to Ape

* Fix backend response

* Fix issue

* Fix rate limit (#2533)

* fix rate limit

* Fix import

* Fix issues

* Ape migration p4 (#2547)

* Migrate results endpoints to ape

* Remove unused import

* Remove unused import

* Fix loaders

* Make function async

* Hide try saving results

* Migrate some users endpoints to Ape (#2548)

* Complete Ape Migration (#2553)

* Complete ape migration

* Fix preset

* Return preset data

* Add typings

* Move captcha reset

* Read from params

* Fix result tags endpoint

* Fix stuck loader

* fixed lb memory not saving

* fixed quote rating popup not showing up for new users

Co-authored-by: Mustafiz Kaifee <49086821+Mustafiz04@users.noreply.github.com>
Co-authored-by: Mustafiz Kaifee Mumtaz <mustafiz.mumtaz@freecharge.com>
Co-authored-by: Brian Evans <53117772+mrbrianevans@users.noreply.github.com>
Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-02-22 20:55:48 +01:00
Miodec 6cf1f06d0d temporairly accepting both strings and numbers 2022-02-21 13:56:25 +01:00
Octahedron a0f911961f
added "show average" setting (#2551) by octahedronv2
* added "show average" setting

hopefully this doesn't break everything :)

* Delete config-schema.js

* Delete commandline-lists.ts

* Delete config.ts

* Delete db.ts

* Delete index.html

* Delete modes-notice.ts

* Delete settings.ts

* Delete types.d.ts

* added show average setting

* changed the capitalization of ONE character

* Rounded the wpm calculation when mode is PB or AVG

* Only display average if user is logged in

* Only display average if wpm > 0

and by extension, only when the user is logged in.

* changed look of average display

Co-authored-by: Jack <jack@monkeytype.com>
2022-02-21 02:49:33 +01:00
Ferotiq 4ea967d677
Add Config Validation to Every Config Value (#2542)
* add what I got so far

* add validation for the rest of the config settings

* some changes

* fix font size, tested all config settings

* add arrow function back

* change font size type

* change font size type

* Revert "change font size type"

This reverts commit fc6f0e78a4.

* merge
2022-02-20 19:30:15 +01:00
Miodec 775fe34851 added auto switch theme
allows auto switching between light and dark theme based on system theme
closes #2088 and #1629
2022-02-20 17:07:02 +01:00
Jack f8727b5c68
Action only installs node and dependencies when a changed file passes the filters 2022-02-18 20:23:58 +01:00
Ferotiq dcbdca0990
Some fixes (#2478)
* Some fixes

* Add dep-graph script, fix keyboard icon not restarting test

* remove my keyboard icon fix, force ===

* Revert "remove my keyboard icon fix, force ==="

This reverts commit 481316a7da.

* revert page fix

* fix mio's smooth brain
2022-02-12 16:53:00 +01:00
Miodec b3f85e830d removed requirement 2022-02-12 15:57:11 +01:00
Miodec 6684155cef added kogasa function 2022-02-09 19:19:10 +01:00
Miodec 351cc2bcb2 added indicate typos: replace,
added indicate typos: below,
removed indicate typos: on
closes #2444
2022-02-09 19:18:54 +01:00
Miodec c7a200b476 checking if token wasnt revoked
added error if token was revoked
fixed token errors
2022-02-09 14:18:49 +01:00
Bruce Berrios c8af14baab
Fix PR check action (#2447)
* fix

* Install all dependencies

* Fix PR check action

* Fix lint

* Update install.sh and remove pretty check
2022-02-08 22:17:26 +01:00
Bruce Berrios ccafcee72d
Oops (#2446)
* fix

* Install all dependencies
2022-02-08 21:41:59 +01:00
Bruce Berrios f4a9147308
Setup PR check action (#2445) by Bruception 2022-02-08 21:27:14 +01:00
Bruce Berrios 345740db5f
Separate backend and frontend dependencies (#2441) by Bruception
* Add request validation to user endpoints

* Remove tag id log

* Remove verbs from endpoints

* Remove old code

* Remove uid

* Fix

* Remove name from URI

* Rename utils

* Fix

* Move prettier

* Update gulp file

* Add additional scripts

* Update package-lock

* Update contributing.md

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-02-08 20:33:41 +01:00
Bruce Berrios 76bcc4bd56
Add request validation to user endpoints (#2423) by Bruception
* Add request validation to user endpoints

* Remove tag id log

* Remove verbs from endpoints

* Remove old code

* Remove uid

* Fix

* Remove name from URI

* Rename utils

* Fix
2022-02-07 20:22:39 +01:00
Miodec 68e7c6ff63 Revert "overriding rules in backend"
This reverts commit 50b75c78862cfba0f83f319034dd736ff8ba1132.
2022-02-07 18:47:24 +01:00
Miodec 61cdf4d1a9 overriding rules in backend 2022-02-07 18:47:24 +01:00
Miodec 79c5b432fc moved eslint to root directory
using file eslint config
keeping folder structure when moving to dist/gen
updated some imports
2022-02-07 18:47:24 +01:00
Miodec 22c0f58cd8 min wpm increase 2022-02-06 13:54:03 +01:00
Bruce Berrios bbcbc687ae
Add results schema validation (#2417) by Bruception 2022-02-06 13:33:15 +01:00
Miodec a3fef55be4 not comparing if hash is not 64 in length 2022-02-04 21:29:37 +01:00
Bruce Berrios 957b4cf1a8
Endpoint schemas/Improved Auth Middleware (#2411) by Bruception
* Lots of stuff

* Changed code order

* Change message

* Use strict comparison

* Fix Bearer auth

* changed failed validation message

* removed full stops

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-02-04 21:18:22 +01:00
Miodec 61f39b64b9 handling one possible exception 2022-02-04 13:06:09 +01:00
Miodec 059630c606 added report reason 2022-02-04 12:51:38 +01:00
Miodec 69da49d71a allowing shorthand hex 2022-02-04 12:28:31 +01:00
Miodec b4288d9bd2 user tags not required when loading user 2022-02-03 23:18:30 +01:00
Miodec 0ef370ca80 added name to stack 2022-02-03 22:54:01 +01:00
Miodec a30b0b6295 added stack to log 2022-02-03 22:51:12 +01:00
Miodec 5c04dff242 added message to stack 2022-02-03 22:47:42 +01:00
Miodec f1c60b93c1 typo 2022-02-03 22:42:46 +01:00
Miodec 89c86ecd95 showing value 2022-02-03 22:39:49 +01:00
Miodec b0c9362735 stringify 2022-02-03 22:24:31 +01:00
Miodec 1aab7ab39f added more info 2022-02-03 22:21:32 +01:00
Miodec 0ce23c0041 changed to let 2022-02-03 22:06:38 +01:00
Miodec a016d66474 throw instead of next 2022-02-03 22:01:31 +01:00
Miodec 2fdf28fcf3 updated status code 2022-02-03 21:59:02 +01:00
Miodec 601e5f522b typo 2022-02-03 21:56:41 +01:00
Bruce Berrios 83f1253f42
Add config schema (#2401) by Bruception
* Add config schema

* Change schema

* Fix custom validator

* Relax schema

* add result filters schema

* Remove result filters

* Fix quoteLength schema
2022-02-03 20:26:34 +01:00
Miodec 60d35a2a45 typo 2022-02-02 23:14:30 +01:00
Bruce Berrios 5beb1bf619
Update Configuration to handle arrays/ Add new db client (#2395)
* Update Configuration to handle arrays

* Add new db client

* Add comment
2022-02-02 19:26:43 +01:00
Miodec 5074cc733c typo 2022-02-01 21:33:48 +01:00
Miodec 169d6ebfb3 removed keys length check 2022-02-01 21:32:57 +01:00
Miodec bccc4f24fc added a check to only update the database configuration once 2022-02-01 21:01:24 +01:00
Miodec 2dcfa38aa6 Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-02-01 20:15:30 +01:00
Miodec cbdd3ed1c6 updating database configuration if number of keys is not the same 2022-02-01 20:15:27 +01:00
Bruce Berrios 92a503df71
Refactor Quote Endpoints (#2388) by Bruception
* Refactor quotes route

* Add request validation

* removed unnecessary configuration check

* using const

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-02-01 19:47:41 +01:00
Miodec 4935a6594d using asynchandlerwrapper
removed try catches
2022-02-01 18:42:25 +01:00
Miodec 07a32b63e5 using asynchandlerwrapper
removed try catches
removed old, unused functions
2022-02-01 18:38:48 +01:00
Miodec cd47dcffab using asynchandlerwrapper
removed try catches
added conffiguration check instead of commenting code out
2022-02-01 18:30:46 +01:00
Miodec 779faf42da using asynchandlerwrapper, removed try catch 2022-02-01 18:26:59 +01:00
Miodec 596673af1d removed unused args 2022-02-01 18:22:31 +01:00
Miodec 96dc1783e5 removed unused code 2022-02-01 18:21:31 +01:00
Miodec 05d3ead9ce ignoring eslint errors if argument begins with _ 2022-02-01 18:13:40 +01:00
Miodec 4167bcffe6 using asynchandlerwrapper, removed try catches
part of #2376
2022-02-01 18:00:33 +01:00
Miodec cd1ac9743d removed try catches, removed unused functions 2022-02-01 17:56:23 +01:00
Miodec 66b3e012b0 using asynchandlerwrapper in leaderboard routes
part of #2376
2022-02-01 17:53:33 +01:00
Miodec 0cc74791fb switched hashing package
now using node-object-hash
added a configuratoin property to enable/disable hashing
part of #2389 and #2250
2022-02-01 13:13:59 +01:00
Miodec bd2d82e681 added async handler wrapper to config routes
part of #2376
2022-02-01 00:33:48 +01:00
Miodec 08103327dc fixed issue where base configuratoin would fail to insert into the database 2022-02-01 00:31:04 +01:00
Miodec 7f1e50e3bd fixed logger not defined 2022-02-01 00:08:49 +01:00
Bruce Berrios 101c227599
Add Dynamic Server Configuration (#2385) by Bruception
* Add no frontend script

* Define context middleware

* Define base configuration schema

* Define configuration DAO

* Setup context middleware and live configuration fetch

* Remove patch configuration method

* Rename files for consistency

* Use plain object check

* Use plain object

* modified base configuration

* renamed config property

* brought back 2 properties

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-01-31 22:47:58 +01:00
Miodec 1692679951 typo 2022-01-31 15:36:22 +01:00
Miodec db4174c29a moved logging to controller 2022-01-31 13:05:14 +01:00
Miodec 90660a6858 logging reports 2022-01-31 13:03:59 +01:00
Miodec ed4f109c56 increased report limits 2022-01-31 13:01:50 +01:00
Bruce Berrios 974e50ec48
Add quote reporting feature (#2372) by Bruception
* Add initial quote reporting logic

* Remove report status

* Add initial frontend

* Add submit logic

* Add report quote button to rating popup

* Refactor quoteId argument

* Remove console log

* Add captcha to request validation schema

* Use captcha id for value and reset

* Update report data schema

* Hide report popup on complete

* quote search styling update

* updated report quote styling

* tofixed

* tofixed

* moved report button to the result screen
styling changes

* resetting captcha after hiding to avoid ugly animation

* select2 styling update

* lowercase

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-01-31 00:53:56 +01:00
Bruce Berrios 7ce9146c7d
Add initial report quote endpoint (#2367) by Bruception
* Add initial report quote endpoint

* Tune rate limiter for report quote

* Tune rate limiter

* Increase max comment size

* Add supported languages to schema validation

* Fix naming
2022-01-29 22:03:02 +01:00
Bruce Berrios 05971924af
Consolidate Quotes API (#2365) by Bruception
* Consolidate quotes API

* Re-add authentication middleware
2022-01-28 23:58:20 +01:00
Bruce Berrios dafaad9158
Refactor cron jobs (#2357) by Bruception
* Refactor cron job configuration

* Refactor leaderboard update logic

* Update naming

* Refactor to use leaderboard dao

* Deduplicate top 10 query

* Fix oopsy

* Fix query order

* Undo method signature update

* Update new records detection logic

* Fix lint
2022-01-28 19:48:08 +01:00
Bruce Berrios fefe7cd9e9
Refactor routing configuration (#2356) by Bruception
* Refactor adding routes

* Fix lint

* Move root route

* Fix lint
2022-01-26 23:42:53 +01:00
Miodec 955c49b324 removed debug delays 2022-01-20 00:31:03 +01:00
Miodec b1bf8c3793 website starts in focus mode and focus is removed once finished loading 2022-01-19 23:58:50 +01:00
Miodec 93bd15af28 changed status 2022-01-18 17:15:36 +01:00
Miodec 91bd2368cd moved the test route to the root route 2022-01-18 17:10:50 +01:00
Miodec 2c99f420a3 shortened mongo connection timeout 2022-01-18 15:42:56 +01:00
Miodec 7c43a02765 changing error if connection was refused to the 27017 port 2022-01-18 15:42:32 +01:00
Rizwan Mustafa 938d469388
Fixed typo (#2300) 2022-01-14 16:20:04 +01:00
Miodec 6180884881 Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-01-14 14:47:53 +01:00
Miodec e7c86ee20a added consolelog 2022-01-14 14:44:35 +01:00
Miodec 2603866f42 better messages about the anticheat module 2022-01-14 14:44:24 +01:00
Jack 8a0d9ae592
Update example.env 2022-01-14 14:26:57 +01:00
Miodec fdfc874ad7 catching errors while updating email 2022-01-10 03:27:29 +01:00
Miodec 6868ba4db6 removing stack before sending to user 2022-01-10 03:10:26 +01:00
Miodec ee0843b317 fixed error completely broken 2022-01-10 03:06:34 +01:00
Miodec 3eae8529df updated error message when dev mode is active 2022-01-10 03:05:57 +01:00
Miodec c9fcb10958 unlink discord sends a command to the bot to take away the roles 2022-01-08 15:42:05 +01:00
Miodec 1ce7533aa5 added unlink discord command sending 2022-01-08 15:40:46 +01:00
Miodec 96097e83c4 lint warning 2022-01-08 15:32:43 +01:00
Miodec eafad772b2 lint warning 2022-01-08 15:32:28 +01:00
Miodec f269d0dfd8 clearing lb personal bests on clear pb 2022-01-08 15:31:40 +01:00
Miodec bcc9c3d8b0 typo 2022-01-07 17:26:25 +01:00
Miodec 4b35a3df0e fixed incorrect parameter names 2022-01-07 17:24:58 +01:00
Miodec 0282c0ef80 moved log to main file 2022-01-07 17:24:49 +01:00
Miodec ba03f819fc lint warning fixes 2022-01-07 17:05:24 +01:00
Miodec 1b8de5c0bf checking env when loading anticheat module
not allowing to continue if not in dev mode
2022-01-07 17:04:47 +01:00
Miodec 9f3ea3edeb added missing parameter 2022-01-07 16:57:16 +01:00
Miodec 1231e6bc9b added mean function 2022-01-07 16:24:45 +01:00
Miodec 296bdc56ff moved key check to anticheat module 2022-01-07 16:24:38 +01:00
Miodec 41826075aa validating later 2022-01-07 15:50:05 +01:00
Miodec 1fa53560a9 logging error if on dev 2022-01-07 15:48:51 +01:00
Miodec 274f06b461 moved anticheat to its own private repository 2022-01-07 15:31:18 +01:00
Miodec 10e456bf9d rounding buffer 2022-01-01 16:18:51 +01:00
Miodec f953fe596a added a result spacing check
if the timestamp of the last result + the time of the current result is greater than the current timestamp that most likely means the result is invalid, created manually or shouldnt be saved because of a bug
2021-12-30 16:11:38 +01:00
Miodec 7da9afb557 added a function to get last result 2021-12-30 16:05:32 +01:00
Miodec f5f9f021a7 removed time traveler check after all 2021-12-29 23:41:14 +01:00
Miodec 642df7ede4 added margin to the time traveler check 2021-12-29 23:10:46 +01:00
Miodec d2cdcce047 added log 2021-12-29 23:06:37 +01:00
Miodec 06924cc5d4 brought back time traveler check with rounded timestamps 2021-12-29 22:54:57 +01:00
Miodec 0425f35c65 raised min accuracy to 75% 2021-12-29 15:35:46 +01:00
Miodec 2560e71aa7 disabling quote submission for now 2021-12-29 15:35:37 +01:00
Seth Falco 32f6c15d53
chores: fix typo and push backend/credentials directory (#2224)
* typo: add space before SCM

* chore: add .gitkeep to push credentials directory
2021-12-28 21:03:07 +01:00
Miodec 8740976768 lint fix 2021-12-28 16:42:18 +01:00
Miodec b16d5f2288 added an extra log when result could not be saved due to hash 2021-12-28 16:37:49 +01:00
Jack 82320266cd added api path override 2021-12-13 22:00:12 +00:00
Jack 6dc72700da using sent timestamp to verify and then changing to server time 2021-12-13 16:23:01 +00:00
Ferotiq 53cbd9372b
Add Option to Use MongoDB Credentials (#2169) by Ferotiq
* Add Option to Use MongoDB Credentials

* updated example

Co-authored-by: Jack <bartnikjack@gmail.com>
2021-12-13 16:00:09 +00:00
Jack 0624fbbc87 fixed one typo 2021-11-30 00:52:47 +00:00
Cameron e56d534f33
fix: endpoints share the same rate limit (#2136) by CameronCT
* fix: cleaned rate limiter

* chore: separated ratelimits per request

* fix: bug where leaderboards would crash
2021-11-30 00:49:05 +00:00
Jack d954816c75 updated message 2021-11-23 21:54:17 +00:00
Jack ecc91f8fc4 added message if database connection is not working 2021-11-23 21:53:41 +00:00
Jack 9671c8115d no longer checking if result was using input rewrite 2021-11-23 21:06:42 +00:00
Miodec 027a196c16 increased the limit on updating result tags 2021-11-23 00:51:12 +00:00
Jack e7e5f08bb3 only sending bot command if result is recent 2021-11-20 19:45:13 +00:00
Jack 4372276169 only annoucing changes if timestamp is within 10 minutes 2021-11-20 18:19:47 +00:00
Jack ecb11e0f9d increased limit on getting basic user data 2021-11-19 12:52:08 +00:00
Jack 6f77cb1b6d checking if tag name is valid when editing name. closes #2058 2021-11-05 16:15:04 +00:00
Jack ac1601bfdd added error correction 2021-11-04 19:24:27 +00:00
Jack 0a055cb724 potentially fixed lb personal bests not updating 2021-10-26 23:32:15 +01:00
Jack 696a2d448f removed more unused fields 2021-10-24 21:34:07 +01:00
Jack 3df56ff5be removed discord id from being sent with the leaderboard data 2021-10-24 21:31:50 +01:00
Jack 87b76246dc fixed wpm validation not working. closes #2029 2021-10-24 01:29:25 +01:00
Jack 225973e9ac removed file 2021-10-24 01:20:20 +01:00
Jack 6e2a680388 added previous name to log 2021-10-21 00:36:11 +01:00
Jack 1f122399d5 removed unused files 2021-10-20 15:19:03 +01:00
Jack 50783f2e08 fixed pb saving issues when no pbs are found 2021-10-18 16:22:29 +01:00
Miodec 13c1b40e13 fixed project not running correctly if git could not be initialised 2021-10-11 23:45:17 +01:00
Jack 50aec0b9e7 added captcha to quote submission 2021-10-11 16:02:27 +01:00
Jack 5719158aec checking language aswell 2021-10-11 14:32:57 +01:00
Jack ab955b102e checking if fields are empty 2021-10-11 00:27:00 +01:00
Jack cf8d258400
Quote submission (#1984)
* added new-quotes get and add routes

* added new-quotes/approve route to api

* Added front-end for quote submission

* fix language typo, force lowercase language

* Check for duplicate quote

* added unknown language handling to quote-submit

* npm i

* npm i

* language dropdown instead of input field

* mouse down instead click

* styling changes

* moved quotemod check to the controller,
added refuse endpoint,
added ability to approve and edit

* limiting quotes

* added log to quote approve

* added approve quotes button

* typo

* using the correct function, lowered limit

* added quote approve popup

* getting quotes and showing them

* error checking

* error checking

* removed console log

* stylng changes,
added refresh list button

* added disabled class

* styling changes

* handling button clicks
showing langauge and timestamp

* check if user is a quote mod

* approve button handling

* handling quote edit

* showing short quotes in red

* post, not get

* not parsing quote id to int

* parsing to objectid

* updated styling

* fixed lint warnings

* fixed up new quotes dao

* showing loader

* calling function correctly

* typo fix

* fixed wrong path,
fix broken newid,
saving file when file exists,
searching for the quote correctly when attempting to delete

* showing message

* blocking buttons and inputs when waiting for response,
unlocking after response

* deleted workflow

Co-authored-by: lukew3 <lukew25073@gmail.com>
2021-10-10 22:46:35 +01:00
Jack 447ab9dfc4 allowing disk use for leaderboard aggregation 2021-10-05 15:08:54 +01:00
Jack 614f7fde03 marking all results coming from the input rewrite 2021-09-29 14:21:35 +01:00
Jack fb64ad62fa more compact log 2021-09-25 13:54:12 +01:00
Jack 0fb3e2ae04 left out object parameter 2021-09-25 13:53:15 +01:00
Jack d2e5c0afab only adding device when needed 2021-09-25 13:52:09 +01:00
Jack 860de29955 better agent log 2021-09-25 13:49:46 +01:00
Jack a9a9afa2e4 added ip and useragent logging 2021-09-25 13:38:59 +01:00
Jack 590ade59c6 not saving pb if test was bailed out 2021-09-24 22:22:39 +01:00
Jack 0d0e2b32a4 logging delete events 2021-09-21 01:45:16 +01:00
Jack 0566c25b9f checking if lbpb has timestamp 2021-09-20 22:55:04 +01:00
Jack 60e97f0791 better error message 2021-09-17 22:22:09 +01:00
Jack f38733da10 using estimated document count instead of a deprecated function 2021-09-17 22:07:44 +01:00
Jack 13976921be added top % display. closes #825 2021-09-17 20:59:45 +01:00
Jack 9d507b67e6 better validation 2021-09-14 15:43:28 +01:00
Jack 8c377cca58 username validation 2021-09-14 15:40:44 +01:00
Jack 74f4f8fc9c added more username validation 2021-09-14 15:38:44 +01:00
Jack 4afa2f089f fixed debug cron 2021-09-14 14:54:35 +01:00
Jack e8d73a898d announcing lb updates 2021-09-14 14:54:03 +01:00
Jack adac26883a deleting old logs 2021-09-14 00:10:56 +01:00
Jack c063012e9e added lazy mode 2021-09-13 17:28:00 +01:00
Jack e90a250f92 reverted change made for testing 2021-09-13 15:46:54 +01:00
Jack 5cd8619cb5 making sure uid makes it into the db error 2021-09-13 15:40:12 +01:00
Jack 7e682136f7 added protection against duplicate user docs 2021-09-13 15:40:00 +01:00
Jack 06871259b3 more logs 2021-09-12 20:00:57 +01:00
Miodec bb85249de3 possible fix for rare occurances of incorrect result hash error 2021-09-11 13:04:52 +01:00
Jack a4d8efad1a fixed errors not being able to be logged 2021-09-10 14:18:40 +01:00
Jack 96ccad28b1 more user logs 2021-09-10 14:18:30 +01:00
Jack e24e95e59c creating index on the correct collection this time 2021-09-10 14:15:49 +01:00
Jack d5e21757c6 indexing leaderboard 2021-09-10 14:11:38 +01:00
Jack b814a7fe4f moved leaderboard update back a bit 2021-09-10 01:04:40 +01:00
Jack 9ca0a96d2d running leaderboard updates together 2021-09-10 00:50:47 +01:00
Jack 1239f6ecae removed sort 2021-09-10 00:27:31 +01:00
Jack 050e18dd3e updated log once more,
logging errors
2021-09-10 00:03:01 +01:00
Jack a740d9f63e changed event name for lb update 2021-09-10 00:00:56 +01:00
Jack c47d93ced0 better pb log 2021-09-09 23:58:40 +01:00
Jack b3f2aa544c not checking leaderboards on test complete
updating test leaderboards every 5 minutes
2021-09-09 23:39:10 +01:00
Jack 3d4f985cc6 better time logging 2021-09-09 19:24:34 +01:00
Jack 0984d5777d sorting lb, added perf require 2021-09-09 19:09:17 +01:00
Jack a677e264c3 typo 2021-09-09 17:58:50 +01:00
Jack 8d53fe9521 logging validation errors and anticheat events 2021-09-09 17:58:11 +01:00
Jack efcc2cd3a8 removed no pb logging 2021-09-09 17:50:32 +01:00
Jack fefaf84fca typo 2021-09-09 17:48:53 +01:00
Jack a9b20e6404 more logging 2021-09-09 17:47:49 +01:00
Jack a966aa3431 added logging 2021-09-09 17:41:13 +01:00
Luke Weiler 80908c0b6b
Removed bot routes, mongo-todo, migrate; cleaned replay.js comments (#1823) by lukew3
* fix stop on word replay error

* Remove mongo-todo, migrate, and bot routes

* removed unecessary comments from replay.js
2021-09-08 22:48:36 +01:00
Jack 04680ad5f5 removed debug route 2021-09-07 20:17:52 +01:00
Jack 803025f80c not including banned users 2021-09-07 20:14:25 +01:00
Jack 3565b1f3a2 removed debug 2021-09-07 20:10:49 +01:00
Jack f83103727e Merge branch 'leaderboards' 2021-09-07 20:07:11 +01:00
Jack 18136eb276 added option to disable leaderboards 2021-09-07 17:53:30 +01:00
Jack 1c710d609e removed old lb code 2021-09-07 17:44:54 +01:00
Jack 200fe7d97c deleting if challenge is nullish 2021-09-07 17:38:24 +01:00
Jack 8c0dded3f2 fixed lb not working on new pb 2021-09-07 17:00:39 +01:00
Jack e6f701c3cb added update lb memory function to user api 2021-09-07 16:36:06 +01:00
Jack 45181f67dc keeping uid on the user that requested it if user is logged in,
checking if user is not banned and doesnt need to update email when checking leaderboards
updating lbmemory when checking
sending back the rank if the user was still found
2021-09-07 16:35:43 +01:00
Jack 1b3c6d9b38 added function to update leaderboard 2021-09-07 15:06:34 +01:00
Jack dfe4590813 added dev mode to request auth 2021-09-07 15:04:50 +01:00
Jack 9140e1654b lbpersonalbests will now resist even when clearing personal bests - will only be overridden if a new higher wpm was found than the one stored 2021-09-07 15:04:16 +01:00
Jack febee299ba fixed function that searches by objectid 2021-09-07 15:03:24 +01:00
Jack b931730ae9 fixed typo 2021-09-07 15:03:11 +01:00