Compare commits

..

159 Commits

Author SHA1 Message Date
SabreCat f3cd461145 4.219.0 2022-01-31 15:23:16 -06:00
Weblate 3a28fd58ef Translated using Weblate (Polish)
Currently translated at 69.1% (1744 of 2523 strings)

Co-authored-by: Sabe Jones <sabe@habitica.com>
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pl/
Translation: Habitica/Gear
2022-01-31 22:21:54 +01:00
Weblate bfa3838069 Merge branch 'origin/develop' into Weblate. 2022-01-31 22:07:27 +01:00
SabreCat de477ebb4a Revert "Revert "Revert "Prerequisites to removing Facebook authentication (#13683)"""
This reverts commit e3ffd7acbc.
2022-01-31 14:52:22 -06:00
dependabot[bot] a2f50815d8 build(deps): bump @storybook/addons in /website/client (#13809)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.14 to 6.4.17.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.17/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 14:03:03 -05:00
dependabot[bot] f647f8080d build(deps): bump @storybook/addon-links in /website/client (#13802)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.14 to 6.4.17.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.17/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:30:37 -05:00
dependabot[bot] 14eaeb256e build(deps): bump winston from 3.4.0 to 3.5.0 (#13811)
Bumps [winston](https://github.com/winstonjs/winston) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.4.0...v3.5.0)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:28:15 -05:00
dependabot[bot] ec83a7e213 build(deps): bump amplitude-js from 8.16.0 to 8.16.1 in /website/client (#13810)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.16.0 to 8.16.1.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.16.0...v8.16.1)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:27:44 -05:00
dependabot[bot] cd57289bc8 build(deps): bump stripe from 8.199.0 to 8.201.0 (#13807)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.199.0 to 8.201.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.199.0...v8.201.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:27:07 -05:00
dependabot[bot] 94c7b0d62c build(deps): bump chai from 4.3.4 to 4.3.6 in /website/client (#13806)
Bumps [chai](https://github.com/chaijs/chai) from 4.3.4 to 4.3.6.
- [Release notes](https://github.com/chaijs/chai/releases)
- [Changelog](https://github.com/chaijs/chai/blob/4.x.x/History.md)
- [Commits](https://github.com/chaijs/chai/compare/v4.3.4...v4.3.6)

---
updated-dependencies:
- dependency-name: chai
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:26:45 -05:00
dependabot[bot] 57580caf60 build(deps-dev): bump chai from 4.3.4 to 4.3.6 (#13805)
Bumps [chai](https://github.com/chaijs/chai) from 4.3.4 to 4.3.6.
- [Release notes](https://github.com/chaijs/chai/releases)
- [Changelog](https://github.com/chaijs/chai/blob/4.x.x/History.md)
- [Commits](https://github.com/chaijs/chai/compare/v4.3.4...v4.3.6)

---
updated-dependencies:
- dependency-name: chai
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 12:26:31 -05:00
SabreCat ba9a65c500 chore(sprites): compile 2022-01-31 10:58:02 -06:00
SabreCat 5937635b3f feat(event): award to new users today
Also correct filename of 2022 migration
2022-01-31 10:57:49 -06:00
SabreCat 0a264c0912 Merge remote-tracking branch 'CuriousMagpie/2022-birthday-bash' into develop 2022-01-31 10:09:50 -06:00
dependabot[bot] 1bdea0dda3 build(deps): bump @storybook/addon-actions in /website/client (#13814)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.14 to 6.4.17.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.17/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 10:05:52 -06:00
Weblate ca9bc00396 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.5% (211 of 214 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Romanian)

Currently translated at 64.8% (81 of 125 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.0% (213 of 215 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (French)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (German)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (French)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (French)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (French)

Currently translated at 100.0% (179 of 179 strings)

Translated using Weblate (French)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Vietnamese)

Currently translated at 81.9% (77 of 94 strings)

Translated using Weblate (Vietnamese)

Currently translated at 80.8% (101 of 125 strings)

Translated using Weblate (French)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (French)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (French)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (French)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (French)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Galician)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Spanish)

Currently translated at 71.4% (40 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Spanish)

Currently translated at 98.4% (125 of 127 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Spanish)

Currently translated at 99.6% (2513 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (French)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (French)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Dutch)

Currently translated at 98.3% (657 of 668 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.1% (2424 of 2521 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.9% (2419 of 2521 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Turkish)

Currently translated at 60.8% (118 of 194 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Turkish)

Currently translated at 68.1% (1718 of 2521 strings)

Translated using Weblate (Turkish)

Currently translated at 99.4% (185 of 186 strings)

Translated using Weblate (Turkish)

Currently translated at 69.3% (463 of 668 strings)

Translated using Weblate (Turkish)

Currently translated at 88.0% (110 of 125 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 95.3% (123 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Vietnamese)

Currently translated at 82.4% (551 of 668 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Vietnamese)

Currently translated at 94.4% (120 of 127 strings)

Translated using Weblate (Japanese)

Currently translated at 99.7% (666 of 668 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Japanese)

Currently translated at 99.4% (664 of 668 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.1% (662 of 668 strings)

Translated using Weblate (Japanese)

Currently translated at 99.1% (662 of 668 strings)

Translated using Weblate (German)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (German)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (German)

Currently translated at 99.2% (663 of 668 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Vietnamese)

Currently translated at 94.4% (120 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Japanese)

Currently translated at 99.9% (2519 of 2521 strings)

Translated using Weblate (Italian)

Currently translated at 99.4% (2506 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Vietnamese)

Currently translated at 94.4% (120 of 127 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (French)

Currently translated at 100.0% (194 of 194 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (2518 of 2521 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (2517 of 2521 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2521 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (French)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.6% (2513 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.8% (2491 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.6% (2488 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.5% (214 of 215 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.6% (2488 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.0% (213 of 215 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.4% (2482 of 2521 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 95.3% (204 of 214 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.4% (664 of 668 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.4% (664 of 668 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 98.9% (661 of 668 strings)

Translated using Weblate (Ukrainian)

Currently translated at 72.0% (155 of 215 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (668 of 668 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Russian)

Currently translated at 99.1% (662 of 668 strings)

Co-authored-by: Alice Scalamandrè <alice.scalamandre@me.com>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Bo-Hsiang Chen <rubybhchen@gmail.com>
Co-authored-by: Brici Sebastian Lucian <bricisebastian@gmail.com>
Co-authored-by: Can <uzuner@mailbox.org>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Delta S <deseji93@gmail.com>
Co-authored-by: Flower Petal <flower.petal1618@gmail.com>
Co-authored-by: Jerry Chen <minecjraft@qq.com>
Co-authored-by: John Forcolin <gianluca.forcolin@hotmail.it>
Co-authored-by: Jonas Nardes Braga <ionabi@gmail.com>
Co-authored-by: Maikel Roelofs <maikel_roelofs@live.nl>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Moa Davou <moa.davou99@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: PenariaToji <tojipeh@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Co-authored-by: 陈 <494887366@qq.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ro/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/es/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/gl/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/character/sv/
Translate-URL: https://translate.habitica.com/projects/habitica/character/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/es/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/content/es/
Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/death/it/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/es/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/front/de/
Translate-URL: https://translate.habitica.com/projects/habitica/front/es/
Translate-URL: https://translate.habitica.com/projects/habitica/front/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/front/it/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/front/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/front/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/es/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/it/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/nl/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/pt_BR/
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/quests/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/it/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/tr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/es/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Npc
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Settings
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2022-01-31 15:58:11 +01:00
SabreCat 86ba6055b9 chore(submodule): pull habitica-images 2022-01-28 14:44:19 -06:00
CuriousMagpie e717880f64 added 2022 birthday bash robes & updated migration script 2022-01-28 15:05:04 -05:00
SabreCat e3ffd7acbc Revert "Revert "Prerequisites to removing Facebook authentication (#13683)""
This reverts commit b3c466ad5a.
2022-01-27 14:50:04 -06:00
dependabot[bot] e687140cfc build(deps): bump @storybook/addons in /website/client (#13789)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.13 to 6.4.14.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.14/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 11:20:34 -05:00
dependabot[bot] c4d0f82673 build(deps): bump axios from 0.24.0 to 0.25.0 in /website/client (#13790)
Bumps [axios](https://github.com/axios/axios) from 0.24.0 to 0.25.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.24.0...v0.25.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-26 11:20:11 -05:00
SabreCat 620801ef61 Revert "build(deps): bump helmet from 4.6.0 to 5.0.1 (#13735)"
This reverts commit dcffd8b032.
2022-01-25 15:37:09 -06:00
SabreCat d8c6237173 Revert "build(deps): bump helmet from 5.0.1 to 5.0.2 (#13787)"
This reverts commit 62a7c4bc28.
2022-01-25 15:35:51 -06:00
dependabot[bot] 755ff8d22d build(deps): bump @storybook/addon-actions in /website/client (#13785)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.13 to 6.4.14.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.14/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 13:12:55 -05:00
dependabot[bot] e4e3eb4376 build(deps): bump @babel/preset-env from 7.16.8 to 7.16.11 (#13784)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.8 to 7.16.11.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.11/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 13:11:40 -05:00
dependabot[bot] e0c75e6afd build(deps): bump node-fetch from 2.6.1 to 2.6.7 (#13794)
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 13:09:56 -05:00
dependabot[bot] 2ec1fc20db build(deps): bump amplitude-js from 8.15.0 to 8.16.0 in /website/client (#13791)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.15.0 to 8.16.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.15.0...v8.16.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 13:09:25 -05:00
dependabot[bot] 62a7c4bc28 build(deps): bump helmet from 5.0.1 to 5.0.2 (#13787)
Bumps [helmet](https://github.com/helmetjs/helmet) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/helmetjs/helmet/releases)
- [Changelog](https://github.com/helmetjs/helmet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/helmetjs/helmet/compare/v5.0.1...v5.0.2)

---
updated-dependencies:
- dependency-name: helmet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:59:44 -05:00
dependabot[bot] d2e1265b62 build(deps-dev): bump axios from 0.24.0 to 0.25.0 (#13786)
Bumps [axios](https://github.com/axios/axios) from 0.24.0 to 0.25.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.24.0...v0.25.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:59:22 -05:00
dependabot[bot] 92e8e24bfc build(deps): bump @storybook/addon-links in /website/client (#13783)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.13 to 6.4.14.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.14/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:43:40 -05:00
dependabot[bot] cc79902900 build(deps): bump @babel/core from 7.16.7 to 7.16.12 (#13782)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.7 to 7.16.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.12/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:43:16 -05:00
dependabot[bot] 7358edb98e build(deps): bump superagent from 7.0.2 to 7.1.1 (#13780)
Bumps [superagent](https://github.com/visionmedia/superagent) from 7.0.2 to 7.1.1.
- [Release notes](https://github.com/visionmedia/superagent/releases)
- [Changelog](https://github.com/visionmedia/superagent/blob/master/HISTORY.md)
- [Commits](https://github.com/visionmedia/superagent/compare/v7.0.2...v7.1.1)

---
updated-dependencies:
- dependency-name: superagent
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:39:43 -05:00
dependabot[bot] a0860e62e8 build(deps): bump nanoid from 3.1.30 to 3.2.0 in /website/client (#13778)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.1.30 to 3.2.0.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.1.30...3.2.0)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:30:47 -05:00
SabreCat b3c466ad5a Revert "Prerequisites to removing Facebook authentication (#13683)"
This reverts commit 1177ad8b8c.
2022-01-25 09:30:37 -06:00
SabreCat 9a6b05fe67 Revert "build(deps): bump redis from 3.1.2 to 4.0.2 (#13757)"
This reverts commit 8e93ddf06c.
2022-01-25 08:24:04 -06:00
Phillip Thelen 1177ad8b8c Prerequisites to removing Facebook authentication (#13683)
* Don't sign in user when trying to connect a social account that was already created

* Log social users into matching local auth accounts

If the social account has an email that already exists as a local user, instead of creating a new account log them into their account and add the social auth to the account

* If possible set local authentication email for social users

* Allow password reset emails to be sent to social login users

* lint fixes

* Fix issues and tests

* fix tests

* Fix lint error.
2022-01-21 15:15:58 -06:00
abigley d11810677c Fixed issue with mystery sets, pets, and mounts staying pinned in the rewards column after purchasing. Added logic to look up item info and remove from pinned list by path. (#13701) 2022-01-21 15:10:50 -06:00
SabreCat f01c352969 fix(chat): Enter key improvement by @maryketa 2022-01-21 14:55:34 -06:00
dependabot[bot] 9f0747c36f build(deps): bump stripe from 8.195.0 to 8.199.0 (#13776)
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.195.0 to 8.199.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.195.0...v8.199.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 16:11:30 -06:00
dependabot[bot] dcffd8b032 build(deps): bump helmet from 4.6.0 to 5.0.1 (#13735)
Bumps [helmet](https://github.com/helmetjs/helmet) from 4.6.0 to 5.0.1.
- [Release notes](https://github.com/helmetjs/helmet/releases)
- [Changelog](https://github.com/helmetjs/helmet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/helmetjs/helmet/compare/v4.6.0...v5.0.1)

---
updated-dependencies:
- dependency-name: helmet
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 15:38:43 -06:00
dependabot[bot] 7ccc1221da build(deps): bump superagent from 6.1.0 to 7.0.2 (#13752)
Bumps [superagent](https://github.com/visionmedia/superagent) from 6.1.0 to 7.0.2.
- [Release notes](https://github.com/visionmedia/superagent/releases)
- [Changelog](https://github.com/visionmedia/superagent/blob/master/HISTORY.md)
- [Commits](https://github.com/visionmedia/superagent/compare/v6.1.0...v7.0.2)

---
updated-dependencies:
- dependency-name: superagent
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 15:31:49 -06:00
dependabot[bot] 8e93ddf06c build(deps): bump redis from 3.1.2 to 4.0.2 (#13757)
Bumps [redis](https://github.com/redis/node-redis) from 3.1.2 to 4.0.2.
- [Release notes](https://github.com/redis/node-redis/releases)
- [Changelog](https://github.com/redis/node-redis/blob/master/CHANGELOG.md)
- [Commits](https://github.com/redis/node-redis/commits)

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 15:30:23 -06:00
dependabot[bot] cfc35f62a8 build(deps): bump @storybook/addon-actions in /website/client (#13768)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.10 to 6.4.13.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.13/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-20 15:27:52 -06:00
dependabot[bot] 356e737f4d build(deps): bump @babel/preset-env from 7.16.7 to 7.16.8 (#13766)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.7 to 7.16.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.8/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-19 10:49:49 -05:00
dependabot[bot] a6010e7097 build(deps): bump @storybook/addons in /website/client (#13756)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.10 to 6.4.13.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.13/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-19 10:49:03 -05:00
dependabot[bot] 0fe40e6ba8 build(deps): bump core-js from 3.20.2 to 3.20.3 in /website/client (#13764)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.2 to 3.20.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.20.2...v3.20.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-19 10:48:31 -05:00
dependabot[bot] 1b9348099a build(deps): bump @slack/webhook from 6.0.0 to 6.1.0 (#13765)
Bumps [@slack/webhook](https://github.com/slackapi/node-slack-sdk) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/slackapi/node-slack-sdk/releases)
- [Commits](https://github.com/slackapi/node-slack-sdk/compare/@slack/webhook@6.0.0...@slack/webhook@6.1.0)

---
updated-dependencies:
- dependency-name: "@slack/webhook"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:30:31 -05:00
dependabot[bot] a2200d64b1 build(deps): bump @babel/register from 7.16.7 to 7.16.9 (#13763)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.16.7 to 7.16.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.9/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:30:03 -05:00
dependabot[bot] 923dd00e32 build(deps): bump image-size from 1.0.0 to 1.0.1 (#13761)
Bumps [image-size](https://github.com/image-size/image-size) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/image-size/image-size/releases)
- [Commits](https://github.com/image-size/image-size/compare/v1.0.0...v1.0.1)

---
updated-dependencies:
- dependency-name: image-size
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:29:06 -05:00
dependabot[bot] 8c76ee3e8d build(deps-dev): bump run-rs from 0.7.5 to 0.7.6 (#13760)
Bumps [run-rs](https://github.com/vkarpov15/run-rs) from 0.7.5 to 0.7.6.
- [Release notes](https://github.com/vkarpov15/run-rs/releases)
- [Changelog](https://github.com/vkarpov15/run-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vkarpov15/run-rs/compare/0.7.5...0.7.6)

---
updated-dependencies:
- dependency-name: run-rs
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:28:47 -05:00
dependabot[bot] 20d18c701d build(deps): bump @storybook/addon-links in /website/client (#13754)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.10 to 6.4.13.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.13/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:26:44 -05:00
dependabot[bot] 16621ef2a0 build(deps): bump winston from 3.3.4 to 3.4.0 (#13753)
Bumps [winston](https://github.com/winstonjs/winston) from 3.3.4 to 3.4.0.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.3.4...v3.4.0)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:26:00 -05:00
dependabot[bot] b4e782baa5 build(deps): bump follow-redirects in /website/client (#13748)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.4 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.4...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:16:15 -05:00
dependabot[bot] 4e51841aa4 build(deps): bump follow-redirects from 1.14.4 to 1.14.7 (#13747)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.4 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.4...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-17 16:15:48 -05:00
dependabot[bot] f0c50386f4 build(deps): bump @storybook/addons in /website/client (#13743)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.4.9 to 6.4.10.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.10/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-11 12:40:37 -05:00
dependabot[bot] d881c03ba9 build(deps): bump @storybook/addon-links in /website/client (#13739)
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.4.9 to 6.4.10.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.10/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 16:16:36 -05:00
dependabot[bot] a4ffefdc54 build(deps): bump @storybook/vue in /website/client (#13745)
Bumps [@storybook/vue](https://github.com/storybookjs/storybook/tree/HEAD/app/vue) from 6.3.12 to 6.3.13.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.3.13/app/vue)

---
updated-dependencies:
- dependency-name: "@storybook/vue"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 11:28:00 -05:00
dependabot[bot] 01e8809abf build(deps): bump amplitude-js from 8.14.1 to 8.15.0 in /website/client (#13742)
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.14.1 to 8.15.0.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.14.1...v8.15.0)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 11:27:18 -05:00
dependabot[bot] 3732058764 build(deps): bump winston from 3.3.3 to 3.3.4 (#13737)
Bumps [winston](https://github.com/winstonjs/winston) from 3.3.3 to 3.3.4.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.3.3...3.3.4)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 11:25:26 -05:00
dependabot[bot] 4682223235 build(deps): bump @storybook/addon-actions in /website/client (#13736)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.4.9 to 6.4.10.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.10/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-10 11:24:48 -05:00
dependabot[bot] 8954c6409c build(deps): bump copy-props from 2.0.4 to 2.0.5 (#13732)
Bumps [copy-props](https://github.com/gulpjs/copy-props) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/gulpjs/copy-props/releases)
- [Changelog](https://github.com/gulpjs/copy-props/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/copy-props/compare/2.0.4...2.0.5)

---
updated-dependencies:
- dependency-name: copy-props
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-07 16:33:55 -05:00
Weblate 322d47360b Merge branch 'origin/develop' into Weblate. 2022-01-06 23:30:02 +01:00
SabreCat 039851a8c2 Merge branch 'release' into develop 2022-01-06 16:28:58 -06:00
SabreCat 8707ecf01a 4.218.0 2022-01-06 16:28:41 -06:00
SabreCat 586801a1cf chore(sprites): compile 2022-01-06 16:28:29 -06:00
SabreCat 82ad85e564 feat(content): Armoire and Backgrounds Jan 2022 2022-01-06 16:28:16 -06:00
Weblate 3642e6f69d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (127 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.8% (660 of 661 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Chinese (Traditional))

Currently translated at 99.5% (658 of 661 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Hungarian)

Currently translated at 48.8% (61 of 125 strings)

Translated using Weblate (Vietnamese)

Currently translated at 88.9% (113 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Italian)

Currently translated at 99.2% (2495 of 2515 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2515 of 2515 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Vietnamese)

Currently translated at 87.4% (111 of 127 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2515 of 2515 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2515 of 2515 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Vietnamese)

Currently translated at 86.6% (110 of 127 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (2511 of 2515 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 92.7% (103 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Ukrainian)

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Ukrainian)

Currently translated at 92.6% (338 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 92.3% (337 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 91.2% (333 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 90.9% (332 of 365 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2509 of 2509 strings)

Translated using Weblate (Russian)

Currently translated at 99.7% (2503 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (129 of 129 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Bo-Hsiang Chen <rubybhchen@gmail.com>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Jerry Chen <minecjraft@qq.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Márton Csibrik <csibrikmarton@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: 陈 <494887366@qq.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/it/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hant/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/it/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Loginincentives
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Spells
Translation: Habitica/Tasks
2022-01-06 16:27:08 +01:00
Alys 6c841fbe17 add adult terms to list of swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2022-01-05 15:31:14 +10:00
dependabot[bot] 4d4a955292 build(deps): bump @babel/preset-env from 7.16.5 to 7.16.7 (#13726)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.5 to 7.16.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.7/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 11:52:02 -05:00
dependabot[bot] d537c53ab9 build(deps): bump core-js from 3.20.1 to 3.20.2 in /website/client (#13729)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.1 to 3.20.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.20.1...v3.20.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-03 14:21:40 -05:00
dependabot[bot] 890224a460 build(deps): bump @babel/register from 7.16.5 to 7.16.7 (#13724)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.16.5 to 7.16.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.7/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-03 14:18:50 -05:00
dependabot[bot] d2dc36a431 build(deps): bump @babel/core from 7.16.5 to 7.16.7 (#13723)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.5 to 7.16.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.7/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-03 14:18:33 -05:00
dependabot[bot] 97fd87c08c build(deps-dev): bump @babel/plugin-proposal-optional-chaining (#13722)
Bumps [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) from 7.16.5 to 7.16.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.7/packages/babel-plugin-proposal-optional-chaining)

---
updated-dependencies:
- dependency-name: "@babel/plugin-proposal-optional-chaining"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-03 14:18:14 -05:00
CuriousMagpie 7afdd22e1d migration-runner.js reset 2022-01-03 11:49:25 -05:00
SabreCat ad268334f3 fix(deployment): add Heroku .slugignore 2021-12-31 13:23:56 -06:00
SabreCat a2134084d5 fix(deployment): add Heroku .slugignore 2021-12-31 13:23:39 -06:00
SabreCat 8824f6ac16 fix(sprites): add habitica-images as submodule 2021-12-31 13:03:02 -06:00
SabreCat 2fe8e5bf82 4.217.0 2021-12-30 13:35:59 -06:00
SabreCat 4c0f67befb Merge branch 'develop' into release 2021-12-30 13:35:52 -06:00
Weblate 5dc7d3c3cc Translated using Weblate (Vietnamese)
Currently translated at 70.1% (1759 of 2509 strings)

Translated using Weblate (Russian)

Currently translated at 99.4% (2496 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2509 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 99.0% (212 of 214 strings)

Translated using Weblate (Persian)

Currently translated at 90.2% (121 of 134 strings)

Translated using Weblate (Persian)

Currently translated at 85.0% (114 of 134 strings)

Translated using Weblate (Japanese)

Currently translated at 99.9% (2507 of 2509 strings)

Co-authored-by: Ali Ghaffaari <ali.ghaffaari@gmail.com>
Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/fa/
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Tasks
2021-12-30 20:35:01 +01:00
SabreCat 2e09f2d4fb chore(sprites): compile 2021-12-30 13:34:11 -06:00
SabreCat 5973bca327 feat(event): New Year's Eve 2021 2021-12-30 13:34:04 -06:00
SabreCat bcfea31ffb fix(quests): fix erroneous Egg Hunt and Waffle quest appearances 2021-12-29 13:36:12 -06:00
Weblate cae29e63ae Merge branch 'origin/develop' into Weblate. 2021-12-28 21:40:12 +01:00
SabreCat 9eea0687ba 4.216.0 2021-12-28 14:39:05 -06:00
SabreCat e2b506eb3c chore(sprites): compile 2021-12-28 14:38:54 -06:00
SabreCat 9bf25c49ae feat(content): Subscriber Items January 2022 2021-12-28 14:38:43 -06:00
Weblate 837d1246d5 Translated using Weblate (Japanese)
Currently translated at 99.8% (2505 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 99.6% (2501 of 2509 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 98.8% (2481 of 2509 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Polish)

Currently translated at 96.8% (187 of 193 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (178 of 178 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Polish)

Currently translated at 94.8% (183 of 193 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (125 of 125 strings)

Translated using Weblate (Japanese)

Currently translated at 99.4% (2496 of 2509 strings)

Translated using Weblate (Vietnamese)

Currently translated at 85.0% (108 of 127 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 94.4% (118 of 125 strings)

Translated using Weblate (Spanish (Latin America))

Currently translated at 94.4% (118 of 125 strings)

Translated using Weblate (Japanese)

Currently translated at 99.4% (2495 of 2509 strings)

Translated using Weblate (Japanese)

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 99.2% (2491 of 2509 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (French)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (French)

Currently translated at 100.0% (2509 of 2509 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2509 of 2509 strings)

Translated using Weblate (French)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (German)

Currently translated at 99.8% (2506 of 2509 strings)

Translated using Weblate (German)

Currently translated at 100.0% (215 of 215 strings)

Translated using Weblate (Japanese)

Currently translated at 99.1% (2487 of 2509 strings)

Translated using Weblate (Ukrainian)

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (German)

Currently translated at 99.8% (2505 of 2509 strings)

Translated using Weblate (Russian)

Currently translated at 98.5% (211 of 214 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Ukrainian)

Currently translated at 74.0% (143 of 193 strings)

Translated using Weblate (Ukrainian)

Currently translated at 88.2% (98 of 111 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.9% (107 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 87.1% (318 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 81.1% (2036 of 2509 strings)

Translated using Weblate (Ukrainian)

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (Ukrainian)

Currently translated at 97.7% (174 of 178 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 98.9% (2483 of 2509 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 97.1% (208 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (745 of 746 strings)

Translated using Weblate (Vietnamese)

Currently translated at 67.8% (38 of 56 strings)

Translated using Weblate (German)

Currently translated at 100.0% (214 of 214 strings)

Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: César Orlando Pallares Delgado <copdeb@gmail.com>
Co-authored-by: Juan Esteban Marín <juanmarin690@gmail.com>
Co-authored-by: Klaudia Bojk <b.brekker@gmail.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: blacksheep47 <1760906326@qq.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/character/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/content/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/death/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/front/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/front/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/
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/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/de/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/uk/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Limited
Translation: Habitica/Npc
Translation: Habitica/Pets
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-12-28 18:54:30 +01:00
dependabot[bot] 1015b6ea51 build(deps-dev): bump @babel/plugin-proposal-optional-chaining (#13704)
Bumps [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-optional-chaining) from 7.16.0 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-plugin-proposal-optional-chaining)

---
updated-dependencies:
- dependency-name: "@babel/plugin-proposal-optional-chaining"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-28 12:46:17 -05:00
Natalie L 15c9694227 Merge pull request #13717 from HabitRPG/dependabot/npm_and_yarn/website/client/core-js-3.20.1
build(deps): bump core-js from 3.19.3 to 3.20.1 in /website/client
2021-12-28 12:45:27 -05:00
dependabot[bot] ce2e7cb0ab build(deps): bump cookie-session from 1.4.0 to 2.0.0 (#13710)
Bumps [cookie-session](https://github.com/expressjs/cookie-session) from 1.4.0 to 2.0.0.
- [Release notes](https://github.com/expressjs/cookie-session/releases)
- [Changelog](https://github.com/expressjs/cookie-session/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/cookie-session/compare/1.4.0...v2.0.0)

---
updated-dependencies:
- dependency-name: cookie-session
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-28 11:09:08 -06:00
dependabot[bot] d69327bbf5 build(deps): bump core-js from 3.19.3 to 3.20.1 in /website/client
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.3 to 3.20.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.19.3...v3.20.1)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-28 16:54:43 +00:00
Natalie L f38135dffe Merge pull request #13720 from HabitRPG/dependabot/npm_and_yarn/website/client/amplitude-js-8.14.1
build(deps): bump amplitude-js from 8.13.1 to 8.14.1 in /website/client
2021-12-28 11:51:54 -05:00
Natalie L c4e2cccd51 Merge pull request #13716 from HabitRPG/dependabot/npm_and_yarn/apidoc-0.50.3
build(deps): bump apidoc from 0.50.2 to 0.50.3
2021-12-28 11:50:21 -05:00
Natalie L f294192800 Merge pull request #13711 from HabitRPG/dependabot/npm_and_yarn/babel/preset-env-7.16.5
build(deps): bump @babel/preset-env from 7.16.4 to 7.16.5
2021-12-28 11:49:14 -05:00
dependabot[bot] a7e3976556 build(deps): bump amplitude-js from 8.13.1 to 8.14.1 in /website/client
Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.13.1 to 8.14.1.
- [Release notes](https://github.com/amplitude/amplitude-javascript/releases)
- [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.13.1...v8.14.1)

---
updated-dependencies:
- dependency-name: amplitude-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 05:11:24 +00:00
dependabot[bot] d6517bdd4c build(deps): bump apidoc from 0.50.2 to 0.50.3
Bumps [apidoc](https://github.com/apidoc/apidoc) from 0.50.2 to 0.50.3.
- [Release notes](https://github.com/apidoc/apidoc/releases)
- [Changelog](https://github.com/apidoc/apidoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apidoc/apidoc/compare/0.50.2...0.50.3)

---
updated-dependencies:
- dependency-name: apidoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 05:02:32 +00:00
dependabot[bot] 887c21e4b5 build(deps): bump @babel/preset-env from 7.16.4 to 7.16.5
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.4 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-24 16:31:31 +00:00
Natalie L 326ef89ede Merge pull request #13703 from HabitRPG/dependabot/npm_and_yarn/express-4.17.2
build(deps): bump express from 4.17.1 to 4.17.2
2021-12-24 11:29:35 -05:00
Natalie L 0dd115998f Merge pull request #13702 from HabitRPG/dependabot/npm_and_yarn/babel/register-7.16.5
build(deps): bump @babel/register from 7.16.0 to 7.16.5
2021-12-24 11:29:06 -05:00
Natalie L 97c66779f7 Merge pull request #13715 from HabitRPG/dependabot/npm_and_yarn/stripe-8.195.0
build(deps): bump stripe from 8.193.0 to 8.195.0
2021-12-24 11:28:17 -05:00
dependabot[bot] 966a2a3dd1 build(deps): bump express from 4.17.1 to 4.17.2
Bumps [express](https://github.com/expressjs/express) from 4.17.1 to 4.17.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.17.1...4.17.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:50:19 +00:00
dependabot[bot] 52c32ab63d build(deps): bump @babel/register from 7.16.0 to 7.16.5
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.16.0 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:50:17 +00:00
dependabot[bot] f4f575c9b9 build(deps): bump stripe from 8.193.0 to 8.195.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.193.0 to 8.195.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.193.0...v8.195.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:49:52 +00:00
Natalie L 2d44bdae5b Merge pull request #13707 from HabitRPG/dependabot/npm_and_yarn/babel/core-7.16.5
build(deps): bump @babel/core from 7.16.0 to 7.16.5
2021-12-23 16:48:10 -05:00
Natalie L bc23380535 Merge pull request #13714 from HabitRPG/dependabot/npm_and_yarn/universal-analytics-0.5.3
build(deps): bump universal-analytics from 0.5.2 to 0.5.3
2021-12-23 16:47:27 -05:00
dependabot[bot] 4581302ba2 build(deps): bump @babel/core from 7.16.0 to 7.16.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.0 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:35:45 +00:00
dependabot[bot] ef71a51598 build(deps): bump universal-analytics from 0.5.2 to 0.5.3
Bumps [universal-analytics](https://github.com/peaksandpies/universal-analytics) from 0.5.2 to 0.5.3.
- [Release notes](https://github.com/peaksandpies/universal-analytics/releases)
- [Changelog](https://github.com/peaksandpies/universal-analytics/blob/master/HISTORY.md)
- [Commits](https://github.com/peaksandpies/universal-analytics/compare/0.5.2...0.5.3)

---
updated-dependencies:
- dependency-name: universal-analytics
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-23 21:33:42 +00:00
SabreCat a301186432 Merge branch 'release' into develop 2021-12-23 15:29:26 -06:00
SabreCat 3b8a9d59b1 4.215.1 2021-12-22 15:00:01 -06:00
SabreCat f2cfc2744d fix(Slack): improve subscription notif logic 2021-12-22 14:58:15 -06:00
SabreCat 7d90317e31 fix(test): correct stub restore 2021-12-21 16:25:41 -06:00
SabreCat e2fd6a72c2 fix(test): correct stub restore 2021-12-21 16:25:29 -06:00
SabreCat 2698251bd2 Merge branch 'release' into develop 2021-12-21 16:03:39 -06:00
SabreCat 60ea8e48a8 fix(test): return empty event list for no promo 2021-12-21 16:01:27 -06:00
SabreCat e74a3f84f5 fix(string): missing token 2021-12-21 15:49:55 -06:00
Weblate 1c23f05deb Merge branch 'origin/develop' into Weblate. 2021-12-21 22:34:57 +01:00
SabreCat aee8e2e905 Merge branch 'release' into develop 2021-12-21 15:34:24 -06:00
SabreCat fbc0ccfab1 4.215.0 2021-12-21 15:33:58 -06:00
SabreCat c299e2e4d3 chore(sprites): compile 2021-12-21 15:32:20 -06:00
SabreCat 685ba1286e feat(content): Winter Wonderland 2021-22 2021-12-21 15:32:11 -06:00
Weblate 7b4a8bb292 Translated using Weblate (Vietnamese)
Currently translated at 84.2% (107 of 127 strings)

Translated using Weblate (Czech)

Currently translated at 85.6% (107 of 125 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Vietnamese)

Currently translated at 78.4% (98 of 125 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (German)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Vietnamese)

Currently translated at 83.1% (620 of 746 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 98.9% (184 of 186 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 34.4% (43 of 125 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 12.0% (15 of 125 strings)

Translated using Weblate (Korean)

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Korean)

Currently translated at 89.5% (120 of 134 strings)

Translated using Weblate (Japanese)

Currently translated at 96.2% (206 of 214 strings)

Translated using Weblate (Korean)

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Japanese)

Currently translated at 95.7% (205 of 214 strings)

Co-authored-by: Aleš Dvořák <mail@alesdvorak.cz>
Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: Chap <chalda82+nogravatar@gmail.com>
Co-authored-by: Jiyoun Namkoong <slovesk00@gmail.com>
Co-authored-by: Jon Austdal <doffen1719@hotmail.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Sciuridae <sweetvshoney@163.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: そら <comi4work@gmail.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/cs/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/nb_NO/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/it/
Translate-URL: https://translate.habitica.com/projects/habitica/character/nb_NO/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/de/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/it/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Character
Translation: Habitica/Communityguidelines
Translation: Habitica/Contrib
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Overview
Translation: Habitica/Questscontent
Translation: Habitica/Spells
Translation: Habitica/Tasks
2021-12-21 19:20:17 +01:00
SabreCat 741ddd9006 4.214.6 2021-12-17 14:01:06 -06:00
SabreCat 5986d0ea02 fix(g1g1): correct availability window 2021-12-17 14:00:59 -06:00
Weblate c92d3cc374 Merge branch 'origin/develop' into Weblate. 2021-12-15 23:48:50 +01:00
Weblate e5a35528b7 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Vietnamese)

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (Japanese)

Currently translated at 95.3% (204 of 214 strings)

Translated using Weblate (Korean)

Currently translated at 32.0% (57 of 178 strings)

Translated using Weblate (Korean)

Currently translated at 86.8% (317 of 365 strings)

Translated using Weblate (Korean)

Currently translated at 95.0% (193 of 203 strings)

Translated using Weblate (Korean)

Currently translated at 68.9% (1711 of 2481 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Vietnamese)

Currently translated at 60.7% (34 of 56 strings)

Translated using Weblate (Vietnamese)

Currently translated at 81.9% (172 of 210 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.9% (107 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (61 of 61 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (22 of 22 strings)

Translated using Weblate (Ukrainian)

Currently translated at 86.3% (315 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.0% (2035 of 2481 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (203 of 203 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Ukrainian)

Currently translated at 73.2% (93 of 127 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (German)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Ukrainian)

Currently translated at 98.9% (368 of 372 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (657 of 657 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (365 of 365 strings)

Translated using Weblate (Ukrainian)

Currently translated at 97.1% (638 of 657 strings)

Translated using Weblate (Vietnamese)

Currently translated at 88.0% (170 of 193 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (202 of 202 strings)

Translated using Weblate (Latvian)

Currently translated at 12.0% (15 of 125 strings)

Translated using Weblate (French)

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Ukrainian)

Currently translated at 90.1% (592 of 657 strings)

Translated using Weblate (French)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 74.0% (143 of 193 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.9% (107 of 129 strings)

Translated using Weblate (Ukrainian)

Currently translated at 89.6% (589 of 657 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 87.2% (577 of 661 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Polish)

Currently translated at 70.2% (1744 of 2481 strings)

Translated using Weblate (Polish)

Currently translated at 70.2% (1744 of 2481 strings)

Translated using Weblate (German)

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (Ukrainian)

Currently translated at 83.3% (622 of 746 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Polish)

Currently translated at 99.2% (124 of 125 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Korean)

Currently translated at 80.8% (76 of 94 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (372 of 372 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (134 of 134 strings)

Translated using Weblate (German)

Currently translated at 99.6% (2472 of 2481 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 75.0% (6 of 8 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (193 of 193 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (2481 of 2481 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (746 of 746 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (111 of 111 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Korean)

Currently translated at 84.1% (556 of 661 strings)

Translated using Weblate (Korean)

Currently translated at 86.5% (116 of 134 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (15 of 15 strings)

Translated using Weblate (Korean)

Currently translated at 95.9% (357 of 372 strings)

Translated using Weblate (Vietnamese)

Currently translated at 96.9% (354 of 365 strings)

Translated using Weblate (Japanese)

Currently translated at 99.9% (2479 of 2481 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (661 of 661 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (186 of 186 strings)

Translated using Weblate (Hungarian)

Currently translated at 24.8% (31 of 125 strings)

Translated using Weblate (Hungarian)

Currently translated at 24.0% (30 of 125 strings)

Translated using Weblate (Hungarian)

Currently translated at 23.2% (29 of 125 strings)

Co-authored-by: An Nguyen <nguyen.thienan.business@gmail.com>
Co-authored-by: Andris Zaguzovs <zaguzovs.andris@gmail.com>
Co-authored-by: Benoit Hetru <me+hbtc@gahanka.net>
Co-authored-by: Izabela Piskulla <ipiskulla@gmail.com>
Co-authored-by: Jiyoun Namkoong <slovesk00@gmail.com>
Co-authored-by: KanI <twinklingnerd@gmail.com>
Co-authored-by: Leonardo Nunes <starlotri@gmail.com>
Co-authored-by: Mara Dolichotis <marascherzer@gmail.com>
Co-authored-by: Márton Csibrik <csibrikmarton@gmail.com>
Co-authored-by: Nazar Paruna <nazarparuna@gmail.com>
Co-authored-by: Võ Trần Nhã Linh <vtrnnhlinh@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: konhi <hello.konhi@gmail.com>
Co-authored-by: mattya 226 <worldworld1114@gmail.com>
Co-authored-by: Естай <akseleu@yahoo.com>
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/hu/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/lv/
Translate-URL: https://translate.habitica.com/projects/habitica/achievements/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/content/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/contrib/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/death/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/death/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/faq/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/front/ko/
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/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/pl/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/generic/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/groups/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/inventory/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/limited/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/messages/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/npc/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/overview/pt_BR/
Translate-URL: https://translate.habitica.com/projects/habitica/pets/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/quests/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/settings/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/spells/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ru/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/vi/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ko/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/uk/
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/vi/
Translation: Habitica/Achievements
Translation: Habitica/Backgrounds
Translation: Habitica/Challenge
Translation: Habitica/Communityguidelines
Translation: Habitica/Content
Translation: Habitica/Contrib
Translation: Habitica/Death
Translation: Habitica/Faq
Translation: Habitica/Front
Translation: Habitica/Gear
Translation: Habitica/Generic
Translation: Habitica/Groups
Translation: Habitica/Inventory
Translation: Habitica/Limited
Translation: Habitica/Loginincentives
Translation: Habitica/Messages
Translation: Habitica/Npc
Translation: Habitica/Overview
Translation: Habitica/Pets
Translation: Habitica/Quests
Translation: Habitica/Questscontent
Translation: Habitica/Rebirth
Translation: Habitica/Settings
Translation: Habitica/Spells
Translation: Habitica/Subscriber
Translation: Habitica/Tasks
2021-12-15 23:48:44 +01:00
SabreCat 831cce65e2 4.214.5 2021-12-15 16:42:34 -06:00
SabreCat 64c732e991 fix(test): stub event list not singleton 2021-12-15 16:32:58 -06:00
SabreCat 391a9bd91b feat(promo): G1G1 2021
Also refactors a number of places on web client to start using event 
list from world state instead of singular currentEvent
2021-12-15 16:20:43 -06:00
negue a1cddcaf17 Feature: new "report a bug" modal (#13530)
* WIP: report a bug api/ui

* fix lint

* add USER_USERNAME

* extend sendTxn tests / checks + fix bug report email

* fix lint

* add more checks to sendTxn - fix bug-report variables

* fix lint / ci

* fix test: reset email config url

* fix test stub

* fix tests

* refactor the variables checks

* lint.

* move bug-report page as a modal

* send user_email to the email

* show true/false instead 1/0

* fix issues

* fix footer report bug email if not logged in

* fix styles/margins

* prefill user's email

* show facebook email if local email not existing

* bugReportSuccessModal.vue

* add BROWSER_UA to mail properties

* extract bugReportLogic to its own lib file for unit test

* test api validators

* fix lint
2021-12-14 19:16:50 -06:00
negue c37dac5568 FIX: refactor notifications position based on different promo banners (#13679) 2021-12-14 19:14:38 -06:00
Natalie L 9e0e805d35 Fix: Updated challenge.js to allow shortName to be editable by party leader (#13654)
* updated challenge.js to allow shortName to be editable

* fix api-v3 integration test error
2021-12-14 15:54:57 -06:00
SabreCat a174b218bd chore(heroku): remove unbuilt sprites 2021-12-14 14:28:58 -06:00
SabreCat 67fdb4dcb3 Merge branch 'release' into develop 2021-12-14 14:23:07 -06:00
SabreCat ecc04c6a69 chore(TOS): update terms 2021-12-14 14:22:25 -06:00
dependabot[bot] 21367f418e build(deps): bump @storybook/addon-actions in /website/client (#13695)
Bumps [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/addons/actions) from 6.3.12 to 6.4.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.9/addons/actions)

---
updated-dependencies:
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 16:09:11 -06:00
dependabot[bot] 16508f934b build(deps): bump universal-analytics from 0.4.23 to 0.5.2 (#13697)
Bumps [universal-analytics](https://github.com/peaksandpies/universal-analytics) from 0.4.23 to 0.5.2.
- [Release notes](https://github.com/peaksandpies/universal-analytics/releases)
- [Changelog](https://github.com/peaksandpies/universal-analytics/blob/master/HISTORY.md)
- [Commits](https://github.com/peaksandpies/universal-analytics/commits/0.5.2)

---
updated-dependencies:
- dependency-name: universal-analytics
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 15:55:02 -06:00
dependabot[bot] e387f2f782 build(deps): bump @storybook/addons in /website/client (#13693)
Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.3.12 to 6.4.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.9/lib/addons)

---
updated-dependencies:
- dependency-name: "@storybook/addons"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 15:54:45 -06:00
dependabot[bot] 429810f50f build(deps): bump @babel/preset-env from 7.16.0 to 7.16.4 (#13640)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.0 to 7.16.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.4/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 15:52:43 -06:00
dependabot[bot] fcd5c38460 build(deps): bump @google-cloud/trace-agent from 5.1.5 to 5.1.6 (#13638)
Bumps [@google-cloud/trace-agent](https://github.com/googleapis/cloud-trace-nodejs) from 5.1.5 to 5.1.6.
- [Release notes](https://github.com/googleapis/cloud-trace-nodejs/releases)
- [Changelog](https://github.com/googleapis/cloud-trace-nodejs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/cloud-trace-nodejs/compare/v5.1.5...v5.1.6)

---
updated-dependencies:
- dependency-name: "@google-cloud/trace-agent"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 15:52:31 -06:00
Natalie L 042ae6e228 Merge pull request #13694 from HabitRPG/dependabot/npm_and_yarn/website/client/core-js-3.19.3
build(deps): bump core-js from 3.19.2 to 3.19.3 in /website/client
2021-12-13 16:33:15 -05:00
Natalie L a21e914f86 Merge pull request #13692 from HabitRPG/dependabot/npm_and_yarn/website/client/storybook/addon-links-6.4.9
build(deps): bump @storybook/addon-links from 6.3.12 to 6.4.9 in /website/client
2021-12-13 16:32:28 -05:00
Natalie L d46e7f8aff Merge pull request #13691 from HabitRPG/dependabot/npm_and_yarn/stripe-8.193.0
build(deps): bump stripe from 8.191.0 to 8.193.0
2021-12-13 16:29:52 -05:00
Natalie L 6e9cf80079 Merge pull request #13686 from HabitRPG/dependabot/npm_and_yarn/express-basic-auth-1.2.1
build(deps): bump express-basic-auth from 1.2.0 to 1.2.1
2021-12-13 16:14:39 -05:00
Natalie L 60843e6afa Merge pull request #13684 from HabitRPG/dependabot/npm_and_yarn/body-parser-1.19.1
build(deps): bump body-parser from 1.19.0 to 1.19.1
2021-12-13 16:14:10 -05:00
dependabot[bot] 9c281b8010 build(deps): bump core-js from 3.19.2 to 3.19.3 in /website/client
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.2 to 3.19.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.19.2...v3.19.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:11:38 +00:00
dependabot[bot] 775730ff02 build(deps): bump @storybook/addon-links in /website/client
Bumps [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/addons/links) from 6.3.12 to 6.4.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v6.4.9/addons/links)

---
updated-dependencies:
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:07:21 +00:00
dependabot[bot] 409f3bfa27 build(deps): bump stripe from 8.191.0 to 8.193.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 8.191.0 to 8.193.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v8.191.0...v8.193.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:06:24 +00:00
dependabot[bot] c425f85378 build(deps): bump express-basic-auth from 1.2.0 to 1.2.1
Bumps [express-basic-auth](https://github.com/LionC/express-basic-auth) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/LionC/express-basic-auth/releases)
- [Commits](https://github.com/LionC/express-basic-auth/compare/v1.2.0...v1.2.1)

---
updated-dependencies:
- dependency-name: express-basic-auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:03:12 +00:00
dependabot[bot] 59fa547e20 build(deps): bump body-parser from 1.19.0 to 1.19.1
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.19.0 to 1.19.1.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.19.0...1.19.1)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 05:02:38 +00:00
SabreCat 389768d9e3 4.214.4 2021-12-10 14:11:38 -06:00
SabreCat 938cda1fcf fix(privacy): fussy wording 2021-12-10 14:11:27 -06:00
SabreCat 495b34124d 4.214.3 2021-12-10 09:58:48 -06:00
Craig Inches af9a12bb20 Alter naming to match expected elsewhere (#13682) 2021-12-10 09:58:36 -06:00
Craig Inches 9e1e4248a5 Alter naming to match expected elsewhere (#13682) 2021-12-10 09:43:34 -06:00
SabreCat 8b4074015f 4.214.2 2021-12-09 16:45:03 -06:00
SabreCat 94d666e8b9 Merge branch 'develop' into release 2021-12-09 16:44:55 -06:00
SabreCat 1e8222af15 Revert "Revert "chore(legal): updates to Privacy Policy""
This reverts commit d995a7484b.
2021-12-09 16:43:31 -06:00
SabreCat de89032491 fix(privacy): line edits 2021-12-09 16:25:01 -06:00
9849 changed files with 33380 additions and 31105 deletions
+3
View File
@@ -0,0 +1,3 @@
[submodule "habitica-images"]
path = habitica-images
url = https://github.com/HabitRPG/habitica-images
+3
View File
@@ -0,0 +1,3 @@
# Files not included in deployments to Heroku, to save on file size.
/habitica-images
+2 -38
View File
@@ -4,7 +4,6 @@ import spritesmith from 'gulp.spritesmith';
import clean from 'rimraf';
import sizeOf from 'image-size';
import mergeStream from 'merge-stream';
import { basename } from 'path';
import { sync } from 'glob';
import { each } from 'lodash';
import vinylBuffer from 'vinyl-buffer';
@@ -118,47 +117,12 @@ function createSpritesStream (name, src) {
}
gulp.task('sprites:main', () => {
const mainSrc = sync('website/raw_sprites/spritesmith/**/*.png');
const mainSrc = sync('habitica-images/**/*.png');
return createSpritesStream('main', mainSrc);
});
gulp.task('sprites:largeSprites', () => {
const largeSrc = sync('website/raw_sprites/spritesmith_large/**/*.png');
return createSpritesStream('largeSprites', largeSrc);
});
gulp.task('sprites:clean', done => {
clean(`${IMG_DIST_PATH}spritesmith*,${CSS_DIST_PATH}spritesmith*}`, done);
});
gulp.task('sprites:checkCompiledDimensions', gulp.series('sprites:main', 'sprites:largeSprites', done => {
console.log('Verifiying that images do not exceed max dimensions'); // eslint-disable-line no-console
let numberOfSheetsThatAreTooBig = 0;
const distSpritesheets = sync(`${IMG_DIST_PATH}*.png`);
each(distSpritesheets, img => {
const spriteSize = calculateImgDimensions(img);
if (spriteSize > MAX_SPRITESHEET_SIZE) {
numberOfSheetsThatAreTooBig += 1;
const name = basename(img, '.png');
console.error(`WARNING: ${name} might be too big - ${spriteSize} > ${MAX_SPRITESHEET_SIZE}`); // eslint-disable-line no-console
}
});
if (numberOfSheetsThatAreTooBig > 0) {
// https://github.com/HabitRPG/habitica/pull/6683#issuecomment-185462180
console.error( // eslint-disable-line no-console
`${numberOfSheetsThatAreTooBig} sheets might too big for mobile Safari to be able to handle
them, but there is a margin of error in these calculations so it is probably okay. Mention
this to an admin so they can test a staging site on mobile Safari after your PR is merged.`,
);
} else {
console.log('All images are within the correct dimensions'); // eslint-disable-line no-console
}
done();
}));
gulp.task('sprites:compile', gulp.series('sprites:clean', 'sprites:checkCompiledDimensions', done => done()));
gulp.task('sprites:compile', gulp.series('sprites:clean', 'sprites:main', done => done()));
+1
Submodule habitica-images added at 704d81edf8
+135
View File
@@ -0,0 +1,135 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20211230_nye';
import { model as User } from '../../../website/server/models/user';
import { v4 as uuid } from 'uuid';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const set = { migration: MIGRATION_NAME };
let push;
if (typeof user.items.gear.owned.head_special_nye2020 !== 'undefined') {
set['items.gear.owned.head_special_nye2021'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2021',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2019 !== 'undefined') {
set['items.gear.owned.head_special_nye2020'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2020',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2018 !== 'undefined') {
set['items.gear.owned.head_special_nye2019'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2019',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2017 !== 'undefined') {
set['items.gear.owned.head_special_nye2018'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2018',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2016 !== 'undefined') {
set['items.gear.owned.head_special_nye2017'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2017',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2015 !== 'undefined') {
set['items.gear.owned.head_special_nye2016'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2016',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye2014 !== 'undefined') {
set['items.gear.owned.head_special_nye2015'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2015',
_id: uuid(),
},
];
} else if (typeof user.items.gear.owned.head_special_nye !== 'undefined') {
set['items.gear.owned.head_special_nye2014'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye2014',
_id: uuid(),
},
];
} else {
set['items.gear.owned.head_special_nye'] = false;
push = [
{
type: 'marketGear',
path: 'gear.flat.head_special_nye',
_id: uuid(),
},
];
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$set: set, $push: {pinnedItems: {$each: push}}}).exec();
}
export default async function processUsers () {
let query = {
'auth.timestamps.loggedin': {$gt: new Date('2021-12-01')},
migration: {$ne: MIGRATION_NAME},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};
@@ -0,0 +1,97 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20220131_habit_birthday';
import { v4 as uuid } from 'uuid';
import { model as User } from '../../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const inc = {
'items.food.Cake_Skeleton': 1,
'items.food.Cake_Base': 1,
'items.food.Cake_CottonCandyBlue': 1,
'items.food.Cake_CottonCandyPink': 1,
'items.food.Cake_Shade': 1,
'items.food.Cake_White': 1,
'items.food.Cake_Golden': 1,
'items.food.Cake_Zombie': 1,
'items.food.Cake_Desert': 1,
'items.food.Cake_Red': 1,
'achievements.habitBirthdays': 1,
};
const set = {};
let push;
set.migration = MIGRATION_NAME;
if (typeof user.items.gear.owned.armor_special_birthday2021 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2022'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2022', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2020 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2021'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2021', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2019 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2020'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2020', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2018 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2019'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2019', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2017 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2018'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2018', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2016 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2017'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2017', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday2015 !== 'undefined') {
set['items.gear.owned.armor_special_birthday2016'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2016', _id: uuid()}};
} else if (typeof user.items.gear.owned.armor_special_birthday !== 'undefined') {
set['items.gear.owned.armor_special_birthday2015'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday2015', _id: uuid()}};
} else {
set['items.gear.owned.armor_special_birthday'] = false;
push = {pinnedItems: {type: 'marketGear', path: 'gear.flat.armor_special_birthday', _id: uuid()}};
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({_id: user._id}, {$inc: inc, $set: set, $push: push}).exec();
}
export default async function processUsers () {
let query = {
migration: {$ne: MIGRATION_NAME},
'auth.timestamps.loggedin': {$gt: new Date('2022-01-01')},
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1],
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};
+1167 -1253
View File
File diff suppressed because it is too large Load Diff
+19 -19
View File
@@ -1,25 +1,25 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.214.1",
"version": "4.219.0",
"main": "./website/server/index.js",
"dependencies": {
"@babel/core": "^7.16.0",
"@babel/preset-env": "^7.16.0",
"@babel/register": "^7.16.0",
"@google-cloud/trace-agent": "^5.1.5",
"@babel/core": "^7.16.12",
"@babel/preset-env": "^7.16.11",
"@babel/register": "^7.16.9",
"@google-cloud/trace-agent": "^5.1.6",
"@parse/node-apn": "^5.1.0",
"@slack/webhook": "^6.0.0",
"@slack/webhook": "^6.1.0",
"accepts": "^1.3.5",
"amazon-payments": "^0.2.9",
"amplitude": "^5.2.0",
"apidoc": "^0.50.2",
"apidoc": "^0.50.3",
"apple-auth": "^1.0.7",
"bcrypt": "^5.0.1",
"body-parser": "^1.18.3",
"body-parser": "^1.19.1",
"bootstrap": "^4.6.0",
"compression": "^1.7.4",
"cookie-session": "^1.4.0",
"cookie-session": "^2.0.0",
"coupon-code": "^0.4.5",
"csv-stringify": "^5.6.5",
"cwait": "^1.1.1",
@@ -27,8 +27,8 @@
"eslint": "^6.8.0",
"eslint-config-habitrpg": "^6.2.0",
"eslint-plugin-mocha": "^5.0.0",
"express": "^4.16.3",
"express-basic-auth": "^1.1.5",
"express": "^4.17.2",
"express-basic-auth": "^1.2.1",
"express-validator": "^5.2.0",
"glob": "^7.2.0",
"got": "^11.8.3",
@@ -39,7 +39,7 @@
"gulp.spritesmith": "^6.12.1",
"habitica-markdown": "^3.0.0",
"helmet": "^4.6.0",
"image-size": "^1.0.0",
"image-size": "^1.0.1",
"in-app-purchase": "^1.11.3",
"js2xmlparser": "^4.0.2",
"jsonwebtoken": "^8.5.1",
@@ -67,14 +67,14 @@
"remove-markdown": "^0.3.0",
"rimraf": "^3.0.2",
"short-uuid": "^4.2.0",
"stripe": "^8.191.0",
"superagent": "^6.1.0",
"universal-analytics": "^0.4.23",
"stripe": "^8.201.0",
"superagent": "^7.1.1",
"universal-analytics": "^0.5.3",
"useragent": "^2.1.9",
"uuid": "^8.3.2",
"validator": "^13.7.0",
"vinyl-buffer": "^1.0.1",
"winston": "^3.3.3",
"winston": "^3.5.0",
"winston-loggly-bulk": "^3.2.1",
"xml2js": "^0.4.23"
},
@@ -110,8 +110,8 @@
"apidoc": "gulp apidoc"
},
"devDependencies": {
"axios": "^0.24.0",
"chai": "^4.3.4",
"axios": "^0.25.0",
"chai": "^4.3.6",
"chai-as-promised": "^7.1.1",
"chai-moment": "^0.1.0",
"chalk": "^4.1.2",
@@ -121,7 +121,7 @@
"mocha": "^5.1.1",
"monk": "^7.3.4",
"require-again": "^2.0.0",
"run-rs": "^0.7.5",
"run-rs": "^0.7.6",
"sinon": "^12.0.1",
"sinon-chai": "^3.7.0",
"sinon-stub-promise": "^4.0.0"
+57
View File
@@ -0,0 +1,57 @@
/* eslint-disable global-require */
import nconf from 'nconf';
import { generateUser } from '../../../helpers/api-unit.helper';
import * as emailLib from '../../../../website/server/libs/email';
import { bugReportLogic } from '../../../../website/server/libs/bug-report';
describe('bug-report', () => {
beforeEach(() => {
sandbox.stub(emailLib, 'sendTxn').returns(Promise.resolve());
const nconfGetStub = sandbox.stub(nconf, 'get');
nconfGetStub.withArgs('ADMIN_EMAIL').returns('true');
});
afterEach(() => {
sandbox.restore();
});
it('sends a mail using sendTxn', async () => {
const userId = '2b58daeb-bc50-4a83-b5d3-4ac52c7c0608';
const userMail = 'me@me.com';
const userMessage = 'The power is over 9000, please fix it';
const userAgent = 'The UserAgent with a bunch of weird browser engine levels';
const user = generateUser({
_id: userId,
});
const result = await bugReportLogic(
user, userMail, userMessage, userAgent,
);
expect(emailLib.sendTxn).to.be.called;
expect(result).to.deep.equal({
sendMailResult: undefined,
emailData: {
BROWSER_UA: userAgent,
REPORT_MSG: userMessage,
USER_CLASS: 'warrior',
USER_CONSECUTIVE_MONTHS: 0,
USER_COSTUME: 'false',
USER_CUSTOMER_ID: undefined,
USER_CUSTOM_DAY: 0,
USER_DAILIES_PAUSED: 'false',
USER_EMAIL: userMail,
USER_HOURGLASSES: 0,
USER_ID: userId,
USER_LEVEL: 1,
USER_OFFSET_MONTHS: 0,
USER_PAYMENT_PLATFORM: undefined,
USER_SUBSCRIPTION: undefined,
USER_TIMEZONE_OFFSET: 0,
USER_USERNAME: undefined,
},
});
});
});
+73 -18
View File
@@ -148,9 +148,18 @@ describe('emails', () => {
});
});
describe('sendTxnEmail', () => {
describe('sendTxn', () => {
let sendTxn = null;
beforeEach(() => {
sandbox.stub(got, 'post').returns(defer().promise);
const nconfGetStub = sandbox.stub(nconf, 'get');
nconfGetStub.withArgs('IS_PROD').returns(true);
nconfGetStub.withArgs('BASE_URL').returns('BASE_URL');
const attachEmail = requireAgain(pathToEmailLib);
sendTxn = attachEmail.sendTxn;
});
afterEach(() => {
@@ -158,16 +167,14 @@ describe('emails', () => {
});
it('can send a txn email to one recipient', () => {
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(true);
const attachEmail = requireAgain(pathToEmailLib);
const sendTxnEmail = attachEmail.sendTxn;
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
sendTxnEmail(mailingInfo, emailType);
sendTxn(mailingInfo, emailType);
expect(got.post).to.be.called;
expect(got.post).to.be.calledWith('undefined/job', sinon.match({
json: {
data: {
@@ -179,27 +186,77 @@ describe('emails', () => {
});
it('does not send email if address is missing', () => {
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(true);
const attachEmail = requireAgain(pathToEmailLib);
const sendTxnEmail = attachEmail.sendTxn;
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
// email: 'my@email',
};
sendTxnEmail(mailingInfo, emailType);
sendTxn(mailingInfo, emailType);
expect(got.post).not.to.be.called;
});
it('throws error when mail target is only a string', () => {
const emailType = 'an email type';
const mailingInfo = 'my email';
expect(sendTxn(mailingInfo, emailType)).to.throw;
});
it('throws error when mail target has no _id or email', () => {
const emailType = 'an email type';
const mailingInfo = {
};
expect(sendTxn(mailingInfo, emailType)).to.throw;
});
it('throws error when variables not an array', () => {
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
const variables = {};
expect(sendTxn(mailingInfo, emailType, variables)).to.throw;
});
it('throws error when variables array not contain name/content', () => {
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
const variables = [
{
},
];
expect(sendTxn(mailingInfo, emailType, variables)).to.throw;
});
it('throws no error when variables array contain name but no content', () => {
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
const variables = [
{
name: 'MY_VAR',
},
];
expect(sendTxn(mailingInfo, emailType, variables)).to.not.throw;
});
it('uses getUserInfo in case of user data', () => {
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(true);
const attachEmail = requireAgain(pathToEmailLib);
const sendTxnEmail = attachEmail.sendTxn;
const emailType = 'an email type';
const mailingInfo = getUser();
sendTxnEmail(mailingInfo, emailType);
sendTxn(mailingInfo, emailType);
expect(got.post).to.be.called;
expect(got.post).to.be.calledWith('undefined/job', sinon.match({
json: {
data: {
@@ -211,17 +268,15 @@ describe('emails', () => {
});
it('sends email with some default variables', () => {
sandbox.stub(nconf, 'get').withArgs('IS_PROD').returns(true);
const attachEmail = requireAgain(pathToEmailLib);
const sendTxnEmail = attachEmail.sendTxn;
const emailType = 'an email type';
const mailingInfo = {
name: 'my name',
email: 'my@email',
};
const variables = [1, 2, 3];
const variables = [];
sendTxnEmail(mailingInfo, emailType, variables);
sendTxn(mailingInfo, emailType, variables);
expect(got.post).to.be.called;
expect(got.post).to.be.calledWith('undefined/job', sinon.match({
json: {
data: {
+5 -5
View File
@@ -247,11 +247,11 @@ describe('payments/index', () => {
context('No Active Promotion', () => {
beforeEach(() => {
sinon.stub(worldState, 'getCurrentEvent').returns(null);
sinon.stub(worldState, 'getCurrentEventList').returns([]);
});
afterEach(() => {
worldState.getCurrentEvent.restore();
worldState.getCurrentEventList.restore();
});
it('sends a private message about the gift', async () => {
@@ -268,14 +268,14 @@ describe('payments/index', () => {
context('Active Promotion', () => {
beforeEach(() => {
sinon.stub(worldState, 'getCurrentEvent').returns({
sinon.stub(worldState, 'getCurrentEventList').returns([{
...common.content.events.winter2021Promo,
event: 'winter2021',
});
}]);
});
afterEach(() => {
worldState.getCurrentEvent.restore();
worldState.getCurrentEventList.restore();
});
it('creates a gift subscription for purchaser and recipient if none exist', async () => {
@@ -74,7 +74,6 @@ describe('PUT /challenges/:challengeId', () => {
expect(res.memberCount).to.equal(2);
expect(res.tasksOrder).not.to.equal('new order');
expect(res.official).to.equal(false);
expect(res.shortName).not.to.equal('new short name');
expect(res.leader).to.eql({
_id: user._id,
+49
View File
@@ -0,0 +1,49 @@
import {
generateUser,
} from '../../helpers/api-integration/v4';
describe('POST /bug-report', () => {
let user;
beforeEach(async () => {
user = await generateUser();
});
it('returns an error when message is not added', async () => {
await expect(user.post('/bug-report', {
message: '',
}))
.to.eventually.be.rejected.and.to.eql({
code: 400,
error: 'BadRequest',
// seems it is not possible to get the real error message
message: 'Invalid request parameters.',
});
});
it('returns an error when email is not added', async () => {
await expect(user.post('/bug-report', {
message: 'message',
email: '',
}))
.to.eventually.be.rejected.and.to.eql({
code: 400,
error: 'BadRequest',
// seems it is not possible to get the real error message
message: 'Invalid request parameters.',
});
});
it('returns an error when email is not valid', async () => {
await expect(user.post('/bug-report', {
message: 'message',
email: 'notamail',
}))
.to.eventually.be.rejected.and.to.eql({
code: 400,
error: 'BadRequest',
// seems it is not possible to get the real error message
message: 'Invalid request parameters.',
});
});
});
+12
View File
@@ -40,6 +40,18 @@ store.state.user.data = {
preferences: {
},
auth: {
local: {
// email: 'example@example.com',
},
facebook: {
emails: [
{
value: 'test@test.de',
},
],
},
},
};
Vue.prototype.$store = store;
+2168 -1807
View File
File diff suppressed because it is too large Load Diff
+9 -9
View File
@@ -13,26 +13,26 @@
"storybook:serve": "vue-cli-service storybook:serve -p 6006 -c config/storybook"
},
"dependencies": {
"@storybook/addons": "6.3.12",
"@storybook/addon-actions": "6.3.12",
"@storybook/addons": "6.4.17",
"@storybook/addon-actions": "6.4.17",
"@storybook/addon-knobs": "6.2.9",
"@storybook/addon-links": "6.3.12",
"@storybook/addon-links": "6.4.17",
"@storybook/addon-notes": "5.3.21",
"@storybook/vue": "6.3.12",
"@storybook/vue": "6.3.13",
"@vue/cli-plugin-babel": "^4.5.15",
"@vue/cli-plugin-eslint": "^4.5.15",
"@vue/cli-plugin-router": "^4.5.15",
"@vue/cli-plugin-unit-mocha": "^4.5.15",
"@vue/cli-service": "^4.5.15",
"@vue/test-utils": "1.0.0-beta.29",
"amplitude-js": "^8.13.1",
"axios": "^0.24.0",
"amplitude-js": "^8.16.1",
"axios": "^0.25.0",
"axios-progress-bar": "^1.2.0",
"babel-eslint": "^10.1.0",
"bootstrap": "^4.6.0",
"bootstrap-vue": "^2.21.2",
"chai": "^4.3.4",
"core-js": "^3.19.2",
"chai": "^4.3.6",
"core-js": "^3.20.3",
"eslint": "^6.8.0",
"eslint-config-habitrpg": "^6.2.0",
"eslint-plugin-mocha": "^5.3.0",
@@ -64,6 +64,6 @@
"webpack": "^4.46.0"
},
"devDependencies": {
"@babel/plugin-proposal-optional-chaining": "^7.16.0"
"@babel/plugin-proposal-optional-chaining": "^7.16.7"
}
}
+8
View File
@@ -33,6 +33,8 @@
<payments-success-modal />
<sub-cancel-modal-confirm v-if="isUserLoaded" />
<sub-canceled-modal v-if="isUserLoaded" />
<bug-report-modal v-if="isUserLoaded" />
<bug-report-success-modal v-if="isUserLoaded" />
<snackbars />
<router-view v-if="!isUserLoggedIn || isStaticPage" />
<template v-else>
@@ -177,6 +179,10 @@ import {
removeLocalSetting,
} from '@/libs/userlocalManager';
const bugReportModal = () => import(/* webpackChunkName: "bug-report-modal" */'@/components/bugReportModal');
const bugReportSuccessModal = () => import(/* webpackChunkName: "bug-report-success-modal" */'@/components/bugReportSuccessModal');
const COMMUNITY_MANAGER_EMAIL = process.env.EMAILS_COMMUNITY_MANAGER_EMAIL; // eslint-disable-line
export default {
@@ -196,6 +202,8 @@ export default {
paymentsSuccessModal,
subCancelModalConfirm,
subCanceledModal,
bugReportModal,
bugReportSuccessModal,
},
mixins: [notifications, spellsMixin],
data () {
@@ -1,48 +1,48 @@
.achievement-alien {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1659px -1480px;
background-position: -1679px -1480px;
width: 24px;
height: 26px;
}
.achievement-alien2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -583px -1549px;
background-position: -632px -1549px;
width: 48px;
height: 52px;
}
.achievement-allThatGlitters2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -715px -1480px;
background-position: -784px -1480px;
width: 64px;
height: 56px;
}
.achievement-allYourBase2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -780px -1480px;
background-position: -849px -1480px;
width: 64px;
height: 56px;
}
.achievement-alpha2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -632px -1549px;
background-position: -681px -1549px;
width: 48px;
height: 52px;
}
.achievement-aridAuthority2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -845px -1480px;
background-position: -914px -1480px;
width: 64px;
height: 56px;
}
.achievement-armor2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -681px -1549px;
background-position: -730px -1549px;
width: 48px;
height: 52px;
}
.achievement-backToBasics2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1365px -1480px;
background-position: -1434px -1480px;
width: 48px;
height: 56px;
}
@@ -54,127 +54,127 @@
}
.achievement-bewilder2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -730px -1549px;
background-position: -779px -1549px;
width: 48px;
height: 52px;
}
.achievement-birthday2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -779px -1549px;
background-position: -828px -1549px;
width: 48px;
height: 52px;
}
.achievement-boneCollector2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1414px -1480px;
background-position: -1483px -1480px;
width: 48px;
height: 56px;
}
.achievement-boot2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -828px -1549px;
background-position: -877px -1549px;
width: 48px;
height: 52px;
}
.achievement-bow2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -877px -1549px;
background-position: -926px -1549px;
width: 48px;
height: 52px;
}
.achievement-bugBonanza2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -349px -1480px;
background-position: -418px -1480px;
width: 60px;
height: 64px;
}
.achievement-burnout2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -926px -1549px;
background-position: -975px -1549px;
width: 48px;
height: 52px;
}
.achievement-cactus2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -975px -1549px;
background-position: -1024px -1549px;
width: 48px;
height: 52px;
}
.achievement-cake2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1024px -1549px;
background-position: -1073px -1549px;
width: 48px;
height: 52px;
}
.achievement-cave2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1073px -1549px;
background-position: -1122px -1549px;
width: 48px;
height: 52px;
}
.achievement-challenge2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1122px -1549px;
background-position: -1171px -1549px;
width: 48px;
height: 52px;
}
.achievement-comment2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1171px -1549px;
background-position: -1220px -1549px;
width: 48px;
height: 52px;
}
.achievement-completedTask2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1463px -1480px;
background-position: -1532px -1480px;
width: 48px;
height: 56px;
}
.achievement-congrats2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1220px -1549px;
background-position: -1269px -1549px;
width: 48px;
height: 52px;
}
.achievement-costumeContest2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1269px -1549px;
background-position: -1318px -1549px;
width: 48px;
height: 52px;
}
.achievement-createdTask2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1512px -1480px;
background-position: -1581px -1480px;
width: 48px;
height: 56px;
}
.achievement-dilatory2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1318px -1549px;
background-position: -1367px -1549px;
width: 48px;
height: 52px;
}
.achievement-domesticated2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -410px -1480px;
background-position: -479px -1480px;
width: 60px;
height: 64px;
}
.achievement-dustDevil2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1561px -1480px;
background-position: -1630px -1480px;
width: 48px;
height: 56px;
}
.achievement-dysheartener2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1367px -1549px;
background-position: -1416px -1549px;
width: 48px;
height: 52px;
}
.achievement-fedPet2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1610px -1480px;
background-position: -142px -1549px;
width: 48px;
height: 56px;
}
@@ -186,79 +186,79 @@
}
.achievement-friends2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1416px -1549px;
background-position: -1465px -1549px;
width: 48px;
height: 52px;
}
.achievement-getwell2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1465px -1549px;
background-position: -1514px -1549px;
width: 48px;
height: 52px;
}
.achievement-goodAsGold2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -142px -1549px;
background-position: -191px -1549px;
width: 48px;
height: 56px;
}
.achievement-goodluck2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1514px -1549px;
background-position: -1563px -1549px;
width: 48px;
height: 52px;
}
.achievement-greeting2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1563px -1549px;
background-position: -1612px -1549px;
width: 48px;
height: 52px;
}
.achievement-guild2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1612px -1549px;
background-position: 0px -1628px;
width: 48px;
height: 52px;
}
.achievement-habitBirthday2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -1628px;
background-position: -49px -1628px;
width: 48px;
height: 52px;
}
.achievement-habiticaDay2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -49px -1628px;
background-position: -98px -1628px;
width: 48px;
height: 52px;
}
.achievement-hatchedPet2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -191px -1549px;
background-position: -240px -1549px;
width: 48px;
height: 56px;
}
.achievement-heart2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -98px -1628px;
background-position: -147px -1628px;
width: 48px;
height: 52px;
}
.achievement-justAddWater2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -471px -1480px;
background-position: -540px -1480px;
width: 60px;
height: 64px;
}
.achievement-karaoke-2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -147px -1628px;
background-position: -196px -1628px;
width: 48px;
height: 52px;
}
.achievement-karaoke {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1659px -1507px;
background-position: -1679px -1507px;
width: 24px;
height: 26px;
}
@@ -270,274 +270,280 @@
}
.achievement-legendaryBestiary2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -532px -1480px;
background-position: -601px -1480px;
width: 60px;
height: 64px;
}
.achievement-lostMasterclasser2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -196px -1628px;
background-position: -245px -1628px;
width: 48px;
height: 52px;
}
.achievement-mindOverMatter2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -593px -1480px;
background-position: -662px -1480px;
width: 60px;
height: 64px;
}
.achievement-monsterMagus2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -240px -1549px;
background-position: -289px -1549px;
width: 48px;
height: 56px;
}
.achievement-ninja2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -245px -1628px;
background-position: -294px -1628px;
width: 48px;
height: 52px;
}
.achievement-npc2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -294px -1628px;
background-position: -343px -1628px;
width: 48px;
height: 52px;
}
.achievement-nye2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -343px -1628px;
background-position: -392px -1628px;
width: 48px;
height: 52px;
}
.achievement-partyOn2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -392px -1628px;
background-position: -441px -1628px;
width: 48px;
height: 52px;
}
.achievement-partyUp2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -441px -1628px;
background-position: -490px -1628px;
width: 48px;
height: 52px;
}
.achievement-pearlyPro2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -910px -1480px;
background-position: -979px -1480px;
width: 64px;
height: 56px;
}
.achievement-perfect2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -490px -1628px;
background-position: -539px -1628px;
width: 48px;
height: 52px;
}
.achievement-primedForPainting2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -289px -1549px;
background-position: -338px -1549px;
width: 48px;
height: 56px;
}
.achievement-purchasedEquipment2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -338px -1549px;
background-position: -387px -1549px;
width: 48px;
height: 56px;
}
.achievement-rat2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -539px -1628px;
background-position: -588px -1628px;
width: 48px;
height: 52px;
}
.achievement-redLetterDay2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -975px -1480px;
background-position: -1044px -1480px;
width: 64px;
height: 56px;
}
.achievement-rosyOutlook2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1040px -1480px;
background-position: -1109px -1480px;
width: 64px;
height: 56px;
}
.achievement-royally-loyal2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -588px -1628px;
background-position: -637px -1628px;
width: 48px;
height: 52px;
}
.achievement-seafoam2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -637px -1628px;
background-position: -686px -1628px;
width: 48px;
height: 52px;
}
.achievement-seasonalSpecialist2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -654px -1480px;
background-position: -723px -1480px;
width: 60px;
height: 64px;
}
.achievement-seeingRed2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -387px -1549px;
background-position: -436px -1549px;
width: 48px;
height: 56px;
}
.achievement-shadeOfItAll2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1105px -1480px;
background-position: -1174px -1480px;
width: 64px;
height: 56px;
}
.achievement-shadyCustomer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -436px -1549px;
background-position: -485px -1549px;
width: 48px;
height: 56px;
}
.achievement-shield2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -686px -1628px;
background-position: -735px -1628px;
width: 48px;
height: 52px;
}
.achievement-shinySeed2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -735px -1628px;
background-position: -784px -1628px;
width: 48px;
height: 52px;
}
.achievement-skeletonCrew2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1170px -1480px;
background-position: -1239px -1480px;
width: 64px;
height: 56px;
}
.achievement-snowball2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -784px -1628px;
background-position: -833px -1628px;
width: 48px;
height: 52px;
}
.achievement-spookySparkles2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -833px -1628px;
background-position: -882px -1628px;
width: 48px;
height: 52px;
}
.achievement-stoikalm2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -882px -1628px;
background-position: -931px -1628px;
width: 48px;
height: 52px;
}
.achievement-sun2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -931px -1628px;
background-position: -980px -1628px;
width: 48px;
height: 52px;
}
.achievement-sword2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -980px -1628px;
background-position: -1029px -1628px;
width: 48px;
height: 52px;
}
.achievement-thankyou2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1029px -1628px;
background-position: -1078px -1628px;
width: 48px;
height: 52px;
}
.achievement-thermometer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1078px -1628px;
background-position: -1127px -1628px;
width: 48px;
height: 52px;
}
.achievement-tickledPink2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -485px -1549px;
background-position: -534px -1549px;
width: 48px;
height: 56px;
}
.achievement-tree2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1127px -1628px;
background-position: -1176px -1628px;
width: 48px;
height: 52px;
}
.achievement-triadbingo2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1176px -1628px;
background-position: -1225px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-healer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1225px -1628px;
background-position: -1274px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-mage2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1274px -1628px;
background-position: -1323px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-rogue2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1323px -1628px;
background-position: -1372px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-warrior2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1372px -1628px;
background-position: -1421px -1628px;
width: 48px;
height: 52px;
}
.achievement-undeadUndertaker2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1235px -1480px;
background-position: -1304px -1480px;
width: 64px;
height: 56px;
}
.achievement-unearned2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1421px -1628px;
background-position: -1470px -1628px;
width: 48px;
height: 52px;
}
.achievement-valentine2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1470px -1628px;
background-position: -1519px -1628px;
width: 48px;
height: 52px;
}
.achievement-violetsAreBlue2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -534px -1549px;
background-position: -583px -1549px;
width: 48px;
height: 56px;
}
.achievement-wildBlueYonder2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1300px -1480px;
background-position: -1369px -1480px;
width: 64px;
height: 56px;
}
.achievement-wolf2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1519px -1628px;
background-position: -1568px -1628px;
width: 48px;
height: 52px;
}
.achievement-zodiac2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -349px -1480px;
width: 68px;
height: 68px;
}
.background_afternoon_picnic {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: 0px 0px;
@@ -154,661 +154,661 @@
width: 141px;
height: 147px;
}
.background_island_waterfalls {
.background_iridescent_clouds {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -284px -592px;
width: 141px;
height: 147px;
}
.background_jungle_canopy {
.background_island_waterfalls {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -426px -592px;
width: 141px;
height: 147px;
}
.background_kelp_forest {
.background_jungle_canopy {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -568px -592px;
width: 141px;
height: 147px;
}
.background_lake_with_floating_lanterns {
.background_kelp_forest {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -710px -592px;
width: 141px;
height: 147px;
}
.background_lighthouse_shore {
.background_lake_with_floating_lanterns {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px 0px;
width: 141px;
height: 147px;
}
.background_lilypad {
.background_lighthouse_shore {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -148px;
width: 141px;
height: 147px;
}
.background_magic_beanstalk {
.background_lilypad {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -296px;
width: 141px;
height: 147px;
}
.background_magical_candles {
.background_magic_beanstalk {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -444px;
width: 141px;
height: 147px;
}
.background_magical_museum {
.background_magical_candles {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -592px;
width: 141px;
height: 147px;
}
.background_marble_temple {
.background_magical_museum {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: 0px -740px;
width: 141px;
height: 147px;
}
.background_market {
.background_marble_temple {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -142px -740px;
width: 141px;
height: 147px;
}
.background_meandering_cave {
.background_market {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -284px -740px;
width: 141px;
height: 147px;
}
.background_medieval_kitchen {
.background_meandering_cave {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -426px -740px;
width: 141px;
height: 147px;
}
.background_midnight_castle {
.background_medieval_kitchen {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -568px -740px;
width: 141px;
height: 147px;
}
.background_midnight_clouds {
.background_meteor_shower {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -710px -740px;
width: 141px;
height: 147px;
}
.background_midnight_lake {
.background_midnight_castle {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -740px;
width: 141px;
height: 147px;
}
.background_mist_shrouded_mountain {
.background_midnight_clouds {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px 0px;
width: 141px;
height: 147px;
}
.background_mistiflying_circus {
.background_midnight_lake {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -148px;
width: 141px;
height: 147px;
}
.background_monster_makers_workshop {
.background_mist_shrouded_mountain {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -296px;
width: 141px;
height: 147px;
}
.background_mountain_lake {
.background_mistiflying_circus {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -444px;
width: 141px;
height: 147px;
}
.background_mountain_pyramid {
.background_monster_makers_workshop {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -592px;
width: 141px;
height: 147px;
}
.background_mystical_observatory {
.background_mountain_lake {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -740px;
width: 141px;
height: 147px;
}
.background_night_dunes {
.background_mountain_pyramid {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: 0px -888px;
width: 141px;
height: 147px;
}
.background_ocean_sunrise {
.background_mystical_observatory {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -142px -888px;
width: 141px;
height: 147px;
}
.background_old_fashioned_bakery {
.background_night_dunes {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -284px -888px;
width: 141px;
height: 147px;
}
.background_on_tree_branch {
.background_ocean_sunrise {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -426px -888px;
width: 141px;
height: 147px;
}
.background_open_waters {
.background_old_fashioned_bakery {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -568px -888px;
width: 141px;
height: 147px;
}
.background_orchard {
.background_on_tree_branch {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -710px -888px;
width: 141px;
height: 147px;
}
.background_pagodas {
.background_open_waters {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -888px;
width: 141px;
height: 147px;
}
.background_park_with_statue {
.background_orange_grove {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -888px;
width: 141px;
height: 147px;
}
.background_pirate_flag {
.background_orchard {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px 0px;
width: 141px;
height: 147px;
}
.background_pixelists_workshop {
.background_pagodas {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -148px;
width: 141px;
height: 147px;
}
.background_potion_shop {
.background_palm_tree_with_fairy_lights {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -296px;
width: 141px;
height: 147px;
}
.background_productivity_plaza {
.background_park_with_statue {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -444px;
width: 141px;
height: 147px;
}
.background_pumpkin_carriage {
.background_pirate_flag {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -592px;
width: 141px;
height: 147px;
}
.background_pumpkin_patch {
.background_pixelists_workshop {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -740px;
width: 141px;
height: 147px;
}
.background_purple {
.background_potion_shop {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -888px;
width: 141px;
height: 147px;
}
.background_pyramids {
.background_productivity_plaza {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: 0px -1036px;
width: 141px;
height: 147px;
}
.background_raging_river {
.background_pumpkin_carriage {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -142px -1036px;
width: 141px;
height: 147px;
}
.background_rainbow_meadow {
.background_pumpkin_patch {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -284px -1036px;
width: 141px;
height: 147px;
}
.background_rainbows_end {
.background_purple {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -426px -1036px;
width: 141px;
height: 147px;
}
.background_rainforest {
.background_pyramids {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -568px -1036px;
width: 141px;
height: 147px;
}
.background_rainy_barnyard {
.background_raging_river {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -710px -1036px;
width: 141px;
height: 147px;
}
.background_rainy_city {
.background_rainbow_meadow {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -1036px;
width: 141px;
height: 147px;
}
.background_red {
.background_rainbows_end {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -1036px;
width: 141px;
height: 147px;
}
.background_relaxation_river {
.background_rainforest {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -1036px;
width: 141px;
height: 147px;
}
.background_resting_in_the_inn {
.background_rainy_barnyard {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px 0px;
width: 141px;
height: 147px;
}
.background_river_of_lava {
.background_rainy_city {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -148px;
width: 141px;
height: 147px;
}
.background_rolling_hills {
.background_red {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -296px;
width: 141px;
height: 147px;
}
.background_rope_bridge {
.background_relaxation_river {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -444px;
width: 141px;
height: 147px;
}
.background_rose_garden {
.background_resting_in_the_inn {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -592px;
width: 141px;
height: 147px;
}
.background_rowboat {
.background_river_of_lava {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -740px;
width: 141px;
height: 147px;
}
.background_salt_lake {
.background_rolling_hills {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -888px;
width: 141px;
height: 147px;
}
.background_sandcastle {
.background_rope_bridge {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -1036px;
width: 141px;
height: 147px;
}
.background_school_of_fish {
.background_rose_garden {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: 0px -1184px;
width: 141px;
height: 147px;
}
.background_scribes_workshop {
.background_rowboat {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -142px -1184px;
width: 141px;
height: 147px;
}
.background_seafarer_ship {
.background_salt_lake {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -284px -1184px;
width: 141px;
height: 147px;
}
.background_seaside_cliffs {
.background_sandcastle {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -426px -1184px;
width: 141px;
height: 147px;
}
.background_shimmering_ice_prism {
.background_school_of_fish {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -568px -1184px;
width: 141px;
height: 147px;
}
.background_shimmery_bubbles {
.background_scribes_workshop {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -710px -1184px;
width: 141px;
height: 147px;
}
.background_slimy_swamp {
.background_seafarer_ship {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -1184px;
width: 141px;
height: 147px;
}
.background_snowglobe {
.background_seaside_cliffs {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -1184px;
width: 141px;
height: 147px;
}
.background_snowman_army {
.background_shimmering_ice_prism {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -1184px;
width: 141px;
height: 147px;
}
.background_snowy_day_fireplace {
.background_shimmery_bubbles {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -1184px;
width: 141px;
height: 147px;
}
.background_snowy_pines {
.background_slimy_swamp {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px 0px;
width: 141px;
height: 147px;
}
.background_snowy_sunrise {
.background_snowglobe {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -148px;
width: 141px;
height: 147px;
}
.background_south_pole {
.background_snowman_army {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -296px;
width: 141px;
height: 147px;
}
.background_sparkling_snowflake {
.background_snowy_day_fireplace {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -444px;
width: 141px;
height: 147px;
}
.background_spider_web {
.background_snowy_farm {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -592px;
width: 141px;
height: 147px;
}
.background_spiral_staircase {
.background_snowy_pines {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -740px;
width: 141px;
height: 147px;
}
.background_splash_in_a_puddle {
.background_snowy_sunrise {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -888px;
width: 141px;
height: 147px;
}
.background_spooky_hotel {
.background_south_pole {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -1036px;
width: 141px;
height: 147px;
}
.background_spooky_scarecrow_field {
.background_sparkling_snowflake {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -1184px;
width: 141px;
height: 147px;
}
.background_spring_rain {
.background_spider_web {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: 0px -1332px;
width: 141px;
height: 147px;
}
.background_spring_thaw {
.background_spiral_staircase {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -142px -1332px;
width: 141px;
height: 147px;
}
.background_stable {
.background_splash_in_a_puddle {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -284px -1332px;
width: 141px;
height: 147px;
}
.background_stained_glass {
.background_spooky_hotel {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -426px -1332px;
width: 141px;
height: 147px;
}
.background_starry_skies {
.background_spooky_scarecrow_field {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -568px -1332px;
width: 141px;
height: 147px;
}
.background_starry_winter_night {
.background_spring_rain {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -710px -1332px;
width: 141px;
height: 147px;
}
.background_stoikalm_volcanoes {
.background_spring_thaw {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -1332px;
width: 141px;
height: 147px;
}
.background_stone_circle {
.background_stable {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -1332px;
width: 141px;
height: 147px;
}
.background_stone_tower {
.background_stained_glass {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -1332px;
width: 141px;
height: 147px;
}
.background_stormy_rooftops {
.background_starry_skies {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -1332px;
width: 141px;
height: 147px;
}
.background_stormy_ship {
.background_starry_winter_night {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -1332px;
width: 141px;
height: 147px;
}
.background_strange_sewers {
.background_stoikalm_volcanoes {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px 0px;
width: 141px;
height: 147px;
}
.background_strawberry_patch {
.background_stone_circle {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -148px;
width: 141px;
height: 147px;
}
.background_succulent_garden {
.background_stone_tower {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -296px;
width: 141px;
height: 147px;
}
.background_summer_fireworks {
.background_stormy_rooftops {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -444px;
width: 141px;
height: 147px;
}
.background_sunken_ship {
.background_stormy_ship {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -592px;
width: 141px;
height: 147px;
}
.background_sunset_meadow {
.background_strange_sewers {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -740px;
width: 141px;
height: 147px;
}
.background_sunset_oasis {
.background_strawberry_patch {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -888px;
width: 141px;
height: 147px;
}
.background_sunset_savannah {
.background_succulent_garden {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -1036px;
width: 141px;
height: 147px;
}
.background_swarming_darkness {
.background_summer_fireworks {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -1184px;
width: 141px;
height: 147px;
}
.background_swimming_among_jellyfish {
.background_sunken_ship {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -1332px;
width: 141px;
height: 147px;
}
.background_tar_pits {
.background_sunset_meadow {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: 0px -1480px;
width: 141px;
height: 147px;
}
.background_tavern {
.background_sunset_oasis {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -142px -1480px;
width: 141px;
height: 147px;
}
.background_tea_party {
.background_sunset_savannah {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -284px -1480px;
width: 141px;
height: 147px;
}
.background_terraced_rice_field {
.background_swarming_darkness {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -426px -1480px;
width: 141px;
height: 147px;
}
.background_throne_room {
.background_swimming_among_jellyfish {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -568px -1480px;
width: 141px;
height: 147px;
}
.background_thunderstorm {
.background_tar_pits {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -710px -1480px;
width: 141px;
height: 147px;
}
.background_tide_pool {
.background_tavern {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -852px -1480px;
width: 141px;
height: 147px;
}
.background_tornado {
.background_tea_party {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -994px -1480px;
width: 141px;
height: 147px;
}
.background_toymakers_workshop {
.background_terraced_rice_field {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1136px -1480px;
width: 141px;
height: 147px;
}
.background_training_grounds {
.background_throne_room {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1278px -1480px;
width: 141px;
height: 147px;
}
.background_treasure_room {
.background_thunderstorm {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1420px -1480px;
width: 141px;
height: 147px;
}
.background_tree_roots {
.background_tide_pool {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1562px -1480px;
width: 141px;
height: 147px;
}
.background_treehouse {
.background_tornado {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1704px 0px;
width: 141px;
height: 147px;
}
.background_tulip_garden {
.background_toymakers_workshop {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1704px -148px;
width: 141px;
height: 147px;
}
.background_twinkly_lights {
.background_training_grounds {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1704px -296px;
width: 141px;
height: 147px;
}
.background_twinkly_party_lights {
.background_treasure_room {
background-image: url('~@/assets/images/sprites/spritesmith-main-1.png');
background-position: -1704px -444px;
width: 141px;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,126 +1,240 @@
.quest_bunny {
.npc_matt {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1546px;
width: 210px;
height: 186px;
background-position: -1150px -1519px;
width: 195px;
height: 138px;
}
.quest_butterfly {
.npc_matt_habitoween {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1355px -1332px;
width: 195px;
height: 138px;
}
.npc_matt_nye {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1551px -1332px;
width: 195px;
height: 138px;
}
.npc_matt_spring {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -366px -1519px;
width: 195px;
height: 138px;
}
.npc_matt_summer {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -562px -1519px;
width: 195px;
height: 138px;
}
.npc_matt_thanksgiving {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -758px -1519px;
width: 195px;
height: 138px;
}
.npc_matt_winter {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -954px -1519px;
width: 195px;
height: 138px;
}
.quest_alligator {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -1079px;
width: 201px;
height: 213px;
}
.quest_amber {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px 0px;
width: 219px;
height: 219px;
}
.quest_cheetah {
.quest_armadillo {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px 0px;
width: 219px;
height: 219px;
}
.quest_cow {
.quest_atom1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px 0px;
width: 174px;
height: 213px;
}
.quest_dilatory {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -232px;
width: 219px;
height: 219px;
}
.quest_dilatoryDistress1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -222px -1332px;
width: 210px;
height: 210px;
}
.quest_dilatoryDistress2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px -422px;
width: 150px;
background-position: -645px -1332px;
width: 250px;
height: 150px;
}
.quest_dilatoryDistress3 {
.quest_atom2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -232px;
width: 219px;
height: 219px;
background-position: -1147px -1332px;
width: 207px;
height: 138px;
}
.quest_dilatory_derby {
.quest_atom3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -211px -1332px;
width: 216px;
height: 180px;
}
.quest_axolotl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -232px;
width: 219px;
height: 219px;
}
.quest_dolphin {
.quest_badger {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -232px;
width: 219px;
height: 219px;
}
.quest_basilist {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1733px;
width: 189px;
height: 141px;
}
.quest_beetle {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -662px -1112px;
width: 204px;
height: 201px;
}
.quest_blackPearl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px 0px;
width: 216px;
height: 216px;
}
.quest_bronze {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -232px;
width: 219px;
height: 219px;
}
.quest_bunny {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1332px;
width: 210px;
height: 186px;
}
.quest_butterfly {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px 0px;
width: 219px;
height: 219px;
}
.quest_dustbunnies {
.quest_cheetah {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -220px;
width: 219px;
height: 219px;
}
.quest_egg {
.quest_cow {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px -214px;
width: 165px;
height: 207px;
background-position: 0px -1519px;
width: 174px;
height: 213px;
}
.quest_evilsanta {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px -724px;
width: 118px;
height: 131px;
}
.quest_evilsanta2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -452px;
width: 219px;
height: 219px;
}
.quest_falcon {
.quest_dilatory {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -452px;
width: 219px;
height: 219px;
}
.quest_ferret {
.quest_dilatoryDistress1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -868px;
width: 210px;
height: 210px;
}
.quest_dilatoryDistress2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1757px -208px;
width: 150px;
height: 150px;
}
.quest_dilatoryDistress3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -452px;
width: 219px;
height: 219px;
}
.quest_fluorite {
.quest_dilatory_derby {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -452px;
width: 219px;
height: 219px;
}
.quest_dolphin {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -452px;
width: 219px;
height: 219px;
}
.quest_frog {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1332px;
width: 221px;
height: 213px;
}
.quest_ghost_stag {
.quest_dustbunnies {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px 0px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
.quest_egg {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1757px 0px;
width: 165px;
height: 207px;
}
.quest_evilsanta {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1757px -510px;
width: 118px;
height: 131px;
}
.quest_evilsanta2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -220px;
width: 219px;
height: 219px;
}
.quest_falcon {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -440px;
width: 219px;
height: 219px;
}
.quest_ferret {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -672px;
width: 219px;
height: 219px;
}
.quest_fluorite {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -672px;
width: 219px;
height: 219px;
}
.quest_frog {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -1112px;
width: 221px;
height: 213px;
}
.quest_ghost_stag {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -672px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -672px;
width: 219px;
height: 219px;
}
.quest_goldenknight2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -211px -1546px;
background-position: -896px -1332px;
width: 250px;
height: 150px;
}
@@ -132,259 +246,163 @@
}
.quest_gryphon {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -876px -1332px;
background-position: -1310px -1112px;
width: 216px;
height: 177px;
}
.quest_guineapig {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -440px;
background-position: -880px -672px;
width: 219px;
height: 219px;
}
.quest_harpy {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -672px;
background-position: -1100px 0px;
width: 219px;
height: 219px;
}
.quest_hedgehog {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -433px -1332px;
background-position: -867px -1112px;
width: 219px;
height: 186px;
}
.quest_hippo {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -672px;
background-position: -1100px -220px;
width: 219px;
height: 219px;
}
.quest_horse {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -672px;
background-position: -1100px -440px;
width: 219px;
height: 219px;
}
.quest_kangaroo {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -672px;
background-position: -1100px -660px;
width: 219px;
height: 219px;
}
.quest_kraken {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1093px -1332px;
background-position: -428px -1332px;
width: 216px;
height: 177px;
}
.quest_lostMasterclasser1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -672px;
background-position: 0px -892px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px 0px;
background-position: -220px -892px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -220px;
background-position: -440px -892px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1760px -573px;
background-position: -1757px -359px;
width: 150px;
height: 150px;
}
.quest_mayhemMistiflying2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -440px;
background-position: -660px -892px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -660px;
background-position: -880px -892px;
width: 219px;
height: 219px;
}
.quest_monkey {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -892px;
background-position: -1100px -892px;
width: 219px;
height: 219px;
}
.quest_moon1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -220px;
background-position: -1540px -217px;
width: 216px;
height: 216px;
}
.quest_moon2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -892px;
background-position: -1320px 0px;
width: 219px;
height: 219px;
}
.quest_moon3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -892px;
background-position: -1320px -220px;
width: 219px;
height: 219px;
}
.quest_moonstone1 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -892px;
background-position: -1320px -440px;
width: 219px;
height: 219px;
}
.quest_moonstone2 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -892px;
background-position: -1320px -660px;
width: 219px;
height: 219px;
}
.quest_moonstone3 {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -892px;
background-position: -1320px -880px;
width: 219px;
height: 219px;
}
.quest_nudibranch {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -437px;
background-position: -1540px -434px;
width: 216px;
height: 216px;
}
.quest_octopus {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -653px -1332px;
background-position: -1087px -1112px;
width: 222px;
height: 177px;
}
.quest_onyx {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px 0px;
background-position: 0px -1112px;
width: 219px;
height: 219px;
}
.quest_owl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -220px;
background-position: -220px -1112px;
width: 219px;
height: 219px;
}
.quest_peacock {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -654px;
background-position: -1540px -651px;
width: 216px;
height: 216px;
}
.quest_penguin {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1733px;
background-position: -175px -1519px;
width: 190px;
height: 183px;
}
.quest_pterodactyl {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -440px;
width: 219px;
height: 219px;
}
.quest_rat {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -660px;
width: 219px;
height: 219px;
}
.quest_robot {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -880px;
width: 219px;
height: 219px;
}
.quest_rock {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -871px;
width: 216px;
height: 216px;
}
.quest_rooster {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1527px -1332px;
width: 213px;
height: 174px;
}
.quest_ruby {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: 0px -1112px;
width: 219px;
height: 219px;
}
.quest_sabretooth {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -220px -1112px;
width: 219px;
height: 219px;
}
.quest_seaserpent {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -440px -1112px;
width: 219px;
height: 219px;
}
.quest_sheep {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -660px -1112px;
width: 219px;
height: 219px;
}
.quest_silver {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -880px -1112px;
width: 219px;
height: 219px;
}
.quest_slime {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1100px -1112px;
width: 219px;
height: 219px;
}
.quest_sloth {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1320px -1112px;
width: 219px;
height: 219px;
}
.quest_snail {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px -1088px;
width: 219px;
height: 213px;
}
.quest_snake {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1310px -1332px;
width: 216px;
height: 177px;
}
.quest_spider {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -462px -1546px;
width: 250px;
height: 150px;
}
.quest_squirrel {
background-image: url('~@/assets/images/sprites/spritesmith-main-15.png');
background-position: -1540px 0px;
width: 219px;
height: 219px;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 KiB

After

Width:  |  Height:  |  Size: 466 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 KiB

After

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 KiB

After

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 KiB

After

Width:  |  Height:  |  Size: 613 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 121 KiB

@@ -0,0 +1,6 @@
<svg width="64" height="64" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg">
<g fill="none" fill-rule="evenodd">
<circle fill="#1CA372" cx="32" cy="32" r="32"/>
<path d="M27.277 46a3.34 3.34 0 0 1-2.367-.98L14 34.11l4.733-4.733 8.356 8.356L43.999 18l5.084 4.354L29.82 44.832a3.366 3.366 0 0 1-2.415 1.165c-.043.003-.086.003-.128.003" fill="#FFF"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 391 B

+10 -2
View File
@@ -82,9 +82,17 @@
{{ $t('hall') }}
</router-link>
</li>
<li>
<li v-if="user">
<a
:href="bugReportMailto"
@click.prevent="openBugReportModal()"
target="_blank"
>
{{ $t('reportBug') }}
</a>
</li>
<li v-else>
<a
href="mailto:admin@habitica.com?subject=Habitica Web Bug Report"
target="_blank"
>
{{ $t('reportBug') }}
@@ -0,0 +1,43 @@
/* eslint-disable import/no-extraneous-dependencies */
import { storiesOf } from '@storybook/vue';
import { withKnobs } from '@storybook/addon-knobs';
import bugReportModal from '@/components/bugReportModal';
import bugReportSuccessModal from '@/components/bugReportSuccessModal';
const stories = storiesOf('Bug Report Modal', module);
stories.addDecorator(withKnobs);
stories
.add('bugReportModal', () => ({
components: { bugReportModal },
data () {
return {
};
},
template: `
<div>
<bug-report-modal></bug-report-modal>
</div>
`,
mounted () {
this.$root.$emit('bv::show::modal', 'bug-report-modal');
},
}))
.add('bugReportSuccessModal', () => ({
components: { bugReportSuccessModal },
data () {
return {
};
},
template: `
<div>
<bug-report-success-modal></bug-report-success-modal>
</div>
`,
mounted () {
this.$root.$emit('bv::show::modal', 'bug-report-success-modal');
},
}));
@@ -0,0 +1,243 @@
<template>
<b-modal
:id="modalId"
size="md"
:hide-footer="true"
>
<div
slot="modal-header"
class="bug-report-modal-header"
>
<h2 v-once>
{{ $t('reportBug') }}
</h2>
<div v-once class="report-bug-header-describe">
{{ $t('reportBugHeaderDescribe') }}
</div>
<div class="dialog-close">
<close-icon @click="close()" :purple="true"/>
</div>
</div>
<div>
<form
class="form"
@submit.prevent.stop="sendBugReport()"
>
<div
class="form-group"
>
<label
v-once
for="emailInput"
>
{{ $t('email') }}
</label>
<div class="mb-2 description-label" v-once>
{{ $t('reportEmailText') }}
</div>
<input
id="emailInput"
v-model="email"
class="form-control"
type="email"
:required="true"
:placeholder="$t('reportEmailPlaceholder')"
:class="{'input-invalid': emailInvalid, 'input-valid': emailValid}"
>
<div class="error-label mt-2" v-if="emailInvalid">
{{ $t('reportEmailError') }}
</div>
</div>
<label v-once>
{{ $t('reportDescription') }}
</label>
<div class="mb-2 description-label" v-once>
{{ $t('reportDescriptionText') }}
</div>
<textarea
v-model="message"
class="form-control"
rows="5"
:required="true"
:placeholder="$t('reportDescriptionPlaceholder')"
:class="{'input-invalid': messageInvalid && this.message.length === 0}"
>
</textarea>
<button
class="btn btn-primary submit-button btn-block mx-auto mt-4"
type="submit"
:disabled="!message || !emailValid"
>
{{ $t('submitBugReport') }}
</button>
</form>
</div>
<div class="modal-footer">
<a
class="cancel-link mx-auto mb-4"
@click.prevent="close()"
>
{{ $t('cancel') }}
</a>
</div>
</b-modal>
</template>
<style lang="scss">
#bug-report-modal {
.modal-header {
padding: 0;
border: none;
}
.modal-dialog {
border-top-left-radius: 8px;
border-top-right-radius: 8px;
overflow: auto;
}
.modal-body {
padding-top: 1rem;
padding-right: 1.5rem;
padding-left: 1.5rem;
padding-bottom: 0;
}
.modal-footer {
border-top: 0;
padding-bottom: 0;
}
}
</style>
<style scoped lang="scss">
@import '~@/assets/scss/colors.scss';
h2 {
color: $white;
}
.bug-report-modal-header {
color: $white;
width: 100%;
padding: 2rem 3rem 1.5rem 1.5rem;
background-image: linear-gradient(288deg, #{$purple-200}, #{$purple-300});
}
.report-bug-header-describe {
font-size: 14px;
line-height: 1.71;
color: $purple-600;
}
label {
font-weight: bold;
line-height: 1.71;
color: $gray-50;
}
.cancel-link {
color: $blue-10;
line-height: 1.71;
}
.submit-button {
width: auto;
}
.error-label {
font-size: 12px;
line-height: 1.33;
color: $maroon-10;
}
.description-label {
font-size: 12px;
line-height: 1.33;
color: $gray-100;
}
</style>
<script>
import axios from 'axios';
import isEmail from 'validator/lib/isEmail';
import closeIcon from '@/components/shared/closeIcon';
import { mapState } from '@/libs/store';
import { MODALS } from '@/libs/consts';
export default {
components: {
closeIcon,
},
data () {
return {
message: '',
email: '',
messageInvalid: false,
modalId: MODALS.BUG_REPORT,
};
},
methods: {
async sendBugReport () {
this.messageInvalid = false;
if (this.message.length === 0) {
this.messageInvalid = true;
return;
}
await axios.post('/api/v4/bug-report', {
message: this.message,
email: this.email,
});
this.message = '';
this.close();
this.$root.$emit('bv::show::modal', MODALS.BUG_REPORT_SUCCESS);
},
close () {
this.$root.$emit('bv::hide::modal', MODALS.BUG_REPORT);
},
},
computed: {
...mapState({ user: 'user.data' }),
emailValid () {
if (this.email.length <= 3) return false;
return isEmail(this.email);
},
emailInvalid () {
if (this.email.length <= 3) return false;
return !this.emailValid;
},
},
mounted () {
const { user } = this;
let email = user.auth?.local?.email;
if (!email && user.auth?.facebook?.emails) {
email = user.auth.facebook.emails?.[0]?.value;
}
if (!email && user.auth?.google?.emails) {
email = user.auth.google.emails?.[0]?.value;
}
if (!email && user.auth?.apple?.emails) {
email = user.auth.apple.emails?.[0]?.value;
}
this.email = email;
},
};
</script>
@@ -0,0 +1,154 @@
<template>
<b-modal
:id="modalId"
size="md"
:hide-footer="true"
>
<div
slot="modal-header"
class="bug-report-modal-header"
>
<div class="green-bar"></div>
<div class="sub-header position-relative">
<div class="dialog-close">
<close-icon @click="close()" />
</div>
</div>
</div>
<div>
<span class="svg-icon check-icon"
v-html="icons.checkCircleIcon"
></span>
<div class="title" v-once>
{{ $t('reportSent') }}
</div>
<div class="text mt-3 mb-4" v-once>
{{ $t('reportSentDescription') }}
</div>
</div>
</b-modal>
</template>
<style lang="scss">
#bug-report-success-modal {
.modal-header {
padding: 0;
border: none;
}
.modal-content {
border: 0;
}
.modal-dialog {
border-top-left-radius: 8px;
border-top-right-radius: 8px;
overflow: auto;
width: 330px;
}
.modal-body {
padding: 0 1.5rem;
}
.modal-footer {
border-top: 0;
padding-bottom: 0;
}
}
</style>
<style scoped lang="scss">
@import '~@/assets/scss/colors.scss';
h2 {
color: $white;
}
.bug-report-modal-header {
width: 100%;
.green-bar {
height: 8px;
width: 100%;
background-color: $green-10;
}
}
.check-icon {
width: 64px;
height: 64px;
margin: 0 auto;
margin-top: -0.25rem;
}
.report-bug-header-describe {
font-size: 14px;
line-height: 1.71;
color: $purple-600;
}
label {
font-weight: bold;
line-height: 1.71;
color: $gray-50;
}
.cancel-link {
color: $blue-10;
line-height: 1.71;
}
.submit-button {
width: auto;
}
.error-label {
font-size: 12px;
line-height: 1.33;
color: $maroon-10;
}
.description-label {
font-size: 12px;
line-height: 1.33;
color: $gray-100;
}
.text {
min-height: 0;
}
</style>
<script>
import closeIcon from '@/components/shared/closeIcon';
import checkCircleIcon from '@/assets/svg/check_circle.svg';
import { MODALS } from '@/libs/consts';
export default {
components: {
closeIcon,
},
data () {
return {
icons: Object.freeze({
checkCircleIcon,
}),
modalId: MODALS.BUG_REPORT_SUCCESS,
};
},
methods: {
close () {
this.$root.$emit('bv::hide::modal', MODALS.BUG_REPORT_SUCCESS);
},
},
computed: {},
mounted () {},
};
</script>
@@ -121,7 +121,7 @@
v-if="editing"
class="menu-container col-2"
:class="{active: activeTopPage === 'backgrounds'}"
@click="changeTopPage('backgrounds', '2021')"
@click="changeTopPage('backgrounds', '2022')"
>
<div class="menu-item">
<div
@@ -1184,7 +1184,7 @@ export default {
},
],
bgSubMenuItems: ['2021', '2020', '2019', '2018', '2017', '2016', '2015', '2014'].map(y => ({
bgSubMenuItems: ['2022', '2021', '2020', '2019', '2018', '2017', '2016', '2015', '2014'].map(y => ({
id: y,
label: y,
})),
@@ -1212,6 +1212,7 @@ export default {
2019: [],
2020: [],
2021: [],
2022: [],
};
// Hack to force update for now until we restructure the data
@@ -27,7 +27,7 @@
@keydown.tab="handleTab($event)"
@keydown.up="selectPreviousAutocomplete($event)"
@keydown.down="selectNextAutocomplete($event)"
@keydown.enter="selectAutocomplete($event)"
@keypress.enter="selectAutocomplete($event)"
@keydown.esc="handleEscape($event)"
@paste="disableMessageSendShortcut()"
></textarea>
@@ -247,8 +247,13 @@ export default {
selectAutocomplete (e) {
if (this.$refs.autocomplete.searchActive) {
e.preventDefault();
this.$refs.autocomplete.makeSelection();
if (this.$refs.autocomplete.selected !== null) {
e.preventDefault();
this.$refs.autocomplete.makeSelection();
} else {
// no autocomplete selected, newline instead
this.$refs.autocomplete.cancel();
}
}
},
@@ -311,6 +311,7 @@ import bronzeGuildBadgeIcon from '@/assets/svg/bronze-guild-badge-small.svg';
import QuestDetailModal from './questDetailModal';
import RightSidebar from '@/components/groups/rightSidebar';
import InvitationListModal from './invitationListModal';
import { PAGES } from '@/libs/consts';
export default {
components: {
@@ -554,7 +555,7 @@ export default {
this.$root.$emit('bv::show::modal', 'group-gems-modal');
},
messageLeader () {
window.open(`/private-messages?uuid=${this.group.leader.id}`);
window.open(`${PAGES.PRIVATE_MESSAGES}?uuid=${this.group.leader.id}`);
},
},
};
@@ -389,6 +389,7 @@ import messageIcon from '@/assets/members/message.svg';
import starIcon from '@/assets/members/star.svg';
import dots from '@/assets/svg/dots.svg';
import SelectList from '@/components/ui/selectList';
import { PAGES } from '@/libs/consts';
export default {
components: {
@@ -558,7 +559,7 @@ export default {
});
this.$root.$emit('bv::hide::modal', 'members-modal');
this.$router.push('/private-messages');
this.$router.push(PAGES.PRIVATE_MESSAGES);
},
async searchMembers (searchTerm = '') {
this.members = await this.$store.state.memberModalOptions.fetchMoreMembers({
@@ -361,7 +361,7 @@
</li>
<li>
<a
:href="bugReportMailto"
@click.prevent="openBugReportModal()"
target="_blank"
>
{{ $t('reportBug') }}
@@ -89,6 +89,7 @@
</style>
<script>
import find from 'lodash/find';
import { mapState } from '@/libs/store';
import BaseBanner from './base';
@@ -98,8 +99,11 @@ export default {
},
computed: {
...mapState({
currentEvent: 'worldState.data.currentEvent',
currentEventList: 'worldState.data.currentEventList',
}),
currentEvent () {
return find(this.currentEventList, event => Boolean(event.gemsPromo));
},
eventName () {
return this.currentEvent && this.currentEvent.event;
},
@@ -63,6 +63,7 @@
</style>
<script>
import find from 'lodash/find';
import { mapState } from '@/libs/store';
import BaseBanner from './base';
@@ -74,8 +75,11 @@ export default {
},
computed: {
...mapState({
currentEvent: 'worldState.data.currentEvent',
currentEventList: 'worldState.data.currentEventList',
}),
currentEvent () {
return find(this.currentEventList, event => Boolean(event.promo));
},
eventName () {
return this.currentEvent && this.currentEvent.event;
},
@@ -311,7 +311,7 @@
</router-link>
<a
class="topbar-dropdown-item dropdown-item"
:href="bugReportMailto"
@click.prevent="openBugReportModal()"
target="_blank"
>
{{ $t('reportBug') }}
@@ -17,6 +17,7 @@
<script>
import BaseNotification from './base';
import { PAGES } from '@/libs/consts';
export default {
components: {
@@ -25,7 +26,7 @@ export default {
props: ['notification', 'canRemove'],
methods: {
action () {
this.$router.push('/private-messages');
this.$router.push(PAGES.PRIVATE_MESSAGES);
},
},
};
@@ -143,6 +143,7 @@ import userIcon from '@/assets/svg/user.svg';
import MenuDropdown from '../ui/customMenuDropdown';
import MessageCount from './messageCount';
import { EVENTS } from '@/libs/events';
import { PAGES } from '@/libs/consts';
export default {
components: {
@@ -170,7 +171,7 @@ export default {
if (this.$router.history.current.name === 'privateMessages') {
this.$root.$emit(EVENTS.PM_REFRESH);
} else {
this.$router.push('/private-messages');
this.$router.push(PAGES.PRIVATE_MESSAGES);
}
},
showProfile (startingPage) {
@@ -364,6 +364,7 @@
</style>
<script>
import find from 'lodash/find';
import moment from 'moment';
import { mapState } from '@/libs/store';
import markdown from '@/directives/markdown';
@@ -408,8 +409,11 @@ export default {
...mapState({
user: 'user.data',
originalGemsBlocks: 'content.gems',
currentEvent: 'worldState.data.currentEvent',
currentEventList: 'worldState.data.currentEventList',
}),
currentEvent () {
return find(this.currentEventList, event => Boolean(event.gemsPromo) || Boolean(event.promo));
},
eventName () {
return this.currentEvent && this.currentEvent.event;
},
@@ -210,6 +210,7 @@
<script>
import debounce from 'lodash/debounce';
import find from 'lodash/find';
import isUUID from 'validator/lib/isUUID';
import { mapState } from '@/libs/store';
import closeIcon from '@/assets/svg/close.svg';
@@ -227,8 +228,11 @@ export default {
},
computed: {
...mapState({
currentEvent: 'worldState.data.currentEvent',
currentEventList: 'worldState.data.currentEventList',
}),
currentEvent () {
return find(this.currentEventList, event => Boolean(event.gemsPromo) || Boolean(event.promo));
},
searchCannotSubmit () {
if (this.userSearchTerm.length < 1) return true;
return typeof this.foundUser._id === 'undefined';
@@ -111,6 +111,7 @@
</style>
<script>
import find from 'lodash/find';
import { mapState } from '@/libs/store';
import SecondaryMenu from '@/components/secondaryMenu';
import gifts from '@/assets/svg/gifts-vertical.svg';
@@ -128,8 +129,11 @@ export default {
},
computed: {
...mapState({
currentEvent: 'worldState.data.currentEvent',
currentEventList: 'worldState.data.currentEventList',
}),
currentEvent () {
return find(this.currentEventList, event => Boolean(event.promo));
},
promo () {
if (!this.currentEvent || !this.currentEvent.promo) return 'none';
return this.currentEvent.promo;
@@ -2,6 +2,11 @@
<button
title="close dialog"
@click="$emit('click', $event)"
:style="{
'--icon-color': iconColor,
'--icon-color-hover': iconColorHover,
}"
:class="{'purple': purple}"
>
<div
v-once
@@ -16,6 +21,7 @@ import svgClose from '@/assets/svg/close.svg';
export default {
name: 'CloseIcon',
props: ['iconColor', 'iconColorHover', 'purple'],
data () {
return {
icons: Object.freeze({
@@ -43,13 +49,18 @@ export default {
width: 1rem;
height: 1rem;
&.purple {
--icon-color: #{$purple-400};
--icon-color-hover: #{$purple-500};
}
::v-deep svg path {
stroke: $gray-200;
stroke: var(--icon-color, #{$gray-200});
}
&:hover {
::v-deep svg path {
stroke: $gray-100;
stroke: var(--icon-color-hover, #{$gray-100});
}
}
}

Some files were not shown because too many files have changed in this diff Show More