From dda61807922655515e0fc9bbc075bd6f51491b9c Mon Sep 17 00:00:00 2001 From: SabreCat Date: Thu, 6 Jul 2023 10:05:07 -0500 Subject: [PATCH 01/57] fix(lint): remove console.info --- .../libs/chatReporting/profileReporter.js | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 website/server/libs/chatReporting/profileReporter.js diff --git a/website/server/libs/chatReporting/profileReporter.js b/website/server/libs/chatReporting/profileReporter.js new file mode 100644 index 00000000000..60a32899226 --- /dev/null +++ b/website/server/libs/chatReporting/profileReporter.js @@ -0,0 +1,81 @@ +import nconf from 'nconf'; +import { model as User } from '../../models/user'; +import { getUserInfo, sendTxn } from '../email'; +import * as slack from '../slack'; + +import ChatReporter from './chatReporter'; +import { + BadRequest, + NotFound, +} from '../errors'; + +const FLAG_REPORT_EMAILS = nconf.get('FLAG_REPORT_EMAIL') + .split(',') + .map(email => ({ email, canSend: true })); + +export default class ProfileReporter extends ChatReporter { + constructor (req, res) { + super(req, res); + + this.user = res.locals.user; + } + + async validate () { + this.req.checkParams('memberId', apiError('memberIdRequired')).notEmpty(); + + const validationErrors = this.req.validationErrors(); + if (validationErrors) throw validationErrors; + + const flaggedUser = await User.findOne( + { _id: this.req.query.memberId }, + { auth: 1, profile: 1 }, + ).exec(); + if (!flaggedUser) { + throw new NotFound(this.res.t('userWithIDNotFound')); + } + + if (flaggedUser.profile.flags.indexOf(this.user._id) !== -1 && !this.user.hasPermission('moderator')) { + throw new BadRequest('A profile can not be flagged more than once by the same user.'); + } + + const userComment = this.req.body.comment; + + return { flaggedUser, userComment }; + } + + getEmailVariables (flaggedUser) { + const reportingUserData = { + user: this.user.profile.name, + username: this.user.auth.local.username, + uuid: this.user._id, + email: getUserInfo(this.user, ['email']).email, + }; + + const flaggedUserData = { + user: flaggedUser.profile.name, + username: flaggedUser.auth.local.username, + uuid: flaggedUser._id, + email: getUserInfo(flaggedUser, ['email']).email, + }; + + return [ + ...this.createGenericAuthorVariables('REPORTER', reportingUserData), + ...this.createGenericAuthorVariables('FLAGGED', flaggedUserData), + ]; + } + + async notify (flaggedUser, userComment) { + let emailVariables = await this.getEmailVariables(flaggedUser); + emailVariables = emailVariables.concat([ + { name: 'REPORTER_COMMENT', content: userComment || '' }, + ]); + + sendTxn(FLAG_REPORT_EMAILS, 'profile-report-to-mods-with-comments', emailVariables); + + slack.sendProfileFlagNotification({ + reporter: this.user, + flaggedUser, + userComment, + }); + } +} \ No newline at end of file From 55848c58bead479fdb687bb9a2e2b2a649a557e9 Mon Sep 17 00:00:00 2001 From: SabreCat Date: Mon, 10 Jul 2023 16:24:20 -0500 Subject: [PATCH 02/57] WIP(members): basic report a user API --- website/server/controllers/api-v3/members.js | 36 +++++++++++++++++++ .../libs/chatReporting/chatReporterFactory.js | 3 ++ .../libs/chatReporting/profileReporter.js | 24 ++++++++++++- website/server/libs/slack.js | 34 ++++++++++++++++++ website/server/models/user/schema.js | 3 ++ 5 files changed, 99 insertions(+), 1 deletion(-) diff --git a/website/server/controllers/api-v3/members.js b/website/server/controllers/api-v3/members.js index 11469a56847..93e2173bca0 100644 --- a/website/server/controllers/api-v3/members.js +++ b/website/server/controllers/api-v3/members.js @@ -27,6 +27,7 @@ import { } from '../../models/message'; import highlightMentions from '../../libs/highlightMentions'; import { handleGetMembersForChallenge } from '../../libs/challenges/handleGetMembersForChallenge'; +import { chatReporterFactory } from '../../libs/chatReporting/chatReporterFactory'; const { achievements } = common; @@ -777,4 +778,39 @@ api.transferGems = { }, }; +/** + * @api {post} /api/v3/members/:memberId/flag Flag (report) a user + * @apiDescription Sends an email to staff about another user or their profile + * @apiName FlagUser + * @apiGroup Members + * + * @apiParam (Path) {UUID} memberId The unique ID of the user being flagged + * @apiParam (Body) {String} [comment] explain why the user was flagged + * + * @apiSuccess {Object} data The flagged user + * @apiSuccess {UUID} data.id The id of the flagged user + * @apiSuccess {String} data.username The username of the flagged user + * @apiSuccess {Object} data.profile The flagged user's profile information + * @apiSuccess {String} data.profile.blurb Text of the flagged user's profile bio + * @apiSuccess {String} data.profile.imageUrl URL of the flagged user's profile image + * @apiSuccess {String} data.profile.name The flagged user's display name + * + * @apiError (400) {BadRequest} AlreadyFlagged A profile cannot be flagged + * more than once by the same user. + * @apiError (400) {BadRequest} MemberIdRequired The `memberId` param is required + * and must be a valid `UUID`. + * @apiError (404) {NotFound} UserWithIdNotFound The `memberId` param did not + * belong to an existing user. + */ +api.flagUser = { + method: 'POST', + url: '/members/:memberId/flag', + middlewares: [authWithHeaders()], + async handler (req, res) { + const chatReporter = chatReporterFactory('User', req, res); + const flaggedUser = await chatReporter.flag(); + res.respond(200, flaggedUser); + }, +}; + export default api; diff --git a/website/server/libs/chatReporting/chatReporterFactory.js b/website/server/libs/chatReporting/chatReporterFactory.js index 39f8810ba54..e0b9e7b0196 100644 --- a/website/server/libs/chatReporting/chatReporterFactory.js +++ b/website/server/libs/chatReporting/chatReporterFactory.js @@ -1,11 +1,14 @@ import GroupChatReporter from './groupChatReporter'; import InboxChatReporter from './inboxChatReporter'; +import ProfileReporter from './profileReporter'; export function chatReporterFactory (type, req, res) { // eslint-disable-line import/prefer-default-export, max-len if (type === 'Group') { return new GroupChatReporter(req, res); } if (type === 'Inbox') { return new InboxChatReporter(req, res); + } if (type === 'Profile' || type === 'User') { + return new ProfileReporter(req, res); } throw new Error('Invalid chat reporter type.'); diff --git a/website/server/libs/chatReporting/profileReporter.js b/website/server/libs/chatReporting/profileReporter.js index 60a32899226..7374e249132 100644 --- a/website/server/libs/chatReporting/profileReporter.js +++ b/website/server/libs/chatReporting/profileReporter.js @@ -34,7 +34,8 @@ export default class ProfileReporter extends ChatReporter { throw new NotFound(this.res.t('userWithIDNotFound')); } - if (flaggedUser.profile.flags.indexOf(this.user._id) !== -1 && !this.user.hasPermission('moderator')) { + if (flaggedUser.profile.flags && flaggedUser.profile.flags.indexOf(this.user._id) !== -1 + && !this.user.hasPermission('moderator')) { throw new BadRequest('A profile can not be flagged more than once by the same user.'); } @@ -64,6 +65,17 @@ export default class ProfileReporter extends ChatReporter { ]; } + flagProfile (flaggedUser) { + // Log user ids that have flagged the account + if (!flaggedUser.profile.flags) { + flaggedUser.profile.flags = []; + } + + flaggedUser.profile.flags.push(this.user._id); + + return flaggedUser.save(); + } + async notify (flaggedUser, userComment) { let emailVariables = await this.getEmailVariables(flaggedUser); emailVariables = emailVariables.concat([ @@ -78,4 +90,14 @@ export default class ProfileReporter extends ChatReporter { userComment, }); } + + async flag () { + const { flaggedUser, userComment } = await this.validate(); + await this.flagProfile(flaggedUser); + await this.notify(flaggedUser, userComment); + if (!this.user.hasPermission('moderator')) { + flaggedUser.profile.flags = [this.user._id]; + } + return flaggedUser; + } } \ No newline at end of file diff --git a/website/server/libs/slack.js b/website/server/libs/slack.js index 615c7d4284d..71dd0192177 100644 --- a/website/server/libs/slack.js +++ b/website/server/libs/slack.js @@ -176,6 +176,39 @@ function sendInboxFlagNotification ({ .catch(err => logger.error(err, 'Error while sending flag data to Slack.')); } +function sendProfileFlagNotification ({ + reporter, + flaggedUser, + userComment, +}) { + const title = 'User Profile Report'; + const titleLink = `${BASE_URL}/static/front/#?memberId=${flaggedUser._id}`; + const text = `@${reporter.auth.local.username} (${reporter._id}; language: ${reporter.preferences.language}) flagged @${flaggedUser.auth.local.username}'s profile`; + if (userComment) { + text += ` and commented: ${userComment}`; + } + const profileData = `Bio: ${flaggedUser.profile.blurb}`; + if (flaggedUser.profile.imageUrl) { + profileData += `\n\nImage URL: ${flaggedUser.profile.imageUrl}`; + } + + flagSlack + .send({ + text, + attachments: [{ + fallback: 'Flag Profile', + color: 'danger', + title, + title_link: titleLink, + text: profileData, + mrkdwn_in: [ + 'text', + ], + }], + }) + .catch(err => logger.error(err, 'Error while sending flag data to Slack.')); +} + function sendSubscriptionNotification ({ buyer, recipient, @@ -302,6 +335,7 @@ function sendSlurNotification ({ export { sendFlagNotification, sendInboxFlagNotification, + sendProfileFlagNotification, sendSubscriptionNotification, sendShadowMutedPostNotification, sendSlurNotification, diff --git a/website/server/models/user/schema.js b/website/server/models/user/schema.js index 8a98ee17ce2..ad5b7a11659 100644 --- a/website/server/models/user/schema.js +++ b/website/server/models/user/schema.js @@ -621,6 +621,9 @@ export default new Schema({ required: true, trim: true, }, + flags: [ + { $type: String, validate: [v => validator.isUUID(v), 'Invalid user UUID.'], ref: 'User' }, + ], }, stats: { hp: { $type: Number, default: shared.maxHealth }, From c50cee0d88b9ef1b52513f164f1c4824aef22405 Mon Sep 17 00:00:00 2001 From: SabreCat Date: Wed, 12 Jul 2023 16:32:25 -0500 Subject: [PATCH 03/57] fix(flagging): debug params issue Also add and document the "source" body param --- website/server/controllers/api-v3/members.js | 6 +++ .../libs/chatReporting/profileReporter.js | 49 ++++++++++++------- website/server/models/user/schema.js | 4 +- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/website/server/controllers/api-v3/members.js b/website/server/controllers/api-v3/members.js index 93e2173bca0..16cccd6501d 100644 --- a/website/server/controllers/api-v3/members.js +++ b/website/server/controllers/api-v3/members.js @@ -786,12 +786,18 @@ api.transferGems = { * * @apiParam (Path) {UUID} memberId The unique ID of the user being flagged * @apiParam (Body) {String} [comment] explain why the user was flagged + * @apiParam (Body) {String} [source] URL or view from which the user was flagged * * @apiSuccess {Object} data The flagged user * @apiSuccess {UUID} data.id The id of the flagged user * @apiSuccess {String} data.username The username of the flagged user * @apiSuccess {Object} data.profile The flagged user's profile information * @apiSuccess {String} data.profile.blurb Text of the flagged user's profile bio + * @apiSuccess {Object} data.profile.flags Data about flags the profile has received. + * Restricted to the reporting user's own flag + * unless the reporting user is a moderator. + * Each key is a UUID, and fields are comment, + * source, and timestamp. * @apiSuccess {String} data.profile.imageUrl URL of the flagged user's profile image * @apiSuccess {String} data.profile.name The flagged user's display name * diff --git a/website/server/libs/chatReporting/profileReporter.js b/website/server/libs/chatReporting/profileReporter.js index 7374e249132..e30f1b80993 100644 --- a/website/server/libs/chatReporting/profileReporter.js +++ b/website/server/libs/chatReporting/profileReporter.js @@ -21,27 +21,27 @@ export default class ProfileReporter extends ChatReporter { } async validate () { - this.req.checkParams('memberId', apiError('memberIdRequired')).notEmpty(); + this.req.checkParams('memberId', this.res.t('memberIdRequired')).notEmpty().isUUID(); const validationErrors = this.req.validationErrors(); if (validationErrors) throw validationErrors; const flaggedUser = await User.findOne( - { _id: this.req.query.memberId }, + { _id: this.req.params.memberId }, { auth: 1, profile: 1 }, ).exec(); if (!flaggedUser) { - throw new NotFound(this.res.t('userWithIDNotFound')); + throw new NotFound(this.res.t('userWithIDNotFound', { userId: this.req.params.memberId })); } - if (flaggedUser.profile.flags && flaggedUser.profile.flags.indexOf(this.user._id) !== -1 + if (flaggedUser.profile.flags && flaggedUser.profile.flags[this.user._id] && !this.user.hasPermission('moderator')) { throw new BadRequest('A profile can not be flagged more than once by the same user.'); } - const userComment = this.req.body.comment; + const { comment, source } = this.req.body; - return { flaggedUser, userComment }; + return { flaggedUser, comment, source }; } getEmailVariables (flaggedUser) { @@ -65,21 +65,27 @@ export default class ProfileReporter extends ChatReporter { ]; } - flagProfile (flaggedUser) { + async flagProfile (flaggedUser, comment, source) { + const timestamp = new Date(); // Log user ids that have flagged the account if (!flaggedUser.profile.flags) { - flaggedUser.profile.flags = []; + flaggedUser.profile.flags = {}; } - flaggedUser.profile.flags.push(this.user._id); - - return flaggedUser.save(); + flaggedUser.profile.flags[this.user._id] = { + comment, + source, + timestamp, + }; + flaggedUser.markModified('profile.flags'); + await flaggedUser.save(); + return timestamp; } - async notify (flaggedUser, userComment) { - let emailVariables = await this.getEmailVariables(flaggedUser); + notify (flaggedUser, comment) { + let emailVariables = this.getEmailVariables(flaggedUser); emailVariables = emailVariables.concat([ - { name: 'REPORTER_COMMENT', content: userComment || '' }, + { name: 'REPORTER_COMMENT', content: comment || '' }, ]); sendTxn(FLAG_REPORT_EMAILS, 'profile-report-to-mods-with-comments', emailVariables); @@ -87,16 +93,21 @@ export default class ProfileReporter extends ChatReporter { slack.sendProfileFlagNotification({ reporter: this.user, flaggedUser, - userComment, + comment, }); } async flag () { - const { flaggedUser, userComment } = await this.validate(); - await this.flagProfile(flaggedUser); - await this.notify(flaggedUser, userComment); + const { flaggedUser, comment, source } = await this.validate(); + const timestamp = await this.flagProfile(flaggedUser, comment, source); + this.notify(flaggedUser, comment, source); if (!this.user.hasPermission('moderator')) { - flaggedUser.profile.flags = [this.user._id]; + flaggedUser.profile.flags = {}; + flaggedUser.profile.flags[this.user._id] = { + comment, + source, + timestamp, + }; } return flaggedUser; } diff --git a/website/server/models/user/schema.js b/website/server/models/user/schema.js index ad5b7a11659..35da973b4eb 100644 --- a/website/server/models/user/schema.js +++ b/website/server/models/user/schema.js @@ -621,9 +621,7 @@ export default new Schema({ required: true, trim: true, }, - flags: [ - { $type: String, validate: [v => validator.isUUID(v), 'Invalid user UUID.'], ref: 'User' }, - ], + flags: { $type: Schema.Types.Mixed }, }, stats: { hp: { $type: Number, default: shared.maxHealth }, From eb4021fcc7e8b6bed195b9f337b95467e30cf0c6 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Wed, 26 Jul 2023 16:33:05 -0400 Subject: [PATCH 04/57] feat(content): upgrade profile page --- .../src/components/userMenu/profile.vue | 308 +++++++----------- .../src/components/userMenu/profileStats.vue | 36 +- 2 files changed, 127 insertions(+), 217 deletions(-) diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index d228a5769b4..67fc95b1dd4 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -1,173 +1,68 @@ + From 3ea48ab5cb80b9eccbce82bdce01901b02a5c36e Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Fri, 11 Aug 2023 17:12:31 -0400 Subject: [PATCH 16/57] WIP(user profile): dropdown menu and toggles and colors oh my --- .../src/components/userMenu/profile.vue | 80 +++++++++++++++---- 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index b1dd3dd7930..a45f37d9b07 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -112,6 +112,8 @@ {{ $t('sendMessage') }} + + + + + + @@ -177,6 +183,7 @@ + @@ -185,6 +192,7 @@ + + @@ -217,9 +226,9 @@ + - + {{ $t('shadowMute') }} -
-
+
+ {{ $t('mutePlayer') }} + @@ -507,11 +523,28 @@ right: 16px; bottom: 0; - &.closed { - top: 10px; + &.closed { + top: 10px; + } + } + .toggle-switch-outer { + margin-bottom: 2px; } - } - } + + .selectListItem .block-ban { + &:hover &:active { + background-color: rgba(201, 43, 43, 0.25); + color: $red-500 !important; + } + .dropdown-item:hover svg { + color: $red-500; + } + .with-icon { + color:$red-500; + } + } + } + .profile { .member-details { @@ -610,9 +643,9 @@ margin-bottom: 48px; .admin-action { - color: blue; + color: $red-500; cursor: pointer; - padding: 0 16px; + // padding: 0 16px; } } @@ -660,8 +693,21 @@ width: 16px; } - .photo { + .toggle-switch-outer { + margin-bottom: 2px; + } + + .block-ban { + background-color: $white; + color: $gray-50; + &:hover { + background-color: rgba(255, 182, 184, 0.25) !important; + color: $red-500 !important; + } + } + + .photo { img { max-width: 100%; } @@ -914,6 +960,7 @@ import axios from 'axios'; import each from 'lodash/each'; import cloneDeep from 'lodash/cloneDeep'; import closeX from '../ui/closeX'; +import toggle from '../ui/toggleSwitch'; import { mapState } from '@/libs/store'; import MemberDetails from '../memberDetails'; @@ -951,6 +998,7 @@ export default { profileStats, error404, closeX, + toggle, }, mixins: [externalLinks, userCustomStateMixin('userLoggedIn')], props: ['userId', 'startingPage'], From 8fe263a377ffdfb59b667c0c2da9aa88924db78a Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Wed, 23 Aug 2023 12:12:36 -0400 Subject: [PATCH 17/57] update(dependencies): ran npm install to update dependencies --- package-lock.json | 24 ++-- website/client/package-lock.json | 197 ++++++++++++++----------------- 2 files changed, 103 insertions(+), 118 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66838214ff7..d6d0b1e0149 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3855,7 +3855,7 @@ "bin-pack": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bin-pack/-/bin-pack-1.0.2.tgz", - "integrity": "sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==" + "integrity": "sha1-wqAU7b8L7XCjKSBi7UZXe5YSBnk=" }, "bin-version": { "version": "3.1.0", @@ -7691,7 +7691,7 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-intrinsic": { @@ -10259,37 +10259,37 @@ "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" }, "lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" }, "lodash.isinteger": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" }, "lodash.isnumber": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, "lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, "lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, "log-driver": { "version": "1.2.7", @@ -11327,7 +11327,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -12319,7 +12319,7 @@ "pause": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", - "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" + "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" }, "pause-stream": { "version": "0.0.11", @@ -13809,7 +13809,7 @@ "sliced": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" }, "snapdragon": { "version": "0.8.2", diff --git a/website/client/package-lock.json b/website/client/package-lock.json index 93f855e2a42..ffc4075aaf4 100644 --- a/website/client/package-lock.json +++ b/website/client/package-lock.json @@ -4928,17 +4928,17 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -13318,11 +13318,34 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "optional": true + }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -13354,6 +13377,38 @@ "ansi-regex": "^5.0.1" } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -14022,7 +14077,7 @@ "app-root-dir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==" + "integrity": "sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=" }, "aproba": { "version": "1.2.0", @@ -16148,7 +16203,7 @@ "character-parser": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", "requires": { "is-regex": "^1.0.3" } @@ -16166,7 +16221,7 @@ "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==" + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" }, "check-types": { "version": "8.0.3", @@ -16716,7 +16771,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "consolidate": { "version": "0.15.1", @@ -17607,7 +17662,7 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "depd": { "version": "1.1.2", @@ -17811,7 +17866,7 @@ "doctypes": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==" + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" }, "dom-converter": { "version": "0.2.0", @@ -20128,7 +20183,7 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==" + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" }, "get-intrinsic": { "version": "1.0.2", @@ -20418,7 +20473,7 @@ "has-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", - "integrity": "sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g==", + "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", "requires": { "is-glob": "^3.0.0" }, @@ -20426,7 +20481,7 @@ "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { "is-extglob": "^2.1.0" } @@ -20481,7 +20536,7 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "has-value": { "version": "1.0.0", @@ -21989,12 +22044,12 @@ "js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==" + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=" }, "js-stringify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==" + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" }, "js-tokens": { "version": "4.0.0", @@ -22458,7 +22513,7 @@ "jsdom-global": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", - "integrity": "sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg==" + "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=" }, "jsesc": { "version": "2.5.2", @@ -22530,7 +22585,7 @@ "jstransformer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", "requires": { "is-promise": "^2.0.0", "promise": "^7.0.1" @@ -22650,7 +22705,7 @@ "find-cache-dir": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A==", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "requires": { "commondir": "^1.0.1", "mkdirp": "^0.5.1", @@ -22660,7 +22715,7 @@ "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -22669,7 +22724,7 @@ "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { "pinkie-promise": "^2.0.0" } @@ -22677,7 +22732,7 @@ "pkg-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg==", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { "find-up": "^1.0.0" } @@ -22736,7 +22791,7 @@ "lodash.kebabcase": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" }, "lodash.mapvalues": { "version": "4.6.0", @@ -24251,7 +24306,7 @@ "node-dir": { "version": "0.1.17", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", + "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", "requires": { "minimatch": "^3.0.2" } @@ -25754,7 +25809,7 @@ "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==" + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" }, "prismjs": { "version": "1.17.1", @@ -27521,7 +27576,7 @@ "serve-favicon": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", - "integrity": "sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", "requires": { "etag": "~1.8.1", "fresh": "0.5.2", @@ -28847,7 +28902,7 @@ "strip-indent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==" + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" }, "strip-json-comments": { "version": "3.1.1", @@ -28967,7 +29022,7 @@ "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==" + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=" }, "svg-url-loader": { "version": "7.1.1", @@ -29501,12 +29556,12 @@ "token-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", - "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==" + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=" }, "toposort": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=" }, "tough-cookie": { "version": "4.1.2", @@ -29537,7 +29592,7 @@ "trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==" + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" }, "trim-newlines": { "version": "1.0.0", @@ -30311,7 +30366,7 @@ "void-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==" + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=" }, "vue": { "version": "2.7.10", @@ -30581,76 +30636,6 @@ } } }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.8.3", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", - "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "vue-mugen-scroll": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/vue-mugen-scroll/-/vue-mugen-scroll-0.2.6.tgz", @@ -31605,7 +31590,7 @@ "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", @@ -31615,7 +31600,7 @@ "execa": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", - "integrity": "sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -31629,7 +31614,7 @@ "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==" + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "lru-cache": { "version": "4.1.5", @@ -31643,12 +31628,12 @@ "normalize-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", - "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==" + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=" }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, From 1e05297e96b0e9b25c7713dc8fee5c18dc9c27b8 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Wed, 23 Aug 2023 13:12:52 -0400 Subject: [PATCH 18/57] package updates --- package-lock.json | 467 +++++++++++++++++++++++++++++++--------------- package.json | 18 +- 2 files changed, 322 insertions(+), 163 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66838214ff7..4fab4342a84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,33 +27,74 @@ "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==" }, "@babel/core": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", - "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz", + "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==", "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.5", - "@babel/parser": "^7.22.5", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.10", + "@babel/parser": "^7.22.10", "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5", + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.2", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "dependencies": { "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", + "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", "requires": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.10", + "chalk": "^2.4.2" + } + }, + "@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==" + }, + "@babel/generator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", + "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", + "requires": { + "@babel/types": "^7.22.10", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-module-transforms": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/helper-validator-identifier": { @@ -62,25 +103,72 @@ "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" }, "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", + "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", "requires": { "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, - "@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "@babel/parser": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", + "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==" + }, + "@babel/traverse": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", + "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "to-fast-properties": "^2.0.0" + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.10", + "@babel/types": "^7.22.10", + "debug": "^4.1.0", + "globals": "^11.1.0" } }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "browserslist": { + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "requires": { + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" + } + }, + "caniuse-lite": { + "version": "1.0.30001522", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", + "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==" + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -91,10 +179,32 @@ "supports-color": "^5.3.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" + } + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" } } }, @@ -542,28 +652,99 @@ } }, "@babel/helpers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", - "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz", + "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==", "requires": { "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10" }, "dependencies": { + "@babel/code-frame": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", + "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", + "requires": { + "@babel/highlight": "^7.22.10", + "chalk": "^2.4.2" + } + }, + "@babel/generator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", + "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", + "requires": { + "@babel/types": "^7.22.10", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, "@babel/helper-validator-identifier": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" }, - "@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "@babel/highlight": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", + "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", "requires": { - "@babel/helper-string-parser": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.5", - "to-fast-properties": "^2.0.0" + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", + "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==" + }, + "@babel/traverse": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", + "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", + "requires": { + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.10", + "@babel/types": "^7.22.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } } } @@ -2105,13 +2286,13 @@ "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" }, "@parse/node-apn": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@parse/node-apn/-/node-apn-5.1.3.tgz", - "integrity": "sha512-Bwhmbm895lEIF2772PJ8dSvBjrtOG9/q/TDMxmX40IgZxQFoXS73+JUIKTq3CA7SUB/Szu5roJINQ0L2U/1MJw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@parse/node-apn/-/node-apn-5.2.3.tgz", + "integrity": "sha512-uBUTTbzk0YyMOcE5qTcNdit5v1BdaECCRSQYbMGU/qY1eHwBaqeWOYd8rwi2Caga3K7IZyQGhpvL4/56H+uvrQ==", "requires": { "debug": "4.3.3", - "jsonwebtoken": "8.5.1", - "node-forge": "1.3.0", + "jsonwebtoken": "9.0.0", + "node-forge": "1.3.1", "verror": "1.10.1" }, "dependencies": { @@ -2124,20 +2305,14 @@ } }, "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", "requires": { "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", + "lodash": "^4.17.21", "ms": "^2.1.1", - "semver": "^5.6.0" + "semver": "^7.3.8" } }, "jwa": { @@ -2159,10 +2334,13 @@ "safe-buffer": "^5.0.1" } }, - "node-forge": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.0.tgz", - "integrity": "sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==" + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } }, "verror": { "version": "1.10.1", @@ -2177,9 +2355,9 @@ } }, "@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@sinonjs/commons": { "version": "3.0.0", @@ -2283,14 +2461,14 @@ } }, "@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "requires": { "@types/http-cache-semantics": "*", - "@types/keyv": "*", + "@types/keyv": "^3.1.4", "@types/node": "*", - "@types/responselike": "*" + "@types/responselike": "^1.0.0" } }, "@types/color-name": { @@ -2383,9 +2561,9 @@ } }, "@types/keyv": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "requires": { "@types/node": "*" } @@ -3355,9 +3533,9 @@ "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" }, "axios": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.6.tgz", - "integrity": "sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", "dev": true, "requires": { "follow-redirects": "^1.15.0", @@ -3855,7 +4033,7 @@ "bin-pack": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bin-pack/-/bin-pack-1.0.2.tgz", - "integrity": "sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==" + "integrity": "sha1-wqAU7b8L7XCjKSBi7UZXe5YSBnk=" }, "bin-version": { "version": "3.1.0", @@ -4210,9 +4388,9 @@ "optional": true }, "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==" }, "boxen": { "version": "4.2.0", @@ -7691,7 +7869,7 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-intrinsic": { @@ -8265,9 +8443,9 @@ } }, "got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -8291,9 +8469,9 @@ } }, "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -8331,9 +8509,9 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "keyv": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", - "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", "requires": { "json-buffer": "3.0.1" } @@ -8359,9 +8537,9 @@ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", "requires": { "lowercase-keys": "^2.0.0" } @@ -10256,41 +10434,6 @@ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, "log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", @@ -11113,16 +11256,17 @@ } }, "mongoose": { - "version": "5.13.7", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.7.tgz", - "integrity": "sha512-ADIvftZ+KfoTALMZ0n8HvBlezFhcUd73hQaHQDwQ+3X+JZlqE47fUy9yhFZ2SjT+qzmuaCcIXCfhewIc38t2fQ==", + "version": "5.13.20", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.20.tgz", + "integrity": "sha512-TjGFa/XnJYt+wLmn8y9ssjyO2OhBMeEBtOHb9iJM16EWu2Du6L1Q6zSiEK2ziyYQM8agb4tumNIQFzqbxId7MA==", "requires": { + "@types/bson": "1.x || 4.0.x", "@types/mongodb": "^3.5.27", "bson": "^1.1.4", "kareem": "2.3.2", - "mongodb": "3.6.11", + "mongodb": "3.7.4", "mongoose-legacy-pluralize": "1.0.2", - "mpath": "0.8.3", + "mpath": "0.8.4", "mquery": "3.2.5", "ms": "2.1.2", "optional-require": "1.0.x", @@ -11142,22 +11286,32 @@ } }, "mongodb": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.11.tgz", - "integrity": "sha512-4Y4lTFHDHZZdgMaHmojtNAlqkvddX2QQBEN0K//GzxhGwlI9tZ9R0vhbjr1Decw+TF7qK0ZLjQT292XgHRRQgw==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.4.tgz", + "integrity": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==", "requires": { "bl": "^2.2.1", "bson": "^1.1.4", "denque": "^1.4.1", - "optional-require": "^1.0.3", + "optional-require": "^1.1.8", "safe-buffer": "^5.1.2", "saslprep": "^1.0.0" + }, + "dependencies": { + "optional-require": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", + "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", + "requires": { + "require-at": "^1.0.6" + } + } } }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -11300,9 +11454,9 @@ } }, "mpath": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", - "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==" + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", + "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" }, "mquery": { "version": "3.2.5", @@ -11327,7 +11481,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -12203,9 +12357,9 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "passport": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/passport/-/passport-0.5.0.tgz", - "integrity": "sha512-ln+ue5YaNDS+fes6O5PCzXKSseY5u8MYhX9H5Co4s+HfYI5oqvnHKoOORLYDUPh+8tHvrxugF2GFcUA1Q1Gqfg==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.5.3.tgz", + "integrity": "sha512-gGc+70h4gGdBWNsR3FuV3byLDY6KBTJAIExGFXTpQaYfbbcHCBlRRKx7RBQSpqEqc5Hh2qVzRs7ssvSfOpkUEA==", "requires": { "passport-strategy": "1.x.x", "pause": "0.0.1" @@ -12319,7 +12473,7 @@ "pause": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", - "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" + "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" }, "pause-stream": { "version": "0.0.11", @@ -13153,6 +13307,11 @@ "integrity": "sha1-7W2Lm9Y4wTMosV3YOL1mYRHdeBw=", "dev": true }, + "require-at": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", + "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -13809,7 +13968,7 @@ "sliced": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" }, "snapdragon": { "version": "0.8.2", @@ -14402,9 +14561,9 @@ } }, "stripe": { - "version": "12.9.0", - "resolved": "https://registry.npmjs.org/stripe/-/stripe-12.9.0.tgz", - "integrity": "sha512-stYtrWetRYUsEbsUVyJaPG9Sppt0ds2szBqXsuDG6KZPPuUmCccbpceLrhoOBwNl1RziEfNB7oG9wg1n2eW+EQ==", + "version": "12.18.0", + "resolved": "https://registry.npmjs.org/stripe/-/stripe-12.18.0.tgz", + "integrity": "sha512-cYjgBM2SY/dTm8Lr6eMyyONaHTZHA/QjHxFUIW5WH8FevSRIGAVtXEmBkUXF1fsqe7QvvRgQSGSJZmjDacegGg==", "requires": { "@types/node": ">=8.1.0", "qs": "^6.11.0" @@ -15636,9 +15795,9 @@ } }, "validator": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", - "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==" + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", + "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==" }, "value-or-function": { "version": "3.0.0", diff --git a/package.json b/package.json index df3229e3749..7ee73b4dcf7 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,11 @@ "version": "5.2.0", "main": "./website/server/index.js", "dependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.22.10", "@babel/preset-env": "^7.22.10", "@babel/register": "^7.22.5", "@google-cloud/trace-agent": "^7.1.2", - "@parse/node-apn": "^5.1.3", + "@parse/node-apn": "^5.2.3", "@slack/webhook": "^6.1.0", "accepts": "^1.3.8", "amazon-payments": "^0.2.9", @@ -17,7 +17,7 @@ "apple-auth": "^1.0.9", "bcrypt": "^5.1.1", "body-parser": "^1.20.2", - "bootstrap": "^4.6.0", + "bootstrap": "^4.6.2", "compression": "^1.7.4", "cookie-session": "^2.0.0", "coupon-code": "^0.4.5", @@ -31,7 +31,7 @@ "express-basic-auth": "^1.2.1", "express-validator": "^5.2.0", "glob": "^8.1.0", - "got": "^11.8.3", + "got": "^11.8.6", "gulp": "^4.0.0", "gulp-babel": "^8.0.0", "gulp-imagemin": "^7.1.0", @@ -49,12 +49,12 @@ "method-override": "^3.0.0", "moment": "^2.29.4", "moment-recur": "^1.0.7", - "mongoose": "^5.13.7", + "mongoose": "^5.13.20", "morgan": "^1.10.0", "nconf": "^0.12.0", "node-gcm": "^1.0.5", "on-headers": "^1.0.2", - "passport": "^0.5.0", + "passport": "^0.5.3", "passport-facebook": "^3.0.0", "passport-google-oauth2": "^0.2.0", "passport-google-oauth20": "2.0.0", @@ -67,12 +67,12 @@ "remove-markdown": "^0.5.0", "rimraf": "^3.0.2", "short-uuid": "^4.2.2", - "stripe": "^12.9.0", + "stripe": "^12.18.0", "superagent": "^8.1.2", "universal-analytics": "^0.5.3", "useragent": "^2.1.9", "uuid": "^9.0.0", - "validator": "^13.9.0", + "validator": "^13.11.0", "vinyl-buffer": "^1.0.1", "winston": "^3.10.0", "winston-loggly-bulk": "^3.2.1", @@ -110,7 +110,7 @@ "apidoc": "gulp apidoc" }, "devDependencies": { - "axios": "^1.3.6", + "axios": "^1.4.0", "chai": "^4.3.7", "chai-as-promised": "^7.1.1", "chai-moment": "^0.1.0", From a1ceb2ea7560e5bec9c1b6a7f7113db466855381 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Fri, 25 Aug 2023 14:39:12 -0400 Subject: [PATCH 19/57] WIP(profile): create achievements component --- .../components/userMenu/profileAchievs.vue | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 website/client/src/components/userMenu/profileAchievs.vue diff --git a/website/client/src/components/userMenu/profileAchievs.vue b/website/client/src/components/userMenu/profileAchievs.vue new file mode 100644 index 00000000000..1894f556589 --- /dev/null +++ b/website/client/src/components/userMenu/profileAchievs.vue @@ -0,0 +1,189 @@ + + + From b3ea48c4f5b30747b1b28d159818c05341994bb4 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Fri, 25 Aug 2023 15:52:41 -0400 Subject: [PATCH 20/57] WIP(profile): work on achievement component --- .../src/components/userMenu/profile.vue | 13 ++- .../components/userMenu/profileAchievs.vue | 81 ++++++++++++++++++- 2 files changed, 89 insertions(+), 5 deletions(-) diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index a45f37d9b07..833653b4df9 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -383,7 +383,14 @@ -
+ + +
+
+ + From 941194b7c7d4bce8dfdc099aea39add22aa571f0 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Tue, 29 Aug 2023 16:59:05 -0400 Subject: [PATCH 21/57] feat(content): add September pet quest bundle --- website/common/script/content/bundles.js | 4 ++-- website/common/script/content/constants/events.js | 6 +++++- website/common/script/content/shop-featuredItems.js | 8 ++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/website/common/script/content/bundles.js b/website/common/script/content/bundles.js index 2d0d90935ac..447e2aea20a 100644 --- a/website/common/script/content/bundles.js +++ b/website/common/script/content/bundles.js @@ -18,9 +18,9 @@ const bundles = { 'harpy', 'owl', ], - event: EVENTS.potions202105, + event: EVENTS.bundle202309, canBuy () { - return moment().isBefore(EVENTS.potions202105.end); + return moment().isBetween(EVENTS.bundle202309.start, EVENTS.bundle202309.end); }, type: 'quests', class: 'quest_bundle_featheredFriends', diff --git a/website/common/script/content/constants/events.js b/website/common/script/content/constants/events.js index 41dafd0ad21..9b8cd58ac9b 100644 --- a/website/common/script/content/constants/events.js +++ b/website/common/script/content/constants/events.js @@ -11,10 +11,14 @@ const gemsPromo = { export const EVENTS = { noEvent: { start: '2023-08-01T23:59-04:00', - end: '2023-08-10T08:00-04:00', + end: '2023-09-12T08:00-04:00', season: 'normal', npcImageSuffix: '', }, + bundle202309: { + start: '2023-09-12T08:00-04:00', + end: '2023-09-30T23:59-04:00', + }, bundle202308: { start: '2023-08-15T08:00-04:00', end: '2023-08-31T23:59-04:00', diff --git a/website/common/script/content/shop-featuredItems.js b/website/common/script/content/shop-featuredItems.js index 3219ce95928..c26b0604a1a 100644 --- a/website/common/script/content/shop-featuredItems.js +++ b/website/common/script/content/shop-featuredItems.js @@ -45,19 +45,19 @@ const featuredItems = { ]; }, quests () { - if (moment().isBetween(EVENTS.bundle202308.start, EVENTS.bundle202308.end)) { + if (moment().isBetween(EVENTS.bundle202309.start, EVENTS.bundle202309.end)) { return [ { type: 'bundles', - path: 'bundles.hugabug', + path: 'bundles.featheredFriends', }, { type: 'quests', - path: 'quests.octopus', + path: 'quests.pterodactyl', }, { type: 'quests', - path: 'quests.rock', + path: 'quests.trex', }, ]; } From 9387b3a6bc35a937f9558e3395e2eb291fd11f72 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Wed, 30 Aug 2023 17:21:36 -0400 Subject: [PATCH 22/57] WIP(profile): buttons --- habitica-images | 2 +- .../src/components/userMenu/profile.vue | 38 ++----------------- website/common/locales/en/generic.json | 2 +- 3 files changed, 6 insertions(+), 36 deletions(-) diff --git a/habitica-images b/habitica-images index 109539e4459..69724d88ef6 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit 109539e445936786e183ac800c1d956e1999f2b8 +Subproject commit 69724d88ef6a4be85104fb08ae1e3d0a3f649765 diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index 833653b4df9..38b2b5147d2 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -388,9 +388,8 @@ v-show="selectedPage === 'achievements'" :user="user" /> -
- +
+ + + + diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index d228a5769b4..60b6b30515c 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -58,6 +58,18 @@ v-html="icons.positive" >
+
- - -
- +
-
-
-

{{ $t('about') }}

-
-
-
-

+ +
+
+
+

{{ $t('about') }}

+
+
+
+

+

+ {{ $t('noDescription') }} +

+
+
+
+

{{ $t('photo') }}

+

- {{ $t('noDescription') }} + {{ $t('noPhoto') }}

-
-

{{ $t('photo') }}

- +
-
-
- - - + - - - - - - - - - + + + + - + - + - - {{ $t('viewAdminPanel') }} - - - - - - - - - {{ $t('banPlayer') }} + class="send-gift" + > + {{ $t('sendGift') }} - + - - {{ $t('shadowMute') }} + + {{ $t('reportPlayer') }} - - + - {{ $t('mutePlayer') }} + {{ $t('blockPlayer') }} - + +
+ + + + {{ $t('adminTools') }} + + + + + + + + + {{ $t('viewAdminPanel') }} + + + + + + + + + + {{ $t('banPlayer') }} + + + + + + + + + + {{ $t('shadowMute') }} + + + + + + + + + + + {{ $t('mutePlayer') }} + + + + +
+
+
+ + +
+
+
+ {{ $t('joined') }}: +
+
+ {{ userJoinedDate }} +
- - - - -
-
-
- {{ $t('joined') }}: +
+
+ {{ $t('totalLogins') }}: +
+
+ {{ user.loginIncentives }} +
-
- {{ userJoinedDate }} +
+
+ {{ $t('latestCheckin') }}: +
+
+ {{ userLastLoggedIn }} +
-
-
-
- {{ $t('totalLogins') }}: +
+
+ {{ $t('nextReward') }}: +
+
+ {{ nextIncentive }} +
-
- {{ user.loginIncentives }} +
+ {{ getProgressDisplay() }} +
+
+ {{ incentivesProgress }}% {{ $t('complete') }} +
+
-
-
- {{ $t('latestCheckin') }}: -
-
- {{ userLastLoggedIn }} -
+
+
+ +
+

{{ $t('editProfile') }}

+
+
+ +
+ +
-
-
- {{ $t('nextReward') }}: -
-
- {{ nextIncentive }} -
+
+ +
-
- {{ getProgressDisplay() }} -
-
- {{ incentivesProgress }}% {{ $t('complete') }} -
-
+
+ + +
-
-
- -
-

{{ $t('editProfile') }}

-
-
- -
- - +
-
- - +
-
- - - -
-
-
- -
-
- -
+
-

- {{ $t(`${key}Achievs`) }} -

-
-
-
+
+

+ {{ $t(`${key}Achievs`) }} +

+
+
- -

- {{ achievement.title }} -

-
-
+ +

+ {{ achievement.title }} +

+
+
- {{ achievement.optionalCount }} +
+ {{ achievement.optionalCount }} +
+
-
-
-
- {{ achievementsCategories[key].open ? - $t('hideAchievements', {category: $t(`${key}Achievs`)}) : - $t('showAllAchievements', {category: $t(`${key}Achievs`)}) - }} +
+ {{ achievementsCategories[key].open ? + $t('hideAchievements', {category: $t(`${key}Achievs`)}) : + $t('showAllAchievements', {category: $t(`${key}Achievs`)}) + }} +
-
-
-
-
-
-

- {{ $t('challengesWon') }} -

+
+
- +
+

+ {{ $t('challengesWon') }} +

+
+ +
-
-
-
-

- {{ $t('questsCompleted') }} -

- {{ content.quests[key].text() }} -
+

+ {{ $t('questsCompleted') }} +

+
- {{ value }} - + {{ content.quests[key].text() }} + + {{ value }} + +
-
- -
- + +
+ +
@@ -942,6 +942,7 @@ } +// eslint-disable-next-line vue/component-tags-order diff --git a/website/client/src/components/userMenu/profileModal.vue b/website/client/src/components/userMenu/profileModal.vue index d7c45b596b7..1a13c5ea86b 100644 --- a/website/client/src/components/userMenu/profileModal.vue +++ b/website/client/src/components/userMenu/profileModal.vue @@ -6,9 +6,6 @@ @hide="beforeHide" @shown="onShown()" > - import profile from './profile'; -import closeX from '../ui/closeX'; export default { components: { profile, - closeX, }, data () { return { @@ -82,9 +77,6 @@ export default { } }, }, - close () { - this.$root.$emit('bv::hide::modal', 'profile'); - }, }; From 321a01b08120c6214793fcff14c09d011520e5a0 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Fri, 1 Sep 2023 16:14:36 -0400 Subject: [PATCH 28/57] WIP(profile): close button finally workinating --- website/client/src/components/userMenu/profile.vue | 13 +++++-------- .../client/src/components/userMenu/profileModal.vue | 12 +++++++++++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index 80ec4cf9712..cb6baec74cb 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -1,8 +1,5 @@ @@ -60,13 +72,16 @@ padding: 0px 24px 24px 24px; } .modal-footer { + color: $maroon-50; display: flex; justify-content: center; border-top: none; height: 48px; background-color: rgba($red-500, 0.25); margin-top: -8px; + padding: 0px; a { + margin-top: 2px; color: $maroon-50; } } @@ -84,7 +99,7 @@ } blockquote { - border-radius: 2px; + border-radius: 4px; background-color: $gray-700; padding: .5rem 1rem; } @@ -107,6 +122,7 @@ import closeX from '@/components/ui/closeX'; import notifications from '@/mixins/notifications'; import markdownDirective from '@/directives/markdown'; import { userStateMixin } from '../../mixins/userState'; +import report from '@/assets/svg/report.svg'; export default { components: { @@ -128,6 +144,9 @@ export default { displayName: '', username: '', reportComment: '', + icons: Object.freeze({ + report, + }), }; }, mounted () { @@ -141,15 +160,18 @@ export default { this.$root.$emit('bv::hide::modal', 'report-profile'); }, async reportAbuse () { - this.text(this.$t('abuseReported')); - const result = await this.$store.dispatch('members:reportMember', { memberId: this.memberId, source: this.$route.fullPath, comment: this.reportComment, }); + if (result.status === 200) { + this.text(this.$t('abuseReported')); - this.$root.$emit('habitica:report-profile-result', result); + this.$root.$emit('habitica:report-profile-result', result.data.data); + } else { + this.error(result.statusText); + } this.close(); }, @@ -161,6 +183,17 @@ export default { this.reportComment = ''; this.$root.$emit('bv::show::modal', 'report-profile'); }, + async resetFlags () { + const result = await this.$store.dispatch('members:clearMemberFlags', { + memberId: this.memberId, + }); + if (result.status === 200) { + this.text('Flags cleared.'); + } else { + this.err(result.statusText); + } + this.close(); + }, }, }; diff --git a/website/client/src/store/actions/members.js b/website/client/src/store/actions/members.js index fcf18bc0d34..d9377cd800b 100644 --- a/website/client/src/store/actions/members.js +++ b/website/client/src/store/actions/members.js @@ -122,5 +122,11 @@ export async function reportMember (store, payload) { source: payload.source, }; const response = await axios.post(url, data); - return response.data.data; + return response; +} + +export async function clearMemberFlags (store, payload) { + const url = `${apiv4Prefix}/members/${payload.memberId}/clear-flags`; + const response = await axios.post(url); + return response; } diff --git a/website/server/controllers/api-v3/members.js b/website/server/controllers/api-v3/members.js index 16cccd6501d..19b14edde0f 100644 --- a/website/server/controllers/api-v3/members.js +++ b/website/server/controllers/api-v3/members.js @@ -819,4 +819,48 @@ api.flagUser = { }, }; +/** + * @api {post} /api/v3/members/:memberId/clear-flags Delete flags from a user + * @apiDescription Removes any abuse reports flagged on a user profile. + * @apiPermission Admin + * @apiName ClearUserFlags + * @apiGroup Members + * + * @apiParam (Path) {UUID} memberId The unique ID of the flagged user to reset + * + * @apiSuccess {Object} data An empty object + * + * @apiError (400) {BadRequest} MemberIdRequired The `memberId` param is required + * and must be a valid `UUID`. + * @apiError (400) {BadRequest} MustBeAdmin Must be a moderator to use this route + * @apiError (404) {NotFound} UserWithIdNotFound The `memberId` param did not + * belong to an existing user. + */ + +api.clearUserFlags = { + method: 'POST', + url: '/members/:memberId/clear-flags', + middlewares: [authWithHeaders()], + async handler (req, res) { + const { user } = res.locals; + const { memberId } = req.params; + + req.checkParams('memberId', res.t('memberIdRequired')).notEmpty().isUUID(); + if (!user.hasPermission('moderator')) { + throw new BadRequest('Only a moderator may clear reports from a profile.'); + } + const flaggedUser = await User.findOne( + { _id: memberId }, + { profile: 1 }, + ).exec(); + if (!flaggedUser) { + throw new NotFound(res.t('userWithIDNotFound', { userId: memberId })); + } + flaggedUser.profile.flags = {}; + await flaggedUser.save(); + + res.respond(200, {}); + }, +}; + export default api; From ae2b614df20493c993bc830f41e671eae10d5297 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Thu, 7 Sep 2023 17:47:08 -0400 Subject: [PATCH 36/57] WIP(profile): styling updates --- .../src/components/userMenu/profile.vue | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index 9b1bd4dbb77..c6127491359 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -14,7 +14,7 @@
-
+
- {{ $t('adminTools') }} - +
Date: Thu, 7 Sep 2023 16:54:19 -0500 Subject: [PATCH 37/57] fix(profile): focus behavior --- .../src/components/userMenu/profile.vue | 53 +++++++++---------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index 9b1bd4dbb77..6772ef6eb3b 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -222,23 +222,19 @@ - - - - - {{ $t('viewAdminPanel') }} - + + + + {{ $t('viewAdminPanel') }} - + @@ -580,8 +576,11 @@ } } - .dropdown-item:not(.disabled):hover svg { - color: $purple-300; + .dropdown-item:not(.disabled):hover, + .dropdown-item:not(.disabled):focus { + a, svg { + color: $purple-300; + } } .drawer-toggle-icon { @@ -604,7 +603,13 @@ } &.block-ban { &:hover, .dropdown-item:hover { + color: $maroon-50 !important; background-color: rgba($red-500, 0.25) !important; + svg { + color: $maroon-50; + } + } + &:focus, .dropdown-item:focus { color: $maroon-50 !important; svg { color: $maroon-50; @@ -714,16 +719,6 @@ } } - .view-admin-panel - a, a:not([href]):not([tabindex]) { - cursor: pointer; - color: $gray-50; - text-decoration: none; - &:hover { - color:$purple-300; - } - } - .profile-actions { float: right; margin-right: 16px; @@ -1410,6 +1405,10 @@ export default { username: this.user.auth.local.username, }); }, + + openAdminPanel () { + this.$router.push(`/admin-panel/${this.hero._id}`); + }, }, }; From 99860829142e377a98775fb50a007ff7e7e301d0 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Fri, 8 Sep 2023 14:49:57 -0400 Subject: [PATCH 38/57] WIP(profile): fixed a comment, woohoo --- website/client/src/components/userMenu/profile.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index e9685e12c44..351700e1a42 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -133,7 +133,7 @@ - + Date: Mon, 11 Sep 2023 22:53:14 -0500 Subject: [PATCH 39/57] feat(profiles): load modal instead of page? --- website/client/src/router/index.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/website/client/src/router/index.js b/website/client/src/router/index.js index ea8cceb6e94..dca120ebb68 100644 --- a/website/client/src/router/index.js +++ b/website/client/src/router/index.js @@ -319,11 +319,19 @@ router.beforeEach(async (to, from, next) => { }); } - if ((to.name === 'userProfile' || to.name === 'userProfilePage') && from.name !== null) { + if ((to.name === 'userProfile' || to.name === 'userProfilePage')) { let startingPage = 'profile'; if (to.params.startingPage !== undefined) { startingPage = to.params.startingPage; } + if (from.name === null) { + setTimeout(() => router.app.$emit('habitica:show-profile', { + userId: to.params.userId, + startingPage, + path: to.path, + }), 500); + return next({ name: 'tasks' }); + } router.app.$emit('habitica:show-profile', { userId: to.params.userId, startingPage, From ce70c73d499f330c3be440fde27e206d791ad58a Mon Sep 17 00:00:00 2001 From: SabreCat Date: Tue, 12 Sep 2023 09:45:40 -0500 Subject: [PATCH 40/57] fix(test): temporarily use real timer --- test/common/ops/buy/purchase.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/common/ops/buy/purchase.js b/test/common/ops/buy/purchase.js index fa5f7c5473b..ce38b4b7e5d 100644 --- a/test/common/ops/buy/purchase.js +++ b/test/common/ops/buy/purchase.js @@ -197,7 +197,7 @@ describe('shared.ops.purchase', () => { it('purchases quest bundles', async () => { const startingBalance = user.balance; - const clock = sandbox.useFakeTimers(moment('2019-05-20').valueOf()); + // const clock = sandbox.useFakeTimers(moment('2019-05-20').valueOf()); const type = 'bundles'; const key = 'featheredFriends'; const price = 1.75; From 9e253601020e50021347577766738778e19c72ca Mon Sep 17 00:00:00 2001 From: SabreCat Date: Tue, 12 Sep 2023 09:46:28 -0500 Subject: [PATCH 41/57] 5.4.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 29e1802e11a..7d59c1519d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "habitica", - "version": "5.4.0", + "version": "5.4.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 91ceeff32db..5626831c92e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "habitica", "description": "A habit tracker app which treats your goals like a Role Playing Game.", - "version": "5.4.0", + "version": "5.4.1", "main": "./website/server/index.js", "dependencies": { "@babel/core": "^7.22.5", From 311c74328440c99f05bc3b342ce1250838eca826 Mon Sep 17 00:00:00 2001 From: SabreCat Date: Fri, 15 Sep 2023 15:44:56 -0500 Subject: [PATCH 42/57] refactor(profile): remove page view --- .../src/components/userMenu/profile.vue | 2 +- .../src/components/userMenu/profilePage.vue | 35 ------------------- website/client/src/router/index.js | 9 ++--- .../client/src/router/shared-route-imports.js | 2 -- 4 files changed, 3 insertions(+), 45 deletions(-) delete mode 100644 website/client/src/components/userMenu/profilePage.vue diff --git a/website/client/src/components/userMenu/profile.vue b/website/client/src/components/userMenu/profile.vue index 351700e1a42..1f682ec2904 100644 --- a/website/client/src/components/userMenu/profile.vue +++ b/website/client/src/components/userMenu/profile.vue @@ -602,7 +602,7 @@ &:not(.disabled):hover svg { color: $purple-300; } - &.block-ban, { + &.block-ban { &:hover, .dropdown-item:hover { color: $maroon-50 !important; background-color: rgba($red-500, 0.25) !important; diff --git a/website/client/src/components/userMenu/profilePage.vue b/website/client/src/components/userMenu/profilePage.vue deleted file mode 100644 index fedc82a0dff..00000000000 --- a/website/client/src/components/userMenu/profilePage.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - diff --git a/website/client/src/router/index.js b/website/client/src/router/index.js index dca120ebb68..41a728deecd 100644 --- a/website/client/src/router/index.js +++ b/website/client/src/router/index.js @@ -8,7 +8,6 @@ import { PAGES } from '@/libs/consts'; import { STATIC_ROUTES } from './static-routes'; import { USER_ROUTES } from './user-routes'; import { DEPRECATED_ROUTES } from '@/router/deprecated-routes'; -import { ProfilePage } from './shared-route-imports'; // NOTE: when adding a page make sure to implement the `common:setTitle` action @@ -94,11 +93,7 @@ const router = new VueRouter({ { name: 'userProfile', path: '/profile/:userId', - component: ProfilePage, props: true, - children: [ - { name: 'userProfilePage', path: ':startingPage', component: ProfilePage }, - ], }, { path: '/inventory', @@ -319,7 +314,7 @@ router.beforeEach(async (to, from, next) => { }); } - if ((to.name === 'userProfile' || to.name === 'userProfilePage')) { + if ((to.name === 'userProfile')) { let startingPage = 'profile'; if (to.params.startingPage !== undefined) { startingPage = to.params.startingPage; @@ -354,7 +349,7 @@ router.beforeEach(async (to, from, next) => { return null; } - if (from.name === 'userProfile' || from.name === 'userProfilePage' || from.name === 'stats' || from.name === 'achievements' || from.name === 'profile') { + if (from.name === 'userProfile' || from.name === 'stats' || from.name === 'achievements' || from.name === 'profile') { router.app.$root.$emit('bv::hide::modal', 'profile'); } diff --git a/website/client/src/router/shared-route-imports.js b/website/client/src/router/shared-route-imports.js index e336f99cc69..e3b5d24d13a 100644 --- a/website/client/src/router/shared-route-imports.js +++ b/website/client/src/router/shared-route-imports.js @@ -1,3 +1 @@ export const NotFoundPage = () => import(/* webpackChunkName: "not-found" */'@/components/404'); - -export const ProfilePage = () => import(/* webpackChunkName: "user" */'@/components/userMenu/profilePage'); From f55d74a95dcf7e8b2210be6e1a7f661389863ee6 Mon Sep 17 00:00:00 2001 From: SabreCat Date: Fri, 15 Sep 2023 16:39:50 -0500 Subject: [PATCH 43/57] refactor(profiles): remove email feature also still more visual cleanup of profile modal --- .../client/src/components/memberDetails.vue | 44 ++++--- website/client/src/components/userLink.vue | 35 +++++ .../src/components/userMenu/profile.vue | 120 ++++-------------- website/server/controllers/api-v3/chat.js | 27 +--- .../libs/chatReporting/groupChatReporter.js | 12 -- .../libs/chatReporting/inboxChatReporter.js | 14 +- .../libs/chatReporting/profileReporter.js | 34 ----- 7 files changed, 84 insertions(+), 202 deletions(-) diff --git a/website/client/src/components/memberDetails.vue b/website/client/src/components/memberDetails.vue index e59ad25587e..7311cb60afd 100644 --- a/website/client/src/components/memberDetails.vue +++ b/website/client/src/components/memberDetails.vue @@ -1,10 +1,10 @@ @@ -39,7 +50,12 @@ &[class*="tier"] .svg-icon { margin-top: 5px; + + &.margin-bump { + margin-top: 7px; + } } + &.npc .svg-icon { margin-top: 4px; } @@ -52,6 +68,21 @@ } } } + + .is-buffed { + width: 20px; + height: 20px; + background: $header-dark-background; + display: inline-block; + margin-top: 2px; + + .svg-icon { + display: block; + width: 10px; + height: 12px; + margin: 0 auto; + } + }