Commit graph

912 commits

Author SHA1 Message Date
Miodec 4710a70e0c overriding result name to be sure 2022-05-21 00:12:50 +02:00
Bruce Berrios 294ff4c95a
Remove uid from last result (#2998) 2022-05-19 20:44:24 +02:00
Bruce Berrios 1384e9f81d
Add pretty check (#2990) bruception
* Add pretty check

* test

* test

* Add pretty check

* Add condition check

* Enforce style on code changes

* Update scripts

* Any src
2022-05-19 11:31:18 +02:00
Jack 46e0c5c960
Auto ban (#2984)
* added auto ban if user triggers anticheat too much

* updated base configuration

* autoban is optional

* storing updated autoban array

* only checking autoban in time 15 and 60

* miliseconds

* removed unnecessary if check

* returning if already banned

* storing now in variable
greater not greater equal

* moved constant outside function

* using partial type

* renamed variables

* renamed to autoBanTimestamps

* added autoban tests

* increased coverage minimum

* slightly better test

* added autoBanTimestamps checks to other tests
2022-05-16 21:03:44 +02:00
Miodec 699ddd8737 renamed field 2022-05-13 09:41:41 +02:00
Bruce Berrios 6c666f12ba
Add user creation flow test (#2971) bruception 2022-05-13 09:05:57 +02:00
Bruce Berrios 0a371b531a
Add more tests (#2965) Bruception and sondrekje
* Cover updateName

* Test clearPb, export getUsersCollection for testing purposes

* Add base coverage

* Month -> thirty days

Co-authored-by: Sondre Kjempekjenn <sondre.kjempekjenn@gmail.com>
2022-05-11 14:08:06 +02:00
Miodec 41c142b49a blocking users from submitting results if they need to change name 2022-05-08 20:47:45 +02:00
Miodec 616d068e2f needsToUpdateName > needsToChangeName 2022-05-08 16:59:45 +02:00
Miodec 0a1ac828e7 moved invalid name check higher 2022-05-08 16:58:57 +02:00
Miodec 0a4a7eabe7 added test to make sure users cant take an unavailable name 2022-05-08 14:54:15 +02:00
Miodec a0f6fabf10 is name available is async 2022-05-08 14:24:02 +02:00
Miodec 1baa5c1651 not checking last name change if user needs to change name 2022-05-08 13:20:18 +02:00
Bruce Berrios cdbc0bf770
Add logic to handle duplicate names (#2958) 2022-05-08 08:59:12 +02:00
Bruce Berrios ee5ef57d89
Delete bot dal (#2953) 2022-05-06 17:36:23 -05:00
Evan d9ffcfb4ee
Preparing for George Update (#2895)
* bot-commands rename

* removed bot dal

* reomoved unnecessary configuration entry

* quotes:code_javascript: Add regex-heavy quote. (#2929) markstos

* quotes:code_javascript: Add regex-heavy quote.

This quote contains a long regex that will be a workout for typing
symbols and numbers.

Source code can be confirmed to available under an open source license
here: https://github.com/markstos/parse-coordinates/blob/master/index.js

* fixed length

Co-authored-by: Miodec <bartnikjack@gmail.com>

* fixed script names

* fixed incorrect path

* definitely didnt forget about those

Co-authored-by: Miodec <bartnikjack@gmail.com>
Co-authored-by: Mark Stosberg <mark@rideamigos.com>
Co-authored-by: Jack <jack@monkeytype.com>
2022-05-06 23:48:15 +02:00
Miodec 6d52d8ce1b fixed incorrect path 2022-05-05 23:28:02 +02:00
Bruce Berrios 8095dd6bfc
Add test step in pr-check action (#2942) Bruception
* Add test step in pr-check action

* Add jest action

* Specify wd

* Remove action

* Remove test

* Add anti-cheat check
2022-05-05 23:06:40 +02:00
Sondre Kjempekjenn afd288a717
Testing - mock setup for redis (#2944) 2022-05-05 14:05:31 -04:00
Bruce Berrios 91220a5bdc
Move backend source files into src folder (#2943) 2022-05-05 19:27:00 +02:00
Bruce Berrios 38ed2f60aa
Remove await (#2941)
* Remove await

* Remove async

* Remove await server
2022-05-05 11:13:09 -04:00
Sondre Kjempekjenn 88a587c5c2
Feature/backend test (#2937) sondrekje
* Switch to ts-node-dev for development

* Minimal setup for backend testing

* Basic controller test

* __tests__ directory

* Delete old DB client

* Improve tests, ensure DB cleanup only runs for inMemory DB
2022-05-05 15:19:31 +02:00
Bruce Berrios 73f21c9cc5
Remove class syntax from george (#2935)
* Remove class syntax from george

* Remove boolean
2022-05-05 02:00:12 +02:00
Bruce Berrios e5c295cfe4
Remove class syntax from db client (#2940) Bruception
Co-authored-by: Jack <jack@monkeytype.com>
2022-05-05 01:57:51 +02:00
Sondre Kjempekjenn 9634b93fc3
Add docker-compose and instructions to README (#2939) sondrekje 2022-05-05 01:52:17 +02:00
Miodec bf8862fe74 not exiting in dev mode when redis connection failed
closes #2930
2022-05-04 19:27:34 +02:00
Miodec 8524646380 renamed folder dao to dal 2022-05-04 01:51:25 +02:00
Miodec ec8ec49b71 Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-05-04 01:48:29 +02:00
Bruce Berrios 6ee84b2484
DAO -> DAL (#2928)
* DAO -> DAL

* This what?

Co-authored-by: Jack <jack@monkeytype.com>
2022-05-04 01:47:51 +02:00
Miodec de97d798eb moved data validation to anticheat repo 2022-05-04 01:44:13 +02:00
Miodec b27f5c935b removed todo 2022-05-04 01:21:07 +02:00
Miodec ca2c82db38 removed unused types 2022-05-04 01:20:26 +02:00
Jack e6982f293d
Small Dao dals (#2927)
* converted preset dao to dal

* psa dao > dal

* typo

* config dao > dal

* public stats dao > dal

* fixed bad merge

* removed this

* removed comment
2022-05-04 00:43:58 +02:00
Bruce Berrios 9b7b5feb71
BotDAO -> BotDAL (#2926) bruception 2022-05-04 00:38:57 +02:00
Miodec 49befe4f76 unborked the code 2022-05-04 00:34:38 +02:00
Miodec 61292dfb8c fixed previous commit 2022-05-04 00:23:31 +02:00
Miodec a4ca55cb73 converted report dao to dal 2022-05-04 00:17:34 +02:00
Bruce Berrios 12a63b1cb4
Ape keys dal (#2925) bruception
* Convert Ape-keys DAO to DAL

* Fix this reference
2022-05-04 00:13:48 +02:00
Miodec a41bcad72d further stripping results of empty / zero values and then resetting them back to default when downloading results 2022-04-28 16:05:53 +02:00
Miodec ebea7078bd removed quote length if result is not quote
closes #2898
2022-04-28 15:57:50 +02:00
Miodec 89e99fa668 added get last result to public api
closes #2893
2022-04-28 12:39:18 +02:00
Miodec e419187d2c added get stats endpoint
closes #2892
2022-04-28 12:22:54 +02:00
Miodec 0b24ec2afb also serving at docs 2022-04-28 12:22:26 +02:00
Rizwan Mustafa 369f96691e
Refactor User DAL (#2857) rizwan
* Create romanian quotes (#2846) DKparadox

* Create romanian

* Add files via upload

* Rename romanian quotes.json to romanian.json

* Delete romanian

* Update romanian.json

* Update romanian.json (#2852) DKparadox

* Refactor User DAL

* Remove unnecessary check

* Add stack var in getUser

* removed unnecessary throw

* Fix error

Co-authored-by: DKparadox <93858181+DKparadox@users.noreply.github.com>
Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-04-27 16:42:17 +02:00
Miodec 5f47133b31 added better error message
closes #2871
2022-04-27 16:08:03 +02:00
Jack 9ca477da54
Added tape mode (#2862)
* added config param for tape mode

* added settings section

* added commands

* moving caret to the correct place with tape mode is active

* only jumping line when not using tape mode

* prettier

* scrolling tape

* restarting test when tape mode changed

* showing one line when tape mode is active

* added function for scrolling words horizontally

* scrolling tape when layout emulator is enabled

* removed left margin when tape is active

* disable tape for some challenges

* fixed incorrect caret position when going back to a previous word

* ignoring no-this-alias

* fixed lines scrolling to often when tape mode was disabled

* storing caret width in a variable

* not allowing tape mode and show all lines together

* removed unnecessary comment
2022-04-24 17:04:46 +02:00
Evan 58505a9f31
Fix Collection Types (#2864) 2022-04-24 01:37:05 +02:00
Jack b60e6905ce
Made username non optional (#2859)
* reduced code repetition

* throwing error when no name provided

* stopping signout if no current user

* expanded to 16 chars

* moved code to popup file

* added google sign up popup

* checking if name is available in the backend

* deleting account if popup was closed
uncommented sign up process
addd functions to enable and disable input

* added google sign up event to avoid circular dependency

* hiding by default

* name is no longer optional
user is deleted if its database object is not found

* using loader to indicate background activity
2022-04-23 19:46:41 +02:00
Jack bdacc24660
Converted new quotes to typescript (#2844)
* renamed to ts

* added type for new quote

* converted to ts

* renamed dao to dal, fixed logic
2022-04-21 17:23:24 +02:00
Rizwan Mustafa 5691643b7a
Fixed versions (#2851) 2022-04-21 12:28:30 +02:00
Jack 6598823d60
Converted leaderboards DAO to typescript (#2843)
* added type for leaderboard entry

* converted leaderboards to ts

* fixed return type

* renamed occurences to DAL

* removed as any

* removed as any

* removed type casting
2022-04-21 12:24:13 +02:00
Rizwan Mustafa b4c191e931
Convert ResultDAO to typescript and rename to DAL (#2838)
* Started conversion to typescript

* Added types to db collection

* Removed changed logic
2022-04-19 13:49:12 +02:00
Rizwan Mustafa a0d5392884
(Backend) Ability to make Quotes Favorite (#2826) rizwanmustafa
* Created API for making quotes fav

* Moved routes over to quotes

* Renamed favQuotes to favoriteQuotes

* Renamed routes

* Removed error to prevent confusion and panic

* Added regex check for quote id and added fav quote number check

* Some fixy

* Added configuration for max favorite quotes

* Added grouping

* Created variable for storing collection

* Changed variable name

* Changed variable name

* Fixed some problems

* Fixed bug

* Added length chekc for quoteId

* MOved routes over to user

* Renamed routes
2022-04-14 22:53:44 +02:00
Miodec 6c6ebc2a24 removed unnecessary type cast 2022-04-14 18:38:03 +02:00
Rizwan Mustafa f07a6dd656
Convert UserDAO to typescript & rename to UserDAL (#2821)
* Started conversion to typescript

* Some more fixy fixy

* Final fixy fixy or at least that is what it seems

* Even more fixy fixy

* Add verifed = false upon usre creation

* Added return type

* Removed extra data

* Fixes

* Removed class syntax of UserDAO

* Name fix

* Renamed UserDAO to UserDAL

* Fixed errors

* Fixed some problems

* Fixed pb bug

* Strict Equality

* Var name change

* Var name change
2022-04-14 18:07:28 +02:00
Miodec ccd0bd6174 added support for approving quotes of one language
closes #2825
2022-04-11 16:05:07 +02:00
Miodec e6fcc2daf2 added name field to approved quotes. closes #2824 2022-04-11 15:55:59 +02:00
Jack ca00a53317
Added sub alt color, fixed various styling inconsistencies (#2804)
* replaced rgba with sub-alt

* changed color name

* reworked button styles, removed icon-button

* renamed color

* grid

* no text decoration

* renamed all icon buttons to text buttons

* using text-button

* fixed discord section

* using button class instead of redeclaring styles

* updated scroll styling

* more consistent scroll to top styling

* dot not in link

* fixed dot spacing

* actually fixed dot (stupid prettier)

* signout closer to the edge

* using text-button class

* updated button text for consistency

* lowercase

* moved show average section down

* fixed icon not being fixed width

* updated focus and hover button styling

* footer using text-button class

* fixed spacing
added new lines

* making sure custom themes work with sub alt

* updated validation

* reordered colors

* added sub alt colors to all themes

* updated alt sub colors

* temp

* updated sub alt colors

* updated sub alt

* fixed merge

* fixed merge

* merge fix

* moved section down

* lowercase

* merge fix

* consistent wording

* merge fix

* fixed merge

* removed test notifications

* removed balloon

* adjusted subalt

* removed debug code

* removed unused code

* removed some unused/old code

* fixed dot spacing
2022-04-07 22:04:43 +02:00
Miodec 5169f20ece unnecessary check 2022-04-07 01:30:16 +02:00
Bruce Berrios a3fc6e9997
Migrate redis client and configuration client from class syntax (#2802) 2022-04-05 12:41:20 -04:00
Miodec 5545b8e0a3 added error message if user is already linked
closes #2794
2022-03-31 19:47:18 +02:00
Bruce Berrios beb7e35dcb
Remove class syntax from controllers (#2791)
* Remove class syntax from controllers

* Specify base and rename
2022-03-30 18:20:13 -04:00
Miodec d3c093bb42 checking size of config
removed confusing error
2022-03-28 17:41:16 +02:00
Rizwan Mustafa 020ac5cb24
Add logging support from Winston with colored output (#2774)
* Converted initial outputs to color outputs

* Some more coloring

* Colored all error outputs

* Completed coloring of outputs

* Created basic logger instance

* Moved over to Winston for logging

* Remove unnnecessary stuff

* Added max file size

* Renamed log to logToDb

* minor refactor and added tab separation with timestamps

* Some changes. Thanks Bruception

* Created wrapper for logger

* Tiny refactor

* Some fixes

* Some fixes

* Update example env

* Remove general

* using default yellow, making colors bold

* removed square brackets

* removed square brackets

* using logger instead of console log

* updated timestamp format

* moved comment up

* Fixed typo

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-27 11:29:11 -04:00
Miodec a8bf141ed7 checking if resulthash length is 40 2022-03-25 20:46:35 +01:00
Bruce Berrios 1159072755
Optional redis (#2770)
* Make redis optional

* Specify return value
2022-03-25 19:15:26 +01:00
Bruce Berrios ad8c433e45
Save exact (#2769) 2022-03-25 16:01:45 +01:00
Rizwan Mustafa 47c7fd42c7
Improve webpack - Reduced filesize by 18% by converting from node-object-hash to object-hash (#2768) rizwanmustafa
* Refreshed the PR

* not sending stringified result anymore

* removed length check

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-25 15:36:04 +01:00
Miodec ed1d248ab6 allowing to run backend without redis 2022-03-25 15:25:03 +01:00
Evan cbca2a8957
Remove JavaScript Compilation from the Frontend (#2764) Ferotiq
* remove javascript compilation from frontend

* add dat back

* I'm going risky

* regen and put the type back
2022-03-25 13:19:21 +01:00
Bruce Berrios 4999fd4bf5
Add Redis client and george task queue (#2765) bruception
* Add Redis client and george task queue

* Add queue configuration

* Change dual write
2022-03-25 13:13:54 +01:00
Evan e60baef095
Add Show Average Accuracy and Make Show Average Speed Show CPM (#2756) Ferotiq
* show cpm for always show cpm

* Add show average: acc and make speed work for cpm

* eqeqeq

* round

* rename to remove clutter

* rename and change icon

* Combine functions

* remove comment

* Update index.html

* rounding if show decimal places is disabled

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-24 13:58:32 +01:00
Jack 6b49a3c5e7
v1.14.1 (#2745)
* updated default config to fix incorrect font button being highlighted

* Convert account controller to ts (#2731)

* using modular sdk

* removing last script

* replacing more code

* unused code

* removed unused code

* removed unused code

* importing auth

* using analytics controller

* importing auth and analytics

* importing auth

* updated git ignore

* fixed path

* removed live config from gitignore

* added error message when failing to initialize firebase

* added live config
using live config when building production

* removed unused code

* fixed incorrect function use

* added example config

* added a step to the contributing guide

* optional steps

* fixed path

* using example in source code so that github actions dont cry like little babies

* using function correctly

* using function correctly

* ignoring live

* removed

* added action webpack config

* bruce said "no-no"

This reverts commit 0a1e5e1660.

* Fix

* Add ignore

* updated instructions

* using correct functions

* using correct function

* missing parameter

* using correct function

* using correct function

* removed ts ignores

* using new functions

* removed refresh

* using new functions

* merge fix

* fixed merge

* regenereated lockfile

* using correct function

* defaulting to the email thats already entered

* storing default snap in a file

* optional parameter

* made parameters non optional

* converted file to ts

* removed unused parameters

* removed unnecessary optional chaining

* destructuring array

* added a function to create error message

* removed type

* removed duplicate gitignore

* removed no check

Co-authored-by: Bruception <bberr022@fiu.edu>

* Include dev branch in CI (#2739)

* Decreased filesize and introduced chunk splitting (#2732) Rizwanmustafa

* Decreased filesize

* Introduce splitting for vendors

* Added HTML webpack plugin for dynamic change of chunkhash and minification on production

* Added bundle analyzer plugin for webpack

* Prevent analyzer from opening on its own

* updated contributors list

* Package lock update

* Created separate webpack config for analysing bundle

* Standardize paths in webpack base config

* Added devtool in dev webpack config

* Minor issues

* Based audit config off of the production config, saved exact packages and renamed some constants

* Saved exact version of packages

* Rename Config

* Added intellisense for webpack configs

* Added script for using audit config

* Simple changes

* Removed unnecessary cd and replaced webpack with npx wepback

* added npm script accessible from root dir
since audit is now a separate script, reenabled auto opening

Co-authored-by: Miodec <bartnikjack@gmail.com>

* Enable live reloading (#2738) bruception

* Enable live reloading

* Update scripts and documentation

* Fix resolve

* Use resolve

* Fix layoutfluid timer warnings (#2740) Ferotiq

* reduced date-fns import size

* using inline source map so that code is debuggable

* removed tinycolor2 dependency

* Migrate Chart.js to 3.7.1 (#2735) DanGonite57

* Migrate Chart.js to 3.7.1

* Show funbox label with StartGraphsAtZero disabled

* Fix label positioners

* Include dev branch in CI (#2739)

* Remove draw animation

* Avoid RangeError with no data

* Disable account chart initial render animation

* Add temporary type assertion for options.animation

* Test disabling animations via updateColors

* Test re-update chart after resetting animation duration

* Test dataset specific animation duration

* Disable animations for now

* Remove unused annotation

Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com>

* installed dev dependency to stop audit from complaining

* removed mr mime dev dependency
regenerate package-lock

* not updating live burst when its disabled

* using vanilla js to increase performance

* updating chart once instead of 3 times

* made log async

* increased minimum wordset length to disable repeating words to 4
this stops infinite A B C sequences
closes #2742

* increased tick padding

* added some padding to stop data points from being cut off

* fixed account graphs not being responsive

* removed unnecessary style

* updated button active color

* Server version (#2746) Bruception

* Add server version

* typo

* Fix logic

* Moved to utility

* Actually save version

* Move logic order

* updated metric name

* removed unnecessary else

Co-authored-by: Bruception <bberr022@fiu.edu>
Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com>
Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com>
Co-authored-by: Evan <64989416+Ferotiq@users.noreply.github.com>
Co-authored-by: DanGonite57 <danzinc57@gmail.com>
2022-03-21 21:22:47 +01:00
Miodec ef5ebe6eb9 cloning request body instead of referencing 2022-03-17 15:09:04 +01:00
Bruce Berrios e512eeb149
Remove generic validation message (#2721) 2022-03-17 12:27:01 +01:00
Miodec 0e1d151112 only logging with psas path 2022-03-17 01:10:15 +01:00
Miodec d613f9a0f3 typo 2022-03-17 01:08:27 +01:00
Miodec e9a37e0598 tracking unknown version 2022-03-17 01:08:13 +01:00
Miodec 9f6322e572 temp typo 2022-03-16 23:43:06 +01:00
Miodec 7ee40b6b6f Revert "removing custom text from the hash"
This reverts commit 3b01cd4f19.
2022-03-16 23:00:18 +01:00
Miodec 3b01cd4f19 removing custom text from the hash 2022-03-16 22:41:21 +01:00
Miodec c4e6b5dfca temp remove required 2022-03-16 22:08:11 +01:00
Miodec b6aa92b5cd temp 2022-03-16 21:34:02 +01:00
Miodec 7cb4bb9a35 temp 2022-03-16 21:28:39 +01:00
Miodec 389fe63a49 Revert "not sending key data when not needed"
Key data is needed to validate test

This reverts commit 2a7eab75be.
2022-03-16 20:48:42 +01:00
Bruce Berrios 64f06231cd
Add initial client version tracking (#2710) bruception
* Add initial client version tracking

* Make headers optional

* Add client version

* Add client version on build

* header fix

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-16 16:53:11 +01:00
Miodec b0a32f37b7 logging test duration 2022-03-16 14:32:40 +01:00
Miodec e4632d3f91 added buffer second 2022-03-16 14:31:19 +01:00
Miodec 052e120bd8 rewrote spacing check, should work more reliably 2022-03-16 14:17:40 +01:00
Miodec 2a7eab75be not sending key data when not needed 2022-03-16 13:19:27 +01:00
Miodec 6459983840 updating leaderboards every 15 minutes 2022-03-12 21:47:43 +01:00
Miodec d80ad81746 tracking how long it took to update the leaderboard 2022-03-12 21:06:53 +01:00
Miodec ac63198f74 added wpm, acc and duration histograms 2022-03-12 18:29:32 +01:00
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