From d7a5d0924c3646d651586615b3f3923d052d978c Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 28 Jan 2018 03:06:12 +0100 Subject: [PATCH] Versions bumps + deps update + internal refactoring --- .eslintrc.js | 1 + packages/npm-check/package.js | 1 - packages/vue-coffee/package.js | 2 +- .../.npm/package/npm-shrinkwrap.json | 162 ++++++---------- packages/vue-component-dev-client/package.js | 1 - packages/vue-component-dev-server/package.js | 1 - packages/vue-component/package.js | 15 +- packages/vue-component/plugin/post-css.js | 15 +- packages/vue-component/plugin/tag-handler.js | 175 +++++++---------- packages/vue-component/plugin/tag-scanner.js | 111 ----------- packages/vue-component/plugin/vue-compiler.js | 17 +- packages/vue-less/package.js | 2 +- packages/vue-pug/package.js | 2 +- packages/vue-router2/package.js | 3 +- packages/vue-sass/package.js | 5 +- packages/vue-ssr/README.md | 15 +- packages/vue-ssr/package.js | 9 +- packages/vue-ssr/server/index.js | 182 +++++++++--------- packages/vue-stylus/package.js | 3 +- 19 files changed, 248 insertions(+), 474 deletions(-) delete mode 100644 packages/vue-component/plugin/tag-scanner.js diff --git a/.eslintrc.js b/.eslintrc.js index b7f7735..dcfc56e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -16,6 +16,7 @@ module.exports = { // Global vars globals: { 'Package': true, + 'Npm': true, 'Meteor': true, 'Tracker': true, }, diff --git a/packages/npm-check/package.js b/packages/npm-check/package.js index ac178e0..be00eac 100644 --- a/packages/npm-check/package.js +++ b/packages/npm-check/package.js @@ -18,6 +18,5 @@ Package.registerBuildPlugin({ }) Package.onUse(function (api) { - api.versionsFrom('1.6') api.use('isobuild:compiler-plugin@1.0.0') }) diff --git a/packages/vue-coffee/package.js b/packages/vue-coffee/package.js index 9a2dcc9..329503c 100644 --- a/packages/vue-coffee/package.js +++ b/packages/vue-coffee/package.js @@ -8,7 +8,7 @@ Package.describe({ Package.registerBuildPlugin({ name: 'vue-component-coffee', - use: ['ecmascript@0.10.0', 'coffeescript-compiler@2.0.3_1'], + use: ['ecmascript@0.10.0', 'coffeescript-compiler@2.0.3_4'], sources: ['vue-coffee.js'], }) diff --git a/packages/vue-component-dev-client/.npm/package/npm-shrinkwrap.json b/packages/vue-component-dev-client/.npm/package/npm-shrinkwrap.json index a53e300..50fc416 100644 --- a/packages/vue-component-dev-client/.npm/package/npm-shrinkwrap.json +++ b/packages/vue-component-dev-client/.npm/package/npm-shrinkwrap.json @@ -2,14 +2,19 @@ "lockfileVersion": 1, "dependencies": { "after": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz", - "integrity": "sha1-q11PuIP1loFtNRX495HAr0ht1ic=" + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, "arraybuffer.slice": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=" + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, "backo2": { "version": "1.0.2", @@ -17,14 +22,9 @@ "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" }, "base64-arraybuffer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz", - "integrity": "sha1-R030qfLaJOBd8xWMOx2zw81GoVQ=" - }, - "benchmark": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz", - "integrity": "sha1-Lx4vpMNZ8REiqhgwgiGOlX45DHM=" + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" }, "better-assert": { "version": "1.0.2", @@ -47,9 +47,9 @@ "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" }, "component-emitter": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz", - "integrity": "sha1-zNETqGOI0GSC0D3j/H35hSa6jv4=" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, "component-inherit": { "version": "0.0.3", @@ -57,38 +57,24 @@ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=" + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" }, "engine.io-client": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz", - "integrity": "sha1-HWrUgEilCDyVCWlDsp0279shJAE=", - "dependencies": { - "component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=" - } - } + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.4.tgz", + "integrity": "sha1-T88TcLRxY70s6b4nM5ckMDUNTqE=" }, "engine.io-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz", - "integrity": "sha1-4Il7C/FOeS1M0qWVBVORnFaUjEI=", - "dependencies": { - "has-binary": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz", - "integrity": "sha1-JTJvOc+k9hath4eJTjryz7x7bhA=" - } - } - }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", + "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==" + }, + "has-binary2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz", + "integrity": "sha1-6D26SfC5vk0CbSc2U1DZ8D9Uvpg=" }, "has-cors": { "version": "1.1.0", @@ -101,61 +87,44 @@ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" }, "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "object-component": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" - }, - "parsejson": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz", - "integrity": "sha1-mxDGwNglq1ieaFFTgm3go7oni8w=" - }, "parseqs": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz", - "integrity": "sha1-nf5wss3aw4i95PNbHyQPpYrb5sc=" + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=" }, "parseuri": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.4.tgz", - "integrity": "sha1-gGWCo5iH4eoY3V4v4OAZAiaOk1A=" + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "socket.io-client": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.6.tgz", - "integrity": "sha1-SbC6U379FbgpfIQBbmQuHHx1LD0=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", + "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=" }, "socket.io-parser": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.6.tgz", - "integrity": "sha1-ON/WHfUNz4qx2eIJEyK/kCuii5k=", - "dependencies": { - "component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=" - } - } + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.2.tgz", + "integrity": "sha1-28IoIVH8T6675Aru3Ady66YZ9/I=" }, "to-array": { "version": "0.1.4", @@ -163,24 +132,19 @@ "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" }, "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" - }, - "utf8": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz", - "integrity": "sha1-DP7FyAUtRKI+OqqQgQToB1+V39U=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "ws": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.0.1.tgz", - "integrity": "sha1-fQsqLljN3YGQOcKcneZQReGzEOk=" + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==" }, "xmlhttprequest-ssl": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz", - "integrity": "sha1-O3dB/qSoZnWXbpCNKW1ERZYfqmc=" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" }, "yeast": { "version": "0.1.2", diff --git a/packages/vue-component-dev-client/package.js b/packages/vue-component-dev-client/package.js index 5ae2b57..19253da 100644 --- a/packages/vue-component-dev-client/package.js +++ b/packages/vue-component-dev-client/package.js @@ -8,7 +8,6 @@ Package.describe({ }) Package.onUse(function (api) { - api.versionsFrom('1.6') api.use('ecmascript') api.use('reload') api.use('autoupdate') diff --git a/packages/vue-component-dev-server/package.js b/packages/vue-component-dev-server/package.js index 120ec46..4acf05e 100644 --- a/packages/vue-component-dev-server/package.js +++ b/packages/vue-component-dev-server/package.js @@ -8,7 +8,6 @@ Package.describe({ }) Package.onUse(function (api) { - api.versionsFrom('1.6') api.use('ecmascript') api.use('webapp') api.mainModule('server/main.js', 'server') diff --git a/packages/vue-component/package.js b/packages/vue-component/package.js index 341db10..2bae03e 100644 --- a/packages/vue-component/package.js +++ b/packages/vue-component/package.js @@ -10,7 +10,7 @@ Package.registerBuildPlugin({ name: 'vue-component', use: [ 'ecmascript@0.10.0', - 'caching-compiler@1.1.9', + 'caching-compiler@1.1.11', 'babel-compiler@7.0.0', 'templating-tools@1.1.2', ], @@ -19,33 +19,30 @@ Package.registerBuildPlugin({ 'plugin/utils.js', 'plugin/dev-server.js', 'plugin/post-css.js', - 'plugin/tag-scanner.js', 'plugin/tag-handler.js', 'plugin/vue-compiler.js', 'plugin/plugin.js', ], npmDependencies: { - 'postcss': '5.2.17', + 'postcss': '6.0.16', 'postcss-load-config': '1.2.0', 'postcss-selector-parser': '2.2.3', - 'postcss-modules': '0.6.4', + 'postcss-modules': '1.1.0', 'socket.io': '2.0.4', - 'async': '2.5.0', + 'async': '2.6.0', 'lodash': '4.17.4', 'hash-sum': '1.0.2', - 'source-map': '0.6.1', + 'source-map': '0.7.0', 'source-map-merger': '0.2.0', 'generate-source-map': '0.0.5', - 'autoprefixer': '6.7.7', + 'autoprefixer': '7.2.5', 'vue-template-compiler': '2.5.13', 'vue-template-es2015-compiler': '1.6.0', - 'parse5': '3.0.2', 'colors': '1.1.2', }, }) Package.onUse(function (api) { - api.versionsFrom('1.6') api.use('isobuild:compiler-plugin@1.0.0') api.use('akryum:vue-component-dev-server@0.1.0') api.use('akryum:vue-component-dev-client@0.4.0') diff --git a/packages/vue-component/plugin/post-css.js b/packages/vue-component/plugin/post-css.js index 7704bac..2865e29 100644 --- a/packages/vue-component/plugin/post-css.js +++ b/packages/vue-component/plugin/post-css.js @@ -65,9 +65,9 @@ scopeId = postcss.plugin('add-id', ({ id }) => root => { } // /deep/ alias for >>>, since >>> doesn't work in SASS if (n.type === 'tag' && n.value === '/deep/') { - const next = n.next() - if (next.type === 'combinator' && next.value === ' ') { - next.remove() + const prev = n.prev() + if (prev && prev.type === 'combinator' && prev.value === ' ') { + prev.remove() } n.remove() return false @@ -99,10 +99,11 @@ scopeId = postcss.plugin('add-id', ({ id }) => root => { if (/-?animation$/.test(decl.prop)) { decl.value = decl.value.split(',') .map(v => { - const vals = v.split(/\s+/) - const name = vals[0] - if (keyframes[name]) { - return [keyframes[name]].concat(vals.slice(1)).join(' ') + const vals = v.trim().split(/\s+/) + const i = vals.findIndex(val => keyframes[val]) + if (i !== -1) { + vals.splice(i, 1, keyframes[vals[i]]) + return vals.join(' ') } else { return v } diff --git a/packages/vue-component/plugin/tag-handler.js b/packages/vue-component/plugin/tag-handler.js index d09c756..c1e1728 100644 --- a/packages/vue-component/plugin/tag-handler.js +++ b/packages/vue-component/plugin/tag-handler.js @@ -8,85 +8,45 @@ global._vue_js_cache = global._vue_js_cache || {} // Tag handler VueComponentTagHandler = class VueComponentTagHandler { - constructor ({ inputFile, parts, babelOptions, dependencyManager }) { + constructor ({ inputFile, parts, babelOptions, dependencyManager, sfcDescriptor }) { this.inputFile = inputFile this.parts = parts this.babelOptions = babelOptions this.dependencyManager = dependencyManager - - this.component = { - template: null, - script: null, - styles: [], - } + this.sfcDescriptor = sfcDescriptor + + // Load 'src' + this.sfcDescriptor.template && this.processBlockSrc(this.sfcDescriptor.template) + this.sfcDescriptor.script && this.processBlockSrc(this.sfcDescriptor.script) + this.sfcDescriptor.styles && this.sfcDescriptor.styles.forEach( + block => this.processBlockSrc(block) + ) } - addTagToResults (tag) { - this.tag = tag - - if (this.tag.tagName === 'template') { - if (this.component.template) { - throwCompileError({ - inputFile: this.inputFile, - message: 'Only one