From 621ac0bdc76ef1f38b227ede9200a947bbbc8073 Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Sat, 9 Nov 2019 19:49:50 -0600 Subject: [PATCH 01/51] docs: document FE interaction with the BE private setting --- docs/CONFIGURATION.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index 3536353725..f7397a55fc 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -96,3 +96,6 @@ Setting this will change the warning text that is displayed for direct messages. ATTENTION: If you actually want the behavior to change. You will need to set the appropriate option at the backend. See the backend documentation for information about that. DO NOT activate this without checking the backend configuration first! + +### Private Mode +If the `private` instance setting is enabled in the backend, features that are not accessible without authentication, such as the timelines and search will be disabled for unauthenticated users. From 99fd096ddd1cc657a86c41e7e96344b8bb1dc4de Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Sat, 9 Nov 2019 19:53:03 -0600 Subject: [PATCH 02/51] boot: track whether private mode is enabled or not --- src/boot/after_store.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/boot/after_store.js b/src/boot/after_store.js index 226b67d8ac..cbe0c33083 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -218,6 +218,9 @@ const getNodeInfo = async ({ store }) => { store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version }) store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: software.name === 'pleroma' }) + const priv = metadata.private + store.dispatch('setInstanceOption', { name: 'private', value: priv }) + const frontendVersion = window.___pleromafe_commit_hash store.dispatch('setInstanceOption', { name: 'frontendVersion', value: frontendVersion }) store.dispatch('setInstanceOption', { name: 'tagPolicyAvailable', value: metadata.federation.mrf_policies.includes('TagPolicy') }) From 21f1637e437398ec56b6078cf28b58bd4a0299ba Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Mon, 11 Nov 2019 14:14:44 -0600 Subject: [PATCH 03/51] nav panel: refactor to use vuex mapState --- src/components/nav_panel/nav_panel.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index aa3f760533..bfcab62e4e 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -1,4 +1,5 @@ import followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service' +import { mapState } from 'vuex' const NavPanel = { created () { @@ -9,17 +10,11 @@ const NavPanel = { followRequestFetcher.startFetching({ store, credentials }) } }, - computed: { - currentUser () { - return this.$store.state.users.currentUser - }, - chat () { - return this.$store.state.chat.channel - }, - followRequestCount () { - return this.$store.state.api.followRequests.length - } - } + computed: mapState({ + currentUser: state => state.users.currentUser, + chat: state => state.chat.channel, + followRequestCount: state => state.api.followRequests.length + }) } export default NavPanel From 1f9674350cdf7455fe5540d377eb327edf1336ce Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Mon, 11 Nov 2019 14:18:36 -0600 Subject: [PATCH 04/51] nav panel: disable TWKN if federation disabled, disable Public and TWKN if privateMode is enabled --- src/components/nav_panel/nav_panel.js | 4 +++- src/components/nav_panel/nav_panel.vue | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index bfcab62e4e..a6426d13a8 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -13,7 +13,9 @@ const NavPanel = { computed: mapState({ currentUser: state => state.users.currentUser, chat: state => state.chat.channel, - followRequestCount: state => state.api.followRequests.length + followRequestCount: state => state.api.followRequests.length, + privateMode: state => state.instance.private, + federating: state => state.instance.federationPolicy.federating || true }) } diff --git a/src/components/nav_panel/nav_panel.vue b/src/components/nav_panel/nav_panel.vue index 28589bb14a..d85c28bd62 100644 --- a/src/components/nav_panel/nav_panel.vue +++ b/src/components/nav_panel/nav_panel.vue @@ -28,12 +28,12 @@ -
  • +
  • {{ $t("nav.public_tl") }}
  • -
  • +
  • {{ $t("nav.twkn") }} From cb5f73148a2dc9341d16326ed606d74e818fb61d Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Mon, 11 Nov 2019 14:25:38 -0600 Subject: [PATCH 05/51] app: search API is not available in private mode so disable it --- src/App.js | 3 ++- src/App.vue | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/App.js b/src/App.js index 04a40e304a..e2b0e6db69 100644 --- a/src/App.js +++ b/src/App.js @@ -97,7 +97,8 @@ export default { this.$store.state.instance.instanceSpecificPanelContent }, showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel }, - isMobileLayout () { return this.$store.state.interface.mobileLayout } + isMobileLayout () { return this.$store.state.interface.mobileLayout }, + privateMode () { return this.$store.state.instance.private } }, methods: { scrollToTop () { diff --git a/src/App.vue b/src/App.vue index dbe842ec4f..1f244b5606 100644 --- a/src/App.vue +++ b/src/App.vue @@ -43,6 +43,7 @@ class="nav-icon mobile-hidden" @toggled="onSearchBarToggled" @click.stop.native + v-if="currentUser || !privateMode" /> Date: Mon, 11 Nov 2019 14:37:14 -0600 Subject: [PATCH 06/51] side drawer: same treatment --- src/components/side_drawer/side_drawer.js | 6 ++++++ src/components/side_drawer/side_drawer.vue | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/components/side_drawer/side_drawer.js b/src/components/side_drawer/side_drawer.js index 567d2e5e65..2725d43a49 100644 --- a/src/components/side_drawer/side_drawer.js +++ b/src/components/side_drawer/side_drawer.js @@ -34,6 +34,12 @@ const SideDrawer = { }, followRequestCount () { return this.$store.state.api.followRequests.length + }, + privateMode () { + return this.$store.state.instance.private + }, + federating () { + return this.$store.state.instance.federationPolicy.federating || true } }, methods: { diff --git a/src/components/side_drawer/side_drawer.vue b/src/components/side_drawer/side_drawer.vue index 214b8e0c9c..be18a5d7a9 100644 --- a/src/components/side_drawer/side_drawer.vue +++ b/src/components/side_drawer/side_drawer.vue @@ -79,12 +79,12 @@
  • -
  • +
  • {{ $t("nav.public_tl") }}
  • -
  • +
  • {{ $t("nav.twkn") }} @@ -99,7 +99,7 @@
    • -
    • +
    • {{ $t("nav.search") }} From 0082ed837ed0b4b9a047520460782562bad0d8aa Mon Sep 17 00:00:00 2001 From: taehoon Date: Sun, 1 Dec 2019 12:56:53 -0500 Subject: [PATCH 07/51] versioning the font resources through webpack --- index.html | 2 -- {static => src}/font/LICENSE.txt | 0 {static => src}/font/README.txt | 0 {static => src}/font/config.json | 0 {static => src}/font/css/animation.css | 0 {static => src}/font/css/fontello-codes.css | 0 {static => src}/font/css/fontello-embedded.css | 0 {static => src}/font/css/fontello-ie7-codes.css | 0 {static => src}/font/css/fontello-ie7.css | 0 {static => src}/font/css/fontello.css | 0 {static => src}/font/demo.html | 0 {static => src}/font/font/fontello.eot | Bin {static => src}/font/font/fontello.svg | 0 {static => src}/font/font/fontello.ttf | Bin {static => src}/font/font/fontello.woff | Bin {static => src}/font/font/fontello.woff2 | Bin src/main.js | 3 +++ 17 files changed, 3 insertions(+), 2 deletions(-) rename {static => src}/font/LICENSE.txt (100%) rename {static => src}/font/README.txt (100%) rename {static => src}/font/config.json (100%) rename {static => src}/font/css/animation.css (100%) rename {static => src}/font/css/fontello-codes.css (100%) rename {static => src}/font/css/fontello-embedded.css (100%) rename {static => src}/font/css/fontello-ie7-codes.css (100%) rename {static => src}/font/css/fontello-ie7.css (100%) rename {static => src}/font/css/fontello.css (100%) rename {static => src}/font/demo.html (100%) rename {static => src}/font/font/fontello.eot (100%) rename {static => src}/font/font/fontello.svg (100%) rename {static => src}/font/font/fontello.ttf (100%) rename {static => src}/font/font/fontello.woff (100%) rename {static => src}/font/font/fontello.woff2 (100%) diff --git a/index.html b/index.html index fd4e795e73..1ff944d986 100644 --- a/index.html +++ b/index.html @@ -6,8 +6,6 @@ Pleroma - - diff --git a/static/font/LICENSE.txt b/src/font/LICENSE.txt similarity index 100% rename from static/font/LICENSE.txt rename to src/font/LICENSE.txt diff --git a/static/font/README.txt b/src/font/README.txt similarity index 100% rename from static/font/README.txt rename to src/font/README.txt diff --git a/static/font/config.json b/src/font/config.json similarity index 100% rename from static/font/config.json rename to src/font/config.json diff --git a/static/font/css/animation.css b/src/font/css/animation.css similarity index 100% rename from static/font/css/animation.css rename to src/font/css/animation.css diff --git a/static/font/css/fontello-codes.css b/src/font/css/fontello-codes.css similarity index 100% rename from static/font/css/fontello-codes.css rename to src/font/css/fontello-codes.css diff --git a/static/font/css/fontello-embedded.css b/src/font/css/fontello-embedded.css similarity index 100% rename from static/font/css/fontello-embedded.css rename to src/font/css/fontello-embedded.css diff --git a/static/font/css/fontello-ie7-codes.css b/src/font/css/fontello-ie7-codes.css similarity index 100% rename from static/font/css/fontello-ie7-codes.css rename to src/font/css/fontello-ie7-codes.css diff --git a/static/font/css/fontello-ie7.css b/src/font/css/fontello-ie7.css similarity index 100% rename from static/font/css/fontello-ie7.css rename to src/font/css/fontello-ie7.css diff --git a/static/font/css/fontello.css b/src/font/css/fontello.css similarity index 100% rename from static/font/css/fontello.css rename to src/font/css/fontello.css diff --git a/static/font/demo.html b/src/font/demo.html similarity index 100% rename from static/font/demo.html rename to src/font/demo.html diff --git a/static/font/font/fontello.eot b/src/font/font/fontello.eot similarity index 100% rename from static/font/font/fontello.eot rename to src/font/font/fontello.eot diff --git a/static/font/font/fontello.svg b/src/font/font/fontello.svg similarity index 100% rename from static/font/font/fontello.svg rename to src/font/font/fontello.svg diff --git a/static/font/font/fontello.ttf b/src/font/font/fontello.ttf similarity index 100% rename from static/font/font/fontello.ttf rename to src/font/font/fontello.ttf diff --git a/static/font/font/fontello.woff b/src/font/font/fontello.woff similarity index 100% rename from static/font/font/fontello.woff rename to src/font/font/fontello.woff diff --git a/static/font/font/fontello.woff2 b/src/font/font/fontello.woff2 similarity index 100% rename from static/font/font/fontello.woff2 rename to src/font/font/fontello.woff2 diff --git a/src/main.js b/src/main.js index a9db1cff03..6469ba5c97 100644 --- a/src/main.js +++ b/src/main.js @@ -32,6 +32,9 @@ import VTooltip from 'v-tooltip' import afterStoreSetup from './boot/after_store.js' +import './font/css/fontello.css' +import './font/css/animation.css' + const currentLocale = (window.navigator.language || 'en').split('-')[0] Vue.use(Vuex) From afd4524c3920f8426051e0673b42f022cb3627fe Mon Sep 17 00:00:00 2001 From: taehoon Date: Tue, 3 Dec 2019 10:32:46 -0500 Subject: [PATCH 08/51] use another approach for versioning font files --- build/webpack.base.conf.js | 11 + package.json | 1 + src/font/LICENSE.txt | 39 -- src/font/README.txt | 75 ---- src/font/css/animation.css | 85 ----- src/font/css/fontello-codes.css | 48 --- src/font/css/fontello-embedded.css | 101 ----- src/font/css/fontello-ie7-codes.css | 48 --- src/font/css/fontello-ie7.css | 59 --- src/font/css/fontello.css | 104 ------ src/font/demo.html | 374 ------------------- src/font/font/fontello.eot | Bin 20152 -> 0 bytes src/font/font/fontello.svg | 104 ------ src/font/font/fontello.ttf | Bin 19984 -> 0 bytes src/font/font/fontello.woff | Bin 12248 -> 0 bytes src/font/font/fontello.woff2 | Bin 10392 -> 0 bytes src/main.js | 4 +- src/font/config.json => static/fontello.json | 0 yarn.lock | 191 +++++++++- 19 files changed, 198 insertions(+), 1046 deletions(-) delete mode 100755 src/font/LICENSE.txt delete mode 100755 src/font/README.txt delete mode 100755 src/font/css/animation.css delete mode 100755 src/font/css/fontello-codes.css delete mode 100755 src/font/css/fontello-embedded.css delete mode 100755 src/font/css/fontello-ie7-codes.css delete mode 100755 src/font/css/fontello-ie7.css delete mode 100755 src/font/css/fontello.css delete mode 100755 src/font/demo.html delete mode 100755 src/font/font/fontello.eot delete mode 100755 src/font/font/fontello.svg delete mode 100755 src/font/font/fontello.ttf delete mode 100755 src/font/font/fontello.woff delete mode 100755 src/font/font/fontello.woff2 rename src/font/config.json => static/fontello.json (100%) diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js index f8968966c3..9313ec20c6 100644 --- a/build/webpack.base.conf.js +++ b/build/webpack.base.conf.js @@ -3,6 +3,7 @@ var config = require('../config') var utils = require('./utils') var projectRoot = path.resolve(__dirname, '../') var ServiceWorkerWebpackPlugin = require('serviceworker-webpack-plugin') +var FontelloPlugin = require("fontello-webpack-plugin") var env = process.env.NODE_ENV // check env & config/index.js to decide weither to enable CSS Sourcemaps for the @@ -11,6 +12,8 @@ var cssSourceMapDev = (env === 'development' && config.dev.cssSourceMap) var cssSourceMapProd = (env === 'production' && config.build.productionSourceMap) var useCssSourceMap = cssSourceMapDev || cssSourceMapProd +var now = Date.now() + module.exports = { entry: { app: './src/main.js' @@ -90,6 +93,14 @@ module.exports = { new ServiceWorkerWebpackPlugin({ entry: path.join(__dirname, '..', 'src/sw.js'), filename: 'sw-pleroma.js' + }), + new FontelloPlugin({ + config: require('../static/fontello.json'), + name: 'fontello', + output: { + css: '[name].' + now + '.css', // [hash] is not supported. Use the current timestamp instead for versioning. + font: 'font/[name].' + now + '.[ext]' + } }) ] } diff --git a/package.json b/package.json index f039d41247..648ffbdbce 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "eventsource-polyfill": "^0.9.6", "express": "^4.13.3", "file-loader": "^3.0.1", + "fontello-webpack-plugin": "https://github.com/sypl/fontello-webpack-plugin.git#35dac8cfd851bc1b3be19fd97e361516a1be6633", "function-bind": "^1.0.2", "html-webpack-plugin": "^3.0.0", "http-proxy-middleware": "^0.17.2", diff --git a/src/font/LICENSE.txt b/src/font/LICENSE.txt deleted file mode 100755 index 95966f00e6..0000000000 --- a/src/font/LICENSE.txt +++ /dev/null @@ -1,39 +0,0 @@ -Font license info - - -## Font Awesome - - Copyright (C) 2016 by Dave Gandy - - Author: Dave Gandy - License: SIL () - Homepage: http://fortawesome.github.com/Font-Awesome/ - - -## Entypo - - Copyright (C) 2012 by Daniel Bruce - - Author: Daniel Bruce - License: SIL (http://scripts.sil.org/OFL) - Homepage: http://www.entypo.com - - -## Iconic - - Copyright (C) 2012 by P.J. Onori - - Author: P.J. Onori - License: SIL (http://scripts.sil.org/OFL) - Homepage: http://somerandomdude.com/work/iconic/ - - -## Fontelico - - Copyright (C) 2012 by Fontello project - - Author: Crowdsourced, for Fontello project - License: SIL (http://scripts.sil.org/OFL) - Homepage: http://fontello.com - - diff --git a/src/font/README.txt b/src/font/README.txt deleted file mode 100755 index beaab3366f..0000000000 --- a/src/font/README.txt +++ /dev/null @@ -1,75 +0,0 @@ -This webfont is generated by http://fontello.com open source project. - - -================================================================================ -Please, note, that you should obey original font licenses, used to make this -webfont pack. Details available in LICENSE.txt file. - -- Usually, it's enough to publish content of LICENSE.txt file somewhere on your - site in "About" section. - -- If your project is open-source, usually, it will be ok to make LICENSE.txt - file publicly available in your repository. - -- Fonts, used in Fontello, don't require a clickable link on your site. - But any kind of additional authors crediting is welcome. -================================================================================ - - -Comments on archive content ---------------------------- - -- /font/* - fonts in different formats - -- /css/* - different kinds of css, for all situations. Should be ok with - twitter bootstrap. Also, you can skip style and assign icon classes - directly to text elements, if you don't mind about IE7. - -- demo.html - demo file, to show your webfont content - -- LICENSE.txt - license info about source fonts, used to build your one. - -- config.json - keeps your settings. You can import it back into fontello - anytime, to continue your work - - -Why so many CSS files ? ------------------------ - -Because we like to fit all your needs :) - -- basic file, .css - is usually enough, it contains @font-face - and character code definitions - -- *-ie7.css - if you need IE7 support, but still don't wish to put char codes - directly into html - -- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face - rules, but still wish to benefit from css generation. That can be very - convenient for automated asset build systems. When you need to update font - - no need to manually edit files, just override old version with archive - content. See fontello source code for examples. - -- *-embedded.css - basic css file, but with embedded WOFF font, to avoid - CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain. - We strongly recommend to resolve this issue by `Access-Control-Allow-Origin` - server headers. But if you ok with dirty hack - this file is for you. Note, - that data url moved to separate @font-face to avoid problems with - - - - - - - -
      -

      fontello font demo

      - -
      -
      -
      -
      icon-cancel0xe800
      -
      icon-upload0xe801
      -
      icon-star0xe802
      -
      icon-star-empty0xe803
      -
      -
      -
      icon-retweet0xe804
      -
      icon-eye-off0xe805
      -
      icon-search0xe806
      -
      icon-cog0xe807
      -
      -
      -
      icon-logout0xe808
      -
      icon-down-open0xe809
      -
      icon-attach0xe80a
      -
      icon-picture0xe80b
      -
      -
      -
      icon-video0xe80c
      -
      icon-right-open0xe80d
      -
      icon-left-open0xe80e
      -
      icon-up-open0xe80f
      -
      -
      -
      icon-bell-ringing-o0xe810
      -
      icon-lock0xe811
      -
      icon-globe0xe812
      -
      icon-brush0xe813
      -
      -
      -
      icon-attention0xe814
      -
      icon-plus0xe815
      -
      icon-adjust0xe816
      -
      icon-edit0xe817
      -
      -
      -
      icon-pencil0xe818
      -
      icon-pin0xe819
      -
      icon-wrench0xe81a
      -
      icon-chart-bar0xe81b
      -
      -
      -
      icon-zoom-in0xe81c
      -
      icon-spin30xe832
      -
      icon-spin40xe834
      -
      icon-link-ext0xf08e
      -
      -
      -
      icon-link-ext-alt0xf08f
      -
      icon-menu0xf0c9
      -
      icon-mail-alt0xf0e0
      -
      icon-gauge0xf0e4
      -
      -
      -
      icon-comment-empty0xf0e5
      -
      icon-bell-alt0xf0f3
      -
      icon-plus-squared0xf0fe
      -
      icon-reply0xf112
      -
      -
      -
      icon-smile0xf118
      -
      icon-lock-open-alt0xf13e
      -
      icon-ellipsis0xf141
      -
      icon-play-circled0xf144
      -
      -
      -
      icon-thumbs-up-alt0xf164
      -
      icon-binoculars0xf1e5
      -
      icon-user-plus0xf234
      -
      -
      - - - \ No newline at end of file diff --git a/src/font/font/fontello.eot b/src/font/font/fontello.eot deleted file mode 100755 index 1703fd97fce7f856264563cd89df72928771f153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20152 zcmd^ndvsLyedq6Y-*e}wnLBqzuhG?vG$W*u5YlKQgb;%s2!j9tGL|sL5_*6@FAHJg z2U#}|A50u@s82R+PMvt`_-ym)0C~_fiM_3pCQiD?NgI-Fw>@c^_>whO6)>=@FcYymkY+k>11c9c!owJo-WHLymM z+^IdXX;3eFoQZ6{Z};6@*88g;LC#wUgFAMwZt7gU`#37mT=$I4jL!e-4|e|p(*Kn) zX>shqMN7GndxNo!zec$=Ie&2G%m<$yW~?jBm~;N%=+SxP`%r!rZ|&gp!;@QuGrJg5 z${1_eb!cLA+`RU+i;S(Kdg(*RP`@ELkw*Wl>d?&M@lU;Y;~$a!7SbRUk1>V6o}W9qc;)hwk21F52S~f;7bfO^ zys_>}jBPuO`cK$v*8!YPCiHCTA7q~C(ZyL-!X%W^k6?3aoKH_39A#Regrkf~IdV8t zmUG2F;7>Cd<2@o^B=%JP&40kwaG=6XJV4oPzk$i#ah6$PKTnCnHy&Vn#e?iwR9Hp| zMtx$J7)v5xT%j>v#%qyFwUT)2cD}@NNLMk7X1G+g)U=ekdhY5suKwWakFWmXYVMl< zTKHP$wT;($u8m*&@y}B?ZZNjQ>{@5-T0eTXTIlsR|2Rh7XaDVI^fz*cKU$N3xk^}( z!c;)dfq6Tbi@AZ&Uf@d+^RoamSPTPg(XHCrkK>^fU21nfUsDg|jfU06bw!g#e6UON9X3VM~PoEMiNA0DNLgg#gTAON9U&V@rhqY-3A>0K8*Mg#Zj> zON9VjWJ`qrti;*L2jC}LO63DEm0dlX55QS=^;|vxd)d`*feV59m)m;3NS{Zv0C4Tj2wkPb5NsE@2pS%4?@qiW)f!09v)bMn z*%Y7izS8Ily8h!$m+9h--}F@Q@Ozw=>jV#5{Hn|Q)!b_?r;n?rPN{xf(s<~rURO}A z$%R6>8jOhj$j`%p-AH7r%8Ct-+o7q7EOOWF6RNHXnSP%r8+E*OH3vqht)W1EcCkF} zymNNKqo4TM;i-T5*akfd8Ho6HIx;lU!{mGFwLU4Knh z1e`8@1pBRB!X{jFn4TkiqeC8+_=I-RWjQZt$jN<$a&%1yOLl`J9@DS7xFAa0#dnyc z`W2V!ie6^$E6TL|L$`j#?Y^Rynpe~#vRg+rS1xIREx4?ygu2l&fDuqjZOqS$1fDp%t&k(QW$`PiB_;-Yf;_NM;0?b%{ z|JFc5ag|Z7$|ZHxtqr_2)vBl_PsP=!5;V-FG>%s@PL>f=1dxze)W*#Qq93iDytygV zief;?RLuau88AZzHp#A6A?u>YS>@!8;Lu%vB)#c06NCTru~iR!y?5h%v6cgtbACtc z@cQodji;XG2Z8qEy-uIc+1TSdCh@7<-l-->LebUQs^i;=YW*iatfw7{VklhBUEltA zDGwL#4+N^}M-Fe%Pfd+yHdGx*gCz+!ZrpePXVn1Bs$_#1y#mC@1Ck{4ZOv8=3}sA$ z8kazwI1>dfj)0cAg}X{K<)B%@{LNBP>vI@C}srwvRqupQw>}(%udb? zqQHP-gU~5O1V9UP_vHCk&*LADB-@P_#~&Rye<&k#OrL%J>~sh3eKE+NJa}IC&?_HS zp341Ud2R5;-p<2M|Ch6~?NZm|hqgUB{vx=ieP%9;dqqFiaG3RGx+aGEH$uEzrwg2= zYD#?)W|T(`UCQlnB6|nis=BSX#Gy*Q$26C(G_*tUDVt15)@pRGHmPb{mk(*4 zP<6hpwk=%Z(8Qw0aMHYGp&hbU-E2sbBVSqP6YB;C9~>M!PUXHxu(V0>D8T_Pceu6w zGM}yZ7imS<6R_f(0)vjAyV%4iI)fl*?s&kzzcb65amiRzQ?LB}Ba71_o zygx&9%K)hW#a9GbP~;h?n1YN`D2Ysz7|tdW6fTTVLL9`|WJ9Dt^qaBb>e}jrDwl$5 zn_lkW#LHTWh%z;q!H}Jmh(#5($S_0AO%Z_`po-D>dX9SQc?xV0;5S3uyoT2}%Ut`M{6o1hr<4DYGotTv zI&hJf>&^>bFc3ToXN;%K300>q7{!SO?; z3ZN$9X(SO{r zu*v_f$?8a_bN()A{E036Di!&5y>IiTm-eG!iEC4Ggc|Brc)XTxFG+>butXCiYWSef z)0Fe~KXE|H@Yll))R5pOffiksR@>*;3)x{cyF0V1+yK$>Voe^m%OMG@EC>M!q#ir~ zqS6clR}{G-jt~T}bnru2w)vqvMC_oy$k$L8j}?b}6-5<+fM2tv4iDg;j&L5VY-tVg z>dHJqf#;$>XZGH{U#RX_%Kk2j;n#Dr&+Dn(n{8*G56%1$r?j(O-Mb z`4w+qJJ|goPXCFWV;^OI%3jVCKb;XA+UdtfEJ>D*w}I#mG=ju3sX(AxS zU?a?CYzlu{`{lF>E=~Q3sE-Y^>xWRE#-skJoceD? zn);_S^-pP<&vN@#Y&gl&%Nu^h@NOoefCnVhJ4A(brYE=CF6E#08rQ#ivzAz7dirdU z7|-wCR_%MYlt5%&sda07^KHmfb#n$kx;c%X+|n{P$|E$@+z;^-KG^5QjD3BGUw{A2 zw*1d|xm}R^XPVhJ?%dUnZZp0JpzL_sWUb6E zfL{_-Bkiiyu}s>aSP6$g(8`?mfr8cKzF#11&+2?WH>&IRp@gp@I!6_#BGG{SSRY;< zi-_kfV}(NYSOV#6c`6EuW$SRl+1&T|s(i0RMftNJqxb2;h1~aZ-?O7S|0q$`XYFaw zIN&&+7q;bTHALsz^plWb)9PyC?kh{fP+%;e)%!q>(eL*QYkQVf@~m@VpRV&&7!9PF z2GWU~)1pW(JSM&*4nyZnvGr^_`$DEDof0Hg?h(LL`uf3~Hf_z8K-^j-Lqfsf<}(oa z3j(YPA_sw=G1q3Ms-z;?64=&k6&l3ftpSW6f-3B@+cBJW2+5eq9IA6^jylKo@TN}Qf>YH3 zEZvsUxoOFLZO!fNwcBdT|2@8O z`^Nacm)CBqYhRmc?UO2UpIa9x?=!<|gtd)L4ZM$+M{=!_yt!2v$H4NR-a1M&-M)T_FWIlQsrt{ zliO<~=olnF;&BpuM+MiZ%_JbKFh~nbm;tDvHgIlp6g~t&nD@s5)#-pwfzlAD#6mqh zBo`P4m~8J5&hKkx7e!b4lLj)9?#9qh~O&)H?Lg%7dQFn5WV^*P`Q z87%*f{SBn5VYZWXK~ZXE7EDDtVE})Yf0%!WKgHkAAK}ON1Rnz<_$T%Qn7Lr!Z6K+I>S^&R7uCwL`6HoG%jlV2q@MpXe5N%LA;naBulXF zi2ZpmX4)kVt}KfaIG(bg9zh>+z7ILyhkUaSSuzt6Am zKjUBE_wYUJuh>`F=h$c21@;;CFnbWl0_!Qzf+Oe{4yU~-!eN^sb&ZoKPUjq&Z8{Vu z1!n_S;w^@niYqM*5|Mtg;TW~th$>MPr#%L#vbjNk=!tA7J_@J+X;P&7C{aX+Qp8mX zO>wo8$EeeUNvadhPqUdyG}#rD5LLzi33Q8I6LCs|>OhvoP>QKSBR7e?LlJ9Dg%XO| zL|uhiLvhe3Q^gF>R8b>>(Q2x;@}(x?irGy4RA54_N`(k@6g@?i7Sw`FoM;e0(oh%? zU|&<4B2tBDHlbI{zBOtaMj%Y5ThI$0wEB2D)Re|@u`ELg#?oYBM7|nTJz^YFpmc)f z1%V}nb(m@NgbACi5dqLix0;{|og6x4O9NT@Y-lv0MijGwwZWuktC@~>@?dK^Msp+p zH?;sDBD76#-!$}3`sd|XSrG7Qz^-|DJRK*vrVfvD`<*{Et4c&RwNFC6Bk7ZKZPq0H)U9NpjT@yE|*E7096Zv z3918Cz|zoA7bMv&iiRg3Y0&k!AUgyea43=>E4rvjKz>nipf|{?vIzB1;vUuMm3%NH zXt3pBDjIbxLfrSuqRWNh1y^yYsK|0a7M+sYiGdVJlN{2{CW+Kck%wVHQe}zei6No# z>8k3NRELBC1rO4K2kL|1)kJhHf)|2iqX*fg3Zf=DR8vu8P4h_x`a$QS2UaUx){1li zKQ0SM38G7c9!Q`9326dc5CmNVs1!w&9WH(9=m5-SZnO^)*&sm6E>Ii%z?C#f#|{Yq zH7a2ulGDotht5U+;>$mMdC`94{()=g4V6XNiE8Kqx(L<_xN<>p$qL{K7KhEn3vmI{ z#D-(#*lShPR9%&1MRpNtU}-J~fFffFVv!(vG|Cqp*j7>D9!W=+GM1%Fs;Y8_tf?A+ zg#Mv#OE7PV9x9e4C?dM%6+|MV9sod6@P|p%?*OJ@`xLK^IY58&I1H!2l@bA5R#KqN zilPrNmNZ$DxHIgQU0Ai`(maxf>rMl@x(twGFZ`ko`v=)9bsNBfPxBN0Vjeo=7urg| z+b4U877I=+8c8Yaad>10nOp&C03F9f7QDa_r11~hBWwTwq({(o85xq(f%Ra)f{ryy zI1m7V!m&IwqK>y_eOjrdOywr@6X`vdn-YCdKf+P?~sw#}W2}rH{)z3V- zv!`blA9`enKWkOy{=(SR#yhS3-+nC1YZ7O6tsffVzqIySxxZ)~G*AGpb>o+iL4E<5 z)ypa&P>g3>rPy!5f%(Igk(WJT0+b0UXGj(y1rrkjSobkmcF7PqqYS`>c}>JrS88CJ z$xbK@QB^3Bj!;_y+=Aq(YKT+IdLij)i9jkr8IUAHc}-4)u@#&Mx*A9)$R%vk>vVNm z)$Iq4s;WMs;P|-IgPKd@pE81usQ;}O{82~H;GcFx-WmSXKWk`6lL65@&+AxS0Ck=rM{fzmGTu$(HwMdqOb=5^taw4s8 zbTD`R>D^Ba2!p2uzRUvN_~Lt7gpplOJ^$1$-gvA)K^9-md-$37BaEv6Bi2I5+|1QX zFw?othl8RrDFszc=-Y^s0!;?uVx|#3E=g2jq9FkqH$TX&E=nUB5{k@~`+*#SJP2H& z`N{&xM^4g!3iV;v`RxtDztcdOHMhZ04NR%g>AQlg#xBZR5Zm9kHJBhC^#bd)y&_}Xyl3nsTxrfLevu*yb2{tL`u1QNen1l6k| zr^5X0Rp@9^Rh&(*5**IqjHf;sXf86M%|S?8Fp`l`D{lg8O3Oq(MBDnE5Q%!g5mf|n z&NfG)tO(@YrTcXJ;}4mhe=X;_!o5P>Kf$~+)LLFEG?em*^4i++)*=4Tn?&&F@nsmS zaz6))^m4D^?VaV3+V)zWY)kUo4`)H^KuK<#5I=@9u3_IBSaYT^4jx#O@PmQVj*5La zz}Pbg3gl)3RR<{qIpmXNvHGy>>{)hES1;Rx;6tp=J5FG7Z3XQk+f6V;;%$?8rQn$6 zlev?@c5_`Y$R9HY`5(AT-@D_``SXXYO~nq!A5ROlTPwZ#iZl9Gxs!&m9y`e&YaRRt zvwG`(e*V>`1;eNK)%_f@H&}zD?7~Zt_Am%1Tl{{HM}w3AvKsUUjew`fQ{?k%Zq4m- z>JCYTTUN$EVv!G+%8Oz}b_iA$HQTXj%9%LFC(a75{Ku1h!Z#7czuXT2pvd)?g^ued zHj8`TdY!+K+s!|H<@yP@fN4)w{BtqfjOb<0WlAc-kUIi?kVnxC>49}~l{ayRDi^S` z5z`eRkCB%}1(MD{ol_)T83C^%BqlzsGPuDVBTU2mfwHadXrei^`8&09IBZ*yV~9Ca z2e8<;zN4kt0L6>NjabY{c)ZN}ppwN`cpp5=c_)s|`$E6bB?yjw!lhKfWPZXnv!Bql zDnyXjyzDHj?YN_}@FV#~WNXhiIzhO9LNETUPDJ9X4~Rd5ypv!9ESvFEnb3ZO{;m{h z3I)iKLg$b;Z8aN^AHq_h8<87z)!S=P zci1N39i9v_%&n^7tgm;?>Y9O71BTzFvjk6QwqXtmE*a!1;FoTJ25q~hL#je9$4*?Y zXuzR|%*3NXs%QJMK`%*L^l(yVH^4Iq(;PL#5nj#t>n9(W>F$M{O&ScyEzP^{8QXC- z)$R~n|K>Dwsa^0pHumh@$D8fKJ!1o#dt26Ng7epfQa#hN_rA&ZJ}}#5_aP2vI*-i$ zo(2`re_;2{)oVK2);a=Wljtyg|ExKcj!p5JoRlxJBJV7t*6-Cczy&|@SsxI8ioL2} z8`)hMQaV7J*KppGhkO9U2@s?^0DKm%63EYhv==b}aVeRebZkk3RJ9iBYP21eGnhT2nlJakxCPwl`=* ztQ}o@c3;}Ls?^7eM6a^7NCJ08Fql;s*PeqPP@5E(z-(?kxR= zy0`dnhckM6X?07wx|!U#L=DKbQjmpAxOgais~|)c5i?L^-vV0U8gQPc;rfA;ydncV zNm739p%v)|R6*0Pz;AmX_l)e5GSG3S4>(N^d>sbgZTo%ss}OtadMh#yT){g3J92~w zE;Lk>3>;|K}CM0z7p0;LEHE;)NGZ_>ob_YRLSx$EN1wi-r?3#nM7v(O$8MK7e`UbEA*r&MmIhYjCb z|4N=Ek62{;ncg*ZDD4Tr|@bw!*Xd;HmnP#Fpog2iD)9oAD!$1sx86y_6i)i z#TBpgTk)P!p{%Q>;{GpK;qPu8g?b({UrY{^pN}ORey}6mua$`tU7pacs=9XEVgv&wJX^y0=&m5~_7><= z1JJWa>tU5i;|_vaMSMW)gKYrQwyn*uM~Fup;NZB_bVLF#hll70Zm%kWlh`}P;m}C& z9%4Gz`?vM?cCGJN+m>o>TwPb2hzD>Z$Aue_096#0&2+%N&kcRYz^N~N{Y$3?u0(3>s@yC@u71~3qPTqD z6_b^9{o#hX%1rfgmES8wb`;+K_`%1DiXJ^bdHMAA?WZpj4gtmw*f0*k>vkaHN)ZEz zJHf-3IeG}!1pvnU^(Hd$;CSSvc(`FmioaP*B0Nq@LAf5z6mhn$y((H>3inuuhZLKE zKx8K#3_bw?m(G2s&|s_FxIBhURBcND46=}ZH}Fnj0~u&io!o*h{>H-B7Wu$kjb3-j z-MwKe9z|L>{uli5Cw_7|Q9JwlrB$Nlfr$$CN6BrdhEMeljq@jd!hJt^LO8koRDb8f zsi52k_%=VD1KhqV`^n(f!e0?gD4t#ei=qDi+jN% zQ|#G{vjo;NV3lASdFTRI0$2vyo;X7m55hY%QkVdzhXSbw6M`W}a!bonPu06s$At|6 zrlA5$sm`+$x`Rdik|JpHW?10{3!MtE4uP3eME$WCUCJu0lcD&*#2+QMeiMvcxIc=! zKV)8M>6BnHZzYuEa5BQ<7&0OvzwW4P0NkPj`ZXM1xMFTt~Jp(*20w+8Q5x#y|?VjDZ-o+dmcxtPc^xBkfLrpPU@J zt?>Ld$Trir?>Lcno?M|;$P}0QxDLB9OzB)SqHUdf_OzZbEJyC2;jAxrmW72A{OsPy z(tRJ5{60x{L8=ww6>WPnjS;_c&SN@xgxvQLT)jH?Pg|M1Vh0PbGTcK?vu=i4XSgk7 za|s79)nRKqq;40uoyx(tRZX)s7;T8bINiT76AIz>W}vv(zG)2~21$BAB8YwfeJ4mD z5G@+-6ig`PP{FAv)gX{9P3#m~m;Ga~rU?%R=g%$}lBcXh^7QZD;+4uue7T<#s3W%u zH1GrM`=2;_dS8doHgf9xdk>`Vy2bX!c{jYmy`B<>%a?3xOL{$e$&U-` zOaw&jG`-E4bi>lUu56}UT%PqH{$Qv`m7YjmoH z?+`RmgAFcEg~^};LOqWuE;BqhI-m)!P6n$s#9IP>2bBC)DDbv;VACbyYWCF!0M<~= zATC6M*HNGg=TMLA@=gIV7#^J>E^bP2KZ03;a$q;kndJ~3%ZyS^lu#aYyP(>OeG-?+`b}K3UU9)i2}ckNhqy%| ztAcz49jP*d{HChfkdC{luFa6)V3=Cwoym7^L=|zXV5OxBwXEs4RL2mgKS(2~d(c)> zw}7EqMfgagwWVoIeO*nWDq0aKEiN*OAQ@tH-d4A5yn>v(a-sv!!)$9-K`AJr&BW#R z>L6H_t-Hx9G5)0KF?{wdv-eAG{?W7cMLD{3hJXLdE#*4Ds%y`|_wrEwExeE$L`m+& z{63ZQC0Fh^Kb>>sFRFR?M(oh1T%SIXx8u;0NCDxtbX*KTc245H|fV+`p*q^aK}l)Xmpe7QZ& zQXx%w%lY>E#&x?r&2wdpd|$K(wuSw7?&s6|=fd-%B7R-kB0VnsR32A8ul$Q@se81z zHtSk&W!)+FWA4kI&v+ZXpYZv8i$yg>Ise%}GH@nv)fj>8_<6I_{6vU_o(lacygmGM zak@BH@+at@;NQr9O_CeIYI(zP=EbnaQ^m;tKM|3UQt7;YSN`CyVoMbkEH{yfAg}(4tk-y~=88T(j0X z@US(9tf|@2X>0V@;-R^PqgKY6oSR*on4X?%7@M0}j_;Z{cx-xfVL7?{-ZQaqbZTza zTGPRxZ z4?^Y~o5yvj1$@JPkR4)+%z~My8=se1tO=iMuK{bY*a6hAP%~d^3SY*L;wyLy&tqtD z$SygGbOzz=U(UnXgz}kpgd?cZLj4_?_>`_a zB+(t-H8_hw%r)-dI;R^fZu?pj?4mf00ho@0_}U}H!@QW6@KRnz7xbZyS-g@*d5l-_ zY97Zmh#FiruH|(+$?I*)Pa|K$l(Es-v59Hr*!=X|=(u!radbhaNBzXi{Nlsv!o=c3 z6BCQ-#KRNybCZ+G(TUN8u|wk6+(Bh}?%>?9MaTHuL$mdB^Aoem=;Gq&*dcX(YHab? z!i4i^?wFpKT(o2Av3dLLIRGrKUznN&f*-7(lki^%9FY%B&mEYM4=fxz zddPtuCuSFczta5lv7^f9_~Bzm7o~~usYL|?j!jLA^Ha0RLkox>a*Q1sU0AF?FuI^V zGB-C@jU-bZVMX^1;z#2PfP>a%3;& z0ifAaM4^jjP=EA+W1|Zb<1+rQg6W6lqcc;}6K zrYFYTi-(TQ95`B!b)$}cU}|=5j85xO$FZXm3-#1>e)pj}<9mPaJ5V9a>_71!to{gD zmb9|$?xEgc%i4OGd3J8iD!ca%WmBcun&FX2>&)FlS)qFL&oq#>v9Z{J(#py#8_u%s zSkFaJx9*Xy`Ycaot&z$4tdO+Et?Ww!St-8vVhz{3d&hcr-8)nnt1LY;WMu~ihAOj} z;ZiHxMzOZxVe3M^(&%`$23duam2IT*MymPJz>tMWoEf#~8pH^4EGp9}mZn&Gq;v$= z2}-lPZg@DBWdlPK!^8DiF=_Q$S*dyy6Oy|JhO%<3E33r1F#X{yAF0nu$r$EkjbD%t zbXioAADo^j?;XpEwUx;4w$4~*(D#K#xf;vbIW#g*I=X9kC^n4J%ppTw9-2lNL?V**$hyVh2zK)69$vQMztXLfz z?a2?}e3$0r(a56l%F=FaU%wz59!PF@g%-t72jPkq*t!~!fU z>+0S@>p~>fHJo)*Y8O&&r0TO?bmOx@VgUkUn0D6FJz||1v9cZjtv>5ZZXF!DAdUA7 zS7qH3vE%jGqU6?{LtA&}GfOLxAF%WN$qUTeefQ7>uNV6_+LiUz5t0IRyDqrs;l?A& zP3(kNJuq~EFc-k;I)m+{VQVX6Xto?L&6iUX;69ZOVB)? z&^wZ3S$Eyt`h6o-H^G87Z4~e9DnhEdWVW_0TZ`k81g7=@rS5oMVxw&_qE)}K2Jodm zTfedg+{`9xvpm>nL%HErsN7z(I%&1o^K3*N-uuqu3Mz2NX;D5iKWo$Ap3Yd?h1EQW zm8`+KG0{6V83ERgw$*2wk`1Ab`fT%Ws|pMoL-iE4f|=D;gVjeT6Ck|n%$dGeA1J{P zXf|jbj%zc%(K9f93rL6w?8iU5O4iX`H*uyRW?3C)&{z6qvDJ|8BP*d#)UvW8beJ&^2N zBf~hDZ*Mb-DS_(7HjTEG#xTMrtP3xD6!dq8K`;@bgc43SU@rraK)2sE6ZANW#?|&D z@B|wn5_WSeU`Z>%z{2Qqya0n(2SC$iXJ<8>Ud!4P>!ZPFx7OMqqXiTo$_9rTtPU_f znsFf$o!tbvQjOGIC|Y5y`Hgxfa*f0aJA*maXWI)i=w9BM5#qgXU*hssu1m(O27=lq zP~DE{-5KBzA5@E<(U%=n`_pa4H&bNb+;s2x0*Oy@ILB>;3Jh*mozy_+7A%;6`+%Bi2@0 zdCPuR4j1OwMZj1FYB#OFk|0l0EUaT?$vs$dFn>6~%5e?@4cRp~i@ooXzX`OK8-Z*S z>hvYEDZDll)OrC|YZG|ZGMw&85;|r#1FTz;7a7}#$W}x+Mf#H$xt+5O5j$r))#*af z4yr?u0jfihom7V+yQoelBD<*$MFy!3Mee3L6xl;{GKkzmbtp1Kbtp1Sbttlz>U1M= zFV&&QKB_~J`=|~@_EVh=h}=(gC^ABIC^AZQC~_c~ZCwHL7$vgnkUeh4IuM(%@d?@M zk(f+o+g55Hq=a4jkR7AiQ+AB19!_T0u2elj3A^gF9iyr*=rL6q}i_51}UcVYFcmLiwn z)6w!V53^%R*B6DCQ0zdi+Vw@2$;U<3bD@f#-U+Gk^w0%yyyrrkQeV^_hoK>JdJLiy asz5j%zT^_PtM)R#@xH9|0WgXl#{M^F&HPgU diff --git a/src/font/font/fontello.svg b/src/font/font/fontello.svg deleted file mode 100755 index f5e497ce4b..0000000000 --- a/src/font/font/fontello.svg +++ /dev/null @@ -1,104 +0,0 @@ - - - -Copyright (C) 2019 by original authors @ fontello.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/font/font/fontello.ttf b/src/font/font/fontello.ttf deleted file mode 100755 index e9ed780311d58bedd808d37acfe47495fbb9ba0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19984 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 MveE}2D0&$C-+|xh?*IS* diff --git a/src/font/font/fontello.woff b/src/font/font/fontello.woff deleted file mode 100755 index 1d5025d3cccf300b56cdcea3fb71b091fdbf3bdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12248 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 C)akbX diff --git a/src/main.js b/src/main.js index 6469ba5c97..fe0fed94bc 100644 --- a/src/main.js +++ b/src/main.js @@ -32,8 +32,8 @@ import VTooltip from 'v-tooltip' import afterStoreSetup from './boot/after_store.js' -import './font/css/fontello.css' -import './font/css/animation.css' +// import './font/css/fontello.css' +// import './font/css/animation.css' const currentLocale = (window.navigator.language || 'en').split('-')[0] diff --git a/src/font/config.json b/static/fontello.json similarity index 100% rename from src/font/config.json rename to static/fontello.json diff --git a/yarn.lock b/yarn.lock index 4e0d9a22b0..31209805c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -227,6 +227,13 @@ agent-base@2: extend "~3.0.0" semver "~5.0.1" +agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -1165,6 +1172,14 @@ binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" +"binary@>= 0.3.0 < 1": + version "0.3.0" + resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" + integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= + dependencies: + buffers "~0.1.1" + chainsaw "~0.1.0" + blob@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" @@ -1347,6 +1362,11 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffers@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" + integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= + builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1483,6 +1503,13 @@ chai@^3.5.0: deep-eql "^0.1.3" type-detect "^1.0.0" +chainsaw@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" + integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= + dependencies: + traverse ">=0.3.0 <0.4" + chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -2359,6 +2386,13 @@ encodeurl@~1.0.1, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= + dependencies: + iconv-lite "~0.4.13" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" @@ -2449,6 +2483,18 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -3010,6 +3056,18 @@ follow-redirects@^1.0.0: dependencies: debug "=3.1.0" +"fontello-webpack-plugin@https://github.com/sypl/fontello-webpack-plugin.git#35dac8cfd851bc1b3be19fd97e361516a1be6633": + version "0.4.8" + resolved "https://github.com/sypl/fontello-webpack-plugin.git#35dac8cfd851bc1b3be19fd97e361516a1be6633" + dependencies: + form-data "^2.1.2" + html-webpack-plugin "^3.2.0" + https-proxy-agent "^2.1.1" + lodash "^4.17.4" + node-fetch "^1.6.3" + unzip "^0.1.11" + webpack-sources "^0.2.0" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -3024,6 +3082,15 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" +form-data@^2.1.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -3085,6 +3152,16 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" +"fstream@>= 0.1.30 < 1": + version "0.1.31" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988" + integrity sha1-czfwWPu7vvqMn1YaKMqwhJICyYg= + dependencies: + graceful-fs "~3.0.2" + inherits "~2.0.0" + mkdirp "0.5" + rimraf "2" + ftp@~0.3.10: version "0.3.10" resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" @@ -3244,6 +3321,13 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" +graceful-fs@~3.0.2: + version "3.0.12" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.12.tgz#0034947ce9ed695ec8ab0b854bc919e82b1ffaef" + integrity sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg== + dependencies: + natives "^1.1.3" + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -3407,7 +3491,7 @@ html-minifier@^3.2.3: relateurl "0.2.x" uglify-js "3.4.x" -html-webpack-plugin@^3.0.0: +html-webpack-plugin@^3.0.0, html-webpack-plugin@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" dependencies: @@ -3493,13 +3577,21 @@ https-proxy-agent@1: debug "2" extend "3" +https-proxy-agent@^2.1.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + iconv-lite@0.4.23, iconv-lite@^0.4.4: version "0.4.23" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.4.24: +iconv-lite@^0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" dependencies: @@ -3599,6 +3691,11 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" +inherits@~2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" @@ -3859,7 +3956,7 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" -is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -4622,6 +4719,14 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +"match-stream@>= 0.0.2 < 1": + version "0.0.2" + resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf" + integrity sha1-mesFAJOzTf+t5CG5rAtBCpz6F88= + dependencies: + buffers "~0.1.1" + readable-stream "~1.0.0" + math-expression-evaluator@^1.2.14: version "1.2.17" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" @@ -4826,7 +4931,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5, mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -4920,6 +5025,11 @@ native-promise-only@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11" +natives@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" + integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4973,6 +5083,14 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-fetch@^1.6.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + node-libs-browser@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" @@ -5249,6 +5367,11 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +"over@>= 0.0.5 < 1": + version "0.0.5" + resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708" + integrity sha1-8phS5w/X4l82DgE6jsRMgq7bVwg= + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -5925,6 +6048,16 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" +"pullstream@>= 0.4.1 < 1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314" + integrity sha1-1vs79a7Wl+gxFQ6xACwlo/iuExQ= + dependencies: + over ">= 0.0.5 < 1" + readable-stream "~1.0.31" + setimmediate ">= 1.0.2 < 2" + slice-stream ">= 1.0.0 < 2" + pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -6089,7 +6222,7 @@ read-pkg@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.0: +readable-stream@1.0, readable-stream@~1.0.0, readable-stream@~1.0.31: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -6339,6 +6472,13 @@ rfdc@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" +rimraf@2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -6507,7 +6647,7 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: +"setimmediate@>= 1.0.1 < 2", "setimmediate@>= 1.0.2 < 2", setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -6579,6 +6719,13 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +"slice-stream@>= 1.0.0 < 2": + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0" + integrity sha1-WzO9ZvATsaf4ZGCwPUY97DmtPqA= + dependencies: + readable-stream "~1.0.31" + smart-buffer@^1.0.13: version "1.1.15" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" @@ -6673,6 +6820,11 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" +source-list-map@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1" + integrity sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE= + source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -6704,7 +6856,7 @@ source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -7102,6 +7254,11 @@ tough-cookie@~2.4.3: psl "^1.1.24" punycode "^1.4.1" +"traverse@>=0.3.0 <0.4": + version "0.3.9" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" + integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -7212,6 +7369,18 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +unzip@^0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz#89749c63b058d7d90d619f86b98aa1535d3b97f0" + integrity sha1-iXScY7BY19kNYZ+GuYqhU107l/A= + dependencies: + binary ">= 0.3.0 < 1" + fstream ">= 0.1.30 < 1" + match-stream ">= 0.0.2 < 1" + pullstream ">= 0.4.1 < 1" + readable-stream "~1.0.31" + setimmediate ">= 1.0.1 < 2" + upath@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" @@ -7459,6 +7628,14 @@ webpack-merge@^0.14.1: lodash.isplainobject "^3.2.0" lodash.merge "^3.3.2" +webpack-sources@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb" + integrity sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s= + dependencies: + source-list-map "^1.1.1" + source-map "~0.5.3" + webpack-sources@^1.1.0, webpack-sources@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" From 57f46e68e4a0d137e8cb65ba603dfe4b8114ebbf Mon Sep 17 00:00:00 2001 From: taehoon Date: Tue, 3 Dec 2019 10:34:17 -0500 Subject: [PATCH 09/51] remove needless code --- src/main.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main.js b/src/main.js index fe0fed94bc..a9db1cff03 100644 --- a/src/main.js +++ b/src/main.js @@ -32,9 +32,6 @@ import VTooltip from 'v-tooltip' import afterStoreSetup from './boot/after_store.js' -// import './font/css/fontello.css' -// import './font/css/animation.css' - const currentLocale = (window.navigator.language || 'en').split('-')[0] Vue.use(Vuex) From 9d44015ab477634d6b1e42cb096a58453b8d0914 Mon Sep 17 00:00:00 2001 From: taehoon Date: Tue, 3 Dec 2019 11:16:38 -0500 Subject: [PATCH 10/51] add animate-spin class --- src/App.scss | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/App.scss b/src/App.scss index 310962b8b1..925913f2d5 100644 --- a/src/App.scss +++ b/src/App.scss @@ -855,3 +855,18 @@ nav { .btn.btn-default { min-height: 28px; } + +.animate-spin { + animation: spin 2s infinite linear; + display: inline-block; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(359deg); + } +} From 36589f32d1b2bfd8cb4a1f446909aa2c7287410f Mon Sep 17 00:00:00 2001 From: taehoon Date: Tue, 3 Dec 2019 13:26:00 -0500 Subject: [PATCH 11/51] use another fork of fontello-webpack-plugin --- package.json | 2 +- yarn.lock | 125 +++++++++++++++++++++++++-------------------------- 2 files changed, 61 insertions(+), 66 deletions(-) diff --git a/package.json b/package.json index 648ffbdbce..3c9598eb24 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "eventsource-polyfill": "^0.9.6", "express": "^4.13.3", "file-loader": "^3.0.1", - "fontello-webpack-plugin": "https://github.com/sypl/fontello-webpack-plugin.git#35dac8cfd851bc1b3be19fd97e361516a1be6633", + "fontello-webpack-plugin": "https://github.com/w3geo/fontello-webpack-plugin.git#6149eac8f2672ab6da089e8802fbfcac98487186", "function-bind": "^1.0.2", "html-webpack-plugin": "^3.0.0", "http-proxy-middleware": "^0.17.2", diff --git a/yarn.lock b/yarn.lock index 31209805c7..44473c9421 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1160,6 +1160,11 @@ better-assert@~1.0.0: dependencies: callsite "1.0.0" +big-integer@^1.6.17: + version "1.6.48" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" + integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== + big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -1172,7 +1177,7 @@ binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" -"binary@>= 0.3.0 < 1": +binary@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= @@ -1192,6 +1197,11 @@ bluebird@^3.5.3: version "3.5.4" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" +bluebird@~3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" + integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -1350,6 +1360,11 @@ buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" +buffer-indexof-polyfill@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.1.tgz#a9fb806ce8145d5428510ce72f278bb363a638bf" + integrity sha1-qfuAbOgUXVQoUQznLyeLs2OmOL8= + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -2334,6 +2349,13 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" +duplexer2@~0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + dependencies: + readable-stream "^2.0.2" + duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -3056,16 +3078,16 @@ follow-redirects@^1.0.0: dependencies: debug "=3.1.0" -"fontello-webpack-plugin@https://github.com/sypl/fontello-webpack-plugin.git#35dac8cfd851bc1b3be19fd97e361516a1be6633": +"fontello-webpack-plugin@https://github.com/w3geo/fontello-webpack-plugin.git#6149eac8f2672ab6da089e8802fbfcac98487186": version "0.4.8" - resolved "https://github.com/sypl/fontello-webpack-plugin.git#35dac8cfd851bc1b3be19fd97e361516a1be6633" + resolved "https://github.com/w3geo/fontello-webpack-plugin.git#6149eac8f2672ab6da089e8802fbfcac98487186" dependencies: form-data "^2.1.2" html-webpack-plugin "^3.2.0" https-proxy-agent "^2.1.1" lodash "^4.17.4" node-fetch "^1.6.3" - unzip "^0.1.11" + unzipper "^0.10.5" webpack-sources "^0.2.0" for-in@^1.0.1, for-in@^1.0.2: @@ -3152,14 +3174,14 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" -"fstream@>= 0.1.30 < 1": - version "0.1.31" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988" - integrity sha1-czfwWPu7vvqMn1YaKMqwhJICyYg= +fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== dependencies: - graceful-fs "~3.0.2" + graceful-fs "^4.1.2" inherits "~2.0.0" - mkdirp "0.5" + mkdirp ">=0.5 0" rimraf "2" ftp@~0.3.10: @@ -3321,12 +3343,10 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" -graceful-fs@~3.0.2: - version "3.0.12" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.12.tgz#0034947ce9ed695ec8ab0b854bc919e82b1ffaef" - integrity sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg== - dependencies: - natives "^1.1.3" +graceful-fs@^4.2.2: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== "graceful-readlink@>= 1.0.0": version "1.0.1" @@ -4300,6 +4320,11 @@ lie@3.1.1: dependencies: immediate "~3.0.5" +listenercount@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" + integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -4719,14 +4744,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -"match-stream@>= 0.0.2 < 1": - version "0.0.2" - resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf" - integrity sha1-mesFAJOzTf+t5CG5rAtBCpz6F88= - dependencies: - buffers "~0.1.1" - readable-stream "~1.0.0" - math-expression-evaluator@^1.2.14: version "1.2.17" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" @@ -4931,7 +4948,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5, mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -5025,11 +5042,6 @@ native-promise-only@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11" -natives@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" - integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -5367,11 +5379,6 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -"over@>= 0.0.5 < 1": - version "0.0.5" - resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708" - integrity sha1-8phS5w/X4l82DgE6jsRMgq7bVwg= - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -6048,16 +6055,6 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" -"pullstream@>= 0.4.1 < 1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314" - integrity sha1-1vs79a7Wl+gxFQ6xACwlo/iuExQ= - dependencies: - over ">= 0.0.5 < 1" - readable-stream "~1.0.31" - setimmediate ">= 1.0.2 < 2" - slice-stream ">= 1.0.0 < 2" - pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -6222,7 +6219,7 @@ read-pkg@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.0, readable-stream@~1.0.0, readable-stream@~1.0.31: +readable-stream@1.0: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -6647,9 +6644,10 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -"setimmediate@>= 1.0.1 < 2", "setimmediate@>= 1.0.2 < 2", setimmediate@^1.0.4: +setimmediate@^1.0.4, setimmediate@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= setprototypeof@1.1.0: version "1.1.0" @@ -6719,13 +6717,6 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -"slice-stream@>= 1.0.0 < 2": - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0" - integrity sha1-WzO9ZvATsaf4ZGCwPUY97DmtPqA= - dependencies: - readable-stream "~1.0.31" - smart-buffer@^1.0.13: version "1.1.15" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" @@ -7369,17 +7360,21 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzip@^0.1.11: - version "0.1.11" - resolved "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz#89749c63b058d7d90d619f86b98aa1535d3b97f0" - integrity sha1-iXScY7BY19kNYZ+GuYqhU107l/A= - dependencies: - binary ">= 0.3.0 < 1" - fstream ">= 0.1.30 < 1" - match-stream ">= 0.0.2 < 1" - pullstream ">= 0.4.1 < 1" - readable-stream "~1.0.31" - setimmediate ">= 1.0.1 < 2" +unzipper@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.5.tgz#4d189ae6f8af634b26efe1a1817c399e0dd4a1a0" + integrity sha512-i5ufkXNjWZYxU/0nKKf6LkvW8kn9YzRvfwuPWjXP+JTFce/8bqeR0gEfbiN2IDdJa6ZU6/2IzFRLK0z1v0uptw== + dependencies: + big-integer "^1.6.17" + binary "~0.3.0" + bluebird "~3.4.1" + buffer-indexof-polyfill "~1.0.0" + duplexer2 "~0.1.4" + fstream "^1.0.12" + graceful-fs "^4.2.2" + listenercount "~1.0.1" + readable-stream "~2.3.6" + setimmediate "~1.0.4" upath@^1.1.1: version "1.1.2" From d37caeeded0ebe90a2e922205eed94b5cc4fcca4 Mon Sep 17 00:00:00 2001 From: taehoon Date: Tue, 3 Dec 2019 14:40:51 -0500 Subject: [PATCH 12/51] add html-webpack-plugin to karma config --- test/unit/karma.conf.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/unit/karma.conf.js b/test/unit/karma.conf.js index 8af05c24e9..45d74f141f 100644 --- a/test/unit/karma.conf.js +++ b/test/unit/karma.conf.js @@ -5,6 +5,7 @@ // var path = require('path') var merge = require('webpack-merge') +var HtmlWebpackPlugin = require('html-webpack-plugin') var baseConfig = require('../../build/webpack.base.conf') var utils = require('../../build/utils') var webpack = require('webpack') @@ -24,6 +25,11 @@ var webpackConfig = merge(baseConfig, { plugins: [ new webpack.DefinePlugin({ 'process.env': require('../../config/test.env') + }), + new HtmlWebpackPlugin({ + filename: 'index.html', + template: 'index.html', + inject: true }) ] }) From 13fc2612ae388dec682829ae2b6211bb3cb8ccb3 Mon Sep 17 00:00:00 2001 From: Wyatt Benno Date: Thu, 5 Dec 2019 11:48:37 +0900 Subject: [PATCH 13/51] Change 403 messaging --- src/components/timeline/timeline.js | 7 ++++++- src/components/timeline/timeline.vue | 19 ++++++++++++++++--- src/i18n/en.json | 2 ++ src/modules/statuses.js | 7 +++++++ src/services/api/api.service.js | 10 ++++++++-- .../timeline_fetcher.service.js | 6 ++++++ 6 files changed, 45 insertions(+), 6 deletions(-) diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js index 27a9a55ed4..6086336c54 100644 --- a/src/components/timeline/timeline.js +++ b/src/components/timeline/timeline.js @@ -36,7 +36,12 @@ const Timeline = { } }, computed: { - timelineError () { return this.$store.state.statuses.error }, + timelineError () { + return this.$store.state.statuses.error + }, + error403 () { + return this.$store.state.statuses.error403 + }, newStatusCount () { return this.timeline.newStatusCount }, diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue index 93f6f5706b..1c45d0f6fb 100644 --- a/src/components/timeline/timeline.vue +++ b/src/components/timeline/timeline.vue @@ -11,15 +11,22 @@ > {{ $t('timeline.error_fetching') }} +
      + {{ $t('timeline.error_403') }} +
      @@ -67,12 +74,18 @@ {{ $t('timeline.no_more_statuses') }}
      + + +
        diff --git a/src/modules/instance.js b/src/modules/instance.js index 96f14ed5da..625323b973 100644 --- a/src/modules/instance.js +++ b/src/modules/instance.js @@ -27,6 +27,7 @@ const defaultState = { scopeCopy: true, subjectLineBehavior: 'email', postContentType: 'text/plain', + hideSitename: false, nsfwCensorImage: undefined, vapidPublicKey: undefined, noAttachmentLinks: false, From fee3226705beb4b6eddb8e64f8c53b2651ca89fa Mon Sep 17 00:00:00 2001 From: taehoon Date: Mon, 9 Dec 2019 15:21:33 -0500 Subject: [PATCH 32/51] add documentation for new instance option --- docs/CONFIGURATION.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index 3536353725..3a21828bb4 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -77,6 +77,9 @@ Use custom image for NSFW'd images ### `showFeaturesPanel` Show panel showcasing instance features/settings to logged-out visitors +### `hideSitename` +Hide instance name in header + ## Indirect configuration Some features are configured depending on how backend is configured. In general the approach is "if backend allows it there's no need to hide it, if backend doesn't allow it there's no need to show it. From d7bc1aff1d4c52c038457fe7650ffb793dfc4618 Mon Sep 17 00:00:00 2001 From: seven Date: Thu, 12 Dec 2019 06:35:48 +0500 Subject: [PATCH 33/51] fix babelrc plugin config --- .babelrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.babelrc b/.babelrc index 3019976fca..3c732dd1bc 100644 --- a/.babelrc +++ b/.babelrc @@ -1,5 +1,5 @@ { "presets": ["@babel/preset-env"], - "plugins": ["@babel/plugin-transform-runtime", "lodash", "transform-vue-jsx"], + "plugins": ["@babel/plugin-transform-runtime", "lodash", "@vue/babel-plugin-transform-vue-jsx"], "comments": false } From 386719b0d03475fb5cab667ce28a5aff354fbc4d Mon Sep 17 00:00:00 2001 From: seven Date: Thu, 12 Dec 2019 08:33:40 +0500 Subject: [PATCH 34/51] fix css runtime loading issue --- src/App.scss | 13 +++++++++++++ src/components/timeline/timeline.vue | 13 ------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/App.scss b/src/App.scss index 925913f2d5..754ca62e6b 100644 --- a/src/App.scss +++ b/src/App.scss @@ -870,3 +870,16 @@ nav { transform: rotate(359deg); } } + +.new-status-notification { + position:relative; + margin-top: -1px; + font-size: 1.1em; + border-width: 1px 0 0 0; + border-style: solid; + border-color: var(--border, $fallback--border); + padding: 10px; + z-index: 1; + background-color: $fallback--fg; + background-color: var(--panel, $fallback--fg); +} diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue index 93f6f5706b..a6fba4527c 100644 --- a/src/components/timeline/timeline.vue +++ b/src/components/timeline/timeline.vue @@ -93,17 +93,4 @@ opacity: 1; } } - -.new-status-notification { - position:relative; - margin-top: -1px; - font-size: 1.1em; - border-width: 1px 0 0 0; - border-style: solid; - border-color: var(--border, $fallback--border); - padding: 10px; - z-index: 1; - background-color: $fallback--fg; - background-color: var(--panel, $fallback--fg); -} From f70fe28f644c037326a1d2c1fdffbf6d365e0a02 Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Thu, 12 Dec 2019 08:42:21 +0300 Subject: [PATCH 35/51] mfa: fix login and recovery form --- src/components/mfa_form/recovery_form.js | 11 ++++++++--- src/components/mfa_form/totp_form.js | 10 ++++++++-- src/services/new_api/mfa.js | 12 ++++++------ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/components/mfa_form/recovery_form.js b/src/components/mfa_form/recovery_form.js index 7a3cc22d51..b25c65dd3b 100644 --- a/src/components/mfa_form/recovery_form.js +++ b/src/components/mfa_form/recovery_form.js @@ -8,18 +8,23 @@ export default { }), computed: { ...mapGetters({ - authApp: 'authFlow/app', authSettings: 'authFlow/settings' }), - ...mapState({ instance: 'instance' }) + ...mapState({ + instance: 'instance', + oauth: 'oauth' + }) }, methods: { ...mapMutations('authFlow', ['requireTOTP', 'abortMFA']), ...mapActions({ login: 'authFlow/login' }), clearError () { this.error = false }, submit () { + const { clientId, clientSecret } = this.oauth + const data = { - app: this.authApp, + clientId, + clientSecret, instance: this.instance.server, mfaToken: this.authSettings.mfa_token, code: this.code diff --git a/src/components/mfa_form/totp_form.js b/src/components/mfa_form/totp_form.js index 778bf8dce1..1ec7576b21 100644 --- a/src/components/mfa_form/totp_form.js +++ b/src/components/mfa_form/totp_form.js @@ -10,15 +10,21 @@ export default { authApp: 'authFlow/app', authSettings: 'authFlow/settings' }), - ...mapState({ instance: 'instance' }) + ...mapState({ + instance: 'instance', + oauth: 'oauth' + }) }, methods: { ...mapMutations('authFlow', ['requireRecovery', 'abortMFA']), ...mapActions({ login: 'authFlow/login' }), clearError () { this.error = false }, submit () { + const { clientId, clientSecret } = this.oauth + const data = { - app: this.authApp, + clientId, + clientSecret, instance: this.instance.server, mfaToken: this.authSettings.mfa_token, code: this.code diff --git a/src/services/new_api/mfa.js b/src/services/new_api/mfa.js index cbba06d54c..c944667c0d 100644 --- a/src/services/new_api/mfa.js +++ b/src/services/new_api/mfa.js @@ -1,9 +1,9 @@ -const verifyOTPCode = ({ app, instance, mfaToken, code }) => { +const verifyOTPCode = ({ clientId, clientSecret, instance, mfaToken, code }) => { const url = `${instance}/oauth/mfa/challenge` const form = new window.FormData() - form.append('client_id', app.client_id) - form.append('client_secret', app.client_secret) + form.append('client_id', clientId) + form.append('client_secret', clientSecret) form.append('mfa_token', mfaToken) form.append('code', code) form.append('challenge_type', 'totp') @@ -14,12 +14,12 @@ const verifyOTPCode = ({ app, instance, mfaToken, code }) => { }).then((data) => data.json()) } -const verifyRecoveryCode = ({ app, instance, mfaToken, code }) => { +const verifyRecoveryCode = ({ clientId, clientSecret, instance, mfaToken, code }) => { const url = `${instance}/oauth/mfa/challenge` const form = new window.FormData() - form.append('client_id', app.client_id) - form.append('client_secret', app.client_secret) + form.append('client_id', clientId) + form.append('client_secret', clientSecret) form.append('mfa_token', mfaToken) form.append('code', code) form.append('challenge_type', 'recovery') From b973ee5915ca9a2c79d9523286f42aee4b1a7db7 Mon Sep 17 00:00:00 2001 From: seven Date: Thu, 12 Dec 2019 12:13:31 +0500 Subject: [PATCH 36/51] must use h in higher babel-plugin-transform-vue-jsx --- src/hocs/with_load_more/with_load_more.js | 4 ++-- src/hocs/with_subscription/with_subscription.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hocs/with_load_more/with_load_more.js b/src/hocs/with_load_more/with_load_more.js index 1e1b2a747b..6142f5138f 100644 --- a/src/hocs/with_load_more/with_load_more.js +++ b/src/hocs/with_load_more/with_load_more.js @@ -65,7 +65,7 @@ const withLoadMore = ({ } } }, - render (createElement) { + render (h) { const props = { props: { ...this.$props, @@ -74,7 +74,7 @@ const withLoadMore = ({ on: this.$listeners, scopedSlots: this.$scopedSlots } - const children = Object.entries(this.$slots).map(([key, value]) => createElement('template', { slot: key }, value)) + const children = Object.entries(this.$slots).map(([key, value]) => h('template', { slot: key }, value)) return (
        diff --git a/src/hocs/with_subscription/with_subscription.js b/src/hocs/with_subscription/with_subscription.js index 91fc4ccaad..1775adcb43 100644 --- a/src/hocs/with_subscription/with_subscription.js +++ b/src/hocs/with_subscription/with_subscription.js @@ -49,7 +49,7 @@ const withSubscription = ({ } } }, - render (createElement) { + render (h) { if (!this.error && !this.loading) { const props = { props: { @@ -59,7 +59,7 @@ const withSubscription = ({ on: this.$listeners, scopedSlots: this.$scopedSlots } - const children = Object.entries(this.$slots).map(([key, value]) => createElement('template', { slot: key }, value)) + const children = Object.entries(this.$slots).map(([key, value]) => h('template', { slot: key }, value)) return (
        From b3992358487d5afa7499759a90d6447a2b0bfe20 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 12 Dec 2019 09:38:24 +0000 Subject: [PATCH 37/51] Revert "Merge branch 'oauth-extra-scopes' into 'develop'" This reverts merge request !1024 --- src/services/new_api/oauth.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/new_api/oauth.js b/src/services/new_api/oauth.js index 3c8e64bd9a..d0d18c036e 100644 --- a/src/services/new_api/oauth.js +++ b/src/services/new_api/oauth.js @@ -12,7 +12,7 @@ export const getOrCreateApp = ({ clientId, clientSecret, instance, commit }) => form.append('client_name', `PleromaFE_${window.___pleromafe_commit_hash}_${(new Date()).toISOString()}`) form.append('redirect_uris', REDIRECT_URI) - form.append('scopes', 'read write follow push admin') + form.append('scopes', 'read write follow') return window.fetch(url, { method: 'POST', @@ -28,7 +28,7 @@ const login = ({ instance, clientId }) => { response_type: 'code', client_id: clientId, redirect_uri: REDIRECT_URI, - scope: 'read write follow push admin' + scope: 'read write follow' } const dataString = reduce(data, (acc, v, k) => { From ed3144eb1168ece5fcd3eed2867c653f785039d8 Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Thu, 12 Dec 2019 18:19:46 +0700 Subject: [PATCH 38/51] Support "native" captcha --- src/components/registration/registration.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/registration/registration.vue b/src/components/registration/registration.vue index 5bb06a4fed..222b67a87d 100644 --- a/src/components/registration/registration.vue +++ b/src/components/registration/registration.vue @@ -172,7 +172,7 @@ for="captcha-label" >{{ $t('captcha') }} -