* begin moving to new fcm library
* Add error handling
* Add opening notification to correct screen
* Fix tests and make async
* lint fix
* Rename pushNotificationstest..js to pushNotifications.test.js
* fix(potions): remove Fungi Potion time banner
* 5.24.3
* update(content): add 2024-06 content prebuild (#15231)
* update sprites
* add 2024-06 content
* add 2024-06 enchanted armoire items
* update sprites
* update sprites
* fix errors found in testing
* Fix liveliness probes being rate limited (#15236)
* Do not rate limit any liveliness probes
* update example config
* Translated using Weblate (German)
Currently translated at 96.2% (181 of 188 strings)
Translated using Weblate (Japanese)
Currently translated at 99.4% (769 of 773 strings)
Translated using Weblate (German)
Currently translated at 93.6% (176 of 188 strings)
Translated using Weblate (Japanese)
Currently translated at 96.2% (2972 of 3089 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (232 of 232 strings)
Translated using Weblate (Japanese)
Currently translated at 96.8% (841 of 868 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (94 of 94 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (113 of 113 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (131 of 131 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (286 of 286 strings)
Translated using Weblate (German)
Currently translated at 86.7% (163 of 188 strings)
Translated using Weblate (German)
Currently translated at 85.1% (160 of 188 strings)
Translated using Weblate (German)
Currently translated at 84.0% (158 of 188 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (94 of 94 strings)
Translated using Weblate (German)
Currently translated at 83.5% (157 of 188 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (113 of 113 strings)
Translated using Weblate (German)
Currently translated at 82.9% (156 of 188 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (113 of 113 strings)
Translated using Weblate (German)
Currently translated at 81.9% (154 of 188 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (113 of 113 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (188 of 188 strings)
Translated using Weblate (German)
Currently translated at 79.2% (149 of 188 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (189 of 189 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (German)
Currently translated at 90.6% (2799 of 3089 strings)
Translated using Weblate (German)
Currently translated at 77.6% (146 of 188 strings)
Translated using Weblate (German)
Currently translated at 90.5% (2797 of 3089 strings)
Translated using Weblate (German)
Currently translated at 90.4% (2794 of 3089 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (131 of 131 strings)
Translated using Weblate (German)
Currently translated at 90.1% (2786 of 3089 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (188 of 188 strings)
Translated using Weblate (German)
Currently translated at 77.1% (145 of 188 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 98.7% (763 of 773 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (868 of 868 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (131 of 131 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (286 of 286 strings)
Translated using Weblate (German)
Currently translated at 90.0% (2782 of 3089 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (773 of 773 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (378 of 378 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (868 of 868 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (167 of 167 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (259 of 259 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (259 of 259 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (131 of 131 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (286 of 286 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (239 of 239 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (188 of 188 strings)
Translated using Weblate (French)
Currently translated at 100.0% (188 of 188 strings)
Translated using Weblate (German)
Currently translated at 75.0% (141 of 188 strings)
Translated using Weblate (Spanish)
Currently translated at 99.0% (766 of 773 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (189 of 189 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (868 of 868 strings)
Translated using Weblate (Japanese)
Currently translated at 98.8% (764 of 773 strings)
Translated using Weblate (Japanese)
Currently translated at 99.6% (258 of 259 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (378 of 378 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (188 of 188 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (140 of 140 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (131 of 131 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (286 of 286 strings)
Translated using Weblate (Ukrainian)
Currently translated at 62.5% (1931 of 3089 strings)
Translated using Weblate (German)
Currently translated at 89.8% (2777 of 3089 strings)
Translated using Weblate (French)
Currently translated at 100.0% (188 of 188 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 98.5% (762 of 773 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (868 of 868 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (286 of 286 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (286 of 286 strings)
Translated using Weblate (French)
Currently translated at 82.9% (156 of 188 strings)
Translated using Weblate (German)
Currently translated at 93.0% (241 of 259 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (286 of 286 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (427 of 427 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 98.5% (762 of 773 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (868 of 868 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (167 of 167 strings)
Translated using Weblate (Japanese)
Currently translated at 99.2% (257 of 259 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 98.5% (762 of 773 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (868 of 868 strings)
Translated using Weblate (German)
Currently translated at 92.2% (239 of 259 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (286 of 286 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (239 of 239 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (188 of 188 strings)
Translated using Weblate (German)
Currently translated at 91.8% (238 of 259 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (131 of 131 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 98.5% (762 of 773 strings)
Translated using Weblate (German)
Currently translated at 90.3% (234 of 259 strings)
Co-authored-by: Finrod <963505255@qq.com>
Co-authored-by: Jaime Martí <jaumemarti77@icloud.com>
Co-authored-by: Kem Kembo <medamamef@gmail.com>
Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com>
Co-authored-by: TOMA Mitsuru <toma0001@gmail.com>
Co-authored-by: Tetiana <merekka13@gmail.com>
Co-authored-by: Toro Mor <thomas.bizer@gmx.de>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Character
Translation: Habitica/Content
Translation: Habitica/Faq
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
* 5.25.0
* Fix dockerfile (#15241)
* Fix issue with l4p not resetting properly (#15240)
* actually clear out seeking field on user. Even when creating a party
* Add tests to ensure party.seeking is cleared
* fix(lint): don't assign unused const
---------
Co-authored-by: Sabe Jones <sabe@habitica.com>
---------
Co-authored-by: Sabe Jones <sabe@habitica.com>
Co-authored-by: Natalie <78037386+CuriousMagpie@users.noreply.github.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Finrod <963505255@qq.com>
Co-authored-by: Jaime Martí <jaumemarti77@icloud.com>
Co-authored-by: Kem Kembo <medamamef@gmail.com>
Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com>
Co-authored-by: TOMA Mitsuru <toma0001@gmail.com>
Co-authored-by: Tetiana <merekka13@gmail.com>
Co-authored-by: Toro Mor <thomas.bizer@gmx.de>
Co-authored-by: Rafał Jagielski <jagielski.rafal.uwm@gmail.com>
* Log all gem transactions to database
* Also store hourglass transactions
* Fix tests
* Display transaction history in hall of heroes for admins
* add tests to new API call
* hide transaction settings tab for non admins
* fix(lint): remove console
* fix(lint): various automatic corrections
* fix(transactions): use enum expected pluralizations
* fix api unit tests
* fix lint
* fix failing test
* Fix minor inconsistencies
* Log all gem transactions to database
* Also store hourglass transactions
* Fix tests
* Display transaction history in hall of heroes for admins
* add tests to new API call
* hide transaction settings tab for non admins
* fix(lint): remove console
* fix(lint): various automatic corrections
* fix(transactions): use enum expected pluralizations
* fix api unit tests
* fix lint
* Fix minor inconsistencies
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* upgrade stripe module
* switch stripe api to latest version
* fix api version in tests
* start upgrading client and server
* client: switch to redirect
* implement checkout session creation for gems, start implementing webhooks
* stripe: start refactoring one time payments
* working gems and gift payments
* start adding support for subscriptions
* stripe: migrate subscriptions and fix cancelling sub
* allow upgrading group plans
* remove console.log statements
* group plans: upgrade from static page / create new one
* fix#11885, correct group plan modal title
* silence more stripe webhooks
* fix group plans redirects
* implement editing payment method
* start cleaning up code
* fix(stripe): update in-code docs, fix eslint issues
* subscriptions tests
* remove and skip old tests
* skip integration tests
* fix client build
* stripe webhooks: throw error if request fails
* subscriptions: correctly pass groupId
* remove console.log
* stripe: add unit tests for one time payments
* wip: stripe checkout tests
* stripe createCheckoutSession unit tests
* stripe createCheckoutSession unit tests
* stripe createCheckoutSession unit tests (editing card)
* fix existing webhooks tests
* add new webhooks tests
* add more webhooks tests
* fix lint
* stripe integration tests
* better error handling when retrieving customer from stripe
* client: remove unused strings and improve error handling
* payments: limit gift message length (server)
* payments: limit gift message length (client)
* fix redirects when payment is cancelled
* add back "subUpdateCard" string
* fix redirects when editing a sub card, use proper names for products, check subs when gifting
* content: add gems blocks
* gemsBlocks: include ios and android identifiers
* wip: promo code
* split common constants into multiple files
* add second promo part
* geCurrentEvent, refactor promo
* fix lint
* fix exports, use world state api
* start adding world state tests
* remove console.log
* use gems block for purchases
* remove comments
* fix most unit tests
* restore comment
* fix lint
* prevent apple/google gift tests from breaking other tests when stub is not reset
* fix unit tests, clarify tests names
* iap: use gift object when gifting gems
* allow gift object with less data
* fix iap tests, remove findById stubs
* iap: require less data from the mobile apps
* apply discounts
* add missing worldState file
* fix lint
* add test event
* start removing 20 gems option for web
* start adding support for all gems packages on web
* fix unit tests for apple, stripe and google
* amazon: support all gems blocks
* paypal: support all gems blocks
* fix payments unit tests, add tests for getGemsBlock
* web: add gems plans with discounts, update stripe
* fix amazon and paypal clients, payments success modals
* amazon pay: disabled state
* update icons, start abstracting payments buttons
* begin redesign
* redesign gems modal
* fix buttons
* fix hover color for gems modal close icon
* add key to world state current event
* extend test event length
* implement gems modals designs
* early test fall2020
* fix header banner position
* add missing files
* use iso 8601 for dates, minor ui fixes
* fix time zones
* events: fix ISO8601 format
* fix css indentation
* start abstracting banners
* refactor payments buttons
* test spooky, fix group plans box
* implement gems promo banners, refactor banners, fixes
* fix lint
* fix dates
* remove unused i18n strings
* fix stripe integration test
* fix world state integration tests
* the current active event
* add missing unit tests
* add storybook story for payments buttons component
* fix typo
* fix(stripe): correct label when gifting subscriptions
* push notifications: handle some more error codes and when the user is loaded using .lean()
* fix lint
* do not send push notification if message is missing
* 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