* wip
* wip frontend
* cleanup
* wip
* refactoring
* wip
* first working version
* wip
* update calendar with new result
* add migration script
* dates are hard
* fix naming inconsistencies
* requested changes on migration
* timezones
* update date-fns, use date-fns/utc
* resolve cyclic dependency by extracting test activity calender into new file
* cleanup
* fix increment
* fix
* tests
* test coverage
* test migration
* migration more logging
* migration add unique index on uid if missing
* update legend styling
* 53 columns
* wip
* move dropdown and legend to the top
add dropdown border
yeet hotpink
invisible filler boxes
remove year from month format
* responsive update
* lowercase months
* handle current year, fix tests
* handle year change
* make days square again
* handle newly created users correctly
* move css
* add wrapper for easier styling
rework some font sizes/widths
reorder styles
* media queries
* align
* rework styling once more
* dont commit debug
* add days full to fill the space a bit
* show partial months
* hover on 0 tests
* start dynamic calendar on sunday
* no activity
* hover
* remove label on fillers
* remove label on fillers
* fix months, update tests for months
* adjust tests to new requirements
* cleanup
* fix migration
* impr(commandline): add "add/remove quote to favorites" commands
closes#5368
* chore: remove daily lb which is no longer in the backend
* fix: dropdown element flashing for couple frames on page load
* feat(language): add japanese romaji 1k (nthngnssmnnglss)
* fix: optional chaining
!nuf
* fix(words generator): infinite custom text tests not working correctly
* chore: missing languages in list and group files
* fix(language): remove duplicates
!nuf
* add readline sync to confirm
* gh action complaints
* unnecessary check
* premium only
* add years to drop down only if premium
* Update setup-tests.ts
* test fix
* cleanup
---------
Co-authored-by: Miodec <jack@monkeytype.com>
* added nodemailer and mjml
* added email template
* basic email util file
* added email queue
* email worker
* renamed folder
* showing which queues and workers were initialized
* initializing email on server boot
added some test code
* renamed to email worker
* type fix
* renamed queue
* added queue to list
* added worker to list
* logging when config was verified
* handling send mail result
* not minifying (not supported anymore)
using .html property
returning correct value
* dont send me emails
* added port to .env
* updated example
* updated test email
* using env email
* parseint base
* message
* refactor
* message
* rename
* moved email templates
* using async file read
* typo
* using mustache
* moved file
renamed to email client
* logging with prometheus
* added social links
* line
* using stronger types (object instead of array of any[])
moved prometheus logging into email client
added function to send mail using a template
* fixed templates not working
* removed console log
* name change
* rename
* moved templates
* rename
* string interpolation
* string interpolation
* moved to dev dependencies, exact versions
* moved types
* removed function, remove unnecessary if
* update template params
* updated name
* fixed button not clickable
* throwing
* moved template metadata to one place
* rename
* sending email on account creation
* removed test code
removed await
* fixed button
* not stopping the server if email client validation failed
* added metric for queue lengths
* exposing getjobcounts
* added job to log queue lengths
* added endpoint to request verification email
* using send verification email that calls api instead of firebase built in
* updated route
* renamed function
* recording time to complete
* returning 400 if email already verified
* setting transport initialized to true earlier, setting it to false if caught error
* moved forgot password flow to a simple popup, added new endpoint to ape
* added forgotpasswordemail route
* added email tempalte
* setting transport to false if caught error
* added email queue function
* moved try higher
* fixed log
* Add new rate limiting flow
* Oops
* Fix nit
* Fix some bugs
* Split key generation functions
* Remove 429
* Change message for root limiter
* Flag 429 and add config
* Add status code config
* Check enabled flag
* Add custom status for ape keys
* Bump coverage
* swapped conditions around
whats the point of checking if the status code is in the array if the whole thing is turned off anyway
Co-authored-by: Miodec <bartnikjack@gmail.com>
* 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
* 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>
* 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>
* 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>