9d16ab7dba
* add date check
* achievements modal polishing
* refresh private-messages page when you are already on it
* add countbadge knob to change the example
* fix lint
* typos
* typos
* typos
* add toggle for achievements categories
* typo
* fix test
* fix edit avatar modal cannot be closed
* WIP(settings): subscriber page improvements
* WIP(subscriptions): more design build-out
* fix(css): disabled button styles
* fix(css): better Amazon targeting
* fix hide tooltip + align header correctly
* disable perfect scroll
* load messages on refresh event
* fix header label + conversation actions not breaking layout on hover
* WIP(g1g1): notif
* WIP(g1g1): notif cont'd
* fix(test): snowball change
* fix(event): feature NYE card
* chore(sprites): compile
* fix(bgs): include TT required field
* add gifting banner to the max height calculation
* chore(event): enable winter customizations
* WIP(gifting): partial modal implementation
* feat(gifting): select giftee modal
* fix(gifting): notification order, modal dismiss
* Begin implementing sign in with apple
# Conflicts:
# package-lock.json
# website/common/script/constants.js
# website/server/libs/auth/social.js
# website/server/models/user/schema.js
* Add apple sign in button to website
* fix lint errors
* fix config json
* fix(modals): correct some repops
* fix(gifting): style updates
* fix(buy): modal style changes
* fix(modals): also clean out "prev"
* Attempt workaround for sign in with apple on android
* temporarily log everything as error
* refactor(modals): hide in dismiss event
* fix temporary test failure
* changes to sign in with apple
* fix: first batch of layout issues for private messages + auto sizing textarea
* fix(modals): new dismiss logic
* fix(modals): new dismiss no go??
* Only use email scope
* print debugging
* .
* ..
* ...
* username second line - open profile on face-avatar/conversation name - fix textarea height
* temporarily disable apple auth and just return data for debugging
* Hopefully this works
* .....
* WIP(subscription): unsubscribed state
* .
* ..
* MAYBE THIS ACTUALLY WORKS???
* Implement apple sign in
* fix some urls
* fix urls
* fix redirect and auth
* attempt to also request name
* fix lint error
* WIP(subscription): partial subscribed
* chore(sprites): compile
* Change approach so that it actually works
* fix config error
* fix lint errors
* Fix
* fix lint error
* lint error
* WIP(subscription): finish subscribed
* refresh on sync
* new "you dont have any messages" style + changed min textarea height
* new conversationItem style / layout
* reset message unread on reload
* chore(npm): update package-locks
* fix styles / textarea height
* feat(subscription): revised sub page RC
* list optOut / chatRevoked informations for each conversation + show why its disabled
* Improve apple redirect view
* Fix apple icon on group task registration page
* WIP(adventure): prereqs
* Block / Unblock - correct disabled states - $gray-200 instead of 300/400
* canReceive not checking chatRevoked
* fix: faceAvatar / userLink open the selected conversation user
* check if the target user is blocking the logged-in user
* fix(subs): style tweaks
* fix(profiles): short circuit contributor
Attempted fix for #11830
* chore(sprites): compile
* fix(content): missing potion data
* fix(content): missing string
* WIP(drops): new modal
* fix(subs): moar style tweaks
* check if blocks is undefined
* max-height instead of height
* fix "no messages" state + canReceive on a new conversation
* WIP(adventure): analytics fixes etc
* Improve apple signin handling
* fixed conversations width (280px on max 768 width page)
* feat(adventure): random egg+potion on 2nd task
* fix(lint): noworkies
* fix(modal): correctly construct classes
* fix(tests): expectations and escape
* Fix typo
* use base url from env variables
* fix lint
* call autosize after message is sent
* fix urls
* always verify token
* throw error when social auth could not retrieve id
* Store emails correctly for apple auth
* Retrieve name when authenticating through apple
* Fix lint errors
* fix all lint errors
* fix(content): missing strings
* Revert "always verify token"
This reverts commit 8ac40c76bf.
# Conflicts:
# website/server/libs/auth/social.js
* Correctly load name
* remove extra changes
* remove extra logger call
* reset package and package-lock
* add back missing packages
* use name from apple
* add support for multiple apple public keys
* add some unit and integration tests
* add apple auth integration test
* tweak social signup buttons
* pixel pushing
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: negue <eugen.bolz@gmail.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
154 lines
3.8 KiB
JavaScript
154 lines
3.8 KiB
JavaScript
/* eslint-disable import/no-commonjs */
|
|
const path = require('path');
|
|
const webpack = require('webpack');
|
|
const nconf = require('nconf');
|
|
const { DuplicatesPlugin } = require('inspectpack/plugin');
|
|
const setupNconf = require('../../website/server/libs/setupNconf');
|
|
const pkg = require('./package.json');
|
|
|
|
const configFile = path.join(path.resolve(__dirname, '../../config.json'));
|
|
|
|
// TODO abstract from server
|
|
setupNconf(configFile, nconf);
|
|
|
|
const DEV_BASE_URL = nconf.get('BASE_URL');
|
|
|
|
const envVars = [
|
|
'AMAZON_PAYMENTS_SELLER_ID',
|
|
'AMAZON_PAYMENTS_CLIENT_ID',
|
|
'AMAZON_PAYMENTS_MODE',
|
|
'EMAILS_COMMUNITY_MANAGER_EMAIL',
|
|
'EMAILS_TECH_ASSISTANCE_EMAIL',
|
|
'EMAILS_PRESS_ENQUIRY_EMAIL',
|
|
'BASE_URL',
|
|
'GA_ID',
|
|
'STRIPE_PUB_KEY',
|
|
'FACEBOOK_KEY',
|
|
'GOOGLE_CLIENT_ID',
|
|
'APPLE_AUTH_CLIENT_ID',
|
|
'AMPLITUDE_KEY',
|
|
'LOGGLY_CLIENT_TOKEN',
|
|
// TODO necessary? if yes how not to mess up with vue cli? 'NODE_ENV'
|
|
];
|
|
|
|
const envObject = {};
|
|
|
|
envVars
|
|
.forEach(key => {
|
|
envObject[key] = nconf.get(key);
|
|
});
|
|
|
|
module.exports = {
|
|
assetsDir: 'static',
|
|
configureWebpack: {
|
|
plugins: [
|
|
new DuplicatesPlugin({
|
|
verbose: true,
|
|
}),
|
|
new webpack.EnvironmentPlugin(envObject),
|
|
new webpack.ContextReplacementPlugin(/moment[\\/]locale$/, /^\.\/(NOT_EXISTING)$/),
|
|
],
|
|
},
|
|
chainWebpack: config => {
|
|
// Fix issue with duplicated deps in monorepos
|
|
// https://getpocket.com/redirect?url=https%3A%2F%2Fgithub.com%2Fwebpack%2Fwebpack%2Fissues%2F8886
|
|
// Manually resolve each dependency
|
|
Object.keys(pkg.dependencies).forEach(dep => {
|
|
config.resolve.alias
|
|
.set(dep, path.resolve(__dirname, `./node_modules/${dep}`));
|
|
});
|
|
|
|
const svgRule = config.module.rule('svg');
|
|
|
|
// clear all existing loaders.
|
|
// if you don't do this, the loader below will be appended to
|
|
// existing loaders of the rule.
|
|
svgRule.uses.clear();
|
|
|
|
// add replacement loader(s)
|
|
svgRule
|
|
.test(/\.svg$/)
|
|
.oneOf('normal')
|
|
.exclude
|
|
.add(path.resolve(__dirname, 'src/assets/svg/for-css'))
|
|
.end()
|
|
.use('svg-ingline-loader')
|
|
.loader('svg-inline-loader')
|
|
.end()
|
|
.use('svgo-loader')
|
|
.loader('svgo-loader')
|
|
.options({
|
|
plugins: [
|
|
{ removeViewBox: false },
|
|
{ convertPathData: { noSpaceAfterFlags: false } },
|
|
],
|
|
})
|
|
.end()
|
|
.end()
|
|
.oneOf('in-css')
|
|
.include
|
|
.add(path.resolve(__dirname, 'src/assets/svg/for-css'))
|
|
.end()
|
|
.use('svg-in-css')
|
|
.loader('svg-url-loader')
|
|
.options({
|
|
limit: 4000,
|
|
name: 'static/svg/[contenthash].[ext]',
|
|
})
|
|
.end()
|
|
.use('svgo-loader')
|
|
.loader('svgo-loader')
|
|
.options({
|
|
plugins: [
|
|
{ removeViewBox: false },
|
|
{ convertPathData: { noSpaceAfterFlags: false } },
|
|
],
|
|
});
|
|
|
|
// Disable eslint warnings when running the server
|
|
config.module
|
|
.rule('eslint')
|
|
.use('eslint-loader')
|
|
.loader('eslint-loader')
|
|
.tap(options => {
|
|
options.quiet = true;
|
|
return options;
|
|
});
|
|
},
|
|
|
|
devServer: {
|
|
disableHostCheck: true,
|
|
proxy: {
|
|
// proxy all requests to the server at IP:PORT as specified in the top-level config
|
|
'^/api/v3': {
|
|
target: DEV_BASE_URL,
|
|
changeOrigin: true,
|
|
},
|
|
'^/api/v4': {
|
|
target: DEV_BASE_URL,
|
|
changeOrigin: true,
|
|
},
|
|
'^/stripe': {
|
|
target: DEV_BASE_URL,
|
|
changeOrigin: true,
|
|
},
|
|
'^/amazon': {
|
|
target: DEV_BASE_URL,
|
|
changeOrigin: true,
|
|
},
|
|
'^/paypal': {
|
|
target: DEV_BASE_URL,
|
|
changeOrigin: true,
|
|
},
|
|
'^/logout-server': {
|
|
target: DEV_BASE_URL,
|
|
changeOrigin: true,
|
|
},
|
|
'^/export': {
|
|
target: DEV_BASE_URL,
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
},
|
|
};
|