fix imports

This commit is contained in:
Phillip Thelen
2025-09-04 14:37:42 +02:00
parent 2c7f6fd9e3
commit d952239d35
41 changed files with 31 additions and 59 deletions

View File

@@ -1,8 +1,8 @@
<template> <template>
<div <div
class="banner d-flex align-items-center justify-content-between py-3 px-4"
id="privacy-banner"
v-if="!hidden" v-if="!hidden"
id="privacy-banner"
class="banner d-flex align-items-center justify-content-between py-3 px-4"
> >
<p <p
class="mr-3 mb-0" class="mr-3 mb-0"

View File

@@ -64,9 +64,11 @@
<li>sexual orientation; and</li> <li>sexual orientation; and</li>
<li>information collected from a known child.</li> <li>information collected from a known child.</li>
</ul> </ul>
<p><strong> <p>
<strong>
NOTE: Please do not provide us sensitive personal information or sensitive personal data, as those terms are defined under applicable privacy laws, unless we directly request that you do so. If you feel, after careful consideration, that it is necessary to provide us certain sensitive personal information or data, please provide us the minimum amount of such information or data that is necessary. NOTE: Please do not provide us sensitive personal information or sensitive personal data, as those terms are defined under applicable privacy laws, unless we directly request that you do so. If you feel, after careful consideration, that it is necessary to provide us certain sensitive personal information or data, please provide us the minimum amount of such information or data that is necessary.
</strong></p> </strong>
</p>
<h3 id="section_1_1"> <h3 id="section_1_1">
1.1 Information You Provide Directly 1.1 Information You Provide Directly
</h3> </h3>
@@ -617,7 +619,7 @@
7. General Audience Services 7. General Audience Services
</h2> </h2>
<p> <p>
The Service is intended for users 18 years or older; you are not permitted to access or use the Service if you are younger than 18. We do not knowingly collect personal information from children under the age of 18 through the Service. We encourage parents and legal guardians to monitor their childrens Internet usage and to help enforce our Privacy Policy by instructing their children to never provide personal information without their permission. If you have reason to believe that a child under the age of 18 has provided personal information to us, please contact us at <a href='mailto:privacy@habitica.com'>privacy@habitica.com</a>, and we will delete that information from our databases. The Service is intended for users 18 years or older; you are not permitted to access or use the Service if you are younger than 18. We do not knowingly collect personal information from children under the age of 18 through the Service. We encourage parents and legal guardians to monitor their childrens Internet usage and to help enforce our Privacy Policy by instructing their children to never provide personal information without their permission. If you have reason to believe that a child under the age of 18 has provided personal information to us, please contact us at <a href="mailto:privacy@habitica.com">privacy@habitica.com</a>, and we will delete that information from our databases.
</p> </p>
<h2 id="section_8"> <h2 id="section_8">
@@ -708,7 +710,7 @@
<p><strong><u>Nevada Residents</u></strong></p> <p><strong><u>Nevada Residents</u></strong></p>
<p> <p>
Nevada residents may opt out of the sale of certain “covered information” collected by operators of websites or online services. We currently do not sell covered information, as “sale” is defined by such law, and do not have plans to do so. In accordance with Nevada law, you may submit to us a verified request instructing us not to sell your covered information by sending an email to <a href='mailto:privacy@habitica.com'>privacy@habitica.com</a>. Nevada residents may opt out of the sale of certain “covered information” collected by operators of websites or online services. We currently do not sell covered information, as “sale” is defined by such law, and do not have plans to do so. In accordance with Nevada law, you may submit to us a verified request instructing us not to sell your covered information by sending an email to <a href="mailto:privacy@habitica.com">privacy@habitica.com</a>.
</p> </p>
<p><strong><u>Notice to United Kingdom/European/Switzerland Residents.</u></strong></p> <p><strong><u>Notice to United Kingdom/European/Switzerland Residents.</u></strong></p>
<p> <p>

View File

