Compare commits

..

105 Commits

Author SHA1 Message Date
Sabe Jones
78612a91dd 4.86.2 2019-03-12 19:30:09 -05:00
Sabe Jones
8bcd93075b chore(news): Bailey 2019-03-12 19:29:51 -05:00
Sabe Jones
f318afb8cf Revert "replace the questInfo to use table-like behavior, expands to the content (#10995)"
This reverts commit 3ebd37f7cb.
2019-03-12 19:20:56 -05:00
Sabe Jones
b954379f38 Revert "fixes Tasks UI (#11036)"
This reverts commit f548103f4c.
2019-03-12 19:20:40 -05:00
Sabe Jones
ee20b1eea8 4.86.1 2019-03-07 13:30:58 -06:00
Sabe Jones
ff62c6eea0 Merge branch 'develop' into release 2019-03-07 13:30:49 -06:00
Melior
57cd4d44cd Translated using Weblate (German) (#11052)
Currently translated at 100.0% (206 of 206 strings)

Translation: Habitica/Settings
Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/

Merge branch 'origin/develop' into Weblate.

Translated using Weblate (Russian)

Currently translated at 99.7% (1753 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Merge branch 'origin/develop' into Weblate.

Translated using Weblate (Russian)

Currently translated at 100.0% (309 of 309 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ru/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.8% (412 of 417 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/

Translated using Weblate (Russian)

Currently translated at 100.0% (169 of 169 strings)

Translation: Habitica/Npc
Translate-URL: https://translate.habitica.com/projects/habitica/npc/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1753 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (153 of 153 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1753 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (153 of 153 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1753 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1753 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1753 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1753 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1753 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1752 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (153 of 153 strings)

Translation: Habitica/Limited
Translate-URL: https://translate.habitica.com/projects/habitica/limited/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1752 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (211 of 211 strings)

Translation: Habitica/Tasks
Translate-URL: https://translate.habitica.com/projects/habitica/tasks/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (36 of 36 strings)

Translation: Habitica/Loadingscreentips
Translate-URL: https://translate.habitica.com/projects/habitica/loadingscreentips/ru/

Translated using Weblate (Russian)

Currently translated at 99.7% (1752 of 1757 strings)

Translation: Habitica/Gear
Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (309 of 309 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (137 of 137 strings)

Translation: Habitica/Challenge
Translate-URL: https://translate.habitica.com/projects/habitica/challenge/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (417 of 417 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (417 of 417 strings)

Translation: Habitica/Backgrounds
Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/

Translated using Weblate (German)

Currently translated at 100.0% (309 of 309 strings)

Translation: Habitica/Content
Translate-URL: https://translate.habitica.com/projects/habitica/content/de/
2019-03-07 13:30:19 -06:00
Sabe Jones
e989503cfa Merge branch 'develop' into release 2019-03-07 13:28:34 -06:00
Sabe Jones
431cec7634 fix(strings): remove some trailing spaces 2019-03-07 13:28:05 -06:00
Matteo Pagliazzi
2a367ab3a7 Revert "New payments buttons and new Amazon checkout flow (#10940)"
This reverts commit 77f3bb53de.
2019-03-07 16:58:49 +01:00
Matteo Pagliazzi
bc91dd81e9 Revert "fix(amazon): make sure to use up to date data"
This reverts commit 298a79b58d.
2019-03-07 16:58:38 +01:00
Sabe Jones
201085651b Merge branch 'release' into develop 2019-03-05 15:44:04 -06:00
Sabe Jones
bb395a7ad8 4.86.0 2019-03-05 15:43:35 -06:00
Sabe Jones
264aad79ac chore(sprites): compile 2019-03-05 15:43:29 -06:00
Sabe Jones
9c797e6a54 feat(content): Armoire and Backgrounds March 2019 2019-03-05 15:43:19 -06:00
Sabe Jones
e6c3d00665 fix(emails): send split-test mailings for social reg accounts 2019-03-05 14:55:45 -06:00
negue
660928323e fix header design (#11013)
* statsbar-component for a closer tooltip

* fix scss scope, twice
2019-03-04 22:01:45 +01:00
Matteo Pagliazzi
298a79b58d fix(amazon): make sure to use up to date data 2019-03-04 22:00:40 +01:00
Matteo Pagliazzi
77f3bb53de New payments buttons and new Amazon checkout flow (#10940)
* start implementing separate amazon button component

* wio

* switch amazon to new flow
2019-03-04 21:51:17 +01:00
Alec Brickner
17d8a7b706 Fix mismatch between pet and star badge (#11041) 2019-03-03 17:48:51 +01:00
Alec Brickner
1d8a5b1952 Keep mystery items synced with server (#11039) 2019-03-03 17:39:42 +01:00
negue
f548103f4c fixes Tasks UI (#11036)
* show grabbing cursor while dragging

* 40px height search + tags button

* remove margin of task-title markdown-p-tag

* remove pointer on disabled task-controls

* show `Options` instead of  `Show More`

* remove margin of checklist items

* remove space between notes and checklist
2019-03-03 17:28:58 +01:00
negue
2595ccb2b4 refactor filters to work like in guilds/challenges (#11023) 2019-03-03 17:24:59 +01:00
negue
ceb4288b17 Footer Design / Instagram Link (#11022)
* re-add instagram icon+link

* fix donate button hover - smaller icons if not desktop

* lower margin on the small icons

* Update appFooter.vue

remove DevBlog link from footer
2019-03-03 17:22:55 +01:00
negue
3ebd37f7cb replace the questInfo to use table-like behavior, expands to the content (#10995) 2019-03-03 17:17:45 +01:00
Matteo Pagliazzi
ff3df55639 Merge branch 'negue/flagpm' into develop 2019-03-03 17:12:19 +01:00
Matteo Pagliazzi
080c4b3e20 Merge branch 'develop' into negue/flagpm 2019-03-03 17:12:11 +01:00
Alec Brickner
e939799800 Ensure profile page gets synced (#11032) 2019-03-03 17:05:38 +01:00
Sabe Jones
b7797b3e6c 4.85.5 2019-03-01 16:22:33 -06:00
Sabe Jones
55bd35d7d3 chore(monthly): announce Challenges, end potions 2019-03-01 16:22:19 -06:00
Sabe Jones
b9ae03f795 4.85.4 2019-02-28 16:02:53 -06:00
Sabe Jones
75f6398de2 chore(news): Bailey 2019-02-28 16:02:46 -06:00
Sabe Jones
a1fb702d1e Merge branch 'release' into develop 2019-02-27 16:17:23 -06:00
Sabe Jones
868759d3e8 4.85.3 2019-02-27 16:17:01 -06:00
Matteo Pagliazzi
45a9d6d17b ios: cancel invalid subscriptions without errors (#11035) 2019-02-27 18:48:13 +01:00
Matteo Pagliazzi
cc766d2260 gcp stackdriver tracing: attach user id (#11033) 2019-02-27 18:47:33 +01:00
Sabe Jones
e710a00e74 Merge branch 'release' into develop 2019-02-26 17:53:19 -06:00
Sabe Jones
bad06ba449 4.85.2 2019-02-26 17:52:59 -06:00
Sabe Jones
ccb088e127 Merge branch 'sabrecat/email-split' into release 2019-02-26 17:52:48 -06:00
Sabe Jones
4a4d48aed8 chore(email): expand to 4 variants 2019-02-26 10:14:55 -06:00
Sabe Jones
da8006506b Merge branch 'release' into develop 2019-02-26 10:09:26 -06:00
Sabe Jones
d451d01b18 4.85.1 2019-02-26 10:08:41 -06:00
Sabe Jones
53555a0f16 fix(navbar): update b-vue toggle syntax 2019-02-26 10:07:48 -06:00
Sabe Jones
962236846a Merge branch 'release' into develop 2019-02-25 17:00:41 -06:00
Sabe Jones
aae8f2923c 4.85.0 2019-02-25 17:00:13 -06:00
Sabe Jones
61956336ea chore(sprites): compile 2019-02-25 16:59:37 -06:00
Sabe Jones
0be1f3eb7c fix(equipment): hack partially addressing #11015 2019-02-25 16:59:28 -06:00
Sabe Jones
fe04b56ecc feat(content): February Mystery Items 2019-02-25 16:58:56 -06:00
Matteo Pagliazzi
7e772924f6 4.84.8 2019-02-24 14:06:19 +01:00
Sabe Jones
901d11c61f fix(logging): move Stackdriver init higher up (#11025) 2019-02-24 14:05:59 +01:00
Matteo Pagliazzi
80b15ac5e9 4.84.7 2019-02-23 18:22:59 +01:00
Matteo Pagliazzi
78b49b9c7e gcp: add stackdriver tracing (#11024) 2019-02-23 18:20:09 +01:00
Matteo Pagliazzi
8874558827 fix package-lock.json 2019-02-23 11:05:20 +01:00
Sabe Jones
ea5ce64db6 fix(email): use updated slugs
and genericize logic for easier tweaking later
2019-02-22 15:47:24 -06:00
Sabe Jones
10b69986c0 chore(email): split test for welcome message 2019-02-22 15:13:32 -06:00
Cameron Billings
2d35009bee Update conditional render to only show Apply Sort Options to Party Header text in party modals (#10984) 2019-02-21 13:35:17 -06:00
Chester Sng
d267f09d04 Enable Username to be searched in Hall of Heroes - fixes #10972 (#10980)
* Add if block to search for username if not valid uuid

* Add validationError check

* Modify test case and added test case for username

* Update description of API

* Update Test

* Correct test

* Change placeholder text in heroes.vue

* Refactor code

* Add quotes

* Update hall.js
2019-02-21 13:33:15 -06:00
Sabe Jones
f23dcf59ff 4.84.6 2019-02-21 12:46:58 -06:00
Sabe Jones
8eb9402c0e fix(achievements): better coloration by piyo 2019-02-21 12:44:30 -06:00
Sabe Jones
a7f2579f6c 4.84.5 2019-02-20 14:35:41 -06:00
Sabe Jones
ada09f3d5a fix(challenges): use b-dropdown-form 2019-02-20 14:17:34 -06:00
Sabe Jones
8fdee5a669 4.84.4 2019-02-19 18:07:08 -06:00
Sabe Jones
3e4d245eba chore(sprites): compile 2019-02-19 18:06:30 -06:00
Sabe Jones
b21cd4a2b6 feat(content): Mythical Marvels Bundle
and end Valentine's miscellany
2019-02-19 18:06:21 -06:00
Sabe Jones
18de42b13d 4.84.3 2019-02-15 16:07:56 -06:00
Sabe Jones
98fd509530 Hotfix: correct issues from PRs rollout (#10993)
* fix(various): correct issues from PRs rollout
1. Send Gems modal opens from profiles again
2. Contributor titles appear on hover again
3. Tags dropdown in tasks appears again
4. Only user's own @mentions get highlighted again

* fix(test): correct order of css classes in expect
2019-02-15 16:01:33 -06:00
negue
0cbd6fb4d7 Merge branch 'develop' of https://github.com/HabitRPG/habitica into negue/flagpm
# Conflicts:
#	website/client/components/chat/chatCard.vue
#	website/client/components/header/menu.vue
2019-02-07 19:16:10 +01:00
negue
0ca3c1f94d fix POST-chat.test (author_name format) 2019-01-27 21:29:45 +01:00
negue
2f699e24d7 update test to use the correct author_name format 2019-01-27 19:05:00 +01:00
negue
faa0611ab2 Merge branch 'develop' of https://github.com/HabitRPG/habitica into negue/flagpm 2019-01-27 18:14:51 +01:00
negue
c66d2cb469 refactor properties - added another "inbox" check 2019-01-14 23:17:26 +01:00
negue
61606cb69d change to User ID - change mail var _DISPLAYNAME _DISPLAY_NAME 2019-01-04 21:04:41 +01:00
negue
73ecdced01 remove the "delete" part of the flag notification 2018-12-07 00:13:24 +01:00
negue
1c17b415f0 refactor {group,inbox}-chatReporter variables 2018-12-06 23:55:18 +01:00
negue
b912a83f22 refactor "formatUser" to show the correct user and displayname 2018-11-29 20:15:47 +01:00
negue
fb3a9740bd add display name to the email variables 2018-11-29 20:00:05 +01:00
negue
817c943860 Merge remote-tracking branch 'origin/develop' into negue/flagpm 2018-11-29 19:02:01 +01:00
negue
0aba448c48 fix sentence 2018-11-29 19:01:26 +01:00
negue
52a7112591 some ui fixes / requested changes 2018-11-20 17:20:58 +01:00
negue
3203bffeaa refactor update the message to use .save - fix test 2018-11-18 22:37:09 +01:00
negue
3f47cdd9a2 merge fixes 2018-11-18 22:12:41 +01:00
negue
8b15d94ae1 Merge remote-tracking branch 'origin/develop' into negue/flagpm
# Conflicts:
#	website/client/components/chat/chatCard.vue
#	website/client/components/chat/chatMessages.vue
#	website/common/locales/en/messages.json
2018-11-18 22:04:33 +01:00
negue
8f2435c37c refactor Inbox-mongodb requests 2018-11-08 22:04:55 +01:00
negue
2c250bfcd9 fix tests / lint 2018-10-14 15:28:00 +02:00
negue
75e3f15352 remove the v3 api method 2018-10-10 20:50:10 +02:00
negue
5670be26c7 review fixes 2018-10-10 20:46:43 +02:00
negue
9fc03cb91a cleanup 2018-10-08 19:08:14 +02:00
negue
7e80406181 fix flagging in the new inbox collection - move flag private message to api/v4 2018-10-02 21:23:29 +02:00
negue
60a6f6f2f6 fix merge issues 2018-09-30 15:37:14 +02:00
negue
92d68e5c6e Merge branch 'develop' of https://github.com/HabitRPG/habitica into negue/flagpm
# Conflicts:
#	website/client/components/chat/chatCard.vue
#	website/client/components/chat/chatMessages.vue
#	website/common/locales/en/messages.json
#	website/server/libs/slack.js
2018-09-22 19:18:08 +02:00
negue
6e7d8d93fe fix test import 2018-06-25 20:23:04 +02:00
negue
bc861133e1 fix doc path 2018-06-25 18:48:43 +02:00
negue
31ef21f25c Merge branch 'develop' of https://github.com/HabitRPG/habitica into negue/flagpm
# Conflicts:
#	website/client/store/actions/chat.js
2018-06-25 18:47:47 +02:00
negue
97e1465899 fix ci - revert reporter to user var 2018-06-13 22:55:28 +02:00
negue
7cb0f5145d update margin / color 2018-06-11 22:53:43 +02:00
negue
5b6217a0bf pass userId for admin-calls 2018-06-11 22:39:07 +02:00
negue
09e4c88606 add tests + fix lint 2018-06-08 21:50:52 +02:00
negue
13bae96708 hide report button if already reported 2018-06-08 21:16:11 +02:00
negue
6241001eef remove unneeded try/catch 2018-06-08 21:03:26 +02:00
negue
dc5722d0de report & mark message 2018-06-08 20:26:26 +02:00
negue
e3b2443029 move reportFlagModal to menu.vue 2018-06-08 19:15:21 +02:00
negue
ca5927fe73 sendInboxFlagNotification (for private message flag content) 2018-06-02 19:27:28 +02:00
negue
5a0eed7eae copy chatReporter - fix unknown apiMessages - add api for flagging pm 2018-06-02 18:18:00 +02:00
negue
532881e679 enable flagging private message - v-once for simple strings/icons - fix flag notification 2018-06-02 18:16:24 +02:00
negue
27d763a46c add slack debug calls (logger.info) 2018-06-02 18:14:53 +02:00
225 changed files with 24439 additions and 23186 deletions

View File

@@ -78,5 +78,6 @@
"TEST_DB_URI": "mongodb://localhost/habitrpg_test",
"TRANSIFEX_SLACK_CHANNEL": "transifex",
"WEB_CONCURRENCY": 1,
"SKIP_SSL_CHECK_KEY": "key"
"SKIP_SSL_CHECK_KEY": "key",
"ENABLE_STACKDRIVER_TRACING": "false"
}

View File

@@ -1,6 +1,6 @@
/* eslint-disable no-console */
const MIGRATION_NAME = 'mystery_items_201901';
const MYSTERY_ITEMS = ['head_mystery_201901', 'body_mystery_201901'];
const MIGRATION_NAME = 'mystery_items_201902';
const MYSTERY_ITEMS = ['eyewear_mystery_201902', 'shield_mystery_201902'];
import { model as User } from '../../website/server/models/user';
import { model as UserNotification } from '../../website/server/models/userNotification';

609
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "habitica",
"version": "4.84.2",
"version": "4.86.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -149,6 +149,69 @@
}
}
},
"@google-cloud/common": {
"version": "0.30.2",
"resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.30.2.tgz",
"integrity": "sha512-JLIaSpMhhUetiwS30iC2SwNP51mayuSbyhRVdagqFC6rDVcqMHHsN8QJwUhCjOoHyfQ04n9SinfMCQzJTR9Liw==",
"requires": {
"@google-cloud/projectify": "^0.3.2",
"@google-cloud/promisify": "^0.3.0",
"@types/duplexify": "^3.5.0",
"@types/request": "^2.47.0",
"arrify": "^1.0.1",
"duplexify": "^3.6.0",
"ent": "^2.2.0",
"extend": "^3.0.1",
"google-auth-library": "^3.0.0",
"pify": "^4.0.0",
"retry-request": "^4.0.0"
},
"dependencies": {
"pify": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
}
}
},
"@google-cloud/projectify": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-0.3.2.tgz",
"integrity": "sha512-t1bs5gE105IpgikX7zPCJZzVyXM5xZ/1kJomUPim2E2pNp4OUUFNyvKm/T2aM6GBP2F30o8abCD+/wbOhHWYYA=="
},
"@google-cloud/promisify": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.3.1.tgz",
"integrity": "sha512-QzB0/IMvB0eFxFK7Eqh+bfC8NLv3E9ScjWQrPOk6GgfNroxcVITdTlT8NRsRrcp5+QQJVPLkRqKG0PUdaWXmHw=="
},
"@google-cloud/trace-agent": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/@google-cloud/trace-agent/-/trace-agent-3.5.2.tgz",
"integrity": "sha512-pmrNEIvITep9pGQfzSYpFjdfcEYqin0F8WvftNEc2dURt645WxMmDD3/dm6edVU6R8E86vQBPgCyEUvyAdW4dQ==",
"requires": {
"@google-cloud/common": "^0.30.0",
"builtin-modules": "^3.0.0",
"console-log-level": "^1.4.0",
"continuation-local-storage": "^3.2.1",
"extend": "^3.0.0",
"gcp-metadata": "^0.9.0",
"hex2dec": "^1.0.1",
"is": "^3.2.0",
"methods": "^1.1.1",
"require-in-the-middle": "^3.0.0",
"semver": "^5.4.1",
"shimmer": "^1.2.0",
"teeny-request": "^3.11.1",
"uuid": "^3.0.1"
},
"dependencies": {
"semver": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
"integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
}
}
},
"@mrmlnc/readdir-enhanced": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
@@ -163,6 +226,16 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
"integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw=="
},
"@nuxt/opencollective": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.2.1.tgz",
"integrity": "sha512-NP2VSUKRFGutbhWeKgIU0MnY4fmpH8UWxxwTJNPurCQ5BeWhOxp+Gp5ltO39P/Et/J2GYGb3+ALNqZJ+5cGBBw==",
"requires": {
"chalk": "^2.4.1",
"consola": "^2.3.0",
"node-fetch": "^2.3.0"
}
},
"@sindresorhus/is": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
@@ -232,17 +305,53 @@
"@types/babel-types": "*"
}
},
"@types/caseless": {
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz",
"integrity": "sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A=="
},
"@types/duplexify": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz",
"integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==",
"requires": {
"@types/node": "*"
}
},
"@types/form-data": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz",
"integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==",
"requires": {
"@types/node": "*"
}
},
"@types/node": {
"version": "8.10.40",
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.40.tgz",
"integrity": "sha512-RRSjdwz63kS4u7edIwJUn8NqKLLQ6LyqF/X4+4jp38MBT3Vwetewi2N4dgJEshLbDwNgOJXNYoOwzVZUSSLhkQ==",
"dev": true
"integrity": "sha512-RRSjdwz63kS4u7edIwJUn8NqKLLQ6LyqF/X4+4jp38MBT3Vwetewi2N4dgJEshLbDwNgOJXNYoOwzVZUSSLhkQ=="
},
"@types/q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.1.tgz",
"integrity": "sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA=="
},
"@types/request": {
"version": "2.48.1",
"resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.1.tgz",
"integrity": "sha512-ZgEZ1TiD+KGA9LiAAPPJL68Id2UWfeSO62ijSXZjFJArVV+2pKcsVHmrcu+1oiE3q6eDGiFiSolRc4JHoerBBg==",
"requires": {
"@types/caseless": "*",
"@types/form-data": "*",
"@types/node": "*",
"@types/tough-cookie": "*"
}
},
"@types/tough-cookie": {
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz",
"integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg=="
},
"@vue/test-utils": {
"version": "1.0.0-beta.29",
"resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.29.tgz",
@@ -258,6 +367,14 @@
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"abort-controller": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-2.0.2.tgz",
"integrity": "sha512-JXEYGxxMwiNl9EUdLysK0K0DwB7ENw6KeeaLHgofijTfJYPB/vOer3Mb+IcP913dCfWiQsd05MmVNl0H5PanrQ==",
"requires": {
"event-target-shim": "^5.0.0"
}
},
"accepts": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
@@ -566,8 +683,13 @@
"blueimp-md5": "^2.10.0",
"json3": "^3.3.2",
"lodash": "^4.17.4",
"query-string": "5",
"ua-parser-js": "github:amplitude/ua-parser-js#ed538f16f5c6ecd8357da989b617d4f156dcf35d"
"query-string": "5"
},
"dependencies": {
"ua-parser-js": {
"version": "github:amplitude/ua-parser-js#ed538f16f5c6ecd8357da989b617d4f156dcf35d",
"from": "github:amplitude/ua-parser-js#ed538f16f5c6ecd8357da989b617d4f156dcf35d"
}
}
},
"ansi-align": {
@@ -1747,6 +1869,22 @@
"integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
"dev": true
},
"async-listener": {
"version": "0.6.10",
"resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz",
"integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==",
"requires": {
"semver": "^5.3.0",
"shimmer": "^1.1.0"
},
"dependencies": {
"semver": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
"integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
}
}
},
"async-settle": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz",
@@ -4724,6 +4862,11 @@
"resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
},
"bignumber.js": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
"integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ=="
},
"bin-build": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz",
@@ -5079,16 +5222,14 @@
"integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag=="
},
"bootstrap-vue": {
"version": "2.0.0-rc.11",
"resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.0.0-rc.11.tgz",
"integrity": "sha512-LxR+oL8yKr1DVoWUWTX+XhiT0xaTMH6142u2VSFDm4tewTH8HIrzN2YIl7HLZrw2DIuE9bRMIdWJqqn3aQe7Hw==",
"version": "2.0.0-rc.13",
"resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.0.0-rc.13.tgz",
"integrity": "sha512-XKCHeb3vzdbw3tD7jMOBOA0YuK+1PZo2s5+Vl0uglZKKPIN0V9DljnUv+10xJve6yr88WX0sFWInYObRGFiC/Q==",
"requires": {
"bootstrap": "^4.1.1",
"lodash.get": "^4.4.2",
"lodash.startcase": "^4.4.0",
"opencollective": "^1.0.3",
"popper.js": "^1.12.9",
"vue-functional-data-merge": "^2.0.5"
"@nuxt/opencollective": "^0.2.1",
"bootstrap": "^4.3.1",
"popper.js": "^1.14.7",
"vue-functional-data-merge": "^2.0.7"
}
},
"boxen": {
@@ -5297,6 +5438,11 @@
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
},
"builtin-modules": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.0.0.tgz",
"integrity": "sha512-hMIeU4K2ilbXV6Uv93ZZ0Avg/M91RaKXucQ+4me2Do1txxBDyDZWCBa5bJSLqoNTRpXTLwEzIk1KmloenDDjhg=="
},
"builtin-status-codes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
@@ -5595,7 +5741,8 @@
"chardet": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
"integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
"integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
"dev": true
},
"check-error": {
"version": "1.0.2",
@@ -5951,7 +6098,8 @@
"cli-width": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
"dev": true
},
"cliui": {
"version": "3.2.0",
@@ -6651,6 +6799,43 @@
"integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
"dev": true
},
"consola": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.4.1.tgz",
"integrity": "sha512-j6bIzpmyRGY2TDZVkAi3DM95CgC8hWx1A7AiJdyn4X5gls1bbpXIMpn3p8QsfaNu+ycNLXP+2DwKb47FXjw1ww==",
"requires": {
"chalk": "^2.4.2",
"dayjs": "^1.8.3",
"figures": "^2.0.0",
"std-env": "^2.2.1",
"string-width": "^3.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz",
"integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w=="
},
"string-width": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.0.0.tgz",
"integrity": "sha512-rr8CUxBbvOZDUvc5lNIJ+OC1nPVpz+Siw9VBtUjB9b6jZehZLFt0JMCZzShFHIsI8cbhm0EsNIfWJMFV3cu3Ew==",
"requires": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^5.0.0"
}
},
"strip-ansi": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz",
"integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==",
"requires": {
"ansi-regex": "^4.0.0"
}
}
}
},
"console-browserify": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
@@ -6664,6 +6849,11 @@
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"console-log-level": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/console-log-level/-/console-log-level-1.4.0.tgz",
"integrity": "sha1-QDWBi+6jflhQoMA8jUUMpfLNEhc="
},
"console-stream": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz",
@@ -6740,6 +6930,15 @@
}
}
},
"continuation-local-storage": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz",
"integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==",
"requires": {
"async-listener": "^0.6.0",
"emitter-listener": "^1.1.1"
}
},
"convert-source-map": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
@@ -7800,6 +7999,11 @@
"meow": "^3.3.0"
}
},
"dayjs": {
"version": "1.8.6",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.6.tgz",
"integrity": "sha512-NLhaSS1/wWLRFy0Kn/VmsAExqll2zxRUPmPbqJoeMKQrFxG+RT94VMSE+cVljB6A76/zZkR0Xub4ihTHQ5HgGg=="
},
"de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
@@ -8602,6 +8806,19 @@
"minimalistic-crypto-utils": "^1.0.0"
}
},
"emitter-listener": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz",
"integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==",
"requires": {
"shimmer": "^1.2.0"
}
},
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
"emojis-list": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
@@ -8672,14 +8889,6 @@
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"encoding": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
"requires": {
"iconv-lite": "~0.4.13"
}
},
"end-of-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
@@ -8983,8 +9192,7 @@
"ent": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
"integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
"dev": true
"integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0="
},
"entities": {
"version": "1.1.2",
@@ -9089,7 +9297,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
"dev": true,
"requires": {
"es6-promise": "^4.0.3"
}
@@ -9559,6 +9766,11 @@
"through": "~2.3.1"
}
},
"event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
},
"eventemitter3": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
@@ -10102,6 +10314,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
"dev": true,
"requires": {
"chardet": "^0.4.0",
"iconv-lite": "^0.4.17",
@@ -10305,6 +10518,11 @@
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz",
"integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg=="
},
"fast-text-encoding": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.0.tgz",
"integrity": "sha512-R9bHCvweUxxwkDwhjav5vxpFvdPGlVngtqmx4pIZfSUhM/Q4NiIUHB456BAf+Q1Nwu3HEZYONtu+Rya+af4jiQ=="
},
"fastparse": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
@@ -11435,6 +11653,49 @@
}
}
},
"gaxios": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-1.7.0.tgz",
"integrity": "sha512-2SaZTtaEgnSMgRrBVnPA5O9Tc8xWfnL48fuxFL7zOHZwnam3HiNOkoosnRgnkNBZoEZrH1Aja3wMCrrDtOEqUw==",
"requires": {
"abort-controller": "^2.0.2",
"extend": "^3.0.2",
"https-proxy-agent": "^2.2.1",
"node-fetch": "^2.2.0"
},
"dependencies": {
"agent-base": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
"integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
"requires": {
"es6-promisify": "^5.0.0"
}
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
},
"https-proxy-agent": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
"integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
"requires": {
"agent-base": "^4.1.0",
"debug": "^3.1.0"
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"gaze": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
@@ -11443,6 +11704,15 @@
"globule": "^1.0.0"
}
},
"gcp-metadata": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.9.3.tgz",
"integrity": "sha512-caV4S84xAjENtpezLCT/GILEAF5h/bC4cNqZFmt/tjTn8t+JBtTkQrgBrJu3857YdsnlM8rxX/PMcKGtE8hUlw==",
"requires": {
"gaxios": "^1.0.2",
"json-bigint": "^0.3.0"
}
},
"generate-function": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
@@ -11855,6 +12125,88 @@
"sparkles": "^1.0.0"
}
},
"google-auth-library": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-3.1.0.tgz",
"integrity": "sha512-EntjrOgSffw5EhZGoV8+ROPwEK/aQpoMZaULw3bKailEGdjaUI25PmmFc4AN6vG/Q24YEUiuLxtTXa1Usar5Eg==",
"requires": {
"base64-js": "^1.3.0",
"fast-text-encoding": "^1.0.0",
"gaxios": "^1.2.1",
"gcp-metadata": "^0.9.3",
"gtoken": "^2.3.2",
"https-proxy-agent": "^2.2.1",
"jws": "^3.1.5",
"lru-cache": "^5.0.0",
"semver": "^5.5.0"
},
"dependencies": {
"agent-base": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
"integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
"requires": {
"es6-promisify": "^5.0.0"
}
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
},
"https-proxy-agent": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
"integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
"requires": {
"agent-base": "^4.1.0",
"debug": "^3.1.0"
}
},
"lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"requires": {
"yallist": "^3.0.2"
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
"semver": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
"integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
},
"yallist": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
}
}
},
"google-p12-pem": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.3.tgz",
"integrity": "sha512-KGnAiMMWaJp4j4tYVvAjfP3wCKZRLv9M1Nir2wRRNWUYO7j1aX8O9Qgz+a8/EQ5rAvuo4SIu79n6SIdkNl7Msg==",
"requires": {
"node-forge": "^0.7.5",
"pify": "^4.0.0"
},
"dependencies": {
"pify": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
}
}
},
"got": {
"version": "9.6.0",
"resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
@@ -12002,6 +12354,30 @@
"resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
"integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8="
},
"gtoken": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.2.tgz",
"integrity": "sha512-F8EObUGyC8Qd3WXTloNULZBwfUsOABoHElihB1F6zGhT/cy38iPL09wGLRY712I+hQnOyA+sYlgPFX2cOKz0qg==",
"requires": {
"gaxios": "^1.0.4",
"google-p12-pem": "^1.0.0",
"jws": "^3.1.5",
"mime": "^2.2.0",
"pify": "^4.0.0"
},
"dependencies": {
"mime": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz",
"integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w=="
},
"pify": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
}
}
},
"gulp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz",
@@ -12499,6 +12875,11 @@
}
}
},
"hex2dec": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/hex2dec/-/hex2dec-1.1.2.tgz",
"integrity": "sha512-Yu+q/XWr2fFQ11tHxPq4p4EiNkb2y+lAacJNhAdRXVfRIcDH6gi7htWFnnlIzvqHMHoWeIsfXlNAjZInpAOJDA=="
},
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
@@ -13036,6 +13417,7 @@
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz",
"integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=",
"dev": true,
"requires": {
"ansi-escapes": "^1.1.0",
"chalk": "^1.0.0",
@@ -13056,6 +13438,7 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
@@ -13239,6 +13622,11 @@
"resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-2.0.0.tgz",
"integrity": "sha512-Y75zBYLkh0lJ9qxeHlMjQ7bSbyiSqNW/UOPWDmzC7cXskL1hekSITh1Oc6JV0XCWWZ9DE8VYSB71xocLk3gmGw=="
},
"is": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz",
"integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg=="
},
"is-absolute": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
@@ -14043,6 +14431,14 @@
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
"integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
},
"json-bigint": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz",
"integrity": "sha1-DM2RLEuCcNBfBW+9E4FLU9OCWx4=",
"requires": {
"bignumber.js": "^7.0.0"
}
},
"json-buffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
@@ -15484,11 +15880,6 @@
"resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
"integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU="
},
"lodash.startcase": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz",
"integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg="
},
"lodash.tail": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
@@ -16621,6 +17012,11 @@
"resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz",
"integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE="
},
"module-details-from-path": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz",
"integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is="
},
"moment": {
"version": "2.24.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
@@ -16868,7 +17264,8 @@
"mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
"dev": true
},
"nan": {
"version": "2.12.1",
@@ -17110,13 +17507,9 @@
"integrity": "sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE="
},
"node-fetch": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz",
"integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=",
"requires": {
"encoding": "^0.1.11",
"is-stream": "^1.0.1"
}
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
"integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
},
"node-forge": {
"version": "0.7.6",
@@ -18054,68 +18447,12 @@
"mimic-fn": "^1.0.0"
}
},
"opencollective": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz",
"integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=",
"requires": {
"babel-polyfill": "6.23.0",
"chalk": "1.1.3",
"inquirer": "3.0.6",
"minimist": "1.2.0",
"node-fetch": "1.6.3",
"opn": "4.0.2"
},
"dependencies": {
"babel-polyfill": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz",
"integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=",
"requires": {
"babel-runtime": "^6.22.0",
"core-js": "^2.4.0",
"regenerator-runtime": "^0.10.0"
}
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
}
},
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"regenerator-runtime": {
"version": "0.10.5",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
"integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
}
}
},
"opener": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz",
"integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==",
"dev": true
},
"opn": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
"integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
"requires": {
"object-assign": "^4.0.1",
"pinkie-promise": "^2.0.0"
}
},
"optimist": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
@@ -22343,6 +22680,15 @@
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz",
"integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg="
},
"require-in-the-middle": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-3.1.0.tgz",
"integrity": "sha512-90uK2zPUGdXZSz8eI5pHHvTl3qZRZ5FHxSOnjIYIwczRcP+fjokavi//UeN9i3i2O7UWCZHTgZtrrudpusSo1g==",
"requires": {
"module-details-from-path": "^1.0.3",
"resolve": "^1.5.0"
}
},
"require-main-filename": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
@@ -22572,6 +22918,14 @@
"resolved": "https://registry.npmjs.org/retry/-/retry-0.9.0.tgz",
"integrity": "sha1-b2l+UKDk3cjI9/tUeptg3q1DZ40="
},
"retry-request": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz",
"integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==",
"requires": {
"through2": "^2.0.0"
}
},
"rfdc": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz",
@@ -22607,6 +22961,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"dev": true,
"requires": {
"is-promise": "^2.1.0"
}
@@ -22614,7 +22969,8 @@
"rx": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
"integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
"integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=",
"dev": true
},
"rx-lite": {
"version": "4.0.8",
@@ -22987,6 +23343,11 @@
"rechoir": "^0.6.2"
}
},
"shimmer": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
"integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="
},
"short-uuid": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/short-uuid/-/short-uuid-3.1.0.tgz",
@@ -23765,6 +24126,14 @@
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"std-env": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/std-env/-/std-env-2.2.1.tgz",
"integrity": "sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ==",
"requires": {
"ci-info": "^1.6.0"
}
},
"stdout-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
@@ -24348,6 +24717,48 @@
}
}
},
"teeny-request": {
"version": "3.11.3",
"resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-3.11.3.tgz",
"integrity": "sha512-CKncqSF7sH6p4rzCgkb/z/Pcos5efl0DmolzvlqRQUNcpRIruOhY9+T1FsIlyEbfWd7MsFpodROOwHYh2BaXzw==",
"requires": {
"https-proxy-agent": "^2.2.1",
"node-fetch": "^2.2.0",
"uuid": "^3.3.2"
},
"dependencies": {
"agent-base": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
"integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
"requires": {
"es6-promisify": "^5.0.0"
}
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
},
"https-proxy-agent": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
"integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
"requires": {
"agent-base": "^4.1.0",
"debug": "^3.1.0"
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"temp-dir": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
@@ -25097,10 +25508,6 @@
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"ua-parser-js": {
"version": "github:amplitude/ua-parser-js#ed538f16f5c6ecd8357da989b617d4f156dcf35d",
"from": "github:amplitude/ua-parser-js#ed538f1"
},
"uc.micro": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",

View File

@@ -1,9 +1,10 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.84.2",
"version": "4.86.2",
"main": "./website/server/index.js",
"dependencies": {
"@google-cloud/trace-agent": "^3.5.2",
"@slack/client": "^3.8.1",
"accepts": "^1.3.5",
"amazon-payments": "^0.2.7",
@@ -30,7 +31,7 @@
"bcrypt": "^3.0.1",
"body-parser": "^1.18.3",
"bootstrap": "^4.1.1",
"bootstrap-vue": "^2.0.0-rc.9",
"bootstrap-vue": "^2.0.0-rc.13",
"compression": "^1.7.2",
"cookie-session": "^1.2.0",
"coupon-code": "^0.4.5",

View File

@@ -32,6 +32,7 @@ describe('slack', () => {
},
message: {
id: 'chat-id',
username: 'author',
user: 'Author',
uuid: 'author-id',
text: 'some text',
@@ -50,11 +51,11 @@ describe('slack', () => {
expect(IncomingWebhook.prototype.send).to.be.calledOnce;
expect(IncomingWebhook.prototype.send).to.be.calledWith({
text: 'flagger (flagger-id; language: flagger-lang) flagged a message',
text: 'flagger (flagger-id; language: flagger-lang) flagged a group message',
attachments: [{
fallback: 'Flag Message',
color: 'danger',
author_name: `Author - author@example.com - author-id\n${timestamp}`,
author_name: `@author Author (author@example.com; author-id)\n${timestamp}`,
title: 'Flag in Some group - (private guild)',
title_link: undefined,
text: 'some text',

View File

@@ -63,11 +63,11 @@ describe('POST /chat/:chatId/flag', () => {
/* eslint-disable camelcase */
expect(IncomingWebhook.prototype.send).to.be.calledWith({
text: `${user.profile.name} (${user.id}; language: en) flagged a message`,
text: `${user.profile.name} (${user.id}; language: en) flagged a group message`,
attachments: [{
fallback: 'Flag Message',
color: 'danger',
author_name: `${anotherUser.profile.name} - ${anotherUser.auth.local.email} - ${anotherUser._id}\n${timestamp}`,
author_name: `@${anotherUser.auth.local.username} ${anotherUser.profile.name} (${anotherUser.auth.local.email}; ${anotherUser._id})\n${timestamp}`,
title: 'Flag in Test Guild',
title_link: `${BASE_URL}/groups/guild/${group._id}`,
text: TEST_MESSAGE,
@@ -98,11 +98,11 @@ describe('POST /chat/:chatId/flag', () => {
/* eslint-disable camelcase */
expect(IncomingWebhook.prototype.send).to.be.calledWith({
text: `${newUser.profile.name} (${newUser.id}; language: en) flagged a message`,
text: `${newUser.profile.name} (${newUser.id}; language: en) flagged a group message`,
attachments: [{
fallback: 'Flag Message',
color: 'danger',
author_name: `${newUser.profile.name} - ${newUser.auth.local.email} - ${newUser._id}\n${timestamp}`,
author_name: `@${newUser.auth.local.username} ${newUser.profile.name} (${newUser.auth.local.email}; ${newUser._id})\n${timestamp}`,
title: 'Flag in Test Guild',
title_link: `${BASE_URL}/groups/guild/${group._id}`,
text: TEST_MESSAGE,

View File

@@ -257,7 +257,7 @@ describe('POST /chat', () => {
attachments: [{
fallback: 'Slur Message',
color: 'danger',
author_name: `${user.profile.name} - ${user.auth.local.email} - ${user._id}`,
author_name: `@${user.auth.local.username} ${user.profile.name} (${user.auth.local.email}; ${user._id})`,
title: 'Slur in Test Guild',
title_link: `${BASE_URL}/groups/guild/${groupWithChat.id}`,
text: testSlurMessage,
@@ -310,7 +310,7 @@ describe('POST /chat', () => {
attachments: [{
fallback: 'Slur Message',
color: 'danger',
author_name: `${members[0].profile.name} - ${members[0].auth.local.email} - ${members[0]._id}`,
author_name: `@${members[0].auth.local.username} ${members[0].profile.name} (${members[0].auth.local.email}; ${members[0]._id})`,
title: 'Slur in Party - (private party)',
title_link: undefined,
text: testSlurMessage,

View File

@@ -25,9 +25,9 @@ describe('GET /heroes/:heroId', () => {
it('validates req.params.heroId', async () => {
await expect(user.get('/hall/heroes/invalidUUID')).to.eventually.be.rejected.and.eql({
code: 400,
error: 'BadRequest',
message: t('invalidReqParams'),
code: 404,
error: 'NotFound',
message: t('userWithIDNotFound', {userId: 'invalidUUID'}),
});
});
@@ -40,7 +40,7 @@ describe('GET /heroes/:heroId', () => {
});
});
it('returns only necessary hero data', async () => {
it('returns only necessary hero data given user id', async () => {
let hero = await generateUser({
contributor: {tier: 23},
});
@@ -53,4 +53,18 @@ describe('GET /heroes/:heroId', () => {
expect(heroRes.auth.local).not.to.have.keys(['salt', 'hashed_password']);
expect(heroRes.profile).to.have.all.keys(['name']);
});
it('returns only necessary hero data given username', async () => {
let hero = await generateUser({
contributor: {tier: 23},
});
let heroRes = await user.get(`/hall/heroes/${hero.auth.local.username}`);
expect(heroRes).to.have.all.keys([ // works as: object has all and only these keys
'_id', 'id', 'balance', 'profile', 'purchased',
'contributor', 'auth', 'items',
]);
expect(heroRes.auth.local).not.to.have.keys(['salt', 'hashed_password']);
expect(heroRes.profile).to.have.all.keys(['name']);
});
});

View File

@@ -0,0 +1,74 @@
import {
generateUser,
translate as t,
} from '../../../helpers/api-integration/v4';
describe('POST /members/flag-private-message/:messageId', () => {
let userToSendMessage;
let messageToSend = 'Test Private Message';
beforeEach(async () => {
userToSendMessage = await generateUser();
});
it('Allows players to flag their own private message', async () => {
let receiver = await generateUser();
await userToSendMessage.post('/members/send-private-message', {
message: messageToSend,
toUserId: receiver._id,
});
let senderMessages = await userToSendMessage.get('/inbox/messages');
let sendersMessageInSendersInbox = _.find(senderMessages, (message) => {
return message.uuid === receiver._id && message.text === messageToSend;
});
expect(sendersMessageInSendersInbox).to.exist;
await expect(userToSendMessage.post(`/members/flag-private-message/${sendersMessageInSendersInbox.id}`)).to.eventually.be.ok;
});
it('Flags a private message', async () => {
let receiver = await generateUser();
await userToSendMessage.post('/members/send-private-message', {
message: messageToSend,
toUserId: receiver._id,
});
let receiversMessages = await receiver.get('/inbox/messages');
let sendersMessageInReceiversInbox = _.find(receiversMessages, (message) => {
return message.uuid === userToSendMessage._id && message.text === messageToSend;
});
expect(sendersMessageInReceiversInbox).to.exist;
await expect(receiver.post(`/members/flag-private-message/${sendersMessageInReceiversInbox.id}`)).to.eventually.be.ok;
});
it('Returns an error when user tries to flag a private message that is already flagged', async () => {
let receiver = await generateUser();
await userToSendMessage.post('/members/send-private-message', {
message: messageToSend,
toUserId: receiver._id,
});
let receiversMessages = await receiver.get('/inbox/messages');
let sendersMessageInReceiversInbox = _.find(receiversMessages, (message) => {
return message.uuid === userToSendMessage._id && message.text === messageToSend;
});
expect(sendersMessageInReceiversInbox).to.exist;
await expect(receiver.post(`/members/flag-private-message/${sendersMessageInReceiversInbox.id}`)).to.eventually.be.ok;
await expect(receiver.post(`/members/flag-private-message/${sendersMessageInReceiversInbox.id}`))
.to.eventually.be.rejected.and.eql({
code: 400,
error: 'BadRequest',
message: t('messageGroupChatFlagAlreadyReported'),
});
});
});

View File

@@ -7,14 +7,14 @@ describe('highlightUserAndEmail', () => {
const result = highlightUsers(text, 'user', 'displayedUser');
expect(result).to.contain('<span class="at-highlight at-text">@displayedUser</span>');
expect(result).to.contain('<span class="at-text at-highlight">@displayedUser</span>');
});
it('highlights username', () => {
const text = 'hello @user';
const result = highlightUsers(text, 'user', 'displayedUser');
expect(result).to.contain('<span class="at-highlight at-text">@user</span>');
expect(result).to.contain('<span class="at-text at-highlight">@user</span>');
});
it('not highlights any email', () => {
@@ -32,8 +32,8 @@ describe('highlightUserAndEmail', () => {
const result = highlightUsers(text, 'use', 'mentions');
expect(result).to.contain('<span class="at-highlight at-text">@mentions</span>');
expect(result).to.contain('<span class="at-highlight at-text">@use</span>');
expect(result).to.not.contain('<span class="at-highlight at-text">@mentions</span>.com');
expect(result).to.contain('<span class="at-text at-highlight">@mentions</span>');
expect(result).to.contain('<span class="at-text at-highlight">@use</span>');
expect(result).to.not.contain('<span class="at-text at-highlight">@mentions</span>.com');
});
});

View File

@@ -1,66 +1,36 @@
.promo_armoire_backgrounds_201902 {
.promo_armoire_backgrounds_201903 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -530px;
background-position: 0px -327px;
width: 423px;
height: 147px;
}
.promo_bird_buddies_bundle {
.promo_mystery_201902 {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -689px -148px;
width: 420px;
background-position: -424px -327px;
width: 240px;
height: 147px;
}
.promo_mystery_201901 {
.promo_mythical_marvels_bundle {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -689px -444px;
width: 282px;
background-position: 0px -475px;
width: 423px;
height: 147px;
}
.promo_take_this {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -999px -296px;
background-position: -665px -327px;
width: 96px;
height: 69px;
}
.promo_valentines {
.scene_dailies {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -689px -296px;
width: 309px;
height: 147px;
}
.promo_valentines_potions {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -689px 0px;
width: 420px;
height: 147px;
}
.scene_apollo {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -334px -277px;
width: 279px;
height: 147px;
}
.scene_coding {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -678px;
width: 150px;
height: 150px;
}
.scene_eating_healthy {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -277px;
width: 333px;
height: 252px;
}
.scene_office {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -328px 0px;
width: 360px;
height: 240px;
}
.scene_yesterdailies {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px 0px;
background-position: -441px 0px;
width: 327px;
height: 276px;
}
.scene_tavern {
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px 0px;
width: 440px;
height: 326px;
}

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

View File

@@ -1,306 +1,474 @@
.weapon_warrior_6 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -737px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_0 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -646px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_1 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -828px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -919px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_3 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -100px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_4 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -282px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_5 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -464px -1529px;
width: 90px;
height: 90px;
}
.weapon_wizard_6 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -555px -1529px;
width: 90px;
height: 90px;
}
.Pet_Currency_Gem {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1913px -1504px;
background-position: -276px -1629px;
width: 68px;
height: 68px;
}
.Pet_Currency_Gem1x {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2015px -905px;
background-position: -1802px -735px;
width: 15px;
height: 13px;
}
.Pet_Currency_Gem2x {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1982px -1407px;
background-position: -307px -407px;
width: 30px;
height: 26px;
}
.PixelPaw-Gold {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1982px -1228px;
background-position: -1791px -1529px;
width: 51px;
height: 51px;
}
.PixelPaw {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1963px -905px;
background-position: -479px -1629px;
width: 51px;
height: 51px;
}
.PixelPaw002 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1982px -1297px;
background-position: -531px -1629px;
width: 51px;
height: 51px;
}
.avatar_floral_healer {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: 0px -1529px;
width: 99px;
height: 99px;
}
.avatar_floral_rogue {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1449px -1315px;
width: 99px;
height: 99px;
}
.avatar_floral_warrior {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1249px -1315px;
width: 99px;
height: 99px;
}
.avatar_floral_wizard {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1349px -1315px;
width: 99px;
height: 99px;
}
.empty_bottles {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -414px -1629px;
width: 64px;
height: 54px;
}
.ghost {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -373px -1529px;
width: 90px;
height: 90px;
}
.inventory_present {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1100px -944px;
width: 68px;
height: 68px;
}
.inventory_present_01 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -341px;
width: 68px;
height: 68px;
}
.inventory_present_02 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -660px -435px;
width: 68px;
height: 68px;
}
.inventory_present_03 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -660px -504px;
width: 68px;
height: 68px;
}
.inventory_present_04 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -880px -655px;
width: 68px;
height: 68px;
}
.inventory_present_05 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -138px -1629px;
width: 68px;
height: 68px;
}
.inventory_present_06 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -207px -1629px;
width: 68px;
height: 68px;
}
.inventory_present_07 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -345px -1629px;
width: 68px;
height: 68px;
}
.inventory_present_08 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -272px;
width: 68px;
height: 68px;
}
.inventory_present_09 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -660px -573px;
width: 68px;
height: 68px;
}
.inventory_present_10 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -880px -724px;
width: 68px;
height: 68px;
}
.inventory_present_11 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -880px -793px;
width: 68px;
height: 68px;
}
.inventory_present_12 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1100px -875px;
width: 68px;
height: 68px;
}
.inventory_special_birthday {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1100px -1013px;
width: 68px;
height: 68px;
}
.inventory_special_congrats {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1913px -1366px;
background-position: -1320px -1095px;
width: 68px;
height: 68px;
}
.inventory_special_fortify {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -1366px;
background-position: -1320px -1164px;
width: 68px;
height: 68px;
}
.inventory_special_getwell {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1913px -1228px;
background-position: -1320px -1233px;
width: 68px;
height: 68px;
}
.inventory_special_goodluck {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -1504px;
background-position: -1549px -1315px;
width: 68px;
height: 68px;
}
.inventory_special_greeting {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -1573px;
background-position: -1101px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_nye {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1765px -1444px;
background-position: -1170px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_opaquePotion {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -203px;
background-position: -1239px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_seafoam {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1963px -836px;
background-position: -1308px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_shinySeed {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1935px -1089px;
background-position: -1377px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_snowball {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -1228px;
background-position: -1584px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_spookySparkles {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -1297px;
background-position: -1653px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_thankyou {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1913px -1297px;
background-position: -1722px -1529px;
width: 68px;
height: 68px;
}
.inventory_special_trinket {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -1435px;
background-position: 0px -1629px;
width: 68px;
height: 68px;
}
.inventory_special_valentine {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1913px -1435px;
background-position: -69px -1629px;
width: 68px;
height: 68px;
}
.knockout {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -1180px;
background-position: -1249px -1415px;
width: 120px;
height: 47px;
}
.pet_key {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1913px -1573px;
background-position: -220px -203px;
width: 68px;
height: 68px;
}
.rebirth_orb {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1627px -1444px;
background-position: -1515px -1529px;
width: 68px;
height: 68px;
}
.seafoam_star {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1929px -968px;
background-position: -1010px -1529px;
width: 90px;
height: 90px;
}
.shop_armoire {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1696px -1444px;
background-position: -1446px -1529px;
width: 68px;
height: 68px;
}
.snowman {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -1089px;
background-position: -191px -1529px;
width: 90px;
height: 90px;
}
.zzz {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1982px -1366px;
background-position: -1802px -578px;
width: 40px;
height: 40px;
}
.zzz_light {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1965px -1180px;
background-position: -1802px -537px;
width: 40px;
height: 40px;
}
.notif_inventory_present_01 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2004px -1118px;
background-position: -1793px -925px;
width: 28px;
height: 28px;
}
.notif_inventory_present_02 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -563px;
background-position: -1549px -1384px;
width: 28px;
height: 28px;
}
.notif_inventory_present_03 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -685px;
background-position: -1802px -619px;
width: 28px;
height: 28px;
}
.notif_inventory_present_04 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -592px;
background-position: -1802px -648px;
width: 28px;
height: 28px;
}
.notif_inventory_present_05 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -621px;
background-position: -1802px -677px;
width: 28px;
height: 28px;
}
.notif_inventory_present_06 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -714px;
background-position: -1802px -706px;
width: 28px;
height: 28px;
}
.notif_inventory_present_07 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -743px;
background-position: -1793px -751px;
width: 28px;
height: 28px;
}
.notif_inventory_present_08 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -772px;
background-position: -1793px -780px;
width: 28px;
height: 28px;
}
.notif_inventory_present_09 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -801px;
background-position: -1793px -809px;
width: 28px;
height: 28px;
}
.notif_inventory_present_10 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2004px -1089px;
background-position: -1793px -838px;
width: 28px;
height: 28px;
}
.notif_inventory_present_11 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -534px;
background-position: -1793px -867px;
width: 28px;
height: 28px;
}
.notif_inventory_present_12 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1995px -650px;
background-position: -1793px -896px;
width: 28px;
height: 28px;
}
.notif_inventory_special_birthday {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2010px -238px;
background-position: -1822px -838px;
width: 20px;
height: 24px;
}
.notif_inventory_special_congrats {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2010px -336px;
background-position: -1822px -867px;
width: 20px;
height: 22px;
}
.notif_inventory_special_getwell {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2010px -313px;
background-position: -1822px -896px;
width: 20px;
height: 22px;
}
.notif_inventory_special_goodluck {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2010px -211px;
background-position: -1822px -751px;
width: 20px;
height: 26px;
}
.notif_inventory_special_greeting {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2010px -359px;
background-position: -1822px -925px;
width: 20px;
height: 22px;
}
.notif_inventory_special_nye {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2010px -184px;
background-position: -1817px -1237px;
width: 24px;
height: 26px;
}
.notif_inventory_special_thankyou {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2010px -263px;
background-position: -1822px -780px;
width: 20px;
height: 24px;
}
.notif_inventory_special_valentine {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -2010px -288px;
background-position: -1822px -809px;
width: 20px;
height: 24px;
}
.npc_bailey {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -272px;
width: 63px;
height: 66px;
background-position: 0px -1698px;
width: 60px;
height: 72px;
}
.npc_justin {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -968px;
background-position: -1746px -1379px;
width: 84px;
height: 120px;
}
.npc_matt {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1155px -1315px;
background-position: -1627px -1098px;
width: 195px;
height: 138px;
}
@@ -312,25 +480,25 @@
}
.banner_flair_dysheartener {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1929px -1059px;
background-position: -747px -627px;
width: 69px;
height: 18px;
}
.phobia_dysheartener {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1627px -1061px;
background-position: -527px -220px;
width: 201px;
height: 195px;
}
.quest_alligator {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1627px -645px;
background-position: -1187px -880px;
width: 201px;
height: 213px;
}
.quest_armadillo {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -660px -1095px;
background-position: -220px -1095px;
width: 219px;
height: 219px;
}
@@ -342,13 +510,13 @@
}
.quest_atom2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -947px -1315px;
background-position: -1627px -959px;
width: 207px;
height: 138px;
}
.quest_atom3 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -967px -660px;
background-position: -1627px 0px;
width: 216px;
height: 180px;
}
@@ -360,109 +528,109 @@
}
.quest_badger {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1407px -660px;
background-position: -220px -435px;
width: 219px;
height: 219px;
}
.quest_basilist {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -392px;
background-position: -1627px -1237px;
width: 189px;
height: 141px;
}
.quest_beetle {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1627px -859px;
background-position: -967px -660px;
width: 204px;
height: 201px;
}
.quest_bunny {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1627px -1257px;
background-position: -307px -220px;
width: 210px;
height: 186px;
}
.quest_butterfly {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -435px;
background-position: -967px -220px;
width: 219px;
height: 219px;
}
.quest_cheetah {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -440px -435px;
background-position: -440px -875px;
width: 219px;
height: 219px;
}
.quest_cow {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -307px -220px;
background-position: -1627px -537px;
width: 174px;
height: 213px;
}
.quest_dilatory {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -660px -875px;
background-position: 0px -1095px;
width: 219px;
height: 219px;
}
.quest_dilatoryDistress1 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1627px -434px;
background-position: -1407px -1091px;
width: 210px;
height: 210px;
}
.quest_dilatoryDistress2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -534px;
background-position: -947px -1315px;
width: 150px;
height: 150px;
}
.quest_dilatoryDistress3 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1187px -440px;
background-position: -440px -1095px;
width: 219px;
height: 219px;
}
.quest_dilatory_derby {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -660px -655px;
background-position: -1187px -220px;
width: 219px;
height: 219px;
}
.quest_dustbunnies {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: 0px -1095px;
background-position: -660px -1095px;
width: 219px;
height: 219px;
}
.quest_egg {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -184px;
background-position: -1627px -751px;
width: 165px;
height: 207px;
}
.quest_evilsanta {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -836px;
background-position: -1627px -1379px;
width: 118px;
height: 131px;
}
.quest_evilsanta2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1407px 0px;
background-position: -1407px -220px;
width: 219px;
height: 219px;
}
.quest_falcon {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1407px -440px;
background-position: -1100px -1095px;
width: 219px;
height: 219px;
}
.quest_ferret {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1407px -220px;
background-position: -1407px 0px;
width: 219px;
height: 219px;
}
@@ -474,13 +642,13 @@
}
.quest_ghost_stag {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1100px -1095px;
background-position: -880px -1095px;
width: 219px;
height: 219px;
}
.quest_goldenknight1 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -880px -1095px;
background-position: -220px -875px;
width: 219px;
height: 219px;
}
@@ -498,133 +666,133 @@
}
.quest_gryphon {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -747px -440px;
background-position: -1627px -359px;
width: 216px;
height: 177px;
}
.quest_guineapig {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -1095px;
background-position: -1187px -660px;
width: 219px;
height: 219px;
}
.quest_harpy {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1187px -660px;
background-position: -1187px -440px;
width: 219px;
height: 219px;
}
.quest_hedgehog {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1187px -880px;
background-position: -747px -440px;
width: 219px;
height: 186px;
}
.quest_hippo {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -307px 0px;
background-position: -1187px 0px;
width: 219px;
height: 219px;
}
.quest_horse {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1187px 0px;
background-position: -880px -875px;
width: 219px;
height: 219px;
}
.quest_kangaroo {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -880px -875px;
background-position: -660px -875px;
width: 219px;
height: 219px;
}
.quest_kraken {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -527px -220px;
background-position: -1627px -181px;
width: 216px;
height: 177px;
}
.quest_lostMasterclasser1 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -440px -875px;
background-position: -307px 0px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -875px;
background-position: 0px -875px;
width: 219px;
height: 219px;
}
.quest_lostMasterclasser3 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: 0px -875px;
background-position: -967px -440px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying1 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px -685px;
background-position: -1098px -1315px;
width: 150px;
height: 150px;
}
.quest_mayhemMistiflying2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -967px -440px;
background-position: -967px 0px;
width: 219px;
height: 219px;
}
.quest_mayhemMistiflying3 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -967px -220px;
background-position: -660px -655px;
width: 219px;
height: 219px;
}
.quest_monkey {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -967px 0px;
background-position: -440px -655px;
width: 219px;
height: 219px;
}
.quest_moon1 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1627px -217px;
background-position: -1407px -440px;
width: 216px;
height: 216px;
}
.quest_moon2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -440px -655px;
background-position: -220px -655px;
width: 219px;
height: 219px;
}
.quest_moon3 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -220px -655px;
background-position: 0px -655px;
width: 219px;
height: 219px;
}
.quest_moonstone1 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: 0px -655px;
background-position: -747px -220px;
width: 219px;
height: 219px;
}
.quest_moonstone2 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -747px -220px;
background-position: -747px 0px;
width: 219px;
height: 219px;
}
.quest_moonstone3 {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -747px 0px;
background-position: -440px -435px;
width: 219px;
height: 219px;
}
.quest_nudibranch {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1407px -1097px;
background-position: -1407px -657px;
width: 216px;
height: 216px;
}
@@ -642,37 +810,7 @@
}
.quest_peacock {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1627px 0px;
background-position: -1407px -874px;
width: 216px;
height: 216px;
}
.quest_penguin {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1844px 0px;
width: 190px;
height: 183px;
}
.quest_pterodactyl {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -440px -1095px;
width: 219px;
height: 219px;
}
.quest_rat {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1187px -220px;
width: 219px;
height: 219px;
}
.quest_rock {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: -1407px -880px;
width: 216px;
height: 216px;
}
.quest_rooster {
background-image: url('~assets/images/sprites/spritesmith-main-11.png');
background-position: 0px -1529px;
width: 213px;
height: 174px;
}

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

