* feat(subscriber): award mystery items at cron
* fix(mystery): backfill skipped months
* fix(mystery): adjust subscriber text
* fix(mystery): correct moment logic
and remove irrelevant tests
* fix(mystery): build set one month in advance
* fix(mystery): don't add empty set to Time Travelers
* refactor(mystery): readability
* wip: define items as mixed objects
* add default owned gear
* mark modified
* more mark modified
* more mark modified
* more mark modified
* more mark modified
* fix common tests
* fix common tests
* update mongoose
* add itemsUtils
* use new util function in hall controller
* add tests for items utils
* update website/server to mark all items as modified
* start updating common code
* update login incentives
* update unlock
* remove changes to package-lock.json
* remove changes to package.json
* feat(subscription): promo banner in modal
* feat(subscription): promo banner on main page
* fix(banners): remove extraneous margin adjustment
* fix(banners): various
* feat(promotion): gift 1, get 1
* fix(promo): various
* chore(promo): add Bailey
* fix(promo): use different email template for promo beneficiary
* fix(promo): turns out Winter is meaningful
* fix
Newly subscribed accounts receive erroneous notification that they have Mystery Items
* Added unit test for #10496
* Restored a previous unit test
* remove parallel saves from the code
* fix more unit tests
* do not save users when sending message in buyGift (saved later)
* fix test
* reinstall
* fix tests
* fix tests
* Rarranged payment index functions
* Moved gem function
* Increased buy gems test coverage
* Reduced length of functions. Reduced cognitive complexity