@@ -15,8 +15,8 @@
<router-view /> <router-view />
</div> </div>
<div <div
id="bottom-background"
v-if="loginFlow" v-if="loginFlow"
id="bottom-background"
class="bg-purple-300" class="bg-purple-300"
> >
<div class="seamless_mountains_demo_repeat"></div> <div class="seamless_mountains_demo_repeat"></div>
@@ -31,7 +31,10 @@
id="bottom-wrap" id="bottom-wrap"
class="purple-4" class="purple-4"
> >
<div id="bottom-background" v-if="!loginFlow"> <div
v-if="!loginFlow"
id="bottom-background"
>
<div class="seamless_mountains_demo_repeat"></div> <div class="seamless_mountains_demo_repeat"></div>
<div class="midground_foreground_extended2"></div> <div class="midground_foreground_extended2"></div>
</div> </div>

View File

@@ -158,7 +158,7 @@
BY PURCHASING PREMIUM YOU EXPRESSLY UNDERSTAND AND AGREE TO OUR REFUND POLICY: BY PURCHASING PREMIUM YOU EXPRESSLY UNDERSTAND AND AGREE TO OUR REFUND POLICY:
</p> </p>
<p> <p>
YOU CAN REQUEST A REFUND OF YOUR MOST RECENT PAYMENT TO US BY CONTACTING US AT <a href='mailto:admin@habitica.com'>ADMIN@HABITICA.COM</a>. THE AMOUNT OF YOUR REFUND, IF ANY, WILL BE BASED ON (1) THE AMOUNT OF YOUR PURCHASED BUT UNUSED SUBSCRIPTION BENEFITS AND (2) THE TERMS IMPOSED ON US BY OUR PAYMENT PROCESSING VENDORS (E.G., WITH RESPECT TO THE DURATION OF THE REFUND PERIOD). YOU CAN REQUEST A REFUND OF YOUR MOST RECENT PAYMENT TO US BY CONTACTING US AT <a href="mailto:admin@habitica.com">ADMIN@HABITICA.COM</a>. THE AMOUNT OF YOUR REFUND, IF ANY, WILL BE BASED ON (1) THE AMOUNT OF YOUR PURCHASED BUT UNUSED SUBSCRIPTION BENEFITS AND (2) THE TERMS IMPOSED ON US BY OUR PAYMENT PROCESSING VENDORS (E.G., WITH RESPECT TO THE DURATION OF THE REFUND PERIOD).
</p> </p>
<p> <p>
FOR ANY CUSTOMER WHO PURCHASED PREMIUM IN APPLE INC.'s APP STORE ("APP STORE"), PLEASE CONTACT APPLE INC.'s SUPPORT TEAM: <a FOR ANY CUSTOMER WHO PURCHASED PREMIUM IN APPLE INC.'s APP STORE ("APP STORE"), PLEASE CONTACT APPLE INC.'s SUPPORT TEAM: <a

View File

@@ -25,8 +25,8 @@
type="checkbox" type="checkbox"
:checked="isChecked" :checked="isChecked"
:value="value" :value="value"
@change="handleChange"
:disabled="disabled" :disabled="disabled"
@change="handleChange"
> >
<label <label
class="toggle-switch-label" class="toggle-switch-label"

View File

@@ -1,4 +1,3 @@
import forEach from 'lodash/forEach';
import isEqual from 'lodash/isEqual'; import isEqual from 'lodash/isEqual';
import keys from 'lodash/keys'; import keys from 'lodash/keys';
import pick from 'lodash/pick'; import pick from 'lodash/pick';

View File

@@ -1,7 +1,8 @@
<template> <template>
<tr> <tr>
<td colspan="3" <td
v-if="!mixinData.inlineSettingMixin.modalVisible" v-if="!mixinData.inlineSettingMixin.modalVisible"
colspan="3"
> >
<div class="d-flex justify-content-between align-items-center"> <div class="d-flex justify-content-between align-items-center">
<h3 <h3
@@ -18,8 +19,9 @@
</a> </a>
</div> </div>
</td> </td>
<td colspan="3" <td
v-if="mixinData.inlineSettingMixin.modalVisible" v-if="mixinData.inlineSettingMixin.modalVisible"
colspan="3"
> >
<h3 <h3
v-once v-once
@@ -44,8 +46,8 @@
{{ $t('performanceAnalytics') }} {{ $t('performanceAnalytics') }}
</label> </label>
<toggle-switch <toggle-switch
class="mb-auto"
v-model="user.preferences.analyticsConsent" v-model="user.preferences.analyticsConsent"
class="mb-auto"
@change="prefToggled()" @change="prefToggled()"
/> />
</div> </div>
@@ -112,14 +114,14 @@ import { InlineSettingMixin } from '../components/inlineSettingMixin';
import { mapState } from '@/libs/store'; import { mapState } from '@/libs/store';
export default { export default {
mixins: [
GenericUserPreferencesMixin,
InlineSettingMixin,
],
components: { components: {
SaveCancelButtons, SaveCancelButtons,
ToggleSwitch, ToggleSwitch,
}, },
mixins: [
GenericUserPreferencesMixin,
InlineSettingMixin,
],
computed: { computed: {
...mapState({ ...mapState({
user: 'user.data', user: 'user.data',

View File

@@ -128,7 +128,6 @@ import PrivacyBanner from '@/components/header/banners/privacy';
import AppFooter from '@/components/appFooter'; import AppFooter from '@/components/appFooter';
import notificationsDisplay from '@/components/notifications'; import notificationsDisplay from '@/components/notifications';
import { mapState } from '@/libs/store'; import { mapState } from '@/libs/store';
import * as Analytics from '@/libs/analytics';
import BuyModal from '@/components/shops/buyModal.vue'; import BuyModal from '@/components/shops/buyModal.vue';
import SelectMembersModal from '@/components/selectMembersModal.vue'; import SelectMembersModal from '@/components/selectMembersModal.vue';
import notifications from '@/mixins/notifications'; import notifications from '@/mixins/notifications';

View File

@@ -6,6 +6,6 @@ export async function trackEvent (store, params) {
} }
export async function updateUserProperties (store, params) { export async function updateUserProperties (store, params) {
const url = `/analytics/update`; const url = '/analytics/update';
await axios.post(url, params); await axios.post(url, params);
} }

View File

@@ -3,7 +3,6 @@ import isFunction from 'lodash/isFunction';
import min from 'lodash/min'; import min from 'lodash/min';
import reduce from 'lodash/reduce'; import reduce from 'lodash/reduce';
import filter from 'lodash/filter'; import filter from 'lodash/filter';
import pick from 'lodash/pick';
import pickBy from 'lodash/pickBy'; import pickBy from 'lodash/pickBy';
import size from 'lodash/size'; import size from 'lodash/size';
import moment from 'moment'; import moment from 'moment';

View File

@@ -1,5 +1,3 @@
import pick from 'lodash/pick';
export function hasCompletedOnboarding (user) { export function hasCompletedOnboarding (user) {
return ( return (
user.achievements.createdTask === true user.achievements.createdTask === true

View File

@@ -1,7 +1,6 @@
/* eslint-disable max-classes-per-file */ /* eslint-disable max-classes-per-file */
import get from 'lodash/get'; import get from 'lodash/get';
import merge from 'lodash/merge'; import merge from 'lodash/merge';
import pick from 'lodash/pick';
import i18n from '../../i18n'; import i18n from '../../i18n';
import { import {
NotAuthorized, NotAuthorized,

View File

@@ -1,6 +1,5 @@
import get from 'lodash/get'; import get from 'lodash/get';
import each from 'lodash/each'; import each from 'lodash/each';
import pick from 'lodash/pick';
import i18n from '../../i18n'; import i18n from '../../i18n';
import content from '../../content/index'; import content from '../../content/index';
import { import {

View File

@@ -1,7 +1,6 @@
import get from 'lodash/get'; import get from 'lodash/get';
import includes from 'lodash/includes'; import includes from 'lodash/includes';
import keys from 'lodash/keys'; import keys from 'lodash/keys';
import pick from 'lodash/pick';
import i18n from '../../i18n'; import i18n from '../../i18n';
import content from '../../content/index'; import content from '../../content/index';
import { import {

View File

@@ -2,7 +2,6 @@ import forEach from 'lodash/forEach';
import findIndex from 'lodash/findIndex'; import findIndex from 'lodash/findIndex';
import get from 'lodash/get'; import get from 'lodash/get';
import keys from 'lodash/keys'; import keys from 'lodash/keys';
import pick from 'lodash/pick';
import upperFirst from 'lodash/upperFirst'; import upperFirst from 'lodash/upperFirst';
import moment from 'moment'; import moment from 'moment';
import i18n from '../i18n'; import i18n from '../i18n';

View File

@@ -2,7 +2,6 @@ import findIndex from 'lodash/findIndex';
import forEach from 'lodash/forEach'; import forEach from 'lodash/forEach';
import get from 'lodash/get'; import get from 'lodash/get';
import keys from 'lodash/keys'; import keys from 'lodash/keys';
import pick from 'lodash/pick';
import upperFirst from 'lodash/upperFirst'; import upperFirst from 'lodash/upperFirst';
import moment from 'moment'; import moment from 'moment';
import i18n from '../i18n'; import i18n from '../i18n';

View File

@@ -1,5 +1,4 @@
import each from 'lodash/each'; import each from 'lodash/each';
import pick from 'lodash/pick';
import i18n from '../i18n'; import i18n from '../i18n';
import { capByLevel } from '../statHelpers'; import { capByLevel } from '../statHelpers';
import { MAX_LEVEL } from '../constants'; import { MAX_LEVEL } from '../constants';

View File

@@ -1,4 +1,3 @@
import pick from 'lodash/pick';
import content from '../content/index'; import content from '../content/index';
import { mountMasterProgress } from '../count'; import { mountMasterProgress } from '../count';
import i18n from '../i18n'; import i18n from '../i18n';

View File

@@ -1,4 +1,3 @@
import pick from 'lodash/pick';
import content from '../content/index'; import content from '../content/index';
import { beastMasterProgress } from '../count'; import { beastMasterProgress } from '../count';
import i18n from '../i18n'; import i18n from '../i18n';

View File

@@ -1,5 +1,4 @@
import each from 'lodash/each'; import each from 'lodash/each';
import pick from 'lodash/pick';
import i18n from '../i18n'; import i18n from '../i18n';
import { import {
NotAuthorized, NotAuthorized,

View File

@@ -1,5 +1,4 @@
import merge from 'lodash/merge'; import merge from 'lodash/merge';
import pick from 'lodash/pick';
import reduce from 'lodash/reduce'; import reduce from 'lodash/reduce';
import each from 'lodash/each'; import each from 'lodash/each';
import i18n from '../i18n'; import i18n from '../i18n';

View File

@@ -1,5 +1,3 @@
import pick from 'lodash/pick';
export function sleep (user, req = {}, analytics) { export function sleep (user, req = {}, analytics) {
user.preferences.sleep = !user.preferences.sleep; user.preferences.sleep = !user.preferences.sleep;

View File

@@ -1,5 +1,4 @@
import get from 'lodash/get'; import get from 'lodash/get';
import pick from 'lodash/pick';
import setWith from 'lodash/setWith'; import setWith from 'lodash/setWith';
import i18n from '../i18n'; import i18n from '../i18n';
import { NotAuthorized, BadRequest } from '../libs/errors'; import { NotAuthorized, BadRequest } from '../libs/errors';

View File

@@ -1,6 +1,5 @@
import validator from 'validator'; import validator from 'validator';
import moment from 'moment'; import moment from 'moment';
import pick from 'lodash/pick';
import sortBy from 'lodash/sortBy'; import sortBy from 'lodash/sortBy';
import nconf from 'nconf'; import nconf from 'nconf';
import { import {

View File

@@ -1,7 +1,6 @@
import cloneDeep from 'lodash/cloneDeep'; import cloneDeep from 'lodash/cloneDeep';
import escapeRegExp from 'lodash/escapeRegExp'; import escapeRegExp from 'lodash/escapeRegExp';
import merge from 'lodash/merge'; import merge from 'lodash/merge';
import pick from 'lodash/pick';
import reduce from 'lodash/reduce'; import reduce from 'lodash/reduce';
import times from 'lodash/times'; import times from 'lodash/times';
import { authWithHeaders, authWithSession } from '../../middlewares/auth'; import { authWithHeaders, authWithSession } from '../../middlewares/auth';

View File

@@ -1,4 +1,3 @@
import pick from 'lodash/pick';
import moment from 'moment'; import moment from 'moment';
import nconf from 'nconf'; import nconf from 'nconf';
import { authWithHeaders } from '../../middlewares/auth'; import { authWithHeaders } from '../../middlewares/auth';

View File

@@ -5,7 +5,6 @@ import findIndex from 'lodash/findIndex';
import includes from 'lodash/includes'; import includes from 'lodash/includes';
import isArray from 'lodash/isArray'; import isArray from 'lodash/isArray';
import mergeWith from 'lodash/mergeWith'; import mergeWith from 'lodash/mergeWith';
import pick from 'lodash/pick';
import uniqBy from 'lodash/uniqBy'; import uniqBy from 'lodash/uniqBy';
import nconf from 'nconf'; import nconf from 'nconf';
import moment from 'moment'; import moment from 'moment';

View File

@@ -1,5 +1,4 @@
import escapeRegExp from 'lodash/escapeRegExp'; import escapeRegExp from 'lodash/escapeRegExp';
import pick from 'lodash/pick';
import { authWithHeaders } from '../../middlewares/auth'; import { authWithHeaders } from '../../middlewares/auth';
import { import {
model as User, model as User,
@@ -737,7 +736,7 @@ api.transferGems = {
if (res.analytics) { if (res.analytics) {
res.analytics.track('transfer gems', { res.analytics.track('transfer gems', {
user, user: sender,
uuid: sender._id, uuid: sender._id,
hitType: 'event', hitType: 'event',
category: 'behavior', category: 'behavior',

View File

@@ -1,7 +1,6 @@
import each from 'lodash/each'; import each from 'lodash/each';
import every from 'lodash/every'; import every from 'lodash/every';
import isBoolean from 'lodash/isBoolean'; import isBoolean from 'lodash/isBoolean';
import pick from 'lodash/pick';
import { authWithHeaders } from '../../middlewares/auth'; import { authWithHeaders } from '../../middlewares/auth';
import { getAnalyticsServiceByEnvironment } from '../../libs/analyticsService'; import { getAnalyticsServiceByEnvironment } from '../../libs/analyticsService';
import { import {

View File

@@ -1,7 +1,6 @@
import assign from 'lodash/assign'; import assign from 'lodash/assign';
import find from 'lodash/find'; import find from 'lodash/find';
import merge from 'lodash/merge'; import merge from 'lodash/merge';
import pick from 'lodash/pick';
import moment from 'moment'; import moment from 'moment';
import { authWithHeaders } from '../../middlewares/auth'; import { authWithHeaders } from '../../middlewares/auth';
import { import {

View File

@@ -1,4 +1,3 @@
import pick from 'lodash/pick';
import isUUID from 'validator/lib/isUUID'; import isUUID from 'validator/lib/isUUID';
import { authWithHeaders } from '../../../middlewares/auth'; import { authWithHeaders } from '../../../middlewares/auth';
import * as Tasks from '../../../models/task'; import * as Tasks from '../../../models/task';

View File

@@ -1,7 +1,6 @@
import cloneDeep from 'lodash/cloneDeep'; import cloneDeep from 'lodash/cloneDeep';
import forEach from 'lodash/forEach'; import forEach from 'lodash/forEach';
import isFunction from 'lodash/isFunction'; import isFunction from 'lodash/isFunction';
import pick from 'lodash/pick';
import nconf from 'nconf'; import nconf from 'nconf';
import get from 'lodash/get'; import get from 'lodash/get';
import { authWithHeaders } from '../../middlewares/auth'; import { authWithHeaders } from '../../middlewares/auth';

View File

@@ -261,8 +261,8 @@ async function updateUserData (data) {
} }
const toUpdate = { const toUpdate = {
..._formatUserData(user), ..._formatUserData(user),
...properties ...properties,
} };
return _updateProperties(toUpdate, user._id); return _updateProperties(toUpdate, user._id);
} }
@@ -271,7 +271,7 @@ async function updateUserData (data) {
const mockAnalyticsService = { const mockAnalyticsService = {
track: () => { }, track: () => { },
trackPurchase: () => { }, trackPurchase: () => { },
updateUserData: () => { } updateUserData: () => { },
}; };
// Return the production or mock service based on the current environment // Return the production or mock service based on the current environment
@@ -280,7 +280,7 @@ function getServiceByEnvironment () {
return { return {
track, track,
trackPurchase, trackPurchase,
updateUserData updateUserData,
}; };
} }
return mockAnalyticsService; return mockAnalyticsService;

View File

@@ -1,5 +1,4 @@
import moment from 'moment'; import moment from 'moment';
import pick from 'lodash/pick';
import { import {
BadRequest, BadRequest,
NotAuthorized, NotAuthorized,

View File

@@ -1,4 +1,3 @@
import pick from 'lodash/pick';
import passport from 'passport'; import passport from 'passport';
import common from '../../../common'; import common from '../../../common';
import { BadRequest, NotAuthorized, NotFound } from '../errors'; import { BadRequest, NotAuthorized, NotFound } from '../errors';

View File

@@ -1,6 +1,5 @@
import moment from 'moment'; import moment from 'moment';
import mongoose from 'mongoose'; import mongoose from 'mongoose';
import pick from 'lodash/pick';
import nconf from 'nconf'; import nconf from 'nconf';
import { model as User } from '../models/user'; import { model as User } from '../models/user';
import * as Tasks from '../models/task'; import * as Tasks from '../models/task';

View File

@@ -1,6 +1,5 @@
import find from 'lodash/find'; import find from 'lodash/find';
import includes from 'lodash/includes'; import includes from 'lodash/includes';
import pick from 'lodash/pick';
import { encrypt } from '../encryption'; import { encrypt } from '../encryption';
import { sendNotification as sendPushNotification } from '../pushNotifications'; import { sendNotification as sendPushNotification } from '../pushNotifications';

View File

@@ -1,5 +1,4 @@
import find from 'lodash/find'; import find from 'lodash/find';
import pick from 'lodash/pick';
import { getAnalyticsServiceByEnvironment } from '../analyticsService'; import { getAnalyticsServiceByEnvironment } from '../analyticsService';
import { getCurrentEventList } from '../worldState'; // eslint-disable-line import/no-cycle import { getCurrentEventList } from '../worldState'; // eslint-disable-line import/no-cycle
import { // eslint-disable-line import/no-cycle import { // eslint-disable-line import/no-cycle

View File

@@ -1,4 +1,3 @@
import pick from 'lodash/pick';
import moment from 'moment'; import moment from 'moment';
import { import {
BadRequest, BadRequest,

View File

@@ -3,7 +3,6 @@
import defaults from 'lodash/defaults'; import defaults from 'lodash/defaults';
import each from 'lodash/each'; import each from 'lodash/each';
import find from 'lodash/find'; import find from 'lodash/find';
import pick from 'lodash/pick';
import moment from 'moment'; import moment from 'moment';
import { getAnalyticsServiceByEnvironment } from '../analyticsService'; import { getAnalyticsServiceByEnvironment } from '../analyticsService';

View File

@@ -3,7 +3,6 @@ import cloneDeep from 'lodash/cloneDeep';
import compact from 'lodash/compact'; import compact from 'lodash/compact';
import forEach from 'lodash/forEach'; import forEach from 'lodash/forEach';
import keys from 'lodash/keys'; import keys from 'lodash/keys';
import pick from 'lodash/pick';
import remove from 'lodash/remove'; import remove from 'lodash/remove';
import validator from 'validator'; import validator from 'validator';
import { import {