* 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
* 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>
* 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>
* 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>
* 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
* 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>
* 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
* 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>
* 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>
* 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>
* 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>
* 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