From 636edadfae5ea5de7ec23448170074445c6f6c6c Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 13 Nov 2016 15:03:22 -0500 Subject: [PATCH 001/156] fix caching mismatch by taking timeAgo into account (fix #45) --- src/components/Item.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/components/Item.vue b/src/components/Item.vue index 5c201758a..7ae0a1c25 100644 --- a/src/components/Item.vue +++ b/src/components/Item.vue @@ -27,12 +27,20 @@ From 06f72f5c4b3462956f79048bf8d5bafd79d3d041 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 13 Nov 2016 17:31:14 -0500 Subject: [PATCH 002/156] tweak build --- build/webpack.base.config.js | 6 ++---- build/webpack.client.config.js | 5 ----- index.html | 1 - 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/build/webpack.base.config.js b/build/webpack.base.config.js index 6a8d229c9..16b412d77 100644 --- a/build/webpack.base.config.js +++ b/build/webpack.base.config.js @@ -3,16 +3,14 @@ const vueConfig = require('./vue-loader.config') module.exports = { devtool: '#source-map', - entry: { - app: './src/client-entry.js', - vendor: ['vue', 'vue-router', 'vuex', 'firebase', 'lru-cache', 'es6-promise'] - }, + entry: './src/client-entry.js', output: { path: path.resolve(__dirname, '../dist'), publicPath: '/dist/', filename: 'client-bundle.js' }, module: { + noParse: /(lru-cache|es6-promise)\.js$/, rules: [ { test: /\.vue$/, diff --git a/build/webpack.client.config.js b/build/webpack.client.config.js index caeaff7e4..d50b482c9 100644 --- a/build/webpack.client.config.js +++ b/build/webpack.client.config.js @@ -7,11 +7,6 @@ const config = Object.assign({}, base, { // strip comments in Vue code new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development') - }), - // extract vendor chunks for better caching - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - filename: 'client-vendor-bundle.js' }) ]) }) diff --git a/index.html b/index.html index 6de42fd59..99695baf1 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,6 @@ {{ APP }} - From c3a6de35d4b53d17cff7906728c9553da5d719b3 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 13 Nov 2016 18:03:22 -0500 Subject: [PATCH 003/156] separate server/client api creation and add sw-precache plugin --- build/webpack.client.config.js | 10 + build/webpack.server.config.js | 5 + package.json | 1 + src/client-entry.js | 5 + src/store/api.js | 53 ++---- src/store/create-api-client.js | 3 + src/store/create-api-server.js | 26 +++ yarn.lock | 339 ++++++++++++++++++++++++++++----- 8 files changed, 349 insertions(+), 93 deletions(-) create mode 100644 src/store/create-api-client.js create mode 100644 src/store/create-api-server.js diff --git a/build/webpack.client.config.js b/build/webpack.client.config.js index d50b482c9..38f906155 100644 --- a/build/webpack.client.config.js +++ b/build/webpack.client.config.js @@ -3,6 +3,11 @@ const base = require('./webpack.base.config') const vueConfig = require('./vue-loader.config') const config = Object.assign({}, base, { + resolve: { + alias: { + 'create-api': './create-api-client.js' + } + }, plugins: (base.plugins || []).concat([ // strip comments in Vue code new webpack.DefinePlugin({ @@ -15,6 +20,7 @@ if (process.env.NODE_ENV === 'production') { // Use ExtractTextPlugin to extract CSS into a single file // so it's applied on initial render const ExtractTextPlugin = require('extract-text-webpack-plugin') + const SWPrecachePlugin = require('sw-precache-webpack-plugin') // vueConfig is already included in the config via LoaderOptionsPlugin // here we overwrite the loader config for From e66def839dc9a144c0a91e1ac39ded075e4e881d Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 30 Nov 2016 10:55:16 -0500 Subject: [PATCH 033/156] disable slide transition for non-pagination navigations --- src/components/ItemList.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/ItemList.vue b/src/components/ItemList.vue index d4d0b2382..71cccd420 100644 --- a/src/components/ItemList.vue +++ b/src/components/ItemList.vue @@ -40,7 +40,7 @@ export default { const isInitialRender = !this.$root._isMounted return { loading: false, - transition: 'slide-left', + transition: 'slide-up', // if this is the initial render, directly render with the store state // otherwise this is a page switch, start with blank and wait for data load. // we need these local state so that we can precisely control the timing @@ -96,7 +96,9 @@ export default { this.$router.replace(`/${this.type}/1`) return } - this.transition = to > from ? 'slide-left' : 'slide-right' + this.transition = from === -1 + ? null + : to > from ? 'slide-left' : 'slide-right' this.displayedPage = to this.displayedItems = this.$store.getters.activeItems this.loading = false From 0911e5f7b18fcc5135cc793d42794f7a884d2f0a Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 1 Dec 2016 13:36:12 -0500 Subject: [PATCH 034/156] wrap pre content --- src/components/Comment.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/Comment.vue b/src/components/Comment.vue index e28cdc859..5877ebc1f 100644 --- a/src/components/Comment.vue +++ b/src/components/Comment.vue @@ -58,6 +58,8 @@ export default { overflow-wrap break-word a:hover color #ff6600 + pre + white-space pre-wrap .toggle background-color #fffbf2 padding .3em .5em From 9394d97607665a5cccac5fdd0609d3a345f34462 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 15 Dec 2016 23:20:56 -0500 Subject: [PATCH 035/156] avoid using Vue.util.extend --- src/app.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app.js b/src/app.js index 9f5652233..9a8d0158d 100644 --- a/src/app.js +++ b/src/app.js @@ -17,10 +17,11 @@ Object.keys(filters).forEach(key => { // create the app instance. // here we inject the router and store to all child components, // making them available everywhere as `this.$router` and `this.$store`. -const app = new Vue(Vue.util.extend({ +const app = new Vue({ router, - store -}, App)) + store, + ...App +}) // expose the app, the router and the store. // note we are not mounting the app here, since bootstrapping will be From 04bc513db9df27656a00a137637b220b4c129546 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 23 Dec 2016 22:51:38 -0500 Subject: [PATCH 036/156] avoid relying on internals for determining initial render --- src/components/ItemList.vue | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/ItemList.vue b/src/components/ItemList.vue index 71cccd420..9c0001da1 100644 --- a/src/components/ItemList.vue +++ b/src/components/ItemList.vue @@ -24,6 +24,8 @@ import Spinner from './Spinner.vue' import Item from './Item.vue' import { watchList } from '../store/api' +let isInitialRender = true + export default { name: 'item-list', @@ -37,8 +39,7 @@ export default { }, data () { - const isInitialRender = !this.$root._isMounted - return { + const data = { loading: false, transition: 'slide-up', // if this is the initial render, directly render with the store state @@ -48,6 +49,8 @@ export default { displayedPage: isInitialRender ? Number(this.$store.state.route.params.page) || 1 : -1, displayedItems: isInitialRender ? this.$store.getters.activeItems : [] } + isInitialRender = false + return data }, computed: { From f7fa3461974e5275b4c5df174b78f9d4a9d579d6 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sat, 24 Dec 2016 14:48:52 -0500 Subject: [PATCH 037/156] bump deps --- package.json | 8 +- yarn.lock | 500 +++++++++++++++++++++++++++++++++------------------ 2 files changed, 325 insertions(+), 183 deletions(-) diff --git a/package.json b/package.json index 315c78dd8..4c754c1c3 100644 --- a/package.json +++ b/package.json @@ -27,12 +27,12 @@ "vue-router": "^2.1.0", "vue-server-renderer": "^2.1.3", "vuex": "^2.0.0", - "vuex-router-sync": "^3.0.0" + "vuex-router-sync": "^4.0.2" }, "devDependencies": { "autoprefixer": "^6.5.3", - "buble": "^0.14.2", - "buble-loader": "^0.3.2", + "buble": "^0.15.1", + "buble-loader": "^0.4.0", "cross-env": "^3.1.3", "css-loader": "^0.26.0", "extract-text-webpack-plugin": "^2.0.0-beta.3", @@ -40,7 +40,7 @@ "rimraf": "^2.5.4", "stylus": "^0.54.5", "stylus-loader": "^2.4.0", - "sw-precache-webpack-plugin": "^0.6.3", + "sw-precache-webpack-plugin": "^0.7.0", "url-loader": "^0.5.7", "vue-loader": "^10.0.2", "vue-template-compiler": "^2.1.3", diff --git a/yarn.lock b/yarn.lock index 437c40be0..812509b5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11,6 +11,12 @@ accepts@~1.3.3: mime-types "~2.1.11" negotiator "0.6.1" +acorn-dynamic-import@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.1.tgz#23f671eb6e650dab277fef477c321b1178a8cca2" + dependencies: + acorn "^4.0.3" + acorn-jsx@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -23,21 +29,21 @@ acorn-object-spread@^1.0.0: dependencies: acorn "^3.1.0" -acorn@^3.0.4, acorn@^3.1.0, acorn@^3.3.0: +acorn@^3.0.0, acorn@^3.0.4, acorn@^3.1.0, acorn@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" acorn@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" + version "4.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" ajv-keywords@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" + version "1.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.4.1.tgz#f080e635e230baae26537ce727f260ae62b43802" ajv@^4.7.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.9.0.tgz#5a358085747b134eb567d6d15e015f1d7802f45c" + version "4.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.10.2.tgz#27a61437962cb6daf8023ca9ad2a30337d918dda" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -160,7 +166,11 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async@^1.5.0: +async@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +async@^1.3.0, async@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -185,14 +195,14 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" autoprefixer@^6.3.1, autoprefixer@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.5.3.tgz#2d853af66d04449fcf50db3066279ab54c3e4b01" + version "6.6.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.6.0.tgz#d5b347ebbaf79e79d30b81c0ee3e482b288527bf" dependencies: - browserslist "~1.4.0" - caniuse-db "^1.0.30000578" + browserslist "~1.5.1" + caniuse-db "^1.0.30000602" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^5.2.5" + postcss "^5.2.6" postcss-value-parser "^3.2.3" aws-sign2@~0.6.0: @@ -204,8 +214,8 @@ aws4@^1.2.1: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" babel-code-frame@^6.11.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26" dependencies: chalk "^1.1.0" esutils "^2.0.2" @@ -215,18 +225,10 @@ balanced-match@^0.4.1, balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" -balanced-match@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" - base64-js@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" -base64-url@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/base64-url/-/base64-url-1.3.3.tgz#f8b6c537f09a4fc58c99cb86e0b0e9c61461a20f" - base64url@^2.0.0, base64url@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" @@ -242,8 +244,8 @@ big.js@^3.1.3: resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" binary-extensions@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" block-stream@*: version "0.0.9" @@ -252,8 +254,8 @@ block-stream@*: inherits "~2.0.0" bluebird@^3.0.5, bluebird@^3.1.1, bluebird@^3.4.6: - version "3.4.6" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" + version "3.4.7" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.6" @@ -298,6 +300,12 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: evp_bytestokey "^1.0.0" inherits "^2.0.1" +browserify-aes@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c" + dependencies: + inherits "^2.0.1" + browserify-cipher@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" @@ -339,21 +347,23 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" -browserslist@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.4.0.tgz#9cfdcf5384d9158f5b70da2aa00b30e8ff019049" +browserslist@~1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.5.1.tgz#67c3f2a1a6ad174cd01d25d2362e6e6083b26986" dependencies: - caniuse-db "^1.0.30000539" + caniuse-db "^1.0.30000601" -buble-loader@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/buble-loader/-/buble-loader-0.3.2.tgz#b228ead153f7d5c46bef2150d6d5c86c9c27bf4a" +buble-loader@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/buble-loader/-/buble-loader-0.4.0.tgz#003379dca61f038e1a5357a12aecb2223c5a22f0" dependencies: + buble "^0.15.0" loader-utils "^0.2.15" + webpack "*" -buble@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/buble/-/buble-0.14.2.tgz#5e2ffd5469693068731d77c9c98909aee61e5e6f" +buble@^0.15.0, buble@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/buble/-/buble-0.15.1.tgz#89fa32b8956d772c3cce2a27684245e64d8e930d" dependencies: acorn "^3.3.0" acorn-jsx "^3.0.1" @@ -375,7 +385,7 @@ buffer-xor@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" -buffer@^4.3.0: +buffer@^4.3.0, buffer@^4.9.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" dependencies: @@ -421,9 +431,9 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000578: - version "1.0.30000587" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000587.tgz#18bb26f03139887539054cfe1c5358583eaabcf0" +caniuse-db@^1.0.30000601, caniuse-db@^1.0.30000602: + version "1.0.30000602" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000602.tgz#06b2cbfb6c3aeef7ddb18cd588043549ad1a2d4e" caseless@~0.11.0: version "0.11.0" @@ -446,7 +456,7 @@ chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chokidar@^1.4.3: +chokidar@^1.0.0, chokidar@^1.4.3: version "1.6.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" dependencies: @@ -468,14 +478,14 @@ cipher-base@^1.0.0, cipher-base@^1.0.1: inherits "^2.0.1" clap@^1.0.9: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.1.1.tgz#a8a93e0bfb7581ac199c4f001a5525a724ce696d" + version "1.1.2" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.1.2.tgz#316545bf22229225a2cecaa6824cd2f56a9709ed" dependencies: chalk "^1.1.3" clean-css@3.4.x: - version "3.4.21" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.21.tgz#2101d5dbd19d63dbc16a75ebd570e7c33948f65b" + version "3.4.23" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.23.tgz#604fbbca24c12feb59b02f00b84f1fb7ded6d001" dependencies: commander "2.8.x" source-map "0.4.x" @@ -693,13 +703,22 @@ crypto-browserify@^3.11.0: public-encrypt "^4.0.0" randombytes "^2.0.0" +crypto-browserify@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c" + dependencies: + browserify-aes "0.4.0" + pbkdf2-compat "2.0.1" + ripemd160 "0.2.0" + sha.js "2.2.6" + css-color-names@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" css-loader@^0.26.0: - version "0.26.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.0.tgz#160d378f5b8e0fd4ff6daf4f3580e2219b33025f" + version "0.26.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.1.tgz#2ba7f20131b93597496b3e9bb500785a49cd29ea" dependencies: babel-code-frame "^6.11.0" css-selector-tokenizer "^0.7.0" @@ -752,8 +771,8 @@ cssesc@^0.1.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" "cssnano@>=2.6.1 <4": - version "3.8.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.8.0.tgz#bb90ac5292f42b679d9a05f6da0e9697556bb80d" + version "3.9.1" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.9.1.tgz#41422bb5390d85a94ad4db03cc1a188bf68744fe" dependencies: autoprefixer "^6.3.1" decamelize "^1.1.2" @@ -816,8 +835,8 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" debug@*: - version "2.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + version "2.5.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.5.1.tgz#9107bb4a506052ec2a02314bc606313ed2b921c1" dependencies: ms "0.7.2" @@ -942,11 +961,12 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" -ecdsa-sig-formatter@1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.7.tgz#3137e976a1d6232517e2513e04e32f79bcbdf126" +ecdsa-sig-formatter@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1" dependencies: - base64-url "^1.2.1" + base64url "^2.0.0" + safe-buffer "^5.0.1" editorconfig@^0.13.2: version "0.13.2" @@ -987,6 +1007,14 @@ enhanced-resolve@^2.2.0: object-assign "^4.0.1" tapable "^0.2.3" +enhanced-resolve@~0.9.0: + version "0.9.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -1150,8 +1178,8 @@ find-up@^1.0.0: pinkie-promise "^2.0.0" firebase@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-3.6.2.tgz#a07008d6369533a2374cd70700d61629471015ad" + version "3.6.4" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-3.6.4.tgz#5c5b91d20f439b6f0a7aebe1b27c2db1a463e308" dependencies: dom-storage "2.0.2" faye-websocket "0.9.3" @@ -1226,17 +1254,17 @@ function-bind@^1.0.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" gauge@~2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.1.tgz#388473894fe8be5e13ffcdb8b93e4ed0616428c7" + version "2.7.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774" dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" - has-color "^0.1.7" has-unicode "^2.0.0" object-assign "^4.1.0" signal-exit "^3.0.0" string-width "^1.0.1" strip-ansi "^3.0.1" + supports-color "^0.2.0" wide-align "^1.1.0" generate-function@^2.0.0: @@ -1332,10 +1360,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-color@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" @@ -1483,6 +1507,10 @@ ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +interpret@^0.6.4: + version "0.6.6" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + interpret@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" @@ -1496,8 +1524,8 @@ ipaddr.js@1.1.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" is-absolute-url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.0.0.tgz#9c4b20b0e5c0cbef9a479a367ede6f991679f359" + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" is-arrayish@^0.2.1: version "0.2.1" @@ -1689,6 +1717,10 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" +json-loader@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -1704,16 +1736,16 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" json5@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" jsonpointer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" jsonwebtoken@7.1.9: version "7.1.9" @@ -1734,12 +1766,12 @@ jsprim@^1.2.2: verror "1.3.6" jwa@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.4.tgz#dbb01bd38cd409899fa715107e90d90f9bcb161e" + version "1.1.5" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5" dependencies: base64url "2.0.0" buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.7" + ecdsa-sig-formatter "1.0.9" safe-buffer "^5.0.1" jws@^3.1.3: @@ -1751,8 +1783,8 @@ jws@^3.1.3: safe-buffer "^5.0.1" kind-of@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" + version "3.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" dependencies: is-buffer "^1.0.2" @@ -1780,7 +1812,7 @@ loader-runner@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.2.0.tgz#824c1b699c4e7a2b6501b85902d5b862bf45b3fa" -loader-utils@^0.2.10, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.7, loader-utils@^0.2.9, loader-utils@~0.2.2, loader-utils@~0.2.5, loader-utils@0.2.x: +loader-utils@^0.2.10, loader-utils@^0.2.11, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.7, loader-utils@^0.2.9, loader-utils@~0.2.2, loader-utils@~0.2.5, loader-utils@0.2.x: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: @@ -1823,8 +1855,8 @@ lodash.templatesettings@^4.0.0: lodash._reinterpolate "~3.0.0" lodash@^4.14.0, lodash@^4.16.4, lodash@^4.3.0: - version "4.17.2" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" + version "4.17.3" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.3.tgz#557ed7d2a9438cac5fd5a43043ca60cb455e01f7" longest@^1.0.1: version "1.0.1" @@ -1847,14 +1879,7 @@ lru-cache@^3.2.0: dependencies: pseudomap "^1.0.1" -lru-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.1.tgz#1343955edaf2e37d9b9e7ee7241e27c4b9fb72be" - dependencies: - pseudomap "^1.0.1" - yallist "^2.0.0" - -lru-cache@^4.0.2: +lru-cache@^4.0.1, lru-cache@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" dependencies: @@ -1885,6 +1910,10 @@ media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" +memory-fs@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + memory-fs@^0.3.0, memory-fs@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" @@ -1892,6 +1921,13 @@ memory-fs@^0.3.0, memory-fs@~0.3.0: errno "^0.1.3" readable-stream "^2.0.1" +memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -1972,6 +2008,10 @@ minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -1983,8 +2023,8 @@ mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1, mkdirp@0.5.x: minimist "0.0.8" moment@2.x.x: - version "2.17.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.0.tgz#a4c292e02aac5ddefb29a6eed24f51938dd3b74f" + version "2.17.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82" ms@^0.7.1, ms@0.7.2: version "0.7.2" @@ -1995,8 +2035,8 @@ ms@0.7.1: resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" nan@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" + version "2.5.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8" ncname@1.0.x: version "1.0.0" @@ -2014,9 +2054,37 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-libs-browser@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-1.1.1.tgz#2a38243abedd7dffcd07a97c9aca5668975a6fea" +node-libs-browser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.9.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "3.3.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-libs-browser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" dependencies: assert "^1.1.1" browserify-zlib "^0.1.4" @@ -2036,21 +2104,21 @@ node-libs-browser@^1.0.0: stream-browserify "^2.0.1" stream-http "^2.3.1" string_decoder "^0.10.25" - timers-browserify "^1.4.2" + timers-browserify "^2.0.2" tty-browserify "0.0.0" url "^0.11.0" util "^0.10.3" vm-browserify "0.0.4" node-pre-gyp@^0.6.29: - version "0.6.31" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" + version "0.6.32" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5" dependencies: mkdirp "~0.5.1" nopt "~3.0.6" - npmlog "^4.0.0" + npmlog "^4.0.1" rc "~1.1.6" - request "^2.75.0" + request "^2.79.0" rimraf "~2.5.4" semver "~5.3.0" tar "~2.2.1" @@ -2088,9 +2156,9 @@ normalize-url@^1.4.0: query-string "^4.1.0" sort-keys "^1.0.0" -npmlog@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.1.tgz#d14f503b4cd79710375553004ba96e6662fbc0b8" +npmlog@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -2148,6 +2216,13 @@ once@~1.3.3: dependencies: wrappy "1" +optimist@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + os-browserify@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" @@ -2237,6 +2312,10 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +pbkdf2-compat@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" + pbkdf2@^3.0.3: version "3.0.9" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" @@ -2333,8 +2412,8 @@ postcss-merge-longhand@^2.0.1: postcss "^5.0.4" postcss-merge-rules@^2.0.3: - version "2.0.10" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.0.10.tgz#54b360be804e7e69a5c7222635247b92a3569e9b" + version "2.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.0.11.tgz#c5d7c8de5056a7377aea0dff2fd83f92cafb9b8a" dependencies: postcss "^5.0.4" vendors "^1.0.0" @@ -2359,8 +2438,8 @@ postcss-minify-gradients@^1.0.1: postcss-value-parser "^3.3.0" postcss-minify-params@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.0.5.tgz#82d602643b8616a61fb3634d7ede0289836d67f9" + version "1.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.1.tgz#c899444d9e2ff8933018befac151fbfadf10e737" dependencies: alphanum-sort "^1.0.1" postcss "^5.0.2" @@ -2433,8 +2512,8 @@ postcss-reduce-idents@^2.2.2: postcss-value-parser "^3.0.2" postcss-reduce-initial@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.0.tgz#8f739b938289ef2e48936d7101783e4741ca9bbb" + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" dependencies: postcss "^5.0.4" @@ -2455,8 +2534,8 @@ postcss-selector-parser@^2.0.0: uniq "^1.0.1" postcss-svgo@^2.1.1: - version "2.1.5" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.5.tgz#46fc0363f01bab6a36a9abb01c229fcc45363094" + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" dependencies: is-svg "^2.0.0" postcss "^5.0.14" @@ -2476,15 +2555,16 @@ postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" postcss-zindex@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.1.1.tgz#ea3fbe656c9738aa8729e2ee96ec2a46089b720f" + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" dependencies: + has "^1.0.1" postcss "^5.0.4" uniqs "^2.0.0" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.5: - version "5.2.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.6.tgz#a252cd67cd52585035f17e9ad12b35137a7bdd9e" +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.6: + version "5.2.7" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.7.tgz#e38fb8370b7c0703922ecefdf21256c5f4b8d369" dependencies: chalk "^1.1.3" js-base64 "^2.1.9" @@ -2516,7 +2596,7 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" -process@^0.11.0, process@~0.11.0: +process@^0.11.0: version "0.11.9" resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" @@ -2681,10 +2761,10 @@ reduce-css-calc@^1.2.6: reduce-function-call "^1.0.1" reduce-function-call@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.1.tgz#fa02e126e695824263cab91d3a5b0fdc1dd27a9a" + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" dependencies: - balanced-match "~0.1.0" + balanced-match "^0.4.2" regenerate@^1.2.1: version "1.3.2" @@ -2743,7 +2823,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@^2.75.0: +request@^2.79.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: @@ -2792,6 +2872,10 @@ ripemd160@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" +ripemd160@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + rsvp@3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.2.1.tgz#07cb4a5df25add9e826ebc67dcc9fd89db27d84a" @@ -2864,6 +2948,10 @@ set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + setprototypeof@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" @@ -2874,13 +2962,17 @@ sha.js@^2.3.6: dependencies: inherits "^2.0.1" +sha.js@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" + sigmund@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" signal-exit@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" sntp@1.x.x: version "1.0.9" @@ -2894,23 +2986,23 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^0.1.4, source-list-map@~0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" +source-list-map@^0.1.4, source-list-map@~0.1.0, source-list-map@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.7.tgz#d4b5ce2a46535c72c7e8527c71a77d250618172e" source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" -source-map@0.1.x: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" +source-map@~0.4.1, source-map@0.4.x: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" -source-map@0.4.x: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" +source-map@0.1.x: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" dependencies: amdefine ">=0.0.4" @@ -3028,6 +3120,10 @@ stylus@^0.54.5: sax "0.5.x" source-map "0.1.x" +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -3050,9 +3146,9 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" -sw-precache-webpack-plugin@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.6.3.tgz#5e77a636e63bbf9aa50042d9f0a00994ec7ea831" +sw-precache-webpack-plugin@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.7.0.tgz#b111935244debb503c26193f91564375524b452e" dependencies: del "^2.2.2" sw-precache "^4.1.0" @@ -3078,9 +3174,13 @@ sw-toolbox@^3.4.0: path-to-regexp "^1.0.1" serviceworker-cache-polyfill "^4.0.0" +tapable@^0.1.8, tapable@~0.1.8: + version "0.1.10" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + tapable@^0.2.3, tapable@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.4.tgz#a7814605089d4ba896c33c7e3566e13dcd194aa5" + version "0.2.5" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.5.tgz#1ff6ce7ade58e734ca9bfe36ba342304b377a4d0" tar-pack@~3.3.0: version "3.3.0" @@ -3103,11 +3203,11 @@ tar@~2.2.1: fstream "^1.0.2" inherits "2" -timers-browserify@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" +timers-browserify@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" dependencies: - process "~0.11.0" + setimmediate "^1.0.4" to-arraybuffer@^1.0.0: version "1.0.1" @@ -3142,8 +3242,8 @@ tunnel-agent@~0.4.1: resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" type-is@~1.6.13: version "1.6.14" @@ -3153,8 +3253,8 @@ type-is@~1.6.13: mime-types "~2.1.13" uglify-js@~2.7.3, uglify-js@2.7.x: - version "2.7.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" dependencies: async "~0.2.6" source-map "~0.5.1" @@ -3192,8 +3292,8 @@ upper-case@^1.1.1: resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" urijs@^1.16.1: - version "1.18.3" - resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.18.3.tgz#48cf665c631fca92690fc76a081cc96ff9673566" + version "1.18.4" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.18.4.tgz#0c97a17a0b0e4a2e635a565c2f16c0f180605e28" url-loader@^0.5.7: version "0.5.7" @@ -3232,8 +3332,8 @@ utils-merge@1.0.0: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" uuid@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.0.tgz#6728fc0459c450d796a99c31837569bdf672d728" + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" validate-npm-package-license@^3.0.1: version "3.0.1" @@ -3288,12 +3388,12 @@ vue-loader@^10.0.2: vue-template-es2015-compiler "^1.2.2" vue-router@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-2.1.0.tgz#c04d5ed79517571d4d668e00a85c8ea0d92c4f87" + version "2.1.1" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-2.1.1.tgz#10c31bbdcb6da92bd3e0223fa12345e73018625a" vue-server-renderer@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.1.3.tgz#40aafd2354e2ffdaf64a8593c06adb10375c1eb8" + version "2.1.7" + resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.1.7.tgz#e3e17af044094209061282b57d27b14e0e6f39f1" dependencies: de-indent "^1.0.2" he "^1.1.0" @@ -3305,27 +3405,35 @@ vue-style-loader@^1.0.0: loader-utils "^0.2.7" vue-template-compiler@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.1.3.tgz#af252df5848c15980cbf32d88a253db053290949" + version "2.1.7" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.1.7.tgz#5e1fc983271d3ac24c79abb64b71383357e2cea5" dependencies: de-indent "^1.0.2" he "^1.1.0" vue-template-es2015-compiler@^1.2.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.3.0.tgz#4a0f2a0bbef8b5731f78add8263cd86fe4f643ca" + version "1.4.2" + resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.4.2.tgz#0bc595cda68fc27779568926fcead13553a335df" vue@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.1.3.tgz#20161b8684777754fd9823134b38f13c1e197882" + version "2.1.7" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.1.7.tgz#747880cb70a50c66cb8791aacfee7a6dab7fc842" -vuex-router-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/vuex-router-sync/-/vuex-router-sync-3.0.0.tgz#3b632baa86cc55192ab408b8d52e6490380df3d7" +vuex-router-sync@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vuex-router-sync/-/vuex-router-sync-4.0.2.tgz#46e949f28a5d7275385a8300495752c34da0aeef" vuex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/vuex/-/vuex-2.0.0.tgz#26befa44de220f009e432d1027487bff29571cee" + version "2.1.1" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-2.1.1.tgz#78463ee45fae4871c5d05177b4e8cedd9e2cbccc" + +watchpack@^0.2.1: + version "0.2.9" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" + dependencies: + async "^0.9.0" + chokidar "^1.0.0" + graceful-fs "^4.1.2" watchpack@^1.0.0: version "1.1.0" @@ -3335,18 +3443,25 @@ watchpack@^1.0.0: chokidar "^1.4.3" graceful-fs "^4.1.2" +webpack-core@~0.6.9: + version "0.6.9" + resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" + dependencies: + source-list-map "~0.1.7" + source-map "~0.4.1" + webpack-dev-middleware@^1.8.4: - version "1.8.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d" + version "1.9.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.9.0.tgz#a1c67a3dfd8a5c5d62740aa0babe61758b4c84aa" dependencies: - memory-fs "~0.3.0" + memory-fs "~0.4.1" mime "^1.3.4" path-is-absolute "^1.0.0" range-parser "^1.0.3" webpack-hot-middleware@^2.13.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.13.2.tgz#6500b15e6d4f1a9590f8df708183f4d2ac2c3e9e" + version "2.14.0" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.14.0.tgz#64bb8cf056ba84c699d148840ae77e54179abb6d" dependencies: ansi-html "0.0.6" html-entities "^1.2.0" @@ -3360,21 +3475,43 @@ webpack-sources@^0.1.0: source-list-map "~0.1.0" source-map "~0.5.3" +webpack@*: + version "1.14.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.14.0.tgz#54f1ffb92051a328a5b2057d6ae33c289462c823" + dependencies: + acorn "^3.0.0" + async "^1.3.0" + clone "^1.0.2" + enhanced-resolve "~0.9.0" + interpret "^0.6.4" + loader-utils "^0.2.11" + memory-fs "~0.3.0" + mkdirp "~0.5.0" + node-libs-browser "^0.7.0" + optimist "~0.6.0" + supports-color "^3.1.0" + tapable "~0.1.8" + uglify-js "~2.7.3" + watchpack "^0.2.1" + webpack-core "~0.6.9" + webpack@^2.1.0-beta.26: - version "2.1.0-beta.27" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.1.0-beta.27.tgz#06cb802e44118159e46b7533ae76b0d84c8c89d8" + version "2.1.0-beta.28" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.1.0-beta.28.tgz#8f9402c05bae04ab8d3918489b3547544a2e2641" dependencies: acorn "^4.0.3" + acorn-dynamic-import "^2.0.0" ajv "^4.7.0" ajv-keywords "^1.1.1" async "^2.1.2" enhanced-resolve "^2.2.0" interpret "^1.0.0" + json-loader "^0.5.4" loader-runner "^2.2.0" loader-utils "^0.2.16" memory-fs "~0.3.0" mkdirp "~0.5.0" - node-libs-browser "^1.0.0" + node-libs-browser "^2.0.0" object-assign "^4.0.1" source-map "^0.5.3" supports-color "^3.1.0" @@ -3426,15 +3563,20 @@ window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" wrap-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.0.0.tgz#7d30f8f873f9a5bbc3a64dabc8d177e071ae426f" + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" dependencies: string-width "^1.0.1" + strip-ansi "^3.0.1" wrappy@1: version "1.0.2" @@ -3460,15 +3602,15 @@ yallist@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" -yargs-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.1.0.tgz#313df030f20124124aeae8fbab2da53ec28c56d7" +yargs-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.0.tgz#6ced869cd05a3dca6a1eaee38b68aeed4b0b4101" dependencies: camelcase "^3.0.0" yargs@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.4.0.tgz#816e1a866d5598ccf34e5596ddce22d92da490d4" + version "6.5.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.5.0.tgz#a902e23a1f0fe912b2a03f6131b7ed740c9718ff" dependencies: camelcase "^3.0.0" cliui "^3.2.0" @@ -3483,7 +3625,7 @@ yargs@^6.0.0: which-module "^1.0.0" window-size "^0.2.0" y18n "^3.2.1" - yargs-parser "^4.1.0" + yargs-parser "^4.2.0" yargs@~3.10.0: version "3.10.0" From af553dfa87d99143f6cfa12da1e1ff8add30572a Mon Sep 17 00:00:00 2001 From: Evan You Date: Sat, 24 Dec 2016 14:48:59 -0500 Subject: [PATCH 038/156] fix comment section bottom padding --- src/views/ItemView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/ItemView.vue b/src/views/ItemView.vue index 441b8dcda..b261cfe30 100644 --- a/src/views/ItemView.vue +++ b/src/views/ItemView.vue @@ -97,7 +97,7 @@ export default { .item-view-comments background-color #fff margin-top 10px - padding 0 2em + padding 0 2em .5em .item-view-comments-header margin 0 From 9ea8e8e3146323a58ed8522ec7d5ee0fbbe798ef Mon Sep 17 00:00:00 2001 From: INOUE Takuya Date: Mon, 26 Dec 2016 00:04:35 +0900 Subject: [PATCH 039/156] Move html-webpack-plugin to devDependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4c754c1c3..3a486505d 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,6 @@ "es6-promise": "^4.0.5", "express": "^4.14.0", "firebase": "^3.6.2", - "html-webpack-plugin": "^2.24.1", "lru-cache": "^4.0.2", "serialize-javascript": "^1.3.0", "serve-favicon": "^2.3.2", @@ -37,6 +36,7 @@ "css-loader": "^0.26.0", "extract-text-webpack-plugin": "^2.0.0-beta.3", "file-loader": "^0.9.0", + "html-webpack-plugin": "^2.24.1", "rimraf": "^2.5.4", "stylus": "^0.54.5", "stylus-loader": "^2.4.0", From a2fbe5f2b0d22c1b4f36878b5db285e6dc209b27 Mon Sep 17 00:00:00 2001 From: Iegor Azuaga Date: Thu, 29 Dec 2016 16:33:55 +0100 Subject: [PATCH 040/156] Move `cross-env` dep out of devDependencies (#105) Since the module is used to bootstrap a production version of the site (see the npm `start` script), it shouldn't be inside devDependencies. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3a486505d..bf6f215ec 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "compression": "^1.6.2", + "cross-env": "^3.1.3", "es6-promise": "^4.0.5", "express": "^4.14.0", "firebase": "^3.6.2", @@ -32,7 +33,6 @@ "autoprefixer": "^6.5.3", "buble": "^0.15.1", "buble-loader": "^0.4.0", - "cross-env": "^3.1.3", "css-loader": "^0.26.0", "extract-text-webpack-plugin": "^2.0.0-beta.3", "file-loader": "^0.9.0", From 7772994c6117da0388817a83f556c15ef70b8b50 Mon Sep 17 00:00:00 2001 From: Stef van den Ham Date: Thu, 29 Dec 2016 16:35:05 +0100 Subject: [PATCH 041/156] Fix path to favicon (#106) logo.png 404's at the moment --- src/index.template.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.template.html b/src/index.template.html index 46be3e354..3a8f02512 100644 --- a/src/index.template.html +++ b/src/index.template.html @@ -5,7 +5,7 @@ Vue HN 2.0 - + From e47e5c61dce753a6189c6104bc48f94fcf4b9f6e Mon Sep 17 00:00:00 2001 From: Matthew Pietz Date: Thu, 29 Dec 2016 07:37:39 -0800 Subject: [PATCH 042/156] Always fetch passed in items (#107) In order to get the updated score, we need to call fetch items every time. --- src/store/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index ca0818745..c0fcc6233 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -36,8 +36,6 @@ const store = new Vuex.Store({ }, FETCH_ITEMS: ({ commit, state }, { ids }) => { - // only fetch items that we don't already have. - ids = ids.filter(id => !state.items[id]) if (ids.length) { return fetchItems(ids).then(items => commit('SET_ITEMS', { items })) } else { From 28bc4d3d5aade1037b482f2e5a7c13cddd861b21 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 29 Dec 2016 10:31:23 -0500 Subject: [PATCH 043/156] fix docs link --- server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.js b/server.js index 1d1c1abd3..ccba26f10 100644 --- a/server.js +++ b/server.js @@ -31,7 +31,7 @@ if (isProd) { } function createRenderer (bundle) { - // https://github.com/vuejs/vue/blob/next/packages/vue-server-renderer/README.md#why-use-bundlerenderer + // https://github.com/vuejs/vue/blob/dev/packages/vue-server-renderer/README.md#why-use-bundlerenderer return require('vue-server-renderer').createBundleRenderer(bundle, { cache: require('lru-cache')({ max: 1000, From 0e2b0a16fc7e0510439a2b39afd4a3bbfa9b7519 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 29 Dec 2016 13:09:36 -0500 Subject: [PATCH 044/156] fix memory leak (fix #88 & #93) --- src/store/api.js | 4 +++- src/store/create-api-server.js | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/store/api.js b/src/store/api.js index ad742c93c..e07a57f2e 100644 --- a/src/store/api.js +++ b/src/store/api.js @@ -2,7 +2,9 @@ import api from 'create-api' // warm the front page cache every 15 min -if (api.cachedIds) { +// make sure to do this only once across all requests +if (api.onServer && !api.warmCacheStarted) { + api.warmCacheStarted = true warmCache() } diff --git a/src/store/create-api-server.js b/src/store/create-api-server.js index 30a552fd4..ff04a1cd1 100644 --- a/src/store/create-api-server.js +++ b/src/store/create-api-server.js @@ -1,5 +1,6 @@ import Firebase from 'firebase' import LRU from 'lru-cache' +import { fetchItems } from './api' let api const config = { @@ -12,6 +13,7 @@ if (process.__API__) { } else { Firebase.initializeApp(config) api = process.__API__ = Firebase.database().ref(version) + api.onServer = true // fetched item cache api.cachedItems = LRU({ From ade06c60c0c3db9b5df16be7765667d88b23a1be Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 29 Dec 2016 13:18:58 -0500 Subject: [PATCH 045/156] limit client store item cache to 3 minutes --- src/store/index.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/store/index.js b/src/store/index.js index c0fcc6233..e353bbfec 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -36,6 +36,19 @@ const store = new Vuex.Store({ }, FETCH_ITEMS: ({ commit, state }, { ids }) => { + // on the client, the store itself serves as a cache. + // only fetch items that we do not already have, or has expired (3 minutes) + const now = Date.now() + ids = ids.filter(id => { + const item = state.items[id] + if (!item) { + return true + } + if (now - item.__lastUpdated > 1000 * 60 * 3) { + return true + } + return false + }) if (ids.length) { return fetchItems(ids).then(items => commit('SET_ITEMS', { items })) } else { From 38dea776780f00011ee8b5946ba0a612d9181d12 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 29 Dec 2016 13:28:08 -0500 Subject: [PATCH 046/156] bump deps --- build/webpack.base.config.js | 3 ++ package.json | 10 ++-- yarn.lock | 90 ++++++++++++++++++------------------ 3 files changed, 53 insertions(+), 50 deletions(-) diff --git a/build/webpack.base.config.js b/build/webpack.base.config.js index 1bfd0b787..cb402d0b8 100644 --- a/build/webpack.base.config.js +++ b/build/webpack.base.config.js @@ -50,5 +50,8 @@ module.exports = { } } ] + }, + performance: { + hints: process.env.NODE_ENV === 'production' ? 'warning' : false } } diff --git a/package.json b/package.json index bf6f215ec..e1172ba36 100644 --- a/package.json +++ b/package.json @@ -23,10 +23,10 @@ "lru-cache": "^4.0.2", "serialize-javascript": "^1.3.0", "serve-favicon": "^2.3.2", - "vue": "^2.1.3", + "vue": "^2.1.8", "vue-router": "^2.1.0", - "vue-server-renderer": "^2.1.3", - "vuex": "^2.0.0", + "vue-server-renderer": "^2.1.8", + "vuex": "^2.1.0", "vuex-router-sync": "^4.0.2" }, "devDependencies": { @@ -43,8 +43,8 @@ "sw-precache-webpack-plugin": "^0.7.0", "url-loader": "^0.5.7", "vue-loader": "^10.0.2", - "vue-template-compiler": "^2.1.3", - "webpack": "^2.1.0-beta.26", + "vue-template-compiler": "^2.1.8", + "webpack": "^2.2.0-rc.3", "webpack-dev-middleware": "^1.8.4", "webpack-hot-middleware": "^2.13.2" } diff --git a/yarn.lock b/yarn.lock index 812509b5f..d0667850b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -38,12 +38,12 @@ acorn@^4.0.3: resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" ajv-keywords@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.4.1.tgz#f080e635e230baae26537ce727f260ae62b43802" + version "1.5.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.0.tgz#c11e6859eafff83e0dafc416929472eca946aa2c" ajv@^4.7.0: - version "4.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.10.2.tgz#27a61437962cb6daf8023ca9ad2a30337d918dda" + version "4.10.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.10.3.tgz#3e4fea9675b157de7888b80dd0ed735b83f28e11" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -137,8 +137,8 @@ arrify@^1.0.0: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" asn1.js@^4.0.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.0.tgz#f71a1243f3e79d46d7b07d7fbf4824ee73af054a" + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -835,8 +835,8 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" debug@*: - version "2.5.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.5.1.tgz#9107bb4a506052ec2a02314bc606313ed2b921c1" + version "2.6.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" dependencies: ms "0.7.2" @@ -998,14 +998,14 @@ encodeurl@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" -enhanced-resolve@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-2.3.0.tgz#a115c32504b6302e85a76269d7a57ccdd962e359" +enhanced-resolve@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.0.2.tgz#0fa709f29e59ee23e6bbcb070c85f992d6247cd1" dependencies: graceful-fs "^4.1.2" - memory-fs "^0.3.0" + memory-fs "^0.4.0" object-assign "^4.0.1" - tapable "^0.2.3" + tapable "^0.2.5" enhanced-resolve@~0.9.0: version "0.9.1" @@ -1690,8 +1690,8 @@ js-base64@^2.1.9: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" js-beautify@^1.6.3: - version "1.6.4" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.6.4.tgz#a9af79699742ac9a1b6fddc1fdbc78bc4d515fc3" + version "1.6.7" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.6.7.tgz#138bbe5f3a70e5674eaad6edc16617210ff037dd" dependencies: config-chain "~1.1.5" editorconfig "^0.13.2" @@ -1914,16 +1914,16 @@ memory-fs@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" -memory-fs@^0.3.0, memory-fs@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" dependencies: errno "^0.1.3" readable-stream "^2.0.1" -memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" +memory-fs@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" dependencies: errno "^0.1.3" readable-stream "^2.0.1" @@ -2438,8 +2438,8 @@ postcss-minify-gradients@^1.0.1: postcss-value-parser "^3.3.0" postcss-minify-params@^1.0.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.1.tgz#c899444d9e2ff8933018befac151fbfadf10e737" + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" dependencies: alphanum-sort "^1.0.1" postcss "^5.0.2" @@ -2563,8 +2563,8 @@ postcss-zindex@^2.0.1: uniqs "^2.0.0" postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.6: - version "5.2.7" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.7.tgz#e38fb8370b7c0703922ecefdf21256c5f4b8d369" + version "5.2.8" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.8.tgz#05720c49df23c79bda51fd01daeb1e9222e94390" dependencies: chalk "^1.1.3" js-base64 "^2.1.9" @@ -3147,8 +3147,8 @@ svgo@^0.7.0: whet.extend "~0.9.9" sw-precache-webpack-plugin@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.7.0.tgz#b111935244debb503c26193f91564375524b452e" + version "0.7.1" + resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.7.1.tgz#25a935b34ecf93a33beec8aa5daf573bc13f05ff" dependencies: del "^2.2.2" sw-precache "^4.1.0" @@ -3178,7 +3178,7 @@ tapable@^0.1.8, tapable@~0.1.8: version "0.1.10" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" -tapable@^0.2.3, tapable@~0.2.3: +tapable@^0.2.5, tapable@~0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.5.tgz#1ff6ce7ade58e734ca9bfe36ba342304b377a4d0" @@ -3252,7 +3252,7 @@ type-is@~1.6.13: media-typer "0.3.0" mime-types "~2.1.13" -uglify-js@~2.7.3, uglify-js@2.7.x: +uglify-js@^2.7.5, uglify-js@~2.7.3, uglify-js@2.7.x: version "2.7.5" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" dependencies: @@ -3391,9 +3391,9 @@ vue-router@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-2.1.1.tgz#10c31bbdcb6da92bd3e0223fa12345e73018625a" -vue-server-renderer@^2.1.3: - version "2.1.7" - resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.1.7.tgz#e3e17af044094209061282b57d27b14e0e6f39f1" +vue-server-renderer@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.1.8.tgz#834f2fc940b87f6f9bc6a1c8a604fddd5e6283ba" dependencies: de-indent "^1.0.2" he "^1.1.0" @@ -3404,9 +3404,9 @@ vue-style-loader@^1.0.0: dependencies: loader-utils "^0.2.7" -vue-template-compiler@^2.1.3: - version "2.1.7" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.1.7.tgz#5e1fc983271d3ac24c79abb64b71383357e2cea5" +vue-template-compiler@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.1.8.tgz#12dd1cc63793f59be580c694a61610cb9369d629" dependencies: de-indent "^1.0.2" he "^1.1.0" @@ -3415,15 +3415,15 @@ vue-template-es2015-compiler@^1.2.2: version "1.4.2" resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.4.2.tgz#0bc595cda68fc27779568926fcead13553a335df" -vue@^2.1.3: - version "2.1.7" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.1.7.tgz#747880cb70a50c66cb8791aacfee7a6dab7fc842" +vue@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.1.8.tgz#ae30aa86024fccf5535292ce414e7b4c221a1756" vuex-router-sync@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/vuex-router-sync/-/vuex-router-sync-4.0.2.tgz#46e949f28a5d7275385a8300495752c34da0aeef" -vuex@^2.0.0: +vuex@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/vuex/-/vuex-2.1.1.tgz#78463ee45fae4871c5d05177b4e8cedd9e2cbccc" @@ -3495,16 +3495,16 @@ webpack@*: watchpack "^0.2.1" webpack-core "~0.6.9" -webpack@^2.1.0-beta.26: - version "2.1.0-beta.28" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.1.0-beta.28.tgz#8f9402c05bae04ab8d3918489b3547544a2e2641" +webpack@^2.2.0-rc.3: + version "2.2.0-rc.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.2.0-rc.3.tgz#ac072c06c88aae75abdfd33510e7c5fd965f843f" dependencies: acorn "^4.0.3" acorn-dynamic-import "^2.0.0" ajv "^4.7.0" ajv-keywords "^1.1.1" async "^2.1.2" - enhanced-resolve "^2.2.0" + enhanced-resolve "^3.0.0" interpret "^1.0.0" json-loader "^0.5.4" loader-runner "^2.2.0" @@ -3515,8 +3515,8 @@ webpack@^2.1.0-beta.26: object-assign "^4.0.1" source-map "^0.5.3" supports-color "^3.1.0" - tapable "~0.2.3" - uglify-js "~2.7.3" + tapable "~0.2.5" + uglify-js "^2.7.5" watchpack "^1.0.0" webpack-sources "^0.1.0" yargs "^6.0.0" From f5ca53ac72356b2ae963a90cb61da0dc85d8d2b2 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 29 Dec 2016 13:44:55 -0500 Subject: [PATCH 047/156] tweak server --- server.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server.js b/server.js index ccba26f10..651de21af 100644 --- a/server.js +++ b/server.js @@ -1,6 +1,3 @@ -process.env.VUE_ENV = 'server' -const isProd = process.env.NODE_ENV === 'production' - const fs = require('fs') const path = require('path') const express = require('express') @@ -9,6 +6,11 @@ const compression = require('compression') const serialize = require('serialize-javascript') const resolve = file => path.resolve(__dirname, file) +const isProd = process.env.NODE_ENV === 'production' +const serverInfo = + `express/${require('express/package.json').version} ` + + `vue-server-renderer/${require('vue-server-renderer/package.json').version}` + const app = express() let indexHTML // generated by html-webpack-plugin @@ -65,7 +67,9 @@ app.get('*', (req, res) => { return res.end('waiting for compilation... refresh in a moment.') } - res.setHeader("Content-Type", "text/html"); + res.setHeader("Content-Type", "text/html") + res.setHeader("Server", serverInfo) + var s = Date.now() const context = { url: req.url } const renderStream = renderer.renderToStream(context) From b04ea0c453ce2bdf2de95f26363d95e0ab9c7115 Mon Sep 17 00:00:00 2001 From: Limon Monte Date: Wed, 18 Jan 2017 15:56:38 +0200 Subject: [PATCH 048/156] Improve UI by adding 2nd paginator and making 1st one movable (#54) * Make NewsListNav standalone component * UI improvement: add 2nd NewsListNav to the bottom, make 1st movable * Use kebab-case --- src/App.vue | 7 +----- src/components/ItemList.vue | 41 ++++++---------------------------- src/components/NewsListNav.vue | 39 ++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 40 deletions(-) create mode 100644 src/components/NewsListNav.vue diff --git a/src/App.vue b/src/App.vue index b71821a77..3f29bde08 100644 --- a/src/App.vue +++ b/src/App.vue @@ -16,7 +16,7 @@ - + @@ -76,11 +76,6 @@ a display inline-block vertical-align middle -.view - max-width 800px - margin 0 auto - position relative - .fade-enter-active, .fade-leave-active transition all .2s ease diff --git a/src/components/ItemList.vue b/src/components/ItemList.vue index 9c0001da1..8f23eecfc 100644 --- a/src/components/ItemList.vue +++ b/src/components/ItemList.vue @@ -1,13 +1,7 @@ From 4114eff3770a7fab72dea17b717d893296c87d41 Mon Sep 17 00:00:00 2001 From: Pius Nyakoojo Date: Wed, 18 Jan 2017 14:18:46 -0600 Subject: [PATCH 049/156] Update App.vue header (#122) The
element specifies a header for a document or section. The