View File

@@ -1,93 +1,255 @@
.Pet-Wolf-Glow {
.Pet-Velociraptor-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Golden {
.Pet-Velociraptor-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -300px;
background-position: -164px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Holly {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-IcySnow {
.Pet-Velociraptor-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Peppermint {
.Pet-Velociraptor-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Rainbow {
.Pet-Velociraptor-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Red {
.Pet-Whale-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoseQuartz {
.Pet-Whale-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoyalPurple {
.Pet-Whale-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shade {
.Pet-Whale-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shimmer {
.Pet-Whale-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Skeleton {
.Pet-Whale-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Spooky {
.Pet-Whale-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-StarryNight {
.Pet-Whale-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Thunderstorm {
.Pet-Whale-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -100px;
width: 81px;
height: 99px;
}
.Pet-Whale-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Aquatic {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Cupid {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Ember {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Fairy {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Floral {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Frost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Ghost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Glass {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Glow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Holly {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-IcySnow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Peppermint {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Rainbow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoseQuartz {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-RoyalPurple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shimmer {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Spooky {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-StarryNight {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Thunderstorm {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Veteran {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px 0px;
@@ -96,253 +258,253 @@
}
.Pet-Wolf-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -300px;
background-position: -246px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -82px -300px;
background-position: -328px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -164px -300px;
background-position: -410px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -246px -300px;
background-position: -492px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -328px -300px;
background-position: -574px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px 0px;
background-position: -656px 0px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -100px;
background-position: -656px -100px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -200px;
background-position: -656px -200px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -410px -300px;
background-position: -656px -300px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px 0px;
background-position: -656px -400px;
width: 81px;
height: 99px;
}
.Pet-Yarn-White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -100px;
background-position: -656px -500px;
width: 81px;
height: 99px;
}
.Pet-Yarn-Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -492px -200px;
background-position: 0px -600px;
width: 81px;
height: 99px;
}
.Pet_HatchingPotion_Aquatic {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -400px;
background-position: -151px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Base {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -414px -538px;
background-position: -738px -414px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_CottonCandyBlue {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -138px -400px;
background-position: -220px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_CottonCandyPink {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -207px -400px;
background-position: -289px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Cupid {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -276px -400px;
background-position: -358px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Desert {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -345px -400px;
background-position: -427px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Ember {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -414px -400px;
background-position: -496px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Fairy {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -483px -400px;
background-position: -565px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Floral {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -469px;
background-position: -634px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Frost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -69px -469px;
background-position: -738px 0px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Ghost {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -138px -469px;
background-position: -738px -69px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Glass {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -207px -469px;
background-position: -738px -138px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Glow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -276px -469px;
background-position: -738px -207px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Golden {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -345px -469px;
background-position: -738px -276px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Holly {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -414px -469px;
background-position: -738px -345px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_IcySnow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -483px -469px;
background-position: -82px -600px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Peppermint {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px 0px;
background-position: -738px -483px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Purple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -69px;
background-position: -738px -552px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Rainbow {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -138px;
background-position: -738px -621px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Red {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -207px;
background-position: 0px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_RoseQuartz {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -276px;
background-position: -69px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_RoyalPurple {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -345px;
background-position: -138px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Shade {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -574px -414px;
background-position: -207px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Shimmer {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: 0px -538px;
background-position: -276px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Skeleton {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -69px -538px;
background-position: -345px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Spooky {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -138px -538px;
background-position: -414px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_StarryNight {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -207px -538px;
background-position: -483px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Thunderstorm {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -276px -538px;
background-position: -552px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_White {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -345px -538px;
background-position: -621px -700px;
width: 68px;
height: 68px;
}
.Pet_HatchingPotion_Zombie {
background-image: url('~assets/images/sprites/spritesmith-main-24.png');
background-position: -69px -400px;
background-position: -690px -700px;
width: 68px;
height: 68px;
}

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: 84 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 KiB

After

Width:  |  Height:  |  Size: 557 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 KiB

After

Width:  |  Height:  |  Size: 562 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 KiB

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 KiB

After

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 153 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: 151 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 33 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: 125 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 115 KiB

View File

@@ -2,8 +2,8 @@
// possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday, valentines, spring, summer
// more to be added on future seasons
$npc_market_flavor: 'valentines';
$npc_market_flavor: 'normal';
$npc_quests_flavor: 'normal';
$npc_seasonal_flavor: 'normal';
$npc_timetravelers_flavor: 'normal';
$npc_tavern_flavor: 'valentines';
$npc_tavern_flavor: 'normal';

View File

@@ -43,6 +43,8 @@
li(v-html='$t("communityForum")')
li
a(href='https://www.facebook.com/Habitica', target='_blank') {{ $t('communityFacebook') }}
li
a(href='https://www.instagram.com/habitica', target='_blank') {{ $t('communityInstagram') }}
li
a(href='https://www.reddit.com/r/habitrpg/', target='_blank') {{ $t('communityReddit') }}
.col-12.col-md-6
@@ -56,23 +58,22 @@
a(:href="getDataDisplayToolUrl", target='_blank') {{ $t('dataDisplayTool') }}
li
a(href='http://habitica.fandom.com/wiki/Guidance_for_Blacksmiths', target='_blank') {{ $t('guidanceForBlacksmiths') }}
li
a(href='http://devs.habitica.com/', target='_blank') {{ $t('devBlog') }}
.col-6.social
h3 {{ $t('footerSocial') }}
a.social-circle(href='https://twitter.com/habitica', target='_blank')
.social-icon.svg-icon(v-html='icons.twitter')
// TODO: Not ready yet. a.social-circle(href='https://www.instagram.com/habitica/', target='_blank')
.social-icon.svg-icon.instagram(v-html='icons.instagram')
a.social-circle(href='https://www.facebook.com/Habitica', target='_blank')
.social-icon.facebook.svg-icon(v-html='icons.facebook')
.icons
a.social-circle(href='https://twitter.com/habitica', target='_blank')
.social-icon.svg-icon(v-html='icons.twitter')
a.social-circle(href='https://www.instagram.com/habitica/', target='_blank')
.social-icon.svg-icon.instagram(v-html='icons.instagram')
a.social-circle(href='https://www.facebook.com/Habitica', target='_blank')
.social-icon.facebook.svg-icon(v-html='icons.facebook')
.row
.col-12.col-md-8 {{ $t('donateText3') }}
.col-12.col-md-4
button.btn.btn-contribute(@click="donate()", v-if="user")
button.btn.btn-contribute.btn-flat(@click="donate()", v-if="user")
.svg-icon.heart(v-html="icons.heart")
.text {{ $t('companyDonate') }}
.btn.btn-contribute(v-else)
.btn.btn-contribute.btn-flat(v-else)
a(href='http://habitica.fandom.com/wiki/Contributing_to_Habitica', target='_blank')
.svg-icon.heart(v-html="icons.heart")
.text {{ $t('companyContribute') }}
@@ -145,6 +146,22 @@
}
}
.icons {
display: flex;
justify-content: flex-end;
flex-shrink: 1;
}
// smaller than desktop
@media only screen and (max-width: 992px) {
.social-circle {
height: 32px !important;
width: 32px !important;
margin-left: 0.75em !important;
}
}
.social-circle {
width: 40px;
height: 40px;
@@ -152,17 +169,20 @@
background-color: #c3c0c7;
display: flex;
margin-left: 1em;
float: right;
&:first-child {
margin-left: 0;
}
&:hover {
background-color: #a5a1ac;
}
.social-icon {
color: #e1e0e3;
width: 16px;
margin: auto;
}
.instagram {
margin-top: .85em;
}
}
.logo {
@@ -185,6 +205,14 @@
box-shadow: none;
border-radius: 4px;
&:hover {
background: #a5a1ac;
.text {
color: white;
}
}
a {
display: flex;
}

View File

@@ -1,8 +1,8 @@
<template lang="pug">
div
.mentioned-icon(v-if='isUserMentioned')
.message-hidden(v-if='msg.flagCount === 1 && user.contributor.admin') Message flagged once, not hidden
.message-hidden(v-if='msg.flagCount > 1 && user.contributor.admin') Message hidden
.message-hidden(v-if='!inbox && msg.flagCount === 1 && user.contributor.admin') Message flagged once, not hidden
.message-hidden(v-if='!inbox && msg.flagCount > 1 && user.contributor.admin') Message hidden
.card-body
user-link(:userId="msg.uuid", :name="msg.user", :backer="msg.backer", :contributor="msg.contributor")
p.time
@@ -11,25 +11,28 @@ div
span(v-b-tooltip="", :title="msg.timestamp | date") {{ msg.timestamp | timeAgo }}&nbsp;
span(v-if="msg.client && user.contributor.level >= 4") ({{ msg.client }})
.text(v-html='atHighlight(parseMarkdown(msg.text))')
.reported(v-if="isMessageReported && (inbox === true)")
span(v-once) {{ $t('reportedMessage')}}
br
span(v-once) {{ $t('canDeleteNow') }}
hr
.d-flex(v-if='msg.id')
.action.d-flex.align-items-center(v-if='!inbox', @click='copyAsTodo(msg)')
.svg-icon(v-html="icons.copy")
div {{$t('copyAsTodo')}}
.action.d-flex.align-items-center(v-if='!inbox && user.flags.communityGuidelinesAccepted && msg.uuid !== "system"', @click='report(msg)')
.svg-icon(v-html="icons.report")
div {{$t('report')}}
// @TODO make flagging/reporting work in the inbox. NOTE: it must work even if the communityGuidelines are not accepted and it MUST work for messages that you have SENT as well as received. -- Alys
.action.d-flex.align-items-center(v-if='(inbox || (user.flags.communityGuidelinesAccepted && msg.uuid !== "system")) && !isMessageReported', @click='report(msg)')
.svg-icon(v-html="icons.report", v-once)
div(v-once) {{$t('report')}}
.action.d-flex.align-items-center(v-if='msg.uuid === user._id || inbox || user.contributor.admin', @click='remove()')
.svg-icon(v-html="icons.delete")
| {{$t('delete')}}
.svg-icon(v-html="icons.delete", v-once)
div(v-once) {{$t('delete')}}
.ml-auto.d-flex(v-b-tooltip="{title: likeTooltip(msg.likes[user._id])}", v-if='!inbox')
.action.d-flex.align-items-center.mr-0(@click='like()', v-if='likeCount > 0', :class='{active: msg.likes[user._id]}')
.svg-icon(v-html="icons.liked", :title='$t("liked")')
| +{{ likeCount }}
.action.d-flex.align-items-center.mr-0(@click='like()', v-if='likeCount === 0', :class='{active: msg.likes[user._id]}')
.svg-icon(v-html="icons.like", :title='$t("like")')
span(v-if='!msg.likes[user._id]') {{ $t('like') }}
span(v-if='!msg.likes[user._id] && !inbox') {{ $t('like') }}
</template>
<style lang="scss">
@@ -111,6 +114,11 @@ div
color: $purple-400;
}
}
.reported {
margin-top: 18px;
color: $red-50;
}
</style>
<script>
@@ -132,8 +140,15 @@ import reportIcon from 'assets/svg/report.svg';
import {highlightUsers} from '../../libs/highlightUsers';
export default {
props: ['msg', 'inbox', 'groupId'],
components: {userLink},
props: {
msg: {},
inbox: {
type: Boolean,
default: false,
},
groupId: {},
},
data () {
return {
icons: Object.freeze({
@@ -143,6 +158,7 @@ export default {
delete: deleteIcon,
liked: likedIcon,
}),
reported: false,
};
},
filters: {
@@ -191,6 +207,9 @@ export default {
}
return likeCount;
},
isMessageReported () {
return this.msg.flags && this.msg.flags[this.user.id] || this.reported;
},
},
methods: {
async like () {
@@ -216,10 +235,18 @@ export default {
copyAsTodo (message) {
this.$root.$emit('habitica::copy-as-todo', message);
},
async report () {
report () {
this.$root.$on('habitica:report-result', data => {
if (data.ok) {
this.reported = true;
}
this.$root.$off('habitica:report-result');
});
this.$root.$emit('habitica::report-chat', {
message: this.msg,
groupId: this.groupId,
groupId: this.groupId || 'privateMessage',
});
},
async remove () {

View File

@@ -3,7 +3,6 @@
.row
.col-12
copy-as-todo-modal(:group-type='groupType', :group-name='groupName', :group-id='groupId')
report-flag-modal
div(v-for="(msg, index) in messages", v-if='chat && canViewFlag(msg)', :class='{row: inbox}')
.d-flex(v-if='user._id !== msg.uuid', :class='{"flex-grow-1": inbox}')
avatar.avatar-left(
@@ -105,14 +104,21 @@ import findIndex from 'lodash/findIndex';
import Avatar from '../avatar';
import copyAsTodoModal from './copyAsTodoModal';
import reportFlagModal from './reportFlagModal';
import chatCard from './chatCard';
export default {
props: ['chat', 'groupType', 'groupId', 'groupName', 'inbox'],
props: {
chat: {},
inbox: {
type: Boolean,
default: false,
},
groupType: {},
groupId: {},
groupName: {},
},
components: {
copyAsTodoModal,
reportFlagModal,
chatCard,
Avatar,
},

View File

@@ -106,14 +106,16 @@ export default {
this.$root.$emit('bv::hide::modal', 'report-flag');
},
async reportAbuse () {
this.notify('Thank you for reporting this violation. The moderators have been notified.');
this.text(this.$t(this.groupId === 'privateMessage' ? 'pmReported' : 'abuseReported'));
await this.$store.dispatch('chat:flag', {
let result = await this.$store.dispatch('chat:flag', {
groupId: this.groupId,
chatId: this.abuseObject.id,
comment: this.reportComment,
});
this.$root.$emit('habitica:report-result', result);
this.close();
},
async clearFlagCount () {

View File

@@ -20,7 +20,7 @@ div
select.form-control(@change='changeSortDirection($event)')
option(v-for='sortDirection in sortDirections', :value='sortDirection.value') {{sortDirection.text}}
.row.apply-options.d-flex.justify-content-center(v-if='sortDirty')
.row.apply-options.d-flex.justify-content-center(v-if='sortDirty && group.type === "party"')
a(@click='applySortOptions()') {{ $t('applySortToHeader') }}
.row(v-if='invites.length > 0')
.col-6.offset-3.nav

View File

@@ -8,7 +8,7 @@
.row
.form.col-6(v-if='!hero.profile')
.form-group
input.form-control(type='text', v-model='heroID', :placeholder="$t('UUID')")
input.form-control(type='text', v-model='heroID', :placeholder="'User ID or Username'")
.form-group
button.btn.btn-secondary(@click='loadHero(heroID)')
| {{ $t('loadUser') }}

View File

@@ -48,6 +48,7 @@ div
color: $header-color;
flex-wrap: nowrap;
position: relative;
max-height: 10.25rem;
}
.hide-header {

View File

@@ -3,11 +3,13 @@ div
inbox-modal
creator-intro
profileModal
b-navbar.topbar.navbar-inverse.static-top.navbar-expand-lg(type="dark", :class="navbarZIndexClass")
report-flag-modal
send-gems-modal
b-navbar.topbar.navbar-inverse.static-top(toggleable="lg", type="dark", :class="navbarZIndexClass")
b-navbar-brand.brand
.logo.svg-icon.d-none.d-xl-block(v-html="icons.logo")
.svg-icon.gryphon.d-xs-block.d-xl-none
b-nav-toggle(target='menu_collapse').menu-toggle
b-navbar-toggle(target='menu_collapse').menu-toggle
.quick-menu.mobile-only.form-inline
a.item-with-icon(@click="sync", v-b-tooltip.hover.bottom="$t('sync')")
.top-menu-icon.svg-icon(v-html="icons.sync")
@@ -343,19 +345,24 @@ import syncIcon from 'assets/svg/sync.svg';
import svgHourglasses from 'assets/svg/hourglass.svg';
import logo from 'assets/svg/logo.svg';
import creatorIntro from '../creatorIntro';
import InboxModal from '../userMenu/inbox.vue';
import notificationMenu from './notificationsDropdown';
import creatorIntro from '../creatorIntro';
import profileModal from '../userMenu/profileModal';
import sendGemsModal from 'client/components/payments/sendGemsModal';
import userDropdown from './userDropdown';
import reportFlagModal from '../chat/reportFlagModal';
export default {
components: {
userDropdown,
creatorIntro,
InboxModal,
notificationMenu,
creatorIntro,
profileModal,
reportFlagModal,
sendGemsModal,
userDropdown,
},
data () {
return {

View File

@@ -187,6 +187,8 @@
},
hideDialog () {
this.$root.$emit('bv::hide::modal', 'equipgear-modal');
document.body.classList.remove('modal-open');
document.body.setAttribute('data-modal-open-count', document.body.getAttribute('data-modal-open-count') - 1);
},
memberOverrideAvatarGear (gear) {
return {

View File

@@ -82,7 +82,7 @@
)
div(
v-for="group in itemsGroups",
v-if="viewOptions[group.key].selected",
v-if="!anyFilterSelected || viewOptions[group.key].selected",
:key="group.key",
:class='group.key',
)
@@ -383,10 +383,13 @@ export default {
items () {
return this.groupBy === 'type' ? this.gearItemsByType : this.gearItemsByClass;
},
anyFilterSelected () {
return Object.values(this.viewOptions).some(g => g.selected);
},
itemsGroups () {
return map(this.groups, (label, group) => {
this.$set(this.viewOptions, group, {
selected: true,
selected: false,
open: false,
itemsInFirstPosition: [],
firstRender: true,

View File

@@ -25,7 +25,7 @@
b-dropdown-item(@click="sortBy = 'AZ'", :active="sortBy === 'AZ'") {{ $t('AZ') }}
div(
v-for="group in groups",
v-if="group.selected",
v-if="!anyFilterSelected || group.selected",
:key="group.key",
)
h2.mb-3
@@ -225,7 +225,7 @@ const groups = [
return {
key: group,
quantity: 0,
selected: true,
selected: false,
classPrefix,
allowedItems,
};
@@ -340,6 +340,10 @@ export default {
return itemsByType;
},
anyFilterSelected () {
return this.groups.some(g => g.selected);
},
},
methods: {
userHasPet (potionKey, eggKey) {
@@ -465,8 +469,6 @@ export default {
let openedItem = result.data.data;
let text = this.content.gear.flat[openedItem.key].text();
this.drop(this.$t('messageDropMysteryItem', {dropText: text}), openedItem);
item.quantity--;
this.$forceUpdate();
} else {
this.$root.$emit('selectMembersModal::showItem', item);
}

View File

@@ -69,7 +69,7 @@
span.badge.badge-pill.badge-default {{countOwnedAnimals(petGroups[0], 'pet')}}
div(v-for="(petGroup, index) in petGroups",
v-if="viewOptions[petGroup.key].selected",
v-if="!anyFilterSelected || viewOptions[petGroup.key].selected",
:key="petGroup.key")
h4(v-if="viewOptions[petGroup.key].animalCount !== 0") {{ petGroup.label }}
@@ -92,7 +92,11 @@
@click="petClicked(item)"
)
template(slot="itemBadge", slot-scope="context")
starBadge(:selected="item.key === currentPet", :show="isOwned('pet', item)", @click="selectPet(item)")
starBadge(
:selected="context.item.key === currentPet",
:show="isOwned('pet', context.item)",
@click="selectPet(context.item)"
)
.btn.btn-flat.btn-show-more(@click="setShowMore(petGroup.key)", v-if='petGroup.key !== "specialPets"')
| {{ $_openedItemRows_isToggled(petGroup.key) ? $t('showLess') : $t('showMore') }}
@@ -103,7 +107,7 @@
span.badge.badge-pill.badge-default {{countOwnedAnimals(mountGroups[0], 'mount')}}
div(v-for="mountGroup in mountGroups",
v-if="viewOptions[mountGroup.key].selected",
v-if="!anyFilterSelected || viewOptions[mountGroup.key].selected",
:key="mountGroup.key")
h4(v-if="viewOptions[mountGroup.key].animalCount != 0") {{ mountGroup.label }}
@@ -469,7 +473,7 @@
petGroups.map((petGroup) => {
this.$set(this.viewOptions, petGroup.key, {
selected: true,
selected: false,
animalCount: 0,
});
});
@@ -514,7 +518,7 @@
mountGroups.map((mountGroup) => {
this.$set(this.viewOptions, mountGroup.key, {
selected: true,
selected: false,
animalCount: 0,
});
});
@@ -538,6 +542,9 @@
},
];
},
anyFilterSelected () {
return Object.values(this.viewOptions).some(g => g.selected);
},
},
methods: {
setShowMore (key) {

View File

@@ -23,21 +23,31 @@
span.mr-1(v-if="member.auth && member.auth.local && member.auth.local.username") @{{ member.auth.local.username }}
span.mr-1(v-if="member.auth && member.auth.local && member.auth.local.username")
span {{ characterLevel }}
.progress-container(v-b-tooltip.hover.bottom="$t('health')")
.svg-icon(v-html="icons.health")
.progress
.progress-bar.bg-health(:style="{width: `${percent(member.stats.hp, MAX_HEALTH)}%`}")
span.small-text {{member.stats.hp | statFloor}} / {{MAX_HEALTH}}
.progress-container(v-b-tooltip.hover.bottom="$t('experience')")
.svg-icon(v-html="icons.experience")
.progress
.progress-bar.bg-experience(:style="{width: `${percent(member.stats.exp, toNextLevel)}%`}")
span.small-text {{member.stats.exp | statFloor}} / {{toNextLevel}}
.progress-container(v-if="hasClass", v-b-tooltip.hover.bottom="$t('mana')")
.svg-icon(v-html="icons.mana")
.progress
.progress-bar.bg-mana(:style="{width: `${percent(member.stats.mp, maxMP)}%`}")
span.small-text {{member.stats.mp | statFloor}} / {{maxMP}}
stats-bar(
:icon="icons.health",
:value="member.stats.hp",
:maxValue="MAX_HEALTH",
:tooltip="$t('health')",
progressClass="bg-health",
:condensed="condensed"
)
stats-bar(
:icon="icons.experience",
:value="member.stats.exp",
:maxValue="toNextLevel",
:tooltip="$t('experience')",
progressClass="bg-experience",
:condensed="condensed"
)
stats-bar(
v-if="hasClass",
:icon="icons.mana",
:value="member.stats.mp",
:maxValue="maxMP",
:tooltip="$t('mana')",
progressClass="bg-mana",
:condensed="condensed"
)
</template>
<style lang="scss" scoped>
@@ -99,44 +109,6 @@
margin-bottom: .5em
}
.progress-container {
margin-left: 4px;
margin-bottom: .5em;
height: 24px;
}
.progress-container > span {
color: $header-color;
margin-left: 8px;
font-style: normal;
line-height: 1;
}
.progress-container > .svg-icon {
width: 24px;
height: 24px;
margin-right: 8px;
}
.progress-container > .progress {
min-width: 200px;
margin: 0px;
border-radius: 2px;
height: 12px;
background-color: $header-dark-background;
}
.progress-container > .progress > .progress-bar {
border-radius: 2px;
height: 12px;
min-width: 0px;
}
.progress-container .svg-icon, .progress-container .progress, .progress-container .small-text {
display: inline-block;
vertical-align: middle;
}
// Condensed version
.member-details.condensed.expanded {
background: $header-dark-background;
@@ -163,25 +135,6 @@
border-bottom-left-radius: 4px;
z-index: 9;
}
.progress-container > .svg-icon {
width: 19px;
height: 19px;
margin-top: -2px;
}
.progress-container > .progress {
width: 152px;
border-radius: 0px;
height: 10px;
margin-top: 2px;
background: $purple-100;
}
.progress-container > .progress > .progress-bar {
border-radius: 0px;
height: 10px;
}
}
</style>
@@ -190,6 +143,7 @@ import Avatar from './avatar';
import ClassBadge from './members/classBadge';
import { mapState } from 'client/libs/store';
import Profile from './userMenu/profile';
import StatsBar from './ui/statsbar';
import { toNextLevel } from '../../common/script/statHelpers';
import statsComputed from '../../common/script/libs/statsComputed';
@@ -205,9 +159,7 @@ export default {
Avatar,
Profile,
ClassBadge,
},
directives: {
// bTooltip,
StatsBar,
},
props: {
member: {

View File

@@ -1,6 +1,6 @@
<template lang="pug">
b-dropdown.create-dropdown(:text="text", no-flip)
b-dropdown-item(:disabled='true')
b-dropdown-form(:disabled='true')
input.form-control(type='text', v-model='searchTerm')
b-dropdown-item(v-for="member in memberResults", :key="member._id", @click="selectMember(member)")
| {{ member.profile.name }}

View File

@@ -91,7 +91,6 @@ import notificationsMixin from 'client/mixins/notifications';
const TECH_ASSISTANCE_EMAIL = 'admin@habitica.com';
export default {
props: ['userReceivingGems'],
mixins: [paymentsMixin, notificationsMixin],
data () {
return {
@@ -110,6 +109,7 @@ export default {
hrefTechAssistanceEmail: `<a href="mailto:${TECH_ASSISTANCE_EMAIL}">${TECH_ASSISTANCE_EMAIL}</a>`,
},
sendingInProgress: false,
userReceivingGems: null,
};
},
computed: {
@@ -176,5 +176,11 @@ export default {
this.$root.$emit('bv::hide::modal', 'send-gems');
},
},
mounted () {
this.$root.$on('habitica::send-gems', (data) => {
this.userReceivingGems = data;
this.$root.$emit('bv::show::modal', 'send-gems');
});
},
};
</script>

View File

@@ -246,8 +246,8 @@ export default {
categories.push({
identifier: 'cards',
text: this.$t('cards'),
items: _map(_filter(this.content.cardTypes, (value, key) => {
return value.yearRound || key === 'valentine';
items: _map(_filter(this.content.cardTypes, (value) => {
return value.yearRound;
}), (value) => {
return {
...getItemInfo(this.user, 'card', value),

View File

@@ -1009,7 +1009,7 @@ export default {
}
},
handleClick (e) {
if (this.$refs.popup && !this.$refs.popup.$el.contains(e.target)) {
if (this.$refs.popup && !this.$refs.popup.$el.parentNode.contains(e.target)) {
this.closeTagsPopup();
}
},

View File

@@ -0,0 +1,126 @@
<template lang="pug">
.progress-container(ref="container", :id="elementId", :class="{condensed}")
.svg-icon(v-html="icon")
.progress
.progress-bar(:class="progressClass", :style="{width: `${percent(value, maxValue)}%`}")
span.small-text {{value | statFloor}} / {{maxValue}}
b-tooltip.myClass(:target="() => $refs.container", :container="elementId", :title="tooltip", triggers="hover", placement="bottom")
</template>
<style lang="scss" scoped>
@import '~client/assets/scss/colors.scss';
.progress-container {
margin-left: 4px;
margin-bottom: .5em;
height: 24px;
/deep/ .bs-tooltip-bottom {
top: -16px !important
}
}
.progress-container > span {
color: $header-color;
margin-left: 8px;
font-style: normal;
line-height: 1;
}
.progress-container > .svg-icon {
width: 24px;
height: 24px;
margin-right: 8px;
}
.progress-container > .progress {
min-width: 200px;
margin: 0px;
border-radius: 1px;
height: 12px;
background-color: $header-dark-background;
}
.progress-container > .progress > .progress-bar {
border-radius: 1px;
height: 12px;
min-width: 0px;
}
.progress-container .svg-icon, .progress-container .progress, .progress-container .small-text {
display: inline-block;
vertical-align: middle;
}
.progress-container.condensed {
> .svg-icon {
width: 19px;
height: 19px;
margin-top: -2px;
}
> .progress {
width: 152px;
border-radius: 1px;
height: 10px;
margin-top: 2px;
background: $purple-100;
}
> .progress > .progress-bar {
border-radius: 1px;
height: 10px;
}
}
</style>
<script>
import percent from '../../../common/script/libs/percent';
export default {
props: {
icon: {
type: String,
},
value: {
type: Number,
},
maxValue: {
type: Number,
},
tooltip: {
type: String,
},
progressClass: {
type: String,
},
condensed: {
type: Boolean,
default: false,
},
},
data () {
return {
elementId: null,
};
},
filters: {
statFloor (value) {
if (value < 1 && value > 0) {
return Math.ceil(value * 10) / 10;
} else {
return Math.floor(value);
}
},
},
methods: {
percent,
click () {
this.$emit('click');
},
},
mounted () {
this.elementId = `container_${this._uid}`;
},
};
</script>

View File

@@ -103,7 +103,7 @@
return this.icons[`tier${this.level}`];
},
tierTitle () {
return achievementsLib.getContribText(this.level, this.isNPC) || '';
return achievementsLib.getContribText(this.contributor, this.isNPC) || '';
},
levelStyle () {
return this.userLevelStyleFromLevel(this.level, this.isNPC);

View File

@@ -136,7 +136,6 @@
v-show='selectedPage === "stats"',
:showAllocation='showAllocation()',
v-if='user.preferences')
send-gems-modal(:userReceivingGems='userReceivingGems')
</template>
<style lang="scss" >
@@ -325,6 +324,7 @@
}
.progress-container > .progress {
border-radius: 1px;
background-color: $gray-500;
}
}
@@ -372,8 +372,10 @@
.progress {
height: 8px;
border-radius: 1px;
.progress-bar {
border-radius: 1px;
background-color: $green-10 !important;
}
}
@@ -388,7 +390,6 @@ import { mapState } from 'client/libs/store';
import cloneDeep from 'lodash/cloneDeep';
import MemberDetails from '../memberDetails';
import sendGemsModal from 'client/components/payments/sendGemsModal';
import markdown from 'client/directives/markdown';
import achievementsLib from '../../../common/script/libs/achievements';
// @TODO: EMAILS.COMMUNITY_MANAGER_EMAIL
@@ -414,7 +415,6 @@ export default {
markdown,
},
components: {
sendGemsModal,
MemberDetails,
profileStats,
},
@@ -434,7 +434,6 @@ export default {
}),
adminToolsLoaded: false,
userIdToMessage: '',
userReceivingGems: '',
editing: false,
editingProfile: {
name: '',
@@ -499,6 +498,9 @@ export default {
async userId () {
this.loadUser();
},
userLoggedIn () {
this.loadUser();
},
},
methods: {
async loadUser () {
@@ -592,8 +594,7 @@ export default {
axios.post(`/api/v4/user/block/${this.user._id}`);
},
openSendGemsModal () {
this.userReceivingGems = this.user;
this.$root.$emit('bv::show::modal', 'send-gems');
this.$root.$emit('habitica::send-gems', this.user);
},
adminRevokeChat () {
if (!this.hero.flags) {

View File

@@ -9,15 +9,14 @@ const finalMentionRegEx = new RegExp(`${optionalAnchorTagRegExStr}${mentionRegEx
export function highlightUsers (text, userName, displayName) {
const currentUser = [`@${userName}`, `@${displayName}`].map(escapeRegExp);
text = text.replace(finalMentionRegEx, (fullMatched, preMention, mentionStr, postMention) => {
if (preMention && preMention.includes('<a') || Boolean(postMention)) {
return fullMatched;
}
const isUserMention = currentUser.includes(mentionStr) ? 'at-text' : '';
const isUserMention = currentUser.includes(mentionStr) ? 'at-highlight' : '';
return fullMatched.replace(mentionStr, `<span class="at-highlight ${isUserMention}">${mentionStr}</span>`);
return fullMatched.replace(mentionStr, `<span class="at-text ${isUserMention}">${mentionStr}</span>`);
});
return text;

View File

@@ -48,10 +48,18 @@ export async function like (store, payload) {
}
export async function flag (store, payload) {
const url = `/api/v4/groups/${payload.groupId}/chat/${payload.chatId}/flag`;
let url = '';
if (payload.groupId === 'privateMessage') {
url = `/api/v4/members/flag-private-message/${payload.chatId}`;
} else {
url = `/api/v4/groups/${payload.groupId}/chat/${payload.chatId}/flag`;
}
const response = await axios.post(url, {
comment: payload.comment,
});
return response.data.data;
}

View File

@@ -5,6 +5,7 @@ import axios from 'axios';
import { togglePinnedItem as togglePinnedItemOp } from 'common/script/ops/pinnedGearUtils';
import changeClassOp from 'common/script/ops/changeClass';
import disableClassesOp from 'common/script/ops/disableClasses';
import openMysteryItemOp from 'common/script/ops/openMysteryItem';
export function fetch (store, options = {}) { // eslint-disable-line no-shadow
return loadAsyncResource({
@@ -127,7 +128,9 @@ export function castSpell (store, params) {
return axios.post(spellUrl, data);
}
export function openMysteryItem () {
export async function openMysteryItem (store) {
let user = store.state.user.data;
openMysteryItemOp(user);
return axios.post('/api/v4/user/open-mystery-item');
}

View File

@@ -8,11 +8,14 @@ module.exports = {
missingTypeKeyEquip: '"key" and "type" are required parameters.',
chatIdRequired: 'req.params.chatId must contain a chatId.',
messageIdRequired: 'req.params.messageId must contain a message ID.',
guildsOnlyPaginate: 'Only public guilds support pagination.',
guildsPaginateBooleanString: 'req.query.paginate must be a boolean string.',
groupIdRequired: 'req.params.groupId must contain a groupId.',
groupRemainOrLeaveChallenges: 'req.query.keep must be either "remain-in-challenges" or "leave-challenges"',
managerIdRequired: 'req.body.managerId must contain a user ID.',
managerIdRequired: 'req.body.managerId must contain a User ID.',
noSudoAccess: 'You don\'t have sudo access.',
eventRequired: '"req.params.event" is required.',
@@ -22,6 +25,4 @@ module.exports = {
missingCustomerId: 'Missing "req.query.customerId"',
missingPaypalBlock: 'Missing "req.session.paypalBlock"',
missingSubKey: 'Missing "req.query.sub"',
messageIdRequired: '\"messageId\" must be a valid UUID.",',
};

View File

@@ -2,9 +2,9 @@
"potionText": "Heiltrank",
"potionNotes": "Heilt 15 Lebenspunkte (wird sofort angewendet)",
"armoireText": "Verzauberter Schrank",
"armoireNotesFull": "Öffne den Schrank, um zufällig spezielle Ausrüstung, Erfahrung oder Futter zu erhalten! Verbleibende Ausrüstungsgegenstände:",
"armoireNotesFull": "Öffne den Schrank, um zufällig spezielle Ausrüstung, Erfahrung oder Futter zu erhalten! Verbleibende Ausrüstungsgegenstände: ",
"armoireLastItem": "Du hast das letzte Stück seltener Ausrüstung im verzauberten Schrank gefunden.",
"armoireNotesEmpty": "Im verzauberten Schrank gibt es jeweils in der ersten Woche eines Monats neue Ausrüstung. Bis dahin, klicke weiter für Erfahrung und Futter.",
"armoireNotesEmpty": "Im verzauberten Schrank gibt es jeweils in der ersten Woche eines Monats neue Ausrüstung. Bis dahin, klicke weiter für Erfahrung und Futter!",
"dropEggWolfText": "Wolfsjunges",
"dropEggWolfMountText": "Wolfs-Reittier",
"dropEggWolfAdjective": "ein treues",
@@ -291,7 +291,7 @@
"foodCandyWhite": "Vanillebonbon",
"foodCandyWhiteThe": "das Vanillebonbon",
"foodCandyWhiteA": "ein Vanillebonbon",
"foodCandyGolden": "Honigbonbon",
"foodCandyGolden": "Honigbonbon ",
"foodCandyGoldenThe": "das Honigbonbon",
"foodCandyGoldenA": "ein Honigbonbon",
"foodCandyZombie": "Verrottetes Bonbon",
@@ -306,5 +306,6 @@
"foodSaddleText": "Magischer Sattel",
"foodSaddleNotes": "Lässt eines Deiner Haustiere augenblicklich zum Reittier heranwachsen.",
"foodSaddleSellWarningNote": "Hey! Das ist ein sehr nützlicher Gegenstand! Bist Du vertraut damit, wie Du den Sattel mit Deinen Haustieren nutzt?",
"foodNotes": "Verfüttere das an ein Haustier und es wächst bald zu einem kräftigen Reittier heran."
}
"foodNotes": "Verfüttere das an ein Haustier und es wächst bald zu einem kräftigen Reittier heran.",
"hatchingPotionRoseQuartz": "Rosenquarz"
}

View File

@@ -84,7 +84,7 @@
"resetDo": "Ja, setzt mein Konto jetzt zurück!",
"resetComplete": "Zurückgesetzt!",
"fixValues": "Werte reparieren",
"fixValuesText1": "Wenn Du Opfer eines Bugs geworden bist oder einen Fehler gemacht hast, der Deinen Charakter unfair beeinflusst hat (Schaden, den Du nicht hättest erleiden dürfen, Gold das Du nicht verdient hast, usw.), dann kannst Du das hier manuell korrigieren. Ja, das eröffnet die Möglichkeit zu cheaten: Verwende dieses Feature mit Bedacht, oder Du verdirbst Dir das Ausbilden Deiner Gewohnheiten! ",
"fixValuesText1": "Wenn Du Opfer eines Bugs geworden bist oder einen Fehler gemacht hast, der Deinen Charakter unfair beeinflusst hat (Schaden, den Du nicht hättest erleiden dürfen, Gold das Du nicht verdient hast, usw.), dann kannst Du das hier manuell korrigieren. Ja, das eröffnet die Möglichkeit zu cheaten: Verwende dieses Feature mit Bedacht, oder Du verdirbst Dir das Ausbilden Deiner Gewohnheiten!",
"fixValuesText2": "Beachte, dass Du hier keine Strähnen einzelner Aufgaben wiederherstellen kannst. Um das zu tun, bearbeite eine Tagesaufgabe unter erweiterte Optionen. Dort wirst Du ein \"Strähne wiederherstellen\"-Feld finden.",
"disabledWinterEvent": "Während des Winter-Wunderland-Events Teil 4 geschlossen (Weil die Belohnungen mit Gold erworben werden).",
"fix21Streaks": "21-Tage-Strähnen",
@@ -205,4 +205,4 @@
"usernameNotVerified": "Bitte bestätige Deinen Benutzernamen.",
"changeUsernameDisclaimer": "Wir werden bald die Anmeldenamen zu eindeutigen, öffentlichen Benutzernamen umstellen. Dieser Benutzername wird für Einladungen, @Erwähnungen im Chat und Nachrichten verwendet werden.",
"verifyUsernameVeteranPet": "Eines dieser Veteranen-Haustiere wartet auf Dich wenn Du die Bestätigung abgeschlossen hast"
}
}

View File

@@ -473,5 +473,13 @@
"backgroundOldFashionedBakeryText": "Old-Fashioned Bakery",
"backgroundOldFashionedBakeryNotes": "Enjoy delicious smells outside an Old-Fashioned Bakery.",
"backgroundValentinesDayFeastingHallText": "Valentine's Day Feasting Hall",
"backgroundValentinesDayFeastingHallNotes": "Feel the love in a Valentine's Day Feasting Hall."
"backgroundValentinesDayFeastingHallNotes": "Feel the love in a Valentine's Day Feasting Hall.",
"backgrounds032019": "SET 58: Released March 2019",
"backgroundDuckPondText": "Duck Pond",
"backgroundDuckPondNotes": "Feed aquatic birds at the Duck Pond.",
"backgroundFieldWithColoredEggsText": "Field with Colored Eggs",
"backgroundFieldWithColoredEggsNotes": "Hunt for springtime treasure in a Field with Colored Eggs.",
"backgroundFlowerMarketText": "Flower Market",
"backgroundFlowerMarketNotes": "Find the perfect colors for bouquet or garden in a Flower Market."
}

View File

@@ -3,7 +3,7 @@
"potionNotes": "Recover 15 Health (Instant Use)",
"armoireText": "Enchanted Armoire",
"armoireNotesFull": "Open the Armoire to randomly receive special Equipment, Experience, or food! Equipment pieces remaining: ",
"armoireNotesFull": "Open the Armoire to randomly receive special Equipment, Experience, or food! Equipment pieces remaining:",
"armoireLastItem": "You've found the last piece of rare Equipment in the Enchanted Armoire.",
"armoireNotesEmpty": "The Armoire will have new Equipment in the first week of every month. Until then, keep clicking for Experience and Food!",
@@ -364,7 +364,7 @@
"foodCandyWhite": "Vanilla Candy",
"foodCandyWhiteThe": "the Vanilla Candy",
"foodCandyWhiteA": "Vanilla Candy",
"foodCandyGolden": "Honey Candy ",
"foodCandyGolden": "Honey Candy",
"foodCandyGoldenThe": "the Honey Candy",
"foodCandyGoldenA": "Honey Candy",
"foodCandyZombie": "Rotten Candy",

View File

@@ -23,6 +23,7 @@
"communityBug": "Submit Bug",
"communityExtensions": "<a href='http://habitica.fandom.com/wiki/Extensions,_Add-Ons,_and_Customizations' target='_blank'>Add-ons & Extensions</a>",
"communityFacebook": "Facebook",
"communityInstagram": "Instagram",
"communityFeature": "Request Feature",
"communityForum": "<a target='_blank' href='http://habitica.fandom.com/wiki/Special:Forum'>Forum</a>",
"communityKickstarter": "Kickstarter",

View File

@@ -406,7 +406,9 @@
"weaponArmoireArcaneScrollText": "Arcane Scroll",
"weaponArmoireArcaneScrollNotes": "This ancient To-Do list is filled with strange symbols and spells from a forgotten age. Increases Intelligence by <%= int %>. Enchanted Armoire: Scribe Set (Item 3 of 3).",
"weaponArmoireChefsSpoonText": "Chef's Spoon",
"weaponArmoireChefsSpoonNotes": "Raise it as you release your battle cry: “SPOOOON!!” Increases Intelligence by <%= int %>. Enchanted Armoire: Chef Set (Item 3 of 4). ",
"weaponArmoireChefsSpoonNotes": "Raise it as you release your battle cry: “SPOOOON!!” Increases Intelligence by <%= int %>. Enchanted Armoire: Chef Set (Item 3 of 4).",
"weaponArmoireVernalTaperText": "Vernal Taper",
"weaponArmoireVernalTaperNotes": "The days are getting longer, but this candle will help you find your way before sunrise. Increases Constitution by <%= con %>. Enchanted Armoire: Vernal Vestments Set (Item 3 of 3).",
"armor": "armor",
"armorCapitalized": "Armor",
@@ -881,7 +883,9 @@
"armorArmoireScribesRobeText": "Scribe's Robes",
"armorArmoireScribesRobeNotes": "These velvety robes are woven with inspirational and motivational magic. Increases Perception and Intelligence by <%= attrs %> each. Enchanted Armoire: Scribe Set (Item 1 of 3).",
"armorArmoireChefsJacketText": "Chef's Jacket",
"armorArmoireChefsJacketNotes": "This thick cotton jacket is double-breasted to protect you from spills (and conveniently reversible…). Increases Intelligence by <%= int %>. Enchanted Armoire: Chef Set (Item 2 of 4). ",
"armorArmoireChefsJacketNotes": "This thick cotton jacket is double-breasted to protect you from spills (and conveniently reversible…). Increases Intelligence by <%= int %>. Enchanted Armoire: Chef Set (Item 2 of 4).",
"armorArmoireVernalVestmentText": "Vernal Vestment",
"armorArmoireVernalVestmentNotes": "This silky garment is perfect for enjoying mild spring weather in style. Increases Strength and Intelligence by <%= attrs %> each. Enchanted Armoire: Vernal Vestments Set (Item 2 of 3).",
"headgear": "helm",
"headgearCapitalized": "Headgear",
@@ -1366,7 +1370,9 @@
"headArmoireVeilOfSpadesText": "Veil of Spades",
"headArmoireVeilOfSpadesNotes": "A shadowy and mysterious veil that will boost your stealth. Increases Perception by <%= per %>. Enchanted Armoire: Ace of Spades Set (Item 1 of 3).",
"headArmoireToqueBlancheText": "Toque Blanche",
"headArmoireToqueBlancheNotes": "According to legend, the number of folds in this hat indicate the number of ways you know how to cook an egg! Is it accurate? Increases Perception by <%= per %>. Enchanted Armoire: Chef Set (Item 1 of 4). ",
"headArmoireToqueBlancheNotes": "According to legend, the number of folds in this hat indicate the number of ways you know how to cook an egg! Is it accurate? Increases Perception by <%= per %>. Enchanted Armoire: Chef Set (Item 1 of 4).",
"headArmoireVernalHenninText": "Vernal Hennin",
"headArmoireVernalHenninNotes": "More than just a pretty hat, this conical chapeau can also hold a rolled-up To-Do list inside. Increases Perception by <%= per %>. Enchanted Armoire: Vernal Vestments Set (Item 1 of 3).",
"offhand": "off-hand item",
"offhandCapitalized": "Off-Hand Item",
@@ -1568,6 +1574,8 @@
"shieldMystery201709Notes": "This book will guide you through your forays into sorcery. Confers no benefit. September 2017 Subscriber Item.",
"shieldMystery201802Text": "Love Bug Shield",
"shieldMystery201802Notes": "Although it may look like brittle candy, this shield is resistant to even the strongest Shattering Heartbreak attacks! Confers no benefit. February 2018 Subscriber Item.",
"shieldMystery201902Text": "Cryptic Confetti",
"shieldMystery201902Notes": "This glittery paper forms magic hearts that slowly drift and dance in the air. Confers no benefit. February 2019 Subscriber Item",
"shieldMystery301405Text": "Clock Shield",
"shieldMystery301405Notes": "Time is on your side with this towering clock shield! Confers no benefit. June 3015 Subscriber Item.",
"shieldMystery301704Text": "Fluttery Fan",
@@ -1891,6 +1899,8 @@
"eyewearMystery201507Notes": "These sunglasses let you stay cool even when the weather is hot. Confers no benefit. July 2015 Subscriber Item.",
"eyewearMystery201701Text": "Timeless Shades",
"eyewearMystery201701Notes": "These sunglasses will protect your eyes from harmful rays and will look stylish no matter where you find yourself in time! Confers no benefit. January 2017 Subscriber Item.",
"eyewearMystery201902Text": "Cryptic Crush Mask",
"eyewearMystery201902Notes": "This mysterious mask hides your identity but not your winning smile. Confers no benefit. February 2019 Subscriber Item.",
"eyewearMystery301404Text": "Eyewear Goggles",
"eyewearMystery301404Notes": "No eyewear could be fancier than a pair of goggles - except, perhaps, for a monocle. Confers no benefit. April 3015 Subscriber Item.",
"eyewearMystery301405Text": "Monocle",

View File

@@ -162,6 +162,7 @@
"abuseFlagModalBody": "Are you sure you want to report this post? You should <strong>only</strong> report a post that violates the <%= firstLinkStart %>Community Guidelines<%= linkEnd %> and/or <%= secondLinkStart %>Terms of Service<%= linkEnd %>. Inappropriately reporting a post is a violation of the Community Guidelines and may give you an infraction.",
"abuseFlagModalButton": "Report Violation",
"abuseReported": "Thank you for reporting this violation. The moderators have been notified.",
"pmReported": "Thank you for reporting this message.",
"abuseAlreadyReported": "You have already reported this message.",
"whyReportingPost": "Why are you reporting this post?",
"whyReportingPostPlaceholder": "Please help our moderators by letting us know why you are reporting this post for a violation, e.g., spam, swearing, religious oaths, bigotry, slurs, adult topics, violence.",
@@ -230,9 +231,9 @@
"memberCannotRemoveYourself": "You cannot remove yourself!",
"groupMemberNotFound": "User not found among group's members",
"mustBeGroupMember": "Must be member of the group.",
"canOnlyInviteEmailUuid": "Can only invite using user IDs, emails, or usernames.",
"canOnlyInviteEmailUuid": "Can only invite using User IDs, emails, or usernames.",
"inviteMissingEmail": "Missing email address in invite.",
"inviteMissingUuid": "Missing user id in invite",
"inviteMissingUuid": "Missing User ID in invite",
"inviteMustNotBeEmpty": "Invite must not be empty.",
"partyMustbePrivate": "Parties must be private",
"userAlreadyInGroup": "UserID: <%= userId %>, User \"<%= username %>\" already in that group.",

View File

@@ -45,7 +45,7 @@
"messageAuthEmailTaken": "Email already taken",
"messageAuthNoUserFound": "No user found.",
"messageAuthMustBeLoggedIn": "You must be logged in.",
"messageAuthMustIncludeTokens": "You must include a token and uid (user id) in your request",
"messageAuthMustIncludeTokens": "You must include a token and uid (User ID) in your request",
"messageGroupAlreadyInParty": "Already in a party, try refreshing.",
"messageGroupOnlyLeaderCanUpdate": "Only the group leader can update the group!",
@@ -71,6 +71,7 @@
"beginningOfConversation": "This is the beginning of your conversation with <%= userName %>. Remember to be kind, respectful, and follow the Community Guidelines!",
"messageDeletedUser": "Sorry, this user has deleted their account.",
"messageMissingDisplayName": "Missing display name."
"messageMissingDisplayName": "Missing display name.",
"reportedMessage": "You have reported this message to moderators.",
"canDeleteNow": "You can now delete the message if you wish."
}

View File

@@ -737,5 +737,8 @@
"questVelociraptorCompletion": "You burst through the grass, confronting the Veloci-Rapper.<br><br><em>See here, rapper, youre no quitter,<br>Youre Bad Habits' hardest hitter!<br>Check off your To-Dos like a boss,<br>Dont mourn over one days loss!</em><br><br>Filled with renewed confidence, it bounds off to freestyle another day, leaving behind three eggs where it sat.",
"questVelociraptorBoss": "Veloci-Rapper",
"questVelociraptorDropVelociraptorEgg": "Velociraptor (Egg)",
"questVelociraptorUnlockText": "Unlocks purchasable Velociraptor eggs in the Market"
"questVelociraptorUnlockText": "Unlocks purchasable Velociraptor eggs in the Market",
"mythicalMarvelsText": "Mythical Marvels Quest Bundle",
"mythicalMarvelsNotes": "Contains 'Convincing the Unicorn Queen,' 'The Fiery Gryphon,' and 'Danger in the Depths: Sea Serpent Strike!' Available until February 28."
}

View File

@@ -154,6 +154,7 @@
"mysterySet201811": "Splendid Sorcerer Set",
"mysterySet201812": "Arctic Fox Set",
"mysterySet201901": "Polaris Set",
"mysterySet201902": "Cryptic Crush Set",
"mysterySet301404": "Steampunk Standard Set",
"mysterySet301405": "Steampunk Accessories Set",
"mysterySet301703": "Peacock Steampunk Set",

View File

@@ -408,5 +408,7 @@
"backgroundArchaeologicalDigText": "Escavação Arqueológica",
"backgroundArchaeologicalDigNotes": "Desenterre segredos de um passado remoto em uma Escavação Arqueológica.",
"backgroundScribesWorkshopText": "Oficina do Escriba",
"backgroundScribesWorkshopNotes": "Escreva seu próximo grande pergaminho na Oficina do Escriba."
}
"backgroundScribesWorkshopNotes": "Escreva seu próximo grande pergaminho na Oficina do Escriba.",
"backgrounds022019": "Conjunto 57: Lançado em Fevereiro de 2019",
"backgroundMedievalKitchenText": "Cozinheiro Medieval"
}

View File

@@ -92,7 +92,7 @@
"backgroundDriftingRaftText": "Дрейфующий плот",
"backgroundDriftingRaftNotes": "Поплавайте на дрейфующем плоте.",
"backgroundShimmeryBubblesText": "Блестящие пузыри",
"backgroundShimmeryBubblesNotes": "Переплывите море Блестящих пузырей",
"backgroundShimmeryBubblesNotes": "Переплывите море Блестящих пузырей.",
"backgroundIslandWaterfallsText": "Остров Водопадов",
"backgroundIslandWaterfallsNotes": "Устройте пикник на Острове Водопадов.",
"backgrounds072015": "Набор 14: Выпущен в июле 2015",
@@ -111,7 +111,7 @@
"backgroundTwinklyPartyLightsNotes": "Танцуйте под мерцающими праздничными огоньками!",
"backgrounds092015": "Набор 16: Выпущен в сентябре 2015",
"backgroundMarketText": "Рынок Habitica",
"backgroundMarketNotes": "Покупайте на рынке Habitica",
"backgroundMarketNotes": "Покупайте на рынке Habitica.",
"backgroundStableText": "Стойла Habitica",
"backgroundStableNotes": "Заботьтесь о скакунах в стойлах Habitica.",
"backgroundTavernText": "Таверна Habitica",
@@ -157,7 +157,7 @@
"backgroundRainforestText": "Тропический лес",
"backgroundRainforestNotes": "Отправьтесь в тропический лес.",
"backgroundStoneCircleText": "Круг Каменных глыб",
"backgroundStoneCircleNotes": "Творите заклинания в круге Каменных глыб!",
"backgroundStoneCircleNotes": "Творите заклинания в круге каменных глыб!",
"backgrounds042016": "Набор 23: Выпущен в апреле 2016",
"backgroundArcheryRangeText": "Лучное стрельбище",
"backgroundArcheryRangeNotes": "Практикуйтесь на лучном стрельбище.",
@@ -165,7 +165,7 @@
"backgroundGiantFlowersNotes": "Веселитесь над Гигантскими Цветами.",
"backgroundRainbowsEndText": "Там, где кончается радуга",
"backgroundRainbowsEndNotes": "Отыщите золото там, где кончается радуга.",
"backgrounds052016": "Набор 24: Выпущен в Мае 2016",
"backgrounds052016": "Набор 24: Выпущен в мае 2016",
"backgroundBeehiveText": "Пчелиный улей",
"backgroundBeehiveNotes": "Жужжите и танцуйте в Пчелином улье.",
"backgroundGazeboText": "Беседка",
@@ -207,12 +207,12 @@
"backgroundStrangeSewersNotes": "Пройдите сквозь Странные стоки.",
"backgroundRainyCityText": "Дождливый город",
"backgroundRainyCityNotes": "Шлепайте по лужам Дождливого города.",
"backgrounds112016": "Набор 30: Выпущен в октябре 2016",
"backgrounds112016": "Набор 30: Выпущен в ноябре 2016",
"backgroundMidnightCloudsText": "Полуночные облака",
"backgroundMidnightCloudsNotes": "Совершите полет сквозь Полуночные Облака.",
"backgroundStormyRooftopsText": "Крыши, открытые всем ветрам",
"backgroundStormyRooftopsNotes": "Преодолейте путь по Крышам, открытым всем ветрам.",
"backgroundWindyAutumnText": "Ветренная Осень ",
"backgroundWindyAutumnText": "Ветреная осень",
"backgroundWindyAutumnNotes": "Ветреная Осень — время гоняться за листьями.",
"incentiveBackgrounds": "Набор простых фонов",
"backgroundVioletText": "Фиолетовый",
@@ -243,26 +243,26 @@
"backgroundStoikalmVolcanoesNotes": "Исследуйте Стойкальмский вулкан.",
"backgrounds022017": "Набор 33: Выпущен в феврале 2017",
"backgroundBellTowerText": "Колокольня",
"backgroundBellTowerNotes": "Поднимитесь на Колокольню",
"backgroundBellTowerNotes": "Поднимитесь на колокольню.",
"backgroundTreasureRoomText": "Сокровищница",
"backgroundTreasureRoomNotes": "Окунитесь в роскошь Сокровищницы",
"backgroundTreasureRoomNotes": "Окунитесь в роскошь сокровищницы.",
"backgroundWeddingArchText": "Свадебная Арка",
"backgroundWeddingArchNotes": "Покрасуйтесь под Свадебной Аркой",
"backgroundWeddingArchNotes": "Покрасуйтесь под свадебной аркой.",
"backgrounds032017": "Набор 34: Выпущен в марте 2017",
"backgroundMagicBeanstalkText": "Волшебный бобовый стебель",
"backgroundMagicBeanstalkNotes": "Подняться по Волшебному Бобовому Стеблю",
"backgroundMagicBeanstalkNotes": "Поднимитесь по волшебному бобовому стеблю.",
"backgroundMeanderingCaveText": "Извилистая пещера",
"backgroundMeanderingCaveNotes": "Исследуйте Извилистую пещеру",
"backgroundMeanderingCaveNotes": "Исследуйте извилистую пещеру.",
"backgroundMistiflyingCircusText": "Мистический Цирк",
"backgroundMistiflyingCircusNotes": "Пирушка в Мистическом Цирке",
"backgrounds042017": "Набор 35: Выпущен в Апреле 2017",
"backgroundMistiflyingCircusNotes": опируйте в мистическом цирке.",
"backgrounds042017": "Набор 35: Выпущен в апреле 2017",
"backgroundBugCoveredLogText": "Покрытое жучками бревно",
"backgroundBugCoveredLogNotes": "Исследуйте покрытое жучками бревно.",
"backgroundGiantBirdhouseText": "Гигантский скворечник ",
"backgroundGiantBirdhouseNotes": "Взгромоздиться на птичий скворечник",
"backgroundGiantBirdhouseText": "Гигантский скворечник",
"backgroundGiantBirdhouseNotes": "Взгромоздитесь на птичий скворечник.",
"backgroundMistShroudedMountainText": "Туманная гора",
"backgroundMistShroudedMountainNotes": "Встреча на вершине Туманной горы.",
"backgrounds052017": "Набор 36: Выпущен в Мае 2017",
"backgrounds052017": "Набор 36: Выпущен в мае 2017",
"backgroundGuardianStatuesText": "Статуи стражей",
"backgroundGuardianStatuesNotes": "Встаньте на дежурство перед Статуями Стражей.",
"backgroundHabitCityStreetsText": "Улицы города Habit",
@@ -276,11 +276,11 @@
"backgroundOceanSunriseNotes": "Восхититься рассветом у океана.",
"backgroundSandcastleText": "Замок из песка",
"backgroundSandcastleNotes": "Править замком из песка.",
"backgrounds072017": "Набор 38: выпущен в июле 2017 года",
"backgrounds072017": "Набор 38: Выпущен в июле 2017",
"backgroundGiantSeashellText": "Огромная ракушка",
"backgroundGiantSeashellNotes": "Развалитесь в огромной ракушке.",
"backgroundKelpForestText": "Лес вородослей",
"backgroundKelpForestNotes": "Проплывите по лесу из водорослей",
"backgroundKelpForestNotes": "Проплывите по лесу из водорослей.",
"backgroundMidnightLakeText": "Полуночное озеро",
"backgroundMidnightLakeNotes": "Отдохните в полночь у озера.",
"backgrounds082017": "Набор 39: Выпущен в августе 2017",
@@ -288,9 +288,9 @@
"backgroundBackOfGiantBeastNotes": "Ехать на Спине Гиганта.",
"backgroundDesertDunesText": "Пустынные дюны",
"backgroundDesertDunesNotes": "Смело обследовать Пустынные Дюны.",
"backgroundSummerFireworksText": "Летние фейерверки ",
"backgroundSummerFireworksText": "Летние фейерверки",
"backgroundSummerFireworksNotes": "Отпраздновать День Именования Habitica летними фейерверками!",
"backgrounds092017": "Набор 40: выпущен в сентябре 2017",
"backgrounds092017": "Набор 40: Выпущен в сентябре 2017",
"backgroundBesideWellText": "Возле колодца",
"backgroundBesideWellNotes": "Прогуляйтесь возле колодца.",
"backgroundGardenShedText": "Сарай в саду",
@@ -306,11 +306,11 @@
"backgroundTarPitsNotes": "Пройдитесь на цыпочках по смоляным ямам.",
"backgrounds112017": "Набор 42: Выпущен в ноябре 2017",
"backgroundFiberArtsRoomText": "Прядильная комната",
"backgroundFiberArtsRoomNotes": "Сплетите нить в прядильной комнате",
"backgroundFiberArtsRoomNotes": "Сплетите нить в прядильной комнате.",
"backgroundMidnightCastleText": "Полуночной замок",
"backgroundMidnightCastleNotes": "Совершите ночную прогулку у замка.",
"backgroundTornadoText": "Торнадо",
"backgroundTornadoNotes": "Пролетите сквозь торнадо",
"backgroundTornadoNotes": "Пролетите сквозь торнадо.",
"backgrounds122017": "Набор 43: Выпущен в декабре 2017",
"backgroundCrosscountrySkiTrailText": "Лыжная трасса в лесу",
"backgroundCrosscountrySkiTrailNotes": "Проскользите по Лыжной трассе в лесу.",
@@ -339,35 +339,35 @@
"backgroundElegantBalconyNotes": "Осмотрите пейзаж с Элегантного балкона.",
"backgroundDrivingACoachText": "Кучер повозки",
"backgroundDrivingACoachNotes": "Наслаждайтесь видом на поля цветов, управляя повозкой.",
"backgrounds042018": "Набор 47: Выпущен в Апреле 2018",
"backgrounds042018": "Набор 47: Выпущен в апреле 2018",
"backgroundTulipGardenText": "Сад тюльпанов",
"backgroundTulipGardenNotes": "Пройдитесь на цыпочках через Сад Тюльпанов.",
"backgroundFlyingOverWildflowerFieldText": "Поле цветов",
"backgroundFlyingOverWildflowerFieldNotes": "Парите над полем цветов.",
"backgroundFlyingOverAncientForestText": "Древний лес",
"backgroundFlyingOverAncientForestNotes": "Летите над куполом Древнего Леса.",
"backgrounds052018": "Набор 48: Выпущен в Мае 2018",
"backgrounds052018": "Набор 48: Выпущен в мае 2018",
"backgroundTerracedRiceFieldText": "Рисовое поле",
"backgroundTerracedRiceFieldNotes": "Насладитесь усеянным рисовым полем в сезон созревания",
"backgroundTerracedRiceFieldNotes": "Насладитесь усеянным рисовым полем в сезон созревания.",
"backgroundFantasticalShoeStoreText": "Удивительная обувная лавка",
"backgroundFantasticalShoeStoreNotes": "Найдите себе новую пару обуви в Удивительной обувной лавке.",
"backgroundChampionsColosseumText": "Колизей Чемпионов",
"backgroundChampionsColosseumNotes": "Окунитесь в лучах славы на Колизеи Чемпионов.",
"backgrounds062018": "Набор 49: Выпущен в Июне 2018",
"backgrounds062018": "Набор 49: Выпущен в июне 2018",
"backgroundDocksText": "Причал",
"backgroundDocksNotes": "Рыбачить с поверхности причала",
"backgroundDocksNotes": "Порыбачьте на причале.",
"backgroundRowboatText": "Гребная лодка",
"backgroundRowboatNotes": "Петь песни в гребной лодке",
"backgroundRowboatNotes": "Спойте в гребной лодке.",
"backgroundPirateFlagText": "Пиратский флаг",
"backgroundPirateFlagNotes": "Расправить устрашающий Пиратский флаг",
"backgrounds072018": "Набор 50: Выпущен в Июле 2018",
"backgroundPirateFlagNotes": "Расправьте устрашающий пиратский флаг.",
"backgrounds072018": "Набор 50: Выпущен в июле 2018",
"backgroundDarkDeepText": "Темные глубины",
"backgroundDarkDeepNotes": "Ныряйте в темные глубины среди светящихся обитателей.",
"backgroundDilatoryCityText": "Город Промедления",
"backgroundDilatoryCityNotes": "Побродите по подводному городу Промедления.",
"backgroundTidePoolText": "Приливной бассейн",
"backgroundTidePoolNotes": "Исследуйте морскую фауну возле приливного бассейна.",
"backgrounds082018": "Набор 51: Выпущен в Августе 2018",
"backgrounds082018": "Набор 51: Выпущен в августе 2018",
"backgroundTrainingGroundsText": "Тренировочная площадка",
"backgroundTrainingGroundsNotes": "Сразитесь на тренировочной площадке.",
"backgroundFlyingOverRockyCanyonText": "Скалистый каньон",
@@ -381,7 +381,7 @@
"backgroundGiantBookNotes": "Прочтите гигантскую книгу, пройдя по её страницам.",
"backgroundCozyBarnText": "Уютный амбар",
"backgroundCozyBarnNotes": "Отдохните со своими питомцами и скакунами в вашем уютном амбаре.",
"backgrounds102018": "Набор 53: Выпущен в Октябре 2018",
"backgrounds102018": "Набор 53: Выпущен в октябре 2018",
"backgroundBayouText": "Болото",
"backgroundBayouNotes": "Насладитесь блеском светлячков на болоте.",
"backgroundCreepyCastleText": "Пугающий замок",
@@ -408,5 +408,12 @@
"backgroundArchaeologicalDigText": "Археологические раскопки",
"backgroundArchaeologicalDigNotes": "Раскройте тайны древнего прошлого на археологических раскопках.",
"backgroundScribesWorkshopText": "Мастерская писца",
"backgroundScribesWorkshopNotes": "Напишите свой следующий великий свиток в мастерской писца."
}
"backgroundScribesWorkshopNotes": "Напишите свой следующий великий свиток в мастерской писца.",
"backgrounds022019": "Набор 57: Выпущен в феврале 2019",
"backgroundMedievalKitchenText": "Средневековая кухня",
"backgroundMedievalKitchenNotes": "Приготовьте бурю на средневековой кухне.",
"backgroundOldFashionedBakeryText": "Старомодная пекарня",
"backgroundOldFashionedBakeryNotes": "Насладитесь вкусными запахами из старомодной пекарни.",
"backgroundValentinesDayFeastingHallText": "Праздничный зал Дня святого Валентина",
"backgroundValentinesDayFeastingHallNotes": "Почувствуйте любовь в праздничном зале Дня святого Валентина."
}

View File

@@ -87,7 +87,7 @@
"onlyLeaderUpdateChal": "Только лидер испытания может обновить его.",
"winnerNotFound": "Победитель с ID \"<%= userId %>\" не найден или не участвует в этом испытании.",
"noCompletedTodosChallenge": "\"includeCompletedTodos\" не поддерживается при получении заданий испытания.",
"userTasksNoChallengeId": "Когда \"tasksOwner\" - \"user\", \"challengeId\" не может быть передано",
"userTasksNoChallengeId": "Когда \"tasksOwner\" - \"user\", \"challengeId\" не может быть передано.",
"onlyChalLeaderEditTasks": "Задания, связанные с испытанием, может редактировать только лидер.",
"userAlreadyInChallenge": "Пользователь уже участвует в этом испытании.",
"cantOnlyUnlinkChalTask": "Только испорченные задания испытаний могут быть откреплены.",
@@ -97,7 +97,7 @@
"myChallenges": "Мои испытания",
"findChallenges": "Найти испытания",
"noChallengeTitle": "У вас нет испытаний.",
"challengeDescription1": "Испытания это мероприятия сообщества, в которых игроки получают награду за прохождение групповых заданий",
"challengeDescription1": "Испытания это мероприятия сообщества, в которых игроки получают награду за прохождение групповых заданий.",
"challengeDescription2": "Найдите рекомендованные испытания по вашим интересам, посмотрите общедоступные испытания или создайте свое собственное.",
"noChallengeMatchFilters": "Не найдены подходящие Испытания.",
"createdBy": "Создано",
@@ -136,4 +136,4 @@
"selectMember": "Выбрать учасника",
"confirmKeepChallengeTasks": "Вы хотите оставить задания испытания?",
"selectParticipant": "Выбрать участника"
}
}